首页> 中文学位 >针对代码克隆的面向对象程序的重构研究
【6h】

针对代码克隆的面向对象程序的重构研究

代理获取

目录

声明

摘要

第一章引言

1.1软件重构

1.2本文的研究目的

1.3相关研究

1.4本文主要工作

1.5本文组织

第二章代码克隆的概念及度量

2.1代码克隆的概念

2.1.1什么是代码克隆

2.1.2代码克隆的产生

2.1.3代码克隆对软件的影响

2.1.4代码克隆的语义完整性

2.2代码克隆的度量

2.2.1源代码中的标符

2.2.2编辑距离

2.2.3相似度

2.2.4满足语义逻辑等价性的克隆度量

2.3本章小结

第三章代码克隆的检测

3.1检测代码克隆的基本过程

3.2代码片段的选取

3.2.1代码片段的语义完整性

3.2.2确定代码片段

3.3生成标符序列

3.3.1去除代码中的注释

3.3.2将程序的字符组合成标符

3.4求编辑距离的算法

3.5复合语句块的克隆检测

3.6满足语义逻辑等价性的代码克隆

3.6.1程序逻辑图

3.6.2代码片段关于语义逻辑的等价性

3.7克隆代码块的调整

3.8本章小结

第四章代码克隆的消除

4.1消除代码克隆的必要性讨论

4.2代码克隆的类型及所采取的消除方法

4.2.1单个方法内的代码克隆

4.2.2同一个类内的代码克隆

4.2.3不同类之间的代码克隆

4.2.4克隆链

4.3本章小结

第五章实验分析

5.1实验工具

5.2求两段代码相似度的实验

5.3检测代码克隆并提出消除方法的实验

5.3.1两个文件中的代码克隆

5.3.2多个文件中的代码克隆

第六章总结和展望

参考文献

发表论文

致谢

展开▼

摘要

软件重构是软件工程的一个重要研究领域,是当前软件工程界的一个重要研究课题。通过软件重构,人们可以去除软件中的不良设计,改进软件质量。代码克隆是软件源程序中普遍存在的一个问题,一个软件中往往存在着很多相同或基本相似的代码片段。代码克隆不利于软件的维护及更新,因为假如有一处需要修改,其他克隆之处都要作相应修改。 由于代码克隆存在这种负面影响,我们有必要针对代码克隆进行软件重构。针对代码克隆的软件重构研究主要包括克隆的度量、检测及消除。其目的就是尽可能全面地找出源程序中的代码克隆,并根据不同的克隆情况采取最合理的消除措施,以得到最优的重构效果。 本文从代码克隆出发,以Java语言为例,讨论面向对象程序中针对代码克隆的重构方法。本文首先用基于编辑距离的相似度来度量代码克隆,即通过计算两个代码片段对应的标符序列的编辑距离,并求出其相似度来判断是否克隆。本文接着讨论源程序中的克隆检测,详细阐述克隆检测的各个步骤,包括确定代码片段、生成标符序列、计算编辑距离及相似度。本文同时考虑了满足语义逻辑等价性的代码克隆,即将形式上不相似但逻辑上等价的代码片段也视为克隆,本文使用程序逻辑图来判断逻辑等价性。本文最后针对不同的克隆情况实行不同的消除克隆方法以实现最有效的重构。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号