Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml 如何使用参与者绘制状态图_Uml - Fatal编程技术网

Uml 如何使用参与者绘制状态图

Uml 如何使用参与者绘制状态图,uml,Uml,我是UML新手 我最近负责一个web应用程序,该应用程序通过状态流管理项目。应用程序中有多个用户,每个用户都可以在特定状态下干预流 因此,我希望通过一个状态图来表示这些信息,这样将来的开发人员就不必再问同样的问题了 我的问题是:我如何在状态图中表示不同的参与者,以及他们对每个参与者的干预 我是否需要为每个参与者创建不同的状态图 是否有一个你不知道的图表来做这件事 谢谢 这是我的示例图,以及参与者如何从stateX传递到stateY 您试图过度简化您的模型 每个参与者都有他们可以运行的特定系统

我是UML新手

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

因此,我希望通过一个状态图来表示这些信息,这样将来的开发人员就不必再问同样的问题了

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

  • 我是否需要为每个参与者创建不同的状态图
  • 是否有一个你不知道的图表来做这件事
谢谢

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


您试图过度简化您的模型

每个参与者都有他们可以运行的特定系统功能。这些单一功能称为用例(UC),您可以在用例图上展示它们。此图显示了哪个参与者可以执行什么用例,但它没有显示与状态的关系。虽然每个用例都可以有先决条件,定义在执行UC之前必须为真的条件,以及后决条件,声明如果UC成功结束将为真的条件(在您的情况下,这两个条件都可能类似于“系统处于状态A”),但UC图不支持显示前决条件和后决条件。您始终可以将它们添加到UC附加的注释中

要清楚地了解系统状态机,可以使用两个图。一个是UC图,另一个是状态机图或更具体的协议状态机。然后在状态机上描述哪个UC导致了什么系统状态变化,而UC图提供了哪个参与者有资格运行特定UC的信息

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

免责声明 我的回答的下一部分是基于观点的 /免责声明

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


论符号 图的旁注-椭圆仅用于UC图,表示用例。他们彼此之间没有联系,只是与演员联系在一起。
状态显示为带圆角的矩形(在状态机图和序列图中)。

为什么要记录参与者的状态?喝咖啡,饿了,累了。这应该可以做到,因为我很容易知道某个特定的参与者何时可以从stateX转到stateY。应用程序中有+20个不同的角色和20多个不同的项目状态。很难记住这一点,你没有理解我的意思。演员的状态并不真正相关。这是系统的状态。哦,对不起。也许我表达错了。(我糟糕的英语…)我不需要演员状态图,这个图是系统状态图。好的,但是演员的角色是什么?您应该在这里给出一个具体的例子。UMl标准允许任何图表的组合。UC图和SM图的组合使用是允许的。因此,您的意见完全取决于UML创建者的意见。:-)