汽車嵌入式軟件開發中,基于模型開發的方法非常普遍,經常被客戶及一些評估師問到的問題是:
基于模型開發,要包括哪些活動?
這些活動與 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文章
20255瀏覽量
252344 -
集成電路
+關注
關注
5452文章
12572瀏覽量
374581 -
嵌入式
+關注
關注
5198文章
20449瀏覽量
334116
發布評論請先 登錄
軟通動力旗下軟通睿聯通過ASPICE CL2國際認證
技術資訊 I 圖文詳解 Allegro X PCB Designer 中的 3D 模型映射
【內測活動同步開啟】這么小?這么強?新一代大模型MCP開發板來啦!
邊聊安全 | ASPICE與功能安全流程體系融合
華銳捷智能座艙以全優成績通過ASPICE L2級認證
最新人工智能硬件培訓AI 基礎入門學習課程參考2025版(大模型篇)
客戶案例 | 某新能源車企依托Atlassian工具鏈+龍智定制開發服務,打造符合ASPICE標準的研發管理體系
關于基于模型開發的活動及與 ASPICE 過程的映射介紹及發展
評論