摘要 | 第4-7页 |
Abstract | 第7-9页 |
第一章 绪论 | 第18-32页 |
1.1 软件可追踪性自动化分析及应用的背景与含义 | 第20-26页 |
1.1.1 软件可追踪性产生的背景 | 第20-21页 |
1.1.2 软件可追踪性的概念 | 第21-22页 |
1.1.3 自动化分析问题的定义与抽象 | 第22-24页 |
1.1.4 可追踪性自动化分析的应用场景 | 第24-26页 |
1.2 软件可追踪性自动化分析及应用的研究现状 | 第26-27页 |
1.3 研究思路 | 第27-29页 |
1.3.1 代码依赖与可追踪性自动化分析 | 第27-28页 |
1.3.2 我们的研究思路 | 第28-29页 |
1.4 本文的主要工作及贡献 | 第29-30页 |
1.5 论文组织 | 第30-32页 |
第二章 相关工作 | 第32-48页 |
2.1 软件可追踪性研究框架 | 第32-33页 |
2.2 概念指派问题的自动化分析 | 第33-43页 |
2.2.1 概念指派下三类典型研究的联系与区别 | 第34-35页 |
2.2.2 交互式方法 | 第35-36页 |
2.2.3 动态执行方法 | 第36-37页 |
2.2.4 IR方法 | 第37-40页 |
2.2.5 以IR方法为核心的混合式方法 | 第40-43页 |
2.3 可追踪性生成与维护下的自动化分析技术 | 第43-45页 |
2.3.1 追踪性生成 | 第43-44页 |
2.3.2 可追踪性维护 | 第44页 |
2.3.3 可追踪性验证 | 第44-45页 |
2.4 获取代码中的数据依赖 | 第45-46页 |
2.5 本章小结 | 第46-48页 |
第三章 代码依赖与可追踪性分析的关联性验证 | 第48-68页 |
3.1 背景知识 | 第49-51页 |
3.1.1 需求到代码可追踪性 | 第49页 |
3.1.2 函数之间的调用与数据依赖 | 第49-51页 |
3.2 研究问题 | 第51页 |
3.3 技术框架 | 第51-60页 |
3.3.1 步骤1:准备动态分析 | 第52-54页 |
3.3.2 步骤2:捕获函数调用 | 第54-55页 |
3.3.3 步骤3:捕获数据依赖 | 第55-56页 |
3.3.4 步骤4:追踪线索分类 | 第56-60页 |
3.4 实验设计 | 第60-63页 |
3.4.1 实验系统 | 第60-61页 |
3.4.2 实验度量 | 第61-63页 |
3.4.3 实验设计 | 第63页 |
3.5 实验结果与分析 | 第63-67页 |
3.5.1 RQ1:函数调用依赖是否有助于理解需求到代码可追踪性? | 第63-64页 |
3.5.2 RQ2:函数数据依赖是否有助于理解需求到代码可追踪性? | 第64页 |
3.5.3 RQ3:函数调用依赖和数据依赖是否在帮助理解需求到代码可追踪性上互相补充? | 第64页 |
3.5.4 RQ4:代码中的其它特征是否有助于理解需求到代码可追踪性? | 第64-65页 |
3.5.5 结果有效性分析与相关讨论 | 第65-67页 |
3.6 本章小结 | 第67-68页 |
第四章 基于代码依赖的可追踪性自动化验证 | 第68-92页 |
4.1 问题分析 | 第68-71页 |
4.1.1 互补性发现的客观性分析 | 第68-69页 |
4.1.2 可追踪性验证与自动化分析 | 第69-70页 |
4.1.3 基于邻居函数的可追踪性验证实例 | 第70-71页 |
4.2 技术框架 | 第71-76页 |
4.2.1 捕获代码依赖关系 | 第71-72页 |
4.2.2 建立CDGraph | 第72-73页 |
4.2.3 idtf分类算法 | 第73-76页 |
4.3 实验设计 | 第76-82页 |
4.3.1 实验系统 | 第76-78页 |
4.3.2 实验目标与研究问题 | 第78-79页 |
4.3.3 实验度量 | 第79-80页 |
4.3.4 实验设计 | 第80-82页 |
4.4 实验结果与分析 | 第82-88页 |
4.4.1 RQ1:函数调用依赖和数据依赖是否在帮助理解需求到代码可追踪性上互相补充? | 第82-83页 |
4.4.2 RQ2:函数调用和数据依赖对理解需求到代码可追踪性的互补作用是否受到可追踪性粒度的影响? | 第83-84页 |
4.4.3 RQ3:函数调用和数据依赖对理解需求到代码可追踪性的互补作用是否受到可追踪性中错误的影响? | 第84-86页 |
4.4.4 RQ4:函数调用和数据依赖对理解需求到代码可追踪性的互补作用是否受到可追踪性中缺失的影响? | 第86页 |
4.4.5 RQ5:idtf分类算法能否改进需求到代码可追踪性自动化验证? | 第86-88页 |
4.5 有效性分析与相关讨论 | 第88-89页 |
4.6 本章小结 | 第89-92页 |
第五章 基于代码依赖与IR的可追踪性自动化生成 | 第92-112页 |
5.1 问题分析 | 第92-94页 |
5.2 技术框架 | 第94-105页 |
5.2.1 代码依赖关系的组织与捕获 | 第94-96页 |
5.2.2 计算紧密度并建立CDCGraph | 第96-99页 |
5.2.3 生成IR候选线索列表 | 第99-100页 |
5.2.4 利用紧密度分析重排序候选列表 | 第100-105页 |
5.3 实验设计 | 第105-108页 |
5.3.1 实验系统 | 第105页 |
5.3.2 实验度量 | 第105-106页 |
5.3.3 阈值校准 | 第106-107页 |
5.3.4 研究问题与实验设计 | 第107-108页 |
5.4 实验结果与分析 | 第108-110页 |
5.5 有效性分析 | 第110-111页 |
5.6 本章小结 | 第111-112页 |
第六章 基于变更代码分析与IR的过时需求识别 | 第112-126页 |
6.1 问题分析 | 第112-113页 |
6.2 技术框架 | 第113-118页 |
6.2.1 捕获相关代码变更 | 第114页 |
6.2.2 计算紧密度与建立CDCGraph | 第114-116页 |
6.2.3 基于CDCGraph抽取关键词 | 第116-117页 |
6.2.4 配关键词与需求 | 第117-118页 |
6.3 实验设计 | 第118-121页 |
6.3.1 方法配置 | 第118页 |
6.3.2 实验系统 | 第118-119页 |
6.3.3 实验度量 | 第119-120页 |
6.3.4 实验设计 | 第120-121页 |
6.4 实验结果与分析 | 第121-123页 |
6.5 有效性分析 | 第123-124页 |
6.6 本章小结 | 第124-126页 |
第七章 总结与展望 | 第126-130页 |
7.1 工作总结 | 第126-128页 |
7.2 研究展望 | 第128-130页 |
参考文献 | 第130-142页 |
简历与科研成果 | 第142-144页 |
致谢 | 第144-146页 |