A model transformation language in systems and software engineering is a language intended specifically for model transformation.
Overview
editThe 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.[1]
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.[2] 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.[3]
Available transformation languages
edit- ATL : a transformation language developed by the INRIA
- Beanbag (see [1]) : an operation-based language for establishing consistency over data incrementally
- GReAT : a transformation language available in the GME
- Epsilon family (see [2]) : 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 [3]: a DSL reusing part of the Alloy syntax and allowing the concise specification of efficiently computable model transformations.
- Henshin (see [4]) : 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 [5]).
- Kermeta : a general purpose modeling and programming language, also able to perform transformations
- Lx family (see [6]) : 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 (see [7]) : 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 [8] : 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 [9] : a model transformation and MDD approach using UML and OCL
- VIATRA : a framework for transformation-based verification and validation environment
- YAMTL (see [10]): 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
edit- 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
edit- ^ France, Robert; Rumpe, Bernhard (2007). Model-driven Development of Complex Software: A Research Roadmap. Future of Software Engineering (FOSE '07). arXiv:1409.6620. doi:10.1109/FOSE.2007.14.
- ^ https://www.jot.fm/issues/issue_2019_03/article7.pdf [bare URL PDF]
- ^ Höppner, Stefan; Haas, Yves; Tichy, Matthias; Juhnke, Katharina (2022). "Advantages and disadvantages of (Dedicated) model transformation languages". Empirical Software Engineering. 27 (6). arXiv:2201.13348. doi:10.1007/s10664-022-10194-7. S2CID 251644010.
Further reading
edit- 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). [11]