Abstract
Code clones are defined as identical or similar program structures that are created by copy-paste or modifying existing codes. They are acquainted with software systems due to the lack of programming skills, time restrictions, and other different constraints on the system as well as on the programming languages. Detection of code clones has many benefits in software development such as decreased maintenance cost, improved software quality, and simple settlements of new changes. In this paper, we have explored different code clone detection techniques and figure out their pros and cons. It assists in understanding the clone detection process and choosing appropriate techniques for detecting possible types of clones whose detection can help in the refactoring and maintenance processes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Nurmuliani N, Zowghi D, Powell S (2004) Analysis of requirements volatility during software development life cycle. In: 2004 Australian software engineering conference. IEEE, pp 28–37. https://doi.org/10.1109/ASWEC.2004.1290455
Roy CK, Cordy JR (2007) A survey on software clone detection research, vol 541, issue no. 115. Technical Report 541, Queen’s University at Kingston, pp 64–68
Rattan D, Bhatia R, Singh M (2013) Software clone detection: a systematic review. Inf Softw Technol 55(7):1165–1199
Kodhai E, Kanmani S (2014) Method-level code clone detection through LWH (Light Weight Hybrid) approach. J Softw Eng Res Dev 2(1):1–29. https://doi.org/10.1186/s40411-014-0012-8
Tsantalis N, Krishnan GP (2013) Refactoring clones: a new perspective. In: 7th international workshop on software clones. IEEE, pp 12–13. https://doi.org/10.1109/IWSC.2013.6613035
Kamiya T, Kusumoto S, Inoue K (2002) CCFinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Trans Softw Eng 28(7):654–670. https://doi.org/10.1109/TSE.2002.1019480
Li Z, Lu S, Myagmar S, Zhou Y (2006) CP-Miner: finding copy-paste and related bugs in large-scale software code. IEEE Trans Softw Eng 32(3):176–192. https://doi.org/10.1109/TSE.2006.28
Lingxiao J, Misherghi G, Zhendong S, Glondu S (2007) DECKARD: scalable and accurate tree-based detection of code clones. In: 29th international conference on software engineering (ICSE), pp 96–105. https://doi.org/10.1109/ICSE.2007.30
Roy CK, Cordy JR (2009) Near-miss function clones in open source software: an empirical study. J Softw Maintenance Evolu Res Pract 22(3):165–189. https://doi.org/10.1002/smr.416
Sajnani H, Saini V, Svajlenko J, Roy CK, Lopes CV (2016) SourcererCC: scaling code clone detection to big-code. In: Proceedings of the 38th international conference on software engineering. ACM Press, New York, New York, USA, pp 1157–1168. https://doi.org/10.1145/2884781.2884877
Li L, Feng H, Zhuang W, Meng N, Ryder B (2017) CCLearner: a deep learning-based clone detection approach. In: 2017 IEEE international conference on software maintenance and evolution (ICSME). IEEE, pp 249–260. https://doi.org/10.1109/ICSME.2017.46
Yang Y, Ren Z, Chen X, Jiang H (2018) Structural function based code clone detection using a new hybrid technique. In: 42nd Annual computer software and applications conference, vol 1. IEEE, pp 286–291. https://doi.org/10.1109/COMPSAC.2018.00045
Wang P, Svajlenko J, Wu Y, Xu Y, Roy CK (2018) CCAligner. In: Proceedings of the 40th international conference on software engineering. ACM Press, New York, New York, USA, pp 1066–1077. https://doi.org/10.1145/3180155.3180179
Luan S, Yang D, Barnaby C, Sen K, Chandra S (2019) Aroma: code recommendation via structural code search. Proc ACM Program Lang 3:1–28. https://doi.org/10.1145/3360578
Singh MK, Kumar K (2020) Scalable and accurate detection of function clones in software using multithreading. In: Jarzabek S, Poniszewska-Marańda A, Madeyski L (eds) Integrating research and practice in software engineering. Springer International Publishing, Cham, pp 31–41. https://doi.org/10.1007/978-3-030-26574-8_3
Mayrand J, Leblanc C, Merlo E (1996) Experiment on the automatic detection of function clones in a software system using metrics. In: International conference on software maintenance, vol 96. IEEE, pp 244–253. https://doi.org/10.1109/ICSM.1996.565012
Basit HA, Jarzabek S (2009) A data mining approach for detecting higher-level clones in software. IEEE Trans Softw Eng 35(4):497–514. https://doi.org/10.1109/tse.2009.16
Marcus A, Maletic JI (2001) Identification of high-level concept clones in source code. In: Proceedings of 16th annual international conference on automated software engineering. IEEE, pp 107–114. https://doi.org/10.1109/ASE.2001.989796
Kapser CJ, Godfrey MW (2006) Supporting the analysis of clones in software systems. J Softw Maintenance Evol Res Pract 18(2):61–82. https://doi.org/10.1002/smr.327
Bellon S, Koschke R, Antoniol G, Krinke J, Merlo E (2007) Comparison and evaluation of clone detection tools. IEEE Trans Softw Eng 33(9):577–591. https://doi.org/10.1109/TSE.2007.70725
Koschke R (2007) Survey of research on software clones, Internat. Begegnungs-und Forschungszentrum für Informatik
Pati J, Kumar B, Manjhi D, Shukla KK (2017) A comparison among ARIMA, BP-NN, and Moga-NN for software clone evolution prediction. IEEE Access 5:11841–11851. https://doi.org/10.1109/ACCESS.2017.2707539
Kim M, Sazawal V, Notkin D (2005) An empirical study of code clone genealogies. In: European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering (ESEC/FSE-13). ACM, pp 187–196. https://doi.org/10.1145/1081706.1081737
Thummalapenta S, Cerulo L, Aversano L, Di Penta M (2010) An empirical study on the maintenance of source code clones. Empirical Softw Eng 15(1):1–34. https://doi.org/10.1007/s10664-009-9108-x
Bakota T, Ferenc R, Gyimóthy T (2007) Clone smells in software evolution. In: IEEE international conference on software maintenance (ICSM). IEEE, pp 24–33. https://doi.org/10.1109/ICSM.2007.4362615
Acknowledgements
This work has been supported by a research grant from the Science and Engineering Research Board (SERB), Department of Science and Technology, Government of India under the Early Career Research Award Scheme.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 The Author(s), under exclusive license to Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Singh, U., Kumar, K., Gupta, D. (2021). A Study of Code Clone Detection Techniques in Software Systems. In: Dave, M., Garg, R., Dua, M., Hussien, J. (eds) Proceedings of the International Conference on Paradigms of Computing, Communication and Data Sciences. Algorithms for Intelligent Systems. Springer, Singapore. https://doi.org/10.1007/978-981-15-7533-4_27
Download citation
DOI: https://doi.org/10.1007/978-981-15-7533-4_27
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-15-7532-7
Online ISBN: 978-981-15-7533-4
eBook Packages: EngineeringEngineering (R0)