有一个练习需要我们为一家银行画一个用例图,描述说客户可以进行存款和取款。对于那个用例场景,我只画“存款”和“取钱”吗?或者我应该为他们两个<<'include'>>“更新余额”功能吗?
2 回答
有一条黄金法则可以帮助我解决类似的情况,希望对您有所帮助。
用例定义:参与者与系统之间的一系列交互以获得附加值。
因此,正如您所见,存在交互,基本上一个用例是一系列交互。
哪些交互用于更新余额?无,只是系统(而不是演员)所做的计算。
让我们指定假设下的用例是业务用例并且是 ATM。
- 1) Actor1 按下“开始按钮”
- 2) 系统显示现卡画面
- 3) Actor1 礼物卡
- 4) 带有选项的系统显示菜单...
- 5) Actor1 选择退出.....
- 6) 系统显示屏幕更新余额
- 7) Actor1 选择 ....
所以这是非常直观的,首先不是用例,因为不涉及交互。所以没有必要检查是否带来附加值。只是所涉及的众多交互中的一个重要部分。
在某些例外情况下,您可以采用该捷径,例如,如果您想在模型中更加清晰,或者您是否需要根据用例划分工作。但恕我直言,这根本不是用例。
您可能有“显示余额”,但这只是一次互动,除非您有“在屏幕上显示”或“在 ATM 上打印纸”等选项
希望能帮助到你。
是Update Balance
用例吗?演员有什么附加价值吗?我猜不是。这是一个简单的功能,作为其他 2 个用例的一部分执行。您正在尝试(像大多数人一样)执行功能分解。仅仅两个用例共享一个公共功能并不能使该功能成为一个用例。用例是关于系统提供给其参与者的附加值。当您在用例中描述场景时,您可能会参考其他用例的场景。每个场景步骤都将以一个动作结束。您可以简单地参考Update balance
描述Make deposit
时描述的操作Withdraw money
。但是,Update balance
是一个简单的加法操作的结果。那么,为什么将其称为一个通用功能呢?