1

我想对以下行为进行建模:当管理员创建博客文章时,与用户创建博客文章时相比,情况有所不同,例如,版主在验证博客文章时参与了创建博客文章的用例。但是,当管理员没有管理员角色时,他的博客帖子也需要由版主验证,因为他自己继承了用户的行为。

下面的这个例子可能只有在管理员可以删除他自己的角色时才有意义,当他不想以管理员身份使用系统时。

我希望这是有道理的。

在此处输入图像描述

4

1 回答 1

2

保持尽可能简单

您不应该使用两个相同的用例名称来表示同一模型中的不同行为。这非常令人困惑。

顺便说一句,UML 规范没有定义当多个参与者与同一个用例相关时的确切含义:它可以是多个参与者,每个参与者分别参与不同的用例出现,但也可以是每次都必须让所有参与者参与。

因此,我建议保留一个与andCreate blogpost相关的用例。您仍然可以在用例行为的详细描述中保持专业化并使用该专业化。UserModeratorAdministratorUser

在此处输入图像描述

但不是必要的简单

如果您认为这不能充分准确地表达您的情况,您有两种可能。

  1. 保持单个Create blogpost用例仅与更通用的 . 相关联User,并将«extend»其与Moderate blogpost仅与Moderator. 这是有道理的,因为审核用例是审核者自己的目标,它可以被重用(例如,也可以是 的扩展Update blogpost)。
  2. 由于参与者和用例都是分类器,因此您可能还会认为用例Create unmoderated blogpost是更通用的Create blogpost. 但是,这需要对重新定义进行更精确的定义,并且在我看来,它的表现力不如 #1。

第一种情况如下所示:

在此处输入图像描述

额外的想法

AModerator原则上也是 a User。出于好奇:如果版主创建了一篇博文会发生什么:他/她可以自行审核自己的内容吗?或者必须确保四眼原则确保其他版主审核这篇文章;-)

于 2021-01-12T00:00:46.570 回答