CDDiff: Semantic differencing for class diagrams

Shahar Maoz, Jan Oliver Ringert, Bernhard Rumpe

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

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.

Original languageEnglish
Title of host publicationECOOP 2011 - Object-Oriented Programming - 25th European Conference, Proceedings
Pages230-254
Number of pages25
DOIs
StatePublished - 2011
Externally publishedYes
Event25th European Conference on Object-Oriented Programming, ECOOP 2011 - Lancaster, United Kingdom
Duration: 25 Jul 201129 Jul 2011

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume6813 LNCS

Conference

Conference25th European Conference on Object-Oriented Programming, ECOOP 2011
Country/TerritoryUnited Kingdom
CityLancaster
Period25/07/1129/07/11

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

Dive into the research topics of 'CDDiff: Semantic differencing for class diagrams'. Together they form a unique fingerprint.

Cite this