Eine Modelltransformation bildet ein Modell auf ein anderes Modell oder auf eine textuelle Darstellung ab. Der Begriff hängt eng mit Metamodellen und der modellgetriebenen Softwareentwicklung zusammen. In der Model Driven Software Development (MDSD) können beispielsweise plattformunabhängige Modelle in plattformspezifische Modelle und anschließend in Programmcode überführt werden.

KurzdefinitionEine Modelltransformation ist die automatisierte Überleitung eines Quellmodells in ein Zielmodell anhand einer Transformationsdefinition. Diese Definition enthält Regeln, die festlegen, welche Ausgangselemente welchen Zielelementen entsprechen.

Transformationsregeln werden häufig auf der Ebene der beteiligten Metamodelle formuliert. Für Modelle der Unified Modelling Language (UML) können dabei auch UML-Profile eingesetzt werden, um die Sprache für einen bestimmten Anwendungsbereich zu erweitern.

Vernetzte Serversysteme als Sinnbild für strukturierte Modelltransformation bei IT Wissen
Transformationen schaffen eine nachvollziehbare Verbindung zwischen abstrakten Modellen, technischen Plattformen und ausführbaren Artefakten.

Aufbau von Transformationsregeln

Eine Transformationsregel beschreibt, wie ein oder mehrere Elemente des Quellmodells in Elemente des Zielmodells übergehen. Der auf das Quellmodell bezogene Teil wird häufig als Left-Hand Side (LHS), der zielbezogene Teil als Right-Hand Side (RHS) bezeichnet. Die Regel kann zusätzlich Bedingungen, Zuordnungen und Berechnungen enthalten.

Die Konzepte und Beziehungen einer Modellierungssprache werden durch ihre abstrakte Syntax beschrieben. Sie bildet eine wichtige Grundlage, um Transformationen nach den beteiligten Sprachen und Abstraktionsebenen einzuordnen.

Endogene und exogene Transformationen

Endogen

Quell- und Zielmodell beruhen auf derselben abstrakten Syntax. Typische Aufgaben sind Optimierung, Vereinfachung und Normalisierung eines Modells.

Exogen

Quell- und Zielmodell verwenden unterschiedliche Modellierungssprachen. Dazu zählen Synthese, Reverse Engineering und Migration.

Eine exogene Transformation wird wegen des Wechsels zwischen unterschiedlichen Sprachen auch als Translation bezeichnet. Bei endogenen Transformationen bleibt die Sprache gleich, während Struktur oder Darstellung verändert werden.

Horizontale und vertikale Transformation

Die zweite wichtige Unterscheidung betrachtet die Abstraktionsebene. Bei einer horizontalen Transformation befinden sich Quell- und Zielmodell auf derselben Ebene. Ein Beispiel ist die Migration zwischen zwei Modellierungssprachen, die dieselben fachlichen Aspekte ausdrücken.

Bei einer vertikalen Transformation unterscheiden sich die Abstraktionsebenen. Wird ein abstraktes Modell zu einer konkreteren Darstellung verfeinert, spricht man von Refinement. Die Überführung einer Spezifikation in ausführbaren Code ist ein typisches Beispiel.

Merkmale der Umsetzung

Transformationssprachen und Werkzeuge unterscheiden sich danach, wie sie Regeln beschreiben, organisieren und ausführen. Wichtige Merkmale sind:

  • Richtung: Unidirektionale Regeln bilden vom Quell- zum Zielmodell ab. Bidirektionale Ansätze unterstützen prinzipiell beide Richtungen.
  • Regel-Scheduling: Es legt fest, wann und in welcher Reihenfolge mehrere Regeln ausgeführt werden.
  • Lokalisierung: Eine Regel wird gezielt auf einen bestimmten Ausschnitt des Quellmodells angewendet.
  • Synchronisierung: Veränderungen an zusammengehörigen Modellen müssen konsistent nachgeführt werden.
  • Organisation: Regeln können nach Aufgaben, Modellbereichen oder anderen Kriterien in Module gegliedert sein.

Methoden der Modelltransformation

Grundsätzlich lassen sich Modell-zu-Text- und Modell-zu-Modell-Transformationen unterscheiden. Bei Modell-zu-Text entsteht beispielsweise Text oder Code. Bei Modell-zu-Modell wird ein strukturiertes Zielmodell erzeugt, dessen Konformität mit seinem Metamodell geprüft werden kann.

Visitor

Ein Visitor durchläuft eine Modellrepräsentation und erzeugt daraus einen Textstrom oder Code.

Template

Textvorlagen kombinieren feste Inhalte mit Ausdrücken, die auf Daten des Quellmodells zugreifen.

Direct Manipulation

Eine API ermöglicht den gezielten Zugriff auf die Modellrepräsentation.

Structure Driven

Zunächst entsteht die Struktur des Zielmodells; danach werden Attribute und Referenzen ergänzt.

Operational

Operationale Ansätze ergänzen direkte Manipulation um spezielle Sprachmittel und Transformationsinformationen, etwa auf Basis von OCL.

Model Template

Modellfragmente dienen als Vorlage, sodass das Ergebnis gegen das Zielmetamodell geprüft werden kann.

Relational

Beziehungen zwischen Modellelementen werden über das mathematische Konzept der Relation ausgedrückt.

Graphtransformation

Modelle werden als Graphen dargestellt und mit passenden Regeln sowie grafischen Notationen transformiert.

In der Praxis kommen auch hybride Verfahren zum Einsatz, die mehrere Methoden und Techniken kombinieren.

Bekannte Transformationssysteme

Systeme, die entsprechende Methoden und Techniken unterstützen, werden als Transformationssysteme bezeichnet. Zu den etablierten Ansätzen und Sprachen zählen:

Welches System geeignet ist, hängt von den beteiligten Modellformaten, der gewünschten Richtung, der erforderlichen Rückverfolgbarkeit und dem angestrebten Ausgabeformat ab.