Model transformations (MT) are the backbone of the Model-Driven concept. Primarily, MTs are programs that receive as input a source model that conforms to its source metamodel and produces a target model conforming to a target metamodel. Based on the work of <ref name="MTSurvey">Czarneck i K., Helsen S.: Feature-based survey of model transformation approaches. IBM Syst .J. 45 (3) (2006) 621-645</ref> MTs are categorised into model-to-code (M2C) and model-to-model (M2M) transformation approaches. In general, transforming models to code can be treated as a special case of model-to-model transformations; where a metamodel is provided for the target programming language. However, for many reasons (e.g., reusability) code is usually generated as text rather than its model.
M2C transformation (a.k.a. automated code generation) is the act of generating source code of an application from high-level models. Automated code generation can be also considered as a special subset of MT yielding textual languages as their target model. Their aim is to simply speed up development, increase code quality, and comply to coding standards. VIATRA2 supports mode-to-code generation in different ways.
A M2M transformation (usually referred as model transformation) takes as input a model conforming to a source metamodel and produces as output another model conforming to a target metamodel.
Usually, M2M are further categorised into
Both of these transformation categories are supported by the transformation language of the VIATRA2 framework.
<references/>