【技术实现步骤摘要】
本专利技术属于软件工程领域,具体涉及一种面向源代码相似性的并行化高效代码克隆检测方法。
技术介绍
1、软件开发过程中,开发人员会参考已有的解决方案来涉及和实现新的业务功能,包括直接复制粘贴已有的源代码,根据标准的api调用流程来编写源代码,这些开发习惯会导致代码仓库中存在一定量相同或者相似的源代码,这类代码被称为克隆代码。克隆代码的存在给软件的开发和维护造成了一定程度的负面影响,因此需要对此类代码进行监控和管理。
2、克隆代码主要分为四类,第一类为完全相同的代码(去除注释和空白行),第二类为标识符不同的代码,第三类为表达式存在增删情况的源代码对,第四类为文本不相似但是功能相同的源代码。当前,检测工具通常将前三类划分到一起进行检测,将第四类作为单独进行检测。
3、国内外研究人员针对前三类克隆代码的检测提出了许多有价值的解决方案。然而,当前方法存在检测效率不高的问题,导致这些算法面对海量代码库克隆检测时的性能不佳。另外,第三类克隆代码中存在很多相似表达式穿插形成的大粒度克隆代码,当前的方法并不能有效识别此类代码。这些
...【技术保护点】
1.一种并行化源代码克隆检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种并行化源代码克隆检测方法,其特征在于,所述入口参数包括:最小方法行数min-line,小于这个值的方法不参与检测;最大方法行数max-line,大于这个值的方法不参与检测;代码相似性比较器类型compare-type,1代表用字符串比较,2代表用token串比较,3代表用Simhash方式比较;比较范围系数line-gap-dis,当两个方法的行数查百分比大于该值时,不参与检测;相似度阈值similarity,大于该值被检测为克隆代码;检测语言language;源文件
...【技术特征摘要】
1.一种并行化源代码克隆检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种并行化源代码克隆检测方法,其特征在于,所述入口参数包括:最小方法行数min-line,小于这个值的方法不参与检测;最大方法行数max-line,大于这个值的方法不参与检测;代码相似性比较器类型compare-type,1代表用字符串比较,2代表用token串比较,3代表用simhash方式比较;比较范围系数line-gap-dis,当两个方法的行数查百分比大于该值时,不参与检测;相似度阈值similarity,大于该值被检测为克隆代码;检测语言language;源文件后缀extensions,用逗号分割,后缀与配置相同的源文件将被解析并参与克隆检测。
3.根据权利要求1所述的一种并行化源代码克隆检测方法,其特征在于,所述程序加载文件列表具体为:如果传入的参数是一个目录,则递归地列出目录中的所有文件;如果传入的参数是一个文件,程序读取文件中的路径列表。
4.根据权利要求1所述...
【专利技术属性】
技术研发人员:胡彬,俞东进,孙笑笑,胡天逸,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。