Litcius/Paper detail

Automatically Learning Patterns for Self-Admitted Technical Debt Removal

Fiorella Zampetti, Alexander Serebrenik, Massimiliano Di Penta

202051 citationsDOIOpen Access PDF

Abstract

Technical Debt (TD) expresses the need for improvements in a software system, e.g., to its source code or architecture. In certain circumstances, developers “self-admit” technical debt (SATD) in their source code comments. Previous studies investigate when SATD is admitted, and what changes developers perform to remove it. Building on these studies, we present a first step towards the automated recommendation of SATD removal strategies. By leveraging a curated dataset of SATD removal patterns, we build a multi-level classifier capable of recommending six SATD removal strategies, e.g., changing API calls, conditionals, method signatures, exception handling, return statements, or telling that a more complex change is needed. SARDELE (SAtd Removal using DEep LEarning) combines a convolutional neural network trained on embeddings extracted from the SATD comments with a recurrent neural network trained on embeddings extracted from the SATD-affected source code. Our evaluation reveals that SARDELE is able to predict the type of change to be applied with an average precision of ~55%, recall of ~ 57%, and AUC of 0.73, reaching up to 73% precision, 63% recall, and 0.74 AUC for certain categories such as changes to method calls. Overall, results suggest that SATD removal follows recurrent patterns and indicate the feasibility of supporting developers in this task with automated recommenders.

Topics & Concepts

Computer scienceSource codeArtificial intelligenceClassifier (UML)Technical debtPrecision and recallCode (set theory)Convolutional neural networkMachine learningRecallArtificial neural networkDeep learningSoftwareData miningSoftware developmentProgramming languageSet (abstract data type)LinguisticsPhilosophySoftware Engineering ResearchSoftware System Performance and ReliabilityOpen Source Software Innovations
Automatically Learning Patterns for Self-Admitted Technical Debt Removal | Litcius