- 相關推薦
基于Rhapsody和VxWorks的自動取款機系統(tǒng)
摘要:介紹如何運用UML設計簡單的自動取款機系統(tǒng)模型并在操作系統(tǒng)VxWorks上實現(xiàn)它:首先,介紹如何運用基于UML的嵌入式實時應用軟件開發(fā)環(huán)境Rhapsody設計和實現(xiàn)自動取款機系統(tǒng)的模型,以使它能獨立于實際的硬件和使用的操作系統(tǒng);然后詳細介紹上述模型如何在實時多任務操作系統(tǒng)VxWorks上實現(xiàn)。引 言
隨著嵌入式應用的不斷增長,嵌入式系統(tǒng)需求的復雜性、不確定性不斷提高,系統(tǒng)規(guī)模也逐步擴大;而產(chǎn)品的研發(fā)周期又在很快地縮短,給嵌入式應用軟件的開發(fā)帶來了新的挑戰(zhàn)。同時,嵌入式軟件的開發(fā)者必須面對由于芯片性能的增長、嵌入式操作系統(tǒng)平臺等技術方面不斷變化所帶來的各種壓力。嵌入式軟件開發(fā)環(huán)境的發(fā)展,使一直“深埋”于系統(tǒng)的嵌入式應用軟件變得開放而易于開發(fā),從而促進了嵌入式技術的廣泛應用。
1 基于UML的嵌入式軟件開發(fā)環(huán)境結構
??圖1所示為一種支持基于UML(Unified Modeling Language,統(tǒng)一建模語言)的迭代式開發(fā)方法的開發(fā)環(huán)境的結構,虛框部分為基于UML的軟件開發(fā)環(huán)境。
??系統(tǒng)分析和設計用UML來描述,對系統(tǒng)建模;實現(xiàn)過程利用代碼自動生成技術來實現(xiàn);測試過程將依賴于生成的代碼,通過在代碼中拆裝一些用于支持模型調試的調試信息來實現(xiàn);而代碼的編譯、鏈接則采用目標系統(tǒng)的操作系統(tǒng)開發(fā)環(huán)境來完成,代碼的運行與源程序級的調試仍然采用一般的嵌入式軟件調試環(huán)境。
??Rhapsody是一個基于UML的面向嵌入式實時應用開發(fā)的集成、可視化環(huán)境。軟件開發(fā)者可以在這個環(huán)境里進行分析、設計、實現(xiàn)及驗證。Rhapsody支持基于模型的調試;提供專門為實時嵌入式應用設計的可執(zhí)行的框架,可以產(chǎn)生基于VxWorks、POS、OSE等多種操作系統(tǒng)的C語言、C 語言、Java語言的源程序。本文所給出的自動取款機系統(tǒng)的模型正是基于Rhapsody設計的。
2 自動取款機系統(tǒng)模型的設計
2.1 需求分析
??我們設計的自動取款機系統(tǒng)要滿足如下要求:
??在自動取款機系統(tǒng)中,當顧客在自動取款機操作面板上插入信用卡并輸入密碼和現(xiàn)金支取數(shù)額(每次最多只能取一千元)后,由自動取款機讀取卡上的內(nèi)容,并把相應信息傳送到銀行。銀行把自動取款機送來的信息與銀行帳號上的信息進行比較,如果兩者一致,則銀行傳送確認信息到自動取款機,由自動取款機輸出現(xiàn)金,然后顧客取出卡和現(xiàn)金;如果兩者不一致,則要求顧客再次輸入密碼和現(xiàn)金支取數(shù)額,然后重復上述操作;若密碼輸入三次不正確,自動取款機就會吞掉信用卡,顧客就不能取出信用卡和現(xiàn)金。
??該自動取款機系統(tǒng)包括1個鍵盤(10個數(shù)字鍵、ENTER鍵和CANCEL鍵)、1個LCD液晶顯示屏、1個插卡孔和1個現(xiàn)金出口;通過雙絞線與銀行中的電腦進行串行通信。該自動取款機系統(tǒng)不包括銀行中的電腦,只是通過軟件與銀行中的上位機進行串行通信。
2.2 可視化建模
??建模是面向對象分析和設計的核心,也是分析和設計過程中最基本和最關鍵的活動之一。UML不僅適用于以面向對象技術描述的任何類型的系統(tǒng),而且適用于系統(tǒng)開發(fā)的不同階段。根據(jù)開發(fā)過程中不同階段的具體要求,利用UML不同類型的圖來描述系統(tǒng)的各種靜態(tài)結構模型和動態(tài)行為模型。下面介紹如何利用基于UML的面向嵌入式實時應用開發(fā)的集成可視化環(huán)境Rhapsody創(chuàng)建自動取款機系統(tǒng)的模型。
圖3 取出現(xiàn)金的黑匣子場景
第一步:根據(jù)要求建立用例圖。
??圖2所示為用例圖。圖中給出了自動取款機系統(tǒng)的主要用途,并表明由誰使用自動取款機系統(tǒng)。有一個主要成員——顧客。一個用例圖應該具有這樣的系統(tǒng)功能:對操作者而言,它返回可觀察的結果但并不顯示系統(tǒng)的內(nèi)在結構。
??自動取款機系統(tǒng)的主要用途是“取出現(xiàn)金”用例。顧客參與其中的兩個實例是“輸入密碼”和“取出現(xiàn)金”。這兩個實例都包含了另一個用例“讀取卡上內(nèi)容并驗證”。對每一個用例而言,我們都可以增加文本描述。假如需要的話,這些用例能夠被細化成另一張更多用例的圖。這些用例并沒有顯示任何內(nèi)在的結構,僅是一個功能性的視圖。
第二步:設計黑匣子場景。
??建立了一個用例圖后,下一步便是細化用例,即設計一些黑匣子場景。這些黑匣子場景的主要作用是表明模型和對象之間的相互關系。把整個系統(tǒng)看作一個整體,對 “取出現(xiàn)金” 用例,我們細化為圖3所示的場景。(由于每次最多只能取一千元,所以最多只需要按鍵4次。)
??圖3所示的場景能被MSD(消息序列表)捕獲,用來描述在顧客和自動取款機系統(tǒng)之間的通信行為。當創(chuàng)建這樣的圖表時,關于系統(tǒng)的更多細節(jié)被隱藏了;同時,這些場景幫助我們更好地理解使用者如何使用報警系統(tǒng)以及需要做哪些事情?偠灾恳挥美加泻芏嗟膱鼍靶枰东@,每一個場景都是用例的一個有效的實例。
第三步:設計子系統(tǒng)圖。
??下一步是如何把模型分割成子系統(tǒng)。在UML中,一個子系統(tǒng)作為一個封裝顯示,即主要是一個類的集合。圖4的子系統(tǒng)圖表明自動取款機系統(tǒng)已經(jīng)被分解成兩個基本的部分:自動柜員機封裝(AtmerPkg)和硬件封裝(HardharePkg)。同時也表明:自動柜員機封裝是完全獨立于實際的硬件和硬件封裝的,并且實現(xiàn)了Ihardware接
【基于Rhapsody和VxWorks的自動取款機系統(tǒng)】相關文章:
基于VxWorks的多DSP系統(tǒng)的多任務程序設計03-18
使用Rhapsody軟件框架和UML的實時系統(tǒng)開發(fā)03-07
基于嵌入式操作系統(tǒng)VxWorks的SCSI硬盤高速記錄系統(tǒng)03-18
基于Vxworks實時操作系統(tǒng)的串口通信程序設計與實現(xiàn)03-18
基于ARM7核處理器VxWorks系統(tǒng)BSP設計03-19