Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
QVT

QVT

Overview

QVT (Query/View/Transformation), in the model-driven architecture
Model-driven architecture
Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of...

, is a standard for model transformation
Model transformation
A model transformation in Model Driven Engineering takes as input a model conforming to a given metamodel and produces as output another model conforming to a given metamodel.- Overview :...

 defined by the Object Management Group
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

.

Model transformation
Model transformation
A model transformation in Model Driven Engineering takes as input a model conforming to a given metamodel and produces as output another model conforming to a given metamodel.- Overview :...

 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 architecture
Model-driven architecture
Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of...

s (MDA). Recognizing this, a Request for proposal (RFP) has been issued by OMG, in 2002, on MOF
Meta-Object Facility
The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website. - Overview :...

 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.
Discussion
Ask a question about 'QVT'
Start a new discussion about 'QVT'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia

QVT (Query/View/Transformation), in the model-driven architecture
Model-driven architecture
Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of...

, is a standard for model transformation
Model transformation
A model transformation in Model Driven Engineering takes as input a model conforming to a given metamodel and produces as output another model conforming to a given metamodel.- Overview :...

 defined by the Object Management Group
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

.

Overview


Model transformation
Model transformation
A model transformation in Model Driven Engineering takes as input a model conforming to a given metamodel and produces as output another model conforming to a given metamodel.- Overview :...

 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 architecture
Model-driven architecture
Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of...

s (MDA). Recognizing this, a Request for proposal (RFP) has been issued by OMG, in 2002, on MOF
Meta-Object Facility
The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website. - Overview :...

 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
Object Constraint Language
The Object Constraint Language is a declarative language for describing rules that apply to Unified Modeling Language models developed at IBM and now part of the UML standard. Initially, OCL was only a formal specification language extension to UML. OCL may now be used with any Meta-Object...

 2.0 standard and also extends it to imperative OCL. Second QVT defines not one but three domain-specific languages
Domain-specific programming language
In software development, a domain-specific language is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique...

 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
Imperative programming
In computer science, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state...

 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
XQuery
XQuery is a query and functional programming language that is designed to query collections of XML data.XQuery 1.0 was developed by the XML Query working group of the W3C. The work was closely coordinated with the development of XSLT 2.0 by the XSL Working Group; the two groups shared...

) 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
XML
XML is a set of rules for encoding documents electronically. It is defined in the produced by the W3C and several other related specifications; all are fee-free open standards....

, Code, SQL
SQL
SQL is a database computer language designed for managing data in relational database management systems , and originally based upon Relational Algebra. Its scope includes data query and update, schema creation and modification, and data access control. SQL was one of the first languages for...

, etc.), are presently outside the scope of QVT and possibly subject to other standardization initiatives. They may be viewed as alternative transformation DSLs
Domain-specific programming language
In software development, a domain-specific language is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique...

 in the MDA technical space.

Implementations


QVT-Operational:
  • Borland Together
    Borland Together
    Together is a product line from Borland that integrates a Java IDE, which originally had its roots in JBuilder with a UML modeling tool.The product line used to come in various levels of functionality, called Together Developer, Together Designer, and Together Architect, however, since 2007, they...

     contains implementation of QVT Operational, which have been contributed to Eclipse Foundation
    Eclipse Foundation
    The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the open-source Eclipse Projects and helps cultivate both an open source community and an ecosystem of complementary products and services...

     and is developed as Eclipse M2M
    M2M (Eclipse)
    M2M is the Eclipse implementation of the OMG QVT standard . M2M is a subproject of .Three components are available for model to model transformations:...

     Operational QVT project.
  • SmartQVT
    SmartQVT
    SmartQVT is a full Java open source implementation of the QVT-Operational language which is dedicated to express model-to-model transformations.This tool compiles QVT transformations into Java programs to be able to run QVT transformations...

    : an Eclipse open source implementation (Orange Labs) of the QVT-Operational language. QVT compliant and very high potential.
  • Eclipse M2M
    M2M (Eclipse)
    M2M is the Eclipse implementation of the OMG QVT standard . M2M is a subproject of .Three components are available for model to model transformations:...

     Operational QVT: official Eclipse open source implementation of QVT Operational


QVT-Core:
  • OptimalJ
    OptimalJ
    Compuware OptimalJ is a model-driven development environment for Java.OptimalJ was first released in 2001 and was then based on Sun Microsystems' open source NetBeans IDE. Since 2006 OptimalJ is based on the open source Eclipse IDE...

    : Early access implementation of the QVT-Core language was in OptimalJ
    OptimalJ
    Compuware OptimalJ is a model-driven development environment for Java.OptimalJ was first released in 2001 and was then based on Sun Microsystems' open source NetBeans IDE. Since 2006 OptimalJ is based on the open source Eclipse IDE...

     version 3.4 from Compuware
    Compuware
    Compuware Corporation is a software company with products aimed at the information technology departments of large businesses. The company's services also include testing, development and performance management software for programs running on mainframe computer and distributed client-server...

    . 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
    M2M (Eclipse)
    M2M is the Eclipse implementation of the OMG QVT standard . M2M is a subproject of .Three components are available for model to model transformations:...

     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
    Tefkat
    Tefkat is a Model Transformation Language and a model transformation engine. The language is based on F-logic and the theory of stratified logic programs. The engine is an Eclipse plug-in for the Eclipse Modeling Framework .- History :...

     : an open source implementation of Tefkat language which is also similar to QVT. High potential. Open source.
  • ATL
    ATLAS Transformation Language
    ATL is a model transformation language and toolkit developed and maintained by OBEO and AtlanMod. It was initiated by the AtlanMod team...

     : a component in the M2M
    M2M (Eclipse)
    M2M is the Eclipse implementation of the OMG QVT standard . M2M is a subproject of .Three components are available for model to model transformations:...

     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
    IBM
    International Business Machines Corporation, abbreviated IBM, is a multinational computer technology and IT consulting corporation headquartered in Armonk, Town of North Castle, New York, United States. The company is one of the few information technology companies with a continuous history dating...

     alphaWorks
    AlphaWorks
    alphaWorks is IBM's "emerging technology portal". It is a web community for early adopters to preview and collaborate on prototype technology from IBM Research labs....

     project, last update in 2007.

See also

  • List of available transformation languages
  • Model-driven engineering
    Model-driven engineering
    Model-driven engineering is a software development methodology which focuses on creating models, or abstractions, more close to some particular domain concepts rather than computing concepts...

     (MDE)
  • Model Driven Architecture
    Model-driven architecture
    Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of...

     (MDA): OMG's vision of MDE
  • Domain-specific language (DSL)
  • Meta-Object Facility
    Meta-Object Facility
    The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website. - Overview :...

     (MOF): a language to write metamodels
  • Object Constraint Language
    Object Constraint Language
    The Object Constraint Language is a declarative language for describing rules that apply to Unified Modeling Language models developed at IBM and now part of the UML standard. Initially, OCL was only a formal specification language extension to UML. OCL may now be used with any Meta-Object...

     (OCL): a model constraint (and query) language
  • Model transformation
    Model transformation
    A model transformation in Model Driven Engineering takes as input a model conforming to a given metamodel and produces as output another model conforming to a given metamodel.- Overview :...

  • Model Transformation Language
    Model Transformation Language
    Model Transformation Language in systems and software engineering is a language for model transformation- Overview :The notion of model transformation is of central importance to information technology. A software system may be seen as a set of information transformations...

  • Metamodel

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