【问题标题】:Role changing action. who does it belong to?角色转换动作。它属于谁?
【发布时间】:2021-03-07 09:47:51
【问题描述】:

如果用户有机会要求更改其角色(例如:员工要求晋升为领导)。行动是属于员工还是领导者?

【问题讨论】:

  • an employee asking to be promoted to leader : 所以与系统交互的角色是员工
  • 取决于您对角色的建模方式。请澄清。
  • 具有“员工”角色的用户可以登录、列出内容、添加其他内容,但绝不会触及“领导者”可以做的任何事情。 “领导者”实际上是“员工”,但拥有更多特权(遗产)。如果员工认为自己有资格成为领导者,他可以提出要求。希望这能澄清。
  • A user with the role "employee" can login :警告措辞,员工已登录,但演员(试图)登录不是员工。不要混淆一个人(我的意思是一个物理人,你我等)和一个角色(例如 UML 意义上的演员),一个人可以有多个角色,比如说一个与系统交互登录的客人,一个员工可以与系统交互列出等和注销,领导(继承员工)可以进行其他交互等。我的第一句话是不变的
  • A "leader" is actually an "employee" but with more privileges (heritage). 提个醒:演员LeaderEmployee 之间的泛化意味着Leader 涉及Employee 涉及的所有用例包括 Asking to be promoted 用例,在您的应用程序中可能有意义也可能没有意义。

标签: uml use-case


【解决方案1】:

您的问题被标记为“用例”。在这方面,您对演员到底是什么的问题似乎存在混淆。这是 UML 规范所说的:

Actor 对实体所扮演的一种角色进行建模,该角色与其关联的用例的主题进行交互。 Actor 可能代表人类用户、外部硬件或其他系统所扮演的角色。

如果用户在与系统交互过程中改变角色,在模型中,它就像另一个参与者与系统交互一样。示例:

  • 用户以Employee 的角色与系统交互,并“执行”一些与Employee 角色对应的用例;
  • 此用户被提升为Manager
  • 使用新角色,用户可以“执行”与Manager 参与者关联的用例。
  • 同一用户可能在系统中扮演多个角色。但这不会改变模型:模型是关于在给定时刻具有给定角色的所有用户,而与执行该角色的个人无关。
  • 现在在某些情况下,一个角色是另一个角色的专业化。这意味着具有一个角色的所有用户也具有另一个角色。一个典型的例子是如果Manager 始终是Employee。在这种情况下,您将在用例图中显示继承,以避免为 Manager 复制所有 Employee 与用例的关联。

如果您的问题不是关于用例而是关于授权管理的类,那么您需要重新表述您的问题。但在此之前,请先看看关于 SO 的现有问题,因为有很多关于类图以及如何分配用户权限的问题。

【讨论】:

  • 警告如@vrsio 在对问题的评论中所说的,如果 Manager(OP 问题中的 Leader)继承 Employee 这意味着 Manager 可以要求提升 Manager,因此用例必须有一个前提条件来避免这种情况
  • @bruno 确实 :-) 有人可能会说这符合现实:一名员工要求成为经理,后来他要求成为一些经理的经理,也许有一天最终会要求成为 CEO ,所有经理中的经理。也许这样的管理级别与参与者与系统的交互没有进一步的关系;-)
猜你喜欢
  • 2020-09-18
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
  • 2012-02-28
  • 2014-07-22
  • 1970-01-01
相关资源
最近更新 更多