第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需求工程与CDI O 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 ISSE过程 224
11.1.3 SSE-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