Model Transformations and Their Uses

Automated transformation of models to various abstraction levels or with various metamodels makes the development process consistent and productive.

The central idea of model-driven software development (MDSD) is to not have source text that is hard to understand but rather to model easy to read graphical models in particular; these models then show various views and aspects of the software and can be transferred into the source code in ever increasing levels of refinement step for step with ever decreasing levels of abstraction.

Models visualized graphically in current notation languages (UML, ER, BPMN, XSD, WSDL etc.) can be regarded as models with structures that follow a clearly defined metamodel but can also be regarded as graphs in the sense of graph theory. Models created at various levels of abstraction need to be automatically transferred in the sense of a graph transformation to make the core idea of MDSD mentioned into reality. This graph and/or model transformation can be defined using mapping specifications between metamodels in the source and target models.

If there is the option of automatically transforming models from various levels of abstraction or with different metamodels, the following advantages apply:

  • The productivity advantage compared to manual maintenance is obvious. If there is no way of automatically transforming models, all elements that should be transferred in a model with a lower level of abstraction or another metamodel need to be manually created.
  • Individual models are kept consistent by being automatically compared; this enables a consistent development process from requirements through to code.
  • A model transformation can also be the solution for tasks which may not at first be recognizable as model transformations. This enables you to carry out an import from e.g. any number of XML files as a model transformation. This means that generation of source text is possible with the help of model transformation with the respective model adapter. An automatic completion of a model can be carried out as an in-place model transformation. It is even possible to carry out navigation within a model without modifying data as a model transformation.