首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 171 毫秒
1.
代码注释作为软件中的重要组成部分,在软件维护、复用等领域中发挥着重要作用。代码注释自动生成技术旨在减轻人工编写注释的工作量,从而提高软件开发效率。现有的注释自动生成方法分为基于规则、文本摘要、数据驱动、主题模型、深度学习等层次。综述了代码注释自动生成的相关概念,对比总结各类代码注释自动生成方法,对近年来代码注释自动生成相关应用进行了梳理和总结,最后对注释自动生成所面临的挑战进行了分析,展望了该领域未来的研究。  相似文献   

2.
本文基于计算机挖掘软件源代码注释数量与质量偏低的问题,设计了代码注释自动生成方法.同时,对本文设计方法与Clocom法进行了实验对比分析,结果表明,相比Clocom法,本文方法所检测出的克隆代码类型更多,产量明显较高;自动生成的代码注释质量都明显较高,代码注释质量较好,总之,本文设计方法下计算机挖掘软件自动生成的代码注...  相似文献   

3.
潘兴禄  刘陈晓  王敏  邹艳珍  王涛  谢冰 《软件学报》2023,34(9):4114-4131
软件代码注释生成是软件工程领域近期研究的一个重要问题.目前很多研究工作已经在包含大量<代码片段,注释语句>对的开源数据集上取得了较好效果.但在企业应用中,待注释的代码往往是一个软件项目库,其必须首先决策在哪些代码行上生成注释更好,而且待注释的代码片段大小、粒度各不相同,需要研究提出一种注释决策和生成一体化的、抗噪音的代码注释生成方法.针对这个问题,提出一个面向软件项目的代码自动注释生成方法CoComment.所提方法能够自动抽取软件项目文档中的领域基本概念,并基于代码解析与文本匹配进行概念传播和扩展.在此基础上,通过定位概念相关的代码行/段进行自动注释决策,最终利用模板融合概念和上下文生成具有高可读性的自然语言代码注释.目前CoComment已经在3个企业软件项目、超过4.6万条人工代码注释数据上进行了对比试验.结果表明,所提方法不仅能够有效地进行代码注释决策,其注释内容与现有方法相比也能够提供更多有益于理解代码的信息,从而为软件项目代码的注释决策和注释生成问题提供了一种一体化的解决方案.  相似文献   

4.
针对大多数软件代码注释数量少、质量低的问题,提出了一种自动生成代码注释的方法。利用Nicad检测出克隆代码,提取出这些代码以及相应的注释,对代码和注释分别进行精简优化,将注释与代码匹配映射,为代码自动生成注释。对5款软件中的代码注释进行手动验证并评估注释结果,实验结果发现28%的代码注释是良好的,同时将注释报告给5位专家,专家评估结果为两款软件的代码注释为良好。实验结果及用户调研表明,该方法对于自动生成代码注释是可行、有效的。  相似文献   

5.
陈翔  于池  杨光  濮雪莲  崔展齐 《软件学报》2023,34(3):1310-1329
Bash是Linux默认的shell命令语言.它在Linux系统的开发和维护中起到重要作用.对不熟悉Bash语言的开发人员来说,理解Bash代码的目的和功能具有一定的挑战性.针对Bash代码注释自动生成问题提出了一种基于双重信息检索的方法 ExplainBash.该方法基于语义相似度和词法相似度进行双重检索,从而生成高质量代码注释.其中,语义相似度基于CodeBERT和BERT-whitening操作训练出代码语义表示,并基于欧式距离来实现;词法相似度基于代码词元构成的集合,并基于编辑距离来实现.以NL2Bash研究中共享的语料库为基础,进一步合并NLC2CMD竞赛共享的数据以构造高质量语料库.随后,选择了来自代码注释自动生成领域的9种基准方法,这些基准方法覆盖了基于信息检索的方法和基于深度学习的方法.实证研究和人本研究的结果验证了ExplainBash方法的有效性.然后设计了消融实验,对ExplainBash方法内设定(例如检索策略、BERT-whitening操作等)的合理性进行了分析.最后,基于所提方法开发出一个浏览器插件,以方便用户对Bash代码的理解.  相似文献   

6.
通过代码自动、快速地生成应用系统是软件开发的捷径。基于Velocity的代码生成技术是目前常用的方法。通过分析已有代码自动生成技术解决方案存在的问题,结合快速生成信息管理系统的业务需求,提出并实现了一个基于DOM4J解析框架以及Velocity模板技术的代码自动生成的平台框架。通过一个实例,给出该平台的实现过程。目前该自动生成技术已应用于实际软件开发中,初步达到了快速生成代码的研究目标。  相似文献   

