中文摘要 | 第3-4页 |
abstract | 第4-5页 |
第1章 绪论 | 第8-12页 |
1.1 研究背景及意义 | 第8-9页 |
1.2 研究目标及主要工作 | 第9-10页 |
1.3 本文贡献及组织结构 | 第10-12页 |
第2章 相关研究工作 | 第12-19页 |
2.1 相关术语说明 | 第12-14页 |
2.1.1 克隆代码 | 第12-13页 |
2.1.2 克隆谱系 | 第13-14页 |
2.2 国内外研究现状及分析 | 第14-17页 |
2.2.1 克隆代码检测 | 第14-15页 |
2.2.2 克隆代码跟踪及演化模式 | 第15-16页 |
2.2.3 克隆代码与Bugs的关系 | 第16-17页 |
2.3 小结 | 第17-19页 |
第3章 基于演化模式克隆代码Bugs倾向性分析 | 第19-41页 |
3.1 克隆代码检测 | 第20-21页 |
3.2 克隆代码Bugs标注 | 第21-22页 |
3.3 相邻版本克隆映射 | 第22-30页 |
3.3.1 基于Token编辑距离克隆群初步映射 | 第23-25页 |
3.3.2 基于修改日志克隆片段精准映射 | 第25-29页 |
3.3.3 克隆群映射结果修正 | 第29-30页 |
3.4 短期演化模式识别 | 第30-34页 |
3.4.1 克隆群视角短期演化模式识别 | 第30-31页 |
3.4.2 克隆片段视角短期演化模式识别 | 第31-33页 |
3.4.3 克隆代码内容视角短期演化模式识别 | 第33-34页 |
3.5 多版本克隆谱系构建 | 第34-37页 |
3.6 长期演化模式识别 | 第37-38页 |
3.7 分析不同演化模式下克隆代码Bugs倾向性 | 第38-41页 |
3.7.1 秩和检验介绍 | 第38-39页 |
3.7.2 Bugs倾向性分析方法介绍 | 第39-41页 |
第4章 实验及实验结果分析 | 第41-60页 |
4.1 实验数据集 | 第41-42页 |
4.2 评价方法 | 第42-43页 |
4.3 关键参数选取 | 第43-44页 |
4.4 克隆代码演化痕迹构建实验 | 第44-53页 |
4.4.1 原型工具CloneCodeTracker的实现 | 第44-46页 |
4.4.2 原型工具CloneCodeTracker使用介绍 | 第46-48页 |
4.4.3 克隆代码演化痕迹构建实验结果分析 | 第48-52页 |
4.4.4 相邻版本克隆映射同类实验对比分析 | 第52-53页 |
4.5 基于演化模式克隆代码Bugs倾向性分析实验 | 第53-60页 |
4.5.1 基于短期演化模式克隆代码Bugs倾向性分析 | 第53-57页 |
4.5.2 基于长期演化模式克隆代码Bugs倾向性分析 | 第57-58页 |
4.5.3 克隆管理或重构建议 | 第58-60页 |
第5章 结论与展望 | 第60-62页 |
5.1 研究结论 | 第60-61页 |
5.2 研究的不足及受限 | 第61页 |
5.3 后续工作及研究展望 | 第61-62页 |
参考文献 | 第62-67页 |
致谢 | 第67-68页 |
攻读学位期间发表的论文及参与的项目 | 第68-69页 |
附录1 实验中使用的开源软件来源 | 第69-70页 |
附录2 实验选取版本详细信息 | 第70-71页 |
附录3 Mann-Whitney U Test临界值表 | 第71页 |