我应该在 UML UseCase 图中包含系统的 tasks/responses 吗?

Should I include System's tasks/responses in UML UseCase diagram?

有一个练习要求我们画一个银行的用例图, 描述说客户可以存款和取款。对于那个用例场景,我只是画画吗 "make deposit" 和 "withdraw money" ?还是我也应该 <<'include'>> "update balance" 对它们都起作用?

Update Balance 是一个用例吗?对演员有什么附加价值吗?我猜不会。这是一个简单的功能,作为其他 2 个用例的一部分执行。您正在尝试(像大多数人一样)执行功能分解。仅仅两个用例共享一个公共功能并不能使该功能成为一个用例。用例是关于所考虑的系统交付给其参与者的附加值。当您描述用例内部的场景时,您可能会参考场景是其他用例。每个场景步骤都将以一个动作结束。并且在描述Withdraw money时,可以简单地参考Make deposit中描述的动作Update balance。但是,Update balance 是简单添加操作的结果。那么,为什么将其称为通用功能呢?

有一条黄金法则帮我解决了类似的情况,希望对你有帮助。

用例定义:参与者与系统之间的一系列交互以获得附加值。

因此,如您所见,有 交互 ,基本上一个用例是一系列交互。

哪些互动是为了更新余额? None,只是系统(相对于 actor)所做的计算。

让我们specify假设下的用例是业务用例并且是 ATM。

  • 1) Actor1 按 'start button'
  • 2) 系统显示出卡画面
  • 3)演员1出示卡片
  • 4) 系统显示带有选项的菜单...
  • 5) Actor1 select 退出.... ...
  • 6) 更新后的系统显示屏幕 余额
  • 7) 演员 1 select ....

所以这是非常直观的,首先不是用例,因为不涉及交互。所以不需要检查是否带来附加值。只是所涉及的众多交互中的一个重要部分。

在某些例外情况下,您可以采用该捷径,例如,如果您希望模型更加清晰,或者您希望根据用例划分什么工作。但恕我直言,这根本不是用例。

您可能有 'Show balance',但这只会是一次互动,除非您有 "show on screen" 或 "paper-print on a ATM"

等选项

希望对您有所帮助。