UML, Class 标识和关系
UML, Class identification and relationship
UML初学者,我有以下合气道俱乐部管理规则:
R1:每个成员都应该参加培训实践。
R2:练习生可以来自同城或国家的其他俱乐部,也可以来自国外。
我确定2个类:
要考虑第二条规则:
- 成员 (1) 和实习生 (0..1)
- 实习生(1..*)和培训(1..*)
我的做法是否正确?
基本上这样就可以了。但是 Member
和 Training
之间的 m-n
关系最好建模为关联 class:
在这种情况下,您可以为每个培训添加成员的个人属性。实现此功能时,您可能会觉得需要在两者之间引入一些胶水(如数据库中的 table)。
我还添加了一个 Club
class 假设会员只绑定一个俱乐部。如果您想模拟多俱乐部关系,您可能会再次使用关联 class.
您的图表是一个开始。 as proposed by Thomas Killian 更完整。但是,在这两个图中都没有约束或规则的概念。这根本不是 class 图的用途。你可以(用你的图表)表达的是一个或多个成员可以参加培训,并且至少有一个成员经常参加培训。
要表达每个成员都必须参加培训课程,您可能需要表达,对于 class 图的所有实例,所有成员都至少与一个培训关联。为此,您需要制定约束,可能使用 OCL,对象约束语言旨在补充 UML 并解决您现在面临的具体缺点。
UML初学者,我有以下合气道俱乐部管理规则:
R1:每个成员都应该参加培训实践。
R2:练习生可以来自同城或国家的其他俱乐部,也可以来自国外。
我确定2个类:
要考虑第二条规则:
- 成员 (1) 和实习生 (0..1)
- 实习生(1..*)和培训(1..*)
我的做法是否正确?
基本上这样就可以了。但是 Member
和 Training
之间的 m-n
关系最好建模为关联 class:
在这种情况下,您可以为每个培训添加成员的个人属性。实现此功能时,您可能会觉得需要在两者之间引入一些胶水(如数据库中的 table)。
我还添加了一个 Club
class 假设会员只绑定一个俱乐部。如果您想模拟多俱乐部关系,您可能会再次使用关联 class.
您的图表是一个开始。
要表达每个成员都必须参加培训课程,您可能需要表达,对于 class 图的所有实例,所有成员都至少与一个培训关联。为此,您需要制定约束,可能使用 OCL,对象约束语言旨在补充 UML 并解决您现在面临的具体缺点。