MTF (model transformation framework)

Das Model Transformation Framework (MTF) ist ein von der IBM entwickelter Prototyp eines Werkzeugs zur Modelltransformation, das unter dem u.g. Link zur Verfügung steht. MTF unterstützt deklarative Mappings und Relationen, so dass die Transformationsdefinitionen in Form von Relationen beschrieben werden. MTF orientiert sich an Query View Transformation (QVT), ist aber nicht standardisiert, und basiert auf dem Eclipse Modeling Framework (EMF). Eine deklarative Sprache unterstützt die Erstellung der Mappings. Diese werden dann in der Folge von einer Transformations-Engine auf die zu transformierenden Modelle angewendet.


Das Konzept des Model Transformation Framework

MTF selbst ist auf einigen Plug-Ins aufgebaut, die dann wiederum auf der Basis von Eclipse oder weiteren IBM-Plattformen eingesetzt werden können. Aber die Transformations-Engine setzt nicht unbedingt die Verwendung von Eclipse voraus, lediglich eine direkte Abhängigkeit zum EMF-Framework ist gegeben. Dadurch ist aber die uneingeschränkte Verwendung innerhalb weiterer Java-Anwendungen realisierbar. Im Wesentlichen besteht das Model Transformation Framework (MTF) aus der Transformations-Engine, dem Regel-Editor, dem Debugger sowie dem Mapping-Viewer. Unter Berücksichtigung der Transformations- und Mapping-Regeln ist die Transformations-Engine für die Erzeugung der Modelle verantwortlich. Der Regel-Editor bietet neben einfachen Editier-Funktionen u.a. ein Syntax-Checking und eine entsprechende Kennzeichnung (Highlighting) der Syntax-Elemente.

Mit dem Debugger können wie üblich Transformationen im Einzelschritt-Verfahren nachverfolgt werden. Und letztendlich ist es durch den Mapping-Viewer möglich, das Resultat einer Transformation zu betrachten. Da MTF mehrere Modellarten unterstützt, bezeichnet man MTF auch als sehr flexibel. Dabei können verschiedene Elemente in Beziehung zueinander gesetzt werden und auch mehrere Modelle aktualisiert werden. Erst beim Aufruf der Transformations-Engine wird die Richtung der Transformation festgelegt. Dabei wird bestimmt, welches Modell das LHS-Modell (das Quell-Modell) und welches das RHS-Modell (das Zielmodell) ist.

Die MTF-Transformationen

Eine Anzahl sogenannter Mappings sind die Grundlage für MTF-Transformationen. Mappings legen fest, wie die Elemente eines Modells zu transformieren sind und setzen damit die Objekte von LHS- sowie RHS-Modell (Left Hand Side, Right Hand Side) zueinander in Beziehung. Werden dabei Objekte nicht referenziert, so werden diese als out-of-scope bezeichnet und damit bei der Transformation nicht weiter berücksichtigt. MTF sieht für die Erstellung von Relationen den deklarativen Ansatz vor. Eine Relation ist eine Beziehung, bei der stets eindeutig ist, ob sie besteht oder nicht. Dabei werden Objekte, sollten sie in einem RHS-Modell noch nicht existieren, durch die Transformation-Engine explizit generiert. Daneben sieht MTF die Beschreibung der Relationen auf Klassenebene vor, die Bestimmung von Relationen für individuelle Instanzen ist dagegen nicht erforderlich. Somit ist die Definition der Relationen komplett auf die Meta-Ebene verlagert. Relationen werden im Sinne von MTF auch als Mapping-Regeln bezeichnet und können auf alle Instanzen der Modell-Klassen angewendet werden.

Die spezifizierten Beziehungen zwischen den Modellen stellen die Basis für den Aufruf der Transformations-Engine dar. Dabei wird die Transformation durch zwei getrennte Stufen realisiert:

  • Mapping - Relationen werden bewertet und dabei Mappings erzeugt,
  • Reconciliation - es findet ein Abgleich der Modelle statt und inkonsistente Modelle werden wieder in einen konsistenten Zustand überführt.
Eine wesentliche Komponente von MTF ist die Resource Definition Language (RDL) in der die Relationen formuliert werden. Die Relationen werden dann geparst und dann der Transformations-Engine als Eingabe zur Verfügung gestellt. Die RDL dient der Definition und Anwendung der Relationen. Dabei integriert die RDL verschiedene Konzepte zur Formulierung der Relationen wie Übereinstimmungen (Correspondences), Ausdrücke (Expressions) und Bedingungen (Conditions).

Mit Correspondences werden Bestimmung sogenannte Constraints beschrieben. Um zwei Elemente aufeinander abbilden zu können, müssen diese Bedingungen erfüllt sein. Ausdrücke sind Bestandteil von Bedingungen, wo sie auch bewertet werden. Mit Bedingungen wiederum können Einschränkungen bei der Transformation definiert werden.

www.alphaworks.ibm.com/tech/mtf

Informationen zum Artikel
Deutsch:
Englisch: model transformation framework - MTF
Veröffentlicht: 29.10.2013
Wörter: 604
Tags: #Entwicklung, Codierung
Links: Debugger, Eclipse, Framework, Instanz, Link