如何在用例图中显示不同用户所分配的不同角色?

3
假设我有不同的功能/角色,管理员可以将这些功能/角色分配给他们选择的用户,所以没有“如果用户可以做到这一点,他们就不能做那个”。例如:我有阅读、添加、删除和编辑等角色。管理员可以随意将这些角色分配给他/她的用户。这是否可以在用例图中说明,或者我应该只使用一个参与者并赋予他所有这些动作?如果可以做到,该如何实现?我不熟悉所有UML图,但如果有人知道一个更好的图表,可以更好地说明这个问题,我将不胜感激!
2个回答

2
Usecase图在你的情况下似乎是一个好主意,但你需要更多地了解它们......这里有一个简单的例子,其中用户能够阅读,管理员也能够阅读(因为他也是用户),并且能够写入。

enter image description here

再次尝试查找有关UML /用例图的更多信息。


你应该将模糊的用例通过命名它们为“读取某物”和“写入某物”来更加具体化,仅有动词是不够的。 - qwerty_so
嗯,我不确定你是否理解我的问题。我不是在谈论演员之间的泛化关系!正如我所说,当我无法确定哪个演员可以扮演哪个角色时,我想要一种正确的方式来展示分配给不同演员的角色。 - S.Eruka
1
演员就是角色。这个答案正在解决这个问题。就像在剧院里演员扮演角色一样。 - qwerty_so
我觉得当我试图给出一个简单的例子时,最终却给出了一个含糊不清的例子 :/ 但是无论如何,我理解了你的意思!谢谢 :) - S.Eruka

2
首先,通常最好给你的角色命名为名词而非动词,这样可以更清晰明确。因此,可阅读者(reader)、可添加者(adder)等等。
在使用情况方面,我建议创建一个用例来“将角色分配给用户”,管理员作为执行者。除非添加不同角色涉及的流程截然不同,否则您可能不需要四个单独的用例。
然后,创建“阅读内容”、“添加内容”等用例,其执行者分别为阅读者和添加者。
在阅读者和添加者执行者的描述中,要明确这些是被分配相应角色的用户。如果您愿意,它们可以从一个更通用的“用户”执行者继承,但就我所见,无法仅凭这个问题来判断是否有动机。
以上就是你需要做的全部内容。

感谢您的答案,我明白了!如果我想按照这种方式进行,并为每个角色(Reader、Adder等)添加演员,我意识到我无法展示演员之间的一般化关系,对吗?因为例如“编辑器”同时也可以是“加法器”! - S.Eruka
如果您愿意,可以这样做,但是 Reader 和 Adder 不会成为彼此的概括(尽管可能是第三个角色 User 的概括)。您只需将 Reader 描述为“具有读取权限的用户”,将 Adder 描述为“具有添加权限的用户”。没有必要解释一个个体既具有读取权限又具有添加权限可以在两种用例中都活跃,这就是使用“角色”作为角色的优点。 - Uffe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接