使用哈希值和标识符冲突率的克隆代码检测的误检消除方法
2013-04-29边奕心王甜甜苏小红马培军
智能计算机与应用 2013年5期
边奕心 王甜甜 苏小红 马培军
摘要:针对采用基于token的克隆代码检测方法检测语法相似的克隆代码时存在的部分误检问题,提出一种使用哈希值和标识符冲突率来消除克隆代码检测的部分误检的方法。该方法首先通过语句的哈希值判断语句结构的相似性,然后计算标识符冲突率,通过冲突率的变化,来确定误检消除的方向和消除情况。对于存在误检的克隆代码,最终通过修改克隆代码的相对行号来消除误检。实验结果表明,提出的方法可以消除由于插入结构相同的语句而引起的克隆代码的误检问题,并在此基础上,有效消除了语句形式一样但由于语句顺序颠倒而引起的克隆代码误检问题,提高了克隆代码检测及克隆代码相关缺陷检测的准确性,有利于后续克隆代码重构的研究。
关键词:克隆代码; 哈希值; 标识符冲突率; 误检; 重构
中图分类号:TP311 文献标识码:A 文章编号:2095-2163(2013)05-0046-04
0引言
克隆代码(Cloned Code),又称作重复代码(Duplicated Code),是指源代码文件中多个相同或相似的代码片段[1]。
克隆代码在大多数情况下是有害无益的,因其增加了软件系统代码的长度,使得软件系统愈加复杂、难以维护,同时系统运行效率也会降低,并且给软件引入大量的程序缺陷。
近年来,代码克隆的研究已成为软件工程领域的前沿课题。各国的软件研究人员竞相提出了多种检测克隆代码的方法,并陆续开发了多款自动检测大规模软件系统中克隆代码的工具[2]。国际上研究克隆代码检测的国家主要有日本、美国、英国等。……
登录APP查看全文
