Het verbeteren van de detectie van technische schuld in Java-broncode met een verrijkte dataset
Improving the detection of technical debt in Java source code with an enriched dataset
November 8, 2024
Auteurs: Nam Le Hai, Anh M. T. Bui, Phuong T. Nguyen, Davide Di Ruscio, Rick Kazman
cs.AI
Samenvatting
Technische schuld (TD) is een term die wordt gebruikt om de extra werkzaamheden en kosten te beschrijven die ontstaan wanneer ontwikkelaars hebben gekozen voor een snelle en gemakkelijke oplossing voor een probleem, in plaats van een effectievere en goed ontworpen, maar tijdrovende aanpak. Zelf-toegegeven technische schulden (SATD's) zijn een specifiek type technische schulden die ontwikkelaars opzettelijk documenteren en erkennen, meestal via tekstuele opmerkingen. Hoewel deze zelf-toegegeven opmerkingen een nuttig hulpmiddel zijn voor het identificeren van technische schulden, richten de meeste bestaande benaderingen zich op het vastleggen van cruciale tokens die verband houden met verschillende categorieën van TD, waarbij de rijke informatie die in de broncode zelf is ingebed, wordt verwaarloosd. Recente onderzoeken hebben zich gericht op het detecteren van SATD's door opmerkingen in de broncode te analyseren, en er is weinig werk verricht met betrekking tot technische schulden die in de broncode zijn opgenomen. Om een dergelijke lacune op te vullen, hebben we in deze studie, door de analyse van opmerkingen en hun bijbehorende broncode uit 974 Java-projecten gehost in het Stack-corpus, het allereerste dataset van TD samengesteld dat is geïdentificeerd aan de hand van code-opmerkingen, gekoppeld aan de bijbehorende broncode. Uit een empirische evaluatie bleek dat de opmerkingen van het resulterende dataset de voorspellingsprestaties van state-of-the-art SATD-detectiemodellen helpen verbeteren. Belangrijker nog, het opnemen van de geclassificeerde broncode verbetert aanzienlijk de nauwkeurigheid bij het voorspellen van verschillende soorten technische schuld. In dit opzicht is ons werk tweeledig: (i) We geloven dat ons dataset toekomstig werk op dit gebied zal stimuleren, waarbij verschillende onderzoeksproblemen met betrekking tot de herkenning van technische schuld worden geïnspireerd; (ii) De voorgestelde classificatoren kunnen dienen als baselines voor andere studies over de detectie van TD aan de hand van het samengestelde dataset.
English
Technical debt (TD) is a term used to describe the additional work and costs
that emerge when developers have opted for a quick and easy solution to a
problem, rather than a more effective and well-designed, but time-consuming
approach. Self-Admitted Technical Debts (SATDs) are a specific type of
technical debts that developers intentionally document and acknowledge,
typically via textual comments. While these self-admitted comments are a useful
tool for identifying technical debts, most of the existing approaches focus on
capturing crucial tokens associated with various categories of TD, neglecting
the rich information embedded within the source code itself. Recent research
has focused on detecting SATDs by analyzing comments embedded in source code,
and there has been little work dealing with technical debts contained in the
source code. To fill such a gap, in this study, through the analysis of
comments and their associated source code from 974 Java projects hosted in the
Stack corpus, we curated the first ever dataset of TD identified by code
comments, coupled with its associated source code. Through an empirical
evaluation, we found out that the comments of the resulting dataset help
enhance the prediction performance of state-of-the-art SATD detection models.
More importantly, including the classified source code significantly improves
the accuracy in predicting various types of technical debt. In this respect,
our work is two-fold: (i) We believe that our dataset will catalyze future work
in the domain, inspiring various research issues related to the recognition of
technical debt; (ii) The proposed classifiers may serve as baselines for other
studies on the detection of TD by means of the curated dataset.Summary
AI-Generated Summary