Program evolution: processes of software change
Program evolution: processes of software change
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Object Oriented Reengineering Patterns
Object Oriented Reengineering Patterns
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Experiment on the Automatic Detection of Function Clones in a Software System Using Metrics
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Visual Detection of Duplicated Code
ECOOP '98 Workshop ion on Object-Oriented Technology
Gemini: Maintenance Support Environment Based on Code Clone Analysis
METRICS '02 Proceedings of the 8th International Symposium on Software Metrics
Evaluating Clone Detection Tools for Use during Preventative Maintenance
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
Identifying Similar Code with Program Dependence Graphs
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Assessing the Benefits of Incorporating Function Clone Detection in a Development Process
ICSM '97 Proceedings of the International Conference on Software Maintenance
Detection of Logical Coupling Based on Product Release History
ICSM '98 Proceedings of the International Conference on Software Maintenance
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Language Independent Approach for Detecting Duplicated Code
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Polymetric Views-A Lightweight Visual Approach to Reverse Engineering
IEEE Transactions on Software Engineering
Populating a Release History Database from Version Control and Bug Tracking Systems
ICSM '03 Proceedings of the International Conference on Software Maintenance
CVS Release History Data for Detecting Logical Couplings
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
An Ethnographic Study of Copy and Paste Programming Practices in OOPL
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
Aiding Comprehension of Cloning Through Categorization
IWPSE '04 Proceedings of the Principles of Software Evolution, 7th International Workshop
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Fine-Grained Analysis of Change Couplings
SCAM '05 Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation
Tracking Code Clones in Evolving Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
New Frontiers of Reverse Engineering
FOSE '07 2007 Future of 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
An empirical study on the evolution of design patterns
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Threats on building models from CVS and Bugzilla repositories: the Mozilla case study
CASCON '07 Proceedings of the 2007 conference of the center for advanced studies on Collaborative research
"Cloning considered harmful" considered harmful: patterns of cloning in software
Empirical Software Engineering
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
The life and death of statically detected vulnerabilities: An empirical study
Information and Software Technology
An empirical study on the maintenance of source code clones
Empirical Software Engineering
Clone region descriptors: Representing and tracking duplication in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Distinguishing copies from originals in software clones
Proceedings of the 4th International Workshop on Software Clones
Proceedings of the 4th International Workshop on Software Clones
Classifying code clones with configuration
Proceedings of the 4th International Workshop on Software Clones
Is cloned code older than non-cloned code?
Proceedings of the 5th International Workshop on Software Clones
Proceedings of the 5th International Workshop on Software Clones
Java generics adoption: how new features are introduced, championed, or ignored
Proceedings of the 8th Working Conference on Mining Software Repositories
An empirical study on evolution of API documentation
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Using structural and textual information to capture feature coupling in object-oriented software
Empirical Software Engineering
An empirical study on inconsistent changes to code clones at the release level
Science of Computer Programming
Harmfulness of code duplication: a structured review of the evidence
EASE'09 Proceedings of the 13th international conference on Evaluation and Assessment in Software Engineering
Empirical Software Engineering
An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks
ACM Transactions on Software Engineering and Methodology (TOSEM)
An empirical study on the developers' perception of software coupling
Proceedings of the 2013 International Conference on Software Engineering
Enhancement of CRD-based clone tracking
Proceedings of the 2013 International Workshop on Principles of Software Evolution
An empirical study of the factors affecting co-change frequency of cloned code
CASCON '13 Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research
Adoption and use of Java generics
Empirical Software Engineering
Hi-index | 0.00 |
Code clones have long been recognized as bad smells in software systems and are considered to cause maintenance problems during evolution. It is broadly assumed that the more clones two files share, the more often they have to be changed together. This relation between clones and change couplings has been postulated but neither demonstrated nor quantified yet. However, given such a relation it would simplify the identification of restructuring candidates and reduce change couplings. In this paper, we examine this relation and discuss if a correlation between code clones and change couplings can be verified. For that, we propose a framework to examine code clones and relate them to change couplings taken from release history analysis. We validated our framework with the open source project Mozilla and the results of the validation show that although the relation is statistically unverifiable it derives a reasonable amount of cases where the relation exists. Therefore, to discover clone candidates for restructuring we additionally propose a set of metrics and a visualization technique. This allows one to spot where a correlation between cloning and change coupling exists and, as a result, which files should be restructured to ease further evolution.