PhD Thesis: Verónica A. Bollati
MeTAGeM: un Entorno de Desarrollo de Transformaciones de Modelos Dirigido por Modelos
In recent years, Model Driven Engineering (MDE) has begun to achieve certain levels of maturity. In 2001, following the principles of MDE, the Object Management Group (OMG) proposed the Model Driven Architecture (MDA). Since then, MDE and more specifically MDA have been successfully applied in many different contexts, resulting in a vast amount of model driven methodologies for software development that covers almost every field of software engineering.
With the appearance of the MDE, models occupy a leading role in guiding the development process. The models are now defined to capture accurately all the requirements and specifications of the system to be built, as well as the platform where it will be deployed. The main idea is to generate a set of models to represent the system increasingly lower abstraction levels. Thus, the detail level of the obtained models in latter stages of the process will generate (semi-) automatically the code that implements the system.
A model transformation is the link between each step of the process. The main purpose of models transformation is to convert (one or more) model of the system in another (or several) models. These transformations should be done in (semi)-automatic way, and be implemented by means of transformation rules (mappings) defined between these models. There have appeared new languages and tools arise, that facilitates automatic transformations which differ in many aspects, such as: the paradigm (declarative, imperative or hybrid), the generality degree (general purpose or designed for specific domains), or the abstraction level.
This technology diversity can cause certain problems. First, the developer should be able to select the most suitable language to solve the problem. After that, if they want to change this language they have to learn how to use it, and frequently this learning is more difficult the more complex the language is. Hence, on the one hand, the process of implementing a transformation is a complicate activity and can consume a long time. On the other hand, transformation tools support a specific transformation language, in general; so there are interoperability problems between them.
Therefore, it is recommend found solutions to ease the learning and the use of transformation languages, as well as to improve interoperability between the support tools, and to facilitate the migration from one language to another. Since we are in a MDE context, it would be logical to take advantage of it and apply MDE to the process of defining the transformations.
In addition, currently there is no proposal in the MDE field that unified the existing transformation languages, similar to MOF for the specification of languages.
From this point of view, this thesis proposes a development environment which will allow the definition of transformations models at a high abstraction level, without taking into account the final implementation language of these transformations.
This will allow solving the problems that have already been noted: a) to provide a high-level platform independent transformation language and closer to the user; and b) to enable (semi-) automatic generation of transformations, in platform dependent specific languages.
These improvements will facilitate the development task of transformation programmers, as well as interoperability and migration between languages and tools.
MeTAGeM, the model-driven development environment for models transformations, presented in this thesis includes:
- The definition of a methodological process for MDE development of model transformations
- The specification of a meta-model of high-level transformations that enables modelling the PIM-level transformations
- The specification of a meta-model according to the hybrid approach, which enables modelling the PSM-level transformations
- The specification of a meta-model of the transformations including: the transformations between the PIM meta-model and the PSM meta-model; and transformations between PSM-level meta-model and PDM-level meta-models (ATL and RubyTL)
A tool implementation that supports: a) modelling of PIM-level transformations based on the proposed meta-models of transformations; b) modelling PSM-level transformations based on the hybrid approach meta-models; c) modelling of PDM-level transformations based on meta-models of ATL and RubyTL transformation languages; and d) a meta-transformer to obtain the transformations models in accordance with the ATL and RubyTL transformation languages, and from them, the code that implements the transformation in these languages.
MeTAGeM Website: http://metagem.wordpress.com