为什么在创建和删除用例之间没有 include link
Why there is no include link between create and delete use cases
我在 Internet 上看到过许多用例图示例(UML 格式),例如:
我看到的是 delete
用例不包括 create
用例。即使我无法想象在不创建用户的情况下删除用户。
我想知道为什么不使用 include 仍然是正确的?我想知道什么时候应该使用它,什么时候不使用它?
如果有Delete-User - - <<include>> - -> Create-User
表示在执行UCDelete-User期间UCCreate-User也被执行了,当然没有意义了。
预期的行为可以是:
- Delete-User 有先决条件 Create-User 已为同一用户成功执行并且 Delete-User 尚未为同一用户成功执行(在最后一个 Create-User 之后)
- 或Delete-User可以在没有先决条件的情况下执行,但如果用户不存在(Create-User没有为同一个用户成功执行,或者Delete-User在上次创建之后已经为同一个用户执行了或者这个用户)这是一个错误案例
已经解释了为什么将 Create
包含在 Delete
中不是一个好主意,以及可以使用哪些替代方法来表达您解释的两者之间的关系 use-cases.
但如果有帮助,这里换个角度:
- use-case 图不表示活动的逻辑顺序。
- A use-case 仅代表 目标 激励 his/her 与系统 独立 交互的参与者另一个 use-cases 和系统的历史记录。因此,系统管理员可能想要在某个时刻删除
User
的简单事实足以让 use-case Delete
独立存在。
include
表示目标可能包括用户感兴趣的其他一些目标。包容性不适用于功能分解,您可以在其中分解需要在所有细节中完成的工作。它也不是为了显示顺序依赖性。所以对于Delete
,你不应该包括之前发生的事情,因为happens-before是顺序性的。包含仅突出显示一些对用户有意义的相关 sub-goals 以及用户在瞄准更大目标时始终希望实现的内容。
- 最后,即使 use-case
Create
从未被任何演员表演过,use-case Delete
也可能具有完美的意义,例如,因为:
- 新系统接管了旧数据库及其所有过去的帐户,系统管理员在新系统中要做的第一件事是 clean-up 在创建新帐户之前已经存在的旧未使用帐户一个。
- 系统管理员想要
Delete
一个帐户,但仅在交互过程中才发现该帐户不存在、拼写错误或已被删除。这些可能性都是您在相同 use-case. 的叙述中描述的替代流程
- 或者如果不是
Create
use-case 将被预见,因为用户创建将在后台自动完成(例如基于 SSO),根本没有参与者参与。
我在 Internet 上看到过许多用例图示例(UML 格式),例如:
我看到的是 delete
用例不包括 create
用例。即使我无法想象在不创建用户的情况下删除用户。
我想知道为什么不使用 include 仍然是正确的?我想知道什么时候应该使用它,什么时候不使用它?
如果有Delete-User - - <<include>> - -> Create-User
表示在执行UCDelete-User期间UCCreate-User也被执行了,当然没有意义了。
预期的行为可以是:
- Delete-User 有先决条件 Create-User 已为同一用户成功执行并且 Delete-User 尚未为同一用户成功执行(在最后一个 Create-User 之后)
- 或Delete-User可以在没有先决条件的情况下执行,但如果用户不存在(Create-User没有为同一个用户成功执行,或者Delete-User在上次创建之后已经为同一个用户执行了或者这个用户)这是一个错误案例
Create
包含在 Delete
中不是一个好主意,以及可以使用哪些替代方法来表达您解释的两者之间的关系 use-cases.
但如果有帮助,这里换个角度:
- use-case 图不表示活动的逻辑顺序。
- A use-case 仅代表 目标 激励 his/her 与系统 独立 交互的参与者另一个 use-cases 和系统的历史记录。因此,系统管理员可能想要在某个时刻删除
User
的简单事实足以让 use-caseDelete
独立存在。 include
表示目标可能包括用户感兴趣的其他一些目标。包容性不适用于功能分解,您可以在其中分解需要在所有细节中完成的工作。它也不是为了显示顺序依赖性。所以对于Delete
,你不应该包括之前发生的事情,因为happens-before是顺序性的。包含仅突出显示一些对用户有意义的相关 sub-goals 以及用户在瞄准更大目标时始终希望实现的内容。- 最后,即使 use-case
Create
从未被任何演员表演过,use-caseDelete
也可能具有完美的意义,例如,因为:- 新系统接管了旧数据库及其所有过去的帐户,系统管理员在新系统中要做的第一件事是 clean-up 在创建新帐户之前已经存在的旧未使用帐户一个。
- 系统管理员想要
Delete
一个帐户,但仅在交互过程中才发现该帐户不存在、拼写错误或已被删除。这些可能性都是您在相同 use-case. 的叙述中描述的替代流程
- 或者如果不是
Create
use-case 将被预见,因为用户创建将在后台自动完成(例如基于 SSO),根本没有参与者参与。