毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精


曙海教育集團論壇VxWorks專區VxWorks 應用開發 → 基于Rhapsody和VxWorks的自動取款機系統


  共有9672人關注過本帖樹形打印

主題:基于Rhapsody和VxWorks的自動取款機系統

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
基于Rhapsody和VxWorks的自動取款機系統  發帖心情 Post By:2010-12-1 11:21:02

摘要:介紹如何運用UML設計簡單的自動取款機系統模型并在操作系統VxWorks上實現它:首先,介紹如何運用基于UML的嵌入式實時應用軟件開發環境Rhapsody設計和實現自動取款機系統的模型,以使它能獨立于實際的硬件和使用的操作系統;然后詳細介紹上述模型如何在實時多任務操作系統VxWorks上實現。

    關鍵詞:Rhapsody VxWorks 自動取款機

引 言

  隨著嵌入式應用的不斷增長,嵌入式系統需求的復雜性、不確定性不斷提高,系統規模也逐步擴大;而產品的研發周期又在很快地縮短,給嵌入式應用軟件的開發帶來了新的挑戰。同時,嵌入式軟件的開發者必須面對由于芯片性能的增長、嵌入式操作系統平臺等技術方面不斷變化所帶來的各種壓力。嵌入式軟件開發環境的發展,使一直“深埋”于系統的嵌入式應用軟件變得開放而易于開發,從而促進了嵌入式技術的廣泛應用。

1 基于UML的嵌入式軟件開發環境結構

??圖1所示為一種支持基于UML(Unified Modeling Language,統一建模語言)的迭代式開發方法的開發環境的結構,虛框部分為基于UML的軟件開發環境。

??系統分析和設計用UML來描述,對系統建模;實現過程利用代碼自動生成技術來實現;測試過程將依賴于生成的代碼,通過在代碼中拆裝一些用于支持模型調試的調試信息來實現;而代碼的編譯、鏈接則采用目標系統的操作系統開發環境來完成,代碼的運行與源程序級的調試仍然采用一般的嵌入式軟件調試環境。

??Rhapsody是一個基于UML的面向嵌入式實時應用開發的集成、可視化環境。軟件開發者可以在這個環境里進行分析、設計、實現及驗證。Rhapsody支持基于模型的調試;提供專門為實時嵌入式應用設計的可執行的框架,可以產生基于VxWorks、POS、OSE等多種操作系統的C語言、C++語言、Java語言的源程序。本文所給出的自動取款機系統的模型正是基于Rhapsody設計的。

2 自動取款機系統模型的設計

    2.1 需求分析

??我們設計的自動取款機系統要滿足如下要求:

??在自動取款機系統中,當顧客在自動取款機操作面板上插入信用卡并輸入密碼和現金支取數額(每次最多只能取一千元)后,由自動取款機讀取卡上的內容,并把相應信息傳送到銀行。銀行把自動取款機送來的信息與銀行帳號上的信息進行比較,如果兩者一致,則銀行傳送確認信息到自動取款機,由自動取款機輸出現金,然后顧客取出卡和現金;如果兩者不一致,則要求顧客再次輸入密碼和現金支取數額,然后重復上述操作;若密碼輸入三次不正確,自動取款機就會吞掉信用卡,顧客就不能取出信用卡和現金。

??該自動取款機系統包括1個鍵盤(10個數字鍵、ENTER鍵和CANCEL鍵)、1個LCD液晶顯示屏、1個插卡孔和1個現金出口;通過雙絞線與銀行中的電腦進行串行通信。該自動取款機系統不包括銀行中的電腦,只是通過軟件與銀行中的上位機進行串行通信。

    2.2 可視化建模

??建模是面向對象分析和設計的核心,也是分析和設計過程中最基本和最關鍵的活動之一。UML不僅適用于以面向對象技術描述的任何類型的系統,而且適用于系統開發的不同階段。根據開發過程中不同階段的具體要求,利用UML不同類型的圖來描述系統的各種靜態結構模型和動態行為模型。下面介紹如何利用基于UML的面向嵌入式實時應用開發的集成可視化環境Rhapsody創建自動取款機系統的模型。

