Class UML-3个类之间的关联

Class UML-3个类之间的关联,class,associations,uml,ternary,Class,Associations,Uml,Ternary,我有一句话,我不明白如何在类图中建模。这是关于一级方程式赛车的比赛。作品如下: 我们每个赛季每个赛道只能有一场比赛 因此,赛道、赛季和比赛之间存在关系 我相信这是一种三元关联,但一位队友告诉我,这可能是巡回赛季节之间的关联,然后是该关联与种族之间的关联: 那幅画错了吗?我的意思是,据我所知,关联应该在两个类之间。不是在类和关联之间 非常感谢你 编辑: 声明是错误的,我重申了它,可以翻译成:(假设我们有3个电路) 第1季-->第1场比赛中的赛道A 第1季-->第2场比赛中的赛道B 第1季--

我有一句话,我不明白如何在类图中建模。这是关于一级方程式赛车的比赛。作品如下:

我们每个赛季每个赛道只能有一场比赛

因此,赛道赛季比赛之间存在关系


我相信这是一种三元关联,但一位队友告诉我,这可能是巡回赛季节之间的关联,然后是该关联与种族之间的关联:

那幅画错了吗?我的意思是,据我所知,关联应该在两个类之间。不是在类和关联之间

非常感谢你

编辑: 声明是错误的,我重申了它,可以翻译成:(假设我们有3个电路)

  • 第1季-->第1场比赛中的赛道A
  • 第1季-->第2场比赛中的赛道B
  • 第1季-->第3场比赛中的电路C
  • 第1季-->第4场比赛中的赛道A(这是不允许的,每个赛季每个赛道只能有一场比赛)
  • 第2季-->第5场比赛中的赛道A(这是正确的)

每个赛季每个赛道只能有1场比赛

以使
比赛
成为所需的关联类,使水平连接器虚线并消除多重性。上面显示的是一种三元连接器(见讨论)

这相当于


多重性
0..1
表明每个赛季和赛道有一场比赛或没有比赛。

根据我的理解,下图根据需要模拟了情况:

每个赛季可能与*赛道有种族关联,反之亦然。如果一个特定的赛季有一个与特定赛道的种族关联,那么该关联只有一个种族关联类实例

一个季节不必与一个循环相联系,那么就没有这种组合的竞赛

每个赛季最多有一场比赛的限制——赛道组合现在从何而来?这是因为在一个关联端上有一个*(或任何大于1的数字)意味着一个实例可以与多个不同的其他实例关联,但不能与一个相同的其他实例关联几次


在此示例中,一个季节实例可能与多个不同的电路关联,但不会与同一个电路关联多次。(如果要对此进行建模,必须使用多个关联或限定关联)

OP图不是三元关联。这将有一个钻石在中间只有多重的阶级结束。@ JimL。通常你会吃含片。虽然我读到一个连接器可以有2个..*ConnectorEnds。我并没有搜索更多的细节,但我猜上面的符号应该是三元的(尽管我承认我从未见过这种方式)。它们适用于复合结构,比如当您想告诉某人如何组装特定的东西时,当类图允许许多变化时。这里没有嵌套的框,也没有任何矩形上的名称:类型标签。连接器类似于链接,因为它们可以通过关联键入。@Thomas Kilian,谢谢!!我知道“协会级”连接器存在,但我认为它无法实现“每个赛道和每个赛季只能有一场比赛”的说法。我认为这句话的意思是“每个赛道每个赛季只能有一场比赛”所以你不能重复第一季的A赛道,我错过了问题的这一部分。只需将0..*替换为0..1,这将限制每个赛季和赛道只能进行1场比赛。这让我更加困惑。你的第四个子弹是说你的模型不正确还是反之亦然?哦,对不起,我的意思是不应该允许“第1季-->第4场比赛中的赛道A”不应该被允许,因为我们在第1季中重复了赛道A(第1和第4场比赛将有相同的赛季(1)和赛道(A),这是不应该被允许的)。好的。所以我的答案就是你想要的。每个赛季和赛道只有一场(或没有)比赛。是的!几乎,因为它不能完成最后一个子弹,对吗?在你的图表中,我认为你在第一季只能有一个赛道A,例如(第1个项目),但在第二季(第5个项目),你不能有赛道A,因为在这个图表中,由于基数的关系,每个赛道只能与一个赛季相关。当然你可以。第一季和第二季是不同的。因此,您与回路a有了新的关联。多重性与实例数有关。