Anne Etien Associate Professor LIFL and INRIA Lille - Nord Europe and Benoit Baudry, Resarch scientist IRISA and Olivier Barais Associate Professor IRISA
Keywords:Software evolution, Metamodels, Model transformation, Impact analysisAutomatic model transformation and model composition are core mechanisms to automate some development steps in a model-driven software development process. These mechanisms can automate refactorings that improve the structure of the models, refinement that add specific information in the models to target a particular platform, extraction of other specific views for analysis or test generation, etc. These transformations can be defined as a set of rules that declare how the input models must be transformed to generate output models. The concepts and relationships that structure the input and output models are described as a metamodel. Thus, the rules that define the transformation or the composition are specified in terms of patterns in the metamodel (specific structures that occur in the metamodel). If a given pattern occurs as input then another pattern is generated as output. Then, when running the model transformation, the transformation engine will look for an occurrence of this pattern in the input model, and, if it is present, will generate the corresponding pattern in the output model.
What appears here is that transformation rules are very tightly coupled to the input and output metamodels. Coupling is generally known to be an undesired property in software systems, in particular in case of evolution. In this case, it appears that one change in the input metamodel can have a large impact on the set of transformation rules. It also happens that changes in the metamodel are quite frequent in order to adapt to changes in the input environment or to deal with new concepts that were not foreseen in the first version of the metamodel.
The purpose of this internship is to study the impact of changes in the metamodel on the transformation. In particular, one question is: what is the set of rules that is not impacted and the set of rules that should be modified after evolution? Another question is: what are the models that could be transformed before that can not be transformed after evolution? A related question is: when I evolve an input model, that has already been transformed, what is the subset of rules that should be re-run to update the output model? In order to answer these questions, an important issue will be to allow recovering relationships between the concepts in the metamodels and the rules.
This internship relies on the issues met in the context of the Gaspard framework development. Gaspard, developed in the DaRT team, is a framework dedicated to System on Chip co-design. It adopts an MDE approach. In this context, several metamodels and model transformations have been defined. For different reasons, these metamodels evolve raising different issues evocated upper. Gaspard will serve as an experimentation field for the works related to this internship.
Anne.Etien@lifl.fr