第1章 概述 1
1.1 软件质量与软件过程 1
1.1.1 从焦油坑谈起 1
1.1.2 传统行业质量管理 2
1.1.3 软件行业质量管理 7
1.2 软件过程发展简史 8
1.2.1 20世纪50年代的软件工程 8
1.2.2 20世纪60年代的软件工艺 9
1.2.3 20世纪70年代的形式化方法与瀑布过程 10
1.2.4 20世纪80年代的生产率与可伸缩性 12
1.2.5 20世纪90年代的并发过程与顺序过程 15
1.2.6 2000年之后的敏捷方法与基于价值的方法 16
1.3 经典软件过程和实践 17
1.3.1 PSP/TSP 17
1.3.2 CMM/CMMI 19
1.3.3 RUP 23
1.3.4 敏捷过程与极限编程 26
1.3.5 Scrum 29
1.3.6 SPICE 30
1.3.7 净室软件工程 31
1.3.8 其他软件过程 32
1.4 过程改进框架 35
1.4.1 适用于传统行业的PDCA模型 35
1.4.2 适用于软件行业的IDEAL模型 36
本章小结 38
思考题 39
参考文献 39
第一部分 个体级软件过程第2章 个体软件过程 44
2.1 简介 44
2.1.1 基本原则 44
2.1.2 PSP成熟度级别 45
2.2 PSP过程度量 46
2.2.1 度量时间 46
2.2.2 度量缺陷 47
2.2.3 度量规模 48
2.3 PROBE估算原理 49
2.3.1 通用计划框架 49
2.3.2 PROBE估算流程 51
2.3.3 应用PROBE的注意事项 53
本章小结 57
思考题 58
参考文献 58
第3章 个体软件过程质量管理 59
3.1 PSP质量观与质量策略 59
3.2 评审与测试 60
3.3 评审过程质量 61
3.3.1 评审检查表 61
3.3.2 质量指标 64
3.3.3 评审的其他考虑因素 69
本章小结 72
思考题 72
参考文献 72
第4章 个体软件过程中的设计 74
4.1 设计与质量 74
4.2 设计过程 75
4.3 设计模板 76
4.3.1 OST 76
4.3.2 FST 77
4.3.3 SST 78
4.3.4 LST 80
4.4 设计的考虑 80
4.4.1 UML与PSP设计模板的关系 81
4.4.2 设计的层次 84
4.5 设计验证方法 85
4.5.1 状态机验证 85
4.5.2 符号化验证 89
4.5.3 执行表验证 89
4.5.4 跟踪表验证 91
4.5.5 正确性检验 91
本章小结 93
思考题 94
参考文献 94
第二部分 团队级软件过程第5章 团队工程开发 96
5.1 需求开发 96
5.1.1 需求获取 97
5.1.2 需求验证 98
5.1.3 需求规格文档制作 99
5.1.4 优秀需求规格文档的特征 99
5.1.5 需求规格文档的表示方法 100
5.2 团队设计 101
5.2.1 团队智慧 101
5.2.2 设计标准 101
5.2.3 复用性考虑 102
5.2.4 可测试性考虑 102
5.2.5 可用性考虑 103
5.2.6 设计的文档化 103
5.3 实现策略 103
5.3.1 评审的考虑 103
5.3.2 复用策略 103
5.3.3 可测试性考虑 103
5.4 集成策略选择 104
5.4.1 大爆炸集成策略 104
5.4.2 逐一添加集成策略 104
5.4.3 集簇集成策略 104
5.4.4 扁平化集成策略 104
5.5 验证与确认 104
5.5.1 差别与联系 105
5.5.2 验证与确认活动 105
本章小结 106
思考题 106
参考文献 106
第6章 团队项目规划 107
6.1 工作分解结构与范围管理 107
6.1.1 WBS表示方式 107
6.1.2 创建WBS的方法 108
6.1.3 范围管理 109
6.2 开发策略与计划 109
6.3 生命周期模型选择 110
6.3.1 生命周期典型阶段描述 111
6.3.2 裁减约定 112
6.3.3 V字形开发阶段对应关系 112
6.4 日程计划原理和方法 113
6.5 质量计划原理和方法 114
6.6 风险计划 114
6.6.1 风险识别 115
6.6.2 风险应对 116
6.7 TSP团队项目规划实例 117
6.7.1 TSP对自主团队的支持 117
6.7.2 TSP项目启动 118
6.8 计划评审和各方承诺 121
本章小结 121
思考题 122
参考文献 122
第7章 团队项目跟踪与管理 123
7.1 项目跟踪意义 123
7.2 挣值管理方法 124
7.2.1 原理 124
7.2.2 挣值管理的应用 125
7.3 里程碑评审 127
7.4 其他计划跟踪 127
7.4.1 日程计划跟踪 127
7.4.2 承诺计划跟踪 128
7.4.3 风险计划跟踪 129
7.4.4 数据收集计划跟踪 129
7.4.5 沟通计划跟踪 129
7.5 纠偏活动的管理 129
本章小结 130
思考题 130
参考文献 131
第8章 项目总结 132
8.1 项目总结的意义 132
8.2 项目总结过程 132
8.2.1 一般项目总结介绍 132
8.2.2 TSP项目总结介绍 135
本章小结 138
思考题 138
参考文献 138
第9章 项目管理支持活动 139
9.1 配置管理 139
9.1.1 配置管理简介 139
9.1.2 配置管理活动 140
9.2 度量和分析 145
9.2.1 度量和分析简介 145
9.2.2 度量和分析活动 145
9.2.3 GQM方法原理和应用 152
9.3 决策分析 155
9.3.1 决策分析简介 155
9.3.2 决策分析活动 156
本章小结 159
思考题 160
参考文献 161
第10章 团队动力学 162
10.1 自主团队的特点 162
10.2 自主团队的外部环境 163
10.2.1 在项目启动阶段获得管理层的支持 163
10.2.2 在项目进展过程中获得管理层的支持 164
10.3 承诺文化的建立与团队激励 165
10.4 团队领导者与角色经理的区别 166
10.5 典型TSP角色 167
10.5.1 项目组长 167
10.5.2 计划经理 169
10.5.3 开发经理 170
10.5.4 质量经理 172
10.5.5 过程经理 173
10.5.6 支持经理 174
本章小结 175
思考题 176
参考文献 176
第三部分 组织级软件过程改进第11章 IDEAL模型之初始阶段 178
11.1 IDEAL模型概述 178
11.2 初始阶段概述 180
11.3 准备开始 184
11.4 识别商业需求和改进的驱动力 184
11.5 撰写SPI提案 185
11.6 培训和构建支持 186
11.7 使SPI提案获得批准并初始化资源 186
11.8 构建SPI基础设施 187
11.9 评估SPI风气 192
11.10 定义SPI总体目标 193
11.11 定义SPI程序指导原则 193
11.12 启动程序 194
11.13 构建SPI程序的组织机构 194
11.14 初始阶段与CMMI对应 197
本章小结 199
思考题 199
参考文献 200
第12章 IDEAL模型之诊断阶段 201
12.1 诊断阶段概述 201
12.2 确定需要怎样的基线 204
12.3 制定基线计划 204
12.4 实施基线 205
12.5 介绍发现物 205
12.6 开发最终发现物和建议报告 206
12.7 与组织交流发现物和建议 206
12.8 诊断阶段与CMMI对应 207
本章小结 208
思考题 208
参考文献 208
第13章 IDEAL模型之建立阶段 209
13.1 建立阶段概述 209
13.2 选择战略执行计划过程并组织培训 212
13.3 评审组织的愿景 212
13.4 评审组织的商业计划 213
13.5 确定关键的商业主题 214
13.6 评审过去的改进成果 214
13.7 描述改进的动机 215
13.8 确定当前和将来的(计划的)改进活动 215
13.9 确定各种基础设施实体的角色和职责 216
13.10 设定活动的优先级和制定改进日程 216
13.11 基于基线发现物和建议协调已有的、计划好的改进活动 217
13.12 将SPI总体目标转换成特定的可度量的目标 217
13.13 建立或更新SPI战略执行计划 218
13.14 评审并批准用于SPI战略执行计划的资源 218
13.15 构建技术工作团队 218
13.16 建立阶段与CMMI对应 219
本章小结 220
思考题 220
参考文献 221
第14章 IDEAL模型之执行阶段 222
14.1 执行阶段概述 222
14.2 为TWG完成战术计划 225
14.3 开发解决方案 226
14.4 试验潜在的解决方案 227
14.5 选择解决方案提供者 228
14.6 确定长期支持需求 228
14.7 开发首次展示战略和计划模板 229
14.8 整理打包改进并移交给SEPG 229
14.9 解散TWG 230
14.10 首次展示解决方案 230
14.11 转变为长期支持 234
14.12 执行阶段与CMMI对应 234
本章小结 239
思考题 239
参考文献 239
第15章 IDEAL模型之调整阶段 240
15.1 调整阶段概述 240
15.2 收集获得的经验教训 241
15.3 分析经验教训 242
15.4 重新修订组织方法 243
15.5 评审资助与承诺 243
15.6 建立高层次目标 243
15.7 开发新修订的软件过程改进提案 244
15.8 继续软件过程改进过程 244
15.9 调整阶段与CMMI对应 245
本章小结 246
思考题 246
参考文献 246
附录A SPI程序的基础设施 247
附录B SPI程序的模板 253
附录C SPI程序的基线 262
附录D 管理软件过程改进程序 267
附录E 软件过程方法学的思考 274
附录F IDEAL模型全程图 278