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

如何在UML类分析图中关联这些类?,uml,data-modeling,model-associations,Uml,Data Modeling,Model Associations,我正试图为一个大学项目设计UML分析类图。我的UML图如下所示: 我遇到了两个不同的问题: 用户可以有多个角色。具有管理员角色的用户可以管理其他用户及其角色。如何在UML中说明这种关联 用户使用SwipeCard访问房间。如何在UML中显示这种关联 为角色类提供一些用于预期目的的管理方法。但在活动或序列图中更好地显示行为上下文,您可以在其中详细说明“管理”的作用 将用户关联添加到SwipeCard,并将其命名为“使用”。进一步将SwipeCard中的关联添加到文件室,并将其命名为“打开” 关于

我正试图为一个大学项目设计UML分析类图。我的UML图如下所示:

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

  • 用户可以有多个角色。具有管理员角色的用户可以管理其他用户及其角色。如何在UML中说明这种关联
  • 用户使用SwipeCard访问房间。如何在UML中显示这种关联
  • 为角色类提供一些用于预期目的的管理方法。但在活动或序列图中更好地显示行为上下文,您可以在其中详细说明“管理”的作用
  • 将用户关联添加到SwipeCard,并将其命名为“使用”。进一步将SwipeCard中的关联添加到文件室,并将其命名为“打开”
  • 关于1:

    这些是操纵角色和角色的方法


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

    简短快速回答

    创建
    角色
    类,而不是
    经理

    冗长乏味的答案

    我有一个类似的案例,但最终有了一个类似的
    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:这更容易理解吗?分析模型的一个相当重要的点是准确地捕获领域,并与非技术专家验证理解。我认为这很容易理解,因为它是用通俗易懂的英语写的。