Automatically Estimating the Effort Required to Repay Self-Admitted Technical Debt

09/12/2023
by   Yikun Li, et al.
0

Technical debt refers to the consequences of sub-optimal decisions made during software development that prioritize short-term benefits over long-term maintainability. Self-Admitted Technical Debt (SATD) is a specific form of technical debt, explicitly documented by developers within software artifacts such as source code comments and commit messages. As SATD can hinder software development and maintenance, it is crucial to address and prioritize it effectively. However, current methodologies lack the ability to automatically estimate the repayment effort of SATD based on its textual descriptions. To address this limitation, we propose a novel approach for automatically estimating SATD repayment effort, utilizing a comprehensive dataset comprising 341,740 SATD items from 2,568,728 commits across 1,060 Apache repositories. Our findings show that different types of SATD require varying levels of repayment effort, with code/design, requirement, and test debt demanding greater effort compared to non-SATD items, while documentation debt requires less. We introduce and evaluate machine learning methodologies, particularly BERT and TextCNN, which outperforms classic machine learning methods and the naive baseline in estimating repayment effort. Additionally, we summarize keywords associated with varying levels of repayment effort that occur during SATD repayment. Our contributions aim to enhance the prioritization of SATD repayment effort and resource allocation efficiency, ultimately benefiting software development and maintainability.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/04/2022

Automatic Identification of Self-Admitted Technical Debt from Different Sources

Technical debt refers to taking shortcuts to achieve short-term goals wh...
research
05/20/2019

Better Technical Debt Detection via SURVEYing

Software analytics can be improved by surveying; i.e. rechecking and (po...
research
02/04/2022

Identifying Self-Admitted Technical Debt in Issue Tracking Systems using Machine Learning

Technical debt is a metaphor indicating sub-optimal solutions implemente...
research
03/30/2022

A First Look at Duplicate and Near-duplicate Self-admitted Technical Debt Comments

Self-admitted technical debt (SATD) refers to technical debt that is int...
research
11/16/2017

Identifying and Managing Technical Debt in Database Normalization Using Machine Learning and Trade-off Analysis

Technical debt is a metaphor that describes the long term effects of sho...
research
02/01/2023

Generating Software for Well-Understood Domains

Current software development is often quite code-centric and aimed at sh...
research
11/16/2017

Database Normalization Debt: A Debt-Aware Approach to Reason about Normalization Decisions in Database Design

Technical debt is a metaphor that describes the long term effects of sho...

Please sign up or login with your details

Forgot password? Click here to reset