Forschungsthemen
[GB] Spezifikation von Model Smells zum Vorschlagen von Modell-Refactorings
Refactorings beschreiben Umstrukturierungen vorhandener Softwareentwicklungs-Artefakte um die Architektur der Anwendung zu verbessern, wobei die Semantik der Artefakte beibehalten wird. Der Ursprung von Refactorings liegt im Bereich von Programmiersprachen. In einer vorangegangenen studentischen Arbeit wurden sie in die Modellgetriebene Software-Entwicklung (MDSD) übertragen <1>. Als so genannte Bad Smells bezeichnet man Stellen im Quellcode, die gegen die Paradigmen für gutes Programmieren verstoßen und deshalb vermieden werden sollten. Diese Stellen sind
prädestiniert für Refactorings, welche anhand ihrer Struktur klassifiziert werden. Diese bestimmt die Art der anwendbaren Refactorings.
In dieser Arbeit soll das Paradigma der Bad Smells auf Modelle der MDSD übertragen werden, so genannte Model Smells. Es ist dafür eine Spezifikation zu entwickeln, die es ermöglicht, sinnvolle Modell-Refactorings aufzuzeigen. Ziel ist die Entwicklung eines Ansatzes, der auf beliebige domänenspezifische Sprachen angewendet werden kann. Dabei muss untersucht werden, inwiefern Sprachspezifika, die über die Struktur hinausgehen (bspw. Semantik) in die Definition von Model Smells einbezogen werden müssen.
Im zweiten Teil der Arbeit soll untersucht werden, wie Model Smells in Modellen identifiziert (bspw. durch Querying oder Graph Matching) werden können. Eine Vorschlagfunktion für mögliche Modell-Refactorings ist an dieser Stelle nötig.
Die entwickelten Konzepte sollen an mehreren Sprachen evaluiert werden. Durch Verwendung des am Lehrstuhl entwickelten Metamodells für Java <1> ist es möglich, den Ansatz auch auf Java-Programme anzuwenden. Es müssen Model Smells identifiziert und spezifische Refactorings definiert werden.
Im Detail sind folgende Teilaufgaben zu bearbeiten:
- intensive Literaturrecherche bezüglich der Spezifikation von Model Smells
- Entwicklung eines Ansatzes zur Spezifikation von Model Smells
- Evaluation von Ansätzen zum Auffinden von Model Smells in konkreten Modellen
- Analyse und Definition von Model Smells und Refactorings für die ausgewählten Sprachen
- prototypische Implementierung der entwickelten Konzepte in das am Lehrstuhl entwickelte Werkzeug Refactory <1>
<1> http://www.modelrefactoring.org
<2> http://www.jamopp.org/
Betreuer: Jan Reimann