Get a ticket now and here – to see also that and more at the next Enterprise Architect User Group Event in Zürich!

Konrad_Wieland_1_thumb.jpg

Model Diffing and Merging

Systems Engineering, as any other interdisciplinary activity, requires the ability and means to build systems which are so large and complex that they have to be built by teams or even by teams of teams of engineers. In combination with a model-based approach, these teams need the possibility for modeling in a concurrent way. With other words, multiple users must be able to work on the same model in parallel or even on multiple versions of the same system.

In code-centric software engineering, developers profit for years from the features provided by Version Control Systems (VCS), whereby one of the most important features is the possibility of comparing and merging changes of the same file. The key technique hereby is the so called three-way difference analysis which is also considering the common ancestor version of the models under comparison. A state-based merge based on unique identifiers is performed after the automated difference analysis between two parallel versions of the model. If the same model element is changed in parallel, a conflict might occur and has to be resolved by the user before the merge can be automatically executed.

We believe that concurrent modeling on professional basis requires a three-way difference analysis for models. It is seen as the central innovation that allows the switch from package-locking based revision control systems to merge-based ones. Furthermore, advanced user support in terms of proper representation and visualization of changes and conflicts is required to make merging practicable.
We present our new approach and tool for managing parallel versions of models (UML, SysML, etc.) on top of Sparx Systems Enterprise Architect. It includes the precise detection of changes and conflicts between parallel versions of a model and, furthermore, it assists the developers in merging these versions.