【问题标题】:Use case diagram relationships and application workflow用例图关系和应用程序工作流程
【发布时间】:2021-01-11 10:02:42
【问题描述】:

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

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

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

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

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

A __ UC1
|___ UC2

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

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

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

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

[]

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

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

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

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

还有一个问题是,如果我有两个参与者可以做同样的事情但结果不同,它应该是两个不同的用例还是一个,那么我应该在用例场景中包含某种条件?

谢谢

【问题讨论】:

    标签: uml project use-case use-case-diagram


    【解决方案1】:

    只是您的第一种方法是功能分解并且是错误的。用例是关于正在考虑的系统为其参与者带来的附加值。所以第二张图不错。我没有阅读您的详细描述。

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

    【讨论】:

    • 感谢您的回答和推荐,开始阅读本书
    • 这需要一段时间才能消化。我是一个天生的黑客(至少在我年轻的时候),并且很难从我的技术马背上下来。然而,这本书确实做到了这一点。
    猜你喜欢
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 2014-07-08
    • 1970-01-01
    相关资源
    最近更新 更多