如何在UML Class分析图中关联这些类?

How to associate these classes in UML Class Analysis Diagram?

我正在尝试为大学项目设计 UML 分析 Class 图。我的 UML 图如下所示:

我遇到了两个不同的问题:

  1. 用户可以有多个角色。具有管理者角色的用户可以管理其他用户及其角色。如何在UML中说明这种关联?
  2. 用户使用刷卡方式进入房间。如何在 UML 中显示这种关联?
  1. 为角色 class 提供一些用于预期目的的管理方法。但是行为上下文在 activity 或序列图中更好地显示,您可以在其中详细说明 "manage" 的作用。
  2. 添加一个从 User 到 SwipeCard 的关联,并将其命名为 "use"。进一步添加一个从 SwipeCard 到 Room 的关联,并将其命名为 "opens".

回复 1:

这些是操作角色的方法,

显示经理如何使用它们。约束说明只有经理可以使用此方法。

简短快速回答

制作 Role class,而不是 Manager class。

冗长无聊的回答

我有一个类似的案例,但是,最终,有一个类似的 Manager class,后来添加了一个 MiddleManager class 也可以管理其他 classes.

..........................
..+-----------------+.....
..|      User       |--+..
..+-----------------+..|..
...........^...........|..
........../ \..........|..
..........\ /..........|..
...........v...........|..Can Manage Other Users
...........|...........|..
...........|...........|..
...........|...........|..
..+-----------------+..|..
..|      Role       |--+..
..+-----------------+.....
..| [+] CanManage() |.....
..+-----------------+.....
..........................

因此,我将函数或属性 canManage() 移动到 Role class。

正如@Thomas Kilian 提到的,你的问题更多的是行为特征,而不是结构特征。在 class 图中,行为表示为方法或属性。

更新:

..........................
..+-----------------+.....
..|      User       |--+..
..+-----------------+..|..«Can Manage Other Users»
..| [+] CanManage() |--+..
..+-----------------+.....
...........^..............
........../ \.............
..........\ /.............
...........v..............
...........|..............
...........|..............
...........|..............
..+-----------------+.....
..|      Role       |.....
..+-----------------+.....
..........................

另一个版本可能包含自引用关联。

您对分析模型有了一个很好的开端。我会做的一些事情:

  • 重新定义 UserRole 之间的关联(或使其成为关联 class),称为 Role Assignment
  • 在每个关联的每一端添加一个动词短语 属性 名称。例如,Manager 授权 Role AssignmentRole Assignment 授权 Manager.

这里是第一个从我脑海中截取的例子:

我遗漏了很多东西,包括操作,我会抑制这些内容以与 SME 进行验证。我无法为您完成 所有 工作!