Semantic Differencing Operators for Model Comparisons
O. Kautz, S. Maoz, J.O. Ringert, and B. RumpeModel-driven engineering promotes the use of models throughout a software system's lifecycle. Due to iterative development methodologies, changing requirements, and bug fixes, these models continuously evolve during system's design, development, and maintenance phases. Fundamental building blocks for an analysis of their evolution are differencing operators one can use to compare two versions of a model.
Existing approaches to model differencing concentrate on heuristics matching between model elements and on finding and presenting differences at a concrete or abstract syntactic level. While showing some success, these approaches are also limited: models that are syntactically very similar may induce very different semantics (in the sense of `meaning'), and vice versa, models that semantically describe the same system may have rather different syntactic representations. Thus, a list of syntactic differences, although accurate and complete, may not be able to reveal the real implications these differences may have on the correctness and potential use of the models involved. In other words, such a list, although easy to follow, understand, and manipulate (e.g., for merging), may not be able to expose and represent the semantic differences between two versions of a model, in terms of the bugs that were fixed or the features (and new bugs...) that were added.
We present our vision and recent results on developing semantic diff operators for model comparisons: operators whose input consists of two models and whose output is a set of diff witnesses, instances of one model that are not instances of the other. Diff witnesses serve as concrete proofs for the real change between one version and another and its effect on the meaning of the models involved.
For more information please contact: Oliver Kautz and Shahar Maoz and Jan O. Ringert.
Publications
- [KR18] O. Kautz, B. Rumpe:
A Simple Translation from Activity Diagrams to Finite Automata for Semantic Differencing.
To appear, 2018. - [KMRR17] O. Kautz, S. Maoz, J. O. Ringert, B. Rumpe:
CD2Alloy: A Translation of Class Diagrams to Alloy.
RWTH Aachen University, Technical Report. AIB-2017-06. July 2017. - [BKRW17] A. Butting, O. Kautz, B. Rumpe, A. Wortmann:
Semantic Differencing for Message-Driven Component & Connector Architectures.
In: International Conference on Software Architecture (ICSA'17), Gothenburg, pg. 145-154. IEEE, April 2017. - S. Maoz, J.O. Ringert, and B. Rumpe. A Manifesto for Semantic Model Differencing, presented at the Models and Evolution Workshop (ME'10), affiliated with the MoDELS'10 conference, October 2010. MoDELS Workshops, LNCS vol. 6627, Springer, pp. 194-203.
- S. Maoz, J.O. Ringert, and B. Rumpe. CDDiff: Semantic Differencing for Class Diagrams. In Proc. 25th Euro. Conf. on Object Oriented Programming (ECOOP'11). LNCS vol. 6813, Springer.
- Paper available, slides coming soon...
- CDDiff Plug-in prototype implementation (download as plug-in for Eclipse 3.6)
- CDDiff Plug-in readme and installation instructions
- Examples
- S. Maoz, J.O. Ringert, and B. Rumpe. ADDiff: Semantic Differencing for Activity Diagrams. In Proc. Euro. Soft Eng. Conf. / Foundations of Software Engineering (ESEC/FSE'11). ACM.
- Paper available, slides coming soon...
- ADDiff Plug-in prototype implementation (download as local update site for Eclipse 3.5)
- ADDIff Plug-in readme and installation instructions
- Evaluation project (including examples)
- Additional evaluation material
- S. Maoz, J.O. Ringert, and B. Rumpe. An Operational Semantics for Activity Diagrams using SMV. Technical Report AIB-2011-07, RWTH Aachen University.
- [MRR11] S. Maoz, J. O. Ringert, B. Rumpe:
Summarizing Semantic Model Differences.
In: ME 2011 - Models and Evolution, Wellington, New Zealand. Ed: B. Schätz, D. Deridder, A. Pierantonio, J. Sprinkle, D. Tamzalit, Wellington, New Zealand, Okt. 2011.