Key Concepts and Overview of the Approach
The key idea of the MOCA project is to bring together two important MDE technologies that have developed almost independently of each other; model transformation and model versioning.
Edit operations available for modifying a model are specified using the model transformation language Henshin which is based on graph transformation concepts. Thus, high-level edit operations, such as refactoring operations being offered by modern MDE environments, can be used in two different ways.
Prescriptively: Edit rules are executable specifications which can be used to plan the evolution of a model-based system and to propagate changes in model versions and variants. Edit rules enable consistency-preserving patching and merging at a high level of abstraction.
Descriptively: The same edit rules that are used to evolve models are used by our approach to model differencing. Thus, differences between two versions of a model are reported in terms of high-level edit steps which facilitate a better understanding of a model's evolution.