gpt4 book ai didi

UML 状态机 : Local Transitions

转载 作者:行者123 更新时间:2023-12-02 19:52:44 28 4
gpt4 key购买 nike

根据 OMG 文档 UML 状态机的精确语义 章节 9.3.3.6 Transition 011-C 中显示的状态机,可以定义一个本地状态机从子状态转换到包含状态。

enter image description here

但是本地转换 T1.3 执行时会做什么?我假设离开状态 S1.2,然后应用状态 S1 的默认条目,因此执行转换 T1.1,最后进入状态 S1.1。

但是,该章的运行到完成步骤表显示,执行转换 1.3 后,生成完成事件 CE,因此转换 T3 离开状态 S1:

enter image description here

这让我感到困惑,正如UML规范2.5.114.2.3.8.3完成转换和完成事件一章中指出的,复合状态的完成事件就像 S1 一样,只有当它的所有正交区域都达到最终状态时才会生成。上面显示的状态机肯定不是这种情况。

现在,哪种行为是正确的?可能是运行到完成步骤表错误?

最佳答案

所示的子状态机使用所谓的本地转换(请参阅@Roman 评论中的链接)。 UML 2.5.1 描述了 p 上的局部转换。 314

kind = local is the opposite of external, meaning that the Transition does not exit its containing State (and, hence, the exit Behavior of the containing State will not be executed). However, for local Transitions the target Vertex must be different from its source Vertex. A local Transition can only exist within a composite State.

局部转换的示例可以在 UML 2.5.1 规范的第 334 页上找到。

因此子状态机永远不会退出,因此表格和图表不匹配。可能作者犯了一个错误,意思就是我在下面原始答案中所说的内容。

原始答案:我从未见过上面的符号,但假设它应该描绘一个子状态退出(因此 T3 将是符合该表的下一个转换)。

我想符号应该使用像这样的Final

enter image description here

如图所示第 14.38 页UML 2.5.1 规范的 339 条。

关于UML 状态机 : Local Transitions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50018074/

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