本书介绍了软件需求工程的基本概念、基本理论和实际应用技术。全书内容涵盖了需求工程中的每个重要步骤,包括业务建模、需求获取、需求定义、需求分析、规格说明、需求验收和需求管理等方面。
更多科学出版社服务,请扫码获取。
目录
前言
第1章 需求概述 1
1.1 需求问题的提出 1
1.2 不同项目的需求视图 3
1.2.1 信息系统的需求视图 3
1.2.2 嵌入式系统的需求视图 6
1.2.3 软件产品的需求视图 7
1.3 需求的定义 8
1.3.1 几种主要的需求定义 8
1.3.2 需求定义的一些基本原则 9
1.3.3 优秀需求的特性 10
1.4 需求定义的实践 11
1.4.1 需求定义任务概述 11
1.4.2 问题分析五步法 12
1.4.3 需求定义的要素 13
1.4.4 需求定义的范围 14
1.5 需求的层次和分类 16
1.5.1 软件需求的层次 16
1.5.2 软件需求的分类 19
1.6 需求在总体方案中的位置 21
1.6.1 软件的生命周期 21
1.6.2 需求与其他软件项目过程的关系 23
习题 26
第2章 需求工程 28
2.1 需求工程的定义 28
2.1.1 需求工程的提出 28
2.1.2 需求工程的定义 29
2.2 需求工程的内容 31
2.2.1 需求获取 32
2.2.2 需求分析 33
2.2.3 编写规格说明书 34
2.2.4 需求验证 35
2.2.5 需求管理 35
2.3 需求过程的改进 37
2.3.1 需求工程面临的困难 37
2.3.2 不适当的需求过程引起的风险 38
2.3.3 需求过程的改进 40
2.3.4 需求过程的推荐方法 42
2.4 敏捷需求流程 44
2.4.1 传统开发过程的需求问题 45
2.4.2 敏捷需求流程 46
2.4.3 极限需求流程 47
2.4.4 增量需求流程 49
2.5 需求工程与CDIO 50
2.5.1 CDIO简介 50
2.5.2 需求工程与CDIO 52
习题 54
第3章 需求获取 55
3.1 问题域 55
3. 2 问题框架 56
3.2.1 需求式行为问题框架 57
3.2.2 命令式行为问题框架 58
3.2.3 信息显示问题框架 59
3.2.4 简单工件问题框架 60
3.2.5 交换问题框架 61
3.3 多框架问题 62
3.4 确定需求开发计划 63
3.5 需求获取方法 63
3.5.1 面向目标的方法 64
3.5.2 基于场景的方法 64
3.5.3 面向方面的方法 64
3.5.4 面向视点的方法 65
3.5.5 基于知识的方法 69
3.6 需求获取技术 69
习题 71
第4章 需求分析 72
4.1 需求分析和业务建模 72
4.2 建立系统关联图 73
4.3 构建用户接口原型 74
4.4 建立数据字典 75
4.5 结构化分析建模方法 76
4.5.1 数据建模 77
4.5.2 功能建模 79
4.5.3 行为建模 83
4.5.4 结构化分析总结 84
4.6 面向对象建模技术 84
4.6.1 UML的提出 84
4.6.2 UML对用例驱动需求工程的支持 85
习题 85
第5章 基于UML的需求建模技术 86
5.1 项目概述 86
5.1.1 项目背景 86
5.1.2 UML的面向对象分析过程 86
5.2 用例模型分析与设计 87
5.2.1 划分用户群 87
5.2.2 用例模型设计 88
5.2.3 检查用例模型 90
5.2.4 调整用例模型 91
5.2.5 描述用例规约 92
5.3 类图模型设计 94
5.4 动态模型设计 95
5.4.1 状态图模型设计 95
5.4.2 顺序图模型设计 96
5.4.3 活动图模型设计 97
5.5 可视化建模工具 99
5.5.1 Rose界面简介 99
5.5.2 Rose的四种视图简介 99
5.5.3 用Rose生成代码 101
5.5.4 逆向工程 104
习题 104
第6章 需求模式 106
6.1 需求模式构思 106
6.1.1 包含要素 107
6.1.2 基本细节 108
6.1.3 额外需求 108
6.1.4 需求模式分类 109
6.1.5 使用需求模式的优点 110
6.2 领域和设计模式 111
6.2.1 领域 111
6.2.2 设计模式 113
6.3 需求模式间的关系 117
6.3.1 需求模式分类 118
6.3.2 修改需求模式 119
6.3.3 需求模式用例及组 120
6.4 使用和编写需求模式 120
6.4.1 使用需求模式时应注意的问题 121
6.4.2 裁剪需求模式 121
6.4.3 寻找潜在的需求模式 122
6.4.4 如何编写需求模式 123
6.5 需求模式实例 124
6.5.1 信息需求模式实例 124
6.5.2 系统间接口需求模式实例 127
习题 133
第7章 需求与面向对象软件开发 134
7.1 系统需求 134
7.1.1 系统的诞生 134
7.1.2 用例 135
7.1.3 业务建模 136
7.1.4 系统建模 138
7.2 估算 142
7.2.1 基于需求的软件规模估算 142
7.2.2 基于需求的工作量估算 144
7.3 分析 145
7.3.1 抽取和面向对象 145
7.3.2 类和关系 145
7.3.3 序列和事件 147
7.3.4 因果关系和控制 148
7.4 设计 149
7.4.1 设计模式 149
7.4.2 用户和接口设计 149
7.5 编程 151
7.5.1 使用Java实现UML 151
7.5.2 使用MDA工具生成代码 152
7.6 测试 153
7.6.1 测试的原因 153
7.6.2 测试的方法 153
7.6.3 使用JUnit进行测试用例的编写 153
习题 154
第8章 需求文档 156
8.1 为什么需要文档 156
8.1.1 文档在需求工程中的位置 156
8.1.2 文档的作用 157
8.2 文档编写的基本原则 158
8.3 常见需求文档 160
8.3.1 需求文档的分类 160
8.3.2 项目视图和范围文档 161
8.3.3 用户需求文档 165
8.4 软件需求规格说明 165
8.4.1 高质量软件需求规格说明的特性 166
8.4.2 软件需求规格说明模版 167
8.4.3 模版分析与应用 168
8.5 文档写作技巧 180
8.5.1 文档常见错误 180
8.5.2 实用写作技巧 181
习题 182
第9章 需求验证 183
9.1 需求验证 183
9.1.1 需求验证的提出 183
9.1.2 需求验证的目的和任务 185
9.1.3 需求验证的内容 186
9.1.4 需求验证的方法 188
9.2 验证接口和程序 190
9.3 需求评审 193
9.3.1 需求评审的方法 193
9.3.2 需求评审的过程 195
9.3.3 需求评审的实践 196
9.4 测试需求 198
习题 200
第10章 软件需求管理 202
10.1 概述 202
10.1.1 需求开友与需求管理 202
10.1.2 ISO9001中对软件需求管理的要求 203
10.1.3 CMM及CMMI中对软件需求管理的要求 204
10.2 需求管理活动实践 207
10.2.1 需求管理流程中的角色 207
10.2.2 需求基线 208
10.2.3 需求确认 208
10.2.4 需求跟踪 210
10.2.5 需求变更管理 212
10.3 需求风险管理 215
10.3.1 需求风险识别 216
10.3.2 需求风险评估 218
10.3.3 需求风险控制 218
10.4 需求管理工具 218
10.5 CDIO应用案例 221
10.5.1 概述 221
10.5.2 需求确认 221
10.5.3 需求跟踪 221
习题 222
第11章 安全需求工程 223
11.1 安全工程概述 223
11.1.1 安全工程 223
11.1.2 ISSF过程 224
11.1.3 SSF-CMM过程 225
11.2 安全需求的定义 227
11.2.1 安全服务的分类 227
11.2.2 安全需求的分类 227
11.2.3 安全需求的开发过程 228
11.3 安全需求获取 229
11.4 安全风险评估 231
11.4.1 风险评估方法 231
11.4.2 形成风险分析报告 235
11.5 确定安全需求 235
11.5.1 安全需求报告概述 235
11.5.2 安全需求报告撰写说明 235
11.5.3 安全需求的描述方法 236
11.6 CDIO应用案例 237
11.6.1 概述 237
11.6.2 网上书店系统模型及其功能 237
11.6.3 网上书店系统安全需求分析 237
习题 240
参考文献 241