Proceedings of the 10th European Software Engineering Conference Held Jointly With 13th ACM SIGSOFT International Symposium on 2005
DOI: 10.1145/1081706.1081737
|View full text |Cite
|
Sign up to set email alerts
|

An empirical study of code clone genealogies

Abstract: It has been broadly assumed that code clones are inherently bad and that eliminating clones by refactoring would solve the problems of code clones. To investigate the validity of this assumption, we developed a formal definition of clone evolution and built a clone genealogy tool that automatically extracts the history of code clones from a source code repository. Using our tool we extracted clone genealogy information for two Java open source projects and analyzed their evolution.Our study contradicts some co… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

2
152
3

Year Published

2008
2008
2018
2018

Publication Types

Select...
6
2

Relationship

0
8

Authors

Journals

citations
Cited by 274 publications
(157 citation statements)
references
References 43 publications
2
152
3
Order By: Relevance
“…Kim et al [30]) occurring in any system snapshot. The above choice does not constitute a limitation for our approach, which can be used to build clone genealogies as well.…”
Section: Contextmentioning
confidence: 99%
See 1 more Smart Citation
“…Kim et al [30]) occurring in any system snapshot. The above choice does not constitute a limitation for our approach, which can be used to build clone genealogies as well.…”
Section: Contextmentioning
confidence: 99%
“…Such studies, however, neither considered phenomena such as the propagation of changes to clones belonging to the same clone class nor did they investigate the relationship between the presence of clones and the source code fault-proneness. [30]. They proposed a formal definition of clone evolution and built a clone genealogy tool to automatically extract the history of code clones from a source code repository.…”
Section: Clone Genealogy and Tracingmentioning
confidence: 99%
“…Of them, Casazza et al [7] and Antoniol et al [4] provide interesting findings, but they focus on clone evolution, whereas we focus on the occurrence of copy/paste clones in several dimensions. Kim et al [17] also studied the evolution of code clones in several systems and concluded that programmers often intentionally practice code cloning. Jiang and Hassan [10] also used the Linux Kernel as an example for their framework for understanding cloning in large systems.…”
Section: Related Workmentioning
confidence: 99%
“…Although cloning is beneficial in some cases [13] and often programmers intentionally use it [17], it can be detrimental to software maintenance [8,12]. For example, if a bug is detected in a code fragment, all the fragments similar to it should be investigated to check for the same bug [19], and when enhancing or adapting a piece of code, duplicated fragments can multiply the work to be done [12].…”
Section: Introductionmentioning
confidence: 99%
“…Historical data on the changes of open-source systems allowed researchers to empirically investigate on the evolution of various software entities, such as clones [10,14] or design motifs [2]. Some studies considered changes between releases, i.e., stable snapshots released after some amount of changes, while others exploited the historical data available in versioning systems, such as CVS or SVN.…”
Section: Related Workmentioning
confidence: 99%