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

时间:2016-03-02 19:03:17

标签: uml data-modeling model-associations

我正在尝试为大学项目设计UML分析类图。我的UML图看起来像这样: enter image description here

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

  1. 用户可以拥有多个角色。具有Manager角色的用户可以管理其他用户及其角色。如何在UML中说明这种关联?
  2. 用户使用SwipeCard访问房间。如何在UML中显示这种关联?

3 个答案:

答案 0 :(得分:3)

分析模型的开端非常好。我会做的一些事情:

  • 明确UserRole之间的关联(或使其成为关联类)Role Assignment
  • 在每个关联的每一端添加一个动词表达的属性名称。例如,Manager 授权 Role AssignmentRole Assignment 授权 Manager

以下是我头顶的一个例子:

enter image description here

我放弃了很多东西,包括操作,我会禁止用于中小企业的验证。我不能为你做所有的工作!

答案 1 :(得分:1)

  1. 为Role类提供一些用于预期目的的管理方法。但是行为上下文更好地显示在活动或序列图中,您可以在其中详细说明"管理"确实。
  2. 从用户添加到SwipeCard的关联并命名为"使用"。进一步添加从SwipeCard到Room的关联,并将其命名为"打开"。
  3. 回复1:

    enter image description here这些是操纵角色的方法和

    enter image description here显示了经理如何使用它们。约束告诉只有经理可以使用这种方法。

答案 2 :(得分:1)

简短快速回答

制作Role课程,而不是Manager课程。

长期无聊的回答

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

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

因此,我将一个或多个函数canManage()移动到Role类。

正如@Thomas Kilian所说,你的问题更像是一种行为特征,而不是结构特征。行为在类图中表示为方法或属性。

更新:

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

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