Dependencies UML:组合还是依赖

Dependencies UML:组合还是依赖,dependencies,uml,associations,composition,visio,Dependencies,Uml,Associations,Composition,Visio,我有两门课Job和Task。规则如下: 每个作业都有一个数字标识符 每个作业有10个相应的任务s 每个任务都有一个数字标识符 如果没有作业,任务就不可能存在 我正在尝试为这两个类构建类图。由于Task离不开Job,因此我认为这是一个组合,这就是我构建类图的方式: 但现在我感到困惑的是,如果这种关联实际上是依赖关系: 在这种情况下,我如何知道关系是组合还是依赖关系 更新 我已经按照Thomas Kilian的建议,在类图中修复了组合(复合聚合): 依赖关系是元素之间最薄弱的关系。这意味着

我有两门课
Job
Task
。规则如下:

  • 每个
    作业
    都有一个数字标识符
  • 每个
    作业
    有10个相应的
    任务
    s
  • 每个
    任务都有一个数字标识符
  • 如果没有
    作业
    任务
    就不可能存在
我正在尝试为这两个类构建类图。由于
Task
离不开
Job
,因此我认为这是一个组合,这就是我构建类图的方式:

但现在我感到困惑的是,如果这种关联实际上是依赖关系:

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


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


依赖关系是元素之间最薄弱的关系。这意味着,如果所依赖的元素发生了更改,则需要对依赖元素进行某种关注。例如,如果类之间或包之间包含关联类,则类之间或包之间可能存在对枚举或概念阶段的依赖关系

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

两个旁注:

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

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

    指示属性具有共享聚合语义。共享聚合的精确语义因应用程序区域和建模者而异


谢谢。我不明白你的第二个旁白:“共享聚合(空心菱形)没有定义的语义,只有在你为特定用途在特定领域中定义它时才应该使用。”你能用一个例子解释一下吗?请看我的补充。@ThomasKilian中没有空心菱形question@srh如果你读了我的回答:“两个旁注”。以防有人用空心钻石来代替它。@ThomasKilian你能举一个你的第二副音符的例子吗?我还是不明白你的意思。