skip to main content
10.1145/2501543.2501548acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Enhancement of CRD-based clone tracking

Published: 19 August 2013 Publication History

Abstract

Many researchers have conducted a variety of research related to clone evolution. In order to grasp how clones have evolved, clones must be tracked. However, conventional clone tracking techniques are not feasible to track clones if they moved to another location in the source code. Consequently, in this research, we propose a new clone tracking technique. The proposed technique is an enhanced version of clone tracking with clone region descriptor (CRD) proposed by Duala-Ekoko and Robillard. The proposed technique can track clones even if they moved to another location. We have implemented a software tool based on the proposed technique, and applied it to two open source systems. In the experiment, we confirmed that the proposed technique could track 44 clone groups, which the conventional CRD tracking could not track. The accuracy of the tracking for those clones was 91%.

References

[1]
G. Antoniol, U. Villano, E. Merlo, and M. Di Penta. Analyzing cloning evolution in the linux kernel. Information and Software Technology, 44:755–765, 2002.
[2]
L. Aversano, L. Cerulo, and M. Di Penta. How clones are maintained: An empirical study. In Proceedings of the 11th European Conference on Software Maintenance and Reengineering, pages 81–90, 2007.
[3]
T. Bakota, R. Ferenc, and T. Gyimothy. Clone smells in software evolution. In Proceedings of the 23rd International Conference on Software Maintenance, pages 24–33, 2007.
[4]
E. Duala-Ekoko and M. P. Robillard. Clone region descriptors: Representing and tracking duplication in source code. ACM Transactions on Software Engineering and Methodology, 20(1):3:1–3:31, 2010.
[5]
R. Geiger, B. Fluri, H. C. Gall, and M. Pinzger. Relation of code clones and change couplings. In Proceedings of the 9th International Conference on Fundamental Approaches to Software Engineering, pages 411–425, 2006.
[6]
N. Göde. Evolution of type-1 clones. In Proceedings of the 9th International Working Conference on Source Code Analysis and Manipulation, pages 77–86, 2009.
[7]
N. Göde and R. Koschke. Studying clone evolution using incremental clone detection. Journal of Software: Evolution and Process, 25(2):165–192, 2013.
[8]
Y. Higo and S. Kusumoto. How often do unintended inconsistencies happen? –deriving modification patterns and detecting overlooked code fragments–. In Proceedings of the 28th International Conference on Software Maintenance, pages 222–231, 2012.
[9]
Y. Higo, U. Yasushi, M. Nishino, and S. Kusumoto. Incremental code clone detection: A PDG-based approach. In Proceedings of the 18th Working Conference on Reverse Engineering, pages 3–12, 2011.
[10]
K. Hotta, Y. Sano, Y. Higo, and S. Kusumoto. Is duplicate code more frequently modified than non-duplicate code in software evolution?: an empirical study on open source software. In Proceedings of the Joint ERCIM Workshop on Software Evolution and International Workshop on Principles of Software Evolution, pages 73–82, 2010.
[11]
T. Kamiya, S. Kusumoto, and K. Inoue. CCFinder: A multilinguistic token-based code clone detection system for large scale source code. IEEE Transactions on Software Engineering, 28(7):654–670, 2002.
[12]
C. Kapser and M. W. Godfrey. "Cloning considered harmful" considered harmful: patterns of cloning in software. Empirical Software Engineering, 13(6):645–692, 2008.
[13]
M. Kim, L. Bergman, T. Lau, and D. Notkin. An Ethnographic Study of Copy and Paste Programming Practices in OOPL. In Proceedings of the 3rd International Symposium on Empirical Software Engineering, pages 83–92, 2004.
[14]
M. Kim, V. Sazawal, D. Notkin, and G. Murphy. An empirical study of code clone genealogies. In Proceedings of the 10th European software engineering conference held jointly with the 13th International Symposium on Foundations of software engineering, pages 187–196, 2005.
[15]
J. Krinke. A study of consistent and inconsistent changes to code clones. In Proceedings of the 14th Working Conference on Reverse Engineering, pages 170–178, 2007.
[16]
T. D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models: a study of developer work habits. In Proceedings of the 28th International Conference on Software Engineering, pages 492–501, 2006.
[17]
Z. Li, S. Lu, S. Myagmar, and Y. Zhou. CP-Miner: Finding copy-paste and related bugs in large-scale software code. IEEE Transactions on Software Engineering, 32(3):176–192, 2006.
[18]
M. de Wit, A. Zaidman, and A. van Deursen. Managing code clones using dynamic change tracking and resolution. In Proceedings of the 25th International Conference on Software Maintenance, pages 169–178, 2012.
[19]
H. A. Nguyen, T. T. Nguyen, N. H. Pham, J. Al-Kofahi, and T. N. Nguyen. Clone management for evolving software. IEEE Transactions on Software Engineering, 38(5), 2012.
[20]
S. Thummalapenta, L. Cerulo, L. Aversano, and M. Di Penta. An empirical study on the maintenance of source code clones. Empirical Software Engineering, 15(1):1–34, 2010.