圖3 取出現金的黑匣子場景

    第一步:根據要求建立用例圖。

??圖2所示為用例圖。圖中給出了自動取款機系統的主要用途,并表明由誰使用自動取款機系統。有一個主要成員——顧客。一個用例圖應該具有這樣的系統功能:對操作者而言,它返回可觀察的結果但并不顯示系統的內在結構。

??自動取款機系統的主要用途是“取出現金”用例。顧客參與其中的兩個實例是“輸入密碼”和“取出現金”。這兩個實例都包含了另一個用例“讀取卡上內容并驗證”。對每一個用例而言,我們都可以增加文本描述。假如需要的話,這些用例能夠被細化成另一張更多用例的圖。這些用例并沒有顯示任何內在的結構,僅是一個功能性的視圖。

    第二步:設計黑匣子場景。

??建立了一個用例圖后,下一步便是細化用例,即設計一些黑匣子場景。這些黑匣子場景的主要作用是表明模型和對象之間的相互關系。把整個系統看作一個整體,對 “取出現金” 用例,我們細化為圖3所示的場景。(由于每次最多只能取一千元,所以最多只需要按鍵4次。)

??圖3所示的場景能被MSD(消息序列表)捕獲,用來描述在顧客和自動取款機系統之間的通信行為。當創建這樣的圖表時,關于系統的更多細節被隱藏了;同時,這些場景幫助我們更好地理解使用者如何使用報警系統以及需要做哪些事情。總而言之,每一用例都有很多的場景需要捕獲,每一個場景都是用例的一個有效的實例。

    第三步:設計子系統圖。

??下一步是如何把模型分割成子系統。在UML中,一個子系統作為一個封裝顯示,即主要是一個類的集合。圖4的子系統圖表明自動取款機系統已經被分解成兩個基本的部分:自動柜員機封裝(AtmerPkg)和硬件封裝(HardharePkg)。同時也表明:自動柜員機封裝是完全獨立于實際的硬件和硬件封裝的,并且實現了Ihardware接口能夠用于連接自動柜員機封裝。接口類Ihardware描述了對自動柜員機封裝的所有必需的操作,實現了應用與硬件環境的隔離。

??一旦在自動柜員機封裝和硬件封裝之間定義了接口類,每一個子系統就能同步和獨立地細化為更多的子系統。每一個子系統都知道它和其它子系統之間的接口。例如,我們可以開始分析自動柜員機子系統圖,而不需要知道關于硬件的更多情況。

    第四步:設計對象模型圖。

??對自動柜員機封裝而言,我們設想有一個AtmerController類,其中包含Keypad類、Card類、LCD類和Cash類,這些類表示如圖5所示。

??圖5表明:AtmerController類作為一個聚合類,包含了其它類的實例。我們也能看出,我們能選擇顯示“Keypad”類的不同的操作和屬性。在上面的例子中,假如一個實例被AtmerControlle類創建,那么它將創建Keypad類的一個實例theKeypad、LCD類的一個實例theLCD、Cash類的一個實例theCash以及Card類的一個實例theCard。假如AtmerController類的實例被刪除,這些包含的實例也同時被刪除。

??Ihardware類也有一些純虛函數,所以為了測試AtmerController類,必須忽略這些操作。圖6表示:ATM包含了AtmerController類的一個實例和從Ihardware類繼承并忽略了其操作的Hw類的一個實例。

    第五步:生成白匣子場景。

??生成了一個新類AtmerController后,就可以開始為每一個黑匣子場景生成白匣子場景。消息序列表將用于獲取以上不同場景的類的實例之間的通信行為。例如,圖7消息序列描述了顧客輸入支取現金數額并取出現金的場景。

??消息通常對應于對象模型中操作和操作的返回值。消息值對應于類的屬性或是類操作的返回值。消息可以是同步的,也可以是異步的。從圖中可以看出,這些類都有動態行為:它們正在處理定時事件;調用其它類的操作;接受事件。對UML來說,這些動態行為都可以用一個狀態圖來表示。

    第六步:創建狀態圖。

