Enabling the reuse of stored model transformations through annotations

With the increasing adoption of MDE, model transformations, one of its core concepts together with metamodeling, stand out as a valuable asset. Therefore, a mechanism to annotate and store existing model transformations appears as a critical need for their efficient exploitation and reuse. Unfortunately, although several reuse mechanisms have been proposed for software artifacts in general and models in particular, none of them is specially tailored to the domain of model transformations. In order to fill this gap, we present here such a mechanism. Our approach is composed by two elements 1) a new DSL specially conceived for describing model transformations in terms of their functional and non-functional properties 2) a semi-automatic process for annotating and querying (repositories of) model transformations using as criteria the properties of our DSL. We validate the feasibility of our approach through a prototype implementation that integrates our approach in a GitHub repository.

Tool Support

(NOTE: the tool is still under development. If you find some errors or flaws, please contact javi.criado@ual.es)

The steps to install and execute the tool are the following:

1�) Download an Eclipse Modeling Tools distribution from here . Then, it is necessary to install the next Modeling Components: ATL, Xtext and Sirius

2�) Download the plugin files from here

3�) Import the plugin files to the workspace

4�) Once the files are imported, execute a new Eclipse instance: Run As > Eclipse Application

5�) Then, you need a repository of model transformations. We offer an example repository with some ATL model transformations and some catalogues. This repository is available in the following link:
https://github.com/acgtic211/tua

6�) Back to Eclipse, you can clone the repository and import the "atlfiles" and "catalogues" projects. The final goal is to have in your workspace (1) a project containing the model transformations that must be named as "atlfiles", and (2) a project containing the catalogues that must be named as "catalogues". You also need to create an empty project named as "models" for storing the results of the plugin execution:

Mandatory projects for the execution

7�) Then, you can load the repository of ATL files, thus extracting the existing annotations and creating the index model. You can also perform OCL queries to the index model.

Plugin actions

8�) If you open a catalogue of properties or a model with the transformation unit annotations, you can choose to open these files with the graphical, with the textual or with the default editor.