如何在没有 'include' 或 'extend' 的情况下连接不同的用例?

How to connect different Use Cases without 'include' or 'extend'?

我对 UML 和用例图还很陌生,我不确定我是否理解我在正确使用 'include'。另请注意,这是针对课程作业而不是实际系统,因此即使以下细节不是一成不变的,它们也不是很灵活。

我有这样一个场景,演员(客户)填写申请表。此用例称为 TakeMembership。

在客户向系统提供详细信息后,他们将进行付款,我开始另一个名为 TakePayment 的用例。对于此用例,我已将外部支付系统作为主要参与者,将客户作为次要参与者。

最后,外部电子邮件系统向用户发送他们的登录详细信息。我将此用例称为 SendLoginDetails,并将电子邮件系统作为主要参与者,将成员(客户现在已转变为成员并成为不同的参与者)作为该案例的次要参与者。

现在我的问题是:后两个用例是第一个用例的主要流程的一部分,但是我不知道如何实际连接它们。

我考虑过先使用 'extend' 但后来决定不使用它,因为这两个用例也不例外,因为每次使用系统时都会用到它们。

有些同学建议我把他们和'include'联系起来,但我也没听懂。我对 'include' 的理解是,当两个或多个用例中有共同的步骤并且 'include' 用例不能独立存在时,应该使用它。

'extend' 或 'include' 有什么我不知道的吗?

用例与 "do A, then B, eventually C" 无关,而是显示参与者从系统中获得的附加值。不要尝试功能分解(so which UC included/extends which other UC)。这些可能有用的情况非常罕见(实际上,没有一个我也可以生活得很好)。通常人们会创建一个用例,其中它实际上只是一个约束(最著名的是:Login)。

一旦您确定了附加值,您就可以考虑如何实现它们的方案。这可以通过纯文本描述或使用 activity 图表来完成。

我最好的建议:不要使用 include/extend 并阅读 Bittner/Spence。