Ausschreibung
Automatisierter Im- und Export von Modellfragmenten
tud
Voraussetzungen
Gute Programmierkenntnisse in Java
Basiswissen UML
Betreuer
Martin Girschick
Bearbeiter
Anouar Haha

Beschreibung

Bei der Entwicklung komplexer Systeme werden zunehmend graphische Modelle eingesetzt, die nicht nur der Dokumentation dienen sondern auch dafür verwendet werden, Teile der Gesamtarchitektur zu erzeugen. Das am Fachgebiet Metamodellierung entwickelte Verfahren der Architekturstratifikation geht sogar noch darüber hinaus. Die Grundidee besteht darin, das gesamte System mit Hilfe graphischer Modelle auf mehreren Abstraktionsebenen zu beschreiben. Jede Ebene führt dabei – mit Hilfe von annotierten Klassendiagrammen – einen Systemaspekt ein. Die Annotationen werden mit Hilfe von Modelltransformation zu einer konkreten Realisierung übersetzt. Dieser Prozess setzt sich fort, bis das System vollständig beschrieben und damit vollständig implementiert ist. Daraus wird in einem finalen Schritt das direkt ausführende Programm erzeugt.

Dieses Konzept wird durch das Fujaba-Plugin SPin (kurz für Stratification PlugIN) bereits implementiert und soll nun um weitere Funktionen ergänzt werden. Ziel ist es, ein einfach anwendbares aber dennoch flexibles Werkzeug zu erhalten, mit dem die Vorteile der Architekturstratifikation demonstriert werden können.

In der aktuellen Version von SPin können nur auf der obersten Ebene Annotationen und Modellelemente hinzugefügt werden. Diese werden dann über mehrere Ebenen hinweg der Reihe nach durch Modelltransformation realisiert. Dabei werden nicht nur Elemente des Klassendiagramms transformiert, sondern auch Teile des Programmcodes – der sich hinter den Methoden der Klassen versteckt – verändert bzw. erzeugt. Dabei ist es bereits möglich, auf tieferen Ebenen bestimmte Codeteile zu verändern. Dies ist jedoch nur eingeschränkt möglich und erlaubt es nicht, beliebige Modellelemente und Annotationen auf diesen Ebenen zu ergänzen.

Aufgabenstellung

Das Konzept für Codeteile soll nun auch analog für Klassendiagrammelemente (inklusive Annotationen) verfügbar gemacht werden. Hierbei sollte auf die bereits vorhandene Implementierung aufgesetzt werden. Ein Entwurfskonzept ist bereits vorhanden und muss noch detailliert ausgearbeitet werden. Mit dieser Erweiterung wird das Stratifikationswerkzeug im beträchtlichen Maße wertvoller, da es dann möglich sein wird, auch auf unteren Ebenen Annotationen manuell einführen zu können.

Die geplante Erweiterung lässt sich an Hand des folgenden Beispiels verdeutlichen: Im linken Klassendiagramm wurden die blau hinterlegten Elemente manuell hinzugefügt. Sie sollen nun aus dem Modell extrahiert und in einer externen Datei abgelegt werden. Wenn nun das ursprüngliche Modell erneut geladen wird, sollen die separat abgespeicherten Fragmente wieder eingefügt werden.

Hierbei muss sichergestellt werden, dass die Elemente an der richtigen Stelle eingefügt werden, auch wenn sie das ursprüngliche Modell verändert hat (beispielsweise durch Umbennenung von Klassen oder hinzufügen anderer Elemente). Der Lösungsansatz besteht darin, den Elementen eindeutige Identifikatoren zuzuweisen, die auch nach Modelländerungen bestehen bleiben.

Über Ihr Interesse würden wir uns sehr freuen, schreiben Sie einfach eine kurze Email.

Weiterführende Informationen

 

SiteMap Print Version Updates as RSS feed Updates as HTML page