Self-Admitted Technical Debt Removal and Refactoring Actions: Co-Occurrence or More?

Technical Debt (TD) concerns the lack of an adequate solution in a software project, from its design to the source code. Its admittance through comments or commit messages is referred to as Self-Admitted Technical Debt (SATD). Previous research has studied SATD from different perspectives, including its distribution, impact on software quality, and removal. In this paper, we investigate the relationship between refactorings and SATD removal. By leveraging a dataset of SATD and their removals in four open-source projects and by using an automated refactoring detection tool, we study the co-occurrence of refactorings and SATD removals. Results of the study indicate that refactorings are more likely to co-occur with SATD removals than with other commits, however, in most cases, they belong to different quality improvement activities performed at the same time.

[1]  Tibor Gyimóthy,et al.  Empirical study on refactoring large-scale industrial systems and its effects on maintainability , 2017, J. Syst. Softw..

[2]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[3]  Alexander Serebrenik,et al.  An Empirical Study on the Removal of Self-Admitted Technical Debt , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[4]  Witold Pedrycz,et al.  A Case Study on the Impact of Refactoring on Quality and Productivity in an Agile Team , 2008, CEE-SET.

[5]  Diomidis Spinellis,et al.  Refactoring--Does It Improve Software Quality? , 2007, Fifth International Workshop on Software Quality (WoSQ'07: ICSE Workshops 2007).

[6]  A F R S Sir Ronald Fisher,et al.  CONFIDENCE LIMITS FOR A CROSS‐PRODUCT RATIO , 1962 .

[7]  Foutse Khomh,et al.  Recommending when Design Technical Debt Should be Self-Admitted , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[8]  Alexander Serebrenik,et al.  Was Self-Admitted Technical Debt Removal a Real Removal? An In-Depth Perspective , 2018, 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR).

[9]  Raed Shatnawi,et al.  An Empirical Assessment of Refactoring Impact on Software Quality Using a Hierarchical Quality Model , 2011 .

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

[11]  Tibor Gyimóthy,et al.  Empirical evaluation of software maintainability based on a manually validated refactoring dataset , 2018, Inf. Softw. Technol..

[12]  Danny Dig,et al.  Accurate and Efficient Refactoring Detection in Commit History , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[13]  Mohammad Alshayeb,et al.  Empirical investigation of refactoring effect on software quality , 2009, Inf. Softw. Technol..

[14]  Ward Cunningham,et al.  The WyCash portfolio management system , 1992, OOPSLA '92.

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

[16]  Alexander Chatzigeorgiou,et al.  Investigating the evolution of code smells in object-oriented systems , 2014, Innovations in Systems and Software Engineering.

[17]  Gabriele Bavota,et al.  When and Why Your Code Starts to Smell Bad (and Whether the Smells Go Away) , 2015, IEEE Transactions on Software Engineering.

[18]  Gabriele Bavota,et al.  An experimental investigation on the innate relationship between quality and refactoring , 2015, J. Syst. Softw..