国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于UML的嵌入式模型設(shè)計及應(yīng)用研究

2010-09-25 02:29:12顧衛(wèi)杰王云良史二穎錢月霞
關(guān)鍵詞:開發(fā)方法嵌入式軟件用例

顧衛(wèi)杰,王云良,史二穎,錢月霞

(常州機(jī)電職業(yè)技術(shù)學(xué)院信息工程系,江蘇 常州213164)

基于UML的嵌入式模型設(shè)計及應(yīng)用研究

顧衛(wèi)杰,王云良,史二穎,錢月霞

(常州機(jī)電職業(yè)技術(shù)學(xué)院信息工程系,江蘇 常州213164)

為了解決嵌入式軟件開發(fā)過程復(fù)雜,對需求變化等實際問題的應(yīng)變能力差等問題,在傳統(tǒng)的嵌入式軟件開發(fā)基礎(chǔ)上,提出了一種新的開發(fā)方法,并給出了基于UML的建模步驟,最后,結(jié)合指紋識別系統(tǒng),完成了嵌入式模型設(shè)計,對文章提出的建模方法的可行性進(jìn)行了驗證。

嵌入式系統(tǒng);開發(fā)方法;UML建模

1 引 言

嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),是軟硬件可裁減的,能適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專用計算機(jī)系統(tǒng)。如今,嵌入式系統(tǒng)已被廣泛地應(yīng)用到航空航天、工業(yè)控制系統(tǒng)、仿真系統(tǒng)、信息家電等眾多領(lǐng)域中,對國民經(jīng)濟(jì)產(chǎn)生了越來越重要的影響。然而,嵌入式系統(tǒng)的需求復(fù)雜性、不確定性也在不斷地提高,系統(tǒng)規(guī)模越來越大,給嵌入式軟件的開發(fā)帶來了新的挑戰(zhàn)。統(tǒng)計資料顯示,有34%的嵌入式軟件項目在開發(fā)過程中被迫停止,72.7%的軟件在產(chǎn)品開發(fā)完成時成本已超出預(yù)算的50%。目前,盡管有許多工具可用于嵌入式系統(tǒng)的開發(fā),但是在實際的開發(fā)過程中嵌入式系統(tǒng)的開發(fā)方法仍沒有太大的突破,系統(tǒng)的分析抽象和編程開發(fā)之間缺少有效的中間步驟,因此研究一種支持嵌入式系統(tǒng)從分析、設(shè)計、驗證到編碼這一整個開發(fā)過程的模型系統(tǒng)及建模方法愈顯重要。

系統(tǒng)描述的主要任務(wù)就是用一種或幾種描述語言對目標(biāo)系統(tǒng)的結(jié)構(gòu)、行為、功能和性能等特征進(jìn)行抽象描述,這一活動也可稱為系統(tǒng)建模,描述語言也可稱為建模語言。建模的目的是為了更好地理解系統(tǒng),目前,在軟件設(shè)計領(lǐng)域,已成為工業(yè)標(biāo)準(zhǔn)的通用建模語言,就是統(tǒng)一建模語言(Unified Modeling Language,UML)。

本文在改進(jìn)嵌入式系統(tǒng)開發(fā)方法的基礎(chǔ)上,提出了新的嵌入式系統(tǒng)開發(fā)方法,探討了嵌入式系統(tǒng)的開發(fā)步驟,并對指紋識別系統(tǒng)進(jìn)行了UML建模研究。

2 基于UML的嵌入式軟件開發(fā)方法

“宿主機(jī)/目標(biāo)機(jī)”開發(fā)模式是利用宿主機(jī)上豐富的資源和良好的開發(fā)環(huán)境開發(fā)目標(biāo)機(jī)上的嵌入式軟件,然后通過串行口或以太網(wǎng)接口將編譯生成的目標(biāo)代碼傳輸并裝載到目標(biāo)機(jī)上,并用交叉調(diào)試器在監(jiān)控程序或操作系統(tǒng)的支持下進(jìn)行實時分析和調(diào)試,最后目標(biāo)機(jī)在特定的環(huán)境下運行。無論是哪種方法,目前的開發(fā)模式都是基于這種“宿主機(jī)/目標(biāo)機(jī)”的,本文擬尋求一種更科學(xué)的嵌入式系統(tǒng)開發(fā)方法,更好地指導(dǎo)、協(xié)同硬件和軟件的開發(fā)。

2.1 傳統(tǒng)的嵌入式軟件開發(fā)方法比較

2.1.1 傳統(tǒng)的靜態(tài)開發(fā)方法

