温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

行为状态机中的伪状态和伪状态种类是什么

发布时间:2022-01-13 15:54:39 来源:亿速云 阅读:179 作者:iii 栏目:大数据

这篇文章主要介绍了行为状态机中的伪状态和伪状态种类是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇行为状态机中的伪状态和伪状态种类是什么文章都会有所收获,下面我们一起来看看吧。

连接点引用

就像前面提到的那样,连接点引用表现的是子状态机状态对于定义在状态机中的进入/退出点的引用。子状态机状态的连接点引用可以用作迁移源和迁移目标。连接点引用表现的是被子状态机状态引用的进入子状态机的入口和离开子状态机的出口。

连接点引用是迁移源或迁移目标意味着离开子状态机的出口的和进入子状态机的入口被子状态机状态引用。

进入点连接点引用作为迁移的目标意味着迁移目标是定义在子状态机状态中的状态机的进入点伪状态。作为结果,子状态机的区域通过对应的进入点伪状态被进入。

退出点连接点引用作为迁移的源意味着迁移的源是定义在子状态机状态中里的状态机中的退出点伪状态。当子状态机到达了对应的退出点,子状态机状态也从退出点退出。

完了状态

完了状态是一种特殊的状态,表明包含它的区域已经结束。就是说,迁移到完了状态表示包含完了状态的区域的行为已经结束。

伪状态和伪状态种类

伪状态是一种抽象,它包括了状态机图中各种瞬间通过的顶点。伪顶点通常被用于将多个迁移连接成更加复杂的复合迁移(参考下面的说明)。例如,利用将一个进入分叉伪状态的迁移和一组离开该分叉伪状态的迁移组合起来,可以得到用来进入正交区域的复合迁移。

伪状态的具体语义依赖于伪状态的种类,这是通过状态的类型为PsudostateKind的种类属性来定义的。

初始-初始伪状态表现了区域的开始点;也就是说,当以默认激活的方式进入区域时,它是区域中包含的活动开始执行的位置。它最多是一个迁移的源,这个迁移可以有效果行为,但不能有关联的触发条件或监护条件。一个区域中最多只能有一个初始顶点。

深历史-这种伪状态是一种变量,保存的是包含它的区域在最近被激活时的状态构成。如前面所讲,迁移进入这个伪状态就意味着将区域恢复到与最近离开时相同的状态构成,伴随着所有进入状态的语义(参见状态进入的小节)。被恢复状态的所有进入行为被从最外层状态开始按照恰当的顺序执行。深历史伪状态只能在组合状态中被定义,而且组合状态的一个区域中最多只能定义一个。

浅历史-如前面所讲,这类伪状态是一个变量,保存了包含它的区域的最近的活动子状态。但不包含这个子状态的(下级)子状态。迁移到这个伪状态意味着将区域恢复到该子状态,同时伴随着进入状态的语义。可以有一条离开该伪状态指向组合状态里的某个子状态的迁移。这个子状态是组合状态的默认浅历史状态。浅历史伪状态只能在组合状态中被定义,而且组合状态的一个区域中最多只能定义一个。

汇合-这种类型的伪状态为两个或多个来自不同顶点的迁移提供目标顶点,而这些源顶点处于不同的正交区域中。终止于汇合伪状态的迁移不允许有监护条件和触发条件。类似于Petri网络中的接合点,汇合伪节点实现同步功能,只有在所有的进入迁移都完成以后,才能继续进行离开迁移。

分叉-分叉伪状态将一个进入迁移分成两个或多个迁移,它们终止于组合状态的(不同的)正交区域。离开分叉伪状态的迁移不可以有监护条件和触发条件。

连接点-这种类型的伪状态用于将状态之间的多个迁移连接成复合路径。例如,合并伪状态可以用来将多个进入迁移合并成一个离开迁移,通过这种方式表现后续路径分享。也可以用于将一个进入迁移分成多个离开迁移,这些离开迁移通过不同的监护约束选择。

注意:这样的监护约束的演算是在包含这个伪状态的复合迁移执行之前进行的,这就是为什么它被称为静态条件路径。

可能发生这样的事情,对于一个具体的复合迁移,迁移路径和监护条件的构成导致无法到达某个有效的状态构成。在这种情况下,即使触发条件的是有效的,整个复合迁移也是无效的。(作为避免某种情况下出现这种局面的方法,可以为最多一个离开迁移关联事先定义的表示为“else”的监护条件,这个迁移在所有其他迁移的监护条件的结果为假时有效)。如果多于一个监护条件的结果为真,其中一个会被选中,但做出这种选择的算法无定义。

选择-这种类型的伪状态和连接点伪状态(参见前面)相似,而且具有类似的用途。有一点不同就是离开迁移上的监护约束是当复合迁移到达这个伪状态时动态演算的。因此,选择用于识别动态条件分支。它允许将复合迁移分成多个可选的分支,判断采用那条路径时可以根据处于同一个复合迁移中的行为在迁移到达该选择点之前的执行结果。如果多于一个监护条件的演算结果为真,其中的一个迁移会被选中,但是进行这个选择的算法无定义。如果没有监护条件的演算结果为真,那么这个模型被认为是病态。为了避免这种情况,推荐为所有的选择伪状态设置一个预先定义的“else”离开迁移。

进入点-进入点伪状态表示的是状态机或者封装了内部状态/状态机的组合状态的入口点。在包含入口点的状态机或者组合状态的每个区域中,最多可以有一个从入口点到区域内顶点的迁移。

注意:如果拥有入口点的状态关联了入口行为,这个行为在离开迁移的任何关联行为之前执行。如果多个区域被调用,入口点的行为和分叉伪状态一样。

退出点-退出点伪状态表示的是状态机或者封装了内部状态/状态机的组合状态的退出点。迁移到组合状态或者是被子状态机状态引用的状态机中的区域中的退出点意味着组合状态或者是子状态机状态的退出(伴随着关联退出行为的执行)。如果存在多个从状态机中的正交区域到这个伪状态的迁移,那么它的行为像汇合点伪状态一样。

终止-进入终止伪状态意味着状态机的执行立即终止。状态机不会退出任何状态,也不会执行任何退出行为。任何执行中的doActivity行为被自动地中止。进入终止伪状态等同于调用删除对象动作。

关于“行为状态机中的伪状态和伪状态种类是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“行为状态机中的伪状态和伪状态种类是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI