代码克隆扩展分析及管理技术研究
摘要 | 第6-8页 |
Abstract | 第8-9页 |
第1章 绪论 | 第10-17页 |
1.1 研究背景 | 第10-11页 |
1.2 研究现状 | 第11-13页 |
1.3 问题分析 | 第13-14页 |
1.4 本文主要工作 | 第14-16页 |
1.5 篇章结构 | 第16-17页 |
第2章 相关研究工作 | 第17-32页 |
2.1 代码克隆术语约定 | 第17-19页 |
2.2 代码克隆检测和识别技术研究 | 第19-27页 |
2.2.1 基本克隆检测 | 第19-22页 |
2.2.2 结构克隆识别 | 第22-23页 |
2.2.3 克隆数据可视化及查询 | 第23-25页 |
2.2.4 代码克隆演化分析 | 第25-27页 |
2.2.5 克隆差异识别及汇总 | 第27页 |
2.3 代码克隆经验研究 | 第27-30页 |
2.3.1 克隆代码对外部质量的影响 | 第27-28页 |
2.3.2 克隆代码的变化一致性 | 第28页 |
2.3.3 克隆代码的稳定性 | 第28页 |
2.3.4 克隆代码的设计意图 | 第28-29页 |
2.3.5 克隆演化规律 | 第29页 |
2.3.6 开发者对待克隆代码的态度 | 第29-30页 |
2.4 代码克隆管理技术和方法研究 | 第30页 |
2.4.1 克隆代码的移除 | 第30页 |
2.4.2 克隆代码的关联编辑和自动同步 | 第30页 |
2.5 小结 | 第30-32页 |
第3章 问题分析和研究框架 | 第32-38页 |
3.1 问题分析 | 第32-35页 |
3.2 研究框架 | 第35-38页 |
第4章 结构克隆的分析与可视化 | 第38-59页 |
4.1 方法介绍 | 第38-39页 |
4.2 基本克隆检测 | 第39-45页 |
4.2.1 技术指标 | 第40-41页 |
4.2.2 研究示例 | 第41-43页 |
4.2.3 代码预处理 | 第43-44页 |
4.2.4 克隆检测 | 第44-45页 |
4.3 基于区域密度的结构克隆识别 | 第45-47页 |
4.4 基于FDA的结构克隆数据可视化 | 第47-48页 |
4.5 实验研究 | 第48-57页 |
4.5.1 实验设置 | 第48-49页 |
4.5.2 实验结果 | 第49-55页 |
4.5.3 实验讨论 | 第55-57页 |
4.6 小结 | 第57-59页 |
第5章 代码克隆的深层原因分析 | 第59-84页 |
5.1 克隆代码的生命周期模型 | 第59-61页 |
5.1.1 暂态克隆和基线克隆 | 第60页 |
5.1.2 已移除的克隆 | 第60页 |
5.1.3 偶然克隆 | 第60-61页 |
5.1.4 克隆引入的场景 | 第61页 |
5.1.5 克隆存续的场景 | 第61页 |
5.2 调研整体设计 | 第61-65页 |
5.2.1 调研目标 | 第61-62页 |
5.2.2 案例研究对象 | 第62-63页 |
5.2.3 调研步骤 | 第63-65页 |
5.3 调研过程 | 第65-72页 |
5.3.1 代码分析 | 第65-68页 |
5.3.2 问卷设计 | 第68-72页 |
5.3.3 调查过程 | 第72页 |
5.4 调研结果分析 | 第72-80页 |
5.4.1 开发者对待克隆的态度 | 第72页 |
5.4.2 克隆引入的原因 | 第72-74页 |
5.4.3 从暂态克隆到基线克隆 | 第74-76页 |
5.4.4 基线克隆的移除和持续 | 第76-78页 |
5.4.5 偶然克隆 | 第78-80页 |
5.5 对克隆管理的启示 | 第80-82页 |
5.5.1 上下文相关的克隆管理 | 第80-81页 |
5.5.2 克隆移除的关键时间节点 | 第81-82页 |
5.5.3 寻找改善克隆实践的杠杆解 | 第82页 |
5.6 小结 | 第82-84页 |
第6章 按需定制的代码克隆监控 | 第84-106页 |
6.1 问题分析 | 第84-87页 |
6.1.1 案例场景 | 第84-85页 |
6.1.2 以开发者和相关涉众为中心 | 第85-86页 |
6.1.3 克隆事件的在线监控 | 第86页 |
6.1.4 克隆管理的上下文感知 | 第86-87页 |
6.2 代码克隆事件监控系统 | 第87-89页 |
6.3 代码克隆监控信息模型 | 第89-92页 |
6.4 代码克隆事件监控语言 | 第92-97页 |
6.4.1 CCEML语法 | 第92-95页 |
6.4.2 CCEML范例 | 第95-97页 |
6.5 案例研究 | 第97-105页 |
6.5.1 研究目标 | 第97-98页 |
6.5.2 实现方案 | 第98-99页 |
6.5.3 实验过程和结果 | 第99-104页 |
6.5.4 实验讨论 | 第104-105页 |
6.6 小结 | 第105-106页 |
第7章 总结与展望 | 第106-109页 |
7.1 主要内容回顾 | 第106-107页 |
7.2 本文的主要贡献 | 第107-108页 |
7.3 下一步的工作 | 第108-109页 |
参考文献 | 第109-115页 |
附录A 代码克隆原因调研问卷 | 第115-120页 |
附录B CCEML语法文件 | 第120-122页 |
致谢 | 第122-124页 |
攻读博士学位期间发表论文情况 | 第124-125页 |