第一部分 软件需求:是什么和为什么 1
第1章 基本的软件需求 1
1.1 软件需求的定义 2
1.1.1 一些关于“需求”的解释 2
1.1.2 需求的层次 3
1.2 每个项目都有需求 4
1.3 什么情况将会导致好的群体发生不合格的需求说明 5
1.4 高质量的需求过程带来的好处 7
1.5 优透需求具有的特性 7
1.5.1 需求说明的特征 7
1.5.2 需求规格说明的特点 8
1.6 需求的开发和管理 9
第2章 客户的需求观 11
2.1 谁是客户 12
2.2 客户与开发人员之间的合作关系 12
2.2.1 软件客户需求权利书 13
2.2.2 软件客户需求义务书 15
2.3 “签约”意味着什么 17
第3章 需求工程的推荐方法 18
3.1 知识技能 19
3.2 需求获取 20
3.3 需求分析 21
3.4 需求规格说明 22
3.5 需求验证 23
3.6 需求管理 23
3.7 项目管理 24
第4章 改进需求过程 26
4.1 需求与其他项目过程的联系 26
4.2 软件需求对其他项目风险承担者的影响 27
4.3 软件过程改进的基础 28
4.4 过程改进周期 29
4.4.1 评估当前采用的方法 29
4.4.2 制定改进活动计划 30
4.4.3 建立、实验和实施新的过程 31
4.4.4 评估结果 32
4.5 需求过程的积累材料 33
4.5.1 需求开发过程的积累材料 34
4.5.2 需求管理过程的积累材料 34
4.6 需求过程改进路标 35
第5章 软件需求与风险管理 37
5.1 软件风险管理基础 38
5.1.1 风险管理的要素 38
5.1.2 编写项目风险文档 39
5.1.3 制定风险管理计划 40
5.2 与需求有关的风险 41
5.2.1 需求获取 41
5.2.2 需求分析 42
5.2.3 需求规格说明 42
5.2.4 需求验证 43
5.2.5 需求管理 43
5.3 风险管理是你的好助手 43
第二部分 软件需求工程 45
第6章 建立项目视图与范围 45
6.1 通过业务需求确定项目视图 45
6.2 项目视图和范围的文档 46
6.3 关联图 50
6.4 把注意力始终集中在项目的范围上 51
第7章 寻找客户的需求 52
7.1 需求的来源 52
7.2 用户类 53
7.3 寻找用户代表 54
7.4 产品的代表者 55
7.4.1 寻求产品代表者 56
7.4.2 产品代表者的期望 56
7.4.3 多个产品代表者 57
7.5 谁作出决策 58
第8章 聆听客户的需求 60
8.1 需求获取的指导方针 60
8.2 基于使用实例的方法 62
8.2.1 使用实例和用法说明 62
8.2.2 确定使用实例并编写使用实例文档 64
8.2.3 使用实例和功能需求 67
8.2.4 使用实例的益处 67
8.2.5 避免使用实例陷阱 68
8.3 对客户输入进行分类 69
8.4 需求获取中的注意事项 70
8.5 如何知道你何时完成需求的获取 71
第9章 编写需求文档 72
9.1 软件需求规格说明 72
9.1.1 标识需求 73
9.1.2 处理不完整性 74
9.1.3 用户界面和软件需求规格说明 74
9.2 软件需求规格说明模板 75
9.3 编写需求文档的原则 79
9.4 需求示例的改进前后 81
9.5 数据字典 83
第10章 需求的图形化分析 85
10.1 需求建模 85
10.2 从客户需求到分析模型 86
10.3 数据流图 87
10.4 实体联系图 88
10.5 状态转换图 90
10.6 对话图 92
10.7 类图 94
10.8 最后的提醒 96
第11章 软件的质量属性 97
11.1 非功能需求 97
11.2 质量属性 97
11.3 定义质量属性 98
11.3.1 对用户重要的属性 99
11.3.2 对开发者重要的属性 100
11.4 属性的取舍 101
第12章 通过原型法减少项目风险 103
12.1 原型是“什么”和“为什么”要原型 103
12.2 水平和垂直的原型 103
12.3 抛弃型原型或进化型原型 104
12.4 书面原型和电子原型 106
12.5 原型评价 107
12.6 原型法的最大风险 108
12.7 原型法成功的因素 108
第13章 设定需求优先级 110
13.1 为什么要设定需求的优先级 110
13.2 不同角色的人处理优先级 111
13.3 设定优先级的规模 111
13.4 基于价值、费用和风险的优先级设定 112
第14章 需求质量验证 116
14.1 需求评审 117
14.1.1 审查过程 118
14.1.2 需求评审的困难 122
14.2 测试需求 124
第15章 需求开发向设计规划的转化 128
15.1 从需求到项目规划 128
15.1.1 需求和进度安排 128
15.1.2 需求和预估 129
15.2 从需求到设计和编码 130
15.3 从需求到测试 131
15.4 从需求到成功 131
第三部分 软件需求管理 133
第16章 需求管理的原则与实现 133
16.1 需求管理和过程能力成熟度模型 133
16.2 需求管理步骤 135
16.3 需求规格说明的版本控制 135
16.4 需求属性 136
16.5 度量需求管理的效果 138
第17章 管理变更请求 139
17.1 控制项目范围的扩展 139
17.2 变更控制过程 140
17.2.1 变更控制策略 140
17.2.2 变更控制步骤 141
17.2.3 变更控制工具 144
17.3 变更控制委员会 145
17.3.1 变更控制委员会的组成 145
17.3.2 变更控制委员会总则 145
17.4 测量变更活动 146
第18章 需求链中的联系链 149
18.1 需求跟踪 149
18.1.1 需求跟踪动机 151
18.1.2 需求跟踪能力矩阵 151
18.1.3 需求跟踪能力工具 153
18.1.4 需求跟踪能力过程 153
18.1.5 需求跟踪能力可行吗,必要吗? 154
18.2 变更需求代价:影响分析 154
18.2.1 影响分析过程 155
18.2.2 影响分析报告模板 157
第19章 需求管理工具 158
19.1 使用需求管理工具的益处 159
19.2 商业需求管理工具 160
19.3 实现需求管理自动化 161
附录 当前需求实践的自我评估 163
参考文献 167
后记 171