溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

行為狀態(tài)機(jī)中的偽狀態(tài)和偽狀態(tài)種類是什么

發(fā)布時(shí)間:2022-01-13 15:54:39 來源:億速云 閱讀:197 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹了行為狀態(tài)機(jī)中的偽狀態(tài)和偽狀態(tài)種類是什么的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇行為狀態(tài)機(jī)中的偽狀態(tài)和偽狀態(tài)種類是什么文章都會(huì)有所收獲,下面我們一起來看看吧。

連接點(diǎn)引用

就像前面提到的那樣,連接點(diǎn)引用表現(xiàn)的是子狀態(tài)機(jī)狀態(tài)對(duì)于定義在狀態(tài)機(jī)中的進(jìn)入/退出點(diǎn)的引用。子狀態(tài)機(jī)狀態(tài)的連接點(diǎn)引用可以用作遷移源和遷移目標(biāo)。連接點(diǎn)引用表現(xiàn)的是被子狀態(tài)機(jī)狀態(tài)引用的進(jìn)入子狀態(tài)機(jī)的入口和離開子狀態(tài)機(jī)的出口。

連接點(diǎn)引用是遷移源或遷移目標(biāo)意味著離開子狀態(tài)機(jī)的出口的和進(jìn)入子狀態(tài)機(jī)的入口被子狀態(tài)機(jī)狀態(tài)引用。

進(jìn)入點(diǎn)連接點(diǎn)引用作為遷移的目標(biāo)意味著遷移目標(biāo)是定義在子狀態(tài)機(jī)狀態(tài)中的狀態(tài)機(jī)的進(jìn)入點(diǎn)偽狀態(tài)。作為結(jié)果,子狀態(tài)機(jī)的區(qū)域通過對(duì)應(yīng)的進(jìn)入點(diǎn)偽狀態(tài)被進(jìn)入。

退出點(diǎn)連接點(diǎn)引用作為遷移的源意味著遷移的源是定義在子狀態(tài)機(jī)狀態(tài)中里的狀態(tài)機(jī)中的退出點(diǎn)偽狀態(tài)。當(dāng)子狀態(tài)機(jī)到達(dá)了對(duì)應(yīng)的退出點(diǎn),子狀態(tài)機(jī)狀態(tài)也從退出點(diǎn)退出。

完了狀態(tài)

完了狀態(tài)是一種特殊的狀態(tài),表明包含它的區(qū)域已經(jīng)結(jié)束。就是說,遷移到完了狀態(tài)表示包含完了狀態(tài)的區(qū)域的行為已經(jīng)結(jié)束。

偽狀態(tài)和偽狀態(tài)種類

偽狀態(tài)是一種抽象,它包括了狀態(tài)機(jī)圖中各種瞬間通過的頂點(diǎn)。偽頂點(diǎn)通常被用于將多個(gè)遷移連接成更加復(fù)雜的復(fù)合遷移(參考下面的說明)。例如,利用將一個(gè)進(jìn)入分叉?zhèn)螤顟B(tài)的遷移和一組離開該分叉?zhèn)螤顟B(tài)的遷移組合起來,可以得到用來進(jìn)入正交區(qū)域的復(fù)合遷移。

偽狀態(tài)的具體語義依賴于偽狀態(tài)的種類,這是通過狀態(tài)的類型為PsudostateKind的種類屬性來定義的。

初始-初始偽狀態(tài)表現(xiàn)了區(qū)域的開始點(diǎn);也就是說,當(dāng)以默認(rèn)激活的方式進(jìn)入?yún)^(qū)域時(shí),它是區(qū)域中包含的活動(dòng)開始執(zhí)行的位置。它最多是一個(gè)遷移的源,這個(gè)遷移可以有效果行為,但不能有關(guān)聯(lián)的觸發(fā)條件或監(jiān)護(hù)條件。一個(gè)區(qū)域中最多只能有一個(gè)初始頂點(diǎn)。

