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
Computing similarity in a reuse library system: an AI-based approach
ACM Transactions on Software Engineering and Methodology (TOSEM)
Seesoft-A Tool for Visualizing Line Oriented Software Statistics
IEEE Transactions on Software Engineering - Special issue on software measurement principles, techniques, and environments
Signature matching: a key to reuse
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
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
The 4+1 View Model of Architecture
IEEE Software
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
Understanding Phases and Styles of Object-Oriented Systems' Evolution
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
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
CatchUp!: capturing and replaying refactorings to support API evolution
Proceedings of the 27th international conference 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
Emerging design: new roles and uses for abstraction
Proceedings of the 2006 international workshop on Role of abstraction in software engineering
Proceedings of the 2006 international workshop on Global integrated model management
Tracking Code Clones in Evolving Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
JDiff: A differencing technique and tool for object-oriented programs
Automated Software Engineering
Differencing logical UML models
Automated Software Engineering
Reconciling software configuration management and product data management
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Difference computation of large models
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Supporting task-oriented modeling using interactive UML views
Journal of Visual Languages and Computing
API-Evolution Support with Diff-CatchUp
IEEE Transactions on Software Engineering
Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction
IEEE Transactions on Software Engineering
Perfdiff: a framework for performance difference analysis in a virtual machine environment
Proceedings of the 6th annual IEEE/ACM international symposium on Code generation and optimization
Collaborative software engineering on large-scale models: requirements and experience in ModelBus
Proceedings of the 2008 ACM symposium on Applied computing
Mining framework usage changes from instantiation code
Proceedings of the 30th international conference on Software engineering
Matching class diagrams: with estimated costs towards the exact solution?
Proceedings of the 2008 international workshop on Comparison and versioning of software models
Using model comparison to maintain model-to-standard compliance
Proceedings of the 2008 international workshop on Comparison and versioning of software models
Improving change descriptions with change contexts
Proceedings of the 2008 international working conference on Mining software repositories
Annotation refactoring: inferring upgrade transformations for legacy applications
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Automatically locating framework extension examples
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Accurate and Efficient Structural Characteristic Feature Extraction for Clone Detection
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Complete and accurate clone detection in graph-based models
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Discovering and representing systematic code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Different models for model matching: An analysis of approaches to support model differencing
CVSM '09 Proceedings of the 2009 ICSE Workshop on Comparison and Versioning of Software Models
Model-versioning-in-the-large: Algebraic foundations and the tile notation
CVSM '09 Proceedings of the 2009 ICSE Workshop on Comparison and Versioning of Software Models
Managing Model Adaptation by Precise Detection of Metamodel Changes
ECMDA-FA '09 Proceedings of the 5th European Conference on Model Driven Architecture - Foundations and Applications
A Framework for Testing Model Composition Engines
SC '09 Proceedings of the 8th International Conference on Software Composition
Characterizing software architecture changes: A systematic review
Information and Software Technology
Requirements for Practical Model Merge --- An Industrial Perspective
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Barriers to systematic model transformation testing
Communications of the ACM
Clone region descriptors: Representing and tracking duplication in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
The secret life of a process description: a look into the evolution of a large process model
ICSP'08 Proceedings of the Software process, 2008 international conference on Making globally distributed software development a success story
Structuring the modeling space and supporting evolution in software product line engineering
Journal of Systems and Software
LSdiff: a program differencing tool to identify systematic structural differences
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Mirador: a synthesis of model matching strategies
Proceedings of the 1st International Workshop on Model Comparison in Practice
Semantic grouping of model changes
Proceedings of the 1st International Workshop on Model Comparison in Practice
Federated access control and workflow enforcement in systems configuration
LISA'09 Proceedings of the 23rd conference on Large installation system administration
Model comparison with GenericDiff
Proceedings of the IEEE/ACM international conference on Automated software engineering
A program differencing algorithm for verilog HDL
Proceedings of the IEEE/ACM international conference on Automated software engineering
A graph-based approach to API usage adaptation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
From state- to delta-based bidirectional model transformations
ICMT'10 Proceedings of the Third international conference on Theory and practice of model transformations
Inter-modelling: from theory to practice
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part I
Automatically identifying changes that impact code-to-design traceability during evolution
Software Quality Control
Model synchronization: mappings, tiles, and categories
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Some issues in the 'archaeology' of software evolution
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
An empirical investigation into the role of API-level refactorings during software evolution
Proceedings of the 33rd International Conference on Software Engineering
Studying software evolution using artefacts' shared information content
Science of Computer Programming
A framework for evolution of modelling languages
Science of Computer Programming
Assessing the quality of model-comparison tools: a method and a benchmark data set
Proceedings of the 2nd International Workshop on Model Comparison in Practice
On the concurrent versioning of metamodels and models: challenges and possible solutions
Proceedings of the 2nd International Workshop on Model Comparison in Practice
Table-driven detection and resolution of operation-based merge conflicts with mirador
ECMFA'11 Proceedings of the 7th European conference on Modelling foundations and applications
Historage: fine-grained version control system for Java
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
From state- to delta-based bidirectional model transformations: the symmetric case
Proceedings of the 14th international conference on Model driven engineering languages and systems
Layered class diagrams: supporting the design process
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems
Weak Alphabet Merging of Partial Behavior Models
ACM Transactions on Software Engineering and Methodology (TOSEM)
MMDiff: a modeling tool for metamodel comparison
Proceedings of the 50th Annual Southeast Regional Conference
iDiff: Interaction-based program differencing tool
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Specifying and detecting meaningful changes in programs
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Respecting component architecture to migrate product copies to a software product line
Proceedings of the 17th international doctoral symposium on Components and Architecture
Recovering traceability links between an API and its learning resources
Proceedings of the 34th International Conference on Software Engineering
WitchDoctor: IDE support for real-time auto-completion of refactorings
Proceedings of the 34th International Conference on Software Engineering
Crosscutting revision control system
Proceedings of the 34th International Conference on Software Engineering
Reconstructing complex metamodel evolution
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
An introduction to model versioning
SFM'12 Proceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering
A field study of refactoring challenges and benefits
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Matching business process workflows across abstraction levels
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
A posteriori operation detection in evolving software models
Journal of Systems and Software
Identification of generalization refactoring opportunities
Automated Software Engineering
Model matching for Web Services on context dependencies
Proceedings of the 14th International Conference on Information Integration and Web-based Applications & Services
Software and Systems Modeling (SoSyM)
Managing the evolution of data-intensive Web applications by model-driven techniques
Software and Systems Modeling (SoSyM)
Synchronizing concurrent model updates based on bidirectional transformation
Software and Systems Modeling (SoSyM)
Comparing approaches to analyze refactoring activity on software repositories
Journal of Systems and Software
Quality of merge-refactorings for product lines
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Improving product copy consolidation by architecture-aware difference analysis
Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
An EMF-based toolkit for reasoning on web services evolution
Proceedings of the workshop on ACadeMics Tooling with Eclipse
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
A case study in evidence-based DSL evolution
ECMFA'13 Proceedings of the 9th European conference on Modelling Foundations and Applications
A multidimensional empirical study on refactoring activity
CASCON '13 Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research
A method to evaluate differences between student UML class diagrams
Journal of Computing Sciences in Colleges
Hi-index | 0.02 |
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.