中文

从四种不同来源自动识别自承认技术债务

软件工程 2023-04-24 v5 人工智能

摘要

技术债务指的是为实现短期目标而走捷径,同时牺牲软件系统长期可维护性和可演化性的做法。很大一部分技术债务由开发者自己明确报告;这通常被称为自承认技术债务(Self-Admitted Technical Debt,SATD)。先前的工作集中于从源代码注释和问题跟踪器中识别 SATD。然而,目前尚无可从提交消息和拉取请求等其他来源或结合多种来源自动识别 SATD 的方法。因此,我们提出并评估了一种集成四种来源的自动化 SATD 识别方法:源代码注释、提交消息、拉取请求和问题跟踪系统。我们的研究结果表明,我们的方法优于基线方法,在从上述四种来源检测四类 SATD(即代码/设计债务、需求债务、文档债务和测试债务)时达到了 0.611 的平均 F1 分数。此后,我们分析了 23.6M 条代码注释、1.3M 条提交消息、3.7M 个问题段落和 1.7M 个拉取请求段落,以刻画 103 个开源项目中的 SATD。此外,我们研究了 SATD 关键词以及不同来源中 SATD 之间的关系。研究结果除其他外表明:1)SATD 在所有来源中均匀分布;2)就共享 SATD 关键词的数量而言,问题和拉取请求是相似度最高的两个来源,其次是提交消息,然后是代码注释;3)不同来源中的 SATD 项之间存在四种关系。

关键词

引用

@article{arxiv.2202.02387,
  title  = {Automatic Identification of Self-Admitted Technical Debt from Four Different Sources},
  author = {Yikun Li and Mohamed Soliman and Paris Avgeriou},
  journal= {arXiv preprint arXiv:2202.02387},
  year   = {2023}
}