在软件过程中,不同的实体,例如,需求、组件、体系结构、文档、产品和人等,都是相互依赖而存在的,其中任意实体发生变化,都可能导致其他相关实体的变化。各个实体之间的紧密联系导致变更成为软件过程风险的一个重要原因。因此,主动预测软件需求变更并积极开展软件过程改进,是保持和提升软件整体质量的有效方法。首先,系统地论述了软件需求变更与软件过程的相关研究与实践背景,分析了需求变更与软件过程的关系。然后,对软件需求变更及变更间关联关系进行了分析,为软件开发和维护过程中利益相关者做出有效管理决策提供了有价值的信息。最后,使用系统动力学方法对软件需求变更管理过程进行了仿真建模,并根据模型运行的仿真结果来分析软件过程改进效果。
样章试读
目录
- 目录
前言
第1章 软件需求变更与软件过程 1
1.1 软件需求变更概述 1
1.2 软件需求变更与软件过程 6
1.2.1 基于过程改进的变更管理 6
1.2.2 软件需求变更对软件过程的影响 9
1.3 本书结构 10
参考文献 10
第2章 需求变更对软件过程影响的研究进展 13
2.1 软件需求变更相关文献概述 13
2.2 文献综述研究方法 34
2.2.1 研究问题 34
2.2.2 检索策略 35
2.2.3 文献选择 36
2.3 研究现状总结与分析 39
2.3.1 文献基本情况统计 39
2.3.2 文献研究方法 50
2.3.3 软件需求变更影响的软件过程维度 59
2.4 小结 68
参考文献 69
第3章 软件需求变更分析 74
3.1 软件需求变更 74
3.1.1 研究现状及相关工作 78
3.1.2 需求变更分析框架 80
3.2 需求变更分析及预测 81
3.2.1 预测指标定义 81
3.2.2 预测指标选择 83
3.2.3 预测模型性能综合评价指标 84
3.3 关联需求变更请求重要性分析 85
3.3.1 变更请求关联关系 85
3.3.2 变更请求关联网络 87
3.3.3 变更请求关联网络度量指标 88
3.3.4 变更请求重要性排序 90
3.4 开源软件项目案例研究 92
3.4.1 变更请求关闭可能性预测 92
3.4.2 变更请求重要性排序 99
3.4.3 实验结果对比 102
3.5 小结 104
参考文献 107
第4章 基于技术债务的软件需求变更影响分析 110
4.1 软件技术债务 110
4.1.1 软件技术债务分类 111
4.1.2 软件技术债务来源 112
4.1.3 软件技术债务的管理和度量 113
4.2 软件需求变更技术债务 114
4.2.1 软件需求变更技术债务定义和量化 114
4.2.2 基于边际贡献的需求变更优先级 120
4.3 软件需求变更技术债务案例研究 121
4.3.1 需求变更数据集 121
4.3.2 数据处理 124
4.3.3 软件需求变更技术债务可视化 128
4.3.4 需求变更技术债务分析 129
4.4 基于边际贡献的需求变更技术债务案例研究 132
4.4.1 数据收集与处理 132
4.4.2 需求变更边际贡献计算 134
4.5 小结 138
参考文献 138
第5章 面向需求变更的软件过程改进仿真 141
5.1 系统动力学与软件需求变更管理 141
5.1.1 系统动力学概述 142
5.1.2 软件需求变更管理 143
5.1.3 相关工作 146
5.2 软件需求变更过程系统动力学建模 148
5.2.1 软件需求变更过程系统动力学仿真建模框架 149
5.2.2 开源软件需求变更过程及行为分析 151
5.2.3 开源软件需求变更过程关键因素抽取及因果关系分析 152
5.3 开源软件需求变更过程系统动力学建模 154
5.3.1 人力资源子系统 155
5.3.2 需求变更管理子系统 156
5.3.3 需求变更实现子系统 158
5.3.4 质量管理子系统 158
5.3.5 进度控制子系统 159
5.4 软件需求变更过程系统动力学模型检测 160
5.4.1 边界充分检测 162
5.4.2 结构评估检测 164
5.4.3 量纲一致性检测 166
5.4.4 极端条件检测 167
5.4.5 积分错误检测 167
5.4.6 行为重现与异常检测 169
5.4.7 家族成员检测 171
5.4.8 灵敏度分析检测 172
5.4.9 系统改进检测 174
5.5 软件需求变更过程仿真案例研究 174
5.5.1 开源软件基线数据收集和清理 175
5.5.2 开源软件基线仿真结果分析 175
5.5.3 软件过程改进仿真 180
5.6 小结 188
参考文献 188