QVT stellt einen formal beschriebenen Ansatz bereit, um Modelle auf der Grundlage ihrer Metamodelle zu transformieren. Das ist insbesondere im Umfeld der Model Driven Architecture relevant: Modelle können analysiert, abgeleitet, geprüft oder in eine andere Modellstruktur überführt werden.
Der Name verweist auf drei miteinander verbundene Aufgaben. Queries suchen bestimmte Modellelemente. Eine View ist ein aus einem Ursprungsmodell abgeleitetes Modell. Transformationen ordnen Elemente des Quellmodells Elementen eines Zielmodells zu und können dabei neue Strukturen erzeugen.
QVT und seine Sprachvarianten
Die QVT-Spezifikation unterscheidet mehrere Sprachbereiche. Die QVT Relations Language beschreibt Beziehungen zwischen Modellen deklarativ. Die Operational Mappings Language formuliert Abläufe und Transformationsschritte imperativ. Ergänzend stellt die QVT Core Language einen grundlegenden, formaleren Kern bereit.
Damit verbindet QVT unterschiedliche Arbeitsweisen: Beziehungen zwischen Mustern können deklarativ festgelegt werden, während einzelne Verarbeitungsschritte in einer operationalen Sprache beschrieben werden. Diese Kombination macht QVT zu einer hybriden Transformationssprache.
Definition über Metamodelle
Modelle beschreiben Struktur, Funktion oder Verhalten eines Systems. Ein Metamodell legt dagegen fest, welche Modellelemente und Beziehungen in einer bestimmten Modellwelt zulässig sind. QVT nutzt diese Metamodelle, um Transformationsregeln eindeutig zu verankern.
Die Konzepte stehen in Beziehung zur Meta Object Facility (MOF) und zur Object Constraint Language (OCL). OCL kann Bedingungen und Einschränkungen formulieren, während die QVT-Sprachen festlegen, wie Modellbeziehungen und Abläufe ausgedrückt werden.
Schematische Einordnung: QVT-Regeln vermitteln zwischen Modellen und ihren Metamodellen.
Typische Einsatzfelder
QVT eignet sich für Modell-zu-Modell-Transformationen, etwa wenn ein fachliches Modell in eine technische Darstellung überführt wird. Weitere Einsatzfelder sind abgeleitete Sichten, bidirektionale Beziehungen und die Prüfung, ob Modelle bestimmten Regeln entsprechen.
Werkzeuge und Implementierungen können unterschiedliche Teile der QVT-Sprachfamilie unterstützen. Deshalb sollte bei der Auswahl geprüft werden, welche Sprachvariante, Metamodell-Technik und Ausführungsumgebung benötigt wird.