Modellgetriebene Softwareentwicklung
Transformationssprachen
Aufgaben:
- Vertikale Transformation [Olsen] von Modellen von höheren Abstraktionen (PIM) auf niedrige Abstraktionsebene (PSM) (MDA,[CH2006]) -
- Horizontale Transformationen [Olsen]: Abbildung und Abgleichung von Modellen auf der selben oder verschiedenen Abstraktionsebenen ([CH2006])
- Sichten auf ein System aufgrund von Abfragen [CH2006]
- Modelevolution wie Modellrefaktorisierung [CH2006]
- Rückgewinnung abstrakter Modelle aus Modellen niedriger Abstraktionsebene [CH2006]
Im Idealfall könnte aus einem Modell direkt ein ausführbares Programm geneiert werden. Ein generierter Code in einer Programmiersprache ist dann nur ein Kompromiss, um die Assemblercodegenerierung (mit Optimierung einschliesslich maschinenspezifischer Optimierung) wiederzuverwenden.
Konkrete Sprachen
- QVT - Query View Translation ein Teil von MDA
-
gibt es als QVTr relational und QVTo operational
Wikipedia über QVT
- Wombat
-
- textual, functional transformation language
- präzise und mächtige Syntax
- Transformation von Modellen, die auf verschiedenen Metametamodellen basieren
- ATL ATLAS Transfomation Language
- Wikipedia
nach [AT_UTWENTE] gibt es eine Virtuelle Maschine ATLVM, die die elemantaren Abfragen macht und Elemente erzeugt. Diese wird bei [AT_UTWENTE] als Zielmaschine verwendet.
Kritische Bemerkungen
[StahlVoelter2005] S.23: Die Autoren halten es für fraglich, ob zur Erzeugung von Sourcecode eine vorhergehende Modelltransformation praxistauglich ist.
Auf S.27 wird auch gemeint, dass es oft sinnvoll ist, den Code direkt aus dem PIM zu generieren → Architekturzentriertes Design. Das PSM in UML bringt keinen Mehrwert, da die Gesamtabstraktion des PIM den Mehrwert bringt.
Andererseits wird in From Front End To Code - MDSD in Practice 2006 demonstriert, wie eine Model-To-Model-Transformation ein Modell einer Zustandsmaschine vereinfacht, um dann als Grundlage zur Codegenerierung zu dienen.
Vergleich von Transformationssprachen
- [CH2006] K.C.,S.h.:"Feature-Based Survey of Model Transformation Approaches"
-
- Modelltransformationen ähnelt Programmtransformation.
Programmstransformation basiert auf: Term rewriting, attribut-Grammitiken, und funktionale Programmierung.
- definiert Begriffe für Merkmale der Transformationsmechanismen (S.8)
- MV: "MDSD: Model Transformations"
- behandelt mehrere Sprachen: QVTr,QVTo, ATL,xTend
Abbildungen von Transformationssprachen untereinander
Um die Mächtigkeiten der Sprachen zu vergleichen, bildet man eine Sprache auf die andere ab (wie in der theoretischen Informatik Berechenbarkeitsmodelle "Universal Register Maschine" auf "Turing Maschine")
- [AL_UTWENTE]: Achieving QVTO & ATL Interoperability An Experience Report on the Realization of a QVTO to ATL Compiler
-
Informatik- und Netzwerkverein Ravensburg e.V
Rudolf Weber