声明
摘要
第一章引言
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多个文件中的代码克隆
第六章总结和展望
参考文献
发表论文
致谢