嵌入式系統(tǒng)的開發(fā)是一個(gè)軟硬件協(xié)同設(shè)計(jì)過(guò)程,它需要不同技術(shù)背景的人共同開發(fā).而傳統(tǒng)的嵌入式軟件分析與設(shè)計(jì)方法嚴(yán)重脫節(jié),開發(fā)過(guò)程沒(méi)有—個(gè)確定的統(tǒng)一的標(biāo)準(zhǔn),這使得產(chǎn)品形成的每一個(gè)過(guò)程人為因素影響嚴(yán)重.此外,分析設(shè)計(jì)的結(jié)果不能在開發(fā)類似項(xiàng)目或產(chǎn)品時(shí)重用.以上幾個(gè)問(wèn)題成為多年來(lái)制約嵌入式系統(tǒng)發(fā)展的主要瓶頸,使得大部分嵌入式軟件的開發(fā)工作變得十分困難甚至無(wú)法進(jìn)行.
作為面向?qū)ο蠼<夹g(shù)的標(biāo)準(zhǔn),UML適合于將復(fù)雜的系統(tǒng)設(shè)計(jì)問(wèn)題簡(jiǎn)單化.它采用面向?qū)ο髨D形的方式對(duì)系統(tǒng)進(jìn)行描述,支持從分析、設(shè)計(jì)到建模的全過(guò)程.按照UML規(guī)范,使用CASE工具Rational Rose對(duì)嵌入式系統(tǒng)建模,不僅可以使系統(tǒng)分析設(shè)計(jì)實(shí)現(xiàn)標(biāo)準(zhǔn)化,而且將UML分析建模的構(gòu)建方法和相應(yīng)的集成和測(cè)試策略結(jié)合在一起,完全可以實(shí)現(xiàn)系統(tǒng)分析、設(shè)計(jì)和制作、測(cè)試分別由不同的項(xiàng)目成員在統(tǒng)一、一貫的方式下完成,這將會(huì)使高質(zhì)量的嵌入式系統(tǒng)的開發(fā)變得更為容易.
1、指紋門禁系統(tǒng)需求分析
目前,將指紋識(shí)別技術(shù)應(yīng)用到各種需要身份驗(yàn)證的系統(tǒng)或者嵌入到原有的大量保安系統(tǒng),會(huì)大大提高系統(tǒng)的安全性和便捷性.本文中,設(shè)計(jì)了一個(gè)嵌入式指紋門禁系統(tǒng),它使用指紋識(shí)別技術(shù)來(lái)驗(yàn)證用戶身份,并提供了一套完整的軟硬件來(lái)實(shí)現(xiàn)門禁系統(tǒng)的日常管理.主要包括:用戶信息注冊(cè)、刪除、查詢、指紋比對(duì)、門禁控制和監(jiān)視以及日志管理等.
針對(duì)嵌入式指紋門禁系統(tǒng)的復(fù)雜性,在本系統(tǒng)的開發(fā)中,按照UML規(guī)范,采用基于UML的嵌入式軟件分析與建模方法,使用CASE工具 Rational R0 繪制了各種模型圖,從不同的層次和角度為系統(tǒng)的分析、設(shè)計(jì)、驗(yàn)證以及實(shí)現(xiàn)過(guò)程提供支持,詳細(xì)討論了如何使用UML輔助完成整個(gè)系統(tǒng)的開發(fā).
1.1 系統(tǒng)功能需求
建模過(guò)程首先應(yīng)該從系統(tǒng)中的類開始,為了理解類的結(jié)構(gòu),需要對(duì)系統(tǒng)及其工作過(guò)程做一個(gè)總體陳述.經(jīng)分析,該系統(tǒng)包含一個(gè)電動(dòng)門、一個(gè)指紋傳感器、一個(gè)微處理器、一個(gè)存儲(chǔ)指紋庫(kù)的存儲(chǔ)系統(tǒng)、一個(gè)數(shù)字鍵盤、一個(gè)十字型按鍵、一個(gè)液晶顯示屏、一個(gè)電動(dòng)門以及兩個(gè)狀態(tài)燈.系統(tǒng)從指紋傳感器中獲取指紋數(shù)據(jù),并在微處理器中進(jìn)行預(yù)處理和特征提取,獲取指紋的生物代碼信息,并與指紋庫(kù)中注冊(cè)用戶的指紋模板進(jìn)行匹配算法的驗(yàn)證,并輸出結(jié)果,通過(guò)狀態(tài)燈顯示,同時(shí)根據(jù)匹配結(jié)果發(fā)送控制信號(hào)控制門的開關(guān).通過(guò)對(duì)系統(tǒng)及類做進(jìn)一步分析可得到系統(tǒng)總的類圖如圖1所示.通過(guò)這幅圖我們可以得知系統(tǒng)中所包含的基礎(chǔ)類及其相互之間的關(guān)系,為后文動(dòng)態(tài)模型的建立奠定了基礎(chǔ).
圖1 指紋門禁系統(tǒng)類圖
1.2 用例說(shuō)明
通過(guò)對(duì)系統(tǒng)的需求分析,我們確定了該系統(tǒng)需要實(shí)現(xiàn)的功能.那么如何形象化地描述這些功能,以便使我們更好地與用戶溝通,更準(zhǔn)確地了解他們的需求呢?這就要使用UML的用例模型.在UML中,用例可以被描述為參與者與系統(tǒng)之間的一次交互作用.每一個(gè)用例都是一種不同的使用系統(tǒng)的方法,都會(huì)產(chǎn)生不同的結(jié)果.而角色是與系統(tǒng)交互的對(duì)象,它是使用該系統(tǒng)的人或者其它系統(tǒng).用例圖列出了用戶最想要的功能以及每個(gè)功能的描述.經(jīng)分析,本系統(tǒng)的用例圖如圖2所示.
圖2 指紋門禁系統(tǒng)用例圖
從圖中我們可以明確地了解到系統(tǒng)的功能需求.該系統(tǒng)主要有兩類用戶:普通用戶和管理員.“啟動(dòng)系統(tǒng)”用例表明系統(tǒng)初始化時(shí)要進(jìn)行傳感器和微處理器等的自檢.進(jìn)入正常工作狀態(tài)以后,普通用戶可以通過(guò)“身份驗(yàn)證”用例進(jìn)行指紋驗(yàn)證.如果是未注冊(cè)用戶則在獲得合法II)的前提條件下,通過(guò)“注冊(cè)”用例注冊(cè)自己的相關(guān)信息.系統(tǒng)提供的“開/關(guān)門”用例則主要是根據(jù)指紋匹配結(jié)果,通過(guò)信號(hào)線將控制信號(hào)傳輸給門的驅(qū)動(dòng)電動(dòng)機(jī)以此來(lái)控制門的開關(guān).管理員主要負(fù)責(zé)系統(tǒng)維護(hù),可以使用 “注冊(cè)”、“查找”和“刪除”等用例進(jìn)行信息管理操作.由于在該階段我們對(duì)系統(tǒng)還沒(méi)有充分理解,同時(shí)為了控制用例的數(shù)目,在這里我們只是給出了系統(tǒng)的總體用例模型,在隨后的詳細(xì)設(shè)計(jì)階段我們可以對(duì)這些用例進(jìn)行進(jìn)一步的細(xì)化以精化系統(tǒng)的需求.
2、指紋門禁系統(tǒng)設(shè)計(jì)
需求分析完成以后,可以依據(jù)分析結(jié)果和所建立的模型圖進(jìn)一步指導(dǎo)系統(tǒng)的設(shè)計(jì).系統(tǒng)設(shè)計(jì)主要包括了用例詳細(xì)設(shè)計(jì)、類設(shè)計(jì)、數(shù)據(jù)模型設(shè)計(jì)等.
2.1 用例詳細(xì)設(shè)計(jì)
詳細(xì)設(shè)計(jì)階段需要對(duì)系統(tǒng)需求中的每個(gè)用例進(jìn)行詳細(xì)的分析,并以一種通用的表示來(lái)文檔化,以便使開發(fā)人員更清晰得了解每個(gè)用例的具體實(shí)現(xiàn)過(guò)程 .本文以指紋驗(yàn)證用例為實(shí)例,對(duì)該用例進(jìn)行更進(jìn)一步的詳細(xì)分析,它包含了指紋采集、預(yù)處理、圖像增強(qiáng)、細(xì)化、二值化處理、特征碼提取、比對(duì)、結(jié)果輸出等過(guò)程,這些過(guò)程都可以通過(guò)文檔清晰地表示.我們?cè)诿枋鱿到y(tǒng)用例時(shí),是從用戶角度出發(fā)的,沒(méi)有涉及系統(tǒng)內(nèi)部.通過(guò)分析得到滿足系統(tǒng)需求的類之后,便可根據(jù)用例驅(qū)動(dòng)的思想,通過(guò)類之間的交互來(lái)實(shí)現(xiàn)用例.嵌入式系統(tǒng)一般都要與硬件設(shè)備如傳感器等進(jìn)行交互,同時(shí)還有很強(qiáng)的時(shí)間和內(nèi)存空間的約束.交互圖就是用來(lái)描述對(duì)象間的動(dòng)態(tài)交互行為的,它一步步地顯示了使用案例的流程.在UML中定義了兩種交互框圖:順序圖和合作圖.這兩種框圖顯示同一信息,但組織方式不同.順序圖按時(shí)間排序,依次顯示對(duì)象間進(jìn)行的操作;合作圖則以數(shù)據(jù)流為中心,顯示各個(gè)對(duì)象間的數(shù)據(jù)交換情況.由于順序圖能更好地說(shuō)明對(duì)象間的交互順序,有利于我們理解系統(tǒng),所以本文以“指紋驗(yàn)證”用例的順序圖(見圖3)為例來(lái)描述對(duì)象之間的交互過(guò)程.其它用例都可以采用此種方法來(lái)詳細(xì)說(shuō)明,以便我們更清晰地了解系統(tǒng)每個(gè)功能(用例)的具體實(shí)現(xiàn)過(guò)程.
圖3 指紋驗(yàn)證用例順序圖
2.2 類設(shè)計(jì)
UML規(guī)范按照類職責(zé)不同將系統(tǒng)設(shè)計(jì)類分為邊界類、實(shí)體類和控制類.其中實(shí)體類是系統(tǒng)運(yùn)行的數(shù)據(jù)基礎(chǔ)類,也是類設(shè)計(jì)的核心部分.按照RUP的思想,采用名詞分析法對(duì)系統(tǒng)需求進(jìn)行分析,便可以得到大部分的實(shí)體類.對(duì)于指紋門禁系統(tǒng)而言,指紋信息數(shù)據(jù)是系統(tǒng)的核心數(shù)據(jù),同時(shí),一些相關(guān)的管理信息也是實(shí)體類的組成部分,主要有用戶信息、系統(tǒng)13志等等.在這里我們只對(duì)系統(tǒng)中兩個(gè)主要類進(jìn)行分析,如下表格1,2所示.
表1 指紋圖象FingerImage實(shí)體類
表2 指紋特征Fingerfeature實(shí)體類
2.3 數(shù)據(jù)庫(kù)模型設(shè)計(jì)
完成實(shí)體類的分析與設(shè)計(jì)之后,可建立其數(shù)據(jù)庫(kù)模型.在本系統(tǒng)中采用Pc機(jī)與嵌入式處理器之間的通信來(lái)管理相應(yīng)的數(shù)據(jù),因此PC機(jī)上數(shù)據(jù)管理系統(tǒng)的數(shù)據(jù)庫(kù)模型設(shè)計(jì)如下圖4所示.?dāng)?shù)據(jù)庫(kù)表組成包括注冊(cè)用戶管理、被鑒定人信息、指紋特征數(shù)據(jù)和日志管理,數(shù)據(jù)庫(kù)中表結(jié)構(gòu)字段的描述與上文實(shí)體類成員變量的結(jié)構(gòu)是相對(duì)應(yīng)的.例如:注冊(cè)用戶信息由RegisterUsers表組織,設(shè)置的字段有:用戶ID、姓名、用戶級(jí)別等;指紋圖像數(shù)據(jù)表Fin- gerimage設(shè)置的字段有:圖像名稱、圖像保存路徑、
圖像特征數(shù)、圖像寬度、高度等;指紋特征數(shù)據(jù)表FingerFeature設(shè)置的字段有:ID、注冊(cè)用戶指紋特征、被鑒定人指紋特征、指紋特征數(shù)等,完全可以滿足系統(tǒng)的需求.圖中其它各表的詳細(xì)數(shù)據(jù)項(xiàng)描述可根據(jù)實(shí)際的需要來(lái)設(shè)計(jì),在此不作過(guò)多舉例說(shuō)明.各個(gè)表間的連線表示數(shù)據(jù)表約束,例如: RegisterUs-ers表和Worklog表之間的對(duì)應(yīng)關(guān)系為一個(gè)注冊(cè)用戶可以對(duì)應(yīng)多條日志記錄.同時(shí),RegisterUsers表的主鍵用戶 ID)是表WoALog的外鍵,圖中其他依賴關(guān)系表示含義相同.
3、指紋門禁系統(tǒng)實(shí)現(xiàn)與集成測(cè)試
通過(guò)反復(fù)迭代上述建模及模型驗(yàn)證過(guò)程,便可建立起整個(gè)系統(tǒng)的正確模型.建模工作流完成以后便是系統(tǒng)的實(shí)現(xiàn)階段,此階段主要進(jìn)行下列工作:
(1)實(shí)現(xiàn)平臺(tái)的選擇
①硬件的設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)硬件平臺(tái)采用SAMSUNG公司的S3C2410開發(fā)板設(shè)計(jì)實(shí)現(xiàn),CPU采用,S3C2410A ARM920T.
②系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn)
ARM應(yīng)用軟件的開發(fā)需要交叉編譯環(huán)境,而在Windows平臺(tái)下常用的ARM SDT調(diào)試器提供了一個(gè)集成開發(fā)環(huán)境]DE,可以在一臺(tái)Pc機(jī)上完成編輯、編譯、鏈接、下載和調(diào)試等工作.開發(fā)工具安裝之后,可以用ARM Project Manager來(lái)生成一個(gè)自己的工程,并在ARM Debuggefor Windows下進(jìn)行調(diào)試.因此,本系統(tǒng)的指紋圖像處理及匹配算法采用VC語(yǔ)言在IDE中實(shí)現(xiàn)。在系統(tǒng)編碼中,已成熟的指紋處理算法為系統(tǒng)的設(shè)計(jì)奠定了良好的基礎(chǔ)。
圖4 數(shù)據(jù)庫(kù)模型設(shè)計(jì)
(2)軟件編碼
建模的最終目的是為了得到可執(zhí)行的代碼,因此在系統(tǒng)實(shí)現(xiàn)中很重要的一部分是軟件編碼.為此,在實(shí)現(xiàn)階段,需要選擇某種面向?qū)ο蟮?a target="_blank">編程語(yǔ)言來(lái)完成代碼部分的實(shí)現(xiàn).本系統(tǒng)所有軟件代碼我采用vC語(yǔ)言在IDE中實(shí)現(xiàn),數(shù)據(jù)庫(kù)采用SQL Server2000.由于本文中系統(tǒng)采用滿足UML規(guī)范的建模工具Rational Rose2003,可以很好地支持正,逆向工程,通過(guò)對(duì)類和對(duì)象的詳細(xì)設(shè)計(jì)中的規(guī)范說(shuō)明信息,由代碼生成器可自動(dòng)生成可執(zhí)行的代碼框架,開發(fā)人員在此基礎(chǔ)上對(duì)代碼進(jìn)行修改大大提高了代碼編輯效率.
系統(tǒng)實(shí)現(xiàn)之后,在集成測(cè)試時(shí)可聯(lián)合使用所有的UML框圖認(rèn)真分析每個(gè)構(gòu)件的原理,針對(duì)每一個(gè)系統(tǒng)功能每一個(gè)可能發(fā)生的錯(cuò)誤寫出相應(yīng)的測(cè)試程序,進(jìn)行完整而可靠的測(cè)試.
4、小結(jié)
本文詳細(xì)介紹了UML軟件分析與建模技術(shù)在—個(gè)嵌入式系統(tǒng)開發(fā)中的應(yīng)用,使用Rose建立了該系統(tǒng)的完整模型,通過(guò)模型的建立對(duì)基于UML的嵌入式軟件開發(fā)方法進(jìn)行了一些探索和研究.通過(guò)該實(shí)例的開發(fā),定性地說(shuō)明了UML的優(yōu)點(diǎn)以及它對(duì)嵌入式軟件開發(fā)所能起到的良好的指導(dǎo)作用.但由于UML過(guò)于龐大和復(fù)雜,不同建模工具對(duì)該語(yǔ)言的側(cè)重方面也有所不同,本文是使用了Rational Rose2003完成了所有模型的設(shè)計(jì),因此,所建模型在抽象層次等方面還存在一定不足,有待于進(jìn)一步驗(yàn)證準(zhǔn)確性及完整性.在實(shí)際開發(fā)中可考慮使用多種建模工具對(duì)所建模型進(jìn)行比較,以精化、細(xì)化模型,從中選擇最優(yōu)模型來(lái)改進(jìn)系統(tǒng)設(shè)計(jì)方案.此外,在以后的開發(fā)實(shí)踐中,開發(fā)環(huán)境應(yīng)該選擇能夠支持直接的可執(zhí)行的模型生成,并且支持基于實(shí)時(shí)框架的代碼生成,從而解決嵌入式軟件的可移植性問(wèn)題.
責(zé)任編輯:gt
評(píng)論
查看更多