??以顧客輸入密碼過程為例,創建狀態圖,如圖8所示。通常,當一個問題很復雜時,它往往被分解成一些簡單的問題,這也正是對顧客輸入密碼過程要做的事情。圖8所示的狀態圖描述了顧客輸入密碼過程中的行為。

圖7 顧客輸入支取數據并取出現金的白匣子場景

    2.3 屬性、操作和事件

??屬性來源于需求文檔中定義的數據,應該簡單,不考慮設計和實現的細節。每個類都可能有定義在其上的事件和操作。事件對應于明確的瞬時發生的影響類的動態行為。操作對應于類的服務和功能。Rhapsody中有3種事件。

① 信號事件:對應于實例間的異步通信。

② 時間事件:這種事件在進入一個狀態并且經過一個指定的時間后觸發。

③ 觸發操作:觸發操作是同步的操作,通過能夠迅速得到響應的事件得到執行。觸發操作沒有實現代碼,卻可以作為類的狀態圖轉移的觸發器。當調用觸發操作時,同時產生響應的事件。

2.4 生成代碼

??一般嵌入式應用中有60%~90%的代碼用于內務處理(如狀態圖的實現、任務間的通信等),這些代碼在設計新的系統時一般都可以重用。這種重用一般是通過實時框架來實現的。Rhapsody就提供了這樣一個實時框架,它提供了一套嵌入式和實時應用專門選擇和優化的設計模板。嵌入式應用程序一般都運行在嵌入式操作系統的平臺上,而實時框架就是一個在操作系統之上應用程序之下的中間件。應用程序的編寫或自動產生都基于有統一接口的實時框架,這樣就使應用軟件的開發與具體的平臺無關,解決了嵌入式應用軟件的移植問題。

??一旦畫出其余的圖表并創建好不同類的實例后,就能進行代碼的生成和模型的測試工作。在Rhapsody中,需要進行一些配置,以告訴Rhapsody從哪些類生成代碼及使用什么樣的環境。首先,使用Microsoft環境(Windows操作環境和Visual C++編譯器)。然后,代碼在Rhapsody中生成和編譯,以產生可執行程序。

    2.5 使UML模型有效

??Rhapsody能使用自動生成的代碼,所以,當實際的代碼運行時,它能返回一些信息給調試工具,以便Rhapsody進行模型的測試。通過模型級調試、驗證,可以盡早發現系統的設計錯誤或缺陷,從而較早地確定或降低項目的風險。

    2.6 測試模型

??一旦自動柜員機封裝被手工產生的事件測試通過并觀察發生的情況后,就可以利用如微軟的Visual C++產生一個GUI。用于創建GUI的類從Ihardware類繼承而來,選中set選項,當按鈕被按下時,調用ON操作。GUI也能促使模型在模型級再次被調試。

3 在VxWorks上運行

??模型是系統整體的抽象。軟件開發的最終形式必須生成程序代碼,模型畢竟是一些漂亮的藍圖。雖然它對軟件的設計有很大的作用,但用戶的最終目的是希望得到可執行的程序。對于嵌入式實時系統,代碼與系統要求(時間約束、資源的限制等)是緊密聯系的,用最終形式的源程序驗證系統的模型更準確。

??Rhapsody可利用軟件自動生成技術的成果,根據模型可以自動生成具有產品質量的代碼。這種代碼既可以作為系統模型驗證的代碼,也是系統最后提交的代碼。所以產生的代碼是基于某個具體平臺的代碼,通過編譯即可運行在該平臺上。本文采用的是美國 Wind River System 公司推出的一個實時操作系統VxWorks。它是一個運行在目標機上的高性能、可裁剪的嵌入式實時操作系統。

