2016-03-02 65 views
2

我正试图设计一个大学项目的UML分析类图。我的UML图如下所示: enter image description here如何在UML类分析图中关联这些类?

我曾经遇到过两个不同的问题:

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

回答

3

你有一个非常好的分析模型开始。有些事情,我会做:

  • 具体化UserRole(或使其关联类)之间的关系称为Role Assignment
  • 为每个关联的每一端添加一个动词词组属性名称。例如,Manager授权Role AssignmentRole Assignment授权Manager

下面是一个例子首次下调,从我的头顶:

enter image description here

我离开了一堆东西,包括运营,其中我会打压中小企业验证。我不能做全部为你工作!

+0

听起来不错。我建议你添加一个图片或一个显示你的UML图的ascii,以便理解你的答案 – umlcat

+0

@Jim L.是的,请添加一个UML图,这将更容易理解。 – user3566211

+0

另外,我更新了SwipeCard部分,因为它非常简单。具有经理角色部分的用户仍然不明确,请检查:[链接](https://drive.google.com/file/d/0B6_hNGJUq8_2RzBraENZS29RU1k/view?usp=sharing) – user3566211

1
  1. 给角色类一些管理方法,用于预期的目的。但是,在活动或序列图中可以更好地展示行为环境,您可以在其中详细说明“管理”的功能。
  2. 添加从用户到SwipeCard的关联并将其命名为“使用”。进一步添加从SwipeCard到房间的关联并将其命名为“打开”。

回复1:

enter image description here这些都是方法来操作角色和

enter image description here在显示管理者如何使用它们。该约束表明只有管理者可以使用这种方法。

+0

托马斯,你的答案的第二部分是非常有说服力的,我决定走你的建议。但是,我不明白第1部分中的观点。您是否介意在UML中展示这一点? – user3566211

+0

看我的补充。好,你问。我错误地解释了它,但绘制完成后,错误很明显,我可以纠正它。 –

+0

托马斯,你是通过使用序列图来表明这一点,我想用分析图来完成,请查看更新后的图表:https://drive.google.com/file/d/0B6_hNGJUq8_2RzBraENZS29RU1k/view?usp=sharing – user3566211

1

短快速解答

充分利用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  |..... 
..+-----------------+..... 
.......................... 

另一个版本可以包括自引用的关联。

+0

具有管理员的用户不仅可以管理角色,还可以管理其他用户。我试图用UML来展示它。我理解你关于这个问题是行为的观点,但我认为仍然有一些方法可以在UML类分析图中显示,尽管不是详细的。 – user3566211

+0

检查图表 – umlcat

+0

的更新情况如何仅从用户到用户的自关联。由于具有Manager角色的用户可以管理其他用户,因此该用户也可以管理他们的角色。但这是一个有效的假设或方法吗? – user3566211