ABSTRACT
Code Clones - duplicated source fragments - are said to increase maintenance effort and to facilitate problems caused by inconsistent changes to identical parts. While this is certainly true for some clones and certainly not true for others, it is unclear how many clones are real threats to the system's quality and need to be taken care of. Our analysis of clone evolution in mature software projects shows that most clones are rarely changed and the number of unintentional inconsistent changes to clones is small. We thus have to carefully select the clones to be managed to avoid unnecessary effort managing clones with no risk potential.
- L. Aversano, L. Cerulo, and M. Di Penta. How clones are maintained: An empirical study. In CSMR. IEEE, 2007. Google ScholarDigital Library
- B. S. Baker. Parameterized duplication in strings: Algorithms and an application to software maintenance. Journal on Computing, 26(5), 1997. Google ScholarDigital Library
- T. Bakota, R. Ferenc, and T. Gyimóthy. Clone smells in software evolution. In ICSM. IEEE, 2007.Google ScholarCross Ref
- M. Balazinska, E. Merlo, M. Dagenais, B. Lagüe, and K. Kontogiannis. Advanced clone-analysis to support object-oriented system refactoring. In WCRE. IEEE, 2000. Google ScholarDigital Library
- I. D. Baxter, A. Yahin, L. Moura, M. Sant'Anna, and L. Bier. Clone detection using abstract syntax trees. In ICSM. IEEE, 1998. Google ScholarDigital Library
- M. de Wit, A. Zaidman, and A. van Deursen. Managing code clones using dynamic change tracking and resolution. In ICSM. IEEE, 2009.Google ScholarCross Ref
- S. Ducasse, M. Rieger, and S. Demeyer. A language independent approach for detecting duplicated code. In ICSM. IEEE, 1999. Google ScholarDigital Library
- N. Göde. Evolution of type-1 clones. In SCAM. IEEE, 2009.Google ScholarDigital Library
- N. Göde and R. Koschke. Incremental clone detection. In CSMR. IEEE, 2009.Google ScholarDigital Library
- N. Göde and R. Koschke. Studying clone evolution using incremental clone detection. JSME, 2010.Google Scholar
- J. Harder and N. Göde. Quo vadis, clone management? In IWSC. ACM, 2010. Google ScholarDigital Library
- Y. Higo, T. Kamiya, S. Kusumoto, and K. Inoue. Refactoring support based on code clone analysis. LNCS, 3009, 2004.Google Scholar
- L. Jiang, G. Misherghi, Z. Su, and S. Glondu. DECKARD: Scalable and accurate tree-based detection of code clones. In ICSE. IEEE, 2007. Google ScholarDigital Library
- L. Jiang, Z. Su, and E. Chiu. Context-based detection of clone-related bugs. In ESEC/FSE. ACM, 2007. Google ScholarDigital Library
- J. H. Johnson. Identifying redundancy in source code using fingerprints. In CASCON. IBM Press, 1993. Google ScholarDigital Library
- E. Juergens and F. Deissenboeck. How much is a clone? In SQM, 2010.Google Scholar
- E. Juergens, F. Deissenboeck, B. Hummel, and S. Wagner. Do code clones matter? In ICSE. IEEE, 2009. Google ScholarDigital Library
- T. Kamiya, S. Kusumoto, and K. Inoue. CCFinder: A multilinguistic token-based code clone detection system for large scale source code. TSE, 28(7), 2002. Google ScholarDigital Library
- C. J. Kapser and M. W. Godfrey. "Cloning considered harmful" considered harmful: patterns of cloning in software. ESE, 13(6), 2008. Google ScholarDigital Library
- M. Kim, V. Sazawal, D. Notkin, and G. C. Murphy. An empirical study of code clone genealogies. In ESEC/FSE. ACM, 2005. Google ScholarDigital Library
- R. V. Komondoor and S. Horwitz. Using slicing to identify duplication in source code. In SAS. Springer-Verlag, 2001. Google ScholarDigital Library
- R. Koschke. Survey of research on software clones. In R. Koschke, E. Merlo, and A. Walenstein, editors, Duplication, Redundancy, and Similarity in Software, number 06301 in Dagstuhl Seminar Proceedings, 2007.Google Scholar
- J. Krinke. Identifying similar code with program dependence graphs. In WCRE. IEEE, 2001. Google ScholarDigital Library
- J. Krinke. A study of consistent and inconsistent changes to code clones. In WCRE. IEEE, 2007. Google ScholarDigital Library
- Z. Li, S. Lu, S. Myagmar, and Y. Zhou. CP-Miner: Finding copy-paste and related bugs in large-scale software code. TSE, 32(3), 2006. Google ScholarDigital Library
- A. Lozano and M. Wermelinger. Assessing the effect of clones on changeability. In ICSM. IEEE, 2008.Google ScholarCross Ref
- A. Lozano, M. Wermelinger, and B. Nuseibeh. Evaluating the harmfulness of cloning: A change based experiment. In MSR. IEEE, 2007. Google ScholarDigital Library
- J. Mayrand, C. Leblanc, and E. Merlo. Experiment on the automatic detection of function clones in a software system using metrics. In ICSM. IEEE, 1996. Google ScholarDigital Library
- E. W. Myers. An O(ND) difference algorithm and its variations. Algorithmica, 1(2), 1986.Google Scholar
- T. T. Nguyen, H. A. Nguyen, N. H. Pham, J. M. Al-Kofahi, and T. N. Nguyen. Clone-aware configuration management. In ASE. IEEE, 2009. Google ScholarDigital Library
- C. K. Roy and J. R. Cordy. A survey on software clone detection research. Technical report, Queens University at Kingston, Ontario, Canada, 2007.Google Scholar
- S. Thummalapenta, L. Cerulo, L. Aversano, and M. Di Penta. An empirical study on the maintenance of source code clones. ESE, 15(1), 2010. Google ScholarDigital Library
- M. Toomim, A. Begel, and S. L. Graham. Managing duplicated code with linked editing. In Symposium on Visual Languages and Human Centric Computing. IEEE, 2004. Google ScholarDigital Library
- Y. Ueda, T. Kamiya, S. Kusumoto, and K. Inoue. On detection of gapped code clones using gap locations. In APSEC. IEEEy, 2002. Google ScholarDigital Library
Index Terms
- Frequency and risks of changes to clones
Recommendations
Analyzing and Forecasting Near-Miss Clones in Evolving Software: An Empirical Study
ICECCS '11: Proceedings of the 2011 16th IEEE International Conference on Engineering of Complex Computer SystemsEffort for development and maintenance of complex large software is believed to have dependency on the amount of duplicated code fragments (code clones) present in code-bases. For example, clones need to be carefully and consistently maintained and/or ...
An empirical study on the maintenance of source code clones
Code cloning has been very often indicated as a bad software development practice. However, many studies appearing in the literature indicate that this is not always the case. In fact, either changes occurring in cloned code are consistently propagated, ...
Evolution of Near-Miss Clones
SCAM '12: Proceedings of the 2012 IEEE 12th International Working Conference on Source Code Analysis and ManipulationIt is often claimed that duplicated source code fragments increase the maintenance effort in software systems. To investigate the impact of so called clones it is useful to analyze how they evolve. A previous study analyzed several aspects of the ...
Comments