QVT (query view transformation)

Query View Transformation (QVT) ist eine formal basierte und durch die OMG standardisierte Sprache, welche einen generischen Ansatz zur Modelltransformation bereitstellt. Modelltransformation ist im Kontext mit Model Driven Architecture (MDA) grundlegend, da erst durch eine Modell-zu-Modell-Transformation eine hinreichende Modellüberführung möglich ist. Beispielhaft sei hier auf UML-Modelle im Software-Entwicklungsprozess verwiesen, sofern diese über den Rahmen der Spezifizierung und Dokumentation hinaus verwendet werden sollen.


QVT ist eine Spezifikation, die im April 2008 in der Version 1.0 als Standard herausgegeben wurde. QVT integriert die Konzepte von Modellen und Metamodellen, wie der ebenfalls definierte Standard Meta Object Facility (MOF) diese vorgibt. Das Akronym QVT steht in etwa für " Abfragen, Sichten und Transformationen". Queries sind dabei Abfragen auf einem MOF-Modell, mit dem Ziel solche Modellelemente zu finden, die transformiert werden sollen. Nach dem Verständnis der OMG-Spezifikation ist View ein Modell, welches aus einem Ursprungsmodell abgeleitet wurde. Transformationen schließlich sind die Abbildungen von Elementen des Quellmodells auf die Elemente des Zielmodells. Dabei übernehmen Transformationen ein oder mehrere Quellelemente, rechnen diese um, um so ein oder auch mehrere Zielelemente zu generieren.

Die Sprachen für Metamodell-orientierte Transformationen

Die QVT-Spezifikation definiert für den Prozess der Metamodell-orientierten Transformation drei unterschiedliche Sprachen. Neben einer imperativen Sprache zur Beschreibung von Modelltransformationen bietet QVT auch einen deklarativen Teil - die QVT Relations Language, die neben einer textuellen auch eine grafische Syntax definiert. Die imperative Sprache wird auch als Operational Mappings Language bezeichnet, und mit ihr lassen sich sowohl imperative als auch hybride Transformationen schreiben.

Der Markt der QVT-Werkzeuge befindet sich noch im Zustand der aktiven Entwicklung - es sind aber bereits einige Produkte - auch als Open Source - verfügbar. Hier sind u.a. zu nennen für QVT Relations mediniQVT, Together von Borland, SmartQVT oder OpQVT, welches als Bestandteil der Eclipse Modelling Initiative in Eclipse integriert ist. Ebenso ist aus Erfahrungsberichten bekannt, dass die grafische QVT-Relationssprache von dem UML-Werkzeug Enterprise Architect unterstützt wird. Typische Einsatz-Szenarien für QVT sind Uni- oder bidirektionale Modelltransformationen oder auch die Verifikation von Modellen.

Query View Transformation (QVT) bietet die Möglichkeit der Definition von Transformationsregeln zwischen verschiedenen Sprachen auf der Basis ihrer Metamodelle, um dann entsprechende Instanzen davon zu transformieren. Die Konzepte von Modellen und Metamodellen basieren ebenfalls auf einem von der OMG vorgegebenen Standard - der Meta Object Facility (MOF). Danach ist ein Modell die abstrakte Repräsentation der Struktur und Funktion sowie des Verhaltens eines Systems. Ein Metamodel beschreibt eine Menge von Modellen, so dass diese dadurch abstrahiert werden.

Definition über Metamodelle

QVT selbst wird über Metamodelle definiert, ist eine sogenannte hybride Transformationssprache und integriert dabei einen deklarativen und einen imperativen Teil. So wird einerseits die Menge der Beziehungen zwischen Mustern deklarativ und andererseits operational eine Menge von sequentiellen Anweisungen zur Transformation imperativ beschrieben. Die Muster entsprechen den Metamodellen, die zur Transformation verwendet werden.

Für die drei Sprachen von QVT existieren jeweils Metamodelle, die wiederum auf der Object Constraint Language (OCL) 2.0 aufbauen. Die Spezifikation unterscheidet die relationale, die operationale sowie die Core-Sprache.

QVT-Sprachbeziehungen

QVT-Sprachbeziehungen

Die Abbildung zeigt in der Mitte den relationalen und den Core-Anteil, die zusammen den deklarativen Aspekt von QVT bilden. In der Abbildung rechts und links davon werden die imperativen Aspekte gezeigt. Mit der operationalen Sprache wird die Implementation der Transformation beschrieben. Die Black Box definiert eine Schnittstelle für außerhalb von QVT implementierte Transformationssprachen. Ebenso ist hier ein Trace Modell äquivalent zur relationalen Sprache definiert.

Seine besondere Stellung hat QVT im Rahmen der Model Driven Architecture (MDA) - hier im Zusammenhang speziell im Zusammenhang mit der Modell-zu-Modell-Transformation. Der große Vorteil der QVT-Relationssprache besteht darin, dass neben der textuellen Notation auch eine grafische Syntax definiert wurde. Auf der Ebene des Platform Specific Models (PSM) ist somit nicht nur eine Modell-zu-Code-Transformation möglich, sondern kann auch ein Modell erstellt werden.

http://www.omg.org/spec/QVT/

Informationen zum Artikel
Deutsch:
Englisch: query view transformation - QVT
Veröffentlicht: 28.10.2013
Wörter: 636
Tags: #Entwicklung, Codierung
Links: Abfrage, Ablaufverfolgung, Akronym, Anweisung, Aspekt