汽車嵌入式軟件開發中,基于模型開發的方法非常普遍,經常被客戶及一些評估師問到的問題是:
基于模型開發,要包括哪些活動?
這些活動與 ASPICE 中的過程(SWE.1 ~ SWE.6)是如何映射的呢?
軟件開發過程中,應用模型開發,是指:采用具備一定語法和語義含義的模型,來全部或部分完成軟件需求、軟件設計、并基于模型來生成代碼。
根據使用模型的目的,基于模型開發可以映射到“SWE.1 軟件需求分析”、"SWE.2 軟件架構設計"和"SWE.3 軟件詳細設計和單元構建"等 ASPICE 中的各個 Process。
當前比較普遍的用法是用模型進行設計、基于模型生成代碼、在模型及代碼層面進行驗證。使用模型來定義需求的情形不是特別多。
接下來,我們就基于當前比較普遍的這種用法來進行分析:
一、基于模型開發,通常包括哪些活動呢?
① 模型設計
基于模型設計的輸入(通常是軟件需求和軟件架構設計)和模型規范(如: 基于 MAAB 的模型規則),進行模型設計。
② 模型靜態分析
使用工具對模型進行分析,包括:
分析模型是否符合建模規范,如:使用 Simulink Verification & Validation 檢查是否符合 MAAB。當現有的規則無法滿足要求時,工程師也可以自己動手定制一些檢查規則項
模型的形式化驗證,如:使用 Simulink Design Verifier 檢查是否有整數溢出,或者是否有死邏輯等
③ 模型評審
評審模型的內部邏輯、評審其是否與模型設計的輸入相一致。也就是評審設計的模型否能正確的實現模型設計的輸入。
④ 模型動態驗證
一般是通過模型在環(MIL)測試的方式對模型進行動態驗證。
測試的目的有兩個:
功能測試:測試“模型設計的輸入”是否被正確的實現了,往往用比如“需求覆蓋度”的覆蓋度指標進行衡量。
模型內部邏輯的正確性:往往用結構化覆蓋度指標進行衡量,比如條件覆蓋(Condition Coverage)、判定覆蓋(Decision Coverage)、MC/DC 覆蓋等。
⑤ 自動代碼生成
進行一定的代碼生成的定制化設置、并使用工具生成代碼。
在這個過程中“用戶的定制化設置”和"生成代碼的工具"都有可能引入錯誤。
因此,在對代碼質量要求很高的場合,會希望做“⑥等效性測試”。
⑥ 等效性測試
通常采用軟件在環(SIL)測試和處理器在環(PIL)測試的方式,用來驗證代碼和模型的一致性。
SIL 是將模型生成的代碼通過 DLL 的方式運行在 Windows 平臺上;PIL 是將生成的代碼運行到目標處理器上,兩種模式使用的編譯器是不同的,SIL 使用的就是 Windows 下的編譯器,比如 Visual Studio C++ 或者 LCC 編譯器,而 PIL 使用的是目標編譯器。
二、模型開發活動,與ASPICE中的過程(SWE.1 ~ SWE.6)是如何映射的呢?
(1) SWE.3 軟件詳細設計和單元構建
模型設計是設計到可以生成代碼的程度,這里面就包括有軟件單元的詳細設計。
基于模型生成代碼,就是軟件單元的構建。
注意:有些時候,當模型本身不足以全面、清晰的呈現設計時,是需要有一些補充的文字信息描述的。
(2) SWE.4 軟件單元驗證
(3) SWE.2 軟件架構設計
有些時候,在模型設計中,會包括SWC之間的交互及接口的設計,這個部分是屬于軟件架構設計的。
(4) SWE.5 軟件集成和集成測試
基于模型開發時,模型中SWC與SWC之間的集成步驟,體現的不明顯。SWC之間的接口的一致性,往往是由建模工具來檢查和保證的。
在"④模型動態驗證"和"⑥等效性測試"時,會測試SWC之間的交互,這個部分的測試屬于模型的集成測試。
-
處理器
+關注
關注
68文章
19813瀏覽量
233622 -
集成電路
+關注
關注
5420文章
11956瀏覽量
367237 -
嵌入式
+關注
關注
5141文章
19542瀏覽量
315184
發布評論請先 登錄
?共達電聲通過ASPICE CL2認證
KaihongOS操作系統FA模型與Stage模型介紹
思必馳語音平臺項目通過ASPICE 1級能力認證
【「基于大模型的RAG應用開發與優化」閱讀體驗】+第一章初體驗
大語言模型開發語言是什么
名單公布!【書籍評測活動NO.52】基于大模型的RAG應用開發與優化
云端語言模型開發方法
法本信息座艙平臺項目通過ASPICE CL2級評估
名單公布!【書籍評測活動NO.49】大模型啟示錄:一本AI應用百科全書
介紹FIR濾波模型的建立,分4個步驟
名單公布!【書籍評測活動NO.41】大模型時代的基礎架構:大模型算力中心建設指南
汽車軟件開發者的必修課:ASPICE 4.0主要特點、優勢及與之前版本的變化之處

評論