ArticleslgStudy

engineering

Model transformation language

Model transformation language 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 Model transformation language rather than just read about it. In short: A model transformation language in systems and software engineering is a language intended specifically for model transformation. Overview The notion of model transformation is central to model-driven development.

Key takeaways

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

Reference excerpt

A model transformation language in systems and software engineering is a language intended specifically for model transformation.

Overview The notion of model transformation is central to model-driven development. A model transformation, which is essentially a program which operates on models, can be written in a general-purpose programming language, such as Java. However, special-purpose model transformation languages can offer advantages, such as syntax that makes it easy to refer to model elements. For writing bidirectional model transformations, which maintain consistency between two or more models, a specialist bidirectional model transformation language is particularly important, because it can help avoid the duplication that would result from writing each direction of the transformation separately. Currently, most model transformation languages are being developed in academia. The OMG has standardised a family of model transformation languages called QVT, but the field is still immature. There are ongoing debates regarding the benefits of specialised model transformation languages, compared to the use of general-purpose programming languages (GPLs) such as Java. While GPLs have advantages in terms of more widely-available practitioner knowledge and tool support, the specialised transformation languages do provide more declarative facilities and more powerful specialised features to support model transformations.

Available transformation languages ATL : a transformation language developed by the INRIA Beanbag : an operation-based language for establishing consistency over data incrementally GReAT : a transformation language available in the GME Epsilon family : a model management platform that provides transformation languages for model-to-model, model-to-text, update-in-place, migration and model merging transformations. F-Alloy: a DSL reusing part of the Alloy syntax and allowing the concise specification of efficiently computable model transformations. Henshin : a model transformation language for EMF, based on graph transformation concepts, providing state space exploration capabilities JTL : a bidirectional model transformation language specifically designed to support non-bijective transformations and change propagation Kermeta : a general purpose modeling and programming language, also able to perform transformations Lx family : a set of low-level transformation languages M2M is the Eclipse implementation of the OMG QVT standard Mia-TL : a transformation language developed by Mia-Software MOF Model to Text Transformation Language: the OMG has defined a standard for expressing M2T transformations MOLA : a graphical high-level transformation language built in upon Lx. MT : a transformation language developed at King's College, London (UK) (based on Converge PL) QVT : the OMG has defined a standard for expressing M2M transformations, called MOF/QVT or in short QVT. SiTra : a pragmatic transformation approach based on using a standard programming language, e.g. Java, C# Stratego/XT : a transformation language based on rewriting with programmable strategies Tefkat : a transformation language and a model transformation engine Tom : a language based on rewriting calculus, with pattern-matching and strategies UML-RSDS : a model transformation and MDD approach using UML and OCL VIATRA : a framework for transformation-based verification and validation environment YAMTL: An internal DSL for model transformation within JVM languages (Java, Groovy, Xtend, Kotlin), featuring key characteristics such as runtime performance, reuse of transformation logic, incremental execution, and independence from IDEs.

See also Data transformation Domain-specific language (DSL) Filter (software) Model-driven engineering (MDE) Model-driven architecture (MDA) Template processor Transformation language Graph Transformation Web template XSLT - a standard language

References

Further reading The MDA Journal: Model Driven Architecture Straight From The Masters Model Driven Architecture: Applying MDA to Enterprise Computing, David S. Frankel, John Wiley & Sons, ISBN 0-471-31920-1 OMG MDA Guide MDA Guide Version 1.0.1 Model-Driven Architecture: Vision, Standards And Emerging Technologies at omg.org An Introduction to Model Driven Architecture at ibm.com From Object Composition to Model Transformation with the MDA at omg.org Mens, T, and Van Gorp, P: A Taxonomy of Model Transformation, Electronic Notes in Theoretical Computer Science, Volume 152, 27 March 2006, Pages 125-142 Czarnecki, K, and Helsen, S : Classification of Model Transformation Approaches. In: Proceedings of the OOPSLA'03 Workshop on the Generative Techniques in the Context Of Model-Driven Architecture, Anaheim, California, USA. Webpublished. Gronmo, R, and Oldevik, J : An Empirical Study of the UML Model Transformation Tool (UMT). [1]

Worked examples

Example 1 — a first encounter with Model transformation language

Start with the simplest possible case. Write down what Model transformation language 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 Model transformation language 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 Model transformation language 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 Model transformation language

In research
Model transformation language 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 Model transformation language 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
Model transformation language is common in secondary-school and first-year university syllabi. It links to neighbouring topics Specification languages, Systems engineering, so understanding it makes those chapters shorter.
In everyday life
Look for Model transformation language 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.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Model transformation language” →

Affiliate

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

How to study Model transformation language in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Model transformation language 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 Model transformation language out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Model transformation language in simple terms?

A model transformation language in systems and software engineering is a language intended specifically for model transformation. Overview The notion of model transformation is central to model-driven development.

Why does Model transformation language 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 Model transformation language?

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 Model transformation language.

Tags

  • Specification languages
  • Systems engineering

Keep exploring