我是UML新手,
我最近负责一个Web应用程序,该应用程序通过状态流管理项目。应用程序中有多个用户,每个用户都可以在某种状态下干预流程。
因此,我希望通过状态图表示这些信息,并且未来的开发人员不必再问同一个问题。
我的问题是:我如何代表状态图中的不同参与者以及他们对每个参与者的干预?
感谢。
这是我的示例图以及actor如何从stateX传递到stateY
答案 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相关联。 状态呈现为带圆角的矩形(在状态机图和序列图中)。