用例图关系和应用程序工作流

问题描述

我想为我的应用程序创建一个用例图(连同用例场景),但我对此不太熟悉。我的应用有几个屏幕,每个屏幕都包含一些用户可以与之交互的功能
让我们假设它是一个汽车共享应用程序,第一个屏幕包含两个要执行的操作:

  • 浏览汽车 → 当用户可以看到汽车列表时,将用户移动到另一个屏幕
  • 查看租赁历史 → 当用户可以看到他过去租过的汽车列表时,这会将用户移动到另一个屏幕

我认为这两个动作是两个用例,例如动作“浏览汽车”是使用工作流的用例“浏览汽车”:

  1. 应用显示一个列表
  2. 应用下载数据(→ 此处可能会断开连接等)
  3. 应用显示数据

我说得对吗?那么,图表应该看起来像这样(A 是演员)?:

A __ UC1
|___ UC2

接下来,从“浏览汽车”屏幕我可以,例如,查看汽车的详细信息,从详细信息我可以租用它等等...
我不确定,这些操作是否应该被视为 <<extend>> 关系,或者它应该只是来自 actor 的独立用例。
我不认为租车、显示列表或汽车的详细信息应该真正相互依赖。这取决于应用程序,因为屏幕按功能分组,在我的情况下这是预期的工作流程,但在其他 UI 设计中可能会有所不同。我应该关心预期的工作流程吗?

应该是这样的:
A -- UC1 ←extend--- UC3 ←extend--- UC4
|___ UC2

或者这个:
__ UC1
|___ UC2
|___ UC3
|___ UC4

我的应用程序包含许多功能(目前定义了大约 40 个),我必须在图表上展示每个用例。
在第一种情况下,它看起来像一棵树,类似于:

[

enter image description here

]

(取自https://creately.com/diagram/example/i04a0uvo5/Group%20Use%20case.

这是一个有效的用例图吗?

在第二种情况下,它看起来像一大列椭圆,像这样,但有更多的用例:

enter image description here

我应该选择哪个?如果我应该像示例 2 那样绘制它,那么 <<extend>> 的目的是什么?另外,“浏览汽车”和“展示汽车详情”是两个独立的用例,还是应该合二为一?

还有一个问题是,如果我有两个演员可以做同样的事情但结果不同,应该是两个不同的用例还是一个,然后我应该在用例场景中包含某种条件?

谢谢

解决方法

只是您的第一种方法是功能分解,这是错误的。用例是考虑中的系统为其参与者带来的附加价值。所以第二张图很好。我没有阅读您描述的详细信息。

我建议(一如既往)阅读 Bittner/Spence 关于用例建模。