Voraussetzungen |
Gute Programmierkenntnisse in Java Basiswissen UML |
Betreuer |
Martin Girschick |
Bearbeiter |
Anouar Haha |
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.
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.