Cited By

View all
  • (2021)FLeCCS: A Technique for Suggesting Fragment-Level Similar Co-change Candidates2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)10.1109/ICPC52881.2021.00024(160-171)Online publication date: May-2021
  • (2019)Code Clone Tracer (CCT): A Tracking Tool for Analyzing Human and Social Factors in Creating and Reusing Code Clones2019 20th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD)10.1109/SNPD.2019.8935645(519-524)Online publication date: Jul-2019
  • (2017)Finding Extract Method Refactoring Opportunities by Analyzing Development History2017 IEEE 41st Annual Computer Software and Applications Conference (COMPSAC)10.1109/COMPSAC.2017.129(190-195)Online publication date: Jul-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IWPSE 2013: Proceedings of the 2013 International Workshop on Principles of Software Evolution
August 2013
67 pages
ISBN:9781450323116
DOI:10.1145/2501543
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 August 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Clone evolution
  2. Code clone
  3. Tracking clones

Qualifiers

  • Article

Conference

ESEC/FSE'13
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2021)FLeCCS: A Technique for Suggesting Fragment-Level Similar Co-change Candidates2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)10.1109/ICPC52881.2021.00024(160-171)Online publication date: May-2021
  • (2019)Code Clone Tracer (CCT): A Tracking Tool for Analyzing Human and Social Factors in Creating and Reusing Code Clones2019 20th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD)10.1109/SNPD.2019.8935645(519-524)Online publication date: Jul-2019
  • (2017)Finding Extract Method Refactoring Opportunities by Analyzing Development History2017 IEEE 41st Annual Computer Software and Applications Conference (COMPSAC)10.1109/COMPSAC.2017.129(190-195)Online publication date: Jul-2017
  • (2016)Hey! Are you injecting side effect?: A tool for detecting purity changes in java methods2016 IEEE 24th International Conference on Program Comprehension (ICPC)10.1109/ICPC.2016.7503747(1-3)Online publication date: May-2016
  • (2016)Splitting Commits via Past Code Changes2016 23rd Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC.2016.028(129-136)Online publication date: 2016
  • (2014)Hey! are you committing tangled changes?Proceedings of the 22nd International Conference on Program Comprehension10.1145/2597008.2597798(262-265)Online publication date: 2-Jun-2014
  • (2014)Software code cloning detection and future scope development- Latest short reviewInternational Conference on Recent Advances and Innovations in Engineering (ICRAIE-2014)10.1109/ICRAIE.2014.6909115(1-4)Online publication date: May-2014
  • (2014)Predicting Next Changes at the Fine-Grained LevelProceedings of the 2014 21st Asia-Pacific Software Engineering Conference - Volume 0110.1109/APSEC.2014.27(119-126)Online publication date: 1-Dec-2014

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media