Verbesserung der Erkennung von technischen Schulden im Java-Quellcode mit einem angereicherten Datensatz
Improving the detection of technical debt in Java source code with an enriched dataset
November 8, 2024
Autoren: Nam Le Hai, Anh M. T. Bui, Phuong T. Nguyen, Davide Di Ruscio, Rick Kazman
cs.AI
Zusammenfassung
Technischer Schulden (TD) ist ein Begriff, der die zusätzliche Arbeit und Kosten beschreibt, die entstehen, wenn Entwickler sich für eine schnelle und einfache Lösung für ein Problem entschieden haben, anstatt für einen effektiveren und gut gestalteten, aber zeitaufwändigeren Ansatz. Selbst-eingestandene Technische Schulden (SATDs) sind eine spezifische Art von technischen Schulden, die Entwickler absichtlich dokumentieren und anerkennen, typischerweise über textuelle Kommentare. Während diese selbst-eingestandenen Kommentare ein nützliches Werkzeug zur Identifizierung von technischen Schulden sind, konzentrieren sich die meisten bestehenden Ansätze darauf, entscheidende Tokens zu erfassen, die mit verschiedenen Kategorien von TD verbunden sind, und vernachlässigen die reichhaltigen Informationen, die im Quellcode selbst eingebettet sind. In der jüngsten Forschung wurde darauf geachtet, SATDs zu erkennen, indem Kommentare im Quellcode analysiert wurden, und es gab nur wenig Arbeit, die sich mit technischen Schulden befasste, die im Quellcode enthalten sind. Um eine solche Lücke zu schließen, haben wir in dieser Studie durch die Analyse von Kommentaren und ihrem zugehörigen Quellcode aus 974 in der Stack-Korpus gehosteten Java-Projekten den ersten Datensatz von durch Codekommentare identifizierten TD erstellt. Durch eine empirische Bewertung stellten wir fest, dass die Kommentare des resultierenden Datensatzes die Vorhersageleistung modernster SATD-Erkennungsmodelle verbessern. Noch wichtiger ist, dass die Einbeziehung des klassifizierten Quellcodes die Genauigkeit bei der Vorhersage verschiedener Arten von technischen Schulden signifikant verbessert. In dieser Hinsicht ist unsere Arbeit zweifach: (i) Wir glauben, dass unser Datensatz zukünftige Arbeiten in diesem Bereich anregen wird, die verschiedene Forschungsfragen im Zusammenhang mit der Erkennung von technischen Schulden behandeln; (ii) Die vorgeschlagenen Klassifikatoren können als Grundlage für andere Studien zur Erkennung von TD anhand des kuratierten Datensatzes dienen.
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