Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship Between Technical Debt and Refactoring
为了满足项目时间表或预算限制,开发人员故意偏离编写最佳代码的可行性代码,这被称为招致技术债务(TD)。此外,作为计划纠正的一部分,开发人员将这些缺陷记录为代码中的注释(即,自我承认的技术债务或SATD)。作为提高源代码质量的一种手段,开发人员经常对代码库应用一系列重构操作。在这项研究中,我们探讨开发人员偿还这种债务,通过重构操作,检查发生的SATD删除76个开源Java系统的代码。我们的研究结果表明,TD支付通常发生在重构活动中,开发人员出于特定原因重构代码以删除TD。我们设想我们的研究结果支持供应商提供工具,以更好地支持开发人员自动偿还技术债务。
2022-03-10 cs.SE
Comparative Analysis of Quantum and Classical Support Vector Classifiers for Software Bug Prediction: An Exploratory Study
University of Saskatchewan(萨斯喀彻温大学);University of Prince Edward Island(爱德华王子岛大学)
本研究探讨了量子支持向量分类器(QSVC和PQSVC)在14个开源项目中检测有缺陷软件提交的应用,提出数据集划分、预测聚合和增量测试方法以克服量子特征映射挑战,证明了QML在缺陷预测中的有效性。
2025-01-08 cs.LG cs.SE
Measuring the effectiveness of code review comments in GitHub repositories: A machine learning approach
本文通过人工标注13557条GitHub代码审查评论,比较七种机器学习算法的情感极性分类效果,发现线性SVC准确率最高,以帮助程序员避免误解并改进决策。
2025-08-22 cs.SE
STACC: Code Comment Classification using SentenceTransformers
Delft University of Technology(代尔夫特理工大学)
代码注释是关于软件工件信息的关键资源。根据用例的不同,只有某些类型的注释是有用的。因此,已经提出了对这些评论进行分类的自动方法。在这项工作中,我们提出,STACC,一组基于SentenceTransformers的二进制分类器,以满足这一需求。这些轻量级分类器在NLBSE Code Comment Classification工具竞赛数据集上进行了训练和测试,并以显著的优势超过了基线,实现了0.31的平均F1得分为0.74,提高了139%。复制包以及模型本身都是公开的。
2023-03-07 cs.AI cs.CL cs.SE
An Exploratory Study on the Occurrence of Self-Admitted Technical Debt in Android Apps
技术债描述了开发人员编写的代码不符合项目里程碑的情况。然而,这种债务积累往往会导致未来的开发人员努力解决这些质量问题。为了更好地管理这种债务,开发人员可以将他们的次优代码记录为代码中的注释(即,自我承认的技术债务或SATD)。虽然先前的研究已经调查了SATD的发生和特征,但本研究主要集中在非移动系统上。随着数百万的移动应用程序(应用程序)在多种类型可供最终用户,有一个缺乏研究的次优代码开发人员故意实现在移动应用程序。在这项研究中,我们研究了15,614个开源Android应用程序中SATD的发生和特征。我们的研究结果表明,即使这些应用程序包含SATD的发生,每个应用程序的数量(中位数为4)低于非移动系统,大多数债务被归类为代码债务。此外,我们还确定了应用程序中容易出现故意次优实现的典型元素。我们设想我们的研究结果支持研究人员和工具供应商构建工具和技术,以支持应用程序开发人员进行应用程序维护。
2023-03-03 cs.SE
Exploring the Advances in Identifying Useful Code Review Comments
本文系统梳理了代码评审评论有用性研究的发展,涵盖定义、数据集、开发者感知、影响因素和机器学习自动预测,并指出未来面临的开放问题与挑战。
2023-07-06 cs.SE
Analyzing Code Comments to Boost Program Comprehension
我们正在尝试寻找源代码注释,帮助程序员理解源代码的重要部分。这样的例子之一是解释分配零作为"清除"缓冲区的一种方式。这样的注释对程序员来说是无价的,正确地识别它们将有很大的帮助。为了实现这一目标,我们开发了一种方法来发现源代码中的解释性代码注释。我们首先提出了11种不同的代码注释类别。然后,我们开发了一个基于决策树的分类器,可以识别解释性评论,准确率为60%,召回率为80%。我们分析了2,000个GitHub项目,这些项目都是用两种语言编写的:Java和Python。这个任务是新颖的,因为它关注于方法或函数中的微观注释("本地注释"),而不是之前关注于API或方法级注释的工作。我们还研究了如何在不同的项目中使用不同类别的注释。我们的主要发现是,有两种主要类型的评论:前置条件和后置条件。我们的研究结果还表明,许多英语代码注释具有一定的语法结构,在不同的项目中是一致的。
2022-03-17 cs.SE
Prevalence, Contents and Automatic Detection of KL-SATD
当开发人员在源代码注释中使用不同的关键字(如TODO和FIXME)来描述自我承认的技术债务(SATD)时,我们将其称为关键字标记的SATD(KL-SATD)。我们研究了来自33个软件库的KL-SATD,其中包含13,588条KL-SATD评论。我们发现KL-SATD评论在所有评论中的百分比中位数仅为1.52%。我们发现KL-SATD的注释内容包括表示代码更改和不确定性的词语,如remove、fix、maybe和probably。这使得他们与其他评论不同。KL-SATD注释内容类似于先前工作的手动标记的SATD注释。我们使用逻辑Lasso回归的机器学习分类器在检测KL-SATD评论方面具有良好的性能(AUC-ROC 0.88)。最后,我们证明了使用机器学习,我们可以识别当前缺少的评论,但其中应该有一个SATD关键字。自动SATD识别缺少SATD关键字的注释可以取代手动识别注释,从而节省时间和精力。使用KL-SATD提供了一个潜在的引导一个完整的SATD检测器。
2020-08-12 cs.SE
An Exploratory Investigation into Code License Infringements in Large Language Model Training Datasets
Delft University of Technology(代尔夫特理工大学)
本研究调查了大型语言模型训练数据集中的代码许可证侵权问题,发现53个模型的数据集中普遍存在许可证不一致现象,建议社区优先制定数据集管理的最佳实践。
2024-03-22 cs.LG cs.SE
Code Reviewer Recommendation for Architecture Violations: An Exploratory Study
针对代码审查中架构违规缺乏专门审查者推荐的问题,本文结合文件路径与审查评论语义相似性检测方法开展实验,证明其性能优于基线 RevFinder。
2023-04-24 cs.SE
Associating Natural Language Comment and Source Code Entities
The University of Texas at Austin(得克萨斯大学奥斯汀分校)
注释是软件开发中不可或缺的一部分;它们是与源代码元素相关联的自然语言描述。理解显式关联对于提高代码的可理解性和维护代码与注释之间的一致性非常有用。作为实现这一更大目标的第一步,我们解决了将Javadoc注释中的实体与Java源代码中的元素相关联的任务。我们提出了一种使用开源项目的修订历史自动提取监督数据的方法,并为这项任务提供了一个手动注释的评估数据集。我们开发了一个二元分类器和序列标签模型,通过精心制作一个丰富的功能集,其中包括代码,注释和它们之间的关系的各个方面。实验表明,我们的系统优于几个基线学习建议的监督。
2019-12-13 cs.CL cs.LG cs.SE
Yet Another Combination of IR- and Neural-based Comment Generation
代码注释生成技术旨在为源代码生成自然语言描述。有两种正交的方法来完成这项任务,即,基于信息检索(IR)和基于神经的方法。最近的研究集中在结合他们的优势,通过喂养输入代码和类似的代码片段检索的IR为基础的方法,基于神经的方法,这可以增强基于神经的方法的输出低频词的能力,并进一步提高性能。然而,尽管取得了巨大的进步,我们的试点研究表明,目前的组合是不可推广的,并可能导致性能下降。在本文中,我们提出了一个简单但有效的方法来解决这两个评论生成方法的现有组合的问题。我们不是静态地绑定IR和基于神经的方法,而是以动态的方式将它们结合起来。具体来说,给定一个输入代码片段,我们首先使用基于IR的技术从语料库中检索类似的代码片段。然后,我们使用基于交叉编码器的分类器来决定要动态使用的评论生成方法,即,如果检索到的相似代码片段是真肯定的(即,在语义上类似于输入),我们直接使用基于IR的技术。否则,我们将输入传递给基于神经的模型以生成评论。我们评估我们的方法上的大规模数据集的Java项目。实验结果表明,我们的方法可以达到25.45 BLEU分数,提高了最先进的IR为基础的方法,基于神经网络的方法,以及他们的组合,分别为41%,26%和7%,。我们提出了一个简单但有效的动态组合的IR为基础的和基于神经的评论生成,它优于国家的最先进的方法大幅利润。
2021-07-27 cs.SE
Empirical Study on the Characteristics and Evolution of AI-usage in GitHub Repositories: Evidence from Code Comments
Missouri University of Science and Technology(密苏里科技大学);Drexel University(德雷塞尔大学)
通过分析35,361条提及AI的GitHub代码注释及后续提交,发现开发者主要用LLM实现代码,随后频繁重构、集成和修复,AI引用从代码生成转向知识支持和代码增强。
2026-06-05 cs.SE
High-quality data augmentation for code comment classification
Free University of Bozen-Bolzano(博洛尼亚-博兹纳自由大学)
本文提出Q-SYNTH技术,通过高质量数据生成增强数据集,提升代码注释分类的准确率。
2026-01-27 cs.LG cs.SE
Detection of Technical Debt in Java Source Code
本研究通过分析974个Java项目的注释及源代码,构建了首个结合代码注释的TD数据集,并证明包含分类代码能显著提升各类技术债务预测的准确率,为后续研究提供了数据集与基线分类器。
2025-08-09 cs.SE
ToxiSpanSE: An Explainable Toxicity Detection in Code Review Comments
本文提出ToxiSpanSE,首个面向软件工程领域的可解释毒性片段检测工具,基于19,651条代码评审评论训练,微调RoBERTa取得F1值0.88的最佳效果,可自动高亮有毒内容以辅助人工审核。
2023-07-07 cs.SE
Wait For It: Identifying "On-Hold" Self-Admitted Technical Debt
自我承认的技术债务是指软件开发人员知道他们当前的实现不是最佳的,并使用源代码注释来表明这一点的情况。在这项工作中,我们假设有可能开发自动化技术来更详细地理解这些评论的子集,并提出工具支持,可以帮助开发人员更有效地管理自我承认的技术债务。基于对335条表明自我承认的技术债务的评论的定性研究,我们首先确定了一种适合自动化管理的特定债务类别:“搁置”自我承认的技术债务,即,债务,它包含一个条件,指示开发人员正在等待某个事件或已在其他地方实现的更新功能。然后,我们设计和评估一个自动分类器,它可以识别这些“等待”的情况下,在0.83的接收器工作特征曲线(AUC)的面积,以及检测开发人员正在等待的特定条件。我们的工作是迈向自动化工具支持的第一步,它能够指示何时可以解决某些自我承认的技术债务。
2019-10-21 cs.SE
Intention is All You Need: Refining Your Code from Your Intention
针对代码优化中传统迭代交流繁琐、现有深度学习技术难理解评审意图的问题,提出基于意图的两阶段技术(意图提取+意图引导生成),实验显示其意图提取准确率79%、代码生成准确率最高66%,可提升数据质量与优化效率。
2025-02-12 cs.SE
An Exploratory Study on Automatic Identification of Assumptions in the Development of Deep Learning Frameworks
Shenzhen Polytechnic University(深圳职业技术大学);Nanjing University(南京大学);Wuhan University(武汉大学);Chalmers University of Technology(查尔姆斯理工大学)
本研究构建了基于TensorFlow和Keras仓库的最大假设数据集AssuEval,对比多类模型的假设识别效果,发现ALBERT性能最优,不推荐直接用主流大模型做该任务,微调可提升大模型表现。
2024-10-06 cs.LG cs.SE