基于静态程序分析的注解传递技术研究

来源 :南京邮电大学 | 被引量 : 0次 | 上传用户:hbbzy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
注释是帮助开发人员理解代码的重要途径之一,注释相对于源码更直接、更具描述性并且更容易被开发人员理解。但是因为编写正确且高质量的注释成本太高,并且随着项目的不断迭代,代码难免会出现更改的情况,因此源码的注释往往存在缺失或者不一致的情况,这可能会导致开发人员在后续开发过程中引入新的Bug。因为开发人员在对代码进行命名时会考虑其代表的含义,因此现有研究工作主要结合程序分析和自然语言处理技术,通过分析代码的语句结构、变量名和方法名来自动生成注释,或者通过代码对比来将已有的注释进行迁移。这些方法都需要代码本身具有较高的质量和可读性,对于项目本身的内部注释却并未很好的利用。因此本文提出一种基于程序分析的注解传递技术。首先使用的是一种非侵入式、可隐藏的新型注释,称之为注解来进行传递,以此来达到不破坏代码结构的目的;然后通过扩展已有的注释分类方法,对注解进行分类并对每个类型规定了不同的传递规则;同时,提出了两种传递方式,分别是基于程序分析的确定性传递和基于概率推导的非确定性传递。在确定性传递中存在着两种传递方式,一种是基于Call Graph的传递,可以通过调用关系将目标方法的注解传递给调用方法;另一种是基于程序间控制流图的传递,通过程序间控制流图将实参的注解传递到目标方法中,让参数上存在更多的上下文说明。在非确定性传播中,主要是挖掘了参数与返回值之间的关系,通过数据流约束、命名约束和类型约束来生成概率约束,然后以此来构建因子图并通过置信传播来计算注解属于变量的概率,来确定参数和返回值之间可以传递注解的概率。最后,本文基于这两种传播方式,在GitHub上选取了十个开源项目进行实验,其结果表明并将传递后的注解与原注释相比后,对于方法的注解最高有88%的与原注释相同,变量注解最高有80%的与原注释相同。并抽取部分注解交给十位开发人员进行人工评价,结果表明大部分传递过去的注解是一致且具有帮助的。
其他文献
网络编码允许网络中间节点对接收到的数据包进行编码后再转发,利用中间节点的计算开销换取网络的传输增益。同时,由于网络中中间节点参与数据包编解码,攻击者只需注入少量污染信息就可导致对合法数据包造成污染,最终使目的节点无法正确解码原始数据包。网络编码面临的安全问题制约了其发展,现阶段网络编码面临的攻击主要有污染攻击和窃听攻击,传统的网络安全机制已不再适用于网络编码。本文聚焦安全网络编码,在单源多播网络场
随着互联网和云计算等技术的发展以及Web 2.0时代的到来,互联网逐渐从单一的信息分享的平台拓展为服务共享的平台。其中,Web服务是互联网服务最主要的载体。越来越多的科学机
随着经济全球化加速,中国经济快速增长,现代企业面临的市场环境日益复杂。在企业日常运营过程中,建立在合同管理层面上的各种风险的增加是越来越多的企业所关注的问题。加强
变化检测是遥感应用研究领域的重要主题,随着遥感技术的不断进步,影像空间分辨率越来越高,基于高空间分辨率遥感影像(下文简称“高分影像”)的变化检测受到了越来越多的关注,
房屋是最基本的生活资料,关系到经济发展和社会稳定,并发挥着重要的投融资功能,遂出现了房屋借名买卖的社会现象并引发出诸多法律问题。本文拟针对房屋借名登记的概念、性质
自动聚焦技术是计算机视觉和各类成像系统的关键技术之一。在安防监控行业中,由于大倍率高智能的高清网络监控摄像机的使用带来了三个显著的问题,聚焦速度变慢、目标物距的获
税收收入是中央和地方财力的重要组成部分。税务机关是组织税收收入的专门机关,它在捍卫税收制度、维护税收秩序等方面发挥着重要作用。税务工作者若有涉税渎职行为,直接地,
随着政治经济的不断发展,人们的思想也在发生转变,在刑罚领域,人道主义的呼声日渐高涨。人类刑罚制度也经历了报复刑、威慑刑,再过渡到教育刑的时期,这也体现出刑罚制度的人
在中央立法与地方立法之间存在一个以创制性为主导的沟通渠道,地方立法机构可以通过积极发挥创制性这一理念,完善国家法律体系和地方法治治理体系。地方立法创制性的高低实际
随着互联网技术的发展和大数据时代的到来,生物医学文献数量呈爆炸式增长,如何从大量无结构的生物医学文献文本中抽取结构化信息成为一个亟待解决的问题。实体关系抽取是结构