第1章 引言 1
1.1用例是什么(梗概) 1
用例1通过网络购买股票 3
用例2汽车交通事故索赔 5
用例3对运到的包装箱进行登记 6
1.2你的用例不能作为我的用例 7
用例4买东西(非正式版本) 10
用例5买东西(完整正式版本) 10
Steve Adolph:在新领域中“发掘”需求 14
1.3需求和用例 15
图1-1“轮轴和轮辐”需求模型 17
用例作为项目连接结构 18
1.4用例的增值点 18
1.5合理安排你的精力 19
1.6先用使用叙述做热身 21
1.7练习 22
第1部分 用例体部分 27
第2章 用例是规范行为的契约 27
2.1具有目标的执行者之间的交互 27
执行者具有目标 27
图2-1一个具有目标的执行者请求另一个执行者履行职责 28
目标可能失败 29
交互是复杂的 30
用例聚集场景 33
图2-2条形裤:成功和失败场景 33
图2-3在条形裤中展示子目标的小条形裤 34
2.2涉及利益的项目相关人员之间的契约 35
图2-4 SuD为主执行者提供服务,同时维护幕后项目相关人员的利益 36
2.3图形模型 37
图2-5执行者和项目相关人员 38
图2.6行为 38
图2-7用例是职责的激发者 39
图2-8作为组合的交互 39
第3章 范围 41
表3-1“内/外”列表 41
3.1功能范围 42
“执行者-目标”列表 42
表3-2“执行者-目标”列表 43
用例简述 43
表3-3用例简述 44
3.2设计范围 44
一个简短而真实的故事 45
图3-1设计范围的大小是任意的 46
用图标来突出设计范围 46
设计范围示例 47
(1)企业系统范围 47
用例6增加新服务(企业) 48
用例7增加新服务(Acura) 49
(2)一个应用程序对应多台计算机 49
用例8输入和修改请求(联合系统) 50
用例9添加新服务(给Acura添加) 50
用例10通知新服务请求(BSSO中) 51
用例11更新服务请求(BSSO中) 51
用例12通知更新后的服务请求(Acura中) 51
(3)基本用例 51
图3-2 Acura-BSSO的用例图 52
图3-3 Acura-BSSO的一组用例图 52
用例13资源的串行存取 53
用例14实施资源锁转换政策 54
用例15 实施存取兼容性政策 55
用例16实施存取选择政策 56
用例17令服务客户等待获得资源存取权限 56
3.3最外层用例 57
3.4使用范围确定的工作产品 59
3.5练习 60
第4章 项目相关人员和执行者 61
4.1项目相关人员 61
一个简短而真实的故事 62
4.2主执行者 62
主执行者为什么有时是不重要的(而有时又是重要的) 63
在开始用例编写时 64
在用例编写和设计过程中 64
设计之后,准备配置系统时 66
执行者与角色 66
统一建模语言(UML)图和执行者/角色规格说明 67
刻画主执行者的特点 67
表4-1“执行者概况”表示例 68
4.3辅助执行者 68
44被讨论系统 68
4.5内部执行者和白盒用例 69
4.6练习 69
第5章 三个命名的目标层次 71
图5-1用例层次 72
5.1用户目标(蓝色,海平面) 72
一个简短而真实的故事 74
蓝色的两个层次 74
5.2概要层次(白色,云朵/风筝) 75
用例18操作保险单十 75
重温最外层用例的内容 76
5.3子功能(靛青色/黑色,海平面以下蛤) 77
目标层次总结 78
5.4利用图标来突出目标层次 78
5.5找出正确的目标层次 79
找出用户目标 80
提升和降低目标层次 80
图5-2通过问“为什么”的问题来转换层次 81
5.6一个较长的编写实例:“处理索赔”的多层次示范 81
用例19处理索赔(业务) 82
用例20评估工作补偿索赔 84
用例21处理索赔(系统)+ 86
用例22损失注册 88
用例23查找……(问题陈述) 92
5.7练习 93
第6章 前置条件、触发事件和保证 95
6.1前置条件 95
6.2最小保证 97
6.3成功保证 98
6.4触发事件 99
6.5练习 100
第7章 场景和步骤 101
7.1主成功场景 101
常见的环境结构 101
场景主体 103
7.2执行步骤 104
准则 104
准则1:使用简单的语法 104
准则2:明确地写出“谁控制球” 105
准则3:从系统外部的角度来编写用例 105
准则4:显示过程向前推移 106
准则5:显示执行者的意图,而不是动作 107
准则6:包含“合理”的活动集 108
图7-1一个事务由4个部分组成 109
准则7:“确认”而不是“检查是否” 110
准则8:可选择地提及时间限制 111
准则9:习惯用语:“用户让系统A与系统B交互” 111
准则10:习惯用语:“循环执行步骤x到y,直到条件满足” 112
编号或不编号 113
7.3练习 114
第8章 扩展 117
8.1扩展的基础 117
8.2扩展条件 118
集中讨论所有可能的失败和可选择的过程 120
准则11:用“检测到什么”的方式来编写条件 121
一个真实的、令人不快的小故事 122
关于集中讨论列表 123
扩展列表的合理化 123
逐层合并失败 124
8.3扩展处理 125
准则12:条件处理的缩排方式 127
失败的嵌套 128
从扩展中创建新用例 129
8.4练习 130
第9章技术和数据的变化 131
图9-1在UML中使用具体化方式表现技术变化 132
第10章 连接用例 133
10.1子用例 133
10.2扩展用例 133
图10-1扩展用例的UML图 135
什么时候使用扩展用例 136
10.3练习 137
扩展用例 137
第11章 用例格式 139
11.1供选择的格式 139
完整正式的用例格式 139
用例24完整正式的用例模板〈名字〉 139
非正式用例格式 140
用例25实际登录(非正式版本) 140
单列表格格式 141
表11-1用例的单列表格格式 141
双列表格格式 142
表11-2双列表格 142
RUP格式 143
用例26登记课程 144
条件语句格式 147
Occam格式 147
图形方式 148
UML用例图 149
11.2影响用例书写格式的因素 149
矛盾的因素:业务环境、社会作用、不同文化 150
理解层次 150
项目相关人员的要求 150
经验与格式 151
覆盖面 151
一致性 151
复杂度 152
冲突 152
完整性 152
目标与任务——完成什么与怎样完成 153
资源 153
其他因素 153
11.3 5种项目类型的标准 153
需求了解阶段用例 154
用例27需求了解用例模板——Oble a New Biscum 154
业务过程建模用例 155
用例28业务过程用例模板——Symp a Carstromming 155
确定系统需求用例规模 156
用例29确定系统需求用例规模模板——Burble the Tramling 156
短期、高强度的项目用例 157
用例30高强度项目用例模板——Kree a Ranfath 157
详细功能需求用例 158
用例31用例名字——Nathorize a Permion 158
11.4总结 159
11.5练习 159
第2部分 经常讨论的主题 163
第12章 什么时候才算完成 163
关于“正在完成” 164
第13章 扩展到多个用例 165
简单描述每个用例(低精度表示) 165
创建用例簇 165
第14章CRUD和参数化用例 167
14.1 CRUD用例 167
用例32管理报表用例 168
用例33存储报表用例 170
14.2参数化用例 173
第15章 业务过程建模 177
15.1建模与设计 177
从核心业务 178
图15-1核心业务黑盒 179
图15-2白盒用例中的新业务设计 179
从业务过程到技术 179
图15-3白盒用例中的新业务设计(又一次) 180
图15-4带黑盒系统用例的新业务过程 180
从技术到业务过程 181
15.2业务用例和系统用例 181
Rusty Walters:业务建模和系统需求 183
第16章 遗漏的需求 185
16.1数据需求的精度 186
16.2从用例到其他需求的交叉链接 188
图16.1翻新图1.1,“轮轴和轮辐”需求模型 188
第17章 用例在整个过程中的作用 191
17.1用例在项目组织中的作用 191
通过用例标题进行组织 191
表17-1规划表示例 192
一个真实的小故事 192
跨版本处理用例 193
交付完整场景 194
一个短而真实的集成实例 194
17.2从用例到任务或特征列表 194
用例34:获得折扣 196
表17-2“获得折扣”任务列表 197
17.3从用例到设计 197
一个真实的小故事 199
面向对象(OO)设计者特别注意 199
17.4用例到用户界面(UI)设计 201
17.5用例到测试用例 202
用例35:订购商品,产生发货单(测试例子) 202
表17-3主要成功场景测试(好信用) 203
表17-4主要成功场景测试(坏信用) 203
17.6实际用例编写 203
分工合作过程 204
第1阶段:制定粗略的系统功能图 204
第2阶段:制定详细用例视图 206
用例需要的平均时间 208
从大型团队中收集用例 208
Andy Kraus:从庞大、不同层次的团队收集用例 209
第18章 用例概述和极端编程 213
第19章 错误改正 215
19.1没有系统 215
19.2没有主执行者 216
19.3过多的用户接口细节 217
19.4过低的目标层次 218
19.5目标和内容不符 220
19.6用户接口描述过多的改进实例 221
用例36:寻找一种解决方案——修改前 221
用例37:寻找可能的解决方案——修改后 226
第3部分 对忙于编写用例的人的提示 233
第20章 对每个用例的提示 233
提示1:每个用例都是一篇散文 233
提示2:使用例易于阅读 233
提示3:仅用一种句型 234
提示4:“包含”子用例 235
提示5:谁控制着球 235
提示6:正确地得到目标层 236
图20-1问“为什么”以提高层次 237
提示7:不考虑GUI 237
提示8:两个结局 238
提示9:项目相关人员需要的保证 238
提示10:前置条件 240
提示11:对用例进行通过/失败测试 240
表20-1对用例进行通过/失败测试 241
第21章 对用例集的提示 243
提示12:一个不断展开的故事 243
提示13:业务范围和系统范围 244
提示14:核心价值和变化 244
核心价值 245
适当的改变 246
不合适的改变 247
提示15:用例集中的质量问题 248
第22章 处理用例的提示 249
提示16:仅仅有3章(第4章在哪儿呢?) 249
提示17:首先向广度上努力 249
图22-1工作随着细化而增加 250
提示18:12步秘诀 251
提示19:认识到错误的开销 252
提示20:喜欢蓝色牛仔裤 252
提示21:处理失败情况 253
提示22:前期和后期的工作标题 254
提示23:执行者扮演角色 255
提示24:大的图画恶作剧 255
图22-2“妈妈,我想回家。” 256
图22-3椭圆图形式的语境图 257
表22-1语境图的执行者-目标列表 257
提示25:大型工具的争论 257
提示26:使用标题和简介的项目计划 259
附录A UML中的用例 261
A.1椭圆和“小人”图符 261
A.2 UML中的包含关系 262
图A-1包含关系的画法 262
准则13:将高层目标画得高一点 263
A.3 UML的扩展关系 263
图A-2扩展关系的画法 264
准则14:将扩展用例画得低一些 264
准则15:用不同的箭头形状 264
正确地使用扩展 265
图A-3扩展一个基用例的三个中断用例 265
扩展点 266
A.4 UML的泛化关系 267
正确地使用泛化关系 267
图A-4泛化关系的画法。 268
准则16:将泛化目标画得高一点 268
泛化的危害 269
图A-5泛化的危害——终止大交易 269
图A-6改正后的终止大交易 270
A.5从属用例与子用例 270
A.6用例图的画法 271
准则17:语境图中的用户目标 271
准则18:将支持执行者放在右边 271
A.7代之以编写基于文本的用例 272
附录B部分习题的答案 273
第3章 273
练习3.1 273
练习3.2 273
第4章 274
练习4.2 274
练习4.3 275
第5章 275
练习5.1 275
练习5.2 276
第6章 276
练习6.1 276
练习6.2 277
第7章 277
练习7.1 277
练习7.2 278
练习7.4 278
用例38使用订单处理系统 279
第8章 279
练习8.1 279
练习8.5 280
用例39在网上买股票 280
第11章 281
练习11.1 281
用例40执行清洁火花塞服务 281
附录C术语表 283
主要术语 283
用例类型(Use Case Type) 285
图形 286
附录D参考读物 289
本书参考了以下书籍 289
本书参考了以下文章 289
有用的在线资源 290
索引 291