如何连接不包含'include'或'extend'的不同用例?

时间:2015-11-24 23:02:25

标签: include uml extend use-case

我对UML和用例图很新,我不确定我是否理解我正确使用'include'。另请注意,这是一个课程而不是一个实际的系统,所以即使下面的细节不是一成不变的,它们也不是很灵活。

我有这种情况,其中演员(客户)填写申请表。此用例称为TakeMembership。

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

最后,外部电子邮件系统会向用户发送其登录详细信息。我把这个用例称为SendLoginDetails,并将电子邮件系统作为主要成员和成员(客户现已变成成员并成为另一个演员)作为此案例的次要角色。

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

我考虑先使用'extend',然后决定反对它,因为这两个用例并不是例外,因为每次使用系统时都会使用它们。

有些同学建议我用“包含”连接它们,但这对我来说也没有意义。我对“包含”的理解是,当两个或多个用例中存在共同步骤并且“包含”用例不能单独使用时,应该使用它。

有什么关于'延伸'或'包含'的东西,我不知道吗?

1 个答案:

答案 0 :(得分:1)

用例不是关于“做A,然后是B,最终是C”,而是要显示演员从系统获得的附加价值。不要尝试功能分解(因此UC包含/扩展其他UC)。只有极少数情况下这些可能是有用的(实际上我可以很好地生活,没有一个)。通常人们创建一个用例,它实际上只是一个约束(最着名的是:Login)。

一旦您确定了增加的价值,您就可以想到如何实现它们的方案。这可以通过纯文本描述或使用活动图来完成。

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