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