1.2. Idee des GeneSEZ Ansatzes

In der MDA/MDSD Vorgehensweise zur Softwareentwicklung werden erstellte Anwendungsmodelle automatisch durch Modelltransformationen in Quellcode überführt. Eine MDSD-Plattform stellt hierfür die folgenden Modelltransformationen unterstützen:

Modell-zu-Modell Transformationen

Zur Erstellung neuer Modelle mit der Möglichkeit verschiedene Modellierungssprachen als Quelle und Ziel zu nutzen

Modellmodifikationen

Verändern ein Modell, meist um Informationen abzuändern oder weitere hinzuzufügen

Modell-zu-Text Transformationen

Werden genutzt um Quellcode und andere notwendige Dateien für eine Software zu generieren

Modell-zu-Modell Transformationen und Modellmodifikationen stellen eine Vorverarbeitung von Modellen sicher während letztlich Modell-zu-Text Transformationen den Quellcode einer Software erzeugen. Das Transformationsziel ist meist eine objektorientierte Programmiersprache.

Je ähnlicher die Konzepte der Programmiersprache mit der in Modellierungssprachen verankerten sind, desto einfacher lassen sich Modelltransformationen erstellen, die beide Konzepte aufeinander abbilden. Weiterhin werden die Modelltransformationen dadurch intuitiver und wartbarer.

Bei den Modellierungssprachen für MDSD-Plattformen sind UML sowie DSLs weit verbreitet. Die UML stellt objektorientierte Modellierungskonzepte zur Verfügung und bietet die richtige Abstraktionsebene zur Quellcodegenerierung. Leider entwickelte sich die UML mit einer steigenden Anzahl von Modellierungskonzepten zu einer für Modelltransformationen ungeeigneten Modellierungssprache:

Durch die komplexe und normalisierte Struktur des Metamodells ist UML relativ ungeeignet für Modelltransformationen. Erschwerend kommt hinzu das selbst die UML Spezifikation keine Übersicht des Metamodells bereit stellt.

Neben der UML gibt es die DSLs welche Konzepte eines Anwendungsbereich oder technische Aspekte zur Beschreibung von Modellen nutzen. Dabei sind vor allem die fachlichen DSLs interessant, da die Modelle mit den Experten der Anwendungsbereiche diskutiert werden können. Solche Modellierungssprachen vergrößern jedoch den Unterschied zwischen Modellierungskonzepten und den Konzepten der Programmiersprachen. Dies führt einerseits zu komplexeren Modelltransformationen und andererseits zu Modelltransformationen die anwendungsbereichspezifisch sind. Von der Perspektive der Abbildung führt dies bei verschiedenen Modellierungssprachen zur kontinuierlichen Neuerstellung von Modelltransformationen für die selbe Programmiersprache da von verschiedenen Modellierungssprachen aus transformiert wird.

Basierend auf den Konsequenzen des Einsatzes von UML bzw. DSLs war die Idee bei GeneSEZ nicht direkt die Metamodelle mit denen die Modelle erstellt wurden auszuwerten sondern ein separates Metamodell für eine MDSD-Plattform zu erstellen und dieses auszuwerten. Dessen Struktur sollte geeignet für die Auswertung durch Modelltransformationen sein und nur Informationen beinhalten die für die Quellcodegenerierung von Interesse sind. Dies führt zu einem Metamodell welches speziell für die letzten Modelltransformationsschritte in Quellcode geeignet ist. Für die MDSD-Plattform bedeutet dies eine stabile, wiederverwendbare und investitionssichere Basis für die Quellcodegenerierung.

Mit den Begriffen der MDA kann das GeneSEZ Metamodell als abstracting mapping klassifiziert werden, da viele Informationen in der UML uninteressant für die Quellcodegenerierung sind. Mit den Konzept der DSLs kann es als DSL für Modelltransformationen, speziell von Modell-zu-Text Transformationen gesehen werden. In Bezug zu UML ergibt sich ein einfacheres und knapperes Metamodell für Modelltransformationen. Mit Bezug auf fachliche DSLs wird ein Zwischenschritt in Modelltransformationen eingeführt welche das anwendungsbereichspezifische Metamodell auf das GeneSEZ Metamodell abbildet und dieses dann in einem weiteren Schritt in Quellcode abgebildet wird. Dadurch werden komplexere direkte Abbildungen in Quellcode vermieden und die Modelltransformationen des GeneSEZ Metamodells in Quellcode werden über verschiedene Anwendungsbereiche hinweg wiederverwendbar.