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