溫馨提示×

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

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

協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2022-01-13 15:57:26 來(lái)源:億速云 閱讀:115 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

概要

協(xié)議狀態(tài)機(jī)用于表現(xiàn)使用方法的協(xié)議。協(xié)議狀態(tài)機(jī)表示事件發(fā)生的合法的序列,關(guān)聯(lián)的行為類目的行為必須遵循這個(gè)序列。狀態(tài)機(jī)記法是一種定義類目的行為特征的調(diào)用次序的簡(jiǎn)便方式。

協(xié)議狀態(tài)機(jī)可以和類目,接口和端口關(guān)聯(lián)。

14.4.2 Abstract Syntax

協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些


語(yǔ)義

協(xié)議狀態(tài)機(jī)

協(xié)議狀態(tài)機(jī)總是在類目的上下文中定義。它定義了類目的在一個(gè)給定的協(xié)議狀態(tài)中,什么條件下,哪個(gè)行為特征可以被調(diào)用。這樣,從外部觀點(diǎn)定義了類目的某個(gè)實(shí)例的生命周期的規(guī)范。

協(xié)議狀態(tài)機(jī)幫助定義類目的行為特征被調(diào)用的順序,它明確了:

它們可以被正確調(diào)用時(shí)的行為上下文(即:哪個(gè)狀態(tài)和前置條件)

正確的調(diào)用次序,

期待的調(diào)用輸出(后置條件)

協(xié)議狀態(tài)機(jī)向協(xié)作者呈現(xiàn)了一個(gè)包含協(xié)議狀態(tài)機(jī)的類目的外部視圖。這種擴(kuò)展依據(jù)的是通過獨(dú)立的行為特征的前置條件和后置條件可以捕捉到什么,協(xié)議狀態(tài)機(jī)也可以定義不同特征的正確的調(diào)用次序。這是通過狀態(tài)機(jī)定義實(shí)現(xiàn)的,在這個(gè)定義中,為了保證調(diào)用的正確性,功能調(diào)用的觸發(fā)條件和遷移的定義后置條件的監(jiān)護(hù)條件必須使用以保證調(diào)用的正確性。作為過去的調(diào)用序列的結(jié)果,狀態(tài)機(jī)的狀態(tài)(協(xié)議狀態(tài))捕捉協(xié)議的狀態(tài)并且也是前置條件的一種形式。

因?yàn)閰f(xié)議狀態(tài)機(jī)提供的是類目行為的“黑盒”視圖,狀態(tài)不必和內(nèi)部行為狀態(tài)機(jī)的狀態(tài)相對(duì)應(yīng)。

協(xié)議狀態(tài)機(jī)可以有不同的形式:

陳述性協(xié)議狀態(tài)機(jī),它定義了行為特征調(diào)用的有效遷移。不定義行為特征調(diào)用的效應(yīng)。這種類型的定義只是向上下文類目的用戶提供一種約定。

