Differencing logical UML Models;
Autom. Softw. Eng. 14:2 (June 2007),
Abstract: UMLDiff is a heuristic algorithm for automatically detecting the changes
that the logical design of an object-oriented software system has gone through, as
the subject system evolved from one version to the next. UMLDiff requires as input
two models of the logical design of the system, corresponding to two of its versions.
It produces as output a set of change facts, reporting the differences between the
two logical-design versions in terms of (a) additions, removals, moves, renamings of
model elements, i.e., subsystems, packages, classes, interfaces, attributes and
operations, (b) changes to their attributes, and (c) changes to the relations among these
model elements. In this paper, we detail the underlying metamodel, the UMLDiff
algorithm and its heuristics for establishing lexical and structural similarity. We report
on our experimental evaluation of the correctness and robustness of UMLDiff through
a real-world case study.