如何编写有效的用例

你是否为你的系统编写了良好的用例?

软件开发中最困难的问题之一就是准确捕捉你想要构建的内容。不准确的需求最终可能导致项目严重延迟、返工,甚至被放弃。

有效应用用例技术可以帮助你的团队从用户的角度捕捉需求,这既容易被最终用户理解,也便于你的团队掌握。用例驱动的开发有助于后续的分析、设计和测试等活动。

use case diagram example

什么是用例?

objective

用例是参与者为了实现可观察的业务目标而希望执行的事情。它们通常用简短的动词或动词+名词短语命名。应使用具体的动词和名词以避免歧义。应尽可能避免使用“执行”和“进行”等动词,以及“数据”和“信息”等名词。

理论上,最终用户将执行系统支持的操作以实现其最终目标,这在用例分析中已明确。以在线酒店预订系统为例,“预订”无疑是一个业务目标,因此也是一个用例。用户可能也希望能够在在线地图上查找酒店。然而,这并不是一个用例,因为该操作本身并不会产生任何可观察的目标。

将与实现问题相关的需要建模为用例是不合适的,例如支持多重实例、部署安排、构建数据库等。所有这些做法都是错误的,可能导致构建出糟糕甚至错误的系统。

用户故事现在被广泛使用

任何有软件开发经验的人都可能遇到最终用户与开发团队之间的沟通问题。当成员在不同远程位置工作时,这种情况可能更加严重。用户故事是与客户展开讨论的绝佳方式,有助于确保我们真正理解他们实际想要的东西。

由产品负责人创建的用户故事以简单明了的方式捕捉需求的“谁”、“做什么”和“为什么”,通常使用非技术性的自然语言编写。

敏捷开发已与用户故事一起成为需求发现主流的开发方法。

实际考虑因素

通常,一个平均有10名成员的敏捷团队在工作流中可能有数百个用户故事,其中一些相互关联,并由史诗或上一个冲刺中的详细用户故事拆分而来。用户故事是一种临时的产物,仅存在于冲刺期间,并在开发迭代结束时被丢弃。

敏捷团队和Scrum成员常常发现,它们很容易变得难以管理且难以整齐有序地组织,尤其是当团队成员希望参考之前冲刺中的相关用户故事时。

相反,用例旨在在整个软件开发生命周期中保持更强的连续性,可以作为占位符,用于在史诗范围内容纳相关用户故事。此外,用例旨在成为开发团队持续参考的依据。

Overview of user stories creation

什么是用例图?

用例图是一种统一建模语言(UML)图,用于需求获取,由对象管理组(OMG)定义。用例图提供了用户(由参与者表示)通过使用系统(可选地由系统边界表示)希望实现的目标(由用例建模)的图形化概览。

用例图中的用例可以根据其相关性、抽象层次和对用户的影响进行组织和排列。它们可以通过连接来展示依赖、包含和扩展关系。使用用例图对用例进行建模的主要目的是通过识别用户的需求来建立系统的坚实基础。基于分析结果,你可以进一步研究如何满足这些用户需求。

use case diagram example用例图主要由参与者、用例和关联(连接器)构成。

参与者是任何与系统交互以实现用户目标的人或外部系统。参与者分为两种——主要参与者和次要参与者。

  • 主要参与者是任何与系统交互以获得直接利益的人或事物。
  • 次要参与者是参与实现用例但并未从系统中获得直接利益的人或事物。通常,次要参与者是协助主要参与者实现用例的人。

在Visual Paradigm中绘制用例图

在本教程中,我们将以在线酒店预订系统为例,演示如何使用Visual Paradigm编写有效的用例。让我们从绘制用例图开始。我们将基于生成的设计继续编写有效的用例。

  1. 通过选择“UeXceler > UeXceler从应用程序工具栏。
  2. 打开用例图页面。
    Open use case diagram
  3. 选择参与者在图表工具栏中。点击图表以创建参与者并将其命名为客户.
    actor
  4. 客户可以预订酒店,这是系统的用例之一。让我们从客户参与者开始。将鼠标指针移至客户参与者上。按下资源目录图标,然后拖出。
    create use case
  5. 选择关联 -> 用例在资源目录中。
    select use case in resource catalog
  6. 释放鼠标按钮以创建用例。将其命名为预订。参与者与用例之间的关联表明,该参与者将与系统交互以实现相关用例。
  7. 完成设计,使其看起来像这样:
    Use case diagram example

