Uml 如何在类图中指定多个选项?

Uml 如何在类图中指定多个选项?,uml,class-diagram,Uml,Class Diagram,我正在制作一个系统的类图,其中用户可以充当学生、讲师或助手。到目前为止,我已经创建了一个具有以下属性和方法的用户类,其中用户可以以特定角色参与单个课程,也可以从特定课程中删除。因为一个用户只能有一个角色,所以我在方括号中声明了它-参与者:角色[1] 然而,它只说一个用户可以有一个角色,但没有说一个用户的不同角色。如何在类图中指定它。我应该创建一个新的角色类,还是可以在用户类中指定 USER CLASS: Attributes: -username: String -password: Strin

我正在制作一个系统的类图,其中用户可以充当学生、讲师或助手。到目前为止,我已经创建了一个具有以下属性和方法的用户类,其中用户可以以特定角色参与单个课程,也可以从特定课程中删除。因为一个用户只能有一个角色,所以我在方括号中声明了它
-参与者:角色[1]

然而,它只说一个用户可以有一个角色,但没有说一个用户的不同角色。如何在类图中指定它。我应该创建一个新的
角色
类,还是可以在
用户
类中指定

USER CLASS:
Attributes:
-username: String
-password: String
-Participant: Role [1]
Methods:
+participate(course: Course, role: Role): void
+remove_user(course: Course): void
+get_average(assignment: Assignment): int

您可以将
角色
抽象化,然后为学生、讲师和助手创建子类。这样,每个用户只能实例化一个子类

或者,您可以将
角色
设置为枚举,其中每个枚举文字都是
角色
的特定实例。这样,您可以在整个系统中实例化每个
角色中的一个:学生、讲师和助理

在您的系统中,是所有用户都扮演相同的角色,还是角色中的每个用户都有其他信息,例如角色分配给用户的日期?这个问题的答案告诉你该选择哪一个


顺便说一句,用户作为学生、讲师或助手的限制是否有点过于有限?为什么用户不能在一门课程中扮演学生角色,而在另一门课程中扮演助手角色?

非常感谢您的解释。你能再描述一下吗?我是否应该创建一个
角色
类并再创建3个类来继承
角色
类?在这种情况下,
Role
类必须有一些属性,这有关系吗?3个子类或3个枚举文本都可以。这个问题实际上涉及到一个非常复杂的理论问题,它可能会让你的眼睛盯着你的脑袋,与谓词和qua实体有关。有什么东西阻止你接受答案吗?