Automatically Estimating the Effort Required to Repay Self-Admitted Technical Debt

要約

技術的負債とは、長期的な保守性よりも短期的なメリットを優先する、ソフトウェア開発中に行われた最適とは言えない決定の結果を指します。
自己認めた技術的負債 (SATD) は、開発者によってソース コード コメントやコミット メッセージなどのソフトウェア成果物内に明示的に文書化された、特定の形式の技術的負債です。
SATD はソフトウェアの開発とメンテナンスを妨げる可能性があるため、効果的に対処し、優先順位を付けることが重要です。
しかし、現在の方法論には、SATD のテキスト説明に基づいて SATD の返済努力を自動的に推定する機能がありません。
この制限に対処するために、1,060 の Apache リポジトリにわたる 2,568,728 のコミットからの 341,740 の SATD 項目で構成される包括的なデータセットを利用して、SATD 返済労力を自動的に推定する新しいアプローチを提案します。
私たちの調査結果によると、SATD の種類によって返済の労力も異なり、コード/設計、要件、およびテストの負債では非 SATD 項目と比較してより多くの労力が必要となる一方、文書化の負債では必要な返済の労力が少なくなることがわかりました。
私たちは機械学習手法、特に BERT と TextCNN を導入し、評価します。これは返済努力の見積もりにおいて古典的な機械学習手法や単純なベースラインよりも優れています。
さらに、SATD 返済中に発生するさまざまなレベルの返済努力に関連するキーワードをまとめます。
私たちの貢献は、SATD 返済作業の優先順位付けとリソース割り当ての効率を強化し、最終的にはソフトウェアの開発と保守性に利益をもたらすことを目的としています。

要約(オリジナル)

Technical debt refers to the consequences of sub-optimal decisions made during software development that prioritize short-term benefits over long-term maintainability. Self-Admitted Technical Debt (SATD) is a specific form of technical debt, explicitly documented by developers within software artifacts such as source code comments and commit messages. As SATD can hinder software development and maintenance, it is crucial to address and prioritize it effectively. However, current methodologies lack the ability to automatically estimate the repayment effort of SATD based on its textual descriptions. To address this limitation, we propose a novel approach for automatically estimating SATD repayment effort, utilizing a comprehensive dataset comprising 341,740 SATD items from 2,568,728 commits across 1,060 Apache repositories. Our findings show that different types of SATD require varying levels of repayment effort, with code/design, requirement, and test debt demanding greater effort compared to non-SATD items, while documentation debt requires less. We introduce and evaluate machine learning methodologies, particularly BERT and TextCNN, which outperforms classic machine learning methods and the naive baseline in estimating repayment effort. Additionally, we summarize keywords associated with varying levels of repayment effort that occur during SATD repayment. Our contributions aim to enhance the prioritization of SATD repayment effort and resource allocation efficiency, ultimately benefiting software development and maintainability.

arxiv情報

著者 Yikun Li,Mohamed Soliman,Paris Avgeriou
発行日 2023-09-12 07:40:18+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.SE パーマリンク