摘要 | 第3-5页 |
Abstract | 第5-6页 |
第一章 绪论 | 第14-36页 |
1.1 软件工程数据挖掘简介及意义 | 第14页 |
1.2 相关研究进展 | 第14-33页 |
1.2.1 代码编写 | 第16-20页 |
1.2.2 提交修改 | 第20-22页 |
1.2.3 缺陷分派 | 第22-24页 |
1.2.4 缺陷重现 | 第24-25页 |
1.2.5 理解程序 | 第25-32页 |
1.2.6 设计推究 | 第32-33页 |
1.3 本文研究内容 | 第33-34页 |
1.4 论文结构 | 第34-36页 |
第二章 程序命名预测 | 第36-48页 |
2.1 引言 | 第36-38页 |
2.2 背景知识 | 第38-40页 |
2.2.1 Java Method | 第38页 |
2.2.2 文本分类技术 | 第38-40页 |
2.3 方法 | 第40-42页 |
2.3.1 技术路线 | 第40页 |
2.3.2 分析器 | 第40页 |
2.3.3 特征匹配器 | 第40-42页 |
2.3.4 词性标注器 | 第42页 |
2.3.5 SVM分类器 | 第42页 |
2.4 实验 | 第42-45页 |
2.4.1 实验配置 | 第43页 |
2.4.2 实验效果 | 第43-44页 |
2.4.3 符号特征与数值特征 | 第44-45页 |
2.4.4 进一步验证 | 第45页 |
2.5 讨论 | 第45-47页 |
2.6 小结 | 第47-48页 |
第三章 TPLAG:一种高效且健壮的代码剽窃检测方法 | 第48-72页 |
3.1 引言 | 第48-49页 |
3.2 基于TDG的代码剽窃检测 | 第49-56页 |
3.2.1 类型依赖图 | 第50-54页 |
3.2.2 近似子图匹配 | 第54-55页 |
3.2.3 流关系的度量(FRS) | 第55-56页 |
3.2.4 代码剽窃检测的搜素空间修剪 | 第56页 |
3.2.5 TPLAG的实现 | 第56页 |
3.3 算法分析 | 第56-61页 |
3.3.1 剽窃伪装 | 第57-58页 |
3.3.2 有效性 | 第58-60页 |
3.3.3 效率 | 第60-61页 |
3.3.3.1 子图匹配 | 第60页 |
3.3.3.2 FRS计算 | 第60-61页 |
3.4 实验结果 | 第61-68页 |
3.4.1 实验配置 | 第62页 |
3.4.1.1 实验数据 | 第62页 |
3.4.1.2 生成TDG的配置 | 第62页 |
3.4.1.3 近似子图匹配的配置 | 第62页 |
3.4.2 TPLAG的健壮性分析 | 第62-65页 |
3.4.3 TPLAG的效率 | 第65-67页 |
3.4.4 过滤器的效率 | 第67-68页 |
3.5 讨论 | 第68-70页 |
3.5.1 TPLAG的查准率 | 第68页 |
3.5.2 TPLAG的扩展 | 第68-69页 |
3.5.3 为何提出TDG模型? | 第69页 |
3.5.4 TDG的无歧义性 | 第69-70页 |
3.5.5 可能影响TPLAG的伪装方法 | 第70页 |
3.6 小结 | 第70-72页 |
第四章 基于LDA的缺陷分派 | 第72-82页 |
4.1 引言 | 第72-73页 |
4.2 背景 | 第73-75页 |
4.2.1 缺陷报告 | 第73-74页 |
4.2.2 LDA主题模型 | 第74-75页 |
4.3 方法 | 第75-76页 |
4.4 实验 | 第76-79页 |
4.5 讨论 | 第79-81页 |
4.5.1 为何分派的准确率较低? | 第79-80页 |
4.5.2 为何LDA的最佳维度数高于LSA? | 第80页 |
4.5.3 LDA是否比LSA更有效率? | 第80-81页 |
4.5.4 LDA为何有效? | 第81页 |
4.6 结论与展望 | 第81-82页 |
第五章 基于主题模型的软件缺陷报告质量评估 | 第82-92页 |
5.1 引言 | 第82-83页 |
5.2 方法 | 第83-84页 |
5.2.1 预处理 | 第83页 |
5.2.2 主题模型的应用 | 第83-84页 |
5.2.3 主题质量评估 | 第84页 |
5.2.4 缺陷报告质量评估 | 第84页 |
5.3 实验评价 | 第84-89页 |
5.3.1 实验配置 | 第84-85页 |
5.3.2 主题质量评估 | 第85-86页 |
5.3.3 缺陷分派 | 第86-87页 |
5.3.4 缺陷报告质量评估 | 第87-89页 |
5.4 结论 | 第89-92页 |
第六章 缺陷报告上的主题发现和事件跟踪 | 第92-110页 |
6.1 引言 | 第92-93页 |
6.2 背景知识 | 第93-94页 |
6.2.1 缺陷报告 | 第93-94页 |
6.2.2 事件检测 | 第94页 |
6.2.2.1 时间序列 | 第94页 |
6.2.2.2 为何要检测显著事件? | 第94页 |
6.3 缺陷报告上的主题分析 | 第94-97页 |
6.3.1 在缺陷报告上应用LDA | 第95页 |
6.3.2 建立主题时间序列 | 第95-96页 |
6.3.3 主题序列上的事件检测 | 第96页 |
6.3.4 实验配置 | 第96-97页 |
6.4 实验 | 第97-105页 |
6.4.1 Eclipse beta上的显著主题 | 第98-99页 |
6.4.2 Eclipse 1.0上的显著主题 | 第99-100页 |
6.4.3 Eclipse 2.0上的显著主题 | 第100-102页 |
6.4.4 Eclipse 2.1上的显著主题 | 第102-103页 |
6.4.5 Eclipse 3.0上的显著主题 | 第103-104页 |
6.4.6 不显著主题 | 第104-105页 |
6.5 讨论 | 第105-107页 |
6.5.1 本文的方法为何有效? | 第105-106页 |
6.5.2 实际应用 | 第106-107页 |
6.5.2.1 主题跟踪 | 第107页 |
6.5.2.2 事件预测 | 第107页 |
6.6 结论与展望 | 第107-110页 |
第七章 结论与展望 | 第110-116页 |
7.1 本文工作的总结 | 第110页 |
7.2 未来工作的展望 | 第110-116页 |
7.2.1 现有问题的高性能算法 | 第112-113页 |
7.2.2 复杂问题的解决方案 | 第113-114页 |
7.2.3 海量数据的挖掘算法 | 第114页 |
7.2.4 针对软件工程新理念的挖掘 | 第114页 |
7.2.5 数据挖掘新技术的引入 | 第114-116页 |
参考文献 | 第116-134页 |
发表/录用论文 | 第134页 |
已投稿论文 | 第134-136页 |
致谢 | 第136-137页 |