我在互联网上看到了许多用例图(在 UML 中)的示例,如下所示:
我看到的是delete
用例不包括create
用例。即使我无法想象在不创建用户的情况下删除它。
我想知道为什么不使用 include 仍然是正确的?我想知道什么时候应该使用它,什么时候不使用它?
我在互联网上看到了许多用例图(在 UML 中)的示例,如下所示:
我看到的是delete
用例不包括create
用例。即使我无法想象在不创建用户的情况下删除它。
我想知道为什么不使用 include 仍然是正确的?我想知道什么时候应该使用它,什么时候不使用它?
如果有Delete-User - - <<include>> - -> Create-User
这意味着在执行 UC Delete-User期间,UC Create-User也会执行,当然这没有任何意义。
预期的行为可以是:
Bruno 的出色回答Create
已经解释了为什么包含在中不是一个好主意Delete
,以及可以使用哪些替代方法来表达您在两个用例之间解释的关系。
但如果它有帮助,这里是另一个角度:
User
足以使用例Delete
独立存在。include
表明一个目标可能包括用户感兴趣的其他一些目标。包含不适用于功能分解,您将在所有细节中分解需要完成的工作。也不是显示顺序依赖关系。所以对于Delete
,你不应该包括之前发生的事情,因为发生之前是顺序性的。包含仅突出一些对用户有意义的相关子目标,并且用户在瞄准更大的目标时总是希望实现这些子目标。Delete
即使该用例Create
从未由任何参与者执行,该用例也可能具有完美的意义,例如,因为:
Delete
一个帐户,但仅在交互过程中发现该帐户不存在、拼写错误或已被删除。这些可能性都是您将在同一用例的叙述中描述的替代流程。Create
预见到用例,因为用户创建将在后台自动完成(例如基于 SSO),根本不涉及参与者。