所以我需要为大学类(class)练习 UML,但我无法弄清楚以下内容:
我们需要制作一个体育协会的 UML 类图。有一张玩家 table 。球员表的一个子类是裁判员表。球员是球队的一部分,裁判也是球队的一部分(因为裁判也是球员)。一名裁判被分配到一场比赛,但不能是他自己球队的比赛。
我找不到最后一句的答案。我如何将其放入 UML 类图中?
UML 图是荷兰语的。 Wedstrijd = 比赛,scheidsrechter = 裁判,其他的都没有必要。
最佳答案
您的图表可能有几个问题,因为它表示对于一场竞赛 (Wedstrijd
),只有一个 Team
(复合聚合),这听起来既不具有竞争力,也不有趣的。此外,它还说俱乐部 (Sportsverijn
) 最多有一名成员,这与叙述不符。
一旦这些问题(以及其他一些问题)得到解决,并且假设 Wedstrijd
涉及两个团队,您可以向模型添加约束来表达这些复杂的条件。
通常,您可以在大括号中以明文形式表达它们:{ 不能担任涉及相关球队的比赛的裁判 }
旁边的比赛之间的关联 (Wedstrijd
) >) 和裁判 (Scheidsrechter
)。这种自然语言约束是不明确的。可以用 OCL 编写更正式的表达式,例如: match.team->includes(match.referee.team) == false
表达式的细节当然取决于你的模型是否是快照(似乎是这里的情况),或者是否考虑到裁判可能会及时更换球队的事实。在这里,我有一个替代模型,可以避免复合聚合,并将裁判与团队相关联,并提供两个约束示例:
关于database - UML 类图中关联的复杂规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75506702/