R. Bill, M. Wimmer: Programming against Multi-Version Metamodels: A Model Differencing and Virtualization Approach, 3rd International Workshop on The Globalization of Modeling Languages (GEMOC), Ottawa, Canada; 28.09.2015; in Proceedings of the 3rd International Workshop on The Globalization of Modeling Languages (GEMOC), CEUR Workshop Proceedings, (2015), pages 1 - 6. pdf
Current model manipulation programs more and more have to copewith multiple metamodel versions. This includes tool integration scenarios andlanguage evolution scenarios where newer metamodel versions are available whilelegacy metamodels are still being used. However, in current metamodeling frame-works such as the Eclipse Modeling Framework (EMF), specific model manipu-lation 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 modelsinstead of a single model on the Java level can be automatically generated. Thisallows to avoid code duplication by introducing only a small syntactic overhead.By using Java annotations for defining the virtualization strategy, we can achievevirtual models being seamlessly integrated into Java as POJOs. Based on a run-ning example, we demonstrate our architecture. The proposed approach is imple-mented as an open-source project on top of EMF and has been already success-fully applied for model migration scenarios.