Misoo

領域分析也適用於嵌入式開發

嵌入式最重視的概念: 狀態(State)

 

       在嵌入式(Embedded)和即時(Real-time)系統裡,非常依賴「事件」和即時「反應」(Response)來思考如何

規劃整體系統之複雜行為。例如,童話『青蛙王子』的故事:

 

從前有一位美麗的公主,喜歡玩金球。有一天,不小心讓球滾進了井裡。她哭泣了,青蛙向她說:我可以幫妳撿起金球。

但是我希望跟你約會。如果約會時,公主心情好又親吻青蛙的話,青蛙可能搖身一變成為一位英俊的王子。從此王子、

公主過著快樂的日子。

 

      從上述一般文字敘述中,就已經很容易發現幾個核心的概念了,例如:青蛙、公主等是用以描述事實的概念,而王子

是用來描述未來可能成真的概念;還有約會、親吻等動作也都是顯而易見重要概念。就像這裡提到的青蛙、王子、公主等,

其本身就是活生生的即時系統。剛才,我們將青蛙和王子視為兩個不同的概念。然而在嵌入式或即時系統領域裡,卻常常

採取不同之觀點,也就是:將青蛙和王子視為「青蛙王子」的兩種狀態(State)。狀態變化之觀點,是嵌入式或即時系統領域

專家所採用。事件的發生常導致某些物件的狀態變化,例如公主親吻噁心的青蛙,青蛙王子就從「青蛙」狀態,轉變為

「王子」狀態:

 

Event: Princess kiss frog, 

狀態變化(反應): Frog 變成 Prince

 

茲以SysML/UML狀態圖表達如下:

 

1、青蛙的「狀態」變化

 

        這個狀態變化,引發了新的事件:英俊王子呈現於公主面前。此事件又讓公主從「噁心」狀態轉變為

「愉快」狀態:

 

Event: 出現英俊王子

狀態變化(反應): Princess 心情由噁心變成愉快

 

       後來兩人結婚,又是一個重要事件,它導致誕生新物件:家庭。然後三個物件會繼續觸發更多型態的事件,引發形形色色

的狀態變化。新婚家庭最不可或缺的就是電冰箱了,電冰箱也有其狀態,例如「冰箱溫度監控系統」就是不斷地偵測電冰箱的

狀態變化,例如,其基本狀態為:

      

 2溫度監控系統之高階狀態圖

 

      這是比較高階的系統的整體(Whole)狀態圖。可以將高階的狀態進行細分,例如將Monitoring狀態做更詳細的狀態設計,

如圖3所示。

   

  圖3、溫度監控系統之細緻狀態圖

 

       軟硬體組(或稱為物件)就像一個人,當某事件(如失戀)發生時,常導致狀態之改變﹔而不同狀態會觸發不同之活動。

事件(Event)、狀態(State)和活動(Activity)是設計軟體過程中,捕捉物件行為時,最關心之事項。所以在嵌入式和即時系統之

設計領域裡,處處可見到領域專家們都很熟悉「狀態」概念。像圖2和圖3SysML/UML狀態圖就專門用來表達狀態概念的。

()