SDMerge

Guided Merging of Sequence Diagrams

The employment of optimistic model versioning systems allows multiple developers of a team to work independently on their local copies of a software model. The merging process towards one consolidated version obviously turns out to be error-prone and time-consuming when performed without any tool support.

Recently, several decent approaches for model merging have been presented. However, even for multi-view modeling languages like UML, which distribute the information on the system under development over multiple diagrams, all diagrams are merged independently. Hence, inconsistencies are likely introduced into the merged model.

We therefore suggest to solve this problem by regarding information stored in different diagrams as constraints for the computation of a consolidated version. We give a concise formal description of this problem and suggest a translation to the satisfiability problem of propositional logic.

Implementation

We provide a prototype implementation to demonstrate how state machines may guide the integration of parallel changes performed on a sequence diagram.

Metamodel

We consider merging of sequence diagram models conforming to the Tiny Multi-View Modeling Language tMVML in our prototype.

tMVML provides a compact representation of essential concepts of typical multi-view modeling languages, as for example UML. tMVML is intentionally kept simple, to precisely meet our requirements. Currently, tMVML support sequence diagrams and state machine diagrams. However, tMVML is designed to be easily extensible.

An Ecore based implementation of the tMVML metamodel and its corresponding modeling editor is available as Eclipse plugin at our updatesite: http://modelevolution.org/updatesite/

Sequence Diagram Merge

The implementation of our sequence diagram merge tool is based on the Eclipse modeling framework (EMF) and PicoSAT. We first employ an extended version of EMF compare to detect differences within two parallel edited versions of a common ancestor model. Those differences are then combined with information of the ancestor model and the corresponding state machines and are finally encoded as SAT problem to act as input for PicoSAT. PicoSAT's output describes all valid merge solutions in terms of logical models, which are then translated back to tMVML models.

The prototype is available as standalone Java Archive and as source code. A representative benchmark set is included for evaluation purposes.

Run java -jar SDMerger.jar -r models/<model-folder> for recursively merging all tMVML models within the respective model-folder.

Visualization Support

We are aware of the challenges imposed by merging software models decoupled from any graphical visualization support. Thus, we are working on visual merge support for tMVML models.

Consider the following mockups for first impressions of our ongoing work. Click on the images for larger versions.

Mockup 1:

Mockup 2:

Acknowledgments to Florian Zoubek for preparing mockups and implementing the graphical merge editor.

The ongoing implementation may be found at http://sourceforge.net/projects/sdmergeadvedit/.