In this paper we discuss, and provide a generic solution to the problem referred to as model co-evolution: How to evolve models in case their metamodels evolve?
We solve this problem by extending a traditional three-step approach. In the first step, differences between an original and an evolved metamodel are determined. Unlike traditional approaches, we treat metamodels as models conforming to a special metamodel, thus the same difference representation and calculation mechanisms for metamodels as for models are used in our approach. In the second step, metamodel differences are classified into four groups based on their possible influence on co-evolving models, and the possibilities of handling them automatically. We adopt two of these groups (non-breaking and breaking and resolvable differences) from the existing co-evolution approaches, and we introduce two new groups (breaking and semi-resolvable and breaking and human-resolvable differences). In the third step, based on the determined metamodel differences, a generic co-evolution transformation is invoked. This transformation takes the metamodel differences, and a model as arguments, and returns an adapted model.
We validated our approach by incorporating our method into a prototype tool for generic model co-evolution, and by testing this tool on a large set of metamodels and models.
|Title of host publication||Objects, Models, Components, Patterns (49th International Conference, TOOLS 2011, Zurich, Switzerland, June 28-30, 2011. Proceedings)|
|Editors||J. Bishop, A. Vallecillo|
|Place of Publication||Berlin|
|Publication status||Published - 2011|
|Event||conference; 49th International Conference on Objects, Models, Components, Patterns; 2011-06-28; 2011-06-30 - |
Duration: 28 Jun 2011 → 30 Jun 2011
|Name||Lecture Notes in Computer Science|
|Conference||conference; 49th International Conference on Objects, Models, Components, Patterns; 2011-06-28; 2011-06-30|
|Period||28/06/11 → 30/06/11|
|Other||49th International Conference on Objects, Models, Components, Patterns|