可執(zhí)行(執(zhí)行時(shí))協(xié)議狀態(tài)機(jī),它定義了一個(gè)對(duì)象可以接受和處理的所有事件發(fā)生和它們觸發(fā)的遷移。在這種情況下,正當(dāng)?shù)男袨樘卣髡{(diào)用遷移必須和被觸發(fā)的遷移或運(yùn)行時(shí)例外完全匹配。方法執(zhí)行的調(diào)用結(jié)果和被調(diào)用的行為特征相關(guān)聯(lián)。

兩種解釋的定義都相同,唯一的區(qū)別就是后一種解釋提供了直接的動(dòng)態(tài)含義。

在行為狀態(tài)機(jī)中遇到的更加復(fù)雜的形式,例如復(fù)合遷移,子狀態(tài)機(jī),組合狀態(tài),并發(fā)正交區(qū)域等,也可以用于協(xié)議狀態(tài)機(jī)。例如并發(fā)區(qū)域可以用于表現(xiàn)一個(gè)實(shí)例同時(shí)擁有多個(gè)活動(dòng)狀態(tài)的情況。子狀態(tài)機(jī)和復(fù)合遷移可以用于分解復(fù)雜的協(xié)議狀態(tài)機(jī)。

一個(gè)類目可以有多個(gè)協(xié)議狀態(tài)機(jī)。例如下面的場(chǎng)景:一個(gè)類目擁有多個(gè)父母(類目),每個(gè)擁有自己的協(xié)議狀態(tài)機(jī),且協(xié)議之間為正交關(guān)系。另一種方式是只擁有一個(gè)協(xié)議狀態(tài)機(jī),但是在它的并發(fā)區(qū)域中包含不同的狀態(tài)機(jī)。

State in ProtocolStateMachines(協(xié)議狀態(tài)機(jī)中的狀態(tài))

協(xié)議狀態(tài)機(jī)的狀態(tài)被暴露給它們的上下文類目的用戶。一個(gè)協(xié)議狀態(tài)表現(xiàn)了它的上下文類目的一個(gè)外部可見的穩(wěn)定情況:當(dāng)類目的某個(gè)實(shí)例沒有處理任何的行為特征調(diào)用時(shí),那個(gè)實(shí)例的用戶總是知道它的狀態(tài)構(gòu)成。

協(xié)議狀態(tài)機(jī)的狀態(tài)不允許定義進(jìn)入,退出和doActivity行為。

協(xié)議遷移

協(xié)議遷移定義了上下文類目的行為特征在被調(diào)用時(shí)允許的遷移。協(xié)議遷移有如下特征:
· a pre-condition (preCondition), which specializes the guard attribute of Transition,

定義遷移的監(jiān)護(hù)屬性的前置條件,

· a trigger,

觸發(fā)條件,
· a post-condition (postCondition).

后置條件。

協(xié)議遷移定義了上下文類目的實(shí)例可以被調(diào)用的關(guān)聯(lián)(引用)特征,如果它位于初始狀態(tài)內(nèi),有監(jiān)護(hù)條件,被遷移完成觸發(fā),那么這個(gè)實(shí)例將會(huì)處于擁有后置條件的目標(biāo)狀態(tài)中。

協(xié)議遷移沒有關(guān)聯(lián)的效應(yīng)行為。作為行為特征調(diào)用的結(jié)果,協(xié)議遷移的意味著與被調(diào)用行為特征相關(guān)聯(lián)的方法的執(zhí)行。在其他類型觸發(fā)條件的情況下,影響是沒有定義的,除非該遷移會(huì)引出另外一個(gè)滿足特定前置條件的狀態(tài),這時(shí)不考慮與這個(gè)遷移相關(guān)聯(lián)的任何行為。

非預(yù)期觸發(fā)接受

關(guān)于沒有和當(dāng)前狀態(tài),狀態(tài)不變量或前置條件匹配的事件發(fā)生的接受的解釋沒有被定義(即,它可以被忽略,拒絕或推遲;升起異常;或作為錯(cuò)誤而終止應(yīng)用的執(zhí)行)。在語(yǔ)義上它對(duì)應(yīng)于前置條件的違反,在UML中沒有為它設(shè)定預(yù)先定義的行為。

非預(yù)期行為

作為遷移的非預(yù)期結(jié)果(錯(cuò)誤的完了狀態(tài),或完了狀態(tài)不變量,或后置條件),非預(yù)期行為的解釋也無(wú)定義。然而它應(yīng)該被解釋成協(xié)議狀態(tài)機(jī)實(shí)現(xiàn)的錯(cuò)誤。


操作的前置和后置條件的等價(jià)性

在語(yǔ)義上,協(xié)議遷移可以從操作的前置和后置條件兩個(gè)方面來(lái)解釋。例如圖14.42中的遷移可以按以下方式解釋:

1 The operation “m1” can be called on an instance when it is in the ProtocolState “S1” under the condition “C1.”

當(dāng)實(shí)例處于協(xié)議狀態(tài)"S1",滿足條件“C1”時(shí),操作m1可以被調(diào)用。

2 When “m1” is called in the ProtocolState “S1” under the condition “C1,” then the ProtocolState “S2” must be reached under the condition “C2.”

當(dāng)處于協(xié)議狀態(tài)“S1”s時(shí),“m1”被調(diào)用,那么滿足條件”C2“時(shí),必須到達(dá)協(xié)議狀態(tài)"S2“。

協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些


被多個(gè)遷移引用的操作

協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些

圖14.43表示了在協(xié)議狀態(tài)機(jī)中,多個(gè)遷移可以引用同一個(gè)操作的例子。在這個(gè)情況下,所有的前置和后置條件都被組入操作的前置(/后置)條件,表示如下

Operation m1()
Pre: in state S1 and condition C1
or
in state S3 and condition C3
Post: if the initial condition was “in state S1 and condition C1”
then in S2 and C2
else
if the initial condition was “in state S3 and condition C3”
then in S4 and C4

協(xié)議狀態(tài)機(jī)為它的遷移所引用的每個(gè)行為特征定義了所有的協(xié)議遷移。

沒有被引用的操作

如果行為特征沒有被任何的行為特征引用,那么該操作可以被協(xié)議狀態(tài)機(jī)的任何狀態(tài)調(diào)用,并且不會(huì)改變當(dāng)前狀態(tài)或前置/后置條件。

在協(xié)議狀態(tài)機(jī)中使用其他類型的事件

除了調(diào)用行為特征,可以使用另外的事件來(lái)表現(xiàn)協(xié)議狀態(tài)機(jī)的行為。不是行為特征調(diào)用的觸發(fā)條件可以用于定義協(xié)議遷移。這種定義是對(duì)于行為狀態(tài)機(jī)外部環(huán)境的需求。也就是說,只有滿足協(xié)議狀態(tài)機(jī)定義的條件時(shí),向上下文類目發(fā)送事件發(fā)生才是合乎要求的。與此有關(guān)的準(zhǔn)確的語(yǔ)義解釋沒有被定義。

協(xié)議一致

協(xié)議狀態(tài)機(jī)可以被定義為更加具體的協(xié)議狀態(tài)機(jī)。協(xié)議一致聲明了具體的協(xié)議狀態(tài)機(jī)定義了一個(gè)協(xié)議,它與泛用協(xié)議狀態(tài)機(jī)定義的協(xié)議一致。

協(xié)議狀態(tài)機(jī)屬于類目。該類目擁有一個(gè)泛用狀態(tài)機(jī),而且通常情況下,也會(huì)通過泛化和實(shí)現(xiàn)關(guān)聯(lián)一個(gè)具體的狀態(tài)機(jī)。

協(xié)議一致表示一個(gè)聲明:為泛用協(xié)議狀態(tài)機(jī)定義的所有規(guī)則,約束(狀態(tài)不變量,協(xié)議狀態(tài)機(jī)引用的操作的前置/后置條件)都會(huì)適用與具體的協(xié)議狀態(tài)機(jī)。

記法


協(xié)議狀態(tài)機(jī)

協(xié)議狀態(tài)機(jī)的記法和行為狀態(tài)機(jī)非常相似。只是通過靠近狀態(tài)機(jī)名稱的?protocol?關(guān)鍵詞從圖形上區(qū)別了協(xié)議狀態(tài)機(jī)圖。

協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些

與協(xié)議狀態(tài)機(jī)中的狀態(tài)相關(guān)聯(lián)的不變量的文字表達(dá)式的表示方法,是通過將其封裝入括號(hào)中,放到狀態(tài)名之后或之下。

協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些


協(xié)議遷移

使用通常的狀態(tài)機(jī)中的記法。區(qū)別是不會(huì)定義效應(yīng)行為和可以有后置條件。后置條件和監(jiān)護(hù)條件的語(yǔ)法相同,但是遷移語(yǔ)法的最后表示。

協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些

“協(xié)議狀態(tài)機(jī)的知識(shí)點(diǎn)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向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