Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Version models for software configuration management
ACM Computing Surveys (CSUR)
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
Tracking structural evolution using origin analysis
Proceedings of the International Workshop on Principles of Software Evolution
A State-of-the-Art Survey on Software Merging
IEEE Transactions on Software Engineering
Substring Matching for Clone Detection and Change Tracking
ICSM '94 Proceedings of the International Conference on Software Maintenance
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
On finding duplication and near-duplication in large software systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Evaluation Experiments on the Detection of Programming Patterns Using Software Metrics
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Identifying Similar Code with Program Dependence Graphs
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
A Language Independent Approach for Detecting Duplicated Code
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
An Integrated Approach for Studying Architectural Evolution
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
Identifying Refactoring Opportunities Using Logic Meta Programming
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Extensible Language-Aware Merging
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Java Quality Assurance by Detecting Code Smells
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
A Framework for Understanding Conceptual Changes in Evolving Source Code
ICSM '03 Proceedings of the International Conference on Software Maintenance
Detecting Merging and Splitting using Origin Analysis
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Facilitating software evolution research with kenyon
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Using refactorings to automatically update component-based applications
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using refactorings to automatically update component-based applications
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
How do APIs evolve? A story of refactoring: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
Modeling history to analyze software evolution: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
TA-RE: an exchange language for mining software repositories
Proceedings of the 2006 international workshop on Mining software repositories
Program element matching for multi-version program analyses
Proceedings of the 2006 international workshop on Mining software repositories
Mining version archives for co-changed lines
Proceedings of the 2006 international workshop on Mining software repositories
A lightweight approach to technical risk estimation via probabilistic impact analysis
Proceedings of the 2006 international workshop on Mining software repositories
Are refactorings less error-prone than other changes?
Proceedings of the 2006 international workshop on Mining software repositories
Fine-grained processing of CVS archives with APFEL
eclipse '06 Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Predicting Faults from Cached History
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Identifying Changed Source Code Lines from Version Repositories
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Evaluating the Harmfulness of Cloning: A Change Based Experiment
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Prioritizing Warning Categories by Analyzing Software History
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Refactoring--Does It Improve Software Quality?
WoSQ '07 Proceedings of the 5th International Workshop on Software Quality
Differencing logical UML models
Automated Software Engineering
Determining detailed structural correspondence for generalization tasks
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction
IEEE Transactions on Software Engineering
Automated detection of api refactorings in libraries
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Journal of Software Maintenance and Evolution: Research and Practice
Mining framework usage changes from instantiation code
Proceedings of the 30th international conference on Software engineering
Recommending adaptive changes for framework evolution
Proceedings of the 30th international conference on Software engineering
Branching and merging in the repository
Proceedings of the 2008 international working conference on Mining software repositories
Evaluation of source code copy detection methods on freebsd
Proceedings of the 2008 international working conference on Mining software repositories
"Cloning considered harmful" considered harmful: patterns of cloning in software
Empirical Software Engineering
Analysis of Components for Generalization using Multidimensional Scaling
Fundamenta Informaticae
Change impact graphs: Determining the impact of prior codechanges
Information and Software Technology
Gathering refactoring data: a comparison of four methods
Proceedings of the 2nd Workshop on Refactoring Tools
AURA: a hybrid approach to identify framework evolution
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Actively comparing clones inside the code editor
Proceedings of the 4th International Workshop on Software Clones
Distinguishing copies from originals in software clones
Proceedings of the 4th International Workshop on Software Clones
A graph-based approach to API usage adaptation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Ref-Finder: a refactoring reconstruction tool based on logic query templates
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Software bertillonage: finding the provenance of an entity
Proceedings of the 8th Working Conference on Mining Software Repositories
Non-essential changes in version histories
Proceedings of the 33rd International Conference on Software Engineering
Recommending Adaptive Changes for Framework Evolution
ACM Transactions on Software Engineering and Methodology (TOSEM)
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
A method for analyzing code homology in genealogy of evolving software
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
iDiff: Interaction-based program differencing tool
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
Bug prediction based on fine-grained module histories
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
A history-based matching approach to identification of framework evolution
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
Analysis of Components for Generalization using Multidimensional Scaling
Fundamenta Informaticae
Seeking the ground truth: a retroactive study on the evolution and migration of software libraries
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Identification of generalization refactoring opportunities
Automated Software Engineering
Comparing approaches to analyze refactoring activity on software repositories
Journal of Systems and Software
Extraction of product evolution tree from source code of product variants
Proceedings of the 17th International Software Product Line Conference
Viewing functions as token sequences to highlight similarities in source code
Science of Computer Programming
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
A comparative study of manual and automated refactorings
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Empirical Software Engineering
Hi-index | 0.01 |
Merging and splitting source code entities is a common activity during the lifespan of a software system; as developers rethink the essential structure of a system or plan for a new evolutionary direction, so must they be able to reorganize the design artifacts at various abstraction levels as seems appropriate. However, while the raw effects of such changes may be plainly evident in the new artifacts, the original context of the design changes is often lost. That is, it may be obvious which characters of which files have changed, but it may not be obvious where or why moving, renaming, merging, and/or splitting of design elements has occurred. In this paper, we discuss how we have extended origin analysis [1], [2] to aid in the detection of merging and splitting of files and functions in procedural code; in particular, we show how reasoning about how call relationships have changed can aid a developer in locating where merges and splits have occurred, thereby helping to recover some information about the context of the design change. We also describe a case study of these techniques (as implemented in the Beagle tool) using the PostgreSQL database system as the subject.