我如何拒绝谁在我的用例中执行操作?

How Do I Repesent Who Is Doing The Action In My Use Case?

我正在尝试创建我的用例的 UML 图。

我要代表以下内容:

我希望它以线性过程显示,而不是自行循环,这样可以清楚地了解步骤是什么以及执行它们的顺序。

我想做的一个人为的例子是:

@startuml
left to right direction

title: Bank Account
Client --> (NEW) : Request an Account
(NEW) --> Bank
Bank --> (OPENED) : Create an account number
(OPENED) --> Client1
Client1 --> (DEPOSIT) : Deposit some cash

@enduml

看起来像这样:

但是,如您所见,为了实现这一点,我将 ClientClient1 作为两个单独命名的角色,否则图表将不是线性的。它看起来像这样:

看起来你可以在不开户的情况下存入一些现金。

所以我之所以希望它是线性的,是为了表明要存入一些现金,您必须先开设一个账户。

我该怎么做?

我可以将 Client1 重命名为 Client 还是我应该使用不同类型的图表?或者别的什么?

我不熟悉 Plant UML,但我可以说的是您想要生成的模型不是用例模型。用例是一种抽象,它封装了步骤(即隐藏它们)以专注于业务价值。尽管在第二张图中使用箭头和标签来暗示条件性,但这比第一个更接近正确的用例模型。

我认为你想要的实际上是一个流程图,例如可以使用 BPMN, or possibly an Activity Diagram 生成的。

用例图无意显示操作顺序,也不显示应用于操作的约束。它仅显示系统向其用户提供的操作(或功能)。其他图表或文字描述用于指示可以或不能执行操作的顺序以及可能的约束(例如先决条件 - 在用户可以开始特定用例之前必须满足的条件)

当然你应该使用第二张图,先不要在意操作的顺序。

您会看到箭头的处理方式并不统一,有些人说根本不应该使用它们,因为 UML 规范中没有提到它们。其他人说,因为它是一个关联,所以允许使用箭头,在这种情况下,它们显示哪一方发起交互(因此主要参与者 - 触发用例的那个 - 将有指向用例的箭头,而所有其他(次要)参与者涉及用例的箭头将指向它们)。

Which looks like you could potentially deposit some cash without opening an account.

除了其他两个回复说的,你还犯了两个错误

  • 第一个问题是你使用的演员,对我来说你不能成为客户而你没有账户。演员一定要起好名字,别忘了一个演员代表一个角色

  • 第二个是您假设在用例图中只能看到一个。这是错误的,用例不仅仅是一个名称,例如用例可以有前提条件,用例的前提条件'deposit'是你有一个账户。