gpt4 book ai didi

具有嵌套状态的 UML 状态机并执行 Activity

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

在下面的状态机上,让我们假设我在“StateE”中。然后是 Sig1,因此发生转换。首先我退出“StateE”,然后假设“Grd1”守卫让我通过。

现在我输入“StateH”,执行入口 Action (“Act2”)。然后我将一个信号放入队列以执行“StateH”的“do” Action 。这意味着“StateH”“do” Action 在输入 Action 之后不需要立即执行,但可以首先提供一些其他已经调度的信号。

然后我继续“StateG”。再次在“StateG”中,进入 Action 被执行(“Act2”)并且“do” Action 被调度为信号。

信号调度器到达信号队列中 StateH 执行 Action 信号所在的点。

问题是:我们是在执行StateH的do Action 之前从StateG退出回到StateH还是我们可以说:在StateG也就是在StateH,所以不需要状态转换,让我们马上执行StateH的do Action 。

enter image description here

最佳答案

根据UML Specification (正式 15-03-01,第 14.2.3.4.3 节)

A State may also have an associated doActivity Behavior. This Behavior commences execution when the State is entered (but only after the State entry Behavior has completed) and executes concurrently with any other Behaviors that may be associated with the State, until: • it completes (in which case a completion event is generated) or • the State is exited, in which case execution of the doActivity Behavior is aborted.



这意味着 1) doActivity 在进入状态后立即执行(与您的理解相反)和 2) 在状态处于事件状态时 doActivity 继续运行。

在您的情况下, StateH处于事件状态 StateG是事件的(见事件状态配置的定义),因此, StateH的doActivity当您在时继续运行 StateG

关于具有嵌套状态的 UML 状态机并执行 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779571/

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