UML 中继承参与者具有不同行为的相同用例
Same use case with different behaviour for inherited actor in UML
我想模拟以下行为:当管理员创建博客post 时,与用户创建博客post 时有所不同,例如版主是参与创建博客 post 用例,因为他验证博客 post。但是,当管理员没有管理员角色时,他的博客 posts 也需要版主验证,因为他自己继承了用户的行为。
只有当管理员不想以管理员身份使用系统时,他可以删除自己的角色,下面的示例才有意义。
我希望这是有道理的。
尽可能简单
您不应该使用两次相同的用例名称来表示同一模型中的不同行为。这非常令人困惑。
顺便说一下,UML 规范没有定义当多个参与者与同一个用例相关时的确切含义:它可以是多个参与者,每个参与者分别参与用例的不同事件,但它也可以是所有参与者每次都必须参与。
因此,我建议保留与 User
和 Moderator
相关的单个 Create blogpost
用例。您仍然可以将 Administrator
保留为 User
的特化,并在用例行为的详细描述中使用此特化。
但并不简单
如果您认为这不能充分准确地表达您的情况,您有两种可能。
- 保持单个
Create blogpost
用例仅与更一般的 User
相关联,并且 «extend»
它与另一个 Moderate blogpost
用例仅与Moderator
。这是有道理的,因为审核用例是主持人自己的目标,它可以重复使用(例如,也可以是 Update blogpost
的扩展)。
- 由于参与者和用例都是分类器,您可能还认为用例
Create unmoderated blogpost
是更一般的 Create blogpost
的特化。然而,这需要更精确的重新定义,并且在我看来不如#1.
第一种情况如下:
其他想法
一个Moderator
原则上也是一个User
。出于好奇:如果版主创建博客会怎样post:可以he/she 自行管理自己的内容吗?或者必须使用四眼原则确保不同的调节器调节这个 post ;-)
我想模拟以下行为:当管理员创建博客post 时,与用户创建博客post 时有所不同,例如版主是参与创建博客 post 用例,因为他验证博客 post。但是,当管理员没有管理员角色时,他的博客 posts 也需要版主验证,因为他自己继承了用户的行为。
只有当管理员不想以管理员身份使用系统时,他可以删除自己的角色,下面的示例才有意义。
我希望这是有道理的。
尽可能简单
您不应该使用两次相同的用例名称来表示同一模型中的不同行为。这非常令人困惑。
顺便说一下,UML 规范没有定义当多个参与者与同一个用例相关时的确切含义:它可以是多个参与者,每个参与者分别参与用例的不同事件,但它也可以是所有参与者每次都必须参与。
因此,我建议保留与 User
和 Moderator
相关的单个 Create blogpost
用例。您仍然可以将 Administrator
保留为 User
的特化,并在用例行为的详细描述中使用此特化。
但并不简单
如果您认为这不能充分准确地表达您的情况,您有两种可能。
- 保持单个
Create blogpost
用例仅与更一般的User
相关联,并且«extend»
它与另一个Moderate blogpost
用例仅与Moderator
。这是有道理的,因为审核用例是主持人自己的目标,它可以重复使用(例如,也可以是Update blogpost
的扩展)。 - 由于参与者和用例都是分类器,您可能还认为用例
Create unmoderated blogpost
是更一般的Create blogpost
的特化。然而,这需要更精确的重新定义,并且在我看来不如#1.
第一种情况如下:
其他想法
一个Moderator
原则上也是一个User
。出于好奇:如果版主创建博客会怎样post:可以he/she 自行管理自己的内容吗?或者必须使用四眼原则确保不同的调节器调节这个 post ;-)