第二章介紹元件之間相互傳遞訊息,第三章介紹元件的組合與協作關係,本章則介紹元件的行為。
訊息激發元件的行為,行為塑造元件的新關係和狀態。
設計軟體就是要充分描述元件的行為,掌握元件協作關係,靈活傳遞訊息。
捕捉物件行為應關心的是:事件(event)、狀態(state)和動作(action)。
事件是外來的刺激。
狀態是物件特性的總合,包括靜態及動態特性。如:電梯最大載重量是靜態特性,電梯目前在第幾層樓是動態特性。
動作是有時間和狀態共同決定的行為。事件、狀態和動作是如何聯絡在一起的呢?
我們看個簡單的例子:
愛人移情別戀了(事件),則痴情者心碎了(狀態改變了),竟然吃香蕉皮了(行為也改變了)。
我們先以電梯為例來看下可能的設計方式:
圖一:
圖二:
圖三:
如果我們關注電梯的使用頻率,顯然圖一最能展示我們關注的資訊;
如果我們關注電梯是否故障,顯然圖二最能展示我們關注的資訊;
如果我們是正在等待電梯的乘客,顯然圖三最能展示我們關注的資訊。
所以,以上狀態設計都沒有錯。
由上述例子,我們得知設計狀態並非要去找系統本質上有多少種狀態,而是要看分為哪些狀態最能幫助組織您的軟體程式,以達到控制系統的目標。
我們使用uml的狀態轉換圖來表達事件、狀態與動作。
通過前一節講述的方法確定狀態後,跟狀態改變相關的事件和動作也就確定了。
我們用下圖的形式來展示事件、狀態與動作:
以下還是以電梯為例:
電梯有兩個狀態:故障維修、正常使用;
電梯正常使用(狀態)時,發生故障(事件),則通知維修人員(動作),同時電梯轉變為故障維修(狀態);
電梯故障維修(狀態)時,維修完成了(事件),則電梯轉變為正常使用(狀態)。
高煥堂《嵌入式UML設計》讀書筆記 第三章
在第一章中已經介紹過,將應用程式分割成許多小塊 即 元件 在使用時可以隨意調換其中乙個或多個元件,以實現元件的快速淘汰和重組,從而快速滿足客戶的特殊需求或新需求。這也就是說將應用程式分為多個part,再組合成乙個whole。要想真正實現快速淘汰和重組的效果,part就不能隨意劃分。part的劃分要講...
設計模式讀書筆記(一) UML
統一建模語言 unified modeling language,uml s 是一種視覺化的標準建模語言,是一種分析和設計語言,通過uml可以構造軟體系統的藍圖。uml通過統一的表示方法,讓不同知識背景的領域專家 系統分析設計人員和開發人員以及使用者可以方便的交流。1.uml的結構 5種檢視 vie...
測試驅動的嵌入式C語言開發讀書筆記
瀑布模型的最後開發人員會亂作一團,而縮短開發周期是一種減少問題的方案 測試驅動開發 tdd 是一種增量式軟體開發技術。簡單說明及在沒有失敗的單測前提下不寫產品 測試要小且自動化。tdd操作步驟 增加乙個小測試。執行所有測試並期待新的測試失敗,也可能壓根編譯不過。為了讓測試通過做一些小改動。執行測試並...