我正试图设计一个大学项目的UML分析类图。我的UML图如下所示: 如何在UML类分析图中关联这些类?
我曾经遇到过两个不同的问题:
- 用户可以有多个角色。具有Manager角色的用户可以管理其他用户及其角色。如何在UML中说明这种关联?
- 用户使用SwipeCard访问房间。如何在UML中显示此关联?
我正试图设计一个大学项目的UML分析类图。我的UML图如下所示: 如何在UML类分析图中关联这些类?
我曾经遇到过两个不同的问题:
回复1:
托马斯,你的答案的第二部分是非常有说服力的,我决定走你的建议。但是,我不明白第1部分中的观点。您是否介意在UML中展示这一点? – user3566211
看我的补充。好,你问。我错误地解释了它,但绘制完成后,错误很明显,我可以纠正它。 –
托马斯,你是通过使用序列图来表明这一点,我想用分析图来完成,请查看更新后的图表:https://drive.google.com/file/d/0B6_hNGJUq8_2RzBraENZS29RU1k/view?usp=sharing – user3566211
短快速解答
充分利用Role
类,而不是Manager
类。
的冗长的回答
我也有类似的情况,但是,最终,也有类似的Manager
类,并在以后添加MiddleManager
类,也可以管理其他类。
..........................
..+-----------------+.....
..| User |--+..
..+-----------------+..|..
...........^...........|..
........../ \..........|..
..........\ /..........|..
...........v...........|..Can Manage Other Users
...........|...........|..
...........|...........|..
...........|...........|..
..+-----------------+..|..
..| Role |--+..
..+-----------------+.....
..| [+] CanManage() |.....
..+-----------------+.....
..........................
所以,我移动功能或属性canManage()
到Role
类。
作为@Thomas Kilian提到,你的问题更多的是行为特征,而不是结构特征。行为在类图中表示为方法或属性。
UPDATE:
..........................
..+-----------------+.....
..| User |--+..
..+-----------------+..|..«Can Manage Other Users»
..| [+] CanManage() |--+..
..+-----------------+.....
...........^..............
........../ \.............
..........\ /.............
...........v..............
...........|..............
...........|..............
...........|..............
..+-----------------+.....
..| Role |.....
..+-----------------+.....
..........................
另一个版本可以包括自引用的关联。
具有管理员的用户不仅可以管理角色,还可以管理其他用户。我试图用UML来展示它。我理解你关于这个问题是行为的观点,但我认为仍然有一些方法可以在UML类分析图中显示,尽管不是详细的。 – user3566211
检查图表 – umlcat
的更新情况如何仅从用户到用户的自关联。由于具有Manager角色的用户可以管理其他用户,因此该用户也可以管理他们的角色。但这是一个有效的假设或方法吗? – user3566211
听起来不错。我建议你添加一个图片或一个显示你的UML图的ascii,以便理解你的答案 – umlcat
@Jim L.是的,请添加一个UML图,这将更容易理解。 – user3566211
另外,我更新了SwipeCard部分,因为它非常简单。具有经理角色部分的用户仍然不明确,请检查:[链接](https://drive.google.com/file/d/0B6_hNGJUq8_2RzBraENZS29RU1k/view?usp=sharing) – user3566211