Dipl.-Inf. Jan Reimann

Generisches Modellrefactoring für EMFText

Dokumente und Dateien

Hinweis

Bitte nutzen Sie beim Zitieren immer folgende Url:

http://nbn-resolving.de/urn:nbn:de:bsz:14-qucosa-67762

Kurzfassung in Deutsch

Code-Refactorings sind gut erforscht und die meisten Entwicklungsumgebungen unterstützen diese. Mit dem Auftrieb der modellgetriebenen Software-Entwicklung (MDSD) stellt sich jedoch eine neue Herausforderung. Zahlreiche neue domänenspezifische Sprachen (DSL) werden entwickelt, wodurch sich die Frage stellt, wie man diesen Werkzeuge an die Hand gibt, die Modell-Refactorings ermöglichen. In dieser Diplomarbeit wird ein Ansatz zum generischen Modell-Refactoring entwickelt, mit dem der Kern eines Refactorings, bestehend aus den teilnehmenden Elementen und den Transformationsschritten, einmalig definiert und anschließend durch ein einfaches Mapping für beliebige DSLs zur Verfügung gestellt wird.

weitere Metadaten

übersetzter Titel
(Englisch)
Generic Model Refactoring for EMFText
Schlagwörter
(Deutsch)
Refactoring, MDSD
Schlagwörter
(Englisch)
Refactoring, MDSD
DDC Klassifikation004
RVK KlassifikationST 230
Institution(en) 
HochschuleTechnische Universität Dresden
FakultätFakultät Informatik
ProfessurProfessur für Softwaretechnologie
BetreuerDipl.-Inf. Mirko Seifert
GutachterProf. Dr. rer. nat. habil. Uwe Aßmann
DokumententypDiplomarbeit
SpracheDeutsch
Tag d. Einreichung (bei der Fakultät)12.07.2010
Tag d. Verteidigung / Kolloquiums / Prüfung22.07.2010
Veröffentlichungsdatum (online)28.04.2011
persistente URNurn:nbn:de:bsz:14-qucosa-67762
Inhaltsverzeichnis1 Einleitung 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Zielstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Überblick über die Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Grundlagen und Begriffsklärung 5
2.1 Code-Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Model Driven Software Development (MDSD) . . . . . . . . . . . . . . . . 6
2.2.1 Meta Object Facility . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 DSLs und Modell-Repräsentationen . . . . . . . . . . . . . . . . . 9
2.3 Code als Modell und Modell-Refactoring . . . . . . . . . . . . . . . . . . . 11
2.4 Textuelle Modelle und EMFText . . . . . . . . . . . . . . . . . . . . . . . 13
3 Analyse von Refactoring-Katalogen 17
3.1 Ein Querschnitt vorhandener Code-Refactorings . . . . . . . . . . . . . . . 17
3.1.1 Extract Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.2 Remove Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.3 Rename Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.4 Pull Up Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.5 Encapsulate Field . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.6 Move Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.7 Form Template Method . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.8 Consolidate Conditional Expression . . . . . . . . . . . . . . . . . 21
3.2 Auswertung und Übertragung auf Modell-Refactorings . . . . . . . . . . . 21
3.2.1 Erzeugung eines Containers . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Erzeugung eines Kind-Elementes . . . . . . . . . . . . . . . . . . . 23
3.2.3 Verschieben eines Elementes . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 Änderung eines Attributes . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.5 Entfernen eines Elementes . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4 Anforderungsanalyse für generisches Modell-Refactoring 29
4.1 Konzeptionelle Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Nichtfunktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . 31
5 Analyse existierender Modell-Refactoring-Ansätze 33
5.1 M3-Spezifikation am Beispiel von GenericMT . . . . . . . . . . . . . . . . 33
VIIInhaltsverzeichnis
5.2 M2-Spezifikation am Beispiel von EMF Refactor . . . . . . . . . . . . . . 40
5.3 M1-Spezifikation am Beispiel des Object Recorders . . . . . . . . . . . . . 46
5.4 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6 Konzept des generischen Modell-Refactorings 53
6.1 Modellierung mit Rollen nach Reenskaug, Riehle und Gross . . . . . . . . 54
6.2 Modellierung generischer Modell-Refactorings mit Rollen . . . . . . . . . . 56
6.2.1 Metamodell zur Definition von Kollaborationen zwischen Rollen . 57
6.2.2 Metamodell zur Spezifikation der Schritte eines Modell-Refactorings 60
6.2.3 Metamodell zur Abbildung von Rollen auf ein Ziel-Metamodell . . 69
6.3 Vor- und Nachbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.4 Bewahrung der Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.5 Horizontale und vertikale Konsistenz . . . . . . . . . . . . . . . . . . . . . 76
6.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7 Implementierung und Evaluation 81
7.1 Eclipse Modeling Framework . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.2 Role Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
7.3 Refactoring Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7.4 Role Mapping Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7.5 Durchführung eines Modell-Refactorings durch Interpretation . . . . . . . 98
7.6 Index-Mechanismus zur Wahrung der Konsistenz . . . . . . . . . . . . . . 99
7.7 Kopplung an die UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.8 Testumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.9 Evaluation anhand von mehreren Metamodellen . . . . . . . . . . . . . . . 105
8 Zusammenfassung und Ausblick 113
8.1 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Abbildungsverzeichnis i
Tabellenverzeichnis iii
Listings v
Abkürzungsverzeichnis vii
Literaturverzeichnis ix

Hinweis zum Urheberrecht

Diese Website ist eine Installation von Qucosa - Quality Content of Saxony!
Sächsische Landesbibliothek Staats- und Universitätsbibliothek Dresden