首页> 中文学位 >功能等价的克隆代码自动检测的研究
【6h】

功能等价的克隆代码自动检测的研究

代理获取

目录

摘要

第1章 绪论

1.1 研究背景及意义

1.2 国内外研究现状与分析

1.3 本文研究主要内容及章节安排

第2章 功能等价的克隆代码检测相关的概念与技术

2.1 克隆代码

2.2 功能等价的克隆代码

2.3 功能等价克隆代码检测的关键技术

2.3.1 抽象语法树

2.3.2 IO-Behavior

2.3.3 度量检测

2.4 克隆代码重构

2.4.1 重构的定义

2.4.2 为什么要重构

2.4.3 重构的作用

2.4.4 克隆代码的重构

第3章 基于IOM-Behavior的检测模型及前期处理

3.1 基于IOM-Behavior的功能等价克隆代码的检测模型

3.2 类方法的提取处理

3.2.1 基于反射机制的类方法提取

3.2.2 不同方法类型的探讨

3.2.3 取得输入、输出变量的方式

第4章 基于IOM的功能等价方法过滤与检测

4.1.1 IO过滤器

4.1.2 M过滤器

4.2 基于随机测试的检测

4.2.1 随机抽样

4.2.2 对象的结构等效

4.2.3 测试集的选择

第5章 功能等价克隆检测算法的代码实现

5.1 程序的设计与实现

5.1.1 需求分析

5.1.2 程序的设计

5.2 实验与结果分析

5.2.1 排序算法中的功能等价方法检测实验

5.2.2 开源代码的功能等价方法实验

第6章 结论与展望

6.1 结论

6.2 进一步工作的方向

参考文献

攻读学位期间取得的研究成果

致谢

声明

展开▼

摘要

随着软件系统的规模不断增大,为了节约开发成本,缩短开发周期,程序员经常进行代码的复制粘贴。开发过程中克隆代码的使用的确获得了一些益处,但其造成的危害不容忽视,比如bug的传递性,增加程序复杂性等等。因此,克隆代码的检测显得尤为必要,一方面可以定位克隆代码以便于分析可能隐含的bug,另一方面也能够为代码的重构奠定基础。
  功能等价的克隆代码属于第四类克隆代码,与其他三种不同的是,功能等价类型克隆代码在文本上的相似度很低,甚至完全不一样。本文提出了IOM-Behavior算法用以检测方法级别的功能等价克隆代码。算法首先利用反射机制从源代码中获取类方法。再将方法的参数个数及类型、返回类型作为第一个过滤器,把具有相同输入和输出的方法分为一类,从而筛选出初步候选克隆组,在此过程中,有针对性的将方法分为四种类型,并对不同类型的方法提出相对应的检测方式;而后,又计算出候选克隆组中方法的度量值,并将其作为二次过滤器,提出将度量指标相似比不低于50%而不是完全相等作为判定方法等价的标准,进而得到最终的候选克隆组。最后,借助分层随机抽样构造测试集,进行输入输出的随机测试,继而获取功能等价的克隆方法组。
  此外,本文使用Java语言实现了对方法级功能等价克隆代码进行检测的IOM-Behavior算法。运用该算法程序,结合手工构造测试用例集对实际项目中的Java源码进行检测,实验结果表明,算法程序检测出方法级的功能等价克隆代码的正确率不低于66%,证明了本文提出的算法合理有效,不失为一种检测功能等价克隆代码的新见解,也为实际应用中分析并解决因克隆代码带来的bug等问题提供了参考。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号