ArticleslgStudy

engineering

QVT

QVT is a engineering topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand QVT rather than just read about it. In short: QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group. Overview Model transformation is a key technique used in model-driven architecture.

QVT — main illustration
QVT — illustration

Key takeaways

  • QVT belongs to engineering; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect QVT to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of QVT from memory before moving on to harder problems.

Reference excerpt

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

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 Meta-Object Facility (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 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 Model Driven Architecture (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 contains an implementation of QVT Operational, which has been contributed to the Eclipse Foundation and is now developed as the Eclipse M2M Operational QVT project. 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: 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 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 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 : 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 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 (MDE) Model Driven Architecture (MDA): OMG's vision of MDE Domain-specific language (DSL) Meta-Object Facility (MOF): a language to write metamodels Object Constraint Language (OCL): a model constraint (and query) language Model transformation Model transformation language Metamodel

References

Illustrations

QVT: QVT Architecture as shown in the OMG standard
QVT Architecture as shown in the OMG standard

Worked examples

Example 1 — a first encounter with QVT

Start with the simplest possible case. Write down what QVT claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In engineering, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to QVT before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about QVT ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of QVT

In research
QVT appears in engineering research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses QVT in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
QVT is common in secondary-school and first-year university syllabi. It links to neighbouring topics Systems engineering, Unified Modeling Language, so understanding it makes those chapters shorter.
In everyday life
Look for QVT outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study QVT in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what QVT means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain QVT out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is QVT in simple terms?

QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group. Overview Model transformation is a key technique used in model-driven architecture.

Why does QVT matter?

Because it connects several engineering ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study QVT?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on QVT.

Tags

  • Systems engineering
  • Unified Modeling Language

Keep exploring