UML Class 设计:不确定 Class 之间的关联

UML Class Design: Unsure About Association Between Classes

我正在学习基本的 UML 建模,作为练习示例,我正在制作 UML Class 医院建模图。医院有多个护理中心(即产科中心、急救中心等)。护理中心有志愿者协助护理中心。志愿者也可以同时加入多个护理中心。

因此,我创建了两个 classes:志愿者和护理中心。 我的问题是,这两个 class 之间的关联和基数是什么?这是多对多关系还是一对多关系?我的第一个想法是,志愿者 class 的重数为 0..*,护理中心的重数为 1..*。但是,我不确定这种关联,希望对这种关系进行一些澄清。

这是一个多对多的关系。

志愿者一侧的基数 class 将为 0..*,假设护理中心可能并不总是有志愿者。此基数表示每个护理中心的志愿者人数。

CareCenter class 一侧的基数将为 1..*,因为如果没有至少一个护理中心可以志愿服务,志愿者就不会成为志愿者。此基数表示每个志愿者的护理中心数量。

您可以选择模仿 class 个人而不是 class 志愿者,并将协会称为 "is volunteer for"。在这种情况下,CareCenter 一侧的基数将为 0..*,因为并非每个人都自愿。

我会说它应该是 1..*1..* 的关系。

理性:

  1. A Care-Center has Volunteers assisting the Care-Center.

    换句话说,一个关爱中心至少有一个志愿者。

  2. Volunteers are also allowed to be part of multiple Care-Centers at once.

    一名志愿者正在协助至少一个护理中心。如果不是,则不是志愿者。

图: