Jump to content

QVT: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 62: Line 62:
* [[Model transformation]]
* [[Model transformation]]
* [[Model transformation language]]
* [[Model transformation language]]
* [[Metamodel]]
* [[Metamodeling|Metamodel]]


== References ==
== References ==

Revision as of 15:46, 19 March 2012

QVT Architecture as shown in the OMG standard

QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group [1].

Overview

Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the OMG standard covers transformations, views and queries together. Model queries and model views can be seen as special kinds of model transformation, provided that we use a suitably broad definition of model transformation: a model transformation is a program which operates on models.

The QVT standard defines three model transformation languages. All of them operate on models which conform to MOF 2.0 metamodels; the transformation states which metamodels are used. A transformation in any of the three QVT languages can itself be regarded as a model, conforming to one of the metamodels specified in the standard. The QVT standard integrates the OCL 2.0 standard and also extends it with imperative features.

  • QVT-Operational is an imperative language designed for writing unidirectional transformations.
  • QVT-Relations is a declarative language designed to permit both unidirectional and bidirectional model transformations to be written. A transformation embodies a consistency relation on sets of models. Consistency can be checked by executing the transformation in checkonly mode; the transformation then returns True if the set of models is consistent according to the transformation and False otherwise. The same transformation can be used in enforce mode to attempt to modify one of the models so that the set of models will be consistent. The QVT-Relations language has both a textual and a graphical concrete syntax.
  • QVT-Core is a declarative language designed to be simple and to act as the target of translation from QVT-Relations. However, QVT-Core has never had a full implementation and in fact it is not as expressive as QVT-Relations.[2] Hence the QVT Architecture pictured above is misleading: the transformation from QVT-Relations to QVT-Core given in the QVT Standard is not semantics-preserving.

Finally there is a mechanism called QVT-BlackBox for invoking transformation facilities expressed in other languages (for example XSLT or XQuery).

Although QVT has a broad scope, it does not cover everything that has been considered as a model transformation, view or query. For example, the QVT languages do not permit transformations to or from textual models, since each model must conform to some MOF 2.0 metamodel. Model-to-text transformations are being standardised separately by OMG (see MOFM2T).


History

In 2002, OMG issued a Request for proposal (RFP) on MOF Query/View/Transformation to seek a standard compatible with the MDA recommendation suite (UML, MOF, OCL, etc.).

Several replies were given by a number of companies and research institutions that evolved during three years to produce a common proposal that was submitted and approved.

QVT Version 1.1 was released in January 2011.[1]

Implementations

QVT-Operational:

  • Eclipse M2M Operational joga joga joga QVT: official Eclipse open source implementation of QVT Operational.[4]
  • MagicDraw has the QVT plugin which uses Operational QVT implementation that is provided by the Eclipse M2M project.
  • SmartQVT: an Eclipse open source implementation (Orange Labs) of the QVT-Operational language.

QVT-Core:

  • OptimalJ: Early access implementation of the QVT-Core language was in OptimalJ version 3.4 from Compuware. However, OptimalJ has been discontinued.

QVT-Relations:

  • ModelMorf: A proprietary tool from Tata Consultancy Services Ltd. Fully compliant with QVT-Relations language. The trial version[5] provides a command line utility which consumes and produces models in XMI form. A full-fledged, repository integrated version is available as part of their proprietary modeling framework.[6]
  • MediniQVT[7]: EMF based transformation engine with EPL license for engine and non-commercial license editor/debugger. Uses QVT-Relations syntax, but deliberately departs from the semantics of the OMG standard. [8]
  • The Eclipse M2M project aims to produce an implementation of QVT Core and Relations. [4]

QVT-Like:

  • Tefkat : an open source implementation of Tefkat language which is also similar to QVT. Open source.
  • ATL : a component in the M2M Eclipse project. ATL is a QVT-like transformation language and engine with a large user community and an open source library of transformations.
  • Model Transformation Framework (MTF)[9]: an IBM alphaWorks project, last updated in 2007.

See also

References

  1. ^ a b Object Management Group. "Meta Object Facility (MOF) 2.0 Query/View/Transformation (QVT)". Retrieved 9 May 2011.
  2. ^ Stevens, Perdita (2011). "A simple game-theoretic approach to checkonly QVT Relations". Software and Systems Modeling. Berlin / Heidelberg: Springer. doi:10.1007/s10270-011-0198-8.
  3. ^ http://dev.eclipse.org/mhonarc/lists/m2m-dev/msg00003.html
  4. ^ a b Eclipse M2M Project. http://www.eclipse.org/m2m/ . Retrieved 9 May 2011.
  5. ^ ModelMorf beta. http://www.tcs-trddc.com/trddc_website/ModelMorf/ModelMorf.htm . Retrieved 9 May 2011.
  6. ^ TCS Code Generator Framework (previously known as MasterCraft). http://www.tcs.com/offerings/technology-products/code-generator-framework/Pages/default.aspx . Retrieved 9 May 2011.
  7. ^ Medini QVT. http://projects.ikv.de/qvt/wiki . Retrieved 9 May 2011.
  8. ^ Kiegeland, J.; Eichler, H. (2008), "medini QVT workshop", Enschede, Telematica Instituut http://projects.ikv.de/qvt/downloads/22 {{citation}}: Missing or empty |title= (help); Unknown parameter |month= ignored (help)CS1 maint: location missing publisher (link)
  9. ^ Model Transformation Framework. http://www.alphaworks.ibm.com/tech/mtf . Retrieved 9 May 2011.