深歷史-這種偽狀態(tài)是一種變量,保存的是包含它的區(qū)域在最近被激活時(shí)的狀態(tài)構(gòu)成。如前面所講,遷移進(jìn)入這個(gè)偽狀態(tài)就意味著將區(qū)域恢復(fù)到與最近離開時(shí)相同的狀態(tài)構(gòu)成,伴隨著所有進(jìn)入狀態(tài)的語義(參見狀態(tài)進(jìn)入的小節(jié))。被恢復(fù)狀態(tài)的所有進(jìn)入行為被從最外層狀態(tài)開始按照恰當(dāng)?shù)捻樞驁?zhí)行。深歷史偽狀態(tài)只能在組合狀態(tài)中被定義,而且組合狀態(tài)的一個(gè)區(qū)域中最多只能定義一個(gè)。

淺歷史-如前面所講,這類偽狀態(tài)是一個(gè)變量,保存了包含它的區(qū)域的最近的活動(dòng)子狀態(tài)。但不包含這個(gè)子狀態(tài)的(下級(jí))子狀態(tài)。遷移到這個(gè)偽狀態(tài)意味著將區(qū)域恢復(fù)到該子狀態(tài),同時(shí)伴隨著進(jìn)入狀態(tài)的語義??梢杂幸粭l離開該偽狀態(tài)指向組合狀態(tài)里的某個(gè)子狀態(tài)的遷移。這個(gè)子狀態(tài)是組合狀態(tài)的默認(rèn)淺歷史狀態(tài)。淺歷史偽狀態(tài)只能在組合狀態(tài)中被定義,而且組合狀態(tài)的一個(gè)區(qū)域中最多只能定義一個(gè)。

匯合-這種類型的偽狀態(tài)為兩個(gè)或多個(gè)來自不同頂點(diǎn)的遷移提供目標(biāo)頂點(diǎn),而這些源頂點(diǎn)處于不同的正交區(qū)域中。終止于匯合偽狀態(tài)的遷移不允許有監(jiān)護(hù)條件和觸發(fā)條件。類似于Petri網(wǎng)絡(luò)中的接合點(diǎn),匯合偽節(jié)點(diǎn)實(shí)現(xiàn)同步功能,只有在所有的進(jìn)入遷移都完成以后,才能繼續(xù)進(jìn)行離開遷移。

分叉-分叉?zhèn)螤顟B(tài)將一個(gè)進(jìn)入遷移分成兩個(gè)或多個(gè)遷移,它們終止于組合狀態(tài)的(不同的)正交區(qū)域。離開分叉?zhèn)螤顟B(tài)的遷移不可以有監(jiān)護(hù)條件和觸發(fā)條件。

連接點(diǎn)-這種類型的偽狀態(tài)用于將狀態(tài)之間的多個(gè)遷移連接成復(fù)合路徑。例如,合并偽狀態(tài)可以用來將多個(gè)進(jìn)入遷移合并成一個(gè)離開遷移,通過這種方式表現(xiàn)后續(xù)路徑分享。也可以用于將一個(gè)進(jìn)入遷移分成多個(gè)離開遷移,這些離開遷移通過不同的監(jiān)護(hù)約束選擇。

注意:這樣的監(jiān)護(hù)約束的演算是在包含這個(gè)偽狀態(tài)的復(fù)合遷移執(zhí)行之前進(jìn)行的,這就是為什么它被稱為靜態(tài)條件路徑。

可能發(fā)生這樣的事情,對(duì)于一個(gè)具體的復(fù)合遷移,遷移路徑和監(jiān)護(hù)條件的構(gòu)成導(dǎo)致無法到達(dá)某個(gè)有效的狀態(tài)構(gòu)成。在這種情況下,即使觸發(fā)條件的是有效的,整個(gè)復(fù)合遷移也是無效的。(作為避免某種情況下出現(xiàn)這種局面的方法,可以為最多一個(gè)離開遷移關(guān)聯(lián)事先定義的表示為“else”的監(jiān)護(hù)條件,這個(gè)遷移在所有其他遷移的監(jiān)護(hù)條件的結(jié)果為假時(shí)有效)。如果多于一個(gè)監(jiān)護(hù)條件的結(jié)果為真,其中一個(gè)會(huì)被選中,但做出這種選擇的算法無定義。

