Jump to content

QVT: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 18: Line 18:
== Implementations ==
== Implementations ==
QVT-Operational:
QVT-Operational:
*[[Borland Together]] contains implementation of QVT Operational, which [http://dev.eclipse.org/mhonarc/lists/m2m-dev/msg00003.html have been contributed] to [[Eclipse Foundation]] and is developed as [[M2M (Eclipse)|Eclipse M2M]] Operational QVT project.
*[[Borland Together]] is a component in the [[M2M (Eclipse)|M2M]] Eclipse project. Partially QVT-compliant.
*[[SmartQVT]]: an Eclipse open source implementation (Orange Labs) of the QVT-Operational language. QVT compliant and very high potential.
*[[SmartQVT]]: an Eclipse open source implementation (Orange Labs) of the QVT-Operational language. QVT compliant and very high potential.
*[[M2M (Eclipse)|Eclipse M2M]] official Eclipse open source implementation of QVT operational (Relation and Core will be developed on another subproject)
*[[M2M (Eclipse)|Eclipse M2M]] Operational QVT: official Eclipse open source implementation of QVT Operational


QVT-Core:
QVT-Core:
Line 26: Line 26:


QVT-Relations:
QVT-Relations:
*MediniQVT: EMF based transformation engine with EPL license for engine and non-comercial license editor/debuger available at http://projects.ikv.de/qvt/wiki
*[[M2M (Eclipse)|Eclipse M2M]] Declarative QVT: official Eclipse open source implementation of QVT Core and Relations, not yet released.
*ModelMorf: A proprietary tool from Tata Consultancy Services Ltd. Fully compliant with QVT-Relations language. A trial version can be downloaded from http://www.tcs-trddc.com/ModelMorf/ModelMorf.htm. The trial version 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 MasterCraft.
*ModelMorf: A proprietary tool from Tata Consultancy Services Ltd. Fully compliant with QVT-Relations language. A trial version can be downloaded from http://www.tcs-trddc.com/ModelMorf/ModelMorf.htm. The trial version 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 MasterCraft.



QVT-Like:
QVT-Like:
*[[Tefkat]] : an open source implementation of Tefkat language which is also similar to QVT. High potential. Open source.
*[[Tefkat]] : an open source implementation of Tefkat language which is also similar to QVT. High potential. Open source.
*[[ATLAS Transformation Language|ATL]] : a component in the [[M2M (Eclipse)|M2M]] Eclipse project. ATL is a QVT-like transformation language and engine with a large user community and an open source library of transformations.
*[[ATLAS Transformation Language|ATL]] : a component in the [[M2M (Eclipse)|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): [[IBM]] [[alphaWorks]] [http://www.alphaworks.ibm.com/tech/mtf project], last update in 2007.


==See also==
==See also==

Revision as of 14:07, 13 August 2009

QVT Architecture

QVT (Query/View/Transformation), in the model-driven architecture, is a standard for model transformation defined by the Object Management Group.

Overview

Model transformation is the process of converting a model Ma conforming to metamodel MMa into a model Mb conforming to metamodel MMb. If MMa=MMb, then the transformation is endogenous, otherwise it is an exogenous transformation. Model transformation is a critical component of model-driven architectures (MDA). Recognizing this, a Request for proposal (RFP) has been issued by OMG, in 2002, 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.

Presently there are several products (commercial or open source) that claim compliance to the QVT standard. QVT defines a standard way to transform source models into target models. There are several ideas in this proposal. One is that the source and target models may conform to arbitrary MOF metamodels. Another one is that the transformation program is considered itself as a model, and as a consequence also conforms to a MOF metamodel. This means more precisely that the abstract syntax of QVT should conform to a MOF 2.0 metamodel.

As a matter of fact, this is a bit more complex. First the QVT language integrates the OCL 2.0 standard and also extends it to imperative OCL. Second QVT defines not one but three domain-specific languages named Relations, Core and Operational Mappings and these languages are organized in a layered architecture. Relations and Core are declarative languages at two different levels of abstraction, with a normative mapping between them. The Relations language has a textual and a graphical concrete syntax. The QVT/OperationalMapping language is an imperative language that extends both QVT/Relations and QVT/Core. The syntax of the QVT/OperationalMappings language provides constructs commonly found in imperative languages (loops, conditions, etc.).

Finally a mechanism called QVT/BlackBox for invoking transformation facilities expressed in other languages (XSLT, XQuery) is also an important part of the specification. It is especially useful for integrating existing non-QVT libraries and transformations.

For the time being the QVT standard only addresses model to model transformations, model meaning some entity conforming to any MOF 2.0 metamodel. All transformations of type model to text or text to model, whatever the text is (XML, Code, SQL, etc.), are presently outside the scope of QVT and possibly subject to other standardization initiatives. They may be viewed as alternative transformation DSLs in the MDA technical space.

Implementations

QVT-Operational:

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:

  • MediniQVT: EMF based transformation engine with EPL license for engine and non-comercial license editor/debuger available at http://projects.ikv.de/qvt/wiki
  • Eclipse M2M Declarative QVT: official Eclipse open source implementation of QVT Core and Relations, not yet released.
  • ModelMorf: A proprietary tool from Tata Consultancy Services Ltd. Fully compliant with QVT-Relations language. A trial version can be downloaded from http://www.tcs-trddc.com/ModelMorf/ModelMorf.htm. The trial version 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 MasterCraft.


QVT-Like:

  • Tefkat : an open source implementation of Tefkat language which is also similar to QVT. High potential. 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): IBM alphaWorks project, last update in 2007.

See also

References

Further reading

  • The MDA Journal: Model Driven Architecture Straight From The Masters
  • David S. Frankel Model Driven Architecture: Applying MDA to Enterprise Computing. John Wiley & Sons, ISBN 0-471-31920-1