天天看點

《軟體模組化與設計: UML、用例、模式和軟體體系結構》一一2.6 狀态機圖

本節書摘來自華章計算機《軟體模組化與設計: uml、用例、模式和軟體體系結構》一書中的第2章,第2.6節,作者:(美)hassan gomaa,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

在uml表示法中,一個狀态轉換圖被稱為狀态機圖。本書使用狀态圖(statechart)這一更為通用的術語。在uml表示法中,圓角框表示狀态,連接配接圓角框的弧線表示轉換,如圖2-7所示。狀态圖的初始狀态(initial state)用一個始于小黑圓圈的弧線表示。終結狀态(final state)是可選的,它被描繪為嵌套在大白圈中的小黑圓圈,有時也被稱為靶心(bull’s-eye)。狀态圖可以按層次分解,将一個組合狀态分解成為一組子狀态。

在表示狀态轉換的弧線上,使用事件[條件]/動作(event[condition]/action)進行标記。事件(event)引起了狀态的轉換,當事件發生時,為了發生轉換,可選的布爾條件(condition)必須為真。可選的動作(action)作為轉換的結果被執行。一個狀态可具有以下任意的動作:

進入動作(entry action),它在進入狀态的時候執行

退出動作(exit action),它在退出狀态的時候執行

圖2-7描述了一個被分解為順序的子狀态a1和a2的組合狀态a。在這種情況下,狀态圖在一個時刻内隻會處于一個子狀态,即進入第一個子狀态a1然後進入子狀态a2。圖2-8描述了一個被分解為正交區域(orthogonal region)bc和bd的組合狀态b。在這種情況下,狀态圖在同一個時刻進入了每一個正交區域bc和bd中。每一個正交的子狀态被進一步分解為順序的子狀态。是以,當進入組合狀态b時,同樣進入了狀态b1和b3。

《軟體模組化與設計: UML、用例、模式和軟體體系結構》一一2.6 狀态機圖

繼續閱讀