Model Co-Evolution
Metamodel evolution and model co-evolution are considered to be essential ingredients for the successful adoption of model-driven engineering in practice. In this respect, on the one hand, dedicated co-evolution languages have been proposed for migrating models conforming to an initial metamodel to models conforming to a revised metamodel with the drawback of requiring to learn a new language. On the other hand, the employment of dedicated model-to-model transformation languages has been proposed demanding for the specication of rules for opying unchanged elements.
We propose to tackle the co-evolution problem from a different viewpoint. Instead of describing the co-evolution of models as a transformation between two metamodels, we employ existing inplace transformation languages. For this, the prerequisite is to represent both language versions within one metamodel which is automatically computed by merging the initial and the revised metamodel. This ensures that the initial as well as the revised model conform to the merged meta-model, enabling the employment of inplace transformations for initializing new metamodel elements. Finally, a check-out transformation is used for eliminating model elements which are no longer covered by the revised metamodel. We demonstrate this idea by using ATL for merging the metamodels and realizing the check-out transformation.
Presentation slides
Prototypical Implementation