一種改進(jìn)型UML在嵌入式系統(tǒng)中的應(yīng)用
◆ 時(shí)間。在序列圖中描述時(shí)間及其約束信息。
◆ 并發(fā)性。用活動(dòng)類(lèi)來(lái)描述并發(fā)。活動(dòng)類(lèi)的屬性(如優(yōu)先級(jí))可以定義成類(lèi)的標(biāo)簽值,可通過(guò)組件版類(lèi)Process和Thread將它們映射到實(shí)現(xiàn)環(huán)境中。
◆ 異步通信。UML支持線(xiàn)程間發(fā)送異步消息。
◆ 同步通信。定義信號(hào)量、監(jiān)視器或關(guān)鍵區(qū)的類(lèi)版類(lèi)來(lái)描述同步。
由此,可以得出嵌入式系統(tǒng)建模的一般過(guò)程如下:
?、?首先確定系統(tǒng)需求。在此階段既不考慮哪部分是軟件,也不考慮哪部分是硬件,只根據(jù)調(diào)研和與用戶(hù)的交流得出系統(tǒng)應(yīng)具有的功能,并通過(guò)角色與用例的關(guān)系表現(xiàn)出來(lái),從而得出用例圖和系統(tǒng)最終需求。
?、?進(jìn)入系統(tǒng)設(shè)計(jì)階段,也就是根據(jù)用例圖得出的需求來(lái)設(shè)計(jì)類(lèi)圖。這個(gè)階段需要確定哪些功能由硬件完成,哪些功能由軟件完成。軟件類(lèi)圖的設(shè)計(jì)與純軟件建模方法基 本一樣,在此不再贅述。對(duì)硬件的處理一般由硬件包裝類(lèi)來(lái)實(shí)現(xiàn),硬件包裝類(lèi)提供訪(fǎng)問(wèn)硬件的接口。這些硬件包裝類(lèi)處理到設(shè)備的通信和設(shè)備產(chǎn)生的中斷,通過(guò)這樣 的硬件類(lèi)可以隱藏低級(jí)協(xié)議的細(xì)節(jié),并且很方便、快速地將低級(jí)中斷轉(zhuǎn)換為系統(tǒng)中其余部分的高級(jí)事件。包裝類(lèi)是屬于活動(dòng)的還是靜態(tài)的類(lèi),主要取決于硬件的屬性。
?、?如果類(lèi)圖中所描述的軟件類(lèi)或硬件類(lèi)比較復(fù)雜,難以描述清楚,那么可以采用對(duì)象圖來(lái)細(xì)化,使之更加具體和明確。
?、?對(duì)于實(shí)時(shí)性要求,需要在序列圖中進(jìn)行定義和描述;如果想知道不同對(duì)象之間的鏈接,以及鏈接對(duì)象間如何發(fā)送消息,可以建立協(xié)作圖;通過(guò)建立狀態(tài)圖,可以了解到某個(gè)對(duì)象所能到達(dá)的所有狀態(tài),以及對(duì)象收到的事件對(duì)該對(duì)象狀態(tài)的影響等。
?、?最后,使用組件圖和展開(kāi)圖來(lái)實(shí)現(xiàn)系統(tǒng)的集成與驗(yàn)證。
以上過(guò)程可以在Rhapsody軟件環(huán)境下實(shí)現(xiàn),因?yàn)樵撥浖梢援a(chǎn)生嵌入式系統(tǒng)常用的C語(yǔ)言,更接近通常的嵌入式開(kāi)發(fā)環(huán)境。
3、實(shí)例分析與討論
這里以一個(gè)報(bào)警系統(tǒng)為例,說(shuō)明如何使用UML來(lái)設(shè)計(jì)嵌入式系統(tǒng)。一個(gè)報(bào)警系統(tǒng)一般由傳感器(包括聲音傳感器、圖像傳感器和熱傳感器),報(bào)警器(包括聲音報(bào) 警器、電話(huà)報(bào)警器和光報(bào)警器),鍵盤(pán),LCD顯示器,系統(tǒng)處理器,以及用于存儲(chǔ)系統(tǒng)配置信息和日志信息的存儲(chǔ)器等部件組成。
當(dāng)傳感器接收到某個(gè)信號(hào),通過(guò)模數(shù)轉(zhuǎn)換把信息送到系統(tǒng)處理器中后,系統(tǒng)處理器根據(jù)設(shè)定的配置信息條件,判斷是否需要報(bào)警。若需要,則會(huì)向報(bào)警器發(fā)出報(bào)警命令。鍵盤(pán)和LCD顯示器用于人機(jī)對(duì)話(huà),可以根據(jù)實(shí)際需要設(shè)定報(bào)警條件和方式。
該系統(tǒng)的序列圖如圖1所示。從圖1中可以看出,該系統(tǒng)要求從傳感器返回信息到發(fā)出報(bào)警的時(shí)間間隔小于3 s。這就是序列圖中對(duì)嵌入式實(shí)時(shí)系統(tǒng)時(shí)間要求的一個(gè)例子。
圖1 報(bào)警系統(tǒng)序列圖
在類(lèi)圖中,把系統(tǒng)處理器設(shè)計(jì)成活動(dòng)類(lèi),負(fù)責(zé)處理通過(guò)帶有LCD 顯示的控制面板與用戶(hù)的交互。通過(guò)控制面板,可以配置、激活和關(guān)閉系統(tǒng)。所有的配置變化均保存在系統(tǒng)配置信息類(lèi)中。系統(tǒng)處理器接收傳感器的信息,并把它與 系統(tǒng)配置信息比較,從而決定是否報(bào)警。為了查詢(xún)和了解報(bào)警系統(tǒng)歷史信息,系統(tǒng)處理器將所有事件保存在日志中。系統(tǒng)處理器、傳感器和報(bào)警器的類(lèi)圖的簡(jiǎn)單關(guān)系如圖2所示。
圖2 報(bào)警器系統(tǒng)組成的類(lèi)圖
結(jié)語(yǔ)
為嵌入式系統(tǒng)引入一個(gè)通用、完善的UML技術(shù),必將對(duì)當(dāng)前高速發(fā)展的嵌入式系統(tǒng)的研究與開(kāi)發(fā)產(chǎn)生積極的影響。而本文所提出的思想和方法,對(duì)于擺脫UML技術(shù)在嵌入式領(lǐng)域的困境起到了有益的探索和建議作用。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
c++相關(guān)文章:c++教程
評(píng)論