从局部到全局的代码语义克隆检测方法

来源 :大连理工大学 | 被引量 : 0次 | 上传用户:sishenzhichi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
“复制-粘贴-修改”是软件开发过程中的一种常见操作,这一操作通常会带来大量的代码重复,这些相同或相似的代码片段被称为克隆代码。代码克隆检测的目标就是从软件系统中检测出这些克隆代码。代码克隆检测是软件工程领域的一个基础研究课题,在代码缺陷修复、剽窃检测、代码质量评估、恶意软件检测等领域均有所应用,对于工业界的软件维护、重构等工作也有着重要意义。代码克隆包含文本、词汇、语法、语义四个级别,检测难度依次递增。现有的技术针对前三种级别的检测已经取得了很多优秀成果,但是在语义级别的克隆检测上却没有显著成果。本文首先将语义级代码克隆细分为两种类型:局部语义克隆和全局语义克隆。之后,针对这两种类型的语义克隆,分别提出了将传统方法与神经网络相结合的语义级别代码克隆检测方法。本文的检测粒度是程序中的函数,使用控制流图(CFG,Control Flow Graph)作为代码的中间表示。首先构造基于双向LSTM自动编码器的节点特征模型,将动态时间规整(DTW,Dynamic Time Warping)算法与该节点特征模型相结合,检测局部语义克隆;之后构造基于图卷积网络(GCN,Graph Convolutional Network)的CFG特征模型,用CFG特征模型的输出结果检测全局语义克隆。在实验部分,本文首先使用Apache commons imaging、Apache commons math3、Catalano Framework、Colt、Weka这五个开源系统组成一个代码仓库,又构建了一个全局语义克隆数据集。在这两个数据集上进行实验,并与现有方法进行比较。实验结果表明,除了能够检测出前三种类型的克隆以外,本文方法还能够在上述五个系统中分别检测出9-150对真局部语义克隆函数对;另外,当系统中全局语义克隆-非克隆函数的比例不小于1:20时,使用本文提出的全局语义克隆检测方法可以达到0.627以上的召回率,同时具有较高的精确率。这些结果证实了本方法在检测局部和全局语义克隆方面均能取得良好的效果。
其他文献
静态分析是指在不运行代码的情况下进行的程序分析,其被广泛应用于编译优化、缺陷检测等软件工程任务。近年来,该方向的不少研究工作致力于如何从程序代码中获取足够的信息,
经济全球化背景下,国际经济交流愈发频繁。随着对外开放的加深,大量外资流入中国,在促进经济发展的同时,也伴随着政治、经济、文化的渗透,带来诸多国家安全隐患。必须加强外
动物园是城市文明建设和公共文化的载体,是一个适合游览观光的场所,同时也是一个充满体验、服务的学习胜地。人们游览动物园,是亲近动物、认识大自然的过程,更是感受美好体验
破产概率是衡量风险大小的一种重要工具,受到了学者们的广泛关注,而对预警区问题,即对保险公司负盈余持续时间问题的研究也越来越受关注。本文在已有研究的基础上利用随机过
随着半导体工业的发展,以SiC和为代表的第三代宽禁带半导体材料近年来在功率器件应用方面引起了高度重视,同时也对用于高功率密度器件的封装材料在高温服役和散热性能上提出
超聚能射流的概念由Minin等人首先提出,模拟研究表明:超聚能装药结构能同时提高药型罩的利用率和射流的速度,形成质量更大、速度更高的射流。他们的研究开辟了一个新的研究方
虽然在粗晶材料中,固溶强化已得到深入研究并提出了许多成熟的理论,但已有的固溶强化理论并不一定适用于纳米晶合金。现有研究对纳米晶合金中是否存在固溶强化以及其效果如何仍存在争议,主要原因在于当纳米晶合金溶质含量发生改变时,晶粒尺寸、晶界成分、晶界宽度等微结构因素通常随之改变。这些微结构因素的相互交织使得对纳米晶合金单独的固溶强化作用难以揭示。本课题设计并制备了由不同低溶质含量晶体层和相同高溶质含量非晶
为了进一步探索黏菌在吉林省的分布情况,笔者对吉林省的长春市、吉林市、白山市、白城市和延边朝鲜族自治州的26个地点进行采集,共采集得到266份团毛菌目的有效标本,鉴定出58个种,分属于2科8属。其中,中国新记录有1种为长尖团毛菌橄榄色变种Trichia decipiens var.olivacea,吉林省新记录有4种,疣壁团毛菌Trichia verrucosa、黄毛团毛菌Trichia flavi
旋转机械是现代工业生产中应用最广泛的动力机械之一,其核心部件是转子系统。由于转子系统的工作环境以及系统中存在的非线性因素等的影响,转子系统的故障时有发生,造成了大
自润滑关节轴承是一种无需添加润滑剂就可实现自润滑的轴承,其在航空航天、工程机械、矿山机械等领域应用广泛。自润滑衬垫作为自润滑轴承的关键组成部分,其力学性能是影响自润滑关节轴承润滑性能和摩擦磨损性能的主要因素。因此,为提升自润滑关节轴承的摩擦学性能,有待进一步开展织物型自润滑衬垫力学性能研究。本文主要研究自润滑衬垫压缩力学性能,通过建立自润滑衬垫的压缩本构关系模型,实现对衬垫力学性能的预测。自润滑衬