HOME

TheInfoList



OR:

QVT (Query/View/Transformation) is a standard set of languages for
model transformation A model transformation, in model-driven engineering, is an automated way of modifying and creating models. An example use of model transformation is ensuring that a family of Computer model, models is consistent, in a precise sense which the softw ...
defined by the
Object Management Group The Object Management Group (OMG) is a computer industry standardization, standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portabl ...
.


Overview

Model transformation A model transformation, in model-driven engineering, is an automated way of modifying and creating models. An example use of model transformation is ensuring that a family of Computer model, models is consistent, in a precise sense which the softw ...
is a key technique used in
model-driven architecture Model Driven Architecture (MDA) 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 doma ...
. 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
Meta-Object Facility The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering. Its purpose is to provide a type system for entities in the CORBA architecture and a set of interfaces through which those types can be creat ...
(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. 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, QVT-BlackBox is a mechanism to invoke transformation facilities expressed in other languages (for example
XSLT XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subseque ...
or
XQuery XQuery (XML Query) is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats (JSON, bin ...
). 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 MOF Model to Text Transformation Language (Mof2Text or MOFM2T) is an Object Management Group (OMG) specification for a model transformation language. Specifically, it can be used to express transformations which transform a model into text (M2T), ...
).


History

In 2002, OMG issued a Request for proposal (RFP) on MOF Query/View/Transformation to seek a standard compatible with the
Model Driven Architecture Model Driven Architecture (MDA) 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 doma ...
(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, based on a draft by UK research Dr Laurence Tratt. The first version was submitted and approved in 2005. QVT Version 1.1 was released in January 2011.


Implementations

QVT-Operational: *
Borland Together Together is a product from Micro Focus, formerly from Borland (acquired by Micro Focus in 2009), formerly from TogetherSoft (acquired by Borland in 2003), that currently integrates a Java IDE, which originally had its roots in JBuilder, with ...
contains an implementation of QVT Operational, which has been contributed[m2m-dev]_Borland_QVT_contribution
_to_the_ [m2m-dev]_Borland_QVT_contribution
_to_the_Eclipse_Foundation">2m-dev]_Borland_QVT_contribution">[m2m-dev]_Borland_QVT_contribution
_to_the_Eclipse_Foundation_and_is_now_developed_as_the_ [m2m-dev]_Borland_QVT_contribution
_to_the_Eclipse_Foundation">2m-dev]_Borland_QVT_contribution">[m2m-dev]_Borland_QVT_contribution
_to_the_Eclipse_Foundation_and_is_now_developed_as_the_M2M_(Eclipse)">Eclipse_M2M_Operational_QVT_project. *M2M_(Eclipse).html" ;"title="M2M_(Eclipse).html" ;"title="Eclipse_Foundation.html" ;"title="2m-dev] Borland QVT contribution">[m2m-dev] Borland QVT contribution
to the Eclipse Foundation">2m-dev] Borland QVT contribution">[m2m-dev] Borland QVT contribution
to the Eclipse Foundation and is now developed as the M2M (Eclipse)">Eclipse M2M Operational QVT project. *M2M (Eclipse)">Eclipse M2M Operational QVT: official Eclipse open source implementation of QVT Operational. *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 Compuware OptimalJ was 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. OptimalJ ...
: Early access implementation of the QVT-Core language was in
OptimalJ Compuware OptimalJ was 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. OptimalJ ...
version 3.4 from
Compuware Compuware Corporation was an American software company based in Detroit, Michigan. The company offers products aimed at the information technology (IT) departments of large businesses, and its services also include testing, development, automation ...
. However, OptimalJ has been discontinued. QVT-Relations: *ModelMorf: A proprietary tool from
Tata Consultancy Services Tata Consultancy Services (TCS) is an Indian multinational information technology (IT) services and consulting company with its headquarters in Mumbai. It is a part of the Tata Group and operates in 150 locations across 46 countries. In July ...
Ltd. Fully compliant with QVT-Relations language. 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. *MediniQVT: 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. *The Eclipse M2M project aims to produce an implementation of QVT Core and Relations. * Echo, an open-source EMF-based tool for model repair and transformation built over the
Alloy An alloy is a mixture of chemical elements of which at least one is a metal. Unlike chemical compounds with metallic bases, an alloy will retain all the properties of a metal in the resulting material, such as electrical conductivity, ductility, ...
model finder, which provides an implementation of QVT-Relations syntax, but using semantics that deliberately depart from the OMG specification. QVT-Like: *jQVT: A compiled QVT engine for Java, using Xbase in place of OCL. A QVT-relational transformation is first compiled into Java source code, which then directly produces the target model from source ones at run-time, without interpreting the transformation rule again. It supports EMF models, as well as plain Java objects. *
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 (EMF). History T ...
: 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): an IBM
alphaWorks IBM Developer is a global community of coders, developer advocates, and digital resources that help developers learn, build, and connect. The IBM Developer website (previously known as IBM developerWorks) hosts a wide range of resources, tools, a ...
project, last updated in 2007.


See also

* List of available transformation languages * MOF Model to Text Transformation Language - OMG's transformation language specification for expressing M2T transformations *
Model-driven engineering Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract re ...
(MDE) *
Model Driven Architecture Model Driven Architecture (MDA) 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 doma ...
(MDA): OMG's vision of MDE *
Domain-specific language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
(DSL) *
Meta-Object Facility The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering. Its purpose is to provide a type system for entities in the CORBA architecture and a set of interfaces through which those types can be creat ...
(MOF): a language to write metamodels *
Object Constraint Language The Object Constraint Language (OCL) is a declarative language describing rules applying to Unified Modeling Language (UML) models developed at IBM and is now part of the UML standard. Initially, OCL was merely a formal specification language ex ...
(OCL): a model constraint (and query) language *
Model transformation A model transformation, in model-driven engineering, is an automated way of modifying and creating models. An example use of model transformation is ensuring that a family of Computer model, models is consistent, in a precise sense which the softw ...
* Model transformation language *
Metamodel A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...


References

{{DEFAULTSORT:Qvt Systems engineering Unified Modeling Language gl:Model-driven architecture