我正在尝试为学校创建一个简单的类图。在我的班级结构中,学​​校通常由两个主要利益相关者(学生和老师)组成,并且可以将许多学生分配给一位老师。我可以知道如何显示这种关系吗?

我在类图中使用了聚合和枚举,但是我不确定它是否正确。你能告诉我吗?
java - 为学校制作一个简单的UML类图-LMLPHP

最佳答案

多重性:您使用多重性的方式是正确的(据我所见)。这意味着每位老师必须至少有一名学生。没有学生,就没有老师。听起来像没有正规老师的录用学校。

聚合:您可以像以前一样使用共享聚合(空心菱形)。是正确的,但请参阅下面的评论。

枚举:关于<<enumeration>>,您只需要依赖项而不是关联。与类的关系不同,<<enumeration>>是一种“原始”,没有表示为对象。

角色名称:正如@Oguz所指出的,在关联的末尾使用角色名称是个好主意。因此,您可以在关联处将teacher放在Teacher附近,并将students(复数,因为您有1..*)放在Student附近。这些角色将被实现为属性。

关于共享聚合的其他说明:
您不必太在乎共享聚合。根据UML规范,它没有通用的语义(UML 2.5的p。110):


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


聚合更多地是关于对象的生命周期,而现实生活中的应用程序则很少见(通常是在成本或安全性方面必须了解内存的情况下)。

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

关于java - 为学校制作一个简单的UML类图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45533150/

10-09 17:17
查看更多