The effects of workspace awareness support on the usability of real-time distributed groupware
ACM Transactions on Computer-Human Interaction (TOCHI)
Predicting Fault Incidence Using Software Change History
IEEE Transactions on Software Engineering
Characteristics of application software maintenance
Communications of the ACM
Assessing the Benefits of Incorporating Function Clone Detection in a Development Process
ICSM '97 Proceedings of the International Conference on Software Maintenance
Aiding Comprehension of Cloning Through Categorization
IWPSE '04 Proceedings of the Principles of Software Evolution, 7th International Workshop
Understanding source code evolution using abstract syntax tree matching
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Mining metrics to predict component failures
Proceedings of the 28th international conference on Software engineering
How Clones are Maintained: An Empirical Study
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
IEEE Transactions on Software Engineering
Comparison and Evaluation of Clone Detection Tools
IEEE Transactions on Software Engineering
A Study of Consistent and Inconsistent Changes to Code Clones
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
An empirical study of software developers' management of dependencies and changes
Proceedings of the 30th international conference on Software engineering
An empirical study on the maintenance of source code clones
Empirical Software Engineering
An empirical study of long-lived code clones
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
Late propagation in software clones
ICSM '11 Proceedings of the 2011 27th IEEE International Conference on Software Maintenance
Relation of code clones and change couplings
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
Connectivity of co-changed method groups: a case study on open source systems
CASCON '12 Proceedings of the 2012 Conference of the Center for Advanced Studies on Collaborative Research
An empirical study of the fault-proneness of clone mutation and clone migration
Proceedings of the 10th Working Conference on Mining Software Repositories
Hi-index | 0.00 |
Code clones are duplicated code fragments that are copied to re-use functionality and speed up development. However, due to the duplicate nature of code clones, inconsistent updates can lead to defects in software system. We extend the existing studies on the inconsistent co-change characteristics, by investigating further factors that affect clone evolution. We study the effect of development cycles, the number of developers, method names similarity and code complexity. Our empirical study includes six industrial software systems to determine if the observations are statistically significant. We discover that one way to improve maintenance of code clones is to decrease code complexity. We find that increased code complexity leads to a decrease in co-change, which can lead to software defects. Likewise, we find that method name similarity is an important factor on co-change frequency of cloned code. From development cycles point of view, we observe that co-change frequency of cloned code does not change significantly from early to later and from development to defect fixing cycles. As a result, we suggest assigning a higher priority for early refactoring (i.e., within the first six months) of all cloned methods with infrequent co-change focusing on clone classes with low similarity in method names and high code complexity.