目 录
第1章
绪论
——需求是驱动软件系统研发的不二选择
1.1 需求是什么 2
1.1.1 需求相关术语 3
1.1.2 高质量需求是软件研发成功的关键 4
1.1.3 需求的层次与分类 6
1.2 需求的“动”“静”特性 9
1.2.1 变化是需求的本质特征 9
1.2.2 需求的10大核心内容 13
1.3 需求实现的最佳实践 18
1.3.1 行为驱动开发—第二代敏捷
方法 20
1.3.2 实例化需求—融合需求规约
与验收标准 22
1.3.3 活文档系统—自动保持文档、
代码一致 24
1.4 需求的全生命周期管理 27
总结 28
第2章
发掘业务需求
——获取高价值市场机会
2.1 业务需求的内容和来源 30
2.2 流行的5W1H业务架构分析方法 33
2.2.1 5W1H方法简介 34
2.2.2 5W1H方法的使用原则 35
2.3 需求10大核心内容之一—任务范畴 37
2.3.1 任务范畴角色 38
2.3.2 任务范畴动机 38
2.3.3 任务范畴流程 39
2.3.4 任务范畴数据 41
2.3.5 任务范畴时间 43
2.3.6 任务范畴渠道 43
2.3.7 任务可行性分析 44
2.4 需求10大核心内容之二—投资回报 45
2.4.1 商务模型动机 46
2.4.2 商务模型角色 47
2.4.3 商务模型流程 49
2.4.4 商务模型数据 52
2.4.5 商务模型时间 52
2.4.6 商务模型渠道 54
2.4.7 商务投资回报分析 54
2.5 需求10大核心内容之三—解决
方案选择 57
2.5.1 “口袋书”结构化决策最佳实践 57
2.5.2 “口袋书”最佳实践应用 65
总结 70
第3章
定义利益相关方需求
——真知来源于实践
3.1 来自原始需要的利益相关方需求 72
3.2 需求10大核心内容之四—利益相关方 75
3.2.1 典型软件系统研发管理模型 75
3.2.2 识别利益相关方 79
3.3 收集信息 82
3.3.1 几种常用信息收集方法 82
3.3.2 麦肯锡信息收集分析方法 89
3.3.3 基于事件的信息分析整理方法 91
3.4 需求10大核心内容之五—用例 95
3.4.1 核心概念辨析:用例和用户故事 96
3.4.2 定义用例图 99
3.4.3 定义用例的活动图 102
3.4.4 定义用例描述 104
3.4.5 定义用例序列图 106
3.4.6 定义问题领域类图 108
3.4.7 定义问题领域类的状态机图 110
3.5 需求10大核心内容之六—需求优先级 111
3.5.1 为什么要确定需求优先级 111
3.5.2 确定需求优先级的方法 112
3.5.3 需求优先级应用 121
3.6 确认需求可行性 122
3.7 与管理层一起评审需求 123
3.7.1 单个需求质量判断标准 124
3.7.2 需求集质量判断标准 126
总结 128
第4章
编制功能需求规约
——定义高可用软件精品
4.1 系统需求是软件系统研发的依据 130
4.2 需求10大核心内容之七—应用上下文 133
4.2.1 应用上下文包含的信息项 133
4.2.2 用户认证与授权系统的需求
应用上下文 136
4.3 承载软件价值实现的功能需求 139
4.4 化整为零是全面功能需求整理的
有效手段 140
4.4.1 工作分解结构的定义和生成方法 141
4.4.2 工作分解结构应用 143
4.5 需求10大核心内容之八—人机交互
界面 146
4.5.1 人机交互界面设计指导理论 146
4.5.2 设计高质量系统界面 152
4.6 适用编号方法奠定需求高水平管理基础 163
4.6.1 数字序列编号 164
4.6.2 层次数字编号 165
4.6.3 结构化文本标签编号 165
总结 166
第5章
编制非功能需求规约
——数字意味着健壮
5.1 非功能需求是高质量软件的基石 172
5.2 质量需求定义的模式 173
5.2.1 使用质量模型 174
5.2.2 系统质量模型 176
5.2.3 数据质量模型 179
5.3 需求10大核心内容之九—质量需求 184
5.3.1 从用例获取质量需要 184
5.3.2 基于质量需要裁剪出质量属性 186
5.3.3 编制质量需求规约 190
5.4 需求10大核心内容之十—约束 192
总结 195
第6章
实例化需求
——如何写出高质量需求
6.1 为什么要引入实例化需求 203
6.2 实例化需求实践 206
6.2.1 从目标中获取范畴 206
6.2.2 协作制定需求 207
6.2.3 举例说明 208
6.2.4 精化需求 213
6.2.5 在不修改需求的情况下进行
自动化验证 219
6.2.6 持续验证 224
6.2.7 演化出一个活文档系统 227
总结 228
第7章
活文档
——刺穿代码迷雾的利剑
7.1 广受诟病的传统文档系统 230
7.2 促进文档、代码信息一致的行为驱动开发
方法论 234
7.2.1 行为驱动开发方法论概述 235
7.2.2 Gherkin语法 241
7.3 方兴未艾的活文档 244
7.3.1 活文档的特点 244
7.3.2 活文档的生成方法 246
7.4 “以文档为中心”实现用户认证与
授权系统 250
7.4.1 用户认证与授权系统的需求定义
过程 251
7.4.2 用户认证与授权系统的工程实践 255
总结 264
第8章
需求管理
——需求完整和一致性的保证
8.1 需求管理简介 266
8.1.1 需求变化的来源和复杂性 267
8.1.2 需求管理的对象 270
8.1.3 需求管理的主要活动 272
8.2 需求版本控制 273
8.2.1 需求版本控制的作用 273
8.2.2 需求版本的命名 274
8.2.3 需求版本控制的活动 276
8.3 需求基线管理 277
8.4 需求变更管理 280
8.4.1 需求变更控制流程 280
8.4.2 变更控制委员会 282
8.4.3 变更影响分析和审批 283
8.5 需求追踪与需求追踪矩阵 285
8.5.1 需求追踪的目的和对象 286
8.5.2 需求状态 287
8.5.3 需求追踪的类型和方法 289
8.5.4 需求追踪矩阵 291
总结 295
术语表与参考文献 296
