• Keine Ergebnisse gefunden

Transformationen sind ein wichtiger Bestandteil der Softwareentwicklung.

”In erster Li-nie dienen Modelltransformationen dazu, L¨ucken zwischen verschiedenen Abstraktions-eben zu ¨uberbr¨ucken.“, stellen Stahl et al. in [72] im Bezug auf die modellgetriebene Softwareentwicklung fest. Im Folgenden werden die f¨ur diese Arbeit wichtigen Merkma-le besprochen. Sie sind in Abbildung 2.4 dargestellt. Dabei wird gezeigt, was - unter welchen Umst¨anden - transformiert werden kann und wie dies vonstatten geht. Ebenso werden die Beziehungen zwischen Quelle und Ziel einer Transformation erl¨autert. Der Artikel

”Feature-based Survey of Model Transformation Approaches“ [23] von Czarnecki und Helsen dient als Literaturgrundlage zur Klassifikation von Transformationen. F¨ur eine detailliertere Darstellung sei ebenfalls auf diesen Artikel verwiesen.

Regeln Realisierung

TransͲ formation

QuellͲ/ZielͲ beziehungen

Richtung TransͲ

formationsart SpeziͲ

fikation

Granularität

Abbildung 2.4: Klassifikation von Modelltransformationen

Realisierungen von Transformationen k¨onnen auf Modellen oder Texten, die in der Re-gel Modelle repr¨asentieren, basieren. Hierbei unterscheidet man vier Transforma-tionsarten: Text-zu-Text, Text-zu-Modell, Modell-zu-Text und Modell-zu-Modell.

Text-zu-Text-Transformationen ¨uberf¨uhren einen beliebigen Text in einen anderen Text. Text-zu-Modell-Transformationen analysieren einen Text und rekonstruieren daraus ein Modell.

Modelltransformationen werden im Folgenden genauer besprochen, da sie zum Verst¨andnis des ModGraph-Ansatzes beitragen.

Modell-zu-Modell-Transformationen werden h¨aufig genutzt, um ein Modell in ein Anderes zu ¨uberf¨uhren. Dabei gilt das allgemeine Modelltransformations-muster aus Abbildung 2.5. Quellmodell und Zielmodell, in der Abbildung blau umrandet, sind Instanzen ihrer Metamodelle (gelb umrandet). Die Trans-formation wird ebenfalls als Modell aufgefasst (daher ist sie ebenfalls blau umrandet) und ist konform zu ihrem Transformations-Metamodell (gelb um-randet). Es beschreibt die abstrakte Syntax der Transformationssprache. Die Metamodelle instanziieren alle das selbe Metametamodell (gr¨un umrandet), das sich selbst instanziiert. Damit geht die Transformationsdefinition kon-form mit den von der OMG definierten Metaebenen. Die Ausf¨uhrung einer Transformation ist durch ein oranges Oval dargestellt. Sie interagiert mit den Modellen, indem das Quellmodell gelesen wird und gem¨aß der Transformati-onsvorschriften des Transformationsmodells in das Zielmodell ¨ubersetzt wird [45]. Dabei benutzt das Transformationsmodell Elemente aus Quell- und

Ziel-Quellmodell QuellͲMetamodell

Metametamodell

TransformationsͲ

Metamodell ZielͲMetamodell

Transformationsmodell Zielmodell

TransformationsͲ ausführung

instanziiert

instanziiert instanziiert instanziiert

instanziiert instanziiert instanziiert

führt aus

schreibt liest

Abbildung 2.5: Allgemeines Transformationsmuster der Modell-zu-Modell-Transformation (analog zu [45])

metamodell, um die Transformationsregeln aufzubauen.

Modell-zu-Text-Transformationen ¨uberf¨uhren Modelle in Texte. Dabei wird f¨ur jedes Modellelement der korrespondierende Text erzeugt. Dies geschieht in der Praxis durch Templates. Die Transformation nutzt Metamodellelemente des Quellmodells und schreibt konkrete Elemente des Zieltextes. Auf diese Art und Weise wird oft die eingangs zitierte

”L¨ucke zwischen verschiedenen Abstraktionsebenen“ geschlossen.

Regeln, auch Transfomationsregeln genannt, beschreiben die kleinsten Einheiten einer Transformation. Die zum Verst¨andnis dieser Arbeit n¨otigen Eigenschaften einer Regel, wie deren Dom¨ane und Anwendbarkeitsbedingungen, werden hier bespro-chen. F¨ur eine ausf¨uhrlichere Besprechung der Eigenschaften sei wiederum auf [23]

verwiesen.

Dom¨anen sind fester Bestandteil einer Regel. Eine Dom¨ane beschreibt, wie auf ein Modellelement zugegriffen werden kann. Normalerweise existieren innerhalb einer Regel eine Quell- und eine Zieldom¨ane, aber auch mehrere Dom¨anen sind m¨oglich. Letzteres tritt zum Beispiel beim Verschmelzen von Model-len auf. Dabei sind mehrere Quellmodelle zu einem Zielmodell zusammen zu f¨uhren. Die hier wichtigen Eigenschaften einer Dom¨ane sind deren Sprache und Muster.

Die Sprache einer Dom¨ane beschreibt die m¨oglichen Strukturen eines Modells innerhalb dieser. Sie entspricht, wie in 2.3, der Beschreibung des Modells. Eine Transformation, deren Quell- und Zielmodell Instanzen des selben

Metamo-dells sind, wird als endogene Transformation bezeichnet, wohingegen solche, deren Quell- und Zielmodell nicht dem selben Metamodell entsprechen, als exogene Transfomationen bezeichnet werden.

Muster innerhalb einer Dom¨ane stellen Fragmente eines Modells dar. Dabei werden String-, Term-, und Graphmuster unterschieden. Stringmuster wer-den in Texttransformationen verwendet, Term- und Graphmuster in Modell-zu-Modell-Transformationen. Sie k¨onnen durch die abstrakte oder konkrete Syntax der jeweils zugeh¨origen Quell- und Zielsprache repr¨asentiert werden.

Muster k¨onnen grafisch oder textuell dargestellt werden, je nach Definition der konkreten Syntax

Die Multidirektionalit¨at einer Regel gibt an, ob diese in verschiedenen Richtun-gen ausgef¨uhrt werden kann, sprich, ob von Quell- zu Zielmodellen und um-gekehrt transformiert werden kann.

Anwendbarkeitsbedingungen sind ebenfalls Bestandteil einer Regel. Dabei k¨ on-nen positive und negative Anwendbarkeitsbedingungen angegeben werden.

Diese m¨ussen zur Regelausf¨uhrung zwingend erf¨ullt sein.

Intermedi¨are Strukturen entstehen, wenn eine Regel zu ihrer Ausf¨uhrung Zusatz-informationen ben¨otigt. Diese Strukturen sind oft tempor¨ar und k¨onnen nicht in den zu transformierenden Modellen gespeichert werden.

Quell- und Zielbeziehungen einer Transformation setzen ihre Quelle und ihr Ziel bez¨ ug-lich der Sprache und des Modells in Beziehung.

Wird ein Modell in ein anderes Modell ¨uberf¨uhrt, spricht man von einer Ein-Ausgabe-Transformation. Sind die Metamodelle von Quelle und Ziel verschieden, so spricht man von einerexogenen Ein-Ausgabe-Transformation, sind die Metamo-delle gleich, von einer endogenen Ein-Ausgabe-Transformation. Endogene Trans-formationen bleiben innerhalb der selben Sprache, da sie der selben kontextfreien Syntax folgen.

Wird ein Modell durch Ausf¨uhrung einer Transformation ver¨andert, spricht man von einer¨uberschreibenden Transformation. Es erfolgt eine Aktualisierung des be-stehenden Modells durch diese Transformation.

Die Richtung einer Ein-Ausgabe-Transformation gibt an, ob die Transformation uni-oder multidirektional ist. Ist eine Transformation gerichtet, so sind es alle Re-geln innerhalb dieser. Multidirektionale Transformationen sind in der Praxis meist bidirektional.

Unidirektionale Transformationen sind solche, die nur in eine Richtung erfolgen, die also lediglich aus Quellmodellen Zielmodelle erzeugen. Zielmodelle k¨onnen weiter bearbeitet und modifiziert werden, die ¨Anderungen haben aber keine unmittelbare Auswirkung auf das oder die Quellmodelle.[54]

Multidirektionale Transformationen sind im Gegensatz dazu in beiden Richtungen m¨oglich. Es erfolgt eine Kopplung der Modelle, so dass ¨Anderungen vom Zielmodell

unmittelbar im Quellmodell nachvollzogen werden. [54]

Im Rahmen der strikt modellgetriebenen Softwareentwicklung werden schwerpunkt-m¨aßig unidirektionale Vorw¨artstransformationen ben¨otigt.

Die Granularit¨at einer Transformation bestimmt, ob es sich um eine Batchtransforma-tion oder eine inkrementelle TransformaBatchtransforma-tion handelt. Eine inkrementelle Trans-formation ist in der Lage, ein Update auf einem bereits bestehenden Zielmodell auszuf¨uhren. Dabei k¨onnen benutzerdefinierte ¨Anderungen im Zielmodell erhal-ten oder ¨uberschrieben werden. Bei inkrementellen Transformationen spielt die Nachvollziehbarkeit der ¨Anderungen durch Traces der Transformation eine Rol-le. Eine Trace speichert die Vorgehensweise bei der Transformation. Dabei wird festgehalten, wie jedes Element des Quellmodells auf eines des Zielmodells abge-bildet wurde. F¨ur die genaue Funktion von Traces sei auf [23] verwiesen. Eine Batchtransformation generiert das Zielmodell jedes Mal komplett neu.

Spezifikationen beschreiben formale Eigenschaften von Transformationen. Ein Beispiel f¨ur eine Spezifikation sind Vor- und Nachbedingungen in OCL, die an die Trans-formation gestellt werden. Nur einige TransTrans-formationsans¨atze besitzen einen zu-geh¨origen Spezifikationsmechanismus.

Zusammengefasst beschreiben Transformationen, wie ein Element der Quelldom¨ane in die Zieldom¨ane ¨uberf¨uhrt wird. Dabei ist es erlaubt, dass Quell- und Zieldom¨ane iden-tisch sind. Die Regeln k¨onnen modular sein und unter Umst¨anden wiederverwendet wer-den. Es wurde gezeigt, welche Eigenschaften Transformationsregeln erf¨ullen. Sie werden in einer DSL verfasst, die den in Abschnitt 2.3 besprochenen Eigenschaften unterliegt.

Die Frage nach der konkreten Syntax einer Regel bleibt bislang unber¨ucksichtigt. Beispie-le hierf¨ur finden sich in Teil II, der die bestehenden Ans¨atze zur Modelltransformation beschreibt.