用例所需的两个参与者可以是同一个人吗?

Can two actors both required for a usecase be the same person?

我收到了以下用例图。

给出的问题是 "How many people are required for the Use Case?"。

有人告诉我,Actor 用于模拟域中的某些角色,"real" 人可以担任多个角色。

严格按照这个定义,一个人同时扮演两个角色就足够了,但我不确定我是否遗漏了什么,因为直觉上应该有一个原因,为什么有两个演员在场。 这里一个人"real"够吗?

是的,这是可能的。

例如,假设一个系统允许跟踪软件中的错误,参与者可以是

  • 用户:在系统中添加新错误报告以表明问题的人
  • corrector : 修正错误的人

如果软件开发人员在实习生中检测到的错误被追踪到,那么该团队的同一个人可以担任这两个角色


在我的论坛里,当用户要求注册时,我手动接受或不接受注册以拒绝垃圾邮件发送者

一定要测试我同时扮演了用户和管理员的角色

诸如此类,还有很多

这个问题似乎假设演员是人。然而,情况并非如此:actor 可以是与您的用例主题交互的另一个系统。

所以严格来说,如果A和B是系统,那么根本不需要人。

但即使图表中的所有参与者都是人类:未指定图表中的 multiplicity of actors。这造成了歧义。大多数人认为它意味着 1,即 1..1,即强制演员。正如 Axel 在评论中解释的那样,这将是对 UML 规范的正确解释(它不是白底黑字,但一些推论允许扣除它)。然而,许多人也习惯于表示用例与可能涉及的所有主要参与者的关联,而没有明确提及 0..1 可选的多重性(可能是因为它是新引入的 UML 2.5)。因此,在实践中,如果两个演员都必须是强制性的,在实践中仍然存在歧义。

最后,正如您已经正确分析和布鲁诺确认的那样,即使需要两个演员,也可能是同一个人。