A model transformation language in systems and software engineering is a language intended specifically for model transformation.
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.
ATL : a transformation language developed by the INRIA
Beanbag (see ) : an operation-based language for establishing consistency over data incrementally
GReAT : a transformation language available in the GME
Epsilon family (see ) : 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 (see ) : 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 (see ).
This page is automatically generated and may contain information that is not correct, complete, up-to-date, or relevant to your search query. The same applies to every other page on this website. Please make sure to verify the information with EPFL's official sources.
A model transformation, in model-driven engineering, is an automated way of modifying and creating platform-specific model from platform-independent ones. An example use of model transformation is ensuring that a family of models is consistent, in a precise sense which the software engineer can define. The aim of using a model transformation is to save effort and reduce errors by automating the building and modification of models where possible. Model transformations can be thought of as programs that take models as input.