用例学习

something about use case.

前置概念

  • Actors(参与者):与系统交互的外部实体(具有某些行为的事物),如person(identified by role),计算机系统,组织。

    • Primary actor(主要参与者):使用服务来满足用户的需求(fullfilled users‘ goals)。(如收银员)
      • Find user goals to drive the use cases.
    • Supporting actor(协作参与者):提供服务(通常是电脑,或者是组织/人)。(如收银系统)
      • The purpose is to clarify external interfaces and protocols.
    • Offstage actor(幕后参与者):对用例行为有兴趣,但不是以上两种actor的一类actor。(如政府的税收部门)
    • 最特殊的参与者:如系统时钟。
  • 场景(scenario):参与者和系统之间的一系列特定的活动和交互,也称为用例实例(use case instance)。场景是使用系统的一个特定情节或用例的一条执行路径。

  • 用例(User Case)是文本形式的情节描述,用以说明某参与者使用系统以实现某些目标。用例广泛应用于需求的发现和记录工作中。

  • 用例是是一组相关的成功和失败的场景(success and failure scenarios),这些场景是用于描述一个actor使用系统去support一个目标(goal)。
  • 用例一定是text文档,不会是图表。Use case modeling(用例建模) is primarily an act of writing text, not drawing diagrams.
  • There is nothing object-oriented(面向对象) about use cases
  • Use cases are a key requirements input to classic OOA/D(OOA/D全称面向对象分析方法(Object-Oriented Analysis))。
    • 翻译:用例是经典OOA/D的关键需求输入。

用例和用例模型(User-Case Model)

  • 定义:用例模型是所有书面用例的集合;同时,它是系统功能性和环境的模型。
  • Use case modeling(用例建模) is primarily an act of writing text, not drawing diagrams.

关于用例

为什么使用用例

  • 用例使领域专家或者需求提供者自己编写(或参与编写)用例成为可能,并使得这项工作难度降低。
  • 用例强调了用户的目标和观点。
  • 用例能够根据需要对复杂程度和形式化程序进行增减调节。
  • 用例就是需求,主要是说明系统如何工作的功能性或行为性需求。用例是真正的需求,但不是所有的需求。

三种常见的用例格式(format)

  • Brief (high level)
    • Terse one-paragraph summary, usually of the main success
      scenario.(简洁的一段式概要,通常用于主成功场景)
    • During early requirements analysis, to get a quick sense of subject and scope. May take only a few minutes to create.(在早期需求分析过程中使用,目的是为了快速了解主题和范围。可能只需要几分钟进行编写)
  • Casual(简便格式)
    • Informal paragraph format. Multiple paragraphs that cover various scenarios.(非正式的段落格式。用几个段落覆盖不同场景)
    • When? As above.(时间点同上)
  • Fully(详述)
    • dressed All steps and variations are written in detail, and there are supporting sections, such as preconditions and success guarantees.(详细编写所有步骤及各种变化,同时具有补充部分,如前置条件和成功保证)。
      • After many use cases have been identified and written in a brief format, then during the first requirements workshop a few (such as 10%) of the architecturally significant and high-value use cases are written in detail.(在确定并以摘要形式白那些了大量用例后,在第一次需求讨论会中,详细地编写其中少量(例如10%)的具有重要架构意义和高价值的用例)

用例测试

  • 判断一个用例是否有效用例,取决于系统边界、参与者和目标。

老板测试(The Boss Test)

判断用例与达到可量化价值的结果之间的关系程度。如果一个用例与达到可量化价值的目标之间没有存在强的联系关系,那么这个用例可能无法通过老板测试。

EBP测试(The EBP Test)

  • EBP即基本业务过程(Elementary Business Process),是源于业务过程工程领域的术语。
  • EBP的定义:一个人某个时刻一个地点所执行的任务(A task performed by one person in one place at one time),用以响应业务事件。该任务能够增加可量化的业务价值(measurable business value),并且以持久状态留下数据。

规模测试(The Size Test)

  • 判断一个用例的规模是否正确。一般来说,用例很少由单独的活动或步骤组成,而是通常包含多个步骤。
  • 用例建模中的一个常见错误就是仅将一系列相关步骤中的一个步骤(just a single step)定义为用例,这会因规模过小而获得错误的提示。

用例图

用例图主要用来描述用户、需求、系统功能单元之间的关系。用例图的基本符号及元素如下所示:

  1. 参与者(Actor):表示与系统或程序进行交互的用户、组织或外部系统。
  2. 用例(Use Case):外部可用的系统功能,对系统提供的服务进行描述。
  3. 子系统(Subsystem):用来展示系统的一部分功能,这部分功能一般具有紧密的联系。

    在这里插入图片描述

  4. 关系(relation):用例图中涉及到的关系包括关联、泛化、包含、扩展。

  • 关联(Association):说明了参与者与用例之间的通信,任何一方都可以发送或接受信息,箭头指向的是消息的接收方

  • 泛化(Inheritance):就是通常理解的继承关系,子用例继承了父用例的所有结构、行为和关系,同时表现出更特别的行为。子用例可以选择使用或者重载父用例的一段行为,而父用例一般是抽象的。

  • 包含(Include):包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤,箭头指向分解出来的功能用例,旁边需要显式写出该关系(《包含》或者<Includes>

  • 扩展(Extend):扩展关系是指当前用例功能的延伸,相当于给当前基础样例提供附加的功能。箭头指向原来的基础样例。


一些新增的扩展可以看这里

文章目录
  1. 1. 前置概念
  2. 2. 用例和用例模型(User-Case Model)
  3. 3. 关于用例
    1. 3.1. 为什么使用用例
  4. 4. 三种常见的用例格式(format)
  5. 5. 用例测试
    1. 5.1. 老板测试(The Boss Test)
    2. 5.2. EBP测试(The EBP Test)
  6. 6. 规模测试(The Size Test)
  • 用例图