Program evolution: processes of software change
Program evolution: processes of software change
An improved algorithm for transitive closure on acyclic digraphs
International Colloquium on Automata, Languages and Programming on Automata, languages and programming
Identifying the semantic and textual differences between two versions of a program
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Identifying syntactic differences between two programs
Software—Practice & Experience
Seesoft-A Tool for Visualizing Line Oriented Software Statistics
IEEE Transactions on Software Engineering - Special issue on software measurement principles, techniques, and environments
Object-oriented software metrics: a practical guide
Object-oriented software metrics: a practical guide
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
The String-to-String Correction Problem
Journal of the ACM (JACM)
Finding refactorings via change metrics
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Change impact analysis for object-oriented programs
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
The evolution matrix: recovering software evolution using software visualization techniques
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Semantic Diff: A Tool for Summarizing the Effects of Modifications
ICSM '94 Proceedings of the International Conference on Software Maintenance
An Integrated Approach for Studying Architectural Evolution
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
Scalable Consistency Checking Between Diagrams-The ViewIntegra Approach
Proceedings of the 16th IEEE international conference on Automated software engineering
Difference Tools for Analysis and Design Documents
ICSM '03 Proceedings of the International Conference on Software Maintenance
Populating a Release History Database from Version Control and Bug Tracking Systems
ICSM '03 Proceedings of the International Conference on Software Maintenance
Reconstruction of Successful Software Evolution Using Clone Detection
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
Understanding Class Evolution in Object-Oriented Software
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
A Differencing Algorithm for Object-Oriented Programs
Proceedings of the 19th IEEE international conference on Automated software engineering
Using Origin Analysis to Detect Merging and Splitting of Source Code Entities
IEEE Transactions on Software Engineering
Design mentoring based on design evolution analysis
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
Towards Experience-Based Mentoring of Evolutionary Development
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Analyzing the Evolutionary History of the Logical Design of Object-Oriented Software
IEEE Transactions on Software Engineering
UMLDiff: an algorithm for object-oriented design differencing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Digging the Development Dust for Refactorings
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Refactoring Practice: How it is and How it Should be Supported - An Eclipse Case Study
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
Refactoring Detection based on UMLDiff Change-Facts Queries
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
API-Evolution Support with Diff-CatchUp
IEEE Transactions on Software Engineering
Annotation refactoring: inferring upgrade transformations for legacy applications
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Automated traceability analysis for UML model refinements
Information and Software Technology
Issues in applying a model driven approach to reconfigurations of satellite software
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Ldiff: An enhanced line differencing tool
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Actively comparing clones inside the code editor
Proceedings of the 4th International Workshop on Software Clones
Proceedings of Graphics Interface 2011
A manifesto for semantic model differencing
MODELS'10 Proceedings of the 2010 international conference on Models in software engineering
ADDiff: semantic differencing for activity diagrams
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
CDDiff: semantic differencing for class diagrams
Proceedings of the 25th European conference on Object-oriented programming
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Hi-index | 0.00 |
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.