對于 HallButtonControl,我們有二個狀態:
"門廳燈開 " 和 " 門廳燈關"。
從給出的初始信息,初始的狀態應該是"門廳燈關"。行為定義: " 當 HallCall[f,d]是真,則指令
HallLight[f,d] 為 On ",這是第一個狀態變化從on 到off;同樣地,"如果DesiredFloor.d 是Stop,則命令兩個 HallLight 切換到off",改變狀態從on 到off。在此,狀態機停下來等一個新的門廳呼叫。
第 4 步:
我們決定增加每個狀態機的前置條件、 后置條件、行動、入口碼和退出碼,這些狀態機是從約束和行為相關的需求文檔得到。
第 5 步:
檢查事件的組合是否覆蓋所有狀態。
第 6 步:
檢查是否有死狀態,沒有 ( 組合) 事件可以使狀態機從該狀態變換到其他狀態。
第 7 步:
一項項地按照行為運行狀態機,確定所有的需求條件被覆蓋,而且狀態機改變狀態,采取行動,正確地修改變量。確定沒有遺漏和冗余。第 8 步:
正確地畫出每一個對象的狀態圖、標示狀態、守衛條件、進出碼和過渡,記錄用于跟蹤的相應需求。
6 結論
在這份報告中,給出了一個模擬電梯控制系統詳細的 UML 文檔。這個文檔中用到的 UML 圖包括用例圖、類圖表、順序圖和狀態圖。在課程項目設計過程中,實時系統中如何使用UML 圖得到了大量的關注,我們項目的成功對這個問題給出了一個很好的答案。由于當前UML 版本的流行和廣泛的符號化,OO 技術可以在實時系統開發中得到適度的發展。
目前面向對象分析和設計方法重心只是在系統的軟件。對于實時系統不是完全合適,實時系統需要對系統開發作出整體苛刻的要求而不僅僅是軟件。
實時系統的一些方面:
·硬件元件的定義和他們的特性·任務的定義和任務的通信·時間限制·網絡的建模。
如果適當地注意系統的實時特征和不同點的組合,對實時系統的設計和分析有很大的幫助。
為了描述硬件元素和對網絡建模,我們用三種不同的視圖對系統結構建模。對象構造和軟件結構都將重點放在系統的軟件結構上,而從系統結構角度給出了一個系統硬件的略圖和系統組件間的通信方法。為了描述時間約束給出了順序圖和協作圖,通過消息和對象的名稱標識時間約束標識系統的實時特征。每個圖表僅僅是系統的一些方面的一個圖形表示。沒有單個圖表可以覆蓋一個系統設計的所有東西。圖表結合起來表達實時系統的完全描述。系統類圖的三個不同的視圖有助于了解系統的結構。
本文給出的一些我的項目經驗實用方法,可能有助于填補需求和設計之間的間隙。當建立系統的圖表的時,已經存在一些組件,如系統結構和狀態圖。不清楚上面總結的方法在一般系統的分析和設計過程中是否仍會有效。
舉例來說,系統架構 -類圖是以Phil Koopman的電梯架構為基礎的 (這個報告的附件),它使用非標準的UML語言。
這里的問題是:UML語言有沒有好到,在沒有架構圖時仍然可以設計系統架構 ?
本文中電梯系統的功能描述仍然限制在課程項目。而在真實世界中更可能需要一些其他特征,例如一個火警按鈕、或一個風扇鎖。然而,給出了系統的框架,這些附加的功能可以被毫不費力的增加到系統的靜態和動態的描述中。
7 參考文獻
[1] Hermann Kopetz. Real-Time Systems,Design Principles for Distributed Embedded Applications.
[2] Grady Booch,James Rumbaugh and Ivar Jacobson. The Unified Modeling Language User Guide.
[3] Perdita Stevens and Rob Pooley. Using UML,Software Engineering with Objects and Components.
[4] Martin Fowler and Kendall Scott. UML Distilled,A Brief Guide to the Standard Object Modeling Language.
[5] Bruce Powel Douglass. Doing Hard Time: Developing Real-time Ssystems with UML,Objects,Frameworks,and Patterns.
[6] Desmond F. D’Souza and Ala n Cameron Wills. Objects,Components,and Frameworks with UML.
[7] Alan Moore and Niall Cooling. Developing Real-Time Systems using Object Technology,A white paper from Artisan Software Tools.