Model transformation language: Difference between revisions

Content deleted Content added
Educres (talk | contribs)
m Replaced 1 bare URLs by {{Cite web}}; Replaced "Archived copy" by actual titles
 
(38 intermediate revisions by 24 users not shown)
Line 1:
{{Short description|Specification language}}
{{External links|date=November 2024}}
A '''model transformation language''' in [[systems engineering|systems]] and [[software engineering]] is a language intended specifically for [[model transformation]].
 
== Overview ==
The notion of [[model transformation]] is central to [[Model-driven_engineeringdriven engineering|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 (programming language)|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 [[Object_Management_GroupObject Management Group|OMG]] has standardised a family of model transformation languages called [[QVT]], but the field is still immature.<ref name="FranceRumpe"/>
 
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 (programming language)|Java]].<ref>{{Cite web| title=The Future of Model Transformation Languages: An Open Community Discussion | url=https://www.jot.fm/issues/issue_2019_03/article7.pdf | archive-url=https://web.archive.org/web/20200215140328/http://www.jot.fm/issues/issue_2019_03/article7.pdf | archive-date=2020-02-15}}</ref> 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.<ref>{{cite journal | doi=10.1007/s10664-022-10194-7 | title=Advantages and disadvantages of (Dedicated) model transformation languages | date=2022 | last1=Höppner | first1=Stefan | last2=Haas | first2=Yves | last3=Tichy | first3=Matthias | last4=Juhnke | first4=Katharina | journal=Empirical Software Engineering | volume=27 | issue=6 | s2cid=251644010 | doi-access=free | arxiv=2201.13348 }}</ref>
 
== Available transformation languages ==
Line 11 ⟶ 15:
* [[GReAT]] : a transformation language available in the [[Generic Modeling Environment|GME]]
* Epsilon family (see [http://www.eclipse.org/epsilon]) : 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 [http://lightning.gforge.uni.lu]: a [[Domain-specific language|DSL]] reusing part of the [[Alloy Analyzer|Alloy]] syntax and allowing the concise specification of efficiently computable model transformations.
* [[JTL]] : a bidirectional model transformation language specifically designed to support non-bijective transformations and change propagation (see [http://jtl.di.univaq.it/]).
* Henshin (see [https://www.eclipse.org/henshin/]) : a model transformation language for [[Eclipse Modeling Framework|EMF]], based on [[graph rewriting|graph transformation]] concepts, providing state space exploration capabilities
* [[Janus Transformation Language|JTL]] : a bidirectional model transformation language specifically designed to support non-bijective transformations and change propagation (see [http://jtl.di.univaq.it/]).
* [[Kermeta]] : a general purpose modeling and programming language, also able to perform transformations
* Lx family (see [https://archive.today/20120710031939/http://lx.mii.lu.lv/]) : a set of low-level transformation languages
* [[M2M (Eclipse)|M2M]] is the [[Eclipse (software)|Eclipse]] implementation of the [[Object Management Group|OMG]] [[QVT]] standard
* Mia-TL : a transformation language developed by Mia-Software
Line 23 ⟶ 29:
* [[Stratego/XT]] : a transformation language based on rewriting with programmable strategies
* [[Tefkat]] : a transformation language and a model transformation engine
* [[Tom_Tom (pattern_matching_languagepattern matching language)|Tom]] : a language based on rewriting calculus, with pattern-matching and strategies
* [[UML-RSDS]] [httphttps://wwwprojects.dcseclipse.kcl.ac.ukorg/staff/kcl/uml2webprojects/modeling.agileuml] : a model transformation and MDD approach using UML and OCL
* [[VIATRA]] : a framework for transformation-based verification and validation environment
* YAMTL (see [https://yamtl.github.io/]): 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==
Line 40 ⟶ 47:
 
== References ==
{{Reflist|refs =
 
<ref name="FranceRumpe">
*OMG MDA Guide [http://www.omg.org/docs/omg/03-06-01.pdf ''MDA Guide Version 1.0.1'']
{{Cite conference
*[http://www.omg.org/mda/mda_files/Model-Driven_Architecture.pdf ''Model-Driven Architecture: Vision, Standards And Emerging Technologies''] at omg.org
| doi=10.1109/FOSE.2007.14
*[http://www-128.ibm.com/developerworks/rational/library/3100.html ''An Introduction to Model Driven Architecture''] at {{Not a typo|ibm}}.com
| last1=France|first1=Robert
*[http://www.sciences.univ-nantes.fr/info/lrsg/Recherche/mda/TOOLS.USA.pdf ''From Object Composition to Model Transformation with the MDA''] at omg.org
| last2=Rumpe|first2=Bernhard
* Mens, T, and Van Gorp, P: [http://dx.doi.org/10.1016/j.entcs.2005.10.021 ''A Taxonomy of Model Transformation''], Electronic Notes in Theoretical Computer Science, Volume 152, 27 March 2006, Pages 125-142
| title=Model-driven Development of Complex Software: A Research Roadmap
*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. [http://www.swen.uwaterloo.ca/~kczarnec/ECE750T7/czarnecki_helsen.pdf ''Webpublished.'']
| conference= Future of Software Engineering (FOSE '07)
*Gronmo, R, and Oldevik, J : An Empirical Study of the UML Model Transformation Tool (UMT). [http://interop-esa05.unige.ch/INTEROP/Proceedings/IndustrialPresentations/Gronmo.pdf]
| year=2007
*France, Robert B., and Rumpe, Bernhard: [http://doi.acm.org/10.1145/1253532.1254709 ''Model-driven Development of Complex Software: A Research Roadmap''], FOSE 2007: 37-54.
| arxiv=1409.6620
}}
</ref>
 
}}
 
== 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 [https://web.archive.org/web/20030731002849/http://www.omg.org/docs/omg/03-06-01.pdf ''MDA Guide Version 1.0.1'']
 
*[http://www.omg.org/mda/mda_files/Model-Driven_Architecture.pdf ''Model-Driven Architecture: Vision, Standards And Emerging Technologies''] at omg.org
== External links ==
*[http://www-128.ibm.com/developerworks/rational/library/3100.html ''An Introduction to Model Driven Architecture''] at {{Not a typo|ibm}}.com
*[https://web.archive.org/web/20060619055347/http://www.sciences.univ-nantes.fr/info/lrsg/Recherche/mda/TOOLS.USA.pdf ''From Object Composition to Model Transformation with the MDA''] at omg.org
* Mens, T, and Van Gorp, P: [httphttps://dx.doi.org/10.1016/j.entcs.2005.10.021 ''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. [https://web.archive.org/web/20060217080416/http://www.swen.uwaterloo.ca/~kczarnec/ECE750T7/czarnecki_helsen.pdf ''Webpublished.'']
*Gronmo, R, and Oldevik, J : An Empirical Study of the UML Model Transformation Tool (UMT). [http://interop-esa05.unige.ch/INTEROP/Proceedings/IndustrialPresentations/Gronmo.pdf]
 
[[Category:Systems engineering]]