基于非精确图匹配的代码克隆检测方法研究

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:zhoubujin1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,代码克隆检测在软件开发,维护以及bug检测中的意义越来越重要。目前对于存在文本差异的克隆检测,即学术界定义的级别3和级别4,现有方法存在检出率不高的问题。程序依赖图(PDG,Program Dependency Graph)包含源代码的语法和结构信息,因此基于PDG的方法能够发现一些其他方法难以发现的程序结构相似或者相同的代码。但是这类方法主要基于子图同构检测等精确图匹配算法,算法复杂度高且无法发现代码之间存在的局部相似性。因此,如何更快速,全面和准确地进行图相似性计算是基于PDG进行代码克隆检测面临的一大挑战。为此,本文首先对PDG对集合进行了本身结构的简化和过滤,并对非精确图匹配算法进行了深入研究,主要研究内容和贡献如下:(1)PDG预处理及过滤方法设计我们对代码分析工具生成的PDG进行了研究和分析,发现其中包含很多由于PDG生成工具配置而生成的与源代码信息无关的冗余节点,造成了 PDG规模的增加,影响后续的节点匹配工作。基于此,本文提出了一种PDG结构简化的启发式策略,对这些节点和边进行了剔除,并对代码块中第三方库函数调用的冗余子图进行了合并。另外,对所有的候选克隆对直接进行比对也增加了大量的工作负担,本文提出了一系列的启发式过滤策略,从代码的数值特征和语义特征两个方面对候选克隆对集合进行了过滤。实验结果表明,PDG结构约简能使PDG图规模缩减20%以上,过滤策略相较其他方法过滤掉了更多的PDG对,有效地缩减了克隆检测算法的计算规模。(2)基于Weisfeiler-Lehman图核算法的检测方法设计现有的PDG匹配多采用子图同构这类精确图匹配算法,算法时间复杂度高,是NP难问题且回收率低。因此本文设计了一种基于Weisfeiler-Lehman图核算法的非精确图匹配方法,通过对每个节点的邻居节点信息的统计,计算两个图结构间子树同构的对数作为图相似度的度量值,在保留图的结构信息同时能够更快速的检测出PDG之间的局部相似性。最后,我们将本文提出的PDG预处理,过滤方法和图匹配方法结合形成完整的克隆检测方法,与已有检测方法在真实数据集和统一的克隆算法评估框架上进行了比对实验。实验结果表明,本文提出的方法在linux,jdk等真实数据集上比CCSharp和Oreo这些PDG方法运行时间快1-3倍,召回率比其他方法最多能高40%左右,F1值也高10%以上,即能够更快地发现更多的克隆对。
其他文献
[目的]构建1份问卷以调查糖尿病病人使用自我管理APP的意愿及影响因素。[方法]结合Norman的电子健康素养表、美国糖尿病协会推荐的7个自我管理行为(AADE7TM)构建初步的调查问
<正>爱国是一个公民起码的道德,也是中华民族的优良传统。在儒家传统文化里强调"舍生取义",其意义就是为了国家利益,捍卫国家主权,不惜牺牲个人生命。中华民族有着悠久的历史
舞毒蛾(Lymantria dispar Linnaeus)属于鳞翅目裳蛾科,广泛分布于世界各地,危害杨树、柳树、桑树、落叶松等多种植物,是一种危害严重的农林食叶害虫。目前,舞毒蛾的国内防治
个人所得税应当在调解个人收入、稳定经济运行、体现公平公正方面发挥更有效的作用。为此本文进一步探讨个人所得税在分类与综合相结合模式下的细化改革方案,包括税目的设置
<正>市场监管是指市场监管主体对市场活动主体及其行为进行限制、约束等直接干预活动的总和。2017年《国务院关于印发"十三五"市场监管规划的通知》中明确:加强和改善市场监
<正>7月4日,中国建筑防水协会与北京零点市场调查与分析公司联合发布《2013年全国建筑渗漏状况调查项目报告》。本次抽样调查涉及全国28个城市、850个社区,共计勘察2849栋楼
会议
痛风是单钠尿酸盐(MSU)沉积所致的晶体相关性关节病,与嘌呤代谢紊乱和(或)尿酸排泄减少所致的高尿酸血症直接相关,特指急性特征性关节炎、痛风石形成、痛风石性慢性关节炎、
脱贫工作一直是我国民生建设工程中的重要一环,要想实现全面小康社会,必须消灭贫困。由于我国人口基数大,分布广的特点,使得扶贫工作难度大,难以简单的快速的消灭贫困,需要切
代码补全推荐是软件工程领域的热门研究,可以提升软件开发效率。现有的代码补全推荐算法大都是针对关键词与语句粒度的,这种粒度的推荐所能提供的代码信息量较小,因此存在效率不高的问题,而现代软件开发更需要若干代码行(称之为代码块)这样大粒度的代码推荐以提升代码推荐效率。为了实现大粒度代码补全推荐,需要在代码库中搜索出与待补全代码相似的代码,但由于待补全代码的不完整造成与完整代码有较大的差异,从而导致难以搜
<正>未成年人刑事案件审判因涉及未成年人这一特殊主体的权益保护问题,是我国刑事司法活动中比较特殊的领域,同时也是国际上普遍关注的话题。未成年人刑事案件圆桌审判方式,
会议