該方法和一般軟件的開發(fā)相同,必須經(jīng)過分析、設(shè)計、編碼、測試四個階段。分析過程定義了軟件要解決的問題,設(shè)計過程定義了問題的解決方法,編碼是對設(shè)計部分的具體實現(xiàn),測試過程可以驗證系統(tǒng)是否滿足需求,實現(xiàn)是否滿足設(shè)計[2]。這種傳統(tǒng)的嵌入式軟件開發(fā)方式最大的特點是以源程序的開發(fā)和測試為核心的。但是由于嵌入式產(chǎn)品的更新?lián)Q代較快,因此就要求研發(fā)周期盡可能的短,同時在開發(fā)過程中能動態(tài)地調(diào)整需求[3]。

2.1.2 統(tǒng)一軟件開發(fā)方法

統(tǒng)一軟件開發(fā)過程RUP(Rational Unified Process)是由提出UML的三位方法學(xué)家提出的,它與UML形成了最好的結(jié)合。在“初始、細(xì)化、構(gòu)造、移交”四個階段重用“需求、分析、設(shè)計、實現(xiàn)、測試”五個核心工作流程,從最核心的用例開始設(shè)計、實現(xiàn),逐步增加實現(xiàn)的用例數(shù),直到所有的用例都實現(xiàn)為止。RUP定義的開發(fā)過程正是表現(xiàn)為一系列系統(tǒng)原型不斷迭代和增量的過程。

2.1.3 柔性軟件開發(fā)方法

柔性是用來描述材料性質(zhì)的一個概念,1980年以來,柔性一詞頻頻出現(xiàn)于管理和機(jī)械制造領(lǐng)域的文獻(xiàn)中,1990年以后又開始出現(xiàn)在軟件工程領(lǐng)域。從技術(shù)角度,柔性軟件開發(fā)方法可以定義為允許或能夠?qū)I(yè)務(wù)過程進(jìn)行調(diào)整或進(jìn)行其它變更的開發(fā)方法[4]。其基本思想為:首先明確用戶要求,在此基礎(chǔ)上為系統(tǒng)建立模型,通過對模型的模擬運行,分析模型是否滿足用戶需求和滿足的程度。整個建模過程是自頂向下逐層細(xì)化的,而模擬修改則由底向上進(jìn)行,然后在保證模型正確的基礎(chǔ)上,進(jìn)行代碼的生成,如下圖1所示。

2.2 迭代增量式柔性開發(fā)方法

本文結(jié)合RUP和柔性軟件開發(fā)方法的特點,提出一種新的支持UML對嵌入式軟件開發(fā)的方法。這種基于UML的嵌入式軟件開發(fā)方法融合了上述兩種軟件開發(fā)模式的優(yōu)點,我們稱之為“迭代增量式柔性開發(fā)方法”,即在整個系統(tǒng)開發(fā)過程中運用迭代增量的開發(fā)思想,而在每個軟件版本的開發(fā)過程中采用柔性的軟件開發(fā)模式。由于嵌入式軟件的需求復(fù)雜性較高,很難一次性確定,因此在開發(fā)的初期,并不是將所有的需求都確定,我們先對已確定的需求進(jìn)行分析,給出系統(tǒng)的模型,通過模擬和修改來獲得正確的模型,然后利用正向工程實現(xiàn)代碼,最后通過測試結(jié)果來驗證是否滿足用戶需求,通過這種柔性開發(fā)過程便生成了系統(tǒng)的第一個版本。當(dāng)有新的需求時,我們按上述步驟重復(fù)進(jìn)行,經(jīng)過反復(fù)迭代,軟件開發(fā)過程遞增向前產(chǎn)生不同版本的軟件,直至獲得系統(tǒng)的最終版本。這種開發(fā)方法很好地支持了軟硬件的協(xié)同設(shè)計;迭代增量的思想更好地適應(yīng)了用戶需求的變化,得到了反饋;模型的模擬和修改可以較早地發(fā)現(xiàn)設(shè)計階段的錯誤,降低了系統(tǒng)開發(fā)風(fēng)險和成本,如圖2所示。

3 基于UML的嵌入式軟件建模步驟

軟件過程是活動的集合,軟件過程可分解為若干個活動。活動與活動之間存在著復(fù)雜的時序關(guān)系,如同步、異步、串行、并行、反饋等[5]。活動可以理解為特定的開發(fā)人員在工具的幫助下,利用已有的軟硬件資源產(chǎn)生不同的產(chǎn)品,過程建模就是要對以上元素及其間的關(guān)系進(jìn)行抽象的本質(zhì)描述。如圖3所示,當(dāng)采用UML建模時,第一步是需求分析,包括識別角色、識別用例,建立角色與用例之間的關(guān)系,得到用例圖。第二步,用類圖描述過程模型中的重要元素之間的靜態(tài)關(guān)系。第三步,描述活動、產(chǎn)品等元素在執(zhí)行時的時序關(guān)系或交互關(guān)系,其中動態(tài)行為用順序圖和狀態(tài)圖描述。由于已建立的過程模型在過程模型環(huán)境的支持下是可執(zhí)行的,UML描述可轉(zhuǎn)化為代碼,通過對過程執(zhí)行的跟蹤和監(jiān)控,可收集與過程有關(guān)的量度參數(shù),對過程進(jìn)行評價,以便得到反饋信息從而改進(jìn)過程模型。

