Optimizing Knowledge Utilization for Multi-Intent Comment Generation with Large Language Models
针对现有基于大语言模型的多意图代码注释生成方法难以在少量示例中构建正确关联的问题,提出KUMIC框架,通过检索高一致性示例和构建映射知识链优化知识利用,在多项指标上显著优于基线方法。
2025-10-29 cs.SE
Predicting Usefulness of Code Review Comments using Textual Features and Developer Experience
虽然同行代码评审在商业和开源开发中被广泛采用,但现有的研究表明,这种代码评审通常包含大量无用的评审评论。不幸的是,到目前为止,还没有工具或技术可以提供自动支持,以改善这些无用的评论。在本文中,我们首先报告了一个有用和无用的评论之间的比较研究,我们对比他们之间的文本特征,和审稿人的经验。然后,根据研究结果,我们开发RevHelper,一个预测模型,可以帮助开发人员提高他们的代码审查意见,通过自动预测其有用性在审查提交。使用1,116条评论进行的比较研究表明,有用的评论与更改的代码共享更多的词汇,包含相关代码元素等突出项目,并且他们的评论者通常更有经验。使用1,482条评论的实验表明,我们的模型可以预测评论有用性,预测准确率为66%,这是很有前途的。使用案例研究的基线模型的三个变体的比较验证了我们的实证研究结果,并证明了我们的模型的潜力。
2018-07-12 cs.SE
What Types of Code Review Comments Do Developers Most Frequently Resolve?
本研究利用LLM作为评判者分类评审评论,发现LLM与人类评审者各有优劣,且可读性、缺陷和维护性相关评论的解决率高于设计类评论,表明多数LLM生成评论具有可执行性。
2025-10-06 cs.SE
Automating the Removal of Obsolete TODO Comments
TODO注释被软件开发人员广泛用于描述他们在软件开发期间的未决任务。然而,在执行任务后,开发人员有时会忽略或忘记删除TODO注释,导致TODO注释过时。这些过时的TODO注释会使开发团队感到困惑,并可能导致将来引入错误,从而降低软件的质量和可维护性。在这项工作中,我们提出了一种新的模型,名为TDCleaner(TODO注释清洁),以确定过时的TODO评论在软件项目。TDCleaner可以帮助开发人员及时检查TODO注释状态,避免留下过时的TODO注释。我们的方法有两个主要阶段:离线学习和在线预测。在离线学习过程中,我们首先自动建立<code_change,todo_comment,commit_msg>训练样本,并利用三个神经编码器分别捕获TODO注释,代码更改和提交消息的语义特征。然后,TDCleaner会自动学习不同编码器之间的相关性和相互作用,以估计TODO注释的最终状态。对于在线预测,我们通过利用离线训练模型来判断TODO评论过时的可能性来检查TODO评论的状态。我们通过从前10,000个Python和Java Github存储库中收集TODO评论来构建数据集,并在其上评估TDCleaner。大量的实验结果表明,我们的模型在一组基准测试的有前途的性能。我们还对真实世界的软件项目进行了野外评估,我们向Github开发人员报告了TDCleaner识别的18条过时的TODO注释,…
2021-08-12 cs.SE
Are your comments outdated? Towards automatically detecting code-comment consistency
本文提出基于学习的 CoCC 方法,通过提取代码与注释变更前后特征及其关系来自动检测过时注释,精确率超过90%,并验证了跨语言适用性和实际项目有效性。
2024-03-01 cs.SE
Do Comments follow Commenting Conventions? A Case Study in Java and Python
该研究分析Java和Python注释规范及开发者实践,发现规范偏重内容且覆盖不足,实际注释行为与指南存在明显不匹配,并为质量检查工具改进提供方向。
2021-08-27 cs.SE
Exit the Code: A Model for Understanding Career Abandonment Intention Among Software Developers
本文通过调查221名开发人员并基于改编的Investment Model构建结构方程模型,揭示了技术满意度、职业投资等因素对当前在职软件开发人员职业放弃意向的影响,为制定人员保留策略提供了理论依据。
2025-03-06 cs.HC cs.SE
DevIntent: How Much Does LLM-Generated Code Violate Developer Intent?
Anote AI
该研究针对LLM生成代码违反开发者隐式意图的问题,构建含49个问题的基准并提出IVR指标,发现两款主流LLM生成代码虽通过率高但超半数违反意图,揭示现有基准局限性。
2026-08-11 cs.CL cs.SE
Where do developers admit their security-related concerns?
本研究针对开发者安全顾虑记录分散易过时的问题,通过分析4个工业级开源项目的2559个文档实例,明确了开发者偏好的记录渠道及问题搁置规律,并开发了提醒流水线以提升安全意识。
2024-05-17 cs.SE
Comments or Issues: Where to Document Technical Debt?
本文调查了190个GitHub项目中74K条SATD-C和20K条SATD-I实例的作者,探究开发者选择用注释或议题记录技术债务的动因,并提出了13条指南以辅助决策。
2024-08-27 cs.SE
Intention is All You Need: Refining Your Code from Your Intention
针对代码优化中传统迭代交流繁琐、现有深度学习技术难理解评审意图的问题,提出基于意图的两阶段技术(意图提取+意图引导生成),实验显示其意图提取准确率79%、代码生成准确率最高66%,可提升数据质量与优化效率。
2025-02-12 cs.SE
Large Language Models are Few-Shot Summarizers: Multi-Intent Comment Generation via In-Context Learning
本研究针对现有代码注释生成方法仅能生成单条注释、无法满足开发者多样信息需求的问题,实证验证了采用上下文学习范式的大语言模型可生成多意图注释,且提示构建与后处理策略能进一步提升性能。
2023-06-14 cs.SE
ComFormer: Code Comment Generation via Transformer and Fusion Method-based Hybrid Code Representation
由于缺乏编程经验,开发人员经常编写低质量的代码注释,这会降低开发人员对程序的理解效率。因此,开发人员希望能够开发代码注释生成工具来说明代码的功能和目的。最近,研究人员主要将此问题建模为神经机器翻译问题,并倾向于使用基于深度学习的方法。在这项研究中,我们提出了一种新的方法ComFormer的基础上Transformer和融合方法为基础的混合代码表示。此外,为了缓解OOV(out-of-vocabulary)问题和加快模型训练,我们进一步使用Byte-BPE算法来分割标识符和Sim_SBT方法来执行AST训练。我们将ComFormer与来自代码注释生成和神经机器翻译域的七个最先进的基线进行比较。比较结果显示了ComFormer在三个性能指标方面的竞争力。此外,我们进行了一项人类研究,以验证ComFormer可以生成高质量的评论。
2021-07-08 cs.SE
An Empirical Study on Code Comment Completion
代码注释在程序理解活动中起着重要的作用。然而,源代码并不总是文档化的,代码和注释并不总是共同发展的。为了解决这些问题,研究人员提出了自动生成注释的技术,这些注释记录了手头的给定代码。该领域的最新工作应用了深度学习(DL)技术来支持这样的任务。尽管取得了进展,这些方法的实证评估表明,他们仍然远远没有一个性能水平,使他们有价值的开发人员。我们解决了一个更简单的相关问题:代码注释完成。我们不是从头开始为给定的代码生成注释,而是研究最先进的技术可以在多大程度上帮助开发人员更快地编写注释。我们提出了一个大规模的研究,我们经验性地评估如何一个简单的n-gram模型和最近提出的文本到文本传输Transformer(T5)架构可以执行自动完成代码注释的开发人员键入。所取得的结果显示了T5模型的优越性,尽管n-gram模型是一个有竞争力的解决方案。
2021-07-22 cs.SE
RepliComment: Identifying Clones in Code Comments
代码注释是记录实现和促进程序理解的主要手段。因此,它们的质量应该是改进程序维护的主要关注点。虽然很多工作都致力于检测不良气味,如代码中的克隆,但很少有工作集中在注释上。在本文中,我们提出了我们的解决方案来检测开发人员应该修复的评论中的克隆。<$Comment可以自动分析Java项目并报告注释中的复制粘贴错误实例,并可以向开发人员指出应该修复哪些注释。此外,当克隆是写得不好的评论的迹象时,它可以报告。开发人员也应该修复这些实例,以提高代码文档的质量。我们对10个著名的开源Java项目进行了评估,发现了超过11000个注释克隆实例,其中超过1,300个是潜在的关键。我们改进了我们自己以前的工作,在同一个数据集中只能找到36个问题。我们对<$Comment报告的412个问题进行了手动检查,结果显示它在报告关键评论克隆方面的准确率为79%。手动检查200个额外的评论克隆,<$Comment过滤出合法的,不能证明任何假阴性。
2021-08-25 cs.SE
The Paradox of Function Header Comments
本文通过调查367名开发者发现函数头注释存在“认可价值却不愿编写”的悖论,并提出基于签名相似性的无信息文档度量指标,在21,140个GitHub Python文件中验证了实际注释通常包含签名之外的额外信息。
2024-01-15 cs.SE
What Makes a Code Review Useful to OpenDev Developers? An Empirical Investigation
本研究通过混合方法调查OpenDev项目中代码评审评论的有用性,发现其受技术贡献和语言特征影响,评审经验正相关,而评审数量、文件评论量、行数及间隔负相关。
2023-06-19 cs.SE
How to Refactor this Code? An Exploratory Study on Developer-ChatGPT Refactoring Conversations
本研究通过挖掘17,913条开发者与ChatGPT的重构对话,揭示开发者常提出通用重构请求,而ChatGPT回应包含明确意图,并识别出多种提示学习设置,为AI辅助重构协作提供洞见。
2024-02-08 cs.SE
Towards Refining Developer Questions using LLM-Based Named Entity Recognition for Developer Chatroom Conversations
Royal Military College of Canada(加拿大皇家军事学院)
本文提出SENIR标注方法,利用LLM识别开发者聊天室对话中的实体、意图和解决状态,并构建解决状态预测模型,为提升开发者问题的清晰度和可解决性提供定量指导。
2025-03-02 cs.LG 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
AI Tools in Software Development: Developer Perceptions and Usage Patterns
研究通过调查147名专业开发者,探讨AI工具使用与开发者感知的生产力、代码质量和采用意图之间的关系,发现高频和广泛使用AI工具与更高的生产力和代码质量感知相关,且无速度与质量的权衡。
2026-05-11 cs.SE
Together or Apart? Investigating a mediator bot to aggregate bot's comments on pull requests
针对拉取请求中机器人评论造成的信息过载问题,本文设计并评估中介机器人 FunnelBot,并通过25名新人的受试者内研究为降低噪音、支持新人的机器人设计提供依据。
2022-08-08 cs.SE
Automated Classification of Human Code Review Comments with Large Language Models
Bilkent University(比尔肯特大学)
本文提出一种自动分类系统,针对代码审查评论中的具体问题类别进行分类,通过九类标签体系和手动标注数据,评估了不同模型在零样本和单样本分类中的表现。
2026-04-26 cs.SE
Wait For It: Identifying "On-Hold" Self-Admitted Technical Debt
自我承认的技术债务是指软件开发人员知道他们当前的实现不是最佳的,并使用源代码注释来表明这一点的情况。在这项工作中,我们假设有可能开发自动化技术来更详细地理解这些评论的子集,并提出工具支持,可以帮助开发人员更有效地管理自我承认的技术债务。基于对335条表明自我承认的技术债务的评论的定性研究,我们首先确定了一种适合自动化管理的特定债务类别:“搁置”自我承认的技术债务,即,债务,它包含一个条件,指示开发人员正在等待某个事件或已在其他地方实现的更新功能。然后,我们设计和评估一个自动分类器,它可以识别这些“等待”的情况下,在0.83的接收器工作特征曲线(AUC)的面积,以及检测开发人员正在等待的特定条件。我们的工作是迈向自动化工具支持的第一步,它能够指示何时可以解决某些自我承认的技术债务。
2019-10-21 cs.SE
Optimizing Deep Learning Models to Address Class Imbalance in Code Comment Classification
本文通过损失函数加权策略和超参数搜索微调 RoBERTa 模型,在 NLBSE'25 数据集上比 STACC 基线平均 F1c 提升 8.9 个百分点,有效缓解代码注释分类中的类别不平衡问题。
2025-01-27 cs.SE
Generating Comments From Source Code with CCGs
好的注释可以帮助开发人员更快地理解软件,并提供更好的维护。然而,评论往往是失踪,一般不准确,或过时。这些问题中的许多可以通过自动注释生成来避免。本文提出了一种使用自然语言处理的通用技术直接从源代码生成信息性注释的方法。我们使用现有的自然语言模型,夫妇的话,他们的个人逻辑意义和语法规则,使评论生成进行搜索从声明性描述的程序文本的意见。我们评估我们的算法在Python中实现的几个经典算法。
2018-10-15 cs.SE
Extending Fill-In-the-Middle with Instructions for Steerable Code Completion
Singapore Management University(新加坡管理大学);University of Edinburgh(爱丁堡大学);Monash University(蒙纳士大学);Beihang University(北京航空航天大学)
该研究针对代码补全模型难以优先处理开发者意图指令的问题,提出IFIM微调方法,提升了对开发者意图的遵循度,且在无指令时性能不变,可作为现有FIM代码补全系统的兼容升级方案。
2026-09-04 cs.SE
"TODO: Fix the Mess Gemini Created": Towards Understanding GenAI-Induced Self-Admitted Technical Debt
Missouri University of Science and Technology(密苏里科技大学)
本文研究了GenAI在软件开发中导致的技术债务问题,提出GIST概念框架,分析开发者在使用AI生成代码时的自我承认行为及技术债务的产生原因。
2026-01-12 cs.SE
Investigating the Impact of Code Comment Inconsistency on Bug Introducing
本研究利用GPT-3.5探究代码注释不一致对缺陷引入的影响,验证了GPT-3.5在不一致检测上的优越性,发现不一致变更引发缺陷提交的概率约为一致变更的1.5倍,且影响随时间推移减弱。
2024-09-16 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
Code Comments for Quantum Software Development Kits: An Empirical Study on Qiskit
Beihang University(北京航空航天大学)
本文通过Qiskit提出首个量子计算代码注释数据集CC4Q,分析了量子软件注释的结构、开发者意图及量子主题,揭示了经典与量子软件注释的关键差异。
2025-11-30 cs.SE
Warnings: Violation Symptoms Indicating Architecture Erosion
本研究从开发者视角调查了代码评审评论中的架构违规症状特征,通过分析四个开源项目的606条评论,归纳出10类违规症状、常用术语与语言模式及解决措施,为理解架构侵蚀和改进开发维护实践提供了指导。
2023-08-04 cs.SE
BashExplainer: Retrieval-Augmented Bash Code Comment Generation based on Fine-tuned CodeBERT
开发人员将shell命令用于许多任务,例如文件系统管理、网络控制和进程管理。Bash是最常用的shell之一,在Linux系统开发和维护中起着重要的作用。由于Bash代码的语言灵活性,不熟悉Bash的开发人员通常很难理解Bash代码的目的和功能。本文研究了Bash代码注释生成问题,提出了一种基于两阶段训练策略的自动生成方法BashExplainer。在第一阶段,我们训练一个Bash编码器微调CodeBERT我们构建的Bash代码语料库。在第二阶段中,我们首先从代码库中检索最相似的代码为目标代码的语义和词汇相似性的基础上。然后我们使用训练好的Bash编码器生成两个矢量表示。最后,我们通过融合层融合这两个矢量表示,并通过解码器生成代码注释。为了显示我们所提出的方法的竞争力,我们构建了一个高质量的语料库相结合的语料库共享在以前的NL2Bash研究和共享的语料库在NLC2CMD竞争。该语料库包含10,592个Bash代码和相应的注释。然后,我们从以前关于自动代码注释生成的研究中选择了十个基线,其中包括信息检索方法,深度学习方法和混合方法。
2022-06-27 cs.SE
NaturalEdit: Code Modification through Direct Interaction with Adaptive Natural Language Representation
University of Notre Dame(圣母大学);Vanderbilt University(范德堡大学)
NaturalEdit通过适应性自然语言表示与源代码紧密关联,提供灵活的抽象梯度,实现摘要与代码的交互映射,减少编辑粘性并保持可见性和一致性,提升开发者理解与验证能力。
2026-08-25 cs.HC cs.SE
What really changes when developers intend to improve their source code: a commit-level study of static metric value and static analysis warning changes
许多软件度量被设计用来度量那些被认为与软件质量相关的方面。静态软件度量,例如,规模、复杂性和耦合性被用于缺陷预测研究以及软件质量模型来评估软件质量。虽然这表明了质量和软件度量之间的关系,但它的程度还没有得到很好的理解。此外,最近的研究发现,复杂性度量可能是源代码可理解性的不可靠指标。为了探索这种关系,我们利用开发人员的意图,即什么构成了他们自己代码库的质量改进。我们通过检查提交消息,将来自54个Java开源项目的2,533个提交的随机样本手动分类为质量改进,这取决于开发人员的意图。我们通过预定义的指导方针区分完美和纠正性维护,并将这些数据用作基础事实,用于微调自然语言处理的最先进的深度学习模型。我们使用该模型将数据集增加到125,482次提交。基于由此产生的数据集,我们调查的差异大小和14静态源代码指标之间的变化,提高质量,由开发人员表示,和其他变化。我们发现,质量改善提交比其他提交更小。完美的更改对静态源代码指标有积极的影响,而纠正性更改则倾向于增加复杂性。此外,我们发现,文件的目标是完善的维护已经有一个较低的中位数比其他文件的复杂性。我们的研究结果提供了经验证据,静态源代码度量捕获质量改进从开发人员的角度来看。这对程序理解以及代码气味检测和推荐系统都有影响。
2022-05-30 cs.SE
From Generic to Personalized: Exploring Persona-Aware Code Review Explanations
University of Saskatchewan(萨斯喀彻温大学);Singapore Management University(新加坡管理大学);University of Hawai’i(夏威夷大学)
研究针对开发人员对代码审查评论理解不同的问题,探索个性化代码审查解释潜力。通过混合方法用户研究发现解释风格偏好因多种因素而异,据此勾勒出以人为本、适应开发者偏好的人工智能辅助代码审查系统愿景。
2026-07-13 cs.SE
Performance Comparison of Binary Machine Learning Classifiers in Identifying Code Comment Types: An Exploratory Study
代码注释对源代码至关重要,因为它们有助于开发人员完成程序理解任务。代码注释是用自然语言(通常是英语)编写的,它传达各种不同的信息,这些信息被分组到特定的类别中。在这项研究中,我们构建了19个二进制机器学习分类器的代码注释类别,属于三种不同的程序设计语言。我们提出了不同类型的机器学习分类器的性能分数的比较,并表明线性SVC分类器具有最高的平均F1分数0.5474。
2023-03-03 cs.SE
SmartDoc: A Context-Aware Agentic Method Comment Generation Plugin
本文提出名为SmartDoc的IntelliJ IDEA插件,作为AI智能体利用方法上下文和DFS遍历调用图丰富LLM提示,生成上下文感知的Java方法注释,在BERTScore等指标上达到0.80-0.90的准确率。
2025-11-01 cs.SE
Evaluating Non-English Developer Support in Machine Learning for Software Engineering
Delft University of Technology(代尔夫特理工大学)
研究评估非英语代码注释生成及现有评估方法的可靠性,发现非英语环境下生成性能显著下降,自动评估方法无法可靠区分正确与错误注释。
2026-05-07 cs.SE
Comment Generation for Source Code: State of the Art, Challenges and Opportunities
研究表明,当今软件开发的大部分工作是维护和演化。开发人员经常使用集成开发环境、调试器和工具进行代码搜索、测试和程序理解,以减少繁琐的任务。使软件开发更高效的一种方法是使程序更具可读性。为此目的提出和发展了许多办法。在这些方法中,源代码的注释生成越来越受到关注,并已成为一个热门的研究领域。本文总结了评论生成的研究现状,并讨论了评论生成所面临的挑战和未来的机遇。
2018-09-07 cs.SE
When simplicity meets effectiveness: Detecting code comments coherence with word embeddings and LSTM
针对代码注释不一致问题,提出Co3D方法,结合word2vec与LSTM等简单架构,在检测一致性上超越基线,证明简洁模型的有效性。
2024-05-28 cs.SE
Exploring the Advances in Identifying Useful Code Review Comments
本文系统梳理了代码评审评论有用性研究的发展,涵盖定义、数据集、开发者感知、影响因素和机器学习自动预测,并指出未来面临的开放问题与挑战。
2023-07-06 cs.SE
An Exploratory Study on Refactoring Documentation in Issues Handling
理解重构文档的实践在学术界和工业界都是至关重要的。大多数软件项目都使用问题跟踪系统,使开发人员,质量保证,管理人员和用户能够提交功能请求和其他任务,如错误修复和代码审查。虽然最近的研究探索了如何在提交消息中记录重构,但很少有人知道开发人员如何在问题中描述他们的重构需求。在这项研究中,我们的目标是探索开发人员报告的问题中的重构变化,以更好地了解开发人员认为他们的代码中存在什么问题以及他们如何处理它。我们的方法依赖于文本挖掘45,477个重构相关问题,并通过调查与15,833重构操作和开发者的显式重构意图。我们的研究结果表明:(1)开发人员大多使用与重构相关的术语/短语来解决重构相关的问题;(2)开发人员倾向于明确提到特定质量属性的改进,并专注于重复代码的删除。我们设想我们的研究结果使工具构建者能够支持开发人员自动记录问题中的重构更改。
2022-03-19 cs.SE
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
An Empirical Study on the Impact of Code Duplication-aware Refactoring Practices on Quality Metrics
本文通过分析128个开源Java项目中332个重构提交,实证研究了代码重复消除重构操作对设计质量指标的影响,发现多数指标能捕捉开发者去重意图,但部分指标未能完全反映。
2025-02-06 cs.SE
Enhancing Code Generation via Bidirectional Comment-Level Mutual Grounding
Purdue University(普渡大学)
本文提出以可编辑代码注释为媒介的双向互证交互框架,通过代码、行内注释与用户反馈迭代对齐意图,显著提升LLM代码生成准确率与开发者任务表现。
2025-05-12 cs.AI cs.CL cs.SE
Is Agentic Code Review Helpful? Mining Developers' Feedback to CodeRabbit Reviews in the Wild
The University of Melbourne(墨尔本大学);Monash University(莫纳什大学)
以CodeRabbit为例对智能代码审查进行实证研究,通过大量代码审查与开发者反馈数据,揭示其审查结果及被拒原因,还探索预测审查被拒的方法,指出改进空间与不足。
2026-07-24 cs.AI cs.SE
Hidden in Plain Sight: Where Developers Confess Self-Admitted Technical Debt
University of Oulu(奥卢大学);University of Helsinki(赫尔辛基大学)
本研究利用PENTACET数据集分析超9000个Java开源仓库,将超22.5万条SATD注释与源代码结构关联,发现SATD主要出现在定义、条件判断和异常处理附近的内联代码中,是开发者在变更时有意识的认知信号。
2025-11-03 cs.CL cs.PL cs.SE
A Survey of Automatic Generation of Source Code Comments: Algorithms and Techniques
作为源代码文件的一个组成部分,代码注释有助于提高程序的可读性和可理解性。然而,开发人员有时并没有对他们的程序代码进行充分的注释,这是由于额外的努力,缺乏相关知识,没有意识到代码注释的重要性或其他一些因素。因此,代码注释可能不充分、缺失甚至与源代码不匹配,影响了对软件的理解、重用和维护。为了解决代码注释的这些问题,研究人员一直关注自动生成代码注释。在这项工作中,我们的目标是进行自动代码注释研究的调查。首先,我们概括性地分析了程序注释自动生成的挑战和研究框架。其次,我们给出了代表性算法的分类,每类算法的设计原则,优缺点。同时,我们也提供了一个生成的评论的质量评估的概述。最后,我们总结了一些未来的发展方向,提高技术的自动生成代码注释和质量评估的意见。
2019-07-25 cs.SE
Relating Complexity, Explicitness, Effectiveness of Refactorings and Non-Functional Requirements: A Replication Study
本研究通过将项目数翻倍并验证8,408个重构实例复现Soares等人的研究,考察SAR的复杂性、显式性、有效性及其与非功能需求的关系,发现显式重构更复杂但通常更利于内部质量。
2025-05-12 cs.SE
Towards Automating Code Review Activities
代码审查在工业和开源项目中都很流行。代码审查的好处被广泛认可,包括更好的代码质量和更低的引入bug的可能性。然而,由于代码审查是一项手动活动,因此开发人员需要花费时间审查其团队成员的代码。我们的目标是朝着部分自动化代码审查流程迈出第一步,从而可能减少与之相关的手动成本。我们通过训练两种不同的深度学习架构,关注流程的贡献者和审查者。第一个学习开发人员在实际代码评审活动中执行的代码更改,从而在代码提交评审之前,为贡献者提供其代码的修订版本,实现通常在代码评审期间推荐的代码转换。第二种方法自动为审阅者提供对提交的代码的评论,并将其修改后的代码实现为以自然语言表达的评论。对这两个模型的实证评估表明,在贡献者方面,训练好的模型在高达16%的情况下成功复制了代码审查期间应用的代码转换。在评论者方面,该模型可以在高达31%的情况下正确地实现以自然语言提供的评论。虽然这些结果令人鼓舞,但需要更多的研究才能使这些模型可供开发人员使用。
2021-05-19 cs.SE
AUTOGENICS: Automated Generation of Context-Aware Inline Comments for Code Snippets on Programming Q&A Sites Using LLM
本文提出 AUTOGENICS 工具,通过从问题文本提取上下文并去除噪声,利用 LLM 为 Stack Overflow 代码片段生成上下文感知的内联注释,显著提升了注释的准确性、充分性、简洁性和有用性。
2024-08-27 cs.SE
Identifying Algorithm Names in Code Comments
对于最近基于机器学习的任务,如API序列生成,注释生成和文档生成,需要大量数据。当软件开发人员在代码中实现算法时,我们发现他们经常在代码注释中提到算法名称。用这样的算法名称注释的代码可以是有价值的数据源。本文提出了一种算法名自动识别的方法。其关键思想是在最后提取包含“algorithm”一词的重要N-gram词。我们还考虑部分语音模式,以获得适当的算法名称识别的规则。我们的规则评估的结果产生了较高的精度和召回值(超过0.70)。我们应用我们的规则提取大量的注释中的算法名称,从活跃的FLOSS项目写在七种程序设计语言,C,C++,Java,JavaScript,Python,PHP和Ruby,并报告在代码注释中经常提到的算法名称。
2019-07-10 cs.SE
Detecting Malicious Intents in Smart Contracts with Pre-trained Programming Language Models
Carnegie Mellon University(卡内基梅隆大学);Institute of Computing Technology, Chinese Academy of Sciences(中国科学院计算技术研究所);North Carolina State University(北卡罗来纳州立大学);Macau University of Science and Technology(澳门科技大学);Institute of Intelligent Computing Technology, Suzhou, CAS(中国科学院苏州智能计算技术研究所)
本文提出SmartIntentV2,通过集成BERT预训练模型提升智能合约恶意意图检测性能,实现更高准确率和F1分数。
2026-04-05 cs.CR cs.SE