Left Up Right Modellgetriebene Softwareentwicklung

Transformationssprachen

Aufgaben:

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
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"
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