Améliorer la détection de la dette technique dans le code source Java avec un ensemble de données enrichi
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
Résumé
La dette technique (TD) est un terme utilisé pour décrire le travail supplémentaire et les coûts qui surviennent lorsque les développeurs ont opté pour une solution rapide et facile à un problème, plutôt que pour une approche plus efficace et bien conçue, mais plus chronophage. Les Dette Technique Auto-Admise (SATD) sont un type spécifique de dettes techniques que les développeurs documentent intentionnellement et reconnaissent, généralement via des commentaires textuels. Bien que ces commentaires auto-admis soient un outil utile pour identifier les dettes techniques, la plupart des approches existantes se concentrent sur la capture des jetons cruciaux associés à diverses catégories de TD, négligeant les informations riches intégrées dans le code source lui-même. Des recherches récentes se sont concentrées sur la détection des SATD en analysant les commentaires intégrés dans le code source, et peu de travaux ont traité des dettes techniques contenues dans le code source. Pour combler une telle lacune, dans cette étude, à travers l'analyse des commentaires et de leur code source associé provenant de 974 projets Java hébergés dans le corpus Stack, nous avons élaboré le premier ensemble de données de TD identifié par des commentaires de code, couplé à son code source associé. Grâce à une évaluation empirique, nous avons découvert que les commentaires de l'ensemble de données résultant contribuent à améliorer les performances de prédiction des modèles de détection SATD de pointe. Plus important encore, l'inclusion du code source classifié améliore significativement la précision dans la prédiction de divers types de dettes techniques. À cet égard, notre travail est double : (i) Nous pensons que notre ensemble de données catalysera les travaux futurs dans le domaine, inspirant diverses problématiques de recherche liées à la reconnaissance de la dette technique ; (ii) Les classificateurs proposés peuvent servir de références pour d'autres études sur la détection de TD au moyen de l'ensemble de données élaboré.
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