Softwareentwicklung · Modellierung

QVT: Query View Transformation verständlich erklärt

QVT beschreibt standardisierte Sprachen und Konzepte für Modelltransformationen. Der Überblick ordnet Queries, Views, Metamodelle sowie deklarative und imperative Ansätze ein.

Programmcode auf einem Bildschirm als Symbol für Softwaremodellierung
SchlüsselideeModelle werden auf Basis ihrer Metamodelle beschrieben, abgefragt und in andere Modelle überführt.
Kurzdefinition: Query View Transformation (QVT) ist eine von der Object Management Group standardisierte Sprachfamilie für Modelltransformationen. Sie unterstützt Abfragen, abgeleitete Sichten und die Überführung von Elementen zwischen Modellen.

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.

QuellmodellMetamodell AQVT RelationsdeklarativQVT CoreZielmodellMetamodell B

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.

Häufige Fragen zu QVT

Wofür steht QVT?

QVT steht für Query/View/Transformation beziehungsweise Query View Transformation. Die Begriffe bezeichnen Abfragen, abgeleitete Sichten und Modelltransformationen.

Was wird mit QVT transformiert?

Transformiert werden Modelle beziehungsweise deren Elemente. Grundlage sind die Metamodelle, die Struktur und zulässige Beziehungen der Modelle beschreiben.

Ist QVT eine einzelne Programmiersprache?

QVT ist eine Sprachfamilie mit mehreren Teilen, darunter relationale, operationale und Core-Konzepte.

Was bedeutet deklarativ bei QVT?

Ein deklarativer Ansatz beschreibt vor allem, welche Beziehungen zwischen Mustern oder Modellen gelten. Der genaue Ablauf wird weniger stark vorgegeben.

Welche Rolle spielt OCL?

OCL kann Bedingungen und Einschränkungen für Modellinhalte ausdrücken und bildet damit eine wichtige Grundlage für präzise Modellregeln.