摘要 | 第4-6页 |
Abstract | 第6-7页 |
第1章 绪论 | 第11-19页 |
1.1 课题研究的目的与意义 | 第11-12页 |
1.1.1 课题来源 | 第11页 |
1.1.2 研究的目的和意义 | 第11-12页 |
1.2 国内外研究现状 | 第12-16页 |
1.2.1 克隆代码检测的研究现状与分析 | 第12-15页 |
1.2.2 克隆代码重构的研究现状与分析 | 第15-16页 |
1.3 课题研究的主要内容及章节安排 | 第16-19页 |
第2章 系统的需求分析与总体设计 | 第19-23页 |
2.1 功能性需求 | 第19-20页 |
2.1.1 语法相似克隆代码检测模块 | 第19页 |
2.1.2 功能等价克隆代码检测模块 | 第19-20页 |
2.1.3 功能等价克隆代码重构模块 | 第20页 |
2.1.4 结构语义相似克隆代码检测模块 | 第20页 |
2.1.5 结构语义相似克隆代码重构模块 | 第20页 |
2.2 非功能性需求 | 第20-21页 |
2.3 系统总体设计 | 第21-22页 |
2.4 本章小结 | 第22-23页 |
第3章 无定型克隆代码检测与重构系统的设计 | 第23-39页 |
3.1 语法相似克隆代码检测模块的设计 | 第23-24页 |
3.2 功能等价克隆代码检测模块的设计 | 第24-29页 |
3.3 功能等价克隆代码重构模块的设计 | 第29-31页 |
3.4 结构语义相似克隆代码检测模块的设计 | 第31-36页 |
3.5 结构语义相似克隆代码重构模块的设计 | 第36-38页 |
3.6 本章小结 | 第38-39页 |
第4章 无定型克隆代码检测及重构系统的实现 | 第39-70页 |
4.1 语法相似克隆代码检测模块的实现 | 第39页 |
4.2 功能等价克隆代码检测模块的实现 | 第39-45页 |
4.2.1 基于 IOT-Behavior 的静态分析算法 | 第39-41页 |
4.2.2 测试数据生成算法 | 第41-42页 |
4.2.3 功能等价克隆代码的动态测试 | 第42-45页 |
4.3 功能等价克隆代码重构的实现 | 第45-49页 |
4.3.1 运行时间优先算法的实现 | 第45-46页 |
4.3.2 静态特征优先算法的实现 | 第46-47页 |
4.3.3 参数匹配算法的实现 | 第47-49页 |
4.4 结构语义相似克隆代码检测模块的实现 | 第49-62页 |
4.4.1 创建抽象语法树 | 第49-50页 |
4.4.2 符号表的计算 | 第50-52页 |
4.4.3 基于语法树的滑动窗口算法 | 第52-54页 |
4.4.4 基于抽象语法树的过程提取 | 第54-56页 |
4.4.5 代码片段特征提取 | 第56页 |
4.4.6 抽象语法树的标准化 | 第56-59页 |
4.4.7 变量重命名 | 第59-60页 |
4.4.8 代码序列化 | 第60页 |
4.4.9 代码片段相似度计算 | 第60-62页 |
4.5 结构语义相似克隆代码重构模块的实现 | 第62-69页 |
4.5.1 计算代码片段间差异点 | 第62-65页 |
4.5.2 可重构性判别 | 第65-66页 |
4.5.3 差异点重构 | 第66-69页 |
4.6 本章小结 | 第69-70页 |
第5章 无定型克隆代码检测与重构系统的测试 | 第70-84页 |
5.1 测试环境 | 第70页 |
5.2 测试方案 | 第70-71页 |
5.3 语法相似克隆代码检测模块的测试 | 第71-72页 |
5.4 功能等价克隆代码检测模块的测试 | 第72-73页 |
5.4.1 测试数据生成测试 | 第72-73页 |
5.4.2 功能等价克隆代码检测模块的集成测试 | 第73页 |
5.5 功能等价克隆代码重构模块的测试 | 第73-75页 |
5.5.1 静态特征优选测试 | 第73-74页 |
5.5.2 运行时间优选的测试 | 第74页 |
5.5.3 参数匹配算法的测试 | 第74-75页 |
5.6 结构语义相似克隆代码检测模块的测试 | 第75-76页 |
5.6.1 标准化重命名的测试 | 第75页 |
5.6.2 结构语义相似克隆代码检测模块的集成测试 | 第75-76页 |
5.7 结构语义相似克隆代码重构模块的测试 | 第76-78页 |
5.8 实验结果与分析 | 第78-83页 |
5.8.1 语法相似克隆代码检测模块的实验 | 第78-79页 |
5.8.2 功能等价克隆代检测模块的实验 | 第79-80页 |
5.8.3 结构语义相似克隆代码检测模块的集成实验 | 第80-82页 |
5.8.4 实验分析 | 第82-83页 |
5.9 本章小结 | 第83-84页 |
结论 | 第84-86页 |
参考文献 | 第86-91页 |
致谢 | 第91页 |