为学校制作一个简单的UML类图

tan*_*tan 2 java diagram uml model class

我正在尝试为学校创建一个简单的类图.在我的班级层次结构中,学校通常由两个主要的利益相关者(学生和教师)组成,许多学生可以被分配到教师.我可以知道如何展示这种关系吗?

我在类图中使用了聚合和枚举,但是我不确定它是否正确.你能告诉我吗? 在此输入图像描述

qwe*_*_so 5

多重性:你使用多重的方式是正确的(我可以预见它).这意味着每位教师必须至少有一名学生.没有学生,就没有老师.听起来像是一所没有永久教师的雇佣和消防学校.

聚合:您可以按照您的方式使用共享聚合(开放式菱形).这是正确的,但请参阅下面的评论.

枚举:关于<<enumeration>>你只需要依赖而不是关联.与类的关系不同<<enumeration>>,a是一种"原始",不表示为对象.

角色名称:正如@Oguz所指出的,在关联结束时使用角色名称是个好主意.所以,你会把teacher附近Teacherstudents(复数因为你1..*)附近Student的关联.这些角色将作为属性实现.

有关共享聚合的其他说明:您不必关心共享聚合.根据UML规范,它没有通用的语义(UML 2.5的第110页):

表示该属性具有共享聚合语义.共享聚合的精确语义因应用领域和建模者而异.

聚合更多地是关于对象的生命周期,而现实生活中的应用程序比通常少见(主要是如果你必须在成本或安全性方面有内存意识).

因此,在您(以及大多数其他)案例中,多重性是您想要展示的.这通常比显示复合聚合(子对象与其父对象死亡)更重要,更不用说共享组合了.