汽車行業的電動化、智能化和網聯化的趨勢對管理各種電子控制單元(ECU)的軟件復雜度與保證其功能安全提出了更高的要求。
現代中高端的汽車上約有 50 個以上的 ECU 及總量超過 1 億行代碼的嵌入式軟件,如何對 ECU 的軟件質量進行有效管理是擺在管理者面前的緊迫課題。本文將闡述軟件質量目標(SQO)的概念,與大家一起探討如何通過軟件質量目標管理 ECU 的軟件質量。
軟件質量目標
軟件質量目標(SQO)定義了一系列來源于行業實踐總結的可度量的代碼指標及達到相應質量要求的閾值。軟件質量目標可以定義為不同的等級,隨著軟件開發階段的進行而動態調整。其組成部分包括軟件質量計劃、詳細設計描述、代碼度量信息、代碼規范要求、運行錯誤檢查、數據流分析結果等,下圖案例說明了不同 SQO 等級包含的內容范圍:
軟件質量計劃
軟件質量計劃應由供應商提供,包括為了實現主機廠所要求的軟件質量所采取的方法、工具以及團隊和項目本身的信息。目的在于說明軟件質量的保證工作由誰實施以及如何實施。以下是軟件質量計劃包含的內容示例:
各軟件模塊的質量等級及合理性說明
軟件交付計劃及對應的質量目標
項目的開發團隊組成
開發工具清單和使用方法
軟件問題狀態說明定義(如已修復、待調查、待修改、待審查等)
軟件問題等級說明定義(如高、中、低等)
......
詳細設計描述
詳細設計描述提供了軟件應用的架構和成熟度信息,包括:
應用級信息(如軟件模塊清單及其相互關系、源文件和頭文件數目等)
模塊級信息(如源文件清單和頭文件清單等)
文件級信息(如版本信息、來源方式、代碼行數等)
代碼度量信息
代碼度量信息用來幫助主機廠理解軟件模塊的特性以及評估軟件模塊的質量。主機廠和供應商雙方應在項目開始前選定度量信息,供應商應在軟件交付時提交度量指標符合或背離說明報告。常用的代碼度量信息包括:
注釋密度
圈復雜度
函數的參數數目
函數中的調用次數
函數的被調用次數
遞歸次數
路徑數目
......
代碼規范符合
遵循代碼規范是保證代碼可讀性和防范代碼出錯的重要舉措,汽車行業一般選用 MISRA(汽車工業軟件可靠性聯合會)的編碼規范,值得一提的是 MISRA 的編碼規范分為針對手寫代碼和針對自動代碼的兩種規范,在應用時應加以選擇。對不同的軟件質量目標定義不同的編碼規范子集是推薦的應用方式,供應商應提交所適用的編碼規范子集的符合性證明或背離說明報告。以下是編碼規范符合性的統計說明案例。
運行錯誤分析
運行錯誤相對于編譯錯誤或鏈接錯誤而言,即通常所說的代碼在運行過程中存在的 bug。其分析結果分為確定的運行錯誤、潛在的運行錯誤、安全代碼操作和不可達的代碼操作。供應商應聲明在開發階段所采用的方法和工具用以確保代碼中不存在運行錯誤或對發現的運行錯誤加以審查說明。對于潛在的運行錯誤(多由輸入數據的取值范圍引起),需要定義對應不同 SQO 等級的人工審查率,如下圖所示:
數據流分析
數據流分析指用來獲取有關數據如何沿著程序執行路徑流動的相關信息的技術,其目的是提供一個過程(或一段程序)如何操縱其數據的全局信息。數據流分析結果包括:
模塊調用樹
全局變量的讀/寫清單
共享變量及關聯進程清單
功能安全符合和工具支持
ISO 26262-6 定義了為確保軟件質量而在軟件開發過程的各階段所應采用的方法,可以通過 SQO 的實施加以實現,后續有機會再以專文敘述。SQO 可以在靜態代碼分析工具 Polyspace 中設定并與分析結果比較,從而確認供應商的軟件是否達到各階段交付標準,下圖顯示了 SQO 設定方式和 MISRA 規范的比較結果。
綜上所述,軟件質量管理圍繞軟件質量目標進行,其中可度量性是軟件質量目標的基礎要求;與不同開發階段相對應的階梯式目標體現了軟件開發過程的特點;而將其內化到工具的支持則保證了軟件質量目標不僅僅停留在文檔要求上而具有了現實可操作性。
-
ecu
+關注
關注
14文章
892瀏覽量
54745
原文標題:汽車行業如何進行軟件質量管理?
文章出處:【微信號:IV_Technology,微信公眾號:智車科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論