Merging and Versioning in a Multi-Modeling Environment
|Termin||Fr 20. Oktober 2017|
|Kurzfassung|| In Model-Driven software development, a complex system is often modeled in different, specialized models.
To keep consistency, VITRUVIUS provides a mechanism to define consistency preserving actions for different models. Furthermore, versioning is an important task at developing software. There are various concepts and implementations for the versioning of models, e.g., EMFStore, but none of these are able to guarantee the cross-model consistency provided by VITRUVIUS. Thus, conflicting changes in different models may not be identified as conflicting while merging different branches. In this thesis, an approach is presented that defines a versioning system and preserves the consistency of models of the same system. The approach is based on a graph analysis of the dependency graph of the occurred changes. Besides a requirement relation the dependency graph includes a trigger relation. Afterwards, the two dependency graphs are scanned for a subgraph isomorphism. All changes outside of the isomorphism are potentially conflicting changes. At the manual change resolution, the trigger and the require relation is used to guarantee that a change is applicable and after its application all models are consistent with each other. The approach is illustrated and validated with an application, which combines component-based architectures and class diagrams.