汽車嵌入式軟件開發(fā)中,基于模型開發(fā)的方法非常普遍,經(jīng)常被客戶及一些評估師問到的問題是:
基于模型開發(fā),要包括哪些活動(dòng)?
這些活動(dòng)與 ASPICE 中的過程(SWE.1 ~ SWE.6)是如何映射的呢?
軟件開發(fā)過程中,應(yīng)用模型開發(fā),是指:采用具備一定語法和語義含義的模型,來全部或部分完成軟件需求、軟件設(shè)計(jì)、并基于模型來生成代碼。
根據(jù)使用模型的目的,基于模型開發(fā)可以映射到“SWE.1 軟件需求分析”、"SWE.2 軟件架構(gòu)設(shè)計(jì)"和"SWE.3 軟件詳細(xì)設(shè)計(jì)和單元構(gòu)建"等 ASPICE 中的各個(gè) Process。
當(dāng)前比較普遍的用法是用模型進(jìn)行設(shè)計(jì)、基于模型生成代碼、在模型及代碼層面進(jìn)行驗(yàn)證。使用模型來定義需求的情形不是特別多。
接下來,我們就基于當(dāng)前比較普遍的這種用法來進(jìn)行分析:
一、基于模型開發(fā),通常包括哪些活動(dòng)呢?
① 模型設(shè)計(jì)
基于模型設(shè)計(jì)的輸入(通常是軟件需求和軟件架構(gòu)設(shè)計(jì))和模型規(guī)范(如: 基于 MAAB 的模型規(guī)則),進(jìn)行模型設(shè)計(jì)。
② 模型靜態(tài)分析
使用工具對模型進(jìn)行分析,包括:
分析模型是否符合建模規(guī)范,如:使用 Simulink Verification & Validation 檢查是否符合 MAAB。當(dāng)現(xiàn)有的規(guī)則無法滿足要求時(shí),工程師也可以自己動(dòng)手定制一些檢查規(guī)則項(xiàng)
模型的形式化驗(yàn)證,如:使用 Simulink Design Verifier 檢查是否有整數(shù)溢出,或者是否有死邏輯等
③ 模型評審
評審模型的內(nèi)部邏輯、評審其是否與模型設(shè)計(jì)的輸入相一致。也就是評審設(shè)計(jì)的模型否能正確的實(shí)現(xiàn)模型設(shè)計(jì)的輸入。
④ 模型動(dòng)態(tài)驗(yàn)證
一般是通過模型在環(huán)(MIL)測試的方式對模型進(jìn)行動(dòng)態(tài)驗(yàn)證。
測試的目的有兩個(gè):
功能測試:測試“模型設(shè)計(jì)的輸入”是否被正確的實(shí)現(xiàn)了,往往用比如“需求覆蓋度”的覆蓋度指標(biāo)進(jìn)行衡量。
模型內(nèi)部邏輯的正確性:往往用結(jié)構(gòu)化覆蓋度指標(biāo)進(jìn)行衡量,比如條件覆蓋(Condition Coverage)、判定覆蓋(Decision Coverage)、MC/DC 覆蓋等。
⑤ 自動(dòng)代碼生成
進(jìn)行一定的代碼生成的定制化設(shè)置、并使用工具生成代碼。
在這個(gè)過程中“用戶的定制化設(shè)置”和"生成代碼的工具"都有可能引入錯(cuò)誤。
因此,在對代碼質(zhì)量要求很高的場合,會希望做“⑥等效性測試”。
⑥ 等效性測試
通常采用軟件在環(huán)(SIL)測試和處理器在環(huán)(PIL)測試的方式,用來驗(yàn)證代碼和模型的一致性。
SIL 是將模型生成的代碼通過 DLL 的方式運(yùn)行在 Windows 平臺上;PIL 是將生成的代碼運(yùn)行到目標(biāo)處理器上,兩種模式使用的編譯器是不同的,SIL 使用的就是 Windows 下的編譯器,比如 Visual Studio C++ 或者 LCC 編譯器,而 PIL 使用的是目標(biāo)編譯器。
二、模型開發(fā)活動(dòng),與ASPICE中的過程(SWE.1 ~ SWE.6)是如何映射的呢?
(1) SWE.3 軟件詳細(xì)設(shè)計(jì)和單元構(gòu)建
模型設(shè)計(jì)是設(shè)計(jì)到可以生成代碼的程度,這里面就包括有軟件單元的詳細(xì)設(shè)計(jì)。
基于模型生成代碼,就是軟件單元的構(gòu)建。
注意:有些時(shí)候,當(dāng)模型本身不足以全面、清晰的呈現(xiàn)設(shè)計(jì)時(shí),是需要有一些補(bǔ)充的文字信息描述的。
(2) SWE.4 軟件單元驗(yàn)證
(3) SWE.2 軟件架構(gòu)設(shè)計(jì)
有些時(shí)候,在模型設(shè)計(jì)中,會包括SWC之間的交互及接口的設(shè)計(jì),這個(gè)部分是屬于軟件架構(gòu)設(shè)計(jì)的。
(4) SWE.5 軟件集成和集成測試
基于模型開發(fā)時(shí),模型中SWC與SWC之間的集成步驟,體現(xiàn)的不明顯。SWC之間的接口的一致性,往往是由建模工具來檢查和保證的。
在"④模型動(dòng)態(tài)驗(yàn)證"和"⑥等效性測試"時(shí),會測試SWC之間的交互,這個(gè)部分的測試屬于模型的集成測試。
-
處理器
+關(guān)注
關(guān)注
68文章
19896瀏覽量
235208 -
集成電路
+關(guān)注
關(guān)注
5425文章
12064瀏覽量
368476 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317550
發(fā)布評論請先 登錄
評論