Chapter 1. Hintergrund und Idee von GeneSEZ

Nach einem kleinen Einblick in modellgetriebene Ansätze wird die Idee des GeneSEZ Ansatzes beschrieben, gefolgt von einem kleinen Überblick von GeneSEZ.

1.1. MDA und MDSD in Kürze

Die modellgetriebenen Ansätze beschäftigen sich allgemein mit der effektiven Nutzung von Anwendungsmodellen in der Softwareentwicklung. Effektiv meint hier die Nutzung, die über Dokumentation und Überblick der Software hinaus geht. Dafür gibt es zwei unterschiedliche Ansätze:

interpretativ

Modelle werden zur Laufzeit der Anwendung interpretiert.

generativ

Modelle werden zur Entwicklungszeit genutzt und es wird ein Teil der Software automatisch aus den Modellen abgeleitet.

Wir beschränken uns hier auf die generativen Ansätze. Die MDA (Model Driven Architecture) ist eine Sammlung von Spezifikationen ist ein Ansatz zur teilautomatisierten Softwareentwicklung der OMG (Object Managment Group). Die MDSD (Model Driven Software Development, englisch für Modellgetriebene Softwareentwicklung) bezeichnet die pragmatische Vorgehensweise zur Generierung von Softwareartefakten aus Modellen.

Die Modelle müssen nicht zwingend formal sein. Sie müssen lediglich deterministisch auswertbar sein. Dies wird meist durch ein Metamodell sichergestellt. Die Figure 1-1 zeigt eine vereinfachte Darstellung generativer modellgetriebener Ansätze.

Figure 1-1. Vereinfachte Darstellung generativer, modellgetriebener Ansätze

Anwendungsmodelle werden durch Transformationen in Quellcode transformiert. Dabei können Transformationen in vorgelagerten Schritten Modelle verändern oder Modelle aus anderen erstellen. Im Kontext der MDA werden Modelltransformationen auch Mapping Functions genannt. Die MDA führt weiterhin die Begriffe Platform Independent Model (PIM) und Platform Specific Model (PSM) ein, lässt die konkrete Definition sowie die Unterscheidung dieser aber offen als Matter of Degree.

Als Ziele generativer, modellgetriebener Ansätze werden meist die Wiederverwendung von Architekturen, die gleichbleibend hohe Qualität des Quellcodes sowie die Steigerung der Entwicklungsgeschwindigkeit genannt.

In einem generativen, modellgetriebenen Entwicklungsprozess entsteht eine nicht zu verachtende Menge an Quellcodeartefakten (z.B. Transformationsbeschreibungen (Quellcodeschablonen/Templates, Skripte), Komponenten) zur automatisierten Generierung von Quellcode aus Modellen. Die Erstellung dieser Artefakte ist meist aufwändiger, als die manuelle Implementierung des Quellcodes den diese Artefakte erzeugen. Um die oben genannten Ziele zu erreichen, sollten die Quellcodeartefakte des Entwicklungsprozesses eine hohe Wiederverwendung aufweisen. Der projektübergreifende Einsatz sollte daher angestrebt werden.

Da alle Quellcodeartefakte eines generativen, modellgetriebenen Entwicklungsprozesses von dem verwendeten Metamodell abhängig sind, ist der Stellenwert der im Entwicklungsprozess genutzten Metamodelle relativ hoch.