??一旦自動取款機系統被設計、實現和測試后,它就能在實時多任務操作系統VxWorks上實現。1個鍵盤、1個LCD液晶顯示屏、1個插卡孔、1根與銀行的上位機相連的雙絞線和1個輸出現金口經由I/O板連接到1個目標板上。

??從Ihardware類繼承而來并選中set選項而創建新類HwIrq。這些操作的實例可以被寫進Rhapsody中。為了寫到I/O板中,使用VxWorks系統的操作sysOutByte。

??HwIrq類已經被設置成一個活動類,所以它能在自己的線程運行,線程的參數被配置如下:線程名為tRhpHw,堆棧長度為4096字節,優先級為180。

??HwIrq.cpp的部分程序見本刊網絡補充版(http://www.dpj.com.cn)。

4 結 論

??本文運用基于UML的嵌入式實時應用軟件開發環境Rhapsody來設計和實現自動取款機系統的模型。與傳統的嵌入式軟件開發方法相比,具有明顯的優勢。它大大縮短了產品的開發周期,解決了嵌入式應用軟件的移植問題,使軟件的開發工作主要集中在高層的建模和模型的測試及驗證上,從而使軟件開發工作的焦點從編碼轉到了設計上。


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

基于Rhapsody和VxWorks的自動取款機系統








簽名
毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精
4438x亚洲最大成人网| 久久久久久亚洲综合影院红桃 | 欧美韩国日本综合| 五月婷婷久久综合| 成人性生交大片免费看中文| 欧美日韩一区二区三区高清 | 91亚洲午夜精品久久久久久| 91免费看片在线观看| 国内精品嫩模私拍在线| 欧美日韩综合一区| 色吊一区二区三区| 国产精品传媒在线| 久久99精品久久久久久动态图| 欧美日韩1234| 亚洲一二三四在线| 日韩欧美专区在线| 国产乱子伦一区二区三区国色天香 | www.亚洲激情.com| 国产精品久久一级| 欧美一区二区三区在| 精品一区二区三区在线播放视频| 国产亚洲欧美日韩在线一区| 色狠狠综合天天综合综合| 日韩和的一区二区| 国产精品第四页| 精品粉嫩超白一线天av| 91在线国产福利| 日韩国产精品91| 国产午夜精品一区二区三区四区| 一本大道av一区二区在线播放| 婷婷久久综合九色综合绿巨人| 久久嫩草精品久久久久| 欧美日韩免费一区二区三区 | 欧美亚洲国产怡红院影院| 免费在线观看成人| 亚洲不卡在线观看| 亚洲麻豆国产自偷在线| ...av二区三区久久精品| jizz一区二区| 国产美女一区二区三区| 亚洲一区二区av在线| 综合久久久久久久| 国产精品午夜在线| 国产亚洲精品资源在线26u| 9191国产精品| 欧美日韩日日摸| 欧美日韩性生活| 欧美日韩在线精品一区二区三区激情 | 在线电影国产精品| 欧美日韩中文字幕一区| 国产成人av资源| 国产成人在线观看| 成年人国产精品| 成人av网在线| 97久久超碰国产精品| 国产二区国产一区在线观看 | 884aa四虎影成人精品一区| 欧美群妇大交群中文字幕| 欧美精品久久久久久久多人混战 | 国产精品视频九色porn| 中文字幕在线一区免费| 一区二区三区中文字幕电影| 亚洲成在人线在线播放| 激情久久五月天| 色狠狠色狠狠综合| 日韩欧美一区二区三区在线| 中文在线一区二区| 日韩不卡手机在线v区| 国产麻豆精品一区二区| 欧美制服丝袜第一页| 精品国产髙清在线看国产毛片| 久久精品视频一区| 日韩av高清在线观看| 欧美日韩免费观看一区二区三区| 韩国视频一区二区| 在线免费精品视频| 久久久综合网站| 蜜桃久久久久久| 在线观看日韩毛片| 成人午夜免费视频| 粉嫩高潮美女一区二区三区| 欧美日韩日日夜夜| 亚洲乱码国产乱码精品精小说 | 另类的小说在线视频另类成人小视频在线 | 免费精品视频在线| 欧美日韩激情在线| 亚洲观看高清完整版在线观看| a美女胸又www黄视频久久| 国产日韩欧美a| 成人午夜激情视频| 国产精品乱码一区二三区小蝌蚪| 尤物av一区二区| 欧美日韩一区精品| 婷婷中文字幕综合| 日韩一级黄色大片| 韩国欧美一区二区| 国产日韩欧美精品在线| 国产乱理伦片在线观看夜一区| 精品国产一二三| 国内精品不卡在线| 成人免费视频在线观看| 不卡av在线网| 丝袜诱惑亚洲看片| 久久婷婷国产综合精品青草| 国产精品自产自拍| 亚洲卡通欧美制服中文| 在线观看一区二区视频| 欧美aⅴ一区二区三区视频| 日韩欧美国产午夜精品| av资源站一区| 蜜臀av性久久久久av蜜臀妖精| 精品免费视频.| 在线视频欧美精品| 极品瑜伽女神91| 亚洲欧美日韩人成在线播放| 欧美精品xxxxbbbb| 日本高清无吗v一区| 看国产成人h片视频| 亚洲人妖av一区二区| 日韩一区二区三区四区| 97久久精品人人爽人人爽蜜臀| 麻豆高清免费国产一区| 亚洲在线中文字幕| 国产精品护士白丝一区av| 欧美成人猛片aaaaaaa| 欧美日韩国产一区二区三区地区| 午夜久久久影院| 色噜噜久久综合| 国产成人精品影院| 国内精品写真在线观看| 青青青爽久久午夜综合久久午夜| 亚洲乱码中文字幕综合| 亚洲色图丝袜美腿| 亚洲视频网在线直播| 国产精品久久久一区麻豆最新章节| 日韩欧美亚洲国产另类| 日韩网站在线看片你懂的| 在线成人av影院| 欧美不卡在线视频| 国产亚洲福利社区一区| 国产亚洲午夜高清国产拍精品| 久久一区二区视频| 中文字幕第一区| 午夜精品久久久| 亚洲综合成人在线| 麻豆精品视频在线观看| 亚洲欧美怡红院| 亚洲一二三区不卡| 日本不卡视频一二三区| 久久精品国产秦先生| 国产成人鲁色资源国产91色综| 波多野结衣欧美| 欧美老人xxxx18| 欧美国产精品专区| 偷拍一区二区三区四区| 国产精品中文字幕欧美| 色综合亚洲欧洲| 精品国产91洋老外米糕| 一区二区高清视频在线观看| 看电影不卡的网站| 色欲综合视频天天天| 日韩精品专区在线| 艳妇臀荡乳欲伦亚洲一区| 高清日韩电视剧大全免费| 日本久久精品电影| 日韩欧美高清dvd碟片| 亚洲精选视频免费看| 国产一区二区精品久久91| 91国内精品野花午夜精品 | 国产精品全国免费观看高清| 一区二区三区影院| 91麻豆福利精品推荐| 国产三级精品三级在线专区| 日本在线播放一区二区三区| 欧美亚洲综合色| 亚洲一区二区四区蜜桃| 91麻豆国产精品久久| 亚洲你懂的在线视频| 91亚洲国产成人精品一区二三 | 欧美一级一区二区| 三级在线观看一区二区 | 日本在线播放一区二区三区| 97se亚洲国产综合在线| 欧美福利视频一区| 国产成人av福利| 国产精品久久久久久久久久久免费看| 久久97超碰色| 久久久久亚洲蜜桃| 国产在线播放一区二区三区| 久久久电影一区二区三区| 成人免费视频app| 亚洲一区二区成人在线观看| 欧美日韩精品欧美日韩精品一| 香蕉成人啪国产精品视频综合网 | 一本色道a无线码一区v| 一区二区三区中文字幕在线观看| 欧美美女bb生活片| 国产精品一二三区在线| 中文字幕一区二区视频| 91麻豆精品国产自产在线观看一区 |