UMLDiff swMATH ID: 38730 Software Authors: Zhenchang Xing, Eleni Stroulia Description: UMLDiff: an algorithm for object-oriented design differencing. This paper presents UMLDiff, an algorithm for automatically detecting structural changes between the designs of subsequent versions of object-oriented software. It takes as input two class models of a Java software system, reverse engineered from two corresponding code versions. It produces as output a change tree, i.e., a tree of structural changes, that reports the differences between the two design versions in terms of (a) additions, removals, moves, renamings of packages, classes, interfaces, fields and methods, (b) changes to their attributes, and (c) changes of the dependencies among these entities. UMLDiff produces an accurate report of the design evolution of the software system, and enables subsequent design-evolution analyses from multiple perspectives in support of various evolution activities. UMLDiff and the analyses it enables can assist software engineers in their tasks of understanding the rationale of design evolution of the software system and planning future development and maintenance activities. We evaluate UMLDiff’s correctness and robustness through a real-world case stud. Homepage: https://dl.acm.org/doi/10.1145/1101908.1101919 Related Software: GRK; GDK; ArchJava; Chianti; AToM3; HaExcel; Geno; Winnowing; ArgoUML; CompLearn; CCFinder; CP-miner; YAP3; Dotplot Cited in: 1 Document Cited by 2 Authors 1 Lämmel, Ralf 1 Zaytsev, Vadim Cited in 0 Serials Cited in 1 Field 1 Computer science (68-XX) Citations by Year