1

有一个练习需要我们为一家银行画一个用例图,描述说客户可以进行存款和取款。对于那个用例场景,我只画“存款”和“取钱”吗?或者我应该为他们两个<<'include'>>“更新余额”功能吗? 用例图

4

2 回答 2

1

有一条黄金法则可以帮助我解决类似的情况,希望对您有所帮助。

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

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

哪些交互用于更新余额?无,只是系统(而不是演员)所做的计算。

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

  • 1) Actor1 按下“开始按钮”
  • 2) 系统显示现卡画面
  • 3) Actor1 礼物卡
  • 4) 带有选项的系统显示菜单...
  • 5) Actor1 选择退出.....
  • 6) 系统显示屏幕更新余额
  • 7) Actor1 选择 ....

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

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

您可能有“显示余额”,但这只是一次互动,除非您有“在屏幕上显示”或“在 ATM 上打印纸”等选项

希望能帮助到你。

于 2018-05-10T13:14:46.387 回答
0

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

于 2018-05-10T12:47:19.337 回答