如何用演员画状态图

How draw a state diagram with actors

我是 UML 新手,

我最近负责一个网络应用,这个应用通过状态流来管理项目。应用内有多个用户,每个用户都可以在某个状态下干预流程。

因此,我想通过状态图来表示这些信息,以便以后的开发人员不必再问同样的问题。

我的问题是:如何在状态图中表示不同的参与者以及他们对每个参与者的干预?

谢谢。

这是我的示例图以及参与者如何从 stateX 传递到 stateY

您试图过度简化您的模型。

每个参与者都有他们可以运行 的某些系统功能。这些单一功能称为用例 (UC),您可以在用例图中展示它们。该图显示了哪个 Actor 可以执行什么用例,但它没有显示与状态的关系。虽然每个用例都可以有先决条件来定义在执行 UC 之前什么必须为真,并且 post-条件声明如果 UC 成功结束什么将是真的(在你的情况下可能都是这样的"System is in State A"), UC 图不支持显示前置条件和 post 条件。您可以随时将它们添加到 UC 的附注中。

要清楚地了解系统状态机,您可以使用两个图表。一个是 UC 图,另一个是状态机图或更具体的协议状态机。然后在状态机上描述哪个 UC 导致哪个系统状态发生变化,而 UC 图提供了哪个 Actor 有资格获得特定 UC 的信息。

最后,如果您想对系统中的特定交互流如何影响系统状态的变化进行建模,您可以使用序列图。您可以在这里在一张图上展示状态和参与者,但它不是设计的,不能也不应该用来在一张图上描述所有的可能性。

免责声明 我的答案的下一部分是基于意见的 /免责声明

根据您提供的信息,我很可能会同时使用 UC 图和 SM 图。


关于符号

图表的旁注 - 椭圆仅用于 UC 图表并表示用例。它们彼此不关联,仅与 Actors 关联。 状态显示为带圆角的矩形(在状态机图和序列图中)。