Model-Driven Engineering (MDE) is a paradigm that uses models to develop software. These models conform to metamodels, and are transformed to other models or to code, building an ecosystem of related artifacts. In this context, maintainability becomes crucial to keep the different artifacts in sync. Evolution of an artifact should ripple along the dependent artifacts who are said to “co-evolve”.
Within the MDE ecosystems, transformations play a preponderant role. This pivotal place makes them also specially prone to evolution. Modelto-model transformations are coupled to metamodels, and model-to-text transformations, to platform. This implies that upgrades in either of these two dependencies can make the transformation break apart. This
is exacerbated by two main considerations. First, transformations tend to be complex programming artifacts. Unlike metamodels, transformation languages are far from being fully declarative, and still exhibit an algorithmic flavor. This makes transformation not only difficult to write but also to debug and maintain. Second, transformations tend to exhibit
external dependencies, i.e. dependencies with artifacts which are outside the realm of the transformation programmer himself. In the case of modelto-model transformations, it is not odd for the metamodel team not to overlap with the transformation team. Skills are different, and this may lead to teams being split based on their familiarization with the domain (meta-modelers) versus the competence with transformation languages. Similarly for model-to-text transformations, platforms are often managed by third parties.
This Thesis addresses techniques and tools that help in maintaining transformations, specially focusing on keeping them in sync with the rest of the MDE ecosystem. Specifically, this Thesis’ main contributions include:
1. a semi-automatic process to co-evolve model-to-model transformations upon metamodel evolution,
2. an adapter approach to make model-to-text transformations resilient upon platform evolution,
3. assisting in the testing of model-to-text transformations, measuring the completeness of the input model test suite, and debugging the detected errors.
This publication has not any associated project.
This publication has not any associated prototype.
ONEKIN, UNIVERSITY OF THE BASQUE COUNTRY