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