Model transformation: Difference between revisions

Content deleted Content added
Educres (talk | contribs)
Khazar (talk | contribs)
m clean up, typos fixed: tranformation → transformation using AWB
Line 5:
 
A model transformation usually specifies which models are acceptable as input, and if appropriate what models it may produce as output, by specifying the [[metamodel]] to which a model must conform.
 
 
== Classification of model transformations ==
 
Model transformations and languages for them have been classified in many ways.<ref name="CzarneckiHelsen"/><ref name="Stevens-landscape"/>.
Some of the more common distinctions drawn are:
 
Line 26 ⟶ 25:
For a bidirectional model transformation, the same type of model can sometimes be input and other times be output. Bidirectional transformations are necessary in situations where people are working on more than one model and the models must be kept consistent. Then a change to either model might necessitate a change to the other, in order to maintain consistency between the models. Because each model can incorporate information which is not reflected in the other, there may be many models which are consistent with a given model. Important special cases are:
 
*bijective transformations, in which there is exactly one model which is consistent with any given model; that is, the consistency relation is bijective. A pair of models is consistent if and only if it is related by the consistency bijection. Both models contain the same information, but presented differently.
 
*view transformations, in which a concrete model determines a single view model, but the same view model might be produced from many different concrete models. The view model is an abstraction of the concrete model. If the view may be updated, a bidirectional transformation is needed. This situation is known in the database field as [[View_View (database)|view-update]]. Any concrete model is consistent with its view.
 
It is particularly important that a bidirectional model transformation has appropriate properties to make it behave sensibly: for example, not making changes unnecessarily, or discarding deliberately made changes.<ref name="Stevens-properties"/>.
 
== Languages for model transformations ==
 
{{Main article: [[|Model transformation language]].}}
 
A model transformation may be written in a general purpose programming language, but specialised model transformation languages are also available. Bidirectional transformations, in particular, are best written in a language that ensures the directions are appropriately related. The [[OMG]]-standardised model transformation languages are collectively known as [[QVT]].
 
In some model transformation languages, for example the [[QVT]] languages, a model transformation is itself a model, that is, it conforms to a metamodel which is part of the model tranformationtransformation language's definition. This facilitates the definition of '''Higher Order Transformation'''s (HOTs),<ref name="Tisi"/>, i.e. transformations which have other transformations as input and/or output.
 
==See also==
Line 62 ⟶ 61:
| journal=IBM Systems Journal}}
</ref>
 
 
<ref name="Stevens-landscape">
Line 102 ⟶ 100:
 
}}
 
 
{{DEFAULTSORT:Model Transformation}}