摘要 | 第4-5页 |
Abstract | 第5页 |
第1章 绪论 | 第8-14页 |
1.1 课题研究的目的与意义 | 第8-9页 |
1.1.1 课题来源 | 第8页 |
1.1.2 研究的目的和意义 | 第8-9页 |
1.2 国内外研究现状及分析 | 第9-12页 |
1.2.1 重复代码检测的研究现状及分析 | 第9-11页 |
1.2.2 测试用例的自动生成技术的研究现状及分析 | 第11页 |
1.2.3 过程提取技术的研究现状及分析 | 第11-12页 |
1.2.4 聚类算法在软件工程领域的研究现状及分析 | 第12页 |
1.3 课题研究的主要内容及章节安排 | 第12-14页 |
第2章 功能等价的重复代码检测方法涉及的关键技术 | 第14-25页 |
2.1 抽象语法树和程序依赖图 | 第14-19页 |
2.1.1 词法和语法分析方法 | 第14-17页 |
2.1.2 抽象语法树 | 第17页 |
2.1.3 程序依赖图 | 第17-19页 |
2.2 变量的定值-使用信息分析 | 第19-21页 |
2.3 聚类分析 | 第21-22页 |
2.4 滑动窗口方法 | 第22页 |
2.5 过程提取 | 第22-23页 |
2.5.1 代码片段的输入和输出变量 | 第23页 |
2.5.2 代码片段转换为函数 | 第23页 |
2.6 输入变量的自动随机赋值 | 第23页 |
2.7 动态测试 | 第23-24页 |
2.8 本章小结 | 第24-25页 |
第3章 功能等价的重复代码的检测方法研究 | 第25-56页 |
3.1 基于 K-最近邻聚类的功能等价的重复代码的检测模型 | 第26-27页 |
3.2 源程序的依赖关系分析 | 第27-32页 |
3.2.1 对源程序的预处理 | 第27-28页 |
3.2.2 抽象语法树和控制依赖图的生成 | 第28-29页 |
3.2.3 数据流分析 | 第29-32页 |
3.3 获取动态测试的候选代码片段 | 第32-40页 |
3.3.1 利用滑动窗口方法获取代码片段 | 第32页 |
3.3.2 利用 K-最近邻聚类获取功能内聚的代码片段 | 第32-40页 |
3.4 过程提取 | 第40-49页 |
3.4.1 识别代码片段的输入和输出变量 | 第42-47页 |
3.4.2 将代码片段转换为函数 | 第47-49页 |
3.5 对函数的输入变量实现自动随机赋值 | 第49-51页 |
3.6 对函数执行动态测试并分类 | 第51-55页 |
3.6.1 对函数执行动态测试 | 第52页 |
3.6.2 根据输出结果对函数进行分类 | 第52-55页 |
3.7 本章小结 | 第55-56页 |
第4章 功能等价的重复代码检测系统的设计与实现 | 第56-66页 |
4.1 系统实现环境 | 第56页 |
4.2 系统的设计与实现 | 第56-59页 |
4.2.1 系统的设计 | 第56-57页 |
4.2.2 系统的实现 | 第57-59页 |
4.3 系统的测试与实验结果分析 | 第59-65页 |
4.3.1 系统的测试 | 第59页 |
4.3.2 系统的实验结果与分析 | 第59-65页 |
4.4 本章小结 | 第65-66页 |
结论 | 第66-67页 |
参考文献 | 第67-71页 |
攻读硕士学位期间发表的论文及其它成果 | 第71-73页 |
致谢 | 第73页 |