基于指针生成网络的代码注释自动生成模型

来源 :软件学报 | 被引量 : 0次 | 上传用户:estone
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
代码注释在软件质量保障中发挥着重要的作用,它可以提升代码的可读性,使代码更易理解、重用和维护.但是出于各种各样的原因,有时开发者并没有添加必要的注释,使得在软件维护的过程中,往往需要花费大量的时间来理解代码,大大降低了软件维护的效率.近年来,多项工作利用机器学习技术自动生成代码注释,这些方法从代码中提取出语义和结构化信息后,输入序列到序列的神经网络模型生成相应的注释,均取得了不错的效果.然而,当前最好的代码注释生成模型Hybrid-DeepCom仍然存在两方面的不足.一是其在预处理时可能破坏代码结构导致不
其他文献
并发错误是程序设计语言和软件工程领域的研究热点之一.近年来,针对应用程序并发错误检测的研究已取得了很大进展.但是由于操作系统内核的并发和同步机制复杂、代码规模庞大,与应用程序级并发错误检测相比,操作系统内核的并发错误检测研究仍面临巨大的挑战.对此,国内外学者提出了各种用于操作系统内核并发错误检测的方法.首先介绍了并发错误的基本类型、检测方法和评价指标,讨论了现有的并发错误检测方法和工具的局限性;然后,从形式化验证、静态分析、动态分析和静态动态相结合4个方面,对现有的操作系统内核并发错误检测的研究工作进行了
数据驱动的智能系统的核心是处理数据的算法,对算法正确性的要求高,导致其测试开销大,需要有效地缩减测试的规模,其中回归测试选择是控制测试规模的有效手段.数据驱动的智能系统由于其动态信息流强度弱的原因,发生偶然正确性现象的概率较高,并且该现象会导致常用的回归测试选择技术所选择出的测试集包含大量检测不到故障的测试用例.因此,从偶然正确性现象的角度出发,提出一种基于偶然正确性概率的回归测试选择技术,进一步排除可能发生偶然正确性现象的用例.该方法能够兼顾代码覆盖,同时从偶然正确性的角度保证缩减后的测试用例集合对被修
随着人工智能技术的深入发展,自动驾驶已成为人工智能技术的典型应用,近十年来得到了长足的发展,作为一类非确定性系统,自动驾驶车辆的质量和安全性得到越来越多的关注.对自
软件错误定位是一项耗时又费力的工作,因此如何提高软件错误定位的自动化程度一直以来都是软件工程领域研究的热点.现有的基于频谱的错误定位方法很少利用程序的上下文信息,而程序的上下文信息对错误定位至关重要.针对这一问题,提出了一种基于路径分析和信息熵的错误定位方法FLPI.该方法在基于频谱信息技术的基础上,通过对所有执行路径中的数据依赖关系进行分析来引入执行上下文信息,同时利用信息熵理论将测试事件信息引入到可疑语句的怀疑度计算公式中,以提高错误定位的精度和效率.为了评价该方法的有效性,基于一组基准程序和开源程序
随着科技的进步,新型复杂系统,例如人机物融合系统(human cyber-physical systems,简称hCPS),已与人类社会生活越来越密不可分.软件系统所处的信息空间与人们日常生活所处的物理空间日渐融合.物理空间内环境的复杂多变、时空数据的爆发增长以及难以预料的人类行为等不确定因素威胁着系统安全.由于系统安全需求的增长,系统的规模和复杂度随之增加所带来的一系列问题亟待解决.因此,在不确定性环境下,构造智能、安全的人机物融合系统已成为软件行业所面临的不可回避的挑战.环境不确定性使得人机物融合系统
自适应系统由于其能够自主地适应具有非确定性的部署环境,并持续地保持用户的满意度,受到了广泛的关注.然而,目前仍然存在未解决的挑战,例如如何在新的部署环境下,或者在开放且复杂的环境下,使得系统仍然能满足自适应性.因此,为自适应系统的设计引入了一个新的概念模型,受归因理论启发,该模型被设计成内归因和外归因两层结构.内归因层决定了内因如何影响自适应行为,这一层与部署环境解耦,可以独立设计且可以复用在不同的部署环境中.外归因层映射了外因与内因的关系,这一层在不同的部署环境中可以被替换.基于两层结构的实现框架,具有
目前自适应软件正在为众多领域系统提供着对运行环境的适应能力.如何建立一种能够保障识别质量的自适应分析方法,使之可从运行环境中快速且准确地识别出异常事件,是确保自适应软件长期稳定运行所必须考虑的研究问题之一.当前运行环境的不确定性给该问题的攻关带来两方面的挑战:其一,现有分析方法一般通过预先建立环境状态与事件之间的映射关系来识别事件.但在系统运行之前,已无法仅凭经验确定环境状态并建立全面且正确的映射关系.仅依赖映射关系建立分析方法的设计思路已无法保障识别的准确性.其二,不确定环境何时会发生何种事件已变得不可
随着技术的不断发展,软件系统的非确定性(uncertainty)不断增强,数据竞争是并发系统这一类典型的非确定性软件系统中常见的缺陷.尽管数据竞争静态检测近年来取得了巨大进展,但其面临的重要问题仍然存在.先前的静态技术要么以分析精度为代价达到高扩展性,要么由于高精度分析而导致可扩展性问题.提出一种解决上述矛盾的分段分析方法——GUARD.它首先基于程序值流进行轻量级上下文敏感的数据访问分析,以识别出候选的数据竞争子路径而非完整的程序路径.接下来,进行可能并行执行(may-happen-in-paralle
随着开发者社区和代码托管平台成为程序员获取代码的主要途径,针对代码的用户评论数量急剧增加.用户在使用代码后给出的评论中包含多种静态和动态的代码质量属性信息,但是由于用户评论多为复杂句,使得评论中包含的代码质量属性难以判断.针对复杂用户评论的代码质量属性判断将有助于分析用户评论中的代码质量信息,有助于开发者在了解用户的代码使用情况和用户关注的代码质量属性后有针对性地提升代码质量.提出了针对复杂用户评论的代码质量属性判断方法.首先对复杂用户评论进行分句并构建分句的依存句法关系有向图;然后,应用基于分句的依存句
在软件的开发和维护过程中,与代码对应的注释经常存在缺失、不足或者与代码实际内容不匹配等问题,但手工编写代码注释对开发人员来说费时费力,且注释质量难以保证,因此亟需研究人员提出有效的代码注释自动生成方法.代码注释自动生成问题是当前程序理解研究领域的一个研究热点,对该问题进行了系统综述.主要将已有的自动生成方法细分为3类:基于模板的方法、基于信息检索的方法和基于深度学习的方法.依次对每一类方法的已有研究成果进行了系统的梳理、总结和点评.随后分析了已有的实证研究中经常使用的语料库和主要的注释质量评估方法,以利于