需求工程——软件建模与分析(第3版)
定价:¥63.00
作者: 骆斌,丁二玉,李传艺
出版社:高等教育出版社
- 高等教育出版社
- 9787040668384
- 3版
- 16开
内容简介
本书入选“软硬件产学协同人才培养项目”。
本书从开发者的视角,侧重于实践者的技术与方法,系统全面地介绍了软件需求工程的各个方面,致力于促进需求工程领域理论、方法和技术的全面融合与应用,以指导需求工程各阶段的系统化实践。
全书分为4部分,共18章。第一部分“绪论”(第1—3章)是对需求工程的宏观介绍。第二部分“前期阶段的需求开发”(第4—8章)介绍前期阶段的需求获取、需求分析和需求文档化活动。第三部分“后期阶段的需求开发”(第9—15章)介绍后期阶段的需求获取、需求分析和需求文档化活动。第四部分“需求管理和工程管理”(第16—18章)介绍需求管理活动以及针对需求工程的管理活动。为进一步加深读者对内容的理解,方便高校教师教学,本书还提供了配套的教学课件、视频、习题等教学资源。
本书可作为高等学校计算机、软件工程等专业本科或研究生“软件需求”课程的教材,也可供从事软件需求相关工作的软件技术人员参考使用。
目录
目录
前辅文
第一部分 绪论
第1章 需求工程导论
1.1 需求与需求处理
1.1.1 软件工程需要专门的需求处理
1.1.2 软件需求处理技术的发展
1.2 什么是需求工程
1.3 为什么需要需求工程
1.3.1 软件生产中的需求问题
1.3.2 软件需求问题的原因分析
1.3.3 为什么会感觉不到软件需求工程的重要性
1.4 什么时机执行需求工程
1.4.1 系统工程、软件工程与需求工程
1.4.2 需求工程对其他软件开发活动的影响
1.5 谁负责执行需求工程
1.5.1 需求工程师
1.5.2 需求工程师的技能要求
1.5.3 需求开发是团队行为
1.6 如何执行软件需求工程
1.6.1 软件需求工程基本活动
1.6.2 需求开发过程
1.6.3 需求管理
1.7 软件需求的人工智能处理方法
1.7.1 特征请求的获取与分析
1.7.2 特征请求的管理
1.8 产品工程
1.8.1 不同类型的软件产品需要不同的处理方式
1.8.2 传统的软件需求工程与产品工程
1.8.3 产品开发中的需求处理
1.8.4 产品经理
习题
第2章 需求基础
2.1 满足需求就是解决问题
2.1.1 问题与需求
2.1.2 问题解决的两个方面——问题域与解系统
2.1.3 问题解决的基础——模拟与共享现象
2.1.4 问题解决方式与问题解决方案
2.1.5 问题解决的困难性
2.2 需求和问题都有层次性
2.2.1 战略问题与业务需求
2.2.2 任务问题与用户需求
2.2.3 系统行为问题与系统级需求
2.2.4 需求开发要遵从层次性
2.3 需求的分类与表述
2.3.1 需求的分类
2.3.2 功能需求
2.3.3 性能需求
2.3.4 质量属性
2.3.5 对外接口
2.3.6 约束
2.3.7 其他需求
2.4 优秀需求的特性
2.4.1 完备性
2.4.2 正确性
2.4.3 可行性
2.4.4 必要性
2.4.5 无歧义
2.4.6 可验证
习题
第3章 需求开发过程
3.1 需求开发过程
3.1.1 迭代和并发的需求开发过程
3.1.2 需求开发过程中的学习性
3.1.3 常用的需求开发过程模型
3.2 需求获取
3.2.1 需求获取的活动与任务
3.2.2 获取信息的内容与来源
3.2.3 获取信息的方法与成果
3.2.4 获取信息过程的注意事项
3.2.5 需求获取的困难分析
3.2.6 实践中的需求获取
3.3 需求分析
3.3.1 概述
3.3.2 需求分析的活动与任务
3.3.3 需求分析方法和技术
3.3.4 实践中的需求分析
3.4 需求规格说明
3.4.1 需求文档的类型
3.4.2 需求文档的描述手段
3.4.3 需求文档的写作要点
3.4.4 实践中的需求规格说明
3.5 需求验证
3.6 敏捷方法的需求开发过程
3.6.1 极限编程
3.6.2 Scrum
3.6.3 精益方法
3.7 产品工程的需求开发过程
习题
第二部分 前期阶段的需求开发
第4章 确定项目的前景与范围
4.1 为什么要确定项目的前景与范围
4.2 确定项目前景与范围的活动
4.3 获取问题和需求
4.3.1 硬数据采集
4.3.2 面谈
4.3.3 群体面谈
4.3.4 头脑风暴
4.3.5 调查问卷
4.4 问题分析
4.4.1 发现问题
4.4.2 明确问题
4.4.3 发现业务需求
4.4.4 定义问题解决方案及系统特性
4.4.5 问题分析方法的局限性
4.5 目标模型与面向目标的分析
4.5.1 “目标”概念
4.5.2 目标模型
4.5.3 目标分析过程
4.6 界定系统边界
4.6.1 用例图
4.6.2 建立用例图
4.6.3 明确假设与依赖
4.6.4 定义系统约束
4.7 确定需求优先级
4.7.1 为什么要确定需求优先级
4.7.2 确定需求优先级的常用方法
习题
第5章 涉众分析
5.1 如何进行涉众分析
5.2 涉众分析过程
5.3 涉众识别
5.3.1 涉众识别的目标
5.3.2 涉众识别的方法
5.4 涉众描述
5.4.1 涉众描述的内容
5.4.2 涉众描述示例
5.5 涉众评估
5.5.1 优先级评估
5.5.2 风险评估
5.5.3 共赢分析
5.6 涉众代表选择
5.6.1 涉众采样
5.6.2 用户替代源
5.7 涉众参与策略制定
5.8 使用目标模型进行涉众分析
5.8.1 使用主体依赖模型描述涉众互动
5.8.2 基于目标模型描述及评估涉众
5.9 用户画像
5.9.1 用户画像描述
5.9.2 用户画像的作用
5.9.3 用户旅程地图
习题
第6章 复杂情景分析
6.1 非功能需求分析
6.1.1 非功能需求分析的困难
6.1.2 使用目标模型描述非功能需求
6.1.3 使用目标模型分析非功能需求的过程
6.1.4 整合功能需求和非功能需求的目标模型示例
6.2 业务过程分析
6.2.1 活动图的基本元素
6.2.2 活动图的关键:令牌平衡
6.2.3 信号与事件机制
6.2.4 异常与中断机制
6.2.5 分区
6.2.6 层次结构与图简化元素
6.2.7 使用活动图进行业务过程分析
6.3 特征分析
6.3.1 面向特征的领域分析
6.3.2 特征模型及其建模过程
习题
第7章 产品分析
7.1 概述
7.2 机会识别
7.2.1 寻找机会
7.2.2 有组织的产品创新
7.2.3 评估产品机会
7.3 市场分析
7.3.1 市场具象
7.3.2 市场细分
7.3.3 市场规模估算
7.3.4 市场调查与研究
7.4 产品涉众分析
7.4.1 几类特殊用户
7.4.2 描述用户使用产品的全生命周期过程
7.5 商业模式设计
7.5.1 商业模式精益画布
7.5.2 常见的商业模式
习题
第8章 前期阶段的需求文档化
8.1 前景与范围文档
8.1.1 引言
8.1.2 业务需求
8.1.3 涉众特征
8.1.4 项目前景
8.1.5 系统功能特性与系统非功能需求
8.2 商业需求文档
习题
第三部分 后期阶段的需求开发
第9章 基于用例/场景模型开发用户需求
9.1 用户需求开发活动的展开
9.2 用例与场景
9.2.1 什么是用例/场景
9.2.2 用例/场景的组织特点
9.2.3 用例/场景的层次性
9.2.4 基于用例/场景进行软件开发
9.3 用例/场景模型
9.3.1 场景的定位
9.3.2 用例的定位
9.3.3 理解用例相关概念
9.3.4 用例图
9.4 以用例/场景模型为主线索开展用户需求开发
9.4.1 依据系统用例图、目标模型建立初始用例/场景模型
9.4.2 根据用例/场景模型指导获取,完善层次结构
9.4.3 使用用例/场景组织获取内容
9.4.4 用新组织或修正的用例/场景完善用例/场景模型
9.4.5 依据用例/场景模型建立需求分析模型
9.4.6 分析用例/场景发现仍需获取的需求内容
9.5 用户故事
9.5.1 用户故事的特点
9.5.2 用户故事方法的要素
9.5.3 用户故事地图
9.5.4 用户故事的书写
习题
第10章 需求获取方法
10.1 面谈
10.1.1 谈话交流模式
10.1.2 问题类型
10.1.3 面谈过程
10.1.4 面谈的类别
10.2 原型
10.2.1 不确定性与原型法
10.2.2 原型法的应用过程
10.2.3 坚持抛弃需求获取原型
10.2.4 控制原型成本
10.2.5 善用故事板原型
10.2.6 原型法的风险
10.3 观察
10.3.1 情景性
10.3.2 观察法
10.3.3 观察法的应用场景
10.3.4 采样观察
10.3.5 民族志
10.4 文档审查
10.4.1 对文档的需求获取方法
10.4.2 需求重用
10.4.3 文档分析与需求剥离
习题
第11章 面向对象分析
11.1 面向对象分析与UML
11.1.1 面向对象方法的基本思路
11.1.2 UML与面向对象分析
11.2 对象模型
11.2.1 对象
11.2.2 类
11.2.3 类之间的关系
11.2.4 领域模型
11.3 建立领域模型
11.3.1 识别候选对象与类
11.3.2 确定概念类
11.3.3 建立类之间的关联
11.3.4 添加类的重要属性
11.3.5 领域模型的分析作用
11.4 行为模型——交互图
11.4.1 顺序图
11.4.2 通信图
11.4.3 系统顺序图
11.5 建立交互图
11.5.1 建立典型场景的系统顺序图
11.5.2 建立多场景系统顺序图
11.5.3 建立详细顺序图
11.5.4 交互图的分析作用
11.6 行为模型——状态图
11.6.1 状态图的发展历程
11.6.2 有限状态机
11.6.3 David Harel对FSM的扩展
11.6.4 UML的状态图
11.7 建立状态图
11.7.1 基于状态转移矩阵建立状态图
11.7.2 状态图的分析作用
11.8 对象约束语言
11.8.1 什么是对象约束语言(OCL)
11.8.2 OCL的应用
11.9 基于CRC卡的面向对象分析方法
11.9.1 CRC卡
11.9.2 基于CRC卡的职责驱动方法
11.10 需求细化
11.10.1 基于需求分析模型细化需求
11.10.2 细化需求实例
11.10.3 描述细化的需求
习题
第12章 结构化分析
12.1 数据建模
12.1.1 实体关系图(ERD)
12.1.2 依据充分描述信息的ERD建模
12.1.3 依据硬数据表单的ERD建模
12.1.4 复杂情况下的ERD建模
12.2 过程建模
12.2.1 过程建模的基本思路
12.2.2 数据流图(DFD)的基本元素
12.2.3 DFD的描述规则
12.2.4 DFD的分层结构
12.2.5 DFD层次结构的建立
12.3 复杂决策建模
12.3.1 决策表
12.3.2 决策树
12.4 数据说明——数据字典
12.5 信息工程的功能建模
12.5.1 功能分解图
12.5.2 过程依赖图
习题
第13章 需求分析模型与技术综合运用
13.1 为什么需要建模
13.1.1 模型的作用
13.1.2 建模的复杂度简化方法:抽象与分解
13.2 两个世界与三种模型
13.2.1 计算世界与计算模型
13.2.2 问题世界与业务模型
13.2.3 中间状态与分析模型
13.3 分析模型
13.3.1 半形式化语言
13.3.2 多视点方法
13.3.3 模型、表示法、技术、方法和工具
13.4 解决方案设计
13.4.1 设计活动特征
13.4.2 如何提高创造性
13.5 需求分析技术的综合运用
13.5.1 综合运用的需要
13.5.2 需求分析的方法学
13.5.3 Wieringa框架
13.5.4 Zachman框架
习题
第14章 后期阶段的需求文档化
14.1 用例文档
14.1.1 用例文档的内容
14.1.2 用例文档评审检查列表
14.2 软件需求规格说明
14.2.1 模板的选择与裁剪
14.2.2 IEEE软件需求规格说明模板
14.2.3 优秀需求规格说明文档的特性
14.2.4 软件需求规格说明评审检查列表
14.3 系统需求规格说明
第15章 需求验证
15.1 需求评审
15.1.1 参与需求评审的人员
15.1.2 评审的过程
15.1.3 评审的检查方法
15.1.4 评审的类型
15.2 需求验证的其他方法
15.2.1 原型与模拟
15.2.2 开发测试用例
15.2.3 用户手册编制
15.2.4 利用跟踪关系
15.2.5 自动化分析
15.3 问题的修正
15.4 产品验证
15.4.1 易用性验证:实验室测试
15.4.2 易用性验证:在线测试
15.4.3 简单价值验证:客户访谈
15.4.4 基于最小可行产品的价值验证
习题
第四部分 需求管理和工程管理
第16章 需求管理
16.1 需求管理概述
16.2 维护需求基线
16.2.1 需求基线的内容
16.2.2 需求基线的维护
16.3 实现需求跟踪
16.3.1 需求跟踪
16.3.2 需求跟踪的用途
16.3.3 需求跟踪的内容
16.3.4 需求跟踪的实现方法
16.3.5 需求跟踪过程的建立
16.3.6 需求依赖
16.4 控制变更
16.4.1 导致需求变化的因素
16.4.2 变更控制过程
16.4.3 变更控制中的注意事项
16.5 实践中的需求管理
16.6 下游产品管理
习题
第17章 需求工程的过程管理
17.1 引言
17.2 需求工程过程的环境依赖性
17.3 需求工程过程的建立
17.3.1 建立过程框架
17.3.2 选择工作组件及应用实践方法
17.4 需求工程过程的改进
17.4.1 过程的评价
17.4.2 过程的改进
习题
第18章 需求工程中的项目管理
18.1 概述
18.2 资源支持
18.3 需求工程的生命周期规划
18.4 团队管理
18.4.1 组建需求团队的注意事项
18.4.2 维持需求团队内部的有效沟通
18.5 需求风险管理
18.5.1 风险管理过程
18.5.2 常见的需求风险
习题
本书参考文献
前辅文
第一部分 绪论
第1章 需求工程导论
1.1 需求与需求处理
1.1.1 软件工程需要专门的需求处理
1.1.2 软件需求处理技术的发展
1.2 什么是需求工程
1.3 为什么需要需求工程
1.3.1 软件生产中的需求问题
1.3.2 软件需求问题的原因分析
1.3.3 为什么会感觉不到软件需求工程的重要性
1.4 什么时机执行需求工程
1.4.1 系统工程、软件工程与需求工程
1.4.2 需求工程对其他软件开发活动的影响
1.5 谁负责执行需求工程
1.5.1 需求工程师
1.5.2 需求工程师的技能要求
1.5.3 需求开发是团队行为
1.6 如何执行软件需求工程
1.6.1 软件需求工程基本活动
1.6.2 需求开发过程
1.6.3 需求管理
1.7 软件需求的人工智能处理方法
1.7.1 特征请求的获取与分析
1.7.2 特征请求的管理
1.8 产品工程
1.8.1 不同类型的软件产品需要不同的处理方式
1.8.2 传统的软件需求工程与产品工程
1.8.3 产品开发中的需求处理
1.8.4 产品经理
习题
第2章 需求基础
2.1 满足需求就是解决问题
2.1.1 问题与需求
2.1.2 问题解决的两个方面——问题域与解系统
2.1.3 问题解决的基础——模拟与共享现象
2.1.4 问题解决方式与问题解决方案
2.1.5 问题解决的困难性
2.2 需求和问题都有层次性
2.2.1 战略问题与业务需求
2.2.2 任务问题与用户需求
2.2.3 系统行为问题与系统级需求
2.2.4 需求开发要遵从层次性
2.3 需求的分类与表述
2.3.1 需求的分类
2.3.2 功能需求
2.3.3 性能需求
2.3.4 质量属性
2.3.5 对外接口
2.3.6 约束
2.3.7 其他需求
2.4 优秀需求的特性
2.4.1 完备性
2.4.2 正确性
2.4.3 可行性
2.4.4 必要性
2.4.5 无歧义
2.4.6 可验证
习题
第3章 需求开发过程
3.1 需求开发过程
3.1.1 迭代和并发的需求开发过程
3.1.2 需求开发过程中的学习性
3.1.3 常用的需求开发过程模型
3.2 需求获取
3.2.1 需求获取的活动与任务
3.2.2 获取信息的内容与来源
3.2.3 获取信息的方法与成果
3.2.4 获取信息过程的注意事项
3.2.5 需求获取的困难分析
3.2.6 实践中的需求获取
3.3 需求分析
3.3.1 概述
3.3.2 需求分析的活动与任务
3.3.3 需求分析方法和技术
3.3.4 实践中的需求分析
3.4 需求规格说明
3.4.1 需求文档的类型
3.4.2 需求文档的描述手段
3.4.3 需求文档的写作要点
3.4.4 实践中的需求规格说明
3.5 需求验证
3.6 敏捷方法的需求开发过程
3.6.1 极限编程
3.6.2 Scrum
3.6.3 精益方法
3.7 产品工程的需求开发过程
习题
第二部分 前期阶段的需求开发
第4章 确定项目的前景与范围
4.1 为什么要确定项目的前景与范围
4.2 确定项目前景与范围的活动
4.3 获取问题和需求
4.3.1 硬数据采集
4.3.2 面谈
4.3.3 群体面谈
4.3.4 头脑风暴
4.3.5 调查问卷
4.4 问题分析
4.4.1 发现问题
4.4.2 明确问题
4.4.3 发现业务需求
4.4.4 定义问题解决方案及系统特性
4.4.5 问题分析方法的局限性
4.5 目标模型与面向目标的分析
4.5.1 “目标”概念
4.5.2 目标模型
4.5.3 目标分析过程
4.6 界定系统边界
4.6.1 用例图
4.6.2 建立用例图
4.6.3 明确假设与依赖
4.6.4 定义系统约束
4.7 确定需求优先级
4.7.1 为什么要确定需求优先级
4.7.2 确定需求优先级的常用方法
习题
第5章 涉众分析
5.1 如何进行涉众分析
5.2 涉众分析过程
5.3 涉众识别
5.3.1 涉众识别的目标
5.3.2 涉众识别的方法
5.4 涉众描述
5.4.1 涉众描述的内容
5.4.2 涉众描述示例
5.5 涉众评估
5.5.1 优先级评估
5.5.2 风险评估
5.5.3 共赢分析
5.6 涉众代表选择
5.6.1 涉众采样
5.6.2 用户替代源
5.7 涉众参与策略制定
5.8 使用目标模型进行涉众分析
5.8.1 使用主体依赖模型描述涉众互动
5.8.2 基于目标模型描述及评估涉众
5.9 用户画像
5.9.1 用户画像描述
5.9.2 用户画像的作用
5.9.3 用户旅程地图
习题
第6章 复杂情景分析
6.1 非功能需求分析
6.1.1 非功能需求分析的困难
6.1.2 使用目标模型描述非功能需求
6.1.3 使用目标模型分析非功能需求的过程
6.1.4 整合功能需求和非功能需求的目标模型示例
6.2 业务过程分析
6.2.1 活动图的基本元素
6.2.2 活动图的关键:令牌平衡
6.2.3 信号与事件机制
6.2.4 异常与中断机制
6.2.5 分区
6.2.6 层次结构与图简化元素
6.2.7 使用活动图进行业务过程分析
6.3 特征分析
6.3.1 面向特征的领域分析
6.3.2 特征模型及其建模过程
习题
第7章 产品分析
7.1 概述
7.2 机会识别
7.2.1 寻找机会
7.2.2 有组织的产品创新
7.2.3 评估产品机会
7.3 市场分析
7.3.1 市场具象
7.3.2 市场细分
7.3.3 市场规模估算
7.3.4 市场调查与研究
7.4 产品涉众分析
7.4.1 几类特殊用户
7.4.2 描述用户使用产品的全生命周期过程
7.5 商业模式设计
7.5.1 商业模式精益画布
7.5.2 常见的商业模式
习题
第8章 前期阶段的需求文档化
8.1 前景与范围文档
8.1.1 引言
8.1.2 业务需求
8.1.3 涉众特征
8.1.4 项目前景
8.1.5 系统功能特性与系统非功能需求
8.2 商业需求文档
习题
第三部分 后期阶段的需求开发
第9章 基于用例/场景模型开发用户需求
9.1 用户需求开发活动的展开
9.2 用例与场景
9.2.1 什么是用例/场景
9.2.2 用例/场景的组织特点
9.2.3 用例/场景的层次性
9.2.4 基于用例/场景进行软件开发
9.3 用例/场景模型
9.3.1 场景的定位
9.3.2 用例的定位
9.3.3 理解用例相关概念
9.3.4 用例图
9.4 以用例/场景模型为主线索开展用户需求开发
9.4.1 依据系统用例图、目标模型建立初始用例/场景模型
9.4.2 根据用例/场景模型指导获取,完善层次结构
9.4.3 使用用例/场景组织获取内容
9.4.4 用新组织或修正的用例/场景完善用例/场景模型
9.4.5 依据用例/场景模型建立需求分析模型
9.4.6 分析用例/场景发现仍需获取的需求内容
9.5 用户故事
9.5.1 用户故事的特点
9.5.2 用户故事方法的要素
9.5.3 用户故事地图
9.5.4 用户故事的书写
习题
第10章 需求获取方法
10.1 面谈
10.1.1 谈话交流模式
10.1.2 问题类型
10.1.3 面谈过程
10.1.4 面谈的类别
10.2 原型
10.2.1 不确定性与原型法
10.2.2 原型法的应用过程
10.2.3 坚持抛弃需求获取原型
10.2.4 控制原型成本
10.2.5 善用故事板原型
10.2.6 原型法的风险
10.3 观察
10.3.1 情景性
10.3.2 观察法
10.3.3 观察法的应用场景
10.3.4 采样观察
10.3.5 民族志
10.4 文档审查
10.4.1 对文档的需求获取方法
10.4.2 需求重用
10.4.3 文档分析与需求剥离
习题
第11章 面向对象分析
11.1 面向对象分析与UML
11.1.1 面向对象方法的基本思路
11.1.2 UML与面向对象分析
11.2 对象模型
11.2.1 对象
11.2.2 类
11.2.3 类之间的关系
11.2.4 领域模型
11.3 建立领域模型
11.3.1 识别候选对象与类
11.3.2 确定概念类
11.3.3 建立类之间的关联
11.3.4 添加类的重要属性
11.3.5 领域模型的分析作用
11.4 行为模型——交互图
11.4.1 顺序图
11.4.2 通信图
11.4.3 系统顺序图
11.5 建立交互图
11.5.1 建立典型场景的系统顺序图
11.5.2 建立多场景系统顺序图
11.5.3 建立详细顺序图
11.5.4 交互图的分析作用
11.6 行为模型——状态图
11.6.1 状态图的发展历程
11.6.2 有限状态机
11.6.3 David Harel对FSM的扩展
11.6.4 UML的状态图
11.7 建立状态图
11.7.1 基于状态转移矩阵建立状态图
11.7.2 状态图的分析作用
11.8 对象约束语言
11.8.1 什么是对象约束语言(OCL)
11.8.2 OCL的应用
11.9 基于CRC卡的面向对象分析方法
11.9.1 CRC卡
11.9.2 基于CRC卡的职责驱动方法
11.10 需求细化
11.10.1 基于需求分析模型细化需求
11.10.2 细化需求实例
11.10.3 描述细化的需求
习题
第12章 结构化分析
12.1 数据建模
12.1.1 实体关系图(ERD)
12.1.2 依据充分描述信息的ERD建模
12.1.3 依据硬数据表单的ERD建模
12.1.4 复杂情况下的ERD建模
12.2 过程建模
12.2.1 过程建模的基本思路
12.2.2 数据流图(DFD)的基本元素
12.2.3 DFD的描述规则
12.2.4 DFD的分层结构
12.2.5 DFD层次结构的建立
12.3 复杂决策建模
12.3.1 决策表
12.3.2 决策树
12.4 数据说明——数据字典
12.5 信息工程的功能建模
12.5.1 功能分解图
12.5.2 过程依赖图
习题
第13章 需求分析模型与技术综合运用
13.1 为什么需要建模
13.1.1 模型的作用
13.1.2 建模的复杂度简化方法:抽象与分解
13.2 两个世界与三种模型
13.2.1 计算世界与计算模型
13.2.2 问题世界与业务模型
13.2.3 中间状态与分析模型
13.3 分析模型
13.3.1 半形式化语言
13.3.2 多视点方法
13.3.3 模型、表示法、技术、方法和工具
13.4 解决方案设计
13.4.1 设计活动特征
13.4.2 如何提高创造性
13.5 需求分析技术的综合运用
13.5.1 综合运用的需要
13.5.2 需求分析的方法学
13.5.3 Wieringa框架
13.5.4 Zachman框架
习题
第14章 后期阶段的需求文档化
14.1 用例文档
14.1.1 用例文档的内容
14.1.2 用例文档评审检查列表
14.2 软件需求规格说明
14.2.1 模板的选择与裁剪
14.2.2 IEEE软件需求规格说明模板
14.2.3 优秀需求规格说明文档的特性
14.2.4 软件需求规格说明评审检查列表
14.3 系统需求规格说明
第15章 需求验证
15.1 需求评审
15.1.1 参与需求评审的人员
15.1.2 评审的过程
15.1.3 评审的检查方法
15.1.4 评审的类型
15.2 需求验证的其他方法
15.2.1 原型与模拟
15.2.2 开发测试用例
15.2.3 用户手册编制
15.2.4 利用跟踪关系
15.2.5 自动化分析
15.3 问题的修正
15.4 产品验证
15.4.1 易用性验证:实验室测试
15.4.2 易用性验证:在线测试
15.4.3 简单价值验证:客户访谈
15.4.4 基于最小可行产品的价值验证
习题
第四部分 需求管理和工程管理
第16章 需求管理
16.1 需求管理概述
16.2 维护需求基线
16.2.1 需求基线的内容
16.2.2 需求基线的维护
16.3 实现需求跟踪
16.3.1 需求跟踪
16.3.2 需求跟踪的用途
16.3.3 需求跟踪的内容
16.3.4 需求跟踪的实现方法
16.3.5 需求跟踪过程的建立
16.3.6 需求依赖
16.4 控制变更
16.4.1 导致需求变化的因素
16.4.2 变更控制过程
16.4.3 变更控制中的注意事项
16.5 实践中的需求管理
16.6 下游产品管理
习题
第17章 需求工程的过程管理
17.1 引言
17.2 需求工程过程的环境依赖性
17.3 需求工程过程的建立
17.3.1 建立过程框架
17.3.2 选择工作组件及应用实践方法
17.4 需求工程过程的改进
17.4.1 过程的评价
17.4.2 过程的改进
习题
第18章 需求工程中的项目管理
18.1 概述
18.2 资源支持
18.3 需求工程的生命周期规划
18.4 团队管理
18.4.1 组建需求团队的注意事项
18.4.2 维持需求团队内部的有效沟通
18.5 需求风险管理
18.5.1 风险管理过程
18.5.2 常见的需求风险
习题
本书参考文献
前辅文
第一部分 绪论
第1章 需求工程导论
1.1 需求与需求处理
1.1.1 软件工程需要专门的需求处理
1.1.2 软件需求处理技术的发展
1.2 什么是需求工程
1.3 为什么需要需求工程
1.3.1 软件生产中的需求问题
1.3.2 软件需求问题的原因分析
1.3.3 为什么会感觉不到软件需求工程的重要性
1.4 什么时机执行需求工程
1.4.1 系统工程、软件工程与需求工程
1.4.2 需求工程对其他软件开发活动的影响
1.5 谁负责执行需求工程
1.5.1 需求工程师
1.5.2 需求工程师的技能要求
1.5.3 需求开发是团队行为
1.6 如何执行软件需求工程
1.6.1 软件需求工程基本活动
1.6.2 需求开发过程
1.6.3 需求管理
1.7 软件需求的人工智能处理方法
1.7.1 特征请求的获取与分析
1.7.2 特征请求的管理
1.8 产品工程
1.8.1 不同类型的软件产品需要不同的处理方式
1.8.2 传统的软件需求工程与产品工程
1.8.3 产品开发中的需求处理
1.8.4 产品经理
习题
第2章 需求基础
2.1 满足需求就是解决问题
2.1.1 问题与需求
2.1.2 问题解决的两个方面——问题域与解系统
2.1.3 问题解决的基础——模拟与共享现象
2.1.4 问题解决方式与问题解决方案
2.1.5 问题解决的困难性
2.2 需求和问题都有层次性
2.2.1 战略问题与业务需求
2.2.2 任务问题与用户需求
2.2.3 系统行为问题与系统级需求
2.2.4 需求开发要遵从层次性
2.3 需求的分类与表述
2.3.1 需求的分类
2.3.2 功能需求
2.3.3 性能需求
2.3.4 质量属性
2.3.5 对外接口
2.3.6 约束
2.3.7 其他需求
2.4 优秀需求的特性
2.4.1 完备性
2.4.2 正确性
2.4.3 可行性
2.4.4 必要性
2.4.5 无歧义
2.4.6 可验证
习题
第3章 需求开发过程
3.1 需求开发过程
3.1.1 迭代和并发的需求开发过程
3.1.2 需求开发过程中的学习性
3.1.3 常用的需求开发过程模型
3.2 需求获取
3.2.1 需求获取的活动与任务
3.2.2 获取信息的内容与来源
3.2.3 获取信息的方法与成果
3.2.4 获取信息过程的注意事项
3.2.5 需求获取的困难分析
3.2.6 实践中的需求获取
3.3 需求分析
3.3.1 概述
3.3.2 需求分析的活动与任务
3.3.3 需求分析方法和技术
3.3.4 实践中的需求分析
3.4 需求规格说明
3.4.1 需求文档的类型
3.4.2 需求文档的描述手段
3.4.3 需求文档的写作要点
3.4.4 实践中的需求规格说明
3.5 需求验证
3.6 敏捷方法的需求开发过程
3.6.1 极限编程
3.6.2 Scrum
3.6.3 精益方法
3.7 产品工程的需求开发过程
习题
第二部分 前期阶段的需求开发
第4章 确定项目的前景与范围
4.1 为什么要确定项目的前景与范围
4.2 确定项目前景与范围的活动
4.3 获取问题和需求
4.3.1 硬数据采集
4.3.2 面谈
4.3.3 群体面谈
4.3.4 头脑风暴
4.3.5 调查问卷
4.4 问题分析
4.4.1 发现问题
4.4.2 明确问题
4.4.3 发现业务需求
4.4.4 定义问题解决方案及系统特性
4.4.5 问题分析方法的局限性
4.5 目标模型与面向目标的分析
4.5.1 “目标”概念
4.5.2 目标模型
4.5.3 目标分析过程
4.6 界定系统边界
4.6.1 用例图
4.6.2 建立用例图
4.6.3 明确假设与依赖
4.6.4 定义系统约束
4.7 确定需求优先级
4.7.1 为什么要确定需求优先级
4.7.2 确定需求优先级的常用方法
习题
第5章 涉众分析
5.1 如何进行涉众分析
5.2 涉众分析过程
5.3 涉众识别
5.3.1 涉众识别的目标
5.3.2 涉众识别的方法
5.4 涉众描述
5.4.1 涉众描述的内容
5.4.2 涉众描述示例
5.5 涉众评估
5.5.1 优先级评估
5.5.2 风险评估
5.5.3 共赢分析
5.6 涉众代表选择
5.6.1 涉众采样
5.6.2 用户替代源
5.7 涉众参与策略制定
5.8 使用目标模型进行涉众分析
5.8.1 使用主体依赖模型描述涉众互动
5.8.2 基于目标模型描述及评估涉众
5.9 用户画像
5.9.1 用户画像描述
5.9.2 用户画像的作用
5.9.3 用户旅程地图
习题
第6章 复杂情景分析
6.1 非功能需求分析
6.1.1 非功能需求分析的困难
6.1.2 使用目标模型描述非功能需求
6.1.3 使用目标模型分析非功能需求的过程
6.1.4 整合功能需求和非功能需求的目标模型示例
6.2 业务过程分析
6.2.1 活动图的基本元素
6.2.2 活动图的关键:令牌平衡
6.2.3 信号与事件机制
6.2.4 异常与中断机制
6.2.5 分区
6.2.6 层次结构与图简化元素
6.2.7 使用活动图进行业务过程分析
6.3 特征分析
6.3.1 面向特征的领域分析
6.3.2 特征模型及其建模过程
习题
第7章 产品分析
7.1 概述
7.2 机会识别
7.2.1 寻找机会
7.2.2 有组织的产品创新
7.2.3 评估产品机会
7.3 市场分析
7.3.1 市场具象
7.3.2 市场细分
7.3.3 市场规模估算
7.3.4 市场调查与研究
7.4 产品涉众分析
7.4.1 几类特殊用户
7.4.2 描述用户使用产品的全生命周期过程
7.5 商业模式设计
7.5.1 商业模式精益画布
7.5.2 常见的商业模式
习题
第8章 前期阶段的需求文档化
8.1 前景与范围文档
8.1.1 引言
8.1.2 业务需求
8.1.3 涉众特征
8.1.4 项目前景
8.1.5 系统功能特性与系统非功能需求
8.2 商业需求文档
习题
第三部分 后期阶段的需求开发
第9章 基于用例/场景模型开发用户需求
9.1 用户需求开发活动的展开
9.2 用例与场景
9.2.1 什么是用例/场景
9.2.2 用例/场景的组织特点
9.2.3 用例/场景的层次性
9.2.4 基于用例/场景进行软件开发
9.3 用例/场景模型
9.3.1 场景的定位
9.3.2 用例的定位
9.3.3 理解用例相关概念
9.3.4 用例图
9.4 以用例/场景模型为主线索开展用户需求开发
9.4.1 依据系统用例图、目标模型建立初始用例/场景模型
9.4.2 根据用例/场景模型指导获取,完善层次结构
9.4.3 使用用例/场景组织获取内容
9.4.4 用新组织或修正的用例/场景完善用例/场景模型
9.4.5 依据用例/场景模型建立需求分析模型
9.4.6 分析用例/场景发现仍需获取的需求内容
9.5 用户故事
9.5.1 用户故事的特点
9.5.2 用户故事方法的要素
9.5.3 用户故事地图
9.5.4 用户故事的书写
习题
第10章 需求获取方法
10.1 面谈
10.1.1 谈话交流模式
10.1.2 问题类型
10.1.3 面谈过程
10.1.4 面谈的类别
10.2 原型
10.2.1 不确定性与原型法
10.2.2 原型法的应用过程
10.2.3 坚持抛弃需求获取原型
10.2.4 控制原型成本
10.2.5 善用故事板原型
10.2.6 原型法的风险
10.3 观察
10.3.1 情景性
10.3.2 观察法
10.3.3 观察法的应用场景
10.3.4 采样观察
10.3.5 民族志
10.4 文档审查
10.4.1 对文档的需求获取方法
10.4.2 需求重用
10.4.3 文档分析与需求剥离
习题
第11章 面向对象分析
11.1 面向对象分析与UML
11.1.1 面向对象方法的基本思路
11.1.2 UML与面向对象分析
11.2 对象模型
11.2.1 对象
11.2.2 类
11.2.3 类之间的关系
11.2.4 领域模型
11.3 建立领域模型
11.3.1 识别候选对象与类
11.3.2 确定概念类
11.3.3 建立类之间的关联
11.3.4 添加类的重要属性
11.3.5 领域模型的分析作用
11.4 行为模型——交互图
11.4.1 顺序图
11.4.2 通信图
11.4.3 系统顺序图
11.5 建立交互图
11.5.1 建立典型场景的系统顺序图
11.5.2 建立多场景系统顺序图
11.5.3 建立详细顺序图
11.5.4 交互图的分析作用
11.6 行为模型——状态图
11.6.1 状态图的发展历程
11.6.2 有限状态机
11.6.3 David Harel对FSM的扩展
11.6.4 UML的状态图
11.7 建立状态图
11.7.1 基于状态转移矩阵建立状态图
11.7.2 状态图的分析作用
11.8 对象约束语言
11.8.1 什么是对象约束语言(OCL)
11.8.2 OCL的应用
11.9 基于CRC卡的面向对象分析方法
11.9.1 CRC卡
11.9.2 基于CRC卡的职责驱动方法
11.10 需求细化
11.10.1 基于需求分析模型细化需求
11.10.2 细化需求实例
11.10.3 描述细化的需求
习题
第12章 结构化分析
12.1 数据建模
12.1.1 实体关系图(ERD)
12.1.2 依据充分描述信息的ERD建模
12.1.3 依据硬数据表单的ERD建模
12.1.4 复杂情况下的ERD建模
12.2 过程建模
12.2.1 过程建模的基本思路
12.2.2 数据流图(DFD)的基本元素
12.2.3 DFD的描述规则
12.2.4 DFD的分层结构
12.2.5 DFD层次结构的建立
12.3 复杂决策建模
12.3.1 决策表
12.3.2 决策树
12.4 数据说明——数据字典
12.5 信息工程的功能建模
12.5.1 功能分解图
12.5.2 过程依赖图
习题
第13章 需求分析模型与技术综合运用
13.1 为什么需要建模
13.1.1 模型的作用
13.1.2 建模的复杂度简化方法:抽象与分解
13.2 两个世界与三种模型
13.2.1 计算世界与计算模型
13.2.2 问题世界与业务模型
13.2.3 中间状态与分析模型
13.3 分析模型
13.3.1 半形式化语言
13.3.2 多视点方法
13.3.3 模型、表示法、技术、方法和工具
13.4 解决方案设计
13.4.1 设计活动特征
13.4.2 如何提高创造性
13.5 需求分析技术的综合运用
13.5.1 综合运用的需要
13.5.2 需求分析的方法学
13.5.3 Wieringa框架
13.5.4 Zachman框架
习题
第14章 后期阶段的需求文档化
14.1 用例文档
14.1.1 用例文档的内容
14.1.2 用例文档评审检查列表
14.2 软件需求规格说明
14.2.1 模板的选择与裁剪
14.2.2 IEEE软件需求规格说明模板
14.2.3 优秀需求规格说明文档的特性
14.2.4 软件需求规格说明评审检查列表
14.3 系统需求规格说明
第15章 需求验证
15.1 需求评审
15.1.1 参与需求评审的人员
15.1.2 评审的过程
15.1.3 评审的检查方法
15.1.4 评审的类型
15.2 需求验证的其他方法
15.2.1 原型与模拟
15.2.2 开发测试用例
15.2.3 用户手册编制
15.2.4 利用跟踪关系
15.2.5 自动化分析
15.3 问题的修正
15.4 产品验证
15.4.1 易用性验证:实验室测试
15.4.2 易用性验证:在线测试
15.4.3 简单价值验证:客户访谈
15.4.4 基于最小可行产品的价值验证
习题
第四部分 需求管理和工程管理
第16章 需求管理
16.1 需求管理概述
16.2 维护需求基线
16.2.1 需求基线的内容
16.2.2 需求基线的维护
16.3 实现需求跟踪
16.3.1 需求跟踪
16.3.2 需求跟踪的用途
16.3.3 需求跟踪的内容
16.3.4 需求跟踪的实现方法
16.3.5 需求跟踪过程的建立
16.3.6 需求依赖
16.4 控制变更
16.4.1 导致需求变化的因素
16.4.2 变更控制过程
16.4.3 变更控制中的注意事项
16.5 实践中的需求管理
16.6 下游产品管理
习题
第17章 需求工程的过程管理
17.1 引言
17.2 需求工程过程的环境依赖性
17.3 需求工程过程的建立
17.3.1 建立过程框架
17.3.2 选择工作组件及应用实践方法
17.4 需求工程过程的改进
17.4.1 过程的评价
17.4.2 过程的改进
习题
第18章 需求工程中的项目管理
18.1 概述
18.2 资源支持
18.3 需求工程的生命周期规划
18.4 团队管理
18.4.1 组建需求团队的注意事项
18.4.2 维持需求团队内部的有效沟通
18.5 需求风险管理
18.5.1 风险管理过程
18.5.2 常见的需求风险
习题
本书参考文献
前辅文
第一部分 绪论
第1章 需求工程导论
1.1 需求与需求处理
1.1.1 软件工程需要专门的需求处理
1.1.2 软件需求处理技术的发展
1.2 什么是需求工程
1.3 为什么需要需求工程
1.3.1 软件生产中的需求问题
1.3.2 软件需求问题的原因分析
1.3.3 为什么会感觉不到软件需求工程的重要性
1.4 什么时机执行需求工程
1.4.1 系统工程、软件工程与需求工程
1.4.2 需求工程对其他软件开发活动的影响
1.5 谁负责执行需求工程
1.5.1 需求工程师
1.5.2 需求工程师的技能要求
1.5.3 需求开发是团队行为
1.6 如何执行软件需求工程
1.6.1 软件需求工程基本活动
1.6.2 需求开发过程
1.6.3 需求管理
1.7 软件需求的人工智能处理方法
1.7.1 特征请求的获取与分析
1.7.2 特征请求的管理
1.8 产品工程
1.8.1 不同类型的软件产品需要不同的处理方式
1.8.2 传统的软件需求工程与产品工程
1.8.3 产品开发中的需求处理
1.8.4 产品经理
习题
第2章 需求基础
2.1 满足需求就是解决问题
2.1.1 问题与需求
2.1.2 问题解决的两个方面——问题域与解系统
2.1.3 问题解决的基础——模拟与共享现象
2.1.4 问题解决方式与问题解决方案
2.1.5 问题解决的困难性
2.2 需求和问题都有层次性
2.2.1 战略问题与业务需求
2.2.2 任务问题与用户需求
2.2.3 系统行为问题与系统级需求
2.2.4 需求开发要遵从层次性
2.3 需求的分类与表述
2.3.1 需求的分类
2.3.2 功能需求
2.3.3 性能需求
2.3.4 质量属性
2.3.5 对外接口
2.3.6 约束
2.3.7 其他需求
2.4 优秀需求的特性
2.4.1 完备性
2.4.2 正确性
2.4.3 可行性
2.4.4 必要性
2.4.5 无歧义
2.4.6 可验证
习题
第3章 需求开发过程
3.1 需求开发过程
3.1.1 迭代和并发的需求开发过程
3.1.2 需求开发过程中的学习性
3.1.3 常用的需求开发过程模型
3.2 需求获取
3.2.1 需求获取的活动与任务
3.2.2 获取信息的内容与来源
3.2.3 获取信息的方法与成果
3.2.4 获取信息过程的注意事项
3.2.5 需求获取的困难分析
3.2.6 实践中的需求获取
3.3 需求分析
3.3.1 概述
3.3.2 需求分析的活动与任务
3.3.3 需求分析方法和技术
3.3.4 实践中的需求分析
3.4 需求规格说明
3.4.1 需求文档的类型
3.4.2 需求文档的描述手段
3.4.3 需求文档的写作要点
3.4.4 实践中的需求规格说明
3.5 需求验证
3.6 敏捷方法的需求开发过程
3.6.1 极限编程
3.6.2 Scrum
3.6.3 精益方法
3.7 产品工程的需求开发过程
习题
第二部分 前期阶段的需求开发
第4章 确定项目的前景与范围
4.1 为什么要确定项目的前景与范围
4.2 确定项目前景与范围的活动
4.3 获取问题和需求
4.3.1 硬数据采集
4.3.2 面谈
4.3.3 群体面谈
4.3.4 头脑风暴
4.3.5 调查问卷
4.4 问题分析
4.4.1 发现问题
4.4.2 明确问题
4.4.3 发现业务需求
4.4.4 定义问题解决方案及系统特性
4.4.5 问题分析方法的局限性
4.5 目标模型与面向目标的分析
4.5.1 “目标”概念
4.5.2 目标模型
4.5.3 目标分析过程
4.6 界定系统边界
4.6.1 用例图
4.6.2 建立用例图
4.6.3 明确假设与依赖
4.6.4 定义系统约束
4.7 确定需求优先级
4.7.1 为什么要确定需求优先级
4.7.2 确定需求优先级的常用方法
习题
第5章 涉众分析
5.1 如何进行涉众分析
5.2 涉众分析过程
5.3 涉众识别
5.3.1 涉众识别的目标
5.3.2 涉众识别的方法
5.4 涉众描述
5.4.1 涉众描述的内容
5.4.2 涉众描述示例
5.5 涉众评估
5.5.1 优先级评估
5.5.2 风险评估
5.5.3 共赢分析
5.6 涉众代表选择
5.6.1 涉众采样
5.6.2 用户替代源
5.7 涉众参与策略制定
5.8 使用目标模型进行涉众分析
5.8.1 使用主体依赖模型描述涉众互动
5.8.2 基于目标模型描述及评估涉众
5.9 用户画像
5.9.1 用户画像描述
5.9.2 用户画像的作用
5.9.3 用户旅程地图
习题
第6章 复杂情景分析
6.1 非功能需求分析
6.1.1 非功能需求分析的困难
6.1.2 使用目标模型描述非功能需求
6.1.3 使用目标模型分析非功能需求的过程
6.1.4 整合功能需求和非功能需求的目标模型示例
6.2 业务过程分析
6.2.1 活动图的基本元素
6.2.2 活动图的关键:令牌平衡
6.2.3 信号与事件机制
6.2.4 异常与中断机制
6.2.5 分区
6.2.6 层次结构与图简化元素
6.2.7 使用活动图进行业务过程分析
6.3 特征分析
6.3.1 面向特征的领域分析
6.3.2 特征模型及其建模过程
习题
第7章 产品分析
7.1 概述
7.2 机会识别
7.2.1 寻找机会
7.2.2 有组织的产品创新
7.2.3 评估产品机会
7.3 市场分析
7.3.1 市场具象
7.3.2 市场细分
7.3.3 市场规模估算
7.3.4 市场调查与研究
7.4 产品涉众分析
7.4.1 几类特殊用户
7.4.2 描述用户使用产品的全生命周期过程
7.5 商业模式设计
7.5.1 商业模式精益画布
7.5.2 常见的商业模式
习题
第8章 前期阶段的需求文档化
8.1 前景与范围文档
8.1.1 引言
8.1.2 业务需求
8.1.3 涉众特征
8.1.4 项目前景
8.1.5 系统功能特性与系统非功能需求
8.2 商业需求文档
习题
第三部分 后期阶段的需求开发
第9章 基于用例/场景模型开发用户需求
9.1 用户需求开发活动的展开
9.2 用例与场景
9.2.1 什么是用例/场景
9.2.2 用例/场景的组织特点
9.2.3 用例/场景的层次性
9.2.4 基于用例/场景进行软件开发
9.3 用例/场景模型
9.3.1 场景的定位
9.3.2 用例的定位
9.3.3 理解用例相关概念
9.3.4 用例图
9.4 以用例/场景模型为主线索开展用户需求开发
9.4.1 依据系统用例图、目标模型建立初始用例/场景模型
9.4.2 根据用例/场景模型指导获取,完善层次结构
9.4.3 使用用例/场景组织获取内容
9.4.4 用新组织或修正的用例/场景完善用例/场景模型
9.4.5 依据用例/场景模型建立需求分析模型
9.4.6 分析用例/场景发现仍需获取的需求内容
9.5 用户故事
9.5.1 用户故事的特点
9.5.2 用户故事方法的要素
9.5.3 用户故事地图
9.5.4 用户故事的书写
习题
第10章 需求获取方法
10.1 面谈
10.1.1 谈话交流模式
10.1.2 问题类型
10.1.3 面谈过程
10.1.4 面谈的类别
10.2 原型
10.2.1 不确定性与原型法
10.2.2 原型法的应用过程
10.2.3 坚持抛弃需求获取原型
10.2.4 控制原型成本
10.2.5 善用故事板原型
10.2.6 原型法的风险
10.3 观察
10.3.1 情景性
10.3.2 观察法
10.3.3 观察法的应用场景
10.3.4 采样观察
10.3.5 民族志
10.4 文档审查
10.4.1 对文档的需求获取方法
10.4.2 需求重用
10.4.3 文档分析与需求剥离
习题
第11章 面向对象分析
11.1 面向对象分析与UML
11.1.1 面向对象方法的基本思路
11.1.2 UML与面向对象分析
11.2 对象模型
11.2.1 对象
11.2.2 类
11.2.3 类之间的关系
11.2.4 领域模型
11.3 建立领域模型
11.3.1 识别候选对象与类
11.3.2 确定概念类
11.3.3 建立类之间的关联
11.3.4 添加类的重要属性
11.3.5 领域模型的分析作用
11.4 行为模型——交互图
11.4.1 顺序图
11.4.2 通信图
11.4.3 系统顺序图
11.5 建立交互图
11.5.1 建立典型场景的系统顺序图
11.5.2 建立多场景系统顺序图
11.5.3 建立详细顺序图
11.5.4 交互图的分析作用
11.6 行为模型——状态图
11.6.1 状态图的发展历程
11.6.2 有限状态机
11.6.3 David Harel对FSM的扩展
11.6.4 UML的状态图
11.7 建立状态图
11.7.1 基于状态转移矩阵建立状态图
11.7.2 状态图的分析作用
11.8 对象约束语言
11.8.1 什么是对象约束语言(OCL)
11.8.2 OCL的应用
11.9 基于CRC卡的面向对象分析方法
11.9.1 CRC卡
11.9.2 基于CRC卡的职责驱动方法
11.10 需求细化
11.10.1 基于需求分析模型细化需求
11.10.2 细化需求实例
11.10.3 描述细化的需求
习题
第12章 结构化分析
12.1 数据建模
12.1.1 实体关系图(ERD)
12.1.2 依据充分描述信息的ERD建模
12.1.3 依据硬数据表单的ERD建模
12.1.4 复杂情况下的ERD建模
12.2 过程建模
12.2.1 过程建模的基本思路
12.2.2 数据流图(DFD)的基本元素
12.2.3 DFD的描述规则
12.2.4 DFD的分层结构
12.2.5 DFD层次结构的建立
12.3 复杂决策建模
12.3.1 决策表
12.3.2 决策树
12.4 数据说明——数据字典
12.5 信息工程的功能建模
12.5.1 功能分解图
12.5.2 过程依赖图
习题
第13章 需求分析模型与技术综合运用
13.1 为什么需要建模
13.1.1 模型的作用
13.1.2 建模的复杂度简化方法:抽象与分解
13.2 两个世界与三种模型
13.2.1 计算世界与计算模型
13.2.2 问题世界与业务模型
13.2.3 中间状态与分析模型
13.3 分析模型
13.3.1 半形式化语言
13.3.2 多视点方法
13.3.3 模型、表示法、技术、方法和工具
13.4 解决方案设计
13.4.1 设计活动特征
13.4.2 如何提高创造性
13.5 需求分析技术的综合运用
13.5.1 综合运用的需要
13.5.2 需求分析的方法学
13.5.3 Wieringa框架
13.5.4 Zachman框架
习题
第14章 后期阶段的需求文档化
14.1 用例文档
14.1.1 用例文档的内容
14.1.2 用例文档评审检查列表
14.2 软件需求规格说明
14.2.1 模板的选择与裁剪
14.2.2 IEEE软件需求规格说明模板
14.2.3 优秀需求规格说明文档的特性
14.2.4 软件需求规格说明评审检查列表
14.3 系统需求规格说明
第15章 需求验证
15.1 需求评审
15.1.1 参与需求评审的人员
15.1.2 评审的过程
15.1.3 评审的检查方法
15.1.4 评审的类型
15.2 需求验证的其他方法
15.2.1 原型与模拟
15.2.2 开发测试用例
15.2.3 用户手册编制
15.2.4 利用跟踪关系
15.2.5 自动化分析
15.3 问题的修正
15.4 产品验证
15.4.1 易用性验证:实验室测试
15.4.2 易用性验证:在线测试
15.4.3 简单价值验证:客户访谈
15.4.4 基于最小可行产品的价值验证
习题
第四部分 需求管理和工程管理
第16章 需求管理
16.1 需求管理概述
16.2 维护需求基线
16.2.1 需求基线的内容
16.2.2 需求基线的维护
16.3 实现需求跟踪
16.3.1 需求跟踪
16.3.2 需求跟踪的用途
16.3.3 需求跟踪的内容
16.3.4 需求跟踪的实现方法
16.3.5 需求跟踪过程的建立
16.3.6 需求依赖
16.4 控制变更
16.4.1 导致需求变化的因素
16.4.2 变更控制过程
16.4.3 变更控制中的注意事项
16.5 实践中的需求管理
16.6 下游产品管理
习题
第17章 需求工程的过程管理
17.1 引言
17.2 需求工程过程的环境依赖性
17.3 需求工程过程的建立
17.3.1 建立过程框架
17.3.2 选择工作组件及应用实践方法
17.4 需求工程过程的改进
17.4.1 过程的评价
17.4.2 过程的改进
习题
第18章 需求工程中的项目管理
18.1 概述
18.2 资源支持
18.3 需求工程的生命周期规划
18.4 团队管理
18.4.1 组建需求团队的注意事项
18.4.2 维持需求团队内部的有效沟通
18.5 需求风险管理
18.5.1 风险管理过程
18.5.2 常见的需求风险
习题
本书参考文献

















