0

我遇到了几个依赖关系的例子,例如包含、扩展,但它完全令人困惑。一个例子表明include应该朝着以下方向发展;

user profile --> login

虽然extends应该是方向;

validate credit card <-- print receipt.

鉴于required应该朝着的方向;对于我的一生,我不明白为什么这不能成为include

place order --> create account

它们的构造方式也很重要,即

user profile --> login (include)

      **vs**

validate credit card (extend)
       ^
       |
       |
       |
  print receipt
4

1 回答 1

1

我不确定我是否完全理解您问题的每个部分,但我们开始吧:

包含从包含到包含。它表示用例的强制子部分:

including -----------> included
          <<include>>

扩展与包含相同,但子部分不是强制性的。不幸的是,箭头正好相反。这似乎让你很困惑。

including <----------- optionnally included
            <<extend>>

当您谈到必需时,我想它是一个匿名的虚线箭头?事实上,这样的依赖可以写成任何东西,用例与否。这对于用例来说并不常见,但这可能意味着一个用例有另一个用例作为先决条件。与 include 的区别在于它不是子部分。在这种情况下,它是这样绘制的。

requiring -----------> required

在您的示例中,似乎要下订单,您必须创建一个帐户(确实合乎逻辑)。但是帐户创建不是下订单的子部分,因此它不是包含。

至于您的最后一个问题,您是在谈论垂直/水平吗?如果是这样,那么在 UML 中就没有关系了。其实定位没有规则,唯一的规则就是保持清晰。

于 2013-04-05T17:10:58.317 回答