Model transformation language: Difference between revisions

Content deleted Content added
Addbot (talk | contribs)
m Bot: Migrating 1 interwiki links, now provided by Wikidata on d:q6888352
Educres (talk | contribs)
No edit summary
Line 1:
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_engineering]]. 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.
The notion of [[model transformation]] is a concept from [[information technology]]. A software system may be seen as a set of information transformations. The Unix system itself may be viewed as a framework to use and to build transformation programs ([[Filter (software)|filters]]) from basic transformation languages like ''grep'', ''sed'', ''awk'', ''perl'', etc. A software development process itself may also be considered as a chain of transformation from abstract requirements to executable systems.
 
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.
Some transformation languages exhibit the characteristic of [[homoiconicity]], in which the language used for expressing a [[data model]] is also related to or identical to the transformation language. The most noteworthy example is the relationship between [[XML]] and [[XSLT]]. This kind of emphasis is viewed by some as having a favorable compatibility with [[model-driven engineering]].
 
== Available transformation languages ==