7.
针对代码注释较少导致软件项目可维护性降低、理解代码语义困难等问题,提出一种基于NMT模型的双编码器框架自动生成代码注释的方法.在该框架中,首先提取不同的代码特征信息;然后分别采用序列编码器和图编码器对不同的代码特征编码,引入注意力机制调整编码器输出向量,再对双编码器的输出向量综合处理;最终利用解码器对综合向量解码获得注释序列.为了验证带有注意力机制的双编码器模型效果,本文构建自动生成代码注释算法框架.实验表明,双编码器模型与文中的序列编码器和树编码器模型算法相比,在生成代码注释方面的结果评估得分上表现较好.通过BLEU-1、ROUGE-L和F1测评指标得分对比,验证了本文算法的有效性.  相似文献   

8.
为了提高软件开发的质量和效率,代码自动生成是当前的研究热点,代码自动生成的性能是其中的重要问题.现有代码自动生成的性能分析方法较简单,难以评估代码自动生成过程中程序员与代码自动生成工具各自的特征.本文综合考虑了代码自动生成过程中程序员与代码自动生成工具的作用,提出了一种基于半监督学习的代码自动生成性能评估方法,通过抽取程序员行为与代码自动生成工具行为的重要特征,划分代码自动生成的性能类别,建立了基于深度神经网络的代码自动生成过程性能评估模型,并计算程序员行为特征与代码自动生成工具行为特征对性能的影响程度.实验结果表明,该方法可以有效分析程序员行为与代码自动生成工具行为对代码自动生成过程性能的影响.  相似文献   

9.
多Agent系统代码自动生成技术是为了填补多Agent系统方法在实现阶段的空白。论文研究了基于角色的多Agent系统及其建模工具,并在此基础上提出一种基于角色的多Agent系统的代码自动生成技术,探讨了该技术的独到之处,同时展望该技术今后的研究方向。  相似文献   

10.
现有代码注释生成方法的复制机制未考虑源代码复杂多变的语法结构,导致存在准确率和鲁棒性不高等问题。通过改进指针网络使其支持结构化数据输入,提出一种语法辅助复制机制,以用于代码注释自动生成。该机制包含节点筛选策略和去冗余生成策略2个部分。节点筛选策略基于语法信息引入掩盖变量以过滤无效节点,从而降低指针网络对复杂语法的学习成本。去冗余生成策略基于时间窗口对节点概率进行动态调整,可解决代码自动注释中关键信息缺失的问题。实验结果表明,在WikiSQL数据集上,相比基准方法,该机制的BLEU、ROUGE-2和ROUGE-L指标值分别提升14.5%、10.3%和5.5%,在ATIS数据集上,上述指标值分别提升2.8%、6.6%和2.5%,验证了该机制的有效性以及引入语法信息的必要性。  相似文献   

11.
随着现代软件规模的不断扩大,协作开发成为软件开发的主流趋势,代码审查成为了现代化软件开发的重要工作流程.但由于人工代码评审往往耗费审查者较大精力,且存在审查者不匹配或审查者水平有限等问题,人工代码评审的质量和效率难以保证,且审查后的代码修复也十分费时费力.因此亟需研究人员为代码审查流程进行改进,提供自动化思路.本文对代码审查自动化相关研究进行系统梳理和总结,并重点介绍4种主要方向:审查者推荐、代码变更质量评估、审查意见生成和代码自动修复.并整理了相关方向的148篇研究,对每个方向的研究进行技术分类与分析.随后,本文整理了各方向研究任务的评估方法,并整理出常用的数据集与开源工具.最后,对代码审查自动化领域面临的问题进行梳理,并对未来研究进行展望.  相似文献   

12.
王潮  徐卫伟  周明辉 《软件学报》2024,35(2):513-531
代码注释作为辅助软件开发群体协作的关键机制,被开发者所广泛使用以提升开发效率.然而,由于代码注释并不直接影响软件运行,使其常被开发者忽视,导致出现代码注释质量问题,进而影响开发效率.代码注释中存在的质量问题会影响开发者理解相关代码,甚至可能产生误解从而引入代码缺陷,因此这一问题受到研究者的广泛关注.采用系统文献调研,对近年来国内外学者在代码注释质量问题上的研究工作进行系统的分析.从代码注释质量的评价维度、度量指标以及提升策略这3个方面总结研究现状,并提出当前研究所存在的不足、挑战及建议.  相似文献   

13.
徐海燕  姜瑛 《软件学报》2021,32(7):2183-2203
随着开发者社区和代码托管平台成为程序员获取代码的主要途径,针对代码的用户评论数量急剧增加.用户在使用代码后给出的评论中包含多种静态和动态的代码质量属性信息,但由于用户评论多为复杂句,使得评论中包含的代码质量属性难以判断.针对复杂用户评论的代码质量属性判断将有助于分析用户评论中的代码质量信息,有助于开发者在了解用户的代码使用情况和用户关注的代码质量属性后有针对性地提升代码质量.提出了针对复杂用户评论的代码质量属性判断方法.首先对复杂用户评论进行分句并构建分句的依存句法关系有向图;然后,应用基于分句的依存句法关系的主题判断规则抽取分句中的主题;接着,根据初始的代码质量属性特征词库识别各主题对应的代码质量属性,并获取各主题的代码质量属性表现与表现结果;最后,基于主题处理规则分析复杂用户评论中的代码质量属性表现与表现结果,产生复杂用户评论中代码质量属性相关结果,并持续扩充初始代码质量属性特征词库.实验结果表明,论文方法能够对复杂用户评论的代码质量属性进行有效判断.  相似文献   

