第1章 软件生命周期与软件质量证 1
1.1 软件生命周期概述 1
1.2 开发模型与方法 2
1.2.1 瀑布模型 2
1.2.2 增量模型 3
1.2.3 原型模型 5
1.2.4 迭代模型 5
1.2.5 敏捷方法 8
1.2.6 开发模型与方法的实际应用 10
1.2.7 工程实践:改进型项目的开发模型 12
1.3 软件质量的成本 19
1.4 软件质量证与测试 21
1.5 测试模型 23
1.5.1 V模型 23
1.5.2 W模型 24
1.5.3 H模型 25
1.5.4 X模型 26
1.5.5 前置测试模型 27
1.6 本章小结 29
第2章 软件需求 30
2.1 软件需求获取和分析 31
2.1.1 需求获取活动 32
2.1.2 需求获取方法之面谈 35
2.1.3 需求获取方法之原型法 38
2.1.4 工程实践:前景和范围 44
2.1.5 需求分析方法和流程 47
2.1.6 工程实践:用例说明文档 49
2.2 软件需求定义和验证 51
2.2.1 软件需求规格说明 51
2.2.2 工程实践:软件需求规格说明 53
2.2.3 需求验证 58
2.3 需求管理 59
2.3.1 需求基线 60
2.3.2 需求跟踪 60
2.3.3 需求变更控制 61
2.4 需求分析实施 64
2.5 本章小结 65
第3章 软件策划 67
3.1 软件计划 67
3.1.1 软件项目管理计划 67
3.1.2 软件质量证计划 76
3.1.3 软件配置管理计划 78
3.1.4 软件测试计划 81
3.2 内容可以大于形式的评审 90
3.2.1 正式评审过程 91
3.2.2 评审角色和职责 92
3.2.3 评审类型 93
3.2.4 评审技术 95
3.2.5 支持评审的工具 98
3.2.6 评审成功的因素 99
3.3 软件策划实践 100
3.3.1 工作分解和进度安排 100
3.3.2 改进型工作分解和进度安排 102
3.4 经验教训总结 105
3.5 本章小结 107
第4章 软件设计 108
4.1 体系结构设计 108
4.1.1 系统逻辑架构设计 109
4.1.2 系统物理架构设计 110
4.2 用户界面设计 113
4.3 数据库设计 114
4.3.1 数据库结构设计 115
4.3.2 数据库运用设计 117
4.4 模块设计 118
4.5 设计评审 120
4.6 软件设计实践 120
4.6.1 绿灯会议 121
4.6.2 六西格玛设计 123
4.6.3 数据建模和算法设计实践 130
4.7 本章小结 132
第5章 软件实现 134
5.1 编码的底线及规范 134
5.2 看上去很美的组件测试 140
5.2.1 组件测试的范围及流程 140
5.2.2 创建组件测试的入口准则及出口准则 141
5.2.3 执行组件测试的入口准则及出口准则 142
5.2.4 组件测试的角色和职责 143
5.2.5 组件测试的设置和创建 144
5.2.6 组件测试的执行 145
5.3 软件编码实践 146
5.3.1 测试驱动开发 146
5.3.2 代码静态分析 150
5.4 本章小结 152
第6章 软件测试 154
6.1 集成测试 154
6.2 系统测试与验收测试 157
6.2.1 系统测试 157
6.2.2 验收测试 158
6.3 软件测试实践 160
6.3.1 集成测试之自动化执行 160
6.3.2 系统测试之内存测试 162
6.3.3 验收测试之语音传输质量测试 170
6.3.4 基于虚拟化容器技术的自动编译测试 178
6.4 本章小结 182
第7章 持续集成与持续改进 184
7.1 基于DevOps模型的持续集成 184
7.1.1 持续集成系统 185
7.1.2 持续集成模型的3个维度 187
7.1.3 持续集成方法的使用 193
7.2 基于益数据分析的DevOps评估 196
7.2.1 DevOps评估方法概述 196
7.2.2 评估方法的应用 199
7.2.3 DevOps的评估结果 201
7.3 软件缺陷预 202
7.3.1 缺陷预的概念及意义 203
7.3.2 现有的缺陷预方法 203
7.3.3 新的缺陷预方法 205
7.4 本章小结 214
参考文献 215