UML 用例:等待另一个用例完成

UML Use case: Waiting for another use case to finish

我正在尝试对一个用例进行建模,基本上就是在智力竞赛节目中进行一轮比赛的方式。用例中的参与者是测验大师;他向参与者提问。

在这个用例中发生了很多事情,但我的问题归结为测验大师必须等待玩家按下他的按钮并回答他提出的问题以便进行判断(对还是错)。

演员 "Candidate" 遵循一个单独的用例来回答测验大师提出的问题。

如何模拟测验大师必须等待另一个演员完成用例才能继续他自己的用例这一事实?或者将它们全部分成更小的用例更好。虽然我的老师反对,所以我在这里寻找第二个意见。

先说这个..UML没有正确答案。如果你能用你的 uml 图正确地解释你的想法,那就是答案。 我认为这可以通过 <<include>> 关系来解决。 CaseA ---<<include>>-->CaseB表示满足CaseB就可以执行CaseA。

例如,

"withdraw money from the account" ----<<包括>>----> "authenticate the user"

我猜它也可以用来描述每个用例的顺序。 :)

UseCase 声明建模系统的有用功能。没有任何方法可以像您在示例中描述的那样定义执行方面。 如果您需要定义一些事件处理或动作,请使用一些行为元素(Activity、StateMachine 或 Interaction)。

您可以按照 user3934037 的建议进行包含,或者您可以将其作为单独的用例并使用 pre/postconditions 在那种情况下你会有用例

  • 提问

    ->前提条件:考生准备就绪

    -> 后置条件:提问

  • 回答问题

    -> 前提条件:提问

    -> 后置条件:问题已回复

  • 评委回应

    -> 前提条件:问题已回答

    -> 后置条件:响应判断

不是将一个序列中的用例链接在一起,而是让它们彼此独立。用例 "Judge Response" 不是在等待特定用例完成,而是在等待满足先决条件,但前提条件已经满足。

一般来说,我建议将执行顺序保留在用例分析之外(并将其留在业务流程建模中)

我同意 Geert 的观点,但我更强烈地建议他的方法。用例不是为了解释任何类型的流程、时期而设计的。您可以使用先决条件和后置条件来推断执行顺序,但如果您想 crystal 清楚用例的执行顺序,请采纳 Vladimir 的建议并用 activity 图绘制出来.

UML 明确没有通过推荐 (AFAIK) 涵盖此需求。这似乎表明在您当前的用例分析中有一些 奇怪 的东西。也许使用 design scopes and goal levels 将您的用例图构建成多个细节级别将消除排序

This is how Alistair Cockburn suggests to balance the Use Case density in article "Use case goals versus design scopes"

另请参阅: