Concepedia

Publication | Closed Access

UMLDiff

365

Citations

25

References

2005

Year

TLDR

This paper introduces UMLDiff, an algorithm that automatically detects structural changes between successive versions of object‑oriented software designs. UMLDiff takes two reverse‑engineered Java class models as input and outputs a change tree detailing additions, removals, moves, renamings, attribute modifications, and dependency changes, with its correctness and robustness evaluated on a real‑world case study. The tool generates accurate evolution reports that support design‑evolution analyses and help engineers understand design rationale and plan future development and maintenance.

Abstract

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.

References

YearCitations

Page 1