UML:组合或依赖

时间:2018-04-16 02:37:39

标签: dependencies uml associations composition visio

我有2个课程JobTask。这些是规则:

  • 每个Job都有一个数字标识符。
  • 每个Job都有10个对应的Task s。
  • 每个Task都有一个数字标识符。
  • 如果没有Task,则Job不能存在。

我正在尝试为这两个类构建类图。由于Task不能没有Job,所以我认为这是组合,这就是我构建类图的方法:

enter image description here

但现在我很困惑,如果这种关联实际上是依赖

enter image description here

在这种情况下,我如何知道关系是组合还是依赖

更新

我修正了类图中的组合(复合聚合),正如Thomas Kilian所说:

enter image description here

1 个答案:

答案 0 :(得分:3)

依赖是元素之间最弱的关系。这意味着如果依赖的元素被改变,它在依赖元素中需要某种注意力。例如。如果它们包含关联的类,则可以依赖枚举或在类之间或包之间的概念阶段。

复合聚合首先是两个元素之间的强关系(关联)。也就是说,其中一个也以某种方式与另一方合作(使用属性或方法)。此外,复合聚合正在讲述对象的生命周期。一旦合成元素被移除,正在组成的元素将死亡。这仅仅是用于数据安全的结构,例如如果移除该人,您需要删除个人记录(汽车/车轮示例似乎没有那么多意义,因为一旦车辆坠毁,车轮仍然可用)。另一种用途可能是(现在更少)存储管理。

两个旁注:

  • 您的图纸错误,因为填充的钻石必须连接到外部而不是形状的内部。

  • 共享聚合(空心菱形)没有定义的语义,只有在某个域中为特定用途定义它时才应使用它。见第2.5.1 specs中的112个:

      

    表示该属性具有共享聚合语义。共享聚合的精确语义因应用领域和建模者而异。