資源描述:
《嵌入式系統(tǒng)軟件架構(gòu)設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、嵌入式系統(tǒng)軟件架構(gòu)設(shè)計(jì)張志明zzm9981@163.com目錄1.前言42.決定架構(gòu)的因素和架構(gòu)的影響42.1.常見的誤解52.1.1.小型的系統(tǒng)不需要架構(gòu)52.1.2.敏捷開發(fā)不需要架構(gòu)73.嵌入式環(huán)境下軟件設(shè)計(jì)的特點(diǎn)73.1.和硬件密切相關(guān)73.2.穩(wěn)定性要求高73.3.內(nèi)存不足83.3.1.虛擬內(nèi)存技術(shù)83.3.2.兩段式構(gòu)造93.3.3.內(nèi)存分配器103.3.4.內(nèi)存泄漏113.4.存儲(chǔ)設(shè)備易損壞,速度較慢113.4.1.損耗均衡113.4.2.錯(cuò)誤恢復(fù)123.5.故障成本高昂124.軟件框架134.1.嵌入式軟件架構(gòu)面臨的問(wèn)題134.2.什么是框
2、架134.2.1.軟件復(fù)用的層次134.2.2.針對(duì)高度特定領(lǐng)域的抽象144.2.3.框架可以實(shí)現(xiàn)和規(guī)定非功能性需求154.3.一個(gè)框架設(shè)計(jì)的實(shí)例164.3.1.基本架構(gòu)164.3.2.功能特點(diǎn)164.3.3.分析164.3.4.實(shí)際效果204.4.框架設(shè)計(jì)中的常用模式204.4.1.模板方法模式204.4.2.創(chuàng)建型模式214.4.3.消息訂閱模式214.4.4.策略模式224.5.框架的缺點(diǎn)225.自動(dòng)代碼生成235.1.機(jī)器能做的事就不要讓人來(lái)做235.2.舉例235.2.1.消息的編碼和解碼235.2.2.GUI代碼245.2.3.小結(jié)255.2.
3、4.GoogleProtocolBuffer256.面向語(yǔ)言編程(LOP)276.1.從自動(dòng)化代碼生成更進(jìn)一步276.2.優(yōu)勢(shì)和劣勢(shì)296.3.在嵌入式系統(tǒng)中的應(yīng)用297.測(cè)試307.1.可測(cè)試性是軟件質(zhì)量的一個(gè)度量指標(biāo)307.2.測(cè)試驅(qū)動(dòng)的軟件架構(gòu)317.3.系統(tǒng)測(cè)試317.3.1.界面自動(dòng)化測(cè)試317.3.2.基于消息的自動(dòng)化測(cè)試337.3.3.自動(dòng)化測(cè)試框架337.3.4.回歸測(cè)試357.4.集成測(cè)試357.5.單元測(cè)試357.5.1.圈復(fù)雜度測(cè)量387.5.2.扇入扇出測(cè)量387.5.3.框架對(duì)單元測(cè)試的意義398.維護(hù)架構(gòu)的一致性399.一個(gè)實(shí)際
4、嵌入式系統(tǒng)架構(gòu)的演化409.1.數(shù)據(jù)處理419.2.窗口管理419.3.MVC模式429.4.大量類似模塊,低效的復(fù)用439.5.遠(yuǎn)程控制439.6.自動(dòng)化的TL1解釋器449.7.測(cè)試的難題449.8.小結(jié)4410.總結(jié)451.前言嵌入式是軟件設(shè)計(jì)領(lǐng)域的一個(gè)分支,它自身的諸多特點(diǎn)決定了系統(tǒng)架構(gòu)師的選擇,同時(shí)它的一些問(wèn)題又具有相當(dāng)?shù)耐ㄓ眯?,可以推廣到其他的領(lǐng)域。本課程試圖從嵌入式軟件架構(gòu)設(shè)計(jì)出發(fā),啟發(fā)大家對(duì)軟件架構(gòu)設(shè)計(jì)的理解。本課程的很多內(nèi)容是對(duì)謝老師課程在嵌入式領(lǐng)域的具體闡述。提起嵌入式軟件設(shè)計(jì),傳統(tǒng)的印象是單片機(jī),匯編,高度依賴硬件。傳統(tǒng)的嵌入式軟件開
5、發(fā)者往往只關(guān)注實(shí)現(xiàn)功能本身,而忽視諸如代碼復(fù)用,數(shù)據(jù)和界面分離,可測(cè)試性等因素。從而導(dǎo)致嵌入式軟件的質(zhì)量高度依賴開發(fā)者的水平,成敗系之一身。隨著嵌入式軟硬件的飛速發(fā)展,今天的嵌入式系統(tǒng)在功能,規(guī)模和復(fù)雜度各方面都有了極大的提升。比如,Marvell公司的PXA3xx系列的最高主頻已經(jīng)達(dá)到800Mhz,內(nèi)建USB,WIFI,2D圖形加速,32位DDR內(nèi)存。在硬件上,今天的嵌入式系統(tǒng)已經(jīng)達(dá)到甚至超過(guò)了數(shù)年前的PC平臺(tái)。在軟件方面,完善的操作系統(tǒng)已經(jīng)成熟,比如Symbian,Linux,WinCE?;谕晟频牟僮飨到y(tǒng),諸如字處理,圖像,視頻,音頻,游戲,網(wǎng)頁(yè)瀏覽
6、等各種應(yīng)用程序?qū)映霾桓F,其功能性和復(fù)雜度比諸PC軟件不遑多讓。原來(lái)多選用專用硬件和專用系統(tǒng)的一些商業(yè)設(shè)備公司也開始轉(zhuǎn)換思路,以出色而廉價(jià)的硬件和完善的操作系統(tǒng)為基礎(chǔ),用軟件的方式代替以前使用專有硬件實(shí)現(xiàn)的功能,從而實(shí)現(xiàn)更低的成本和更高的可變更,可維護(hù)性。2.決定架構(gòu)的因素和架構(gòu)的影響架構(gòu)不是一個(gè)孤立的技術(shù)的產(chǎn)物,它受多方面因素的影響。同時(shí),一個(gè)架構(gòu)又對(duì)軟件開發(fā)的諸多方面造成影響。軟件架構(gòu)軟件規(guī)模生命周期非功能性需求非功能性需求團(tuán)隊(duì)組成開發(fā)模式下面舉一個(gè)具體的例子。摩托車的發(fā)動(dòng)機(jī)在出廠前必須通過(guò)一系列的測(cè)試。在流水線上,發(fā)動(dòng)機(jī)被送到每個(gè)工位上,由工人進(jìn)行諸如
7、轉(zhuǎn)速,噪音,振動(dòng)等方面的測(cè)試。要求實(shí)現(xiàn)一個(gè)嵌入式設(shè)備,具備以下基本功能:1.安裝在工位上,工人上班前開啟并登錄。2.通過(guò)傳感器自動(dòng)采集測(cè)試數(shù)據(jù),并顯示在屏幕上。3.記錄所有的測(cè)試結(jié)果,并提供統(tǒng)計(jì)功能。比如次品率。如果你是這個(gè)設(shè)備的架構(gòu)師,哪些問(wèn)題是在設(shè)計(jì)架構(gòu)的時(shí)候應(yīng)該關(guān)注的呢?1.1.常見的誤解1.1.1.小型的系統(tǒng)不需要架構(gòu)有相當(dāng)多的嵌入式系統(tǒng)規(guī)模都較小,一般是為了某些特定的目的而設(shè)計(jì)的。受工程師認(rèn)識(shí),客戶規(guī)模和項(xiàng)目進(jìn)度的影響,經(jīng)常不做任何架構(gòu)設(shè)計(jì),直接以實(shí)現(xiàn)功能為目標(biāo)進(jìn)行編碼。這種行為表面上看滿足了進(jìn)度,成本,功能各方面的需求,但是從長(zhǎng)遠(yuǎn)來(lái)看,在擴(kuò)展和
8、維護(hù)上付出的成本,要遠(yuǎn)遠(yuǎn)高于最初節(jié)約的成本。如果系統(tǒng)的最初開發(fā)者繼