通过用户故事细化用例

虽然用例是待开发IT系统的业务目标,但用户故事则代表了分析人员和一线利益相关者在详细讨论用例过程中捕捉到的用户问题或关注点。毫无疑问,所有捕捉到的用户故事都旨在实现IT系统的业务目标。

  1. 右键单击预订,然后选择打开用例详细信息…… 从弹出菜单中。
    open use case details
  2. 打开用户故事 页面。
    Open user story tab
  3. 通过双击标签页内的空白区域创建用户故事。创建三个故事:搜索酒店, 预订酒店处理紧急预订.
    User stories created

捕获用户故事场景

用户故事会告诉你最终用户希望通过识别其问题来实现什么目标。一旦确定了问题,你就可以开始寻找解决方案。用户故事场景工具允许你草拟出在解决用户故事中描述的问题时,参与者与系统之间的交互。你可以使用此工具来确定用户期望的系统行为。

用户故事场景构成了一种高层次的用户-系统对话,其目的是了解参与者意图或行为,以及系统如何响应这些参与者的输入。在决定事件流中包含哪些内容时,应保持简洁。不要包含实现细节,例如系统如何在内部处理用户输入,甚至插入数据库记录。这是错误的,因为用户故事,以及实际上用例分析,都是为了从最终用户的视角识别需求。然而,实现细节可以在UML序列图中以用户故事的子图形式进行建模。

让我们编写一个用户故事的场景。

  1. 双击用户故事搜索酒店 以打开它。
    Open user story
  2. 打开场景 选项卡。场景编辑器由行组成,称为步骤。每个步骤代表一个参与者输入或系统响应。
    Open user story scenario tab
  3. 点击第一个步骤并输入第一个用户输入:输入城市、到达日期、离开日期、房型并点击搜索.
    Entered first step
  4. 使用UeXceler 工具栏中可用的格式工具,将单词搜索 设置为蓝色加粗,以强调。
    Format scenario step text
  5. 输入以完成此步骤。系统将为您创建步骤2。
  6. 步骤2是关于系统如何响应用户输入。您可以从编写“系统……”开始,但有更优的方式来表示系统响应。选择UeXceler > 添加控件 > 系统响应从工具栏中选择,以添加系统响应步骤。
    Add system response to scenario
  7. 现在您可以输入步骤2的内容:显示酒店列表.
    Entering system response text
  8. 添加以下步骤:
    用户输入 系统响应
    点击酒店的标志以查看其详细信息
    显示酒店详情

    Scenario steps entered

更多内容——创建基于场景的线框图

线框图线框图是用户界面的草图。它有助于您在需求收集早期阶段展示待开发系统的屏幕及屏幕流程。您可以将线框图与场景中的步骤关联。本节将向您展示如何使用线框图工具将线框图添加到步骤中。

  1. 点击第一个步骤。
    Select first step
  2. 将鼠标指针移至右侧的绿色三角形上。然后点击定义线框图.
    Define wireframe
  3. 您看到右侧出现了一个灰色面板吗?点击它以选择要创建的线框图类型。
    Create wireframe
  4. 在弹出窗口中,选择网站.
    Select wireframe type
  5. 点击新建网站线框图。一个新的线框图出现,其中包含一个空的浏览器窗口。您可以在其中准备网站的原型。
  6. 在我们开始向浏览器窗口添加不同组件之前,先将其调整得更小一些。点击浏览器窗口的标题。
  7. 点击后,浏览器窗口周围会出现调整大小的控件,以便您手动调整窗口大小。让我们尝试一种更直接的方法。右键单击浏览器的标题栏,然后选择浏览器尺寸(1024 x 768)> 800 x 600从弹出菜单中选择。
    Resize wireframe
  8. 使用图表工具栏中列出的线框工具,创建如下线框:
    Wireframe created
  9. 点击步骤标题旁边的三角按钮,返回场景编辑器。
    Go back to scenario editor
    完成,您可以在场景编辑器中看到您的线框缩略图。
    Wireframe added

参考文献:

Leave a Reply