【发布时间】:2016-03-02 19:03:17
【问题描述】:
我正在尝试为一个大学项目设计 UML 分析类图。我的 UML 图如下所示:
我遇到了两个不同的问题:
- 用户可以有多个角色。具有管理员角色的用户可以管理其他用户及其角色。如何在 UML 中说明这种关联?
- 用户使用刷卡进入房间。如何在 UML 中显示这种关联?
【问题讨论】:
标签: uml data-modeling model-associations
我正在尝试为一个大学项目设计 UML 分析类图。我的 UML 图如下所示:
我遇到了两个不同的问题:
【问题讨论】:
标签: uml data-modeling model-associations
【讨论】:
简短的快速回答
创建Role 类,而不是Manager 类。
冗长无聊的答案
我有一个类似的案例,但最终有一个类似的Manager 类,后来添加了一个MiddleManager 类,它也可以管理其他类。
..........................
..+-----------------+.....
..| User |--+..
..+-----------------+..|..
...........^...........|..
........../ \..........|..
..........\ /..........|..
...........v...........|..Can Manage Other Users
...........|...........|..
...........|...........|..
...........|...........|..
..+-----------------+..|..
..| Role |--+..
..+-----------------+.....
..| [+] CanManage() |.....
..+-----------------+.....
..........................
所以,我将一个函数或属性 canManage() 移动到 Role 类。
正如@Thomas Kilian 提到的,您的问题更多是行为特征,而不是结构特征。行为在类图中表示为方法或属性。
更新:
..........................
..+-----------------+.....
..| User |--+..
..+-----------------+..|..«Can Manage Other Users»
..| [+] CanManage() |--+..
..+-----------------+.....
...........^..............
........../ \.............
..........\ /.............
...........v..............
...........|..............
...........|..............
...........|..............
..+-----------------+.....
..| Role |.....
..+-----------------+.....
..........................
另一个版本可能包含自引用关联。
【讨论】:
【讨论】: