TY - GEN
T1 - Differencing UML models
T2 - 4th International Summer School on Generative and Transformational Techniques in Software Engineering IV, GTTSE 2011
AU - Mikhaiel, Rimon
AU - Tsantalis, Nikolaos
AU - Negara, Natalia
AU - Stroulia, Eleni
AU - Xing, Zhenchang
PY - 2013
Y1 - 2013
N2 - Comparing software artifacts to identify their similarities and differences is a task ubiquitous in software engineering. Logical-design comparison is particularly interesting, since it can serve multiple purposes. When comparing the as-intended vs. the as-implemented designs, one can evaluate implementation-to-design conformance. When comparing newer code versions against earlier ones, one may better understand the development process of the system, recognize the refactorings it has gone through and the qualities motivating them, and infer high-order patterns in its history. Given its importance, design differencing has been the subject of much research and a variety of algorithms have been developed to compare different types of software artifacts, in support of a variety of different software-engineering activities. Our team has developed two different algorithms for differencing logical-design models of object-oriented software. Both algorithms adopt a similar conceptual model of UML logical designs (as containment trees); however, one of them is heuristic whereas the other relies on a generic tree-differencing algorithm. In this paper, we describe the two approaches and we compare them on multiple versions of an open-source software system.
AB - Comparing software artifacts to identify their similarities and differences is a task ubiquitous in software engineering. Logical-design comparison is particularly interesting, since it can serve multiple purposes. When comparing the as-intended vs. the as-implemented designs, one can evaluate implementation-to-design conformance. When comparing newer code versions against earlier ones, one may better understand the development process of the system, recognize the refactorings it has gone through and the qualities motivating them, and infer high-order patterns in its history. Given its importance, design differencing has been the subject of much research and a variety of algorithms have been developed to compare different types of software artifacts, in support of a variety of different software-engineering activities. Our team has developed two different algorithms for differencing logical-design models of object-oriented software. Both algorithms adopt a similar conceptual model of UML logical designs (as containment trees); however, one of them is heuristic whereas the other relies on a generic tree-differencing algorithm. In this paper, we describe the two approaches and we compare them on multiple versions of an open-source software system.
KW - Software differencing
KW - Software evolution
KW - UML
UR - http://www.scopus.com/inward/record.url?scp=84894200497&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-35992-7_4
DO - 10.1007/978-3-642-35992-7_4
M3 - Conference contribution
SN - 9783642359910
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 159
EP - 196
BT - Generative and Transformational Techniques in Software Engineering IV - International Summer School, GTTSE 2011, Revised Papers
Y2 - 3 July 2011 through 9 July 2011
ER -