gpt4 book ai didi

UML 状态机 : Understanding regions, fork 并加入伪状态

转载 作者:行者123 更新时间:2023-12-04 23:33:59 24 4
gpt4 key购买 nike

我正在尝试正确理解区域以及 fork 和加入 UML 状态机中的伪状态。我找到的所有示例都非常简单,我不太确定什么是合法的,什么是非法的。

UML 上层结构规范(15.3.14 转换) 状态

The tail of a compound transition may have multiple transitions originating from a set of mutually orthogonal regions that are joined by a join point.

这是否意味着连接只能放在复合转换的末尾?

这是否意味着 join 之后只能跟一个状态而不是伪状态?

它还指出:

The head of a compound transition may have multiple transitions originating from a fork pseudostate targeted to a set of mutually orthogonal regions.

这是否意味着 fork 只能放在复合转换的开始处(即直接跟在状态之后而不是伪状态之后)?

15.3.8 章“伪状态” 无法帮助我回答这些问题。约束部分和语义部分都没有让我更清楚。

join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers."

如果传入的转换没有触发器:转换如何触发?

例子:复合状态S1:区域一S11激活,区域二S12激活。 S11 和 S12 具有导致连接的转换。如何实现连接?

编辑:我很快就停止阅读了。这个问题的答案是“通过完成事件”。这些转换是“完成转换”。

还有:当提到“相互正交区域”时:这些区域是否必须是相同复合状态的子区域?更一般的:只有当它们被放置在同一复合状态的不同区域时,状态才能同时处于事件状态,或者可以 - 在 fork 之后 - 多个状态处于事件状态位于完全不同复合状态?

最佳答案

Fork and Join 源于 Petri 网。沿着那个网络,你有一个虚拟 token ,它沿着转换从一个节点传播到另一个节点。 fork 会将传入 token 乘以尽可能多的传出转换。只有当所有这些 token 都到达下一个连接时,机器才会继续使用单个 token (除非这再次通过多个转换进行 fork - 但在 fork 线内将有一个单一 token )。您可以将表示 fork/join 的行想象成一个(一维)框,它暂时包含一个标记。当所有传入的转换都持有一个标记时,这个单个标记就存在了。然后将此 token 乘以所有传出转换。发射新 token 不需要时间。当从传入 token 创建内部 token 时,它会立即发生。

不幸的是,这个概念并不广为人知,许多建模者以错误的方式使用它。但我想如果您了解移动(相乘) token 的概念,您就会明白这一点。

关于UML 状态机 : Understanding regions, fork 并加入伪状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28617316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com