UML Multi-Instance 状态机可视化
UML Multi-Instance State Machine Visualisation
我想知道你是否可以帮助我澄清关于 multi-instance 状态机的两个方面。
第一题
考虑一个示例状态机 SM1 包含一个状态 A:
在左侧,transition start 创建状态机的新实例。转换 stop 终止实例。
可以有多个状态机实例 SM1 运行 并行,例如5 个实例。
现在,我想要的是一个转换,它将终止在给定时间处于 运行 的所有状态机 SM1 实例。
例如。我们创建五个状态机 A 然后转换 stopALL 将立即终止所有状态机。
UML 规范允许这种行为吗?如果是,是否有图形符号来明确表示这种行为?我在 UML 规范文档中找不到答案。
第二题
考虑一个 multi-instance 状态机 SM2 with state A and one transition startStop:
转换的行为如下:触发时,转换创建 SM2 的新实例并终止现有实例。
规范允许这种行为吗?是否有明确的图形方式来表达这种行为?
没有专门的UML方法,但是标准的UML工具绝对够用。您需要广播终止信号(在状态机图上,您可以通过应该终止其他实例的转换行为来表示它)。然后你只需要在终止接收时建模状态机进入最终状态。
终止所有示例
请注意,斜线 (/) 之后的行为是在状态转换时调用的行为,即当状态机将其状态更改为最终状态时,将调用行为 sendStopAllSignal,这又应该在 class 图上进行描述(可能对应activity 图)
同样,您需要在 class 图表中包含一个 receiveStopAllSignal 行为。
在开始时终止现有的
这是类似的情况 - 您需要在其他地方建模 sendStopSignal 和 receiveStopSignal。
但是请注意,这样的命名约定(sendAbcSignal 代表 sending/broadcasting 信号 Abc 的行为,receiveAbcSignal 代表对 Abc 信号接收的反应行为)非常常见、有用且不言自明(即你可能不会'除非那里需要一些额外的逻辑,否则不要为这些行为建模单独的动作图。
我想知道你是否可以帮助我澄清关于 multi-instance 状态机的两个方面。
第一题
考虑一个示例状态机 SM1 包含一个状态 A:
在左侧,transition start 创建状态机的新实例。转换 stop 终止实例。 可以有多个状态机实例 SM1 运行 并行,例如5 个实例。
现在,我想要的是一个转换,它将终止在给定时间处于 运行 的所有状态机 SM1 实例。 例如。我们创建五个状态机 A 然后转换 stopALL 将立即终止所有状态机。
UML 规范允许这种行为吗?如果是,是否有图形符号来明确表示这种行为?我在 UML 规范文档中找不到答案。
第二题
考虑一个 multi-instance 状态机 SM2 with state A and one transition startStop:
转换的行为如下:触发时,转换创建 SM2 的新实例并终止现有实例。
规范允许这种行为吗?是否有明确的图形方式来表达这种行为?
没有专门的UML方法,但是标准的UML工具绝对够用。您需要广播终止信号(在状态机图上,您可以通过应该终止其他实例的转换行为来表示它)。然后你只需要在终止接收时建模状态机进入最终状态。
终止所有示例
在开始时终止现有的
但是请注意,这样的命名约定(sendAbcSignal 代表 sending/broadcasting 信号 Abc 的行为,receiveAbcSignal 代表对 Abc 信号接收的反应行为)非常常见、有用且不言自明(即你可能不会'除非那里需要一些额外的逻辑,否则不要为这些行为建模单独的动作图。