# model transformation framework (MTF)

The Model TransformationFramework (MTF) is a prototype tool for model transformation developed by IBM and available at the link below. MTF supports declarative mappings and relations, so that transformation definitions are described in terms of relations. MTF is oriented towards Query View Transformation( QVT), but is not standardized, and is based on the Eclipse Modeling Framework( EMF). A declarative language supports the creation of the mappings. These are then subsequently applied by a transformation engine to the models to be transformed.

## The concept of the Model Transformation Framework

MTF itself is built on some plug-ins, which in turn can be used on the basis of Eclipse or other IBM platforms. But the transformation engine does not necessarily require the use of Eclipse, only a direct dependency to the EMF framework is given. Thereby, however, the unrestricted use within further Java applications is feasible. Essentially, the Model Transformation Framework (MTF) consists of the transformation engine, the rule editor, the debugger and the mapping viewer. Taking into account the transformation and mapping rules, the transformation engine is responsible for generating the models. The rule editor offers simple editing functions, syntax checking and highlighting of syntax elements.

With the debugger, transformations can be traced as usual in a single-step process. And finally, the Mapping Viewer makes it possible to view the result of a transformation. Since MTF supports several types of models, it is also called very flexible. Different elements can be related to each other and also multiple models can be updated. Only when the transformation engine is called, the direction of the transformation is determined. It is determined which model is the LHS model (the source model) and which is the RHS model (the target model).

## The MTF transformations

A number of so-called mappings are the basis for MTF transformations. Mappings define how the elements of a model are to be transformed and thus relate the objects of the LHS and RHS models (Left Hand Side, Right Hand Side) to each other. If objects are not referenced in this process, they are referred to as out-of-scope and are thus not considered further during the transformation. MTF uses the declarative approach for the creation of relations. A relation is a relationship that is always unambiguous as to whether it exists or not. In this case, if objects do not yet exist in an RHS model, they are explicitly generated by the transformation engine. In addition, MTF provides for the description of relations at class level, but the definition of relations for individual instances is not required. Thus, the definition of relations is completely shifted to the meta level. In terms of MTF, relations are also referred to as mapping rules and can be applied to all instances of the model classes.

The specified relations between the models form the basis for calling the transformation engine. Here, the transformation is realized by two separate stages:

- Mapping - relations are evaluated and mappings are created in the process,
- Reconciliation - reconciliation of models takes place and inconsistent models are transformed back to a consistent state.

An essential component of MTF is the Resource Definition Language( RDL) in which the relations are formulated. The relations are then parsed and provided as input to the transformation engine. The RDL is used to define and apply the relations. The RDL integrates various concepts for the formulation of the relations such as correspondences, expressions and conditions.

Correspondences are used to describe constraints. In order to map two elements to each other, these conditions must be fulfilled. Expressions are part of conditions, where they are also evaluated. Conditions, in turn, can be used to define restrictions on the transformation.

www.alphaworks.ibm.com/tech/mtf