代码克隆检测及克隆Bug发现研究
摘要 | 第5-7页 |
ABSTRACT | 第7-9页 |
第1章 绪论 | 第17-23页 |
1.1 研究背景及意义 | 第17-18页 |
1.2 研究现状和发展趋势 | 第18-19页 |
1.3 本文研究内容 | 第19-21页 |
1.3.1 Large-gap代码克隆检测 | 第20页 |
1.3.2 代码克隆度量分析 | 第20-21页 |
1.3.3 代码克隆相关Bug检测 | 第21页 |
1.4 论文组织 | 第21-23页 |
第2章 相关研究工作 | 第23-34页 |
2.1 术语和概念 | 第23-26页 |
2.1.1 克隆定义 | 第23-24页 |
2.1.2 克隆类型 | 第24-25页 |
2.1.3 克隆粒度和大小 | 第25-26页 |
2.2 代码克隆检测 | 第26-29页 |
2.3 代码克隆分析 | 第29-31页 |
2.4 代码克隆相关Bug检测 | 第31-33页 |
2.5 本章小结 | 第33-34页 |
第3章 Large-gap代码克隆检测 | 第34-58页 |
3.1 研究问题 | 第34-35页 |
3.2 研究动机 | 第35-37页 |
3.3 克隆检测算法:CCAligner | 第37-46页 |
3.3.1 CCAligner算法框架 | 第37-38页 |
3.3.2 词法分析过程设计 | 第38-39页 |
3.3.3 克隆检测过程设计 | 第39-46页 |
3.4 实验结果及讨论 | 第46-57页 |
3.4.1 最佳参数选取实验 | 第46-48页 |
3.4.2 Large-gap代码克隆检测实验 | 第48-54页 |
3.4.3 一般代码克隆检测实验 | 第54-57页 |
3.5 本章小结 | 第57-58页 |
第4章 代码克隆度量分析 | 第58-78页 |
4.1 研究问题 | 第58-59页 |
4.2 研究动机 | 第59-60页 |
4.3 克隆度量分析方法 | 第60-66页 |
4.3.1 克隆分析的度量设计 | 第60-62页 |
4.3.2 克隆分析的工具实现 | 第62-66页 |
4.4 实证研究 | 第66-77页 |
4.4.1 不同软件的对比分析 | 第66-74页 |
4.4.2 同一软件不同版本的对比分析 | 第74-77页 |
4.5 本章小结 | 第77-78页 |
第5章 代码克隆相关Bug检测 | 第78-100页 |
5.1 研究问题 | 第78-79页 |
5.2 研究动机 | 第79-80页 |
5.3 基于深度学习的检测模型:DeepCbd | 第80-87页 |
5.3.1 形式化定义 | 第80页 |
5.3.2 代码克隆相关Bug的数据收集和处理 | 第80-82页 |
5.3.3 代码表示的设计和提取 | 第82-84页 |
5.3.4 神经网络的设计和实现 | 第84-87页 |
5.4 实验结果及讨论 | 第87-99页 |
5.4.1 数据收集结果 | 第88-89页 |
5.4.2 代码表示的分析实验 | 第89-91页 |
5.4.3 与机器学习方法的比较实验 | 第91-94页 |
5.4.4 与已有研究工作的比较实验 | 第94-97页 |
5.4.5 10折交叉验证实验 | 第97-98页 |
5.4.6 泛化能力验证实验 | 第98-99页 |
5.5 本章小结 | 第99-100页 |
第6章 总结 | 第100-105页 |
6.1 本文工作 | 第100-102页 |
6.2 本文贡献与创新之处 | 第102-103页 |
6.3 进一步的工作 | 第103-105页 |
参考文献 | 第105-114页 |
附录A 软件和文献资源 | 第114-116页 |
A.1 软件资源 | 第114-115页 |
A.1.1 代码克隆检测工具 | 第114页 |
A.1.2 代码克隆评估数据集和工具 | 第114-115页 |
A.2 文献资源 | 第115-116页 |
A.2.1 学术期刊 | 第115页 |
A.2.2 学术会议 | 第115-116页 |
致谢 | 第116-118页 |
在读期间发表的学术论文与取得的研究成果 | 第118页 |