如何在UML类分析图中关联这些类?
我正试图为一个大学项目设计UML分析类图。我的UML图如下所示: 我遇到了两个不同的问题:如何在UML类分析图中关联这些类?,uml,data-modeling,model-associations,Uml,Data Modeling,Model Associations,我正试图为一个大学项目设计UML分析类图。我的UML图如下所示: 我遇到了两个不同的问题: 用户可以有多个角色。具有管理员角色的用户可以管理其他用户及其角色。如何在UML中说明这种关联 用户使用SwipeCard访问房间。如何在UML中显示这种关联 为角色类提供一些用于预期目的的管理方法。但在活动或序列图中更好地显示行为上下文,您可以在其中详细说明“管理”的作用 将用户关联添加到SwipeCard,并将其命名为“使用”。进一步将SwipeCard中的关联添加到文件室,并将其命名为“打开” 关于
显示管理器如何使用它们。约束说明只有经理可以使用此方法。简短快速回答 创建
角色
类,而不是经理
类
冗长乏味的答案
我有一个类似的案例,但最终有了一个类似的Manager
类,然后添加了一个MiddleManager
类,该类还可以管理其他类
..........................
..+-----------------+.....
..| User |--+..
..+-----------------+..|..
...........^...........|..
........../ \..........|..
..........\ /..........|..
...........v...........|..Can Manage Other Users
...........|...........|..
...........|...........|..
...........|...........|..
..+-----------------+..|..
..| Role |--+..
..+-----------------+.....
..| [+] CanManage() |.....
..+-----------------+.....
..........................
因此,我将函数或属性canManage()
移动到Role
类
正如@Thomas Kilian提到的,你的问题更多的是行为特征,而不是结构特征。行为在类图中表示为方法或属性
更新:
..........................
..+-----------------+.....
..| User |--+..
..+-----------------+..|..«Can Manage Other Users»
..| [+] CanManage() |--+..
..+-----------------+.....
...........^..............
........../ \.............
..........\ /.............
...........v..............
...........|..............
...........|..............
...........|..............
..+-----------------+.....
..| Role |.....
..+-----------------+.....
..........................
另一个版本可能包含自引用关联。您对分析模型有了一个非常好的开始。我会做一些事情:
- 具体化
和用户
之间的关联(或使其成为名为角色
的关联类)角色分配
- 将动词短语属性名称添加到每个关联的每一端。例如,
授权经理
和角色分配
由角色分配
授权经理
我删掉了一堆东西,包括操作,我会用SME来验证这些东西。我不能为你做所有的工作!托马斯,你回答的第二部分很有说服力,我决定采纳你的建议。然而,我不明白你在第1部分的观点。你介意用UML展示一下吗?看我的补充。很好,你问。我解释错了,但画完之后,错误很明显,我可以纠正。托马斯,你是通过使用序列图来建议这一点的,我想用分析图来完成这一点,请检查这个更新的图:分析还涉及行为描述。您可以只使用静态类(/analysis)图并添加注释。但使用行为图将更清楚地说明问题。具有Manager的用户不仅可以管理角色,还可以管理其他用户。我试图用UML来展示这一点。我理解你关于行为问题的观点,但我认为仍然有一些方法可以在UML类分析图中显示这一点,尽管没有详细说明。如何仅从用户到用户的自关联。由于具有管理员角色的用户可以管理其他用户,因此该用户也可以管理其角色。但这是一个有效的假设或方法吗?是的,自我联想也适用。记住,做事情或做模型的方法可能不止一种,而且所有的方法都是正确的。只要告诉我你对这种方法的最终意见,我应该这样做吗?是的,可以。但是,若你们的家庭作业包括了其他的东西,比如序列图或活动图,那个么也许其他的解决方案也适用。如果它只是一个类图,那么自关联图就可以了。听起来不错。我建议您添加一个显示UML图的图像或ascii,以便理解您的mroeanswer@Jim是的,请添加一个UML图,这将更容易理解。另外,我更新了SwipeCard部分,因为它非常简单。具有管理员角色部分的用户仍然不明确,请检查:[link]()@user3566211:这更容易理解吗?分析模型的一个相当重要的点是准确地捕获领域,并与非技术专家验证理解。我认为这很容易理解,因为它是用通俗易懂的英语写的。