Melhorando a detecção de dívida técnica no código-fonte Java com um conjunto de dados enriquecido
Improving the detection of technical debt in Java source code with an enriched dataset
November 8, 2024
Autores: Nam Le Hai, Anh M. T. Bui, Phuong T. Nguyen, Davide Di Ruscio, Rick Kazman
cs.AI
Resumo
Dívida técnica (TD) é um termo usado para descrever o trabalho adicional e os custos que surgem quando os desenvolvedores optam por uma solução rápida e fácil para um problema, em vez de uma abordagem mais eficaz e bem projetada, porém demorada. Dívidas Técnicas Auto-Admitidas (SATDs) são um tipo específico de dívida técnica que os desenvolvedores documentam e reconhecem intencionalmente, geralmente por meio de comentários textuais. Embora esses comentários auto-admitidos sejam uma ferramenta útil para identificar dívidas técnicas, a maioria das abordagens existentes se concentra em capturar tokens cruciais associados a várias categorias de TD, negligenciando as informações ricas incorporadas no próprio código-fonte. Pesquisas recentes têm se concentrado em detectar SATDs analisando comentários incorporados no código-fonte, havendo pouco trabalho lidando com dívidas técnicas contidas no código-fonte. Para preencher essa lacuna, neste estudo, por meio da análise de comentários e seu código-fonte associado de 974 projetos Java hospedados no corpus Stack, curamos o primeiro conjunto de dados de TD identificado por meio de comentários de código, juntamente com seu código-fonte associado. Por meio de uma avaliação empírica, descobrimos que os comentários do conjunto de dados resultante ajudam a melhorar o desempenho de previsão dos modelos de detecção de SATD de ponta. Mais importante ainda, incluir o código-fonte classificado melhora significativamente a precisão na previsão de vários tipos de dívida técnica. Nesse sentido, nosso trabalho é duplo: (i) Acreditamos que nosso conjunto de dados catalisará trabalhos futuros no domínio, inspirando várias questões de pesquisa relacionadas ao reconhecimento de dívida técnica; (ii) Os classificadores propostos podem servir como referência para outros estudos sobre a detecção de TD por meio do conjunto de dados curado.
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.