编写有效用例

编写有效用例
作 者: Alistair Cockburn 王雷 张莉
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 软件工程/开发项目管理
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《编写有效用例》作者简介

内容简介

Jolt大奖素有“软件业之奥斯卡”的美称,本丛书精选自Jolt历届获奖图书,以植根于开发实践中的独到工程思想与杰出方法论为主要甄选方向。本书作者Alistair Cockburn,凭借自己在面向对象领域的丰富经验,并参考其他专家的建议,扩展了典型的用例处理方法,为软件开发人员编写用例提供了一种“基本、具体和实用的”指南。本书完整地叙述了有关用例的初、中、高级概念,并提供了大量的、正反两方面的用例编写实例,是一本概念清晰、结构完整、内容丰富的专业图书。本书荣获2001年Jolt世界图书大奖,适用于不同知识层次的软件工作、研究人员和用例编写人员。

图书目录

第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部分 用例体部分

第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

4.4 被讨论系统 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部分 经常讨论的主题

第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部分 对忙于编写用例的人的提示

第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.4 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