SESep 8, 2014

CDDiff: Semantic Differencing for Class Diagrams

arXiv:1409.2355v173 citations
Originality Incremental advance
AI Analysis

This addresses version comparison and evolution analysis for software developers, but it is incremental as it builds on existing model comparison approaches.

The paper tackles the problem of managing changes in class diagrams by introducing cddiff, a semantic diff operator that outputs diff witnesses—object models possible in one diagram but not another—using a reduction to Alloy, with implementation in an Eclipse plug-in.

Class diagrams (CDs), which specify classes and the relationships between them, are widely used for modeling the structure of object-oriented systems. As models, programs, and systems evolve over time, during the development lifecycle and beyond it, effective change management is a major challenge in software development, which has attracted much research efforts in recent years. In this paper we present cddiff, a semantic diff operator for CDs. Unlike most existing approaches to model comparison, which compare the concrete or the abstract syntax of two given diagrams and output a list of syntactical changes or edit operations, cddiff considers the semantics of the diagrams at hand and outputs a set of diff witnesses, each of which is an object model that is possible in the first CD and is not possible in the second. We motivate the use of cddiff, formally define it, and show how it is computed. The computation is based on a reduction to Alloy. The work is implemented in a prototype Eclipse plug-in. Examples show the unique contribution of our approach to the state-of-the-art in version comparison and evolution analysis.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes