Erweiterung des Gargoyle Codegenerators um Semantische Beziehungen

Dokumente

Ausarbeitung

Hintergrund

Modelle haben vor allem in den 80er Jahren zunehmend an Bedeutung gewonnen. Insbesondere die Unified Modeling Language (UML) wird dazu eingesetzt Softwarekonstrukte zu beschreiben. Bei der modellbasierten Softwareentwicklung dienen Modelle lediglich zur Dokumentation und Spezifikation der Systemarchitektur. Daraus resultierend sind Modell und das hieraus entwickelte Programm unabhängig voneinander. Das bedeutet, dass Änderungen, die insbesondere in frühen Phasen der Softwareentwicklung auftreten, sowohl im Modell, als auch im Quellcode vorgenommen werden müssen.

Dem gegenüber steht die modellgetriebene Softwareentwicklung. Hier besteht eine direkter Zusammenhang zwischen beschreibendem Modell und dem tatsächlichen Programm, da der Quellcode direkt aus dem Modell generiert wird. So bleiben Modell und Quellcode konsistent und simple aber zeitaufwändige Tätigkeiten, wie das Erstellen von Klassen und Attributen werden automatisiert.

Ein Beispiel für Software, die für die modellgetriebene Softwareentwicklung geeignet ist, sind Informationssysteme. Diese bestehen meist aus EJB-Komponenten mit Standardfunktionalitäten. Daher wurde in einer früheren Diplomarbeit [1] ein Codegenerator für Enterprise JavaBeans (EJB) als Eclipse Plug-In realisiert. Dieser ermöglicht es aus UML-Metamodellen automatisch Prototypen für Webanwendungen zu generieren. Standardfunktionalitäten, die zwar leicht, aber zeitaufwändig in der Implementierung sind, können mit dem Generator erzeugt werden, so dass unmittelbar mit der Entwicklung der nicht generierbaren Komponenten begonnen werden kann.

Aufgabe

Der bestehende EJB Generator soll um semantische Beziehungen, die sowohl Vererbung, als auch Komposition unterstützen, erweitert werden. Dazu muss überprüft werden, in wieweit die bestehende einfache Assoziationsimplementierung die Erweiterbarkeit erlaubt und gegebenenfalls Anpassungen im Generatormodell vorgenommen werden müssen. Der Generierungsprozess besteht aus mehreren Modeltransformationen. Daher müssen anschließend Strategien für diese Transformationen entwickelt werden. Diese können aus bereits bestehenden Umwandlungsstrategien abgeleitet werden [3].

Außerdem müssen die Besonderheiten von Vererbung und Komposition bzgl. Kardinalitäten und Funktionalitäten wie Erstellen, Updaten, Löschen der beteiligten Klassen beachtet werden.

Literatur

[1]     T. Löwenthal, ?Generierung von web-basierten Prototypen für Geschäftsanwendungen?, Diplomarbeit, RWTH Aachen, 2011

[2]     J. Ludewig, H. Lichter, ?Software Engineering ? Grundlagen, Menschen, Prozesse, Techniken?, ISBN 978-3-89864-662-8, dpunkt.verlag, 2010

[3]     O. Ihns, D. Harbeck, S.M. Heldt, H. Koschek, J. Ehm, C. Sahling, R. Schlömmer, ?EJB 3 professionell?, ISBN 978-3898644310, dpunkt.verlag, 2007