1

具体来说,我有一个基本用例 A 和两个扩展用例 A1、A2。然后我在A中添加一个“包含”项目,我们称之为B。我的问题是A1,A2会自动包含这个项目B吗?还是我需要从 A1、A2 到 B 添加两个虚线箭头?

我没有足够的分数在这里发布图片,所以只是用这张图片来说明我的想法,我缺少从 A 到 A1,A2 的箭头,希望它不会混淆你。

                A ------> B(include)
               / \
        extend/   \extend
             /     \
            A1     A2

谢谢!

4

3 回答 3

2

根据我对您的案例研究的了解,您不需要 A1/A2 和 A 之间的概括,而不是扩展吗?扩展表示用例 A 的可选部分,泛化表示用例的不同“版本”。

在泛化的情况下,是的,包含的用例是继承的。在扩展的情况下,它不是。

于 2013-07-30T19:56:17.387 回答
1

实际上,如果您在 A1 和 A2 中引用 B,则需要从它们中包含(UML 中的 ElementImport)B。但是您也可以拥有一个包含 A、A1 和 A2 的包并从该包中导入 B,因此 B 将可用于该包中的所有元素。

于 2013-07-30T07:23:59.283 回答
0

A1 和 A2 将不包括 B。如果这实际上是行为(或者您可以按照 Xaelis 的建议并使用包语义),则必须专门为每个包含它。另一方面,如果 A1 和 A2 是 A 的特化(正如 Steph 指出的那样),它们将包含 B,因为 A 包含它。我心中有一些疑问,您是否真的打算专业化而不是扩展。

于 2016-01-29T07:33:00.967 回答