嵌入式線控駕駛系統(tǒng)開(kāi)發(fā)過(guò)程中設(shè)計(jì)和測(cè)試考慮
近來(lái),有報(bào)道稱包括Denso、Motorola和Toyota在內(nèi)的不同行業(yè)的多家公司都在產(chǎn)品代碼方面取得了成功。這項(xiàng)技術(shù)正日益成為軟件下一波演進(jìn)發(fā)展中的一個(gè)重要組成部分。雖然總體而言,它對(duì)軟件工程化過(guò)程的影響已為業(yè)界所了解,但卻并沒(méi)有十分清楚地確立起來(lái)。對(duì)于早前類似演進(jìn)發(fā)展(包括從機(jī)器代碼發(fā)展到匯編代碼,再發(fā)展到源代碼)的參與者而言,這一點(diǎn)尤為明顯。
隨著抽象與自動(dòng)化程度的日益提高,新的過(guò)程、方法和工具接踵而來(lái)。瀑布式過(guò)程已讓位于螺旋式方法和迭代方法。實(shí)時(shí)方法已經(jīng)出現(xiàn)并正在取代靜態(tài)流程設(shè)計(jì)。新的工具也出現(xiàn)了,如包含有調(diào)試器、優(yōu)化編譯器和自動(dòng)測(cè)試工具的IDE(集成開(kāi)發(fā)環(huán)境)。
不過(guò),由于難以使用、缺乏了解或是工具支持不足的原因,并非每一種好的思想都能開(kāi)花結(jié)果。有跡象表明,這些方法和工具對(duì)于主流產(chǎn)品應(yīng)用并非總是實(shí)用。例如,用驗(yàn)證來(lái)確保軟件正確性的正規(guī)方法是使用一種全世界只有極少數(shù)專家才真正懂得的語(yǔ)言編寫(xiě)的。此外,1980年代的實(shí)時(shí)用例工具可以輔助設(shè)計(jì),但并未提供一條產(chǎn)生最終代碼的簡(jiǎn)便途徑。
在早期應(yīng)用階段,產(chǎn)品代碼生成的效果相當(dāng)不錯(cuò),這主要是由于其實(shí)用性。不過(guò),其進(jìn)一步的發(fā)展還需要依靠集成過(guò)程、方法和工具的支持。一種新的過(guò)程只有在具備了所需支持方法和工具的條件下才會(huì)成功。如果這些條件有所欠缺,那么對(duì)一個(gè)公司成熟的嵌入式系統(tǒng)進(jìn)行重新設(shè)計(jì)的努力就不會(huì)是可行和實(shí)用的。
本文給出了主要面向產(chǎn)品代碼生成的這樣一個(gè)框架:
* 基于模型的設(shè)計(jì)
* 建模、仿真、快速原型、產(chǎn)品代碼生成、模型測(cè)試和覆蓋、在環(huán)測(cè)試
* 開(kāi)發(fā)工具、驗(yàn)證與生效(VV)工具、集成工具
模型的設(shè)計(jì)過(guò)程
通過(guò)提供一個(gè)共同的圖形規(guī)范和分析環(huán)境,基于模型的設(shè)計(jì)可以支持控制/DSP系統(tǒng)工程師和軟件開(kāi)發(fā)人員的需要。在這個(gè)過(guò)程中,模型被創(chuàng)建并用來(lái)規(guī)定系統(tǒng)數(shù)據(jù)、接口、反饋控制邏輯、離散/狀態(tài)邏輯和實(shí)時(shí)行為。
基于模型的設(shè)計(jì)被應(yīng)用在幾乎每個(gè)需要嵌入式控制系統(tǒng)的行業(yè)之中。而在大型汽車電子控制單元(ECU)等嵌入式應(yīng)用的開(kāi)發(fā)過(guò)程中,其應(yīng)用更為廣泛。DSP和通信應(yīng)用也采用這種方法,但它們更強(qiáng)調(diào)建模和原型,而不是產(chǎn)品代碼生成。
為了滿足這些不同的應(yīng)用,基于模型的設(shè)計(jì)過(guò)程必須解決線控駕駛系統(tǒng)等安全關(guān)鍵系統(tǒng)的需求。它還必須產(chǎn)生最終的、可執(zhí)行的代碼,而且必須特別緊湊、快速和能夠追蹤。這是由于在大批量生產(chǎn)的ECU中,必須使用低成本的定點(diǎn)微控制器部件和DSP。
基于模型的設(shè)計(jì)適合任何過(guò)程框架環(huán)境,包括那些在IEEE軟件工程化標(biāo)準(zhǔn)中描述過(guò)的過(guò)程框架。
IEEE Std. 730適用于任何通用軟件項(xiàng)目。為了很好地理解它的過(guò)程框架,有必要回顧一下它對(duì)“關(guān)鍵性”項(xiàng)目文檔所列出的需求。
IEEE Std. 730需求包括:
* 軟件需求規(guī)范(SRS)
* 軟件設(shè)計(jì)描述(SDD)
* 軟件驗(yàn)證與生效計(jì)劃(SVVP)
* 軟件驗(yàn)證與生效報(bào)告(SVVR)
* 用戶文檔
* 軟件配置管理計(jì)劃(SCMP)
* 包括軟件項(xiàng)目管理計(jì)劃(SPMP)在內(nèi)的其他文檔
圖1:查看一個(gè)軟件過(guò)程的普通方法是借助于V形圖
* 開(kāi)發(fā) (需求、設(shè)計(jì)、編碼和集成)
* 驗(yàn)證和生效(VV)
* 集成 (軟件配置管理、需求可追蹤性和文檔)
基于模型的設(shè)計(jì)非常注重過(guò)程迭代、早期測(cè)試和開(kāi)發(fā)過(guò)程中的重用,這使得它既獨(dú)特而又功能強(qiáng)大。這一過(guò)程的內(nèi)在實(shí)用性體現(xiàn)在V形圖的底部,產(chǎn)品代碼生成是來(lái)自設(shè)計(jì)的一種自動(dòng)過(guò)渡。
在基于模型的設(shè)計(jì)中,方框圖或狀態(tài)圖模型可以用作系統(tǒng)和軟件需求、軟件設(shè)計(jì),或者在稍作假設(shè)變換之后,用作源代碼。這個(gè)過(guò)程的另外一個(gè)獨(dú)特之處是,它在最終編譯之前要進(jìn)行廣泛的驗(yàn)證和生效操作。早期驗(yàn)證和生效的好處很明顯:它將大大減少在最終系統(tǒng)集成和測(cè)試期間發(fā)現(xiàn)的bug數(shù)目,返工次數(shù)也會(huì)更少。
開(kāi)發(fā)方法與工具
在軟件工程化過(guò)程中,采用了基于模型的設(shè)計(jì)方法
開(kāi)發(fā)方法包括:1. 行為建模;2. 詳細(xì)軟件設(shè)計(jì);3. 分布式結(jié)構(gòu)設(shè)計(jì);4. 產(chǎn)品代碼生成;5. 嵌入式目標(biāo)集成。驗(yàn)證與生效方法包括:1. 仿真與分析;2. 快速原型;3. 模型測(cè)試與覆蓋;4. 代碼追蹤與檢查;5. 硬件在環(huán)(HIL,Hardware-In-the-Loop)測(cè)試。集成方法包括:1. 源控制接口;2. 需求管理接口;3. 報(bào)告生成。
下面給出了對(duì)各種開(kāi)發(fā)方法的簡(jiǎn)潔描述,并提供有例子和工具支持信息。注意這里給出的所有工具都是商業(yè)上可以獲得的。其后的部分討論了開(kāi)發(fā)行為,并包含有關(guān)鍵的驗(yàn)證與生效方法。最后,本文將通過(guò)集成組件來(lái)進(jìn)行總結(jié)。
評(píng)論