選擇-這種類型的偽狀態(tài)和連接點(diǎn)偽狀態(tài)(參見前面)相似,而且具有類似的用途。有一點(diǎn)不同就是離開遷移上的監(jiān)護(hù)約束是當(dāng)復(fù)合遷移到達(dá)這個(gè)偽狀態(tài)時(shí)動(dòng)態(tài)演算的。因此,選擇用于識(shí)別動(dòng)態(tài)條件分支。它允許將復(fù)合遷移分成多個(gè)可選的分支,判斷采用那條路徑時(shí)可以根據(jù)處于同一個(gè)復(fù)合遷移中的行為在遷移到達(dá)該選擇點(diǎn)之前的執(zhí)行結(jié)果。如果多于一個(gè)監(jiān)護(hù)條件的演算結(jié)果為真,其中的一個(gè)遷移會(huì)被選中,但是進(jìn)行這個(gè)選擇的算法無定義。如果沒有監(jiān)護(hù)條件的演算結(jié)果為真,那么這個(gè)模型被認(rèn)為是病態(tài)。為了避免這種情況,推薦為所有的選擇偽狀態(tài)設(shè)置一個(gè)預(yù)先定義的“else”離開遷移。

進(jìn)入點(diǎn)-進(jìn)入點(diǎn)偽狀態(tài)表示的是狀態(tài)機(jī)或者封裝了內(nèi)部狀態(tài)/狀態(tài)機(jī)的組合狀態(tài)的入口點(diǎn)。在包含入口點(diǎn)的狀態(tài)機(jī)或者組合狀態(tài)的每個(gè)區(qū)域中,最多可以有一個(gè)從入口點(diǎn)到區(qū)域內(nèi)頂點(diǎn)的遷移。

注意:如果擁有入口點(diǎn)的狀態(tài)關(guān)聯(lián)了入口行為,這個(gè)行為在離開遷移的任何關(guān)聯(lián)行為之前執(zhí)行。如果多個(gè)區(qū)域被調(diào)用,入口點(diǎn)的行為和分叉?zhèn)螤顟B(tài)一樣。

退出點(diǎn)-退出點(diǎn)偽狀態(tài)表示的是狀態(tài)機(jī)或者封裝了內(nèi)部狀態(tài)/狀態(tài)機(jī)的組合狀態(tài)的退出點(diǎn)。遷移到組合狀態(tài)或者是被子狀態(tài)機(jī)狀態(tài)引用的狀態(tài)機(jī)中的區(qū)域中的退出點(diǎn)意味著組合狀態(tài)或者是子狀態(tài)機(jī)狀態(tài)的退出(伴隨著關(guān)聯(lián)退出行為的執(zhí)行)。如果存在多個(gè)從狀態(tài)機(jī)中的正交區(qū)域到這個(gè)偽狀態(tài)的遷移,那么它的行為像匯合點(diǎn)偽狀態(tài)一樣。

終止-進(jìn)入終止偽狀態(tài)意味著狀態(tài)機(jī)的執(zhí)行立即終止。狀態(tài)機(jī)不會(huì)退出任何狀態(tài),也不會(huì)執(zhí)行任何退出行為。任何執(zhí)行中的doActivity行為被自動(dòng)地中止。進(jìn)入終止偽狀態(tài)等同于調(diào)用刪除對(duì)象動(dòng)作。

關(guān)于“行為狀態(tài)機(jī)中的偽狀態(tài)和偽狀態(tài)種類是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“行為狀態(tài)機(jī)中的偽狀態(tài)和偽狀態(tài)種類是什么”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI