第1章 软件质量管理体系概述 1
1.1 软件质量复杂度的来源 2
1.2 “过程”在软件研发中的重要性 3
1.3 小结 7
1.4 思考题 7
第2章 软件质量管理的检查方式——验证 8
2.1 软件验证的最佳实践 9
2.2 软件质量大师的观点 13
2.3 常用的验证方法 15
2.3.1 边界值测试 16
2.3.2 白盒测试 17
2.3.3 等价类分法 23
2.3.4 压力测试 24
2.4 案例分析——如何计算系统的并发用户数 31
2.5 小结 32
2.6 思考题 32
第3章 软件质量管理的信任机制——确认 33
3.1 软件确认管理的概述 34
3.2 软件确认流程及最佳实践 35
3.2.1 确认的准备工作 35
3.2.2 执行确认 41
3.3 软件确认过程中常见问题及案例分析 41
3.3.1 为什么开发和测试之间总是反复 42
3.3.2 确认是对需求变更的约束 43
3.4 小结 44
3.5 思考题 44
第4章 软件质量管理的预防手段——同行评审 45
4.1 软件同行评审的概述 45
4.2 软件同行评审流程及最佳实践 47
4.2.1 同行评审计划阶段 47
4.2.2 同行评审启动阶段 52
4.2.3 同行评审执行阶段 55
4.2.4 同行评审收尾阶段 56
4.2.5 同行评审流程裁剪指南 56
4.2.6 同行评审最佳实践 58
4.3 软件同行评审常见问题及案例分析 59
4.3.1 案例1——如何提高同行评审的效果 59
4.3.2 案例2——如何计算同行评审的投资回报率 61
4.3.3 案例3——如何更好地执行同行评审 62
4.4 小结 62
4.5 思考题 62
第5章 软件质量管理的审计体系——质量保证 63
5.1 软件质量保证概述 64
5.1.1 PPQA与SQC的区别 65
5.1.2 软件质量保证人员的素质和责任 68
5.1.3 软件质量保证人员与其他岗位的关系 70
5.2 软件质量保证流程及最佳实践 71
5.2.1 对软件研发过程的审计 71
5.2.2 对软件工作产品的审计 73
5.3 软件质量保证常见问题及案例分析 76
5.4 小结 79
5.5 思考题 79
第6章 软件质量管理的基石——配置管理 80
6.1 软件配置管理概述 81
6.2 软件配置管理流程及最佳实践 82
6.2.1 建立基线 83
6.2.2 配置库及工具 91
6.2.3 跟踪和控制变更 104
6.2.4 建立基线完整性 107
6.3 利用分支与合并进行软件配置管理工作 111
6.4 小结 112
6.5 思考题 113
第7章 软件质量管理的客观洞察力——度量管理 114
7.1 软件度量管理概述 115
7.1.1 测量的基础知识 115
7.1.2 度量的基础知识 116
7.2 软件度量管理流程及最佳实践 117
7.2.1 软件度量的目标 117
7.2.2 软件度量的实体与属性 120
7.2.3 软件度量的方法 121
7.2.4 软件度量的指示器 123
7.2.5 软件度量管理的流程 126
7.3 软件度量管理常见问题及案例分析 126
7.3.1 如何提高软件度量的准确性 126
7.3.2 从哪里可以收集到度量所需的数据 128
7.4 小结 129
7.5 思考题 129
第8章 软件质量管理的预警措施——风险管理 130
8.1 软件风险管理的概述 131
8.1.1 风险的类型 131
8.1.2 风险的来源 132
8.1.3 风险的应对策略 134
8.2 软件风险管理流程及最佳实践 134
8.2.1 建立组织级风险库 135
8.2.2 识别项目风险、定义风险的属性 137
8.2.3 分析风险并对风险进行排序 138
8.2.4 风险的跟踪 141
8.3 软件风险管理常见问题及案例分析 142
8.3.1 为什么风险识别总不准确 142
8.3.2 为什么项目计划总是不准确 143
8.3.3 如何在项目中进行风险跟踪 143
8.4 小结 144
8.5 思考题 144
第9章 软件质量管理的统筹规划——项目集成管理 145
9.1 项目整体策划的流程及最佳实践 147
9.2 XP极限式开发模型与CMMI的比较 154
9.3 小结 155
9.4 思考题 155
第10章 软件质量管理的策划——项目计划 156
10.1 软件项目计划概述 159
10.2 软件计划的流程及最佳实践 161
10.2.1 对项目进行整体估算 161
10.2.2 对项目范围进行管理 166
10.2.3 建立时间进度计划 190
10.2.4 建立项目费用预算 200
10.2.5 计划项目的其他内容 203
10.2.6 建立项目计划的基准 204
10.3 软件计划的常见问题及案例分析 204
10.3.1 假设是项目计划的根本条件 204
10.3.2 关键路径的计算之案例1 205
10.3.3 关键路径的计算之案例2 206
10.4 小结 206
10.5 思考题 206
第11章 软件质量管理的监督手段——项目监控 207
11.1 软件监控管理流程及最佳实践 208
11.1.1 监控项目的主要参数 208
11.1.2 监控项目的次要参数 211
11.1.3 监控项目的方法 214
11.2 软件监控管理常见问题及案例分析 218
11.2.1 项目参数之间存在相互的影响和依赖 218
11.2.2 挣值法在软件项目中的应用 219
11.3 小结 221
11.4 思考题 221
第12章 软件质量管理的根源——需求工程 222
12.1 软件需求工程概述 223
12.2 软件需求开发的流程及最佳实践 224
12.2.1 需求调研的方法 225
12.2.2 软件需求分析的概述 228
12.2.3 软件需求规格化 231
12.2.4 需求验证及确认方法 238
12.3 软件需求管理的流程及最佳实践 244
12.4 软件需求工程常见问题及案例分析 248
12.4.1 对需求关键干系人分析的重要性 248
12.4.2 调研时需求关键干系人不能被代替 249
12.4.3 需求文档规范化与XP极限式开发的理念是否矛盾 249
12.4.4 利用需求跟踪矩阵来应对项目变更 250
12.5 小结 251
12.6 思考题 251
第13章 软件质量管理的群体决议机制——决策分析 252
13.1 软件决策分析概述 253
13.2 软件决策分析流程及最佳实践 254
13.3 软件决策分析常见问题及案例分析 259
13.3.1 决策树的使用方法 259
13.3.2 加权打分的决策方法 261
13.4 小结 263
13.5 思考题 263
第14章 软件质量管理的构建机制——产品集成 264
14.1 软件产品集成管理概述 265
14.2 软件产品构建的流程及最佳实践 266
14.2.1 软件产品集成的准备工作 266
14.2.2 确保软件产品接口的完整性 272
14.2.3 集成并交付产品 276
14.2.4 通过日构建来实现持续集成 279
14.2.5 日构建工具NAnt的使用 283
14.3 软件产品集成管理常见问题及案例分析 295
14.3.1 在配置管理下如何开展产品集成 295
14.3.2 产品集成的顺序与项目进度计划的关系 296
14.4 小结 296
14.5 思考题 297
第15章 软件质量的持续改进 298
15.1 组织过程改进的焦点 299
15.1.1 确定过程改进的需要 299
15.1.2 计划和执行过程改进 304
15.2 定义组织标准过程的最佳实践 309
15.2.1 建立组织级标准过程和组织财富库 309
15.2.2 定义生命周期模型 311
15.2.3 定义裁剪指南 319
15.2.4 建立组织级度量库和工作环境 326
15.3 组织培训的最佳实践 328
15.3.1 建立组织培训的能力 328
15.3.2 实施培训 332
15.4 案例分析在实际工作中如何把握质量改进的时机 334
15.5 小结 334
15.6 思考题 334
第16章 TFS在软件研发中的应用 335
16.1 TFS的拓扑结构 336
16.2 TFS团队项目功能简介 340
16.2.1 创建工作项 341
16.2.2 添加查询视图 345
16.2.3 源代码管理 347
16.2.4 项目门户 351
16.3 Team Build 358
16.4 小结 360
附录A 思考题答案 361