Programming against Multi-Version Metamodels: A Model Differencing and Virtualization Approach


Current model manipulation programs more and more have to cope with multiple metamodel versions. This includes tool integration scenarios and language evolution scenarios where newer metamodel versions are available while legacy metamodels are still being used. However, in current metamodeling frameworks such as the Eclipse Modeling Framework (EMF), specific model manipulation programs are needed for each version leading to code duplication, and thus, to high development and maintenance efforts. By using virtualization techniques, interfaces for manipulating a set of models instead of a single model on the Java level can be automatically generated. This allows to avoid code duplication by introducing only a small syntactic overhead. By using Java annotations for defining the virtualization strategy, we can achieve virtual models being seamlessly integrated into Java as POJOs. Based on a running example, we demonstrate our architecture. The proposed approach is implemented as an open-source project on top of EMF and has been already successfully applied for model migration scenarios.

Extracted Key Phrases

4 Figures and Tables

Cite this paper

@inproceedings{Bill2015ProgrammingAM, title={Programming against Multi-Version Metamodels: A Model Differencing and Virtualization Approach}, author={Robert Bill and Manuel Wimmer}, booktitle={GEMOC+MPM@MoDELS}, year={2015} }