基于机器学习的自动化代码审查技术研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:cryloves
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
代码审查(Code Review)指的是对源代码改动进行的检查,目的是防止不合格的代码改动影响到软件工程的质量。代码审查在软件开发和维护中占据着非常重要的地位,然而人工代码审查费时费力,为了减轻审查者的负担,提高软件开发效率,提出一种自动化代码审查技术是很有必要的。遗憾的是,现有的技术,例如克隆检测和缺陷定位,几乎都是用来建模两段源代码之间整体的相似性,而不是建模两段源代码之间的局部差异,难以在代码审查任务上发挥作用。为了构建一种能够自动化代码审查方法,本文对自动化捕捉源代码改动特征的技术进行了研究,主要取得了如下创新成果:1.针对将两个版本的源代码之间的改动进行建模的问题,本文提出了DACE方法。该方法创新性的构造了成对自编码器PAE,将一前一后两个版本的源代码的进行建模。为了让PAE有更好的效果,针对代码改动的特点,本文利用长短期记忆网络首先将被改动的代码语句与其未改动的上下文代码语句进行融合。结果表明,该方法在代码审查任务上可以达到高于基准方法的预测准确性。2.针对如何利用代码改动的生成过程来辅助自动化代码审查的问题,本文提出了VACE方法。该方法以同时建模开发者改动代码和审查者审查改动的角度,对代码审查进行更深层次的建模,本文将代表代码改动的特征表示向量进行分析,利用观测到的监督信息使合格的改动和不合格的改动在隐空间内被最大化区分开,这样还能够对人工开发时带来的不确定性进行模拟,因为每一个改动不仅仅对应一个改动特征向量而是一个随机变量的分布。结果表明该方法可以提高审查结果的准确性。
其他文献
全张量磁梯度数据具有更大的信息量和更高的分辨率,能够更准确地描述磁性目标的磁化方向,进而实现磁性目标的检测。目前基于全张量磁梯度数据的目标检测技术已经广泛的应用于
花蓟马Frankliniella intonsa是一种重要的农作物害虫,广泛分布于我国和世界各地,每年可造成巨大的经济损失。由于花蓟马生殖能力强,发育历期短,个体小,易于隐藏,单一的化学
类风湿性关节炎(RA)是一种慢性炎性的自身免疫性疾病,主要表现为关节滑膜炎及关节病变。病变的炎症部位具有类似肿瘤血管的通透增强与滞留效应(EPR)。脂质体和纳米粒已广泛用于RA的靶向治疗。本课题以他克莫司(FK506)为模型药物,以卵磷脂和大豆磷脂(SPC)为脂质材料,加入适量的胆固醇(Chol)和增溶剂维生素E聚乙二醇琥珀酸酯(TPGS)制备FK506脂质体,并以新型两亲性高分子材料聚乙烯己内酰
强化学习能够让智能体自主地在环境中进行试错学习,是实现人工智能的重要途径之一。然而,目前的强化学习算法尽管在复杂游戏AI控制上已经取得了巨大的进步如Alpha Star和Open
随着现代社会的发展,全固态激光器在社会各个方面有着越来越广泛的应用。作为激光技术发展的核心和基础,激光材料和器件加工技术的研究具有重大的意义和作用。YAG晶体具有激
化学农药作为农业生产中重要的生产资料,在保障粮食安全方面做出了重大贡献。然而,随着农业现代化的发展,对农产品质量提出了更高要求,但传统化学农药的使用严重破坏了农业生
由于现代控制系统具有规模大、复杂度高的特点,人们对于控制系统的安全性和可靠性提出了更加严格的要求,而容错控制能够保证系统对安全性和可靠性的要求,因此容错控制成为了
机器人技术的发展正在不断改变着人们的生活和生产方式,服务机器人是其中一个热点的研究领域,市场潜力巨大,受到越来越广泛的关注。然而,服务机器人通常工作在与人共存的环境
多智能体系统,亦称多自主体系统,由于其具有广泛的应用空间和良好的经济效应,已经被广泛的应用在资源勘探、目标搜救、协作操控等众多工程领域,用于协助人们完成某些高风险、
热电子光电探测器可以突破半导体禁带限制,具有在零偏压和室温下运行、制备方便、尺寸紧凑且探测波长可调等优点吸引了科研人员的广泛关注。通过在金属纳米结构中激发表面等离子可以增强光与物质的相互作用,从而提高金属中的热电子产生率。由于在一维光栅结构中,表面等离子只能在特定偏振的入射光下激发,所以热电子光电探测器的响应度具有强烈的偏振依赖性。此外,较厚的金属层导致了严重的热电子热化损失和较低的输运效率。本文