Abstract
Code cloning is defined as a programming practice in which a programmer reuses a code fragment after modifying existing codes or copying it as it is. Code clones can be detected at various levels or varying granularity size but when they are detected at the function level of a program, they are called function clones. Since in non-object oriented languages, functions are the defining components of any software, so detection of function clones can be very useful and can help in reducing the cost of maintenance. In this paper, we have proposed a multi-threading metrics-based detection algorithm for detecting Type-I and Type-II function clones. We evaluated our approach on three C-language open source projects. The time-consumption for detection is reduced to a greater extent giving a higher performance as compared to CloneManager, one of the recent function clone detector.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Rattan, D., Bhatia, R., Singh, M.: Software clone detection: a systematic review. Inf. Softw. Technol. 55, 1165–1199 (2013)
Roy, C.K., Cordy, J.R.: A survey on software clone detection research. Technical Report 541, Queen’s University at Kingston (2007)
Kodhai, E., Kanmani, S.: Method-level code clone detection through LWH (Light Weight Hybrid) approach. J. Softw. Eng. Res. Dev. 2, 1–29 (2014). https://doi.org/10.1186/s40411-014-0012-8
Roy, C.K., Cordy, J.R.: Near-miss function clones in open source software: an empirical study. J. Softw. Maintenance Evol. Res. Pract. 22, 165–189 (2010). https://doi.org/10.1002/smr.v22:3
Huang, A.: Similarity measures for text document clustering. In: New Zealand Computer Science Research Student Conference (NZCSRSC), pp. 49–56 (2008)
Sommerville, I.: Software Engineering. Pearson Addison Wesley (2016)
Koschke, R.: Survey of research on software clones (2007)
Yang, Y., Ren, Z., Chen, X., Jiang, H.: Structural function based code clone detection using a new hybrid technique. In: 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC), vol. 01, pp. 286–291 (2018). https://doi.org/10.1109/COMPSAC.2018.00045
Basit, H.A., Jarzabek, S.: A data mining approach for detecting higher-level clones in software. IEEE Trans. Softw. Eng. 35, 497–514 (2009). https://doi.org/10.1109/tse.2009.16
Lanubile, F., Mallardo, T.: Finding function clones in Web applications. In: Proceedings of the Seventh European Conference on Software Maintenance and Reengineering, pp. 379–386 (2003). https://doi.org/10.1109/CSMR.2003.1192447
Lague, B., Proulx, D., Mayrand, J., Merlo, E.M., Hudepohl, J.: Assessing the benefits of incorporating function clone detection in a development process. In: Proceedings International Conference on Software Maintenance, pp. 314–321 (IEEE Comput. Soc.) (2002). https://doi.org/10.1109/ICSM.1997.624264
Mayrand, J., Leblanc, C., Merlo, E.: Experiment on the automatic detection of function clones in a software system using metrics. In: Proceedings of International Conference on Software Maintenance ICSM-96, pp. 244–253. IEEE (1996). https://doi.org/10.1109/ICSM.1996.565012
Abyss 0.3. http://abyss.sourceforge.net/downlast.html. Accessed 19 Mar 2019
Apache HTTP 2.2.8. https://archive.apache.org/dist/httpd/. Accessed 19 Mar 2019
Bison 2.4. https://ftp.gnu.org/gnu/bison/. Accessed 19 Mar 2019
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 Early Career Research Award Scheme.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Singh, M.K., 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. Studies in Computational Intelligence, vol 851. Springer, Cham. https://doi.org/10.1007/978-3-030-26574-8_3
Download citation
DOI: https://doi.org/10.1007/978-3-030-26574-8_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-26573-1
Online ISBN: 978-3-030-26574-8
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)