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.