Улучшение обнаружения технического долга в исходном коде Java с использованием обогащенного набора данных
Improving the detection of technical debt in Java source code with an enriched dataset
November 8, 2024
Авторы: Nam Le Hai, Anh M. T. Bui, Phuong T. Nguyen, Davide Di Ruscio, Rick Kazman
cs.AI
Аннотация
Технический долг (TD) - термин, используемый для описания дополнительной работы и затрат, возникающих, когда разработчики выбирают быстрое и простое решение проблемы, вместо более эффективного и хорошо спроектированного, но затратного подхода. Самоопределенные технические долги (SATD) - это конкретный тип технических долгов, которые разработчики намеренно документируют и признают, обычно через текстовые комментарии. Хотя эти самоопределенные комментарии являются полезным инструментом для выявления технических долгов, большинство существующих подходов сосредотачиваются на захвате важных токенов, связанных с различными категориями TD, игнорируя богатую информацию, встроенную в сам код. Недавние исследования сосредоточены на обнаружении SATD путем анализа комментариев, встроенных в исходный код, и мало работ, занимающихся техническими долгами, содержащимися в исходном коде. Чтобы заполнить такую пробел, в данном исследовании, через анализ комментариев и связанного с ними исходного кода из 974 проектов на Java, размещенных в корпусе Stack, мы составили первый в истории набор данных TD, выявленных по комментариям в коде, вместе с соответствующим исходным кодом. Через эмпирическую оценку мы обнаружили, что комментарии полученного набора данных помогают улучшить производительность прогностических моделей обнаружения SATD новейшего поколения. Что более важно, включение классифицированного исходного кода значительно повышает точность прогнозирования различных типов технического долга. В этом отношении наша работа двойная: (i) Мы считаем, что наш набор данных стимулирует будущую работу в области, вдохновляя на различные исследовательские вопросы, связанные с распознаванием технического долга; (ii) Предложенные классификаторы могут служить базовыми данными для других исследований по обнаружению TD с использованием составленного набора данных.
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