330 likes | 437 Views
Chapter 6. 用例. 目标. 为什么使用用例模型 如何寻找用例 使用摘要、非正式和详述用例形式编写用例 用例图. 请大家考虑:. 需求分析的目标是发现和记录用户需求,那么: 对于书中的 NextGen POS 系统,请考虑一下如何发现和记录用户需求,如何制作一个需求报告的大纲。. Technical people often pay much more attention to an entity relationship diagram or class diagram or a feature list. 特性列表. 约翰逊 玻璃天堂.
E N D
Chapter 6 用例
目标 • 为什么使用用例模型 • 如何寻找用例 • 使用摘要、非正式和详述用例形式编写用例 • 用例图
请大家考虑: • 需求分析的目标是发现和记录用户需求,那么: • 对于书中的NextGen POS系统,请考虑一下如何发现和记录用户需求,如何制作一个需求报告的大纲。 • Technical people often pay much more attention to an entity relationship diagram or class diagram or a feature list.
Two people see a motorcycle in two ways: as the subsystems that make up the bike and as the things a person can do with the bike.
什么是用例 • A use case represents a series of interactions between an outside entity and the system, which ends by providing business value.
什么是用例 • 用例是文本形式的情节描述,广泛应用于需求的发现和记录工作中。 • 示例:处理销售 • 顾客携带所购商品到达收银台。收银员使用POS系统记录每件商品。系统连续显示累计信息,并逐行显示细目。顾客确认支付方式,并实施支付。系统对支付信息进行验证和记录。系统更新库存信息。顾客从系统得到购物小票,然后携带商品离开。
什么是用例:定义 • 参与者(actor) • 某些具有行为的事务,可以是人、软硬件系统或组织。 • 场景(scenario) • 是参与者和系统之间的一系列特定的活动和交互,也称为用例实例(user case instance) • 用例(use case) • 一组相关的成功和失败场景的集合,用来描述如何使用系统来实现其目标。 用例不是什么复杂的概念,但发现需求,并适当编写有相当的困难。
什么是用例:示例 • 用例:处理退货 • 主要成功场景:顾客携带商品到收银台退货。收银员使用POS系统记录并处理每件退货…… • 扩展场景: • 如果客户之前使用的是信用卡…… • 如果系统未在系统中找到商品的标识码…… • 正常情况和异常情况的分离
什么是用例:用例与需求 • 用例主要是说明系统如何工作的功能性或行为性需求,或者说,用例定义了系统行为的契约。 • 用例也可以用来定义FURPS+中的其他需求。
用例的表示法 • 用例能够以不同的形式化程度或格式进行编写: • 摘要: • 简洁的一段式摘要,通常用于主成功场景。 • 用在早期需求分析过程中。 • 非正式 • 非正式的段落格式。用几个段落覆盖不同的场景。 • 也是用在早期需求分析过程中。 • 详述 • 编写所有的步骤及各种变化,同时具有补充部分,如前置条件和成功保证。 • 在第一次需求讨论会中,详细地编写其中少量(例如10%)的具有重要意义和高价值的用例。
详述风格的处理销售:有何感想? • 收银员的工作原来没有想象中的容易。 • 图能够表达这段文本的内容吗? • 用例是模型吗? • 特性列表能够表达这段文本的内容吗(老式需求)? • 系统应该完成……
涉众及其关注点 • 涉众及其关注点 • 用例应该包含满足所有涉众关注点的事务 • 例: • 收银员:希望能够准确、快速输入,而且没有支付错误…… • 销售员:希望自动更新销售提成……
主要成功场景和步骤 • 主要成功场景和步骤 • 理想步骤,基本流程 • 将所有条件和分支延迟到扩展部分进行说明 • 主要成功场景 • 顾客携带所购商品或服务到收银台通过POS机付款 • 收银员开始一次新的交易 • 收银员输入商品ID • 系统逐条记录出售的商品……收银员重复3-4部,直到商品全部输入 • ……
扩展(或替代流程) • 扩展(或替代流程) • 成功场景和扩展场景涵盖了系统的功能需求 • 扩展通常占据了文本的大部分篇幅 • 是成功场景的分支,反映了例外的情况。 • 例: • 3a. 无效商品ID: • 系统提示错误信息,并拒绝输入该商品标识。 • 3b. 当有多个商品属于同一类别的时候 • 收银员可以输入类别的标识和商品的数量
准则一:以无用户界面约束的风格编写用例 • 摒弃用户界面表述,关注参与者的意图 • 例:Login • 对比: 本质风格 具体风格 • 管理员标识自己的身份 • 系统对此身份进行认证 • …… • 管理员在对话框中输入ID和口令 • 系统对此身份进行认证 • 系统显示”编辑用户”窗口 • …… • 在GUI的设计过程中,具体风格的用例可能是一个有用的工具
准则二:编写简洁的用例 • 简洁是大多数领域都追求的目标。 • 简洁不等于容易 • “我认为简单性一直是一个赢家。…找到一个更简单的解决方案 ---- 毫无疑问,这是我一贯的指导原则”, • Anders, Turbo Pascal, Delphi的设计和开发者, C#的架构师。
准则三:采用参与者的视角 • Ivar Jacobson对用例的定义: • 用例是系统所执行的一系列活动,以此产生对特定参与者具有价值的可观察的结果。 • 要明白谁在使用这个系统,他们为什么要使用这个系统。 • 系统需要提供什么样的价值
准则四:保持黑盒风格 • Black-box use case • 不对系统内部工作、构件或设计进行描述,而是通过职责来描述系统。
如何发现用例 • 步骤: • 选择系统边界 • 确定主要参与者 • 确定每个主要参与者的目标 • 定义满足用户目标的用例,根据其目标对用例命名。
有效用例的测试 • 哪些用例是有效的: • 与供应商进行合同谈判 • 处理退货 • 登录(Login) • 老板测试 • EBP测试 • Elementary Business Process:该任务能够增加可量化的业务价值,并且以持久状态留下数据。 • 规模测试 • 用例通常需要包括多个步骤,在详述格式下。需要数页的文本。
UML Use Case Diagram • 初学者通常会犯的错误是,将用例图和用例关系作为重点。 • 用例图和用例关系在编写用例的工作中是次要的。用例是文本文档,编写用例意味着编写文本。 • 绘制用例图的准则是:绘制简单的用例图,并与参与者-目标列表关联。
UML: Use Cases Diagram Use Case Actor
Cashier UML: Include Relationship POST Process Sale <<include>> <<include>> <<include>> Handle Credit payment Handle Cash payment Handle Check payment
其它描述需求的方法 • UML活动图 • UML包含一种有助于使得工作流和业务过程可视化的图:活动图,他能够成为编写用例文本有用的辅助措施。 • 特征列表 • 有些系统使用特征列表可能更合适,如服务器,数据库,编译器等。
小结 • 什么是用例,用用例发现和记录需求有什么优点 • 用例的三种格式 • 书写用例的注意事项 • 用例图