| 摘要 | 第6-7页 |
| Abstract | 第7-8页 |
| 第1章 绪论 | 第11-15页 |
| 1.1 课题研究背景 | 第11页 |
| 1.2 重复代码研究现状 | 第11-13页 |
| 1.3 本文研究的内容和成果 | 第13-14页 |
| 1.3.1 研究内容 | 第13页 |
| 1.3.2 本文创新点 | 第13-14页 |
| 1.4 本课题的组织安排 | 第14-15页 |
| 第2章 代码坏味与重构 | 第15-23页 |
| 2.1 前言 | 第15页 |
| 2.2 代码坏味 | 第15-18页 |
| 2.2.1 类内的代码坏味 | 第15-17页 |
| 2.2.2 类间的代码坏味 | 第17-18页 |
| 2.3 重复代码 | 第18-20页 |
| 2.3.1 重复代码的产生 | 第18页 |
| 2.3.2 重复代码的种类 | 第18-20页 |
| 2.3.3 重复代码危害 | 第20页 |
| 2.4 重构 | 第20-22页 |
| 2.4.1 重构的定义 | 第21页 |
| 2.4.2 重构的作用 | 第21-22页 |
| 2.4.3 重构的步骤 | 第22页 |
| 2.5 本章小结 | 第22-23页 |
| 第3章 基于MicroCSParser的抽象语法树的提取 | 第23-35页 |
| 3.1 前言 | 第23页 |
| 3.2 抽象语法树 | 第23-25页 |
| 3.2.1 抽象语法树的相关概念 | 第23-24页 |
| 3.2.2 面向对象的代码坏味的度量 | 第24页 |
| 3.2.3 抽象语法树的结构与节点 | 第24-25页 |
| 3.3 抽象语法树的提取 | 第25-31页 |
| 3.3.1 基于MicoCSParser的抽象语法树 | 第26-29页 |
| 3.3.2 基于MicroCSParser的抽象语法树的建立 | 第29-31页 |
| 3.4 抽象语法树的遍历 | 第31-34页 |
| 3.5 本章小结 | 第34-35页 |
| 第4章 基于SimHash算法的相似度计算 | 第35-43页 |
| 4.1 前言 | 第35页 |
| 4.2 SimHash算法 | 第35-40页 |
| 4.2.1 SimHash算法原理 | 第35-38页 |
| 4.2.2 SimHash算法的具体实现过程详例 | 第38-39页 |
| 4.2.3 相似度的计算 | 第39-40页 |
| 4.3 SimHash算法的优势 | 第40-41页 |
| 4.4 以SimHash处理抽象语法树的信息 | 第41-42页 |
| 4.5 本章小结 | 第42-43页 |
| 第5章 重复代码检测工具的实现 | 第43-52页 |
| 5.1 前言 | 第43页 |
| 5.2 系统功能的需求分析 | 第43-44页 |
| 5.3 系统的设计原则 | 第44-45页 |
| 5.4 系统构成和模块功能简析 | 第45页 |
| 5.5 重复代码检测及显示功能的实现 | 第45-50页 |
| 5.5.1 重复代码的检测过程 | 第46-48页 |
| 5.5.2 检测结果的显示模块 | 第48-50页 |
| 5.6 对系统的测试 | 第50-51页 |
| 5.7 本章小结 | 第51-52页 |
| 第6章 总结 | 第52-54页 |
| 6.1 课题总结 | 第52页 |
| 6.2 今后研究展望 | 第52-54页 |
| 参考文献 | 第54-56页 |
| 攻读硕士期间发表的论文 | 第56-57页 |
| 致谢 | 第57页 |