Migliorare il rilevamento del debito tecnico nel codice sorgente Java con un dataset arricchito
Improving the detection of technical debt in Java source code with an enriched dataset
November 8, 2024
Autori: Nam Le Hai, Anh M. T. Bui, Phuong T. Nguyen, Davide Di Ruscio, Rick Kazman
cs.AI
Abstract
Il debito tecnico (TD) è un termine utilizzato per descrivere il lavoro e i costi aggiuntivi che emergono quando gli sviluppatori scelgono una soluzione rapida e semplice a un problema, piuttosto che un approccio più efficace e ben progettato, ma più dispendioso in termini di tempo. I debiti tecnici autoammessi (SATD) sono un tipo specifico di debiti tecnici che gli sviluppatori documentano intenzionalmente e riconoscono, tipicamente tramite commenti testuali. Sebbene questi commenti autoammessi siano uno strumento utile per identificare i debiti tecnici, la maggior parte degli approcci esistenti si concentra sulla cattura di token cruciali associati a varie categorie di TD, trascurando le ricche informazioni incorporate nel codice sorgente stesso. Ricerche recenti si sono concentrate sulla rilevazione dei SATD analizzando i commenti incorporati nel codice sorgente, e vi è stata poca attenzione dedicata ai debiti tecnici contenuti nel codice sorgente. Per colmare tale divario, in questo studio, attraverso l'analisi dei commenti e del relativo codice sorgente provenienti da 974 progetti Java ospitati nel corpus Stack, abbiamo curato il primo dataset di TD identificati tramite commenti di codice, unitamente al relativo codice sorgente. Attraverso una valutazione empirica, abbiamo scoperto che i commenti del dataset risultante contribuiscono a migliorare le prestazioni di previsione dei modelli di rilevamento SATD all'avanguardia. Inoltre, includere il codice sorgente classificato migliora significativamente l'accuratezza nella previsione di vari tipi di debito tecnico. In questo senso, il nostro lavoro è duplice: (i) riteniamo che il nostro dataset catalizzerà futuri lavori nel settore, ispirando varie questioni di ricerca legate al riconoscimento del debito tecnico; (ii) i classificatori proposti possono fungere da basi per altri studi sulla rilevazione dei TD mediante il dataset curato.
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