4 “迭代增量式柔性開發(fā)方法”的應(yīng)用

本文以“指紋識別系統(tǒng)”的設(shè)計為例,利用迭代增量式柔性開發(fā)方法,分析嵌入式系統(tǒng)的開發(fā)過程,給出整個UML建模過程。

4.1 系統(tǒng)功能及原理

“指紋識別系統(tǒng)”的主要功能為通過指紋的驗證來確定用戶的身份是否合法,比傳統(tǒng)的“用戶名”加“口令”的方式更安全,每個人的指紋都是唯一的,不能盜取。

當(dāng)用戶向管理員申請注冊時,管理員為用戶分配一個ID號,同時將該ID號、用戶級別、指紋信息等存入指紋數(shù)據(jù)庫。在數(shù)據(jù)庫中,用戶的ID號和指紋圖像數(shù)據(jù)是一一對應(yīng)的。當(dāng)用戶需要認(rèn)證時,首先通過數(shù)字鍵盤輸入自己的ID號,并按下“確認(rèn)”按鈕,同時在指紋傳感器上按下指紋。FLASH中預(yù)先存放了合法用戶的ID號及指紋數(shù)據(jù),因此傳感器提取用戶的指紋,微處理器登陸指紋庫中將具有相同ID號的指紋信息檢索出來,與用戶提供的指紋信息進(jìn)行比對。如果匹配成功則表示是合法用戶,否則為非法用戶。最后,指紋匹配結(jié)果提示信息通過液晶屏顯示給用戶,同時用戶每次的出入記錄等都會被存儲在操作日志中作為歷史記錄以供查詢。

4.2 需求分析

4.2.1 需求級別劃分

根據(jù)前文提出的“迭代增量式柔性開發(fā)方法”,我們可以根據(jù)需求設(shè)計用例,并按優(yōu)先級進(jìn)行劃分。首先開發(fā)的用例應(yīng)該是用戶要求在短時間內(nèi)實現(xiàn)的,或者是實現(xiàn)其他用例的基礎(chǔ);另外,風(fēng)險大的用例一般要先開發(fā)。然后,我們可以根據(jù)用例的優(yōu)先級制定出下一階段的迭代計劃,需求級別如表1所示。

在本例中,我們可以先開發(fā)出滿足前兩個需求的原型系統(tǒng),在與客戶溝通驗證后再實現(xiàn)其他功能,直至完成最終版本,在每個版本的開發(fā)過程中,首先建立模型,然后對模型進(jìn)行模擬分析,并進(jìn)一步與客戶溝通需求,在保證模型正確的基礎(chǔ)上,編寫代碼。

表1 “指紋識別系統(tǒng)”需求級別

4.2.2 用例模型的構(gòu)建

構(gòu)建用例模型的第一步是角色識別,通過角色的識別可以進(jìn)一步識別用例,從而得到用例模型。對于嵌入式系統(tǒng)來講,系統(tǒng)本身包括大量的硬件設(shè)備,這些硬件都要與系統(tǒng)進(jìn)行交互,但是它們并不都被識別為角色,對于如何識別我們遵循這樣一個原則:如果需求描述中明確指出了關(guān)于該硬件的約束,則該硬件應(yīng)當(dāng)識別為角色。對于本系統(tǒng),指紋傳感器、LCD、鍵盤以及指示燈都沒有提出任何的約束,而電池的容量則要通過LCD顯示。同時電池也不是系統(tǒng)的必要組成部分。綜上所述,可以得到該系統(tǒng)的兩個角色“用戶”和“電池”。其中用戶是系統(tǒng)的使用者,分為普通用戶和管理員;電池是系統(tǒng)需要應(yīng)付的外部設(shè)備,系統(tǒng)要檢測電池的電量,用例圖如圖4所示。

4.3 靜態(tài)結(jié)果模型的建立

類圖的建立

尋找正確的類和對象是面向?qū)ο蠓治龊驮O(shè)計的基礎(chǔ),對象是對現(xiàn)實世界中事物的抽象。首先,要去掉那些與系統(tǒng)無關(guān)的事物。其次,要在與系統(tǒng)有關(guān)的事物的特征中尋找與系統(tǒng)有關(guān)的特征,以建立合適的類。根據(jù)分析,本例中應(yīng)包括“指紋傳感器類、微處理器類、存儲指紋庫的類、數(shù)字鍵盤類、液晶顯示屏類以及狀態(tài)燈類”,如圖5所示。

