第1章 软件需求与软件需求工程 1
1.1 什么是软件需求 1
1.1.1 需求的定义与分类 1
1.1.2 需求在软件开发中的位置 4
1.2 什么是软件需求工程 16
1.2.1 需求工程的定义 17
1.2.2 需求工程的内容 18
1.3 软件需求工程对航天型号任务的重要性 20
第2章 航天软件需求工程概述 25
2.1 航天软件需求工程上下文环境 25
2.1.1 航天软件研制相关方及其职责 25
2.1.2 航天系统工程和软件工程的工作内容 26
2.2 国外航天相关标准规范 38
2.2.1 NASA标准规范 38
2.2.2 ESA标准规范 41
2.3 基本术语说明 46
第3章 软件需求开发 49
3.1 需求开发流程 49
3.2 通用需求获取方法 51
3.2.1 面谈 51
3.2.2 头脑风暴 51
3.2.3 结构化研讨会 52
3.3 用户需求开发 52
3.3.1 任务目标定义 53
3.3.2 操作概念开发 53
3.3.3 技术需求分析 65
3.3.4 系统分解 65
3.3.5 设计方案定义与评估 68
3.3.6 系统需求到软件需求的转换 68
3.4 用户需求规格说明 72
3.4.1 用户需求规格说明的原则 72
3.4.2 用户需求规格说明的内容 72
3.5 软件需求分析 74
3.5.1 面向数据流的结构化分析方法 75
3.5.2 面向数据结构的结构化分析方法 97
3.5.3 面向对象分析方法 104
3.5.4 形式化分析方法 129
3.5.5 快速原型方法 145
3.5.6 模型驱动开发方法 150
3.6 软件需求规格说明 159
3.6.1 软件需求规格说明原则 159
3.6.2 软件需求规格说明内容 160
3.6.3 自然语言规格说明 162
3.6.4 结构化规格说明 165
3.7 需求分析工具 168
3.7.1 工具分类 169
3.7.2 常见工具 169
第4章 软件需求管理 174
4.1 需求管理活动与要求 174
4.2 需求标识与分类 176
4.3 需求追踪 176
4.3.1 需求追踪的内容 177
4.3.2 需求追踪的表示方法 178
4.3.3 需求追踪模型 180
4.4 需求优先级排序 185
4.4.1 需求优先级排序的定义 186
4.4.2 需求优先级排序的过程 186
4.4.3 需求优先级排序技术 188
4.5 需求基线与变更管理 193
4.5.1 配置管理 193
4.5.2 需求基线 196
4.5.3 需求变更控制 197
4.6 需求管理相关工具 198
4.6.1 需求管理工具 198
4.6.2 配置管理工具 200
第5章 软件需求的验证与确认 202
5.1 验证与确认的定义和内容 202
5.2 需求验证 203
5.2.1 需求验证活动与要求 204
5.2.2 需求验证方法 205
5.3 需求确认 210
5.3.1 需求确认活动与要求 210
5.3.2 需求确认方法 210
5.4 独立验证与确认 212
第6章 软件安全需求开发与验证 213
6.1 软件安全性的定义 213
6.2 软件安全过程与活动 214
6.3 系统级危险分析 216
6.3.1 初步危险分析 216
6.3.2 软件安全关键性评估 220
6.3.3 软件安全工作计划 225
6.4 软件安全需求分析 227
6.4.1 通用软件安全性需求 228
6.4.2 软件危险分析 231
6.4.3 软件故障树分析 234
6.4.4 软件失效模式与影响分析 241
6.5 软件安全需求验证 248
6.5.1 软件安全需求向下流动分析 248
6.5.2 关键性分析 249
6.5.3 需求规格说明分析 251
6.5.4 形式化规约方法 252
6.5.5 模型检测 252
6.5.6 时间、吞吐量及空间分析 254
6.5.7 软件需求的形式检查 255
6.6 软件安全性追踪和变更安全性分析 255
6.6.1 软件安全性追踪 256
6.6.2 软件变更安全性分析 256
第7章 软件需求质量管理与过程改进 258
7.1 质量管理与过程改进基本概念 258
7.1.1 软件质量观点 258
7.1.2 过程改进主要标准 260
7.2 基于软件需求的质量管理 268
7.2.1 基于需求的质量定义 268
7.2.2 质量监测框架 270
7.2.3 质量测量过程 271
7.3 需求过程改进 273
7.3.1 需求过程改进的问题 273
7.3.2 需求过程改进的方法 274
参考文献 281