Investigating on the Impact of Software Clones on Technical Debt

Code reuse by copying a code fragment with or without modification generates duplicate copies of exact or similar code fragments in a software system, known as code clones. The debate about the harmfulness of clone in ongoing in the literature, nevertheless, it is widely recognized that clones needs special considerations during software evolution. In this paper, it is proposed a quantitative analysis of technical debt values to understand if it is higher with cloned code than those without cloned code. Moreover, changes performed on these files have been analyzed by analyzing commit logs. According to our inspection on four subject systems, the technical debt of files with cloned code is significantly higher than those without cloned code. Moreover, as expected, files with cloned code are more impacted by changes.

[1]  M.J. Munro,et al.  Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-Code , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[2]  Nikolaos Tsantalis,et al.  Using Natural Language Processing to Automatically Detect Self-Admitted Technical Debt , 2017, IEEE Transactions on Software Engineering.

[3]  Peng Liang,et al.  Architectural Technical Debt Identification Based on Architecture Decisions and Change Scenarios , 2015, 2015 12th Working IEEE/IFIP Conference on Software Architecture.

[4]  Peng Liang,et al.  An empirical investigation of modularity metrics for indicating architectural technical debt , 2014, QoSA '14.

[5]  Mário André de Freitas Farias,et al.  A Contextualized Vocabulary Model for identifying technical debt on code comments , 2015, 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD).

[6]  Yuanfang Cai,et al.  Detecting software modularity violations , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[7]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[8]  Maninder Singh,et al.  Software clone detection: A systematic review , 2013, Inf. Softw. Technol..

[9]  Liming Zhu,et al.  Visualising architectural dependencies , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[10]  Emad Shihab,et al.  An Exploratory Study on Self-Admitted Technical Debt , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[11]  Radu Marinescu,et al.  Detection strategies: metrics-based rules for detecting design flaws , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..