4.4 動態(tài)行為模型的建立

4.4.1 順序圖的建立

我們在描述系統(tǒng)用例時,是從用戶角度出發(fā)的,沒有涉及系統(tǒng)內(nèi)部。順序圖是交互圖的一種,主要對系統(tǒng)的工作流程做進(jìn)一步分析,系統(tǒng)從指紋傳感器中獲取指紋數(shù)據(jù),并在微處理器中進(jìn)行預(yù)處理和特征提取,獲取指紋的生物代碼信息,并與指紋庫中注冊用戶的指紋模板進(jìn)行匹配算法的驗證,通過狀態(tài)燈顯示輸出結(jié)果。這樣,我們就可以得到系統(tǒng)的順序圖了,如圖6所示。

4.4.2 活動圖的建立

活動圖是對系統(tǒng)的動態(tài)行為建模的四個圖之一,它可以看作是狀態(tài)圖的特殊形式,在活動圖中一個活動結(jié)束后將立即進(jìn)入下一個活動。圖7就是該系統(tǒng)的整體工作流程的具體描述。

下一步,可根據(jù)上述UML模型進(jìn)行系統(tǒng)的詳細(xì)的后讀設(shè)計。

5 結(jié) 語

隨著后PC時代的到來,嵌入式系統(tǒng)軟件應(yīng)用將迅速增長,嵌入式軟件開發(fā)方法將備受關(guān)注,本文提出的“迭代增量式柔性開發(fā)方法”綜合了傳統(tǒng)的開發(fā)方法的優(yōu)點,能夠更好地支持UML對嵌入式軟件的開發(fā),加強(qiáng)了軟硬件的協(xié)調(diào)開發(fā)。下一步的研究工作主要是完善本文提出的開發(fā)方法和UML模型的一致性檢驗研究。

[1]王少鋒.面向?qū)ο蠹夹g(shù)UML教程[M].北京:清華大學(xué)出版社, 2004:1-17.

[2]尚利宏,熊運鴻.一種基于UML的嵌入式實時應(yīng)用軟件開發(fā)環(huán)境[J].電子質(zhì)量(自動化與儀器儀表卷),2001(9):25-30.

[3]劉苗苗.UML在嵌入式軟件開發(fā)中的研究與應(yīng)用[D].中國海洋大學(xué),2006.

[4]Nelson Kay M,Nelson H Jame,Ghods M.Proceedings of HICSS97:Technology Flexibility:Conceptualization,Validation, and measurement [C].New York:IEEE Computer Society Press,1997:76-87.

[5]陳建峽.基于UML的分析建模方法[J].湖北工業(yè)大學(xué)學(xué)報, 2005(4).

責(zé)任編輯 王榮輝

TP39

A

1674-5787(2010)05-0147-03

2010-08-02

本文系常州機(jī)電職業(yè)技術(shù)學(xué)院2010年院級課題資助項目(CZMEC201006)。

顧衛(wèi)杰(1980—),男,江蘇南通人,碩士,常州機(jī)電職業(yè)技術(shù)學(xué)院講師,主要研究方向:軟件工程、嵌入式系統(tǒng)。

猜你喜歡
開發(fā)方法嵌入式軟件用例
UML用例模型中依賴關(guān)系的比較與分析
高中英語校本教材的開發(fā)方法
甘肅教育(2020年14期)2020-09-11 07:58:10
聯(lián)鎖軟件詳細(xì)設(shè)計的測試需求分析和用例編寫
從出土文獻(xiàn)用例看王氏父子校讀古書的得失
實時嵌入式軟件的測試技術(shù)
電子測試(2018年10期)2018-06-26 05:54:08
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
電子制作(2017年17期)2017-12-18 06:40:56
基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計與實現(xiàn)
航天嵌入式軟件浮點運算誤差分析與控制
基于模型開發(fā)方法(MBD)的ABS控制器開發(fā)
汽車文摘(2014年9期)2014-12-13 13:10:30
襄汾县| 南陵县| 宜川县| 博湖县| 鹤庆县| 慈溪市| 邻水| 丰原市| 芜湖市| 仁化县| 丰城市| 商水县| 陆川县| 华蓥市| 海晏县| 隆尧县| 沿河| 镇康县| 焉耆| 平陆县| 正蓝旗| 平安县| 揭西县| 莲花县| 迁安市| 永胜县| 浦城县| 西和县| 潜江市| 柏乡县| 三台县| 津南区| 商河县| 竹山县| 米脂县| 绩溪县| 兴仁县| 喜德县| 长葛市| 南京市| 无为县|