14.
在如今的软件开发中, 开源软件的使用越来越普遍, 但是对大型开源软件的理解和维护仍然是一项复杂的工作. 开源软件通常缺乏完善的文档和注释, 想要完整的理解开源系统难度较大, 研究界产生了一种通过分析大型开源软件的源代码, 进而深入理解系统, 发现和修复系统漏洞的软件分析型任务. 源代码分析注释是软件分析型任务的一项重要产出, 它是一种以注释形式存在的细粒度代码分析报告, 数量庞大, 难以快速做出质量评价. 在传统的软件质量评价中, 对注释的评价通常局限于覆盖度和文本长度, 不能满足源代码分析注释质量评价的要求. 为了更好的评价源代码分析注释的质量, 本文结合现有的对代码注释质量评价的研究以及信息质量领域的评价方法, 提出了一种综合考虑客观质量属性和主观质量属性的质量评价框架. 结合实际的项目数据分析, 本文的方法可以更有效的检测出注释中的冗余以及无关内容, 发现相关质量问题, 从而对源代码分析注释进行更全面的质量评价.  相似文献   

15.
Appropriate comments of code snippets provide insight for code functionality, which are helpful for program comprehension. However, due to the great cost of authoring with the comments, many code projects do not contain adequate comments. Automatic comment generation techniques have been proposed to generate comments from pieces of code in order to alleviate the human efforts in annotating the code. Most existing approaches attempt to exploit certain correlations (usually manually given) between code and generated comments, which could be easily violated if coding patterns change and hence the performance of comment generation declines. In addition, recent approaches ignore exploiting the code constructs and leveraging the code snippets like plain text. Furthermore, previous datasets are also too small to validate the methods and show their advantage. In this paper, we propose a new attention mechanism called CodeAttention to translate code to comments, which is able to utilize the code constructs, such as critical statements, symbols and keywords. By focusing on these specific points, CodeAttention could understand the semantic meanings of code better than previous methods. To verify our approach in wider coding patterns, we build a large dataset from open projects in GitHub. Experimental results in this large dataset demonstrate that the proposed method has better performance over existing approaches in both objective and subjective evaluation. We also perform ablation studies to determine effects of different parts in CodeAttention.  相似文献   

16.
牛长安  葛季栋  唐泽  李传艺  周宇  骆斌 《软件学报》2021,32(7):2142-2165
代码注释在软件质量保障中发挥着重要的作用,其可以提升代码的可读性,使代码更易理解、重用和维护.但出于各种各样的原因,有时开发者并没有添加必要的注释,使得在软件维护的过程中,往往需要花费大量的时间来理解代码,大大降低了软件维护的效率.近年来,多项工作利用机器学习技术自动生成代码注释,这些方法从代码中提取出语义和结构化信息后,输入序列到序列的神经网络模型生成相应的注释,均取得了不错的效果.然而,当前最好的代码注释生成模型Hybrid-DeepCom仍然存在两方面的不足.一是其在预处理时可能破坏代码结构导致不同实例的输入信息不一致,使得模型学习效果欠佳;二是由于序列到序列模型的限制,其无法在注释中生成词库之外的单词(Out-Of-Vocabulary word,OOV word).例如在源代码中出现次数极少的变量名、方法名等标识符通常都为OOV词,缺少了他们,注释将难以理解.为解决上述问题,本文提出了一种新的代码注释生成模型CodePtr.一方面,通过添加完整的源代码编码器解决代码结构被破坏的问题;另一方面,引入指针生成网络(Pointer-Generator Network)模块,在解码的每一步实现生成词和复制词两种模式的自动切换,特别是遇到在输入中出现次数极少的标识符时模型可以直接将其复制到输出中,以此解决无法生成OOV词的问题.最后,本文在大型数据集上通过实验对比了CodePtr和Hybrid-DeepCom模型,结果表明,当词库大小为30,000时CodePtr的各项翻译效果指标平均提升6%,同时处理OOV词的效果提升近50%,充分说明了CodePtr模型的有效性.  相似文献   

17.
源代码的摘要可以帮助软件开发人员快速地理解代码,帮助维护人员更快地完成维护任务.但是,手工编写摘要代价高、效率低,因此人们试图利用计算机自动地为源代码生成摘要.近年来,基于神经网络的代码摘要技术成为自动源代码摘要研究的主流技术和软件工程领域的研究热点.首先阐述了代码摘要的概念和自动代码摘要的定义,回顾了自动代码摘要技术...  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号