Modelltransformationen (auch Modell-zu-Modell-Transformation oder M2M-Transformation) sind ein wichtiges Mittel bei der modellgetriebenen Softwareentwicklung (MDSD/MDA). Dabei treten Modelltransformationen in der Regel als zusätzlicher Schritt zwischen dem Validieren und der Codegenerierung auf. Sie bereiten die eingelesenen Modelle so auf, wie der Codegenerator sie erwartet. Transformationsregeln werden auf der Ebene der Metamodelle definiert. So müssen sowohl das Quell- als auch das Zielmodell Instanzen der verwendeten Metamodelle sein.
Inhaltsverzeichnis
|
Hierbei erzeugt die Transformation kein neues Modell, sondern modifiziert das Quellmodell. Diese Art der Transformation wird häufig verwendet, um Modelle um wenige, einfache Dinge zu erweitern. Beispielsweise könnte man für einen Zustandsautomaten einen 'NotAus' Zustand hinzufügen und diesen dann über neue Übergänge an alle modellierten Zustände anbinden.
Hier gilt immer : Quellmodell == Zielmodell
In diesen etwas komplexeren Szenarien werden aus einem oder mehreren Quellmodellen, ein oder mehr Zielmodellen transformiert. Dabei werden die Quellmodelle nicht verändert und die Metamodelle können (müssen aber nicht) unterschiedlich sein.
Hier gilt immer : Quellmodell != Zielmodell
In manchen Kreisen wird auch die Generierung von Text als Transformation (dann Modell-zu-Text) bezeichnet. Tatsächlich handelt es sich dabei um Codegeneratoren, wobei auch dieser Begriff nicht ganz ideal ist, weil er suggeriert, dass man nur Quelltext (Code) damit generiert. Tatsächlich werden in der Praxis aber alle Arten von Text aus Modellen abgeleitet.