如何用actor绘制状态图

时间:2017-07-18 20:19:25

标签: uml

我是UML新手,

我最近负责一个Web应用程序,该应用程序通过状态流管理项目。应用程序中有多个用户,每个用户都可以在某种状态下干预流程。

因此,我希望通过状态图表示这些信息,并且未来的开发人员不必再问同一个问题。

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

  • 我是否需要为每个演员创建不同的状态图?
  • 是否有一个你不知道的图表?

感谢。

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

enter image description here

1 个答案:

答案 0 :(得分:2)

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

每个actor都有一些可以运行的系统功能。这些单一功能称为用例(UC),您可以在用例图上显示它们。此图显示哪个Actor可以执行什么用例,但它不显示与状态的关系。虽然每个用例都可以有前置条件来定义在执行UC之前必须存在的内容,并且后置条件声明如果UC成功结束将会是真实的(在您的情况下,两者都可能类似于"系统处于状态A"),UC图不支持显示前后条件。您可以随时将它们添加到UC附带的注释中。

要清楚地查看系统状态机,可以使用两个图表。一个是UC图,另一个是State Machine Diagram或更具体的Protocol State Machine。然后在状态机上,您可以描述哪个UC导致系统状态发生变化,而UC图提供了哪些Actor有资格运行特定UC的信息。

最后,如果要模拟系统中特定的交互流如何影响系统状态的变化,则可以使用序列图。您可以在此处的单个图表上显示状态和角色,但它不是设计的,不能也不应该用于描绘单个图表上的所有可能性。

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

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

在符号

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