Standards and technologies
MDA standards
MOF QVT
The Object Management Group (OMG) has defined a standard for model transformations in Model Driven Architecture (MDA). This standard is called Query, Views, and Transformation (QVT). Queries are performed on input models to find specific elements or transformation. An example of a query could be to find all classes in a model. Views are models derived from other models. The result of the query is a kind of view. Transformations are, as explained above, the process of transforming an input model to an output model. A more detailed description of QVT can be found at http://umt-qvt.sourceforge.net/
Queries are performed on input models for finding specific elements or information. Example: Return all classes. Views are models derived from other models. The result of a query is a kind of view. Transformations takes a model as input and creates a new model Example: PIM->PSM. Mappings are defined in Relations language or Core language. Uses Queries and Views.
To define a transformation the abstract syntax must be defined as a metamodel in MOF. Concrete syntax expressed as text (program code) or models. Transformations are defined in two variations: Declarative or imperative.

- Relations
- Declarative specification of the mapping between MOF models
- Equivalent with Java code (high-level)
- Relations to Core transformation
- Equivalent with compiling Java code into byte code
- Core
- Equivalent with Java byte code (low-level)
- Operational mappings
- Standard language for defining Relations (or Core) in an imperative way
- Black box
- Offers the possibility to plug-in code from any programming language with a MOF binding
Given a defined metamodel for source and target, metamodels must be well-defined according to MOF (models on level M2). One can define transformations between these two worlds in a general, standardized manner. The transformation can be used on all instances of the source metamodel. The result will be an instance of the target metamodel.
Transformation tehnologies
There are multiple technologies for mapping and transformation:
- Java
- IBM Model Transformation Framework (MTF)
- Atlas Transformation Language (ATL)
- Not many QVT-based ones: QVT support in Borland Together Architect 2006
Java
Technologies such as MDR and EMF allow for generation of Java API toward arbitrary metamodels. Using these APIs mappings can be defined in a Java program. The transformation is performed by running the Java program on a model instance given as input. The drawback is that API generation for metamodels is needed. The pros are a well-known language for mapping definition.
IBM MTF
MTF was developed in order to experiment with QVT related concepts,. MTF is not QVT compliant. MTF rules describe the relationships between the input and the output metamodel. Provides functionality to define mappings between metamodels and execute the model transformations.
Atlas Transformation Language (ATL)
The Atlas Transformation Language (ATL) is a hybrid language (a mix of declarative and imperative constructions) designed to express model transformations as described by the MDA approach. It is not QVT, but similar and with the corresponding functionality. A transformation model in ATL is expressed as a set of transformation rules. The recommended style of programming is declarative. OCL is used to expression constraints on rules. Guards (constraints) on the entry point for a rule. Different kinds of M3/M2 (meta)metamodel technology supported: Netbeans MDR and EMF Ecore. Can use either EMF or MDR metamodels as input and output. Can also be used to produce textual output.
- Developed by LINA (Laboratoire D’Informatique De Nantes Atlantique)
- Université de Nantes Faculté des Sciences et Techniques
- Building IRIN 2, rue de la Houssinière, BP 92208
- 44322 Nantes cedex 3
- France
- Proposal to the OMG MOF/QVT RFP.
- Model transformation language
- Hybrid
- Declarative => transformations based on simple mappings
- Imperative => for complex mappings
- Based on OCL
- Hybrid
- Documentation
An ATL transformation program is composed of rules that define how source model elements are matched and navigated to create and initialize the elements of the target models. The ATL programs for model to model transformation are called modules. A module is composed of :
- Header
- transformation name
- variables of source and target models
- Import
- libraries to be imported
- Helpers
- define (global) variables and functions
- Rules
- describe the transformation from a source model to a target model


