自动识别不同来源之间自我承认技术债务之间的关系
本研究提出了一种结合源代码注释、提交信息、拉请求和问题跟踪系统的方法,以自动化地识别自认为存在的技术债务,并展示了其比基线方法更高的性能,同时分析了 103 个开源项目中自认为存在的技术债务的关键字和不同来源之间的关系。
Feb, 2022
通过机器学习方法,本文针对问题跟踪系统中的自认技术债务 (Self-Admitted Technical Debt, SATD) 提出自动识别方案,并使用两种流行的跟踪系统 (Jira 和 Google Monorail) 收集和手动分析来自七个开源项目的 4,200 个问题。研究结果表明,我们的方法比基线方法在 F1 得分方面表现出更好的性能,并且所提取的 SATD 关键字是直观的,可能表明了 SATD 的类型和指标。
Feb, 2022
自我承认技术债务(SATD)是一种特定形式的技术债务,由开发人员在软件工件中明确记录,如源代码注释和提交消息。本研究旨在提出一种新方法,利用大规模数据集自动估计 SATD 的还款工作,通过评估不同类型的债务及其还款的程度,并应用机器学习技术来提高还款工作的优先级和资源分配效率,以最终促进软件开发和可维护性。
Sep, 2023
自承的技术债(SATD)是一种技术债形式,在其中开发人员明确承认和记录代码库中存在的技术捷径、变通方案或暂时解决方案。在过去几年中,研究人员通过人工标注数据集,包括源代码注释、问题跟踪器和拉取请求部分的消息以及提交消息,以用于训练、评估、性能验证和改进机器学习和深度学习模型来准确识别 SATD 实例。然而,现有数据集中存在类别不平衡的严重挑战,特别是当研究人员有兴趣对 SATD 的具体类型进行分类时。为了解决现有数据集中 SATD 识别(即实例是否为 SATD)和分类(即对哪种类型的 SATD 进行分类)的标记数据不足的问题,我们分享了 SATDAUG 数据集,这是现有 SATD 数据集的增强版本,包括源代码注释、问题跟踪器、拉取请求和提交消息。这些增强的数据集在可用的工件相关性方面进行了平衡,并为训练机器学习或深度学习模型提供了更丰富的标记数据源。
Mar, 2024
本文采用变换器预训练和微调等不同策略的深度学习模型,实证研究技术债务能否自动偿还。研究结果表明,自动偿还技术债务是一项具有挑战性的任务,最佳模型仅能自动修复 2%至 8%的测试实例,对性能提升起到关键作用。
Aug, 2023
本文介绍一种新的使用 BERT 架构改进自我承认技术债务检测的方法,并比较之前的深度学习方法,发现在跨项目情况下,该方法的性能优于之前的所有方法。
Mar, 2023
DebtFree, a two-mode framework based on unsupervised learning is proposed as a more efficient and accurate way for identifying Self-Admitted Technical Debts (SATDs) in software projects, reducing labeling effort by up to 99% and improving the F1 score to almost 100%.
Jan, 2022
软件开发项目中技术债务检测的特征提取技术和算法进行了综述,发现 NLP+DL 组在所有项目中的精确度和 F1 分数上始终表现优秀,并且在召回率度量上几乎所有项目都优于其他组。此外,PTWE 在每个项目的精确度、召回率和 F1 分数上均表现较优,根据综述结果,我们确定了每个软件开发生命周期阶段最佳的特征提取技术和算法,并提出了对研究人员和实践者可能关注的问题。
Dec, 2023
本文提出了一种新方法,将知识图谱作为先验知识,通过机器学习、图匹配和修改频繁子图挖掘来语义注释结构化数据源。我们的评估显示,在只知道少量语义模型的棘手情况下,我们的方法优于两种最先进的解决方案。
Dec, 2022
本文提出了一种简单的实例自适应自训练方法 (SAT),用于半监督文本分类。SAT 通过生成两个扩充视图来识别伪标签并用于模型训练,实验结果表明 SAT 方法具有竞争力的性能。
Oct, 2022