UML:组合或依赖

UML: Composition or Dependency

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

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

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

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


更新

我已经按照 Thomas Kilian 的建议在 Class 图中修复了 组合(复合聚合)

依赖是元素之间最弱的关系。这意味着如果所依赖的元素发生变化,则需要对依赖元素进行某种关注。例如。如果包含关联的 类.

,则 类 或包之间可能存在对枚举或概念阶段的依赖性

复合聚合首先是两个元素之间的强关系(关联)。这是两者之一也以某种方式与另一方合作(使用属性或方法)。此外,复合聚合还提供了有关对象生命周期的信息。一旦组合元素被移除,正在组合的元素就会消亡。这仅仅是用于数据安全的构造,例如如果此人被删除,您需要删除个人记录(car/wheels 示例似乎没有多大意义,因为一旦汽车撞毁,车轮仍然可用)。另一个用途可能是(现在更少)存储管理。

两个旁注:

  • 您的绘图是错误的,因为填充的钻石必须附着在形状的外部而不是内部。

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

    Indicates that the Property has shared aggregation semantics. Precise semantics of shared aggregation varies by application area and modeler.