UML 中继承参与者具有不同行为的相同用例

Same use case with different behaviour for inherited actor in UML

我想模拟以下行为:当管理员创建博客post 时,与用户创建博客post 时有所不同,例如版主是参与创建博客 post 用例,因为他验证博客 post。但是,当管理员没有管理员角色时,他的博客 posts 也需要版主验证,因为他自己继承了用户的行为。

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

我希望这是有道理的。

尽可能简单

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

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

因此,我建议保留与 UserModerator 相关的单个 Create blogpost 用例。您仍然可以将 Administrator 保留为 User 的特化,并在用例行为的详细描述中使用此特化。

但并不简单

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

  1. 保持单个 Create blogpost 用例仅与更一般的 User 相关联,并且 «extend» 它与另一个 Moderate blogpost 用例仅与Moderator。这是有道理的,因为审核用例是主持人自己的目标,它可以重复使用(例如,也可以是 Update blogpost 的扩展)。
  2. 由于参与者和用例都是分类器,您可能还认为用例 Create unmoderated blogpost 是更一般的 Create blogpost 的特化。然而,这需要更精确的重新定义,并且在我看来不如#1.

第一种情况如下:

其他想法

一个Moderator原则上也是一个User。出于好奇:如果版主创建博客会怎样post:可以he/she 自行管理自己的内容吗?或者必须使用四眼原则确保不同的调节器调节这个 post ;-)