用例 - UML 关系"使用"和"包含"是否相同?


用例

图中的"使用"和"包含"关系是否相同?

  • "使用"不是用例图的标准元素。但是UML标准允许使用外部图元素。因此,您可以正式使用通常属于类图元素并且是一种依赖关系的"use"元素。它的意思是:

用法是一种依赖关系,其中一个命名元素需要另一个 NamedElement NamedElement(或一组NamedElements)用于其完整实现或 操作。用法未指定客户如何使用供应商 除了定义中使用的供应商或 客户端的实现。

(引自UML 2.5标准)

  • «包括»

"是两个用例之间的定向关系,表明 将包含的用例(添加)的行为插入到 包含用例(包含案例)的行为 它也是一个 的 NamedElement 的种类,以便它可以在其上下文中具有名称 拥有用例。包含用例可能取决于更改 通过执行包含的用例生成。包含的用例必须 可用于包含用例的行为 完全描述。

(引自UML 2.5标准)

因此,这两种连接在含义上非常接近,但在技术上并不相同。

  • 用法应用于命名元素,包括行为。
  • 倾斜是一个更强大的元素 - 它可以是NamedElement本身。
  • 恕我直言,它们的主要区别在于用法可以描述实现。
  • 此外,用法可以将包含连接到其他一些命名元素。包括无法连接用法。这种差异已经足够彻底了,但不是很重要,因为很少需要这种联系。

从形式上讲,您可以在用例中同时使用它们,但真正的原因很少发生。最现实的情况是当你在用例图中使用一些类时(这也是允许的),并在它们之间使用"use"。

当然不是,用法(«使用»)和包含(«包括»)是不同的含义。通常,我们不会在用例图上使用太多使用关系,这意味着一个元素需要另一个元素另一方面,包含被大量使用,这意味着源用例包括(始终)目标用例。

"use"在UML 2.0中已经过时(甚至可能更早),你应该坚持使用"include"和"extend"。

最新更新