汽車越來越依賴電子產(chǎn)品,制造商也越來越多地轉(zhuǎn)向電子產(chǎn)品和軟件方面的創(chuàng)新,以賦予他們競爭優(yōu)勢。一輛現(xiàn)代豪華汽車可能有多達 100 個不同的嵌入式處理器,運行超過 1 億行代碼。有了這么多的軟件,基本上不可能把它弄好。如今,據(jù)估計 60-70% 的汽車召回涉及軟件。
汽車系統(tǒng)中軟件缺陷的風險很高,因為軟件控制著車輛的許多安全關(guān)鍵方面,包括油門、變速箱和制動器。因此,安全關(guān)鍵型汽車軟件的開發(fā)需要嚴格的標準和縝密的方法。
2011 年,ISO 26262 作為開發(fā)安全關(guān)鍵型汽車電子系統(tǒng)的國際標準發(fā)布,其在全球范圍內(nèi)的使用正在增加。它基于更通用的 IEC 61508 安全標準,但引入了針對汽車的改進。本文試圖總結(jié)標準中對嵌入式軟件開發(fā)人員最重要的一些關(guān)鍵方面。它首先簡要介紹了 ISO 26262,并描述了如何使用一般工具來幫助進行認證。接下來描述了工具如何獲得用于認證的資格。上一節(jié)討論的關(guān)鍵要點是,該標準的大部分內(nèi)容都涉及健壯的軟件開發(fā),并且如果使用得當,
ISO 26262
本文檔使用術(shù)語 ISO 26262 或“標準”來表示 ISO 26262 中涉及軟件的部分;特別是 ISO 26262-6:2011 道路車輛 — 功能安全 — 第 6 部分:軟件級別的產(chǎn)品開發(fā)。
ISO 26262 是一個基于風險的標準。雖然它承認不可能將風險降至零,但它要求對風險進行定性評估,并采取措施將風險降至“合理可行的最低水平”(ALARP)。
ISO 26262 中使用的詞匯涉及故障、錯誤和故障,其中“故障可以表現(xiàn)為錯誤……而錯誤最終會導(dǎo)致故障”。要理解的最重要的術(shù)語是“汽車安全完整性等級”或 ASIL。ASIL 是對電子元件風險的分類。D 級代表風險最高的部件,A 級代表最低風險(當風險被認為低于 ASIL A 時,使用附加標簽 QM)。該級別是通過遵循適用于危害的評估過程來分配的。每個潛在危險事件都按其可能造成的傷害嚴重程度進行分類,其中 SIL0 表示沒有傷害,而 SIL3 表示對生命的威脅。評估中的其他重要因素是暴露,范圍從 E0(極低概率)到 E4(非常可能),
ASIL 是通過綜合考慮這些因素來確定的。很明顯,在嚴重性、暴露性和可控性方面得分較高的危險將被指定為 ASIL D。但是,如果發(fā)生概率非常低,則可以將嚴重性較高的危險指定為 ASIL A。
一旦 ASIL 被確定為危險,它就會被減輕危險的安全目標和由此產(chǎn)生的安全要求繼承。然后 ASIL 規(guī)定了軟件的最低測試要求。
使用工具幫助認證
ISO 26262 明確承認軟件驗證工具對于滿足測試要求至關(guān)重要。因此,該標準要求此類工具本身是合格的。需要注意的重要一點是,使用的工具本身可能不完善,這些不完善可能會破壞整個系統(tǒng)的安全案例,因此該標準要求評估工具置信度 (TCL)。這是通過評估兩件事來確定的:
如果測試工具失敗,則無法滿足測試要求的可能性,以及
用戶可以檢測到工具故障的概率
該值的范圍可以從 TCL1(最低置信度)到 TCL3(最高置信度)。兩個因素用于確定 TCL:工具影響 (TI) 和工具錯誤檢測 (TD)。
工具影響用于描述工具中潛在故障的后果。TI1 用于有爭議的工具本身故障 a) 不能導(dǎo)致系統(tǒng)故障,并且 b) 不能防止故障被檢測到。否則使用 TI2。
TD 是對工具報告故障的能力的置信度評估,其中 TD1 表示最低置信度,TD3 表示最高置信度。
一旦評估了工具置信度和錯誤檢測,就可以根據(jù)表 1 中的信息確定 TCL。

例如,考慮一個虛構(gòu)的動態(tài)分析工具 Cov,它可用于測量通過在給定測試套件上運行軟件實現(xiàn)的代碼覆蓋率。假設(shè) ASIL 為 D(風險最高),相應(yīng)的安全要求是測試套件必須達到 100% 的分支覆蓋率。
Cov 的工具影響顯然是 TI2,因為如果它未能正確報告覆蓋率指標,則可能無法滿足代碼覆蓋率要求。
判斷工具錯誤檢測可能很棘手。假設(shè) Cov 有一個缺點,它有時無法檢測代碼的某些部分,因此無法測量這些部分的代碼覆蓋率,并且在這種情況下它沒有發(fā)出警報,而是簡單地從其報告中省略了該信息。沒有經(jīng)驗的工具用戶可能不會注意到遺漏,因此可能會無意中錯過覆蓋目標。在這種情況下,工具可能會被判斷為 TD2。
因此,參考表 1,Cov 的 TCL 將為 TCL2。
工具資質(zhì)
ISO 26262 規(guī)定具有 TCL1 的工具不需要進一步鑒定,但 TCL2 和 TCL3 都要求必須使用至少一種工具鑒定方法,才能正確聲稱該工具合格。四種資格認證方法是:
使用信心增加,這意味著該工具已成功用于類似項目的跟蹤記錄。
對工具開發(fā)過程的評價,意味著工具開發(fā)者一直小心翼翼地遵循一個高質(zhì)量的軟件開發(fā)過程。
軟件工具的驗證,意味著該工具已經(jīng)過嚴格的驗證協(xié)議。
按照安全標準進行開發(fā),即在開發(fā)過程中遵循嚴格的開發(fā)標準(如 ISO 26262 本身)。
對于較高的 ASIL 級別,強烈推薦后兩種方法,因為它們產(chǎn)生高置信度。
工具鑒定并非微不足道,而且通常超出了大多數(shù)嵌入式軟件項目本身的范圍。幸運的是,大多數(shù)關(guān)心 ISO 26262 的工具供應(yīng)商已經(jīng)完成了獲得認證的工作。最好的情況是供應(yīng)商已經(jīng)獲得了專門從事該領(lǐng)域的獨立機構(gòu)的資格。獨立認證意味著供應(yīng)商已成功滿足相當苛刻的要求,不僅讓工具用戶對其質(zhì)量充滿信心,而且為這些用戶節(jié)省了大量的認證工作。
當然,要獲得給定嵌入式系統(tǒng)的 ISO 26262 認證,開發(fā)人員必須自己制作案例,因此他們必須收集所有相關(guān)材料,包括所有工具資格。大多數(shù)供應(yīng)商將提供一個“認證工具包”,其中包含該材料的易于使用的形式。
靜態(tài)分析工具和 ISO 26262
ISO 26262 不要求使用任何特定類別的工具;相反,它指定了代碼應(yīng)該具有的屬性,但通常只列出可用于提供證據(jù)證明代碼確實具有這些屬性的方法。在許多情況下,工具的使用實際上是強制性的(例如,如果不使用現(xiàn)代工具,基本上不可能收集準確的代碼覆蓋率指標)。在其他情況下,可能不清楚是否有可用的工具可以提供幫助。
與靜態(tài)分析工具最相關(guān)的標準部分是第 8 節(jié):軟件單元設(shè)計和實現(xiàn)。靜態(tài)分析工具最明顯的應(yīng)用之一是驗證軟件是否符合第 5.4.7 節(jié)規(guī)定和第 8.4.3.d 節(jié)要求的編碼標準。汽車領(lǐng)域最好的例子當然是 MISRA C。自從早期版本首次發(fā)明以來,發(fā)現(xiàn)此類違規(guī)一直是靜態(tài)分析工具的優(yōu)勢。
最新一代的靜態(tài)分析工具仍然能夠發(fā)現(xiàn)違反編碼標準的情況,但它們還具有更多功能。它們的主要目的是發(fā)現(xiàn)嚴重的編程錯誤,例如那些可能導(dǎo)致程序崩潰或陷入未定義行為的錯誤。這些工具的設(shè)計足夠靈活,可以使用它們來滿足 ISO 26262 的其他一些要求。
最相關(guān)的部分之一是 8.4.4,其中列出了“在源代碼級別進行軟件單元設(shè)計和實現(xiàn)的設(shè)計原則……”以實現(xiàn)包括正確執(zhí)行順序、健壯性甚至代碼可讀性在內(nèi)的屬性。第 8.4.5 節(jié)繼續(xù)列出應(yīng)該用于驗證軟件是否符合要求的技術(shù)。列出的技術(shù)之一是靜態(tài)代碼分析。
ISO 26262 在幾個方面引用了“穩(wěn)健性”的概念。在軟件單元設(shè)計和實現(xiàn)的上下文中,魯棒性被認為包括防止“不可信的值、執(zhí)行錯誤、被零除以及數(shù)據(jù)流和控制流中的錯誤”(8.4.4)。軟件單元測試 (9.4.2) 和軟件集成與測試 (10.4.3) 的穩(wěn)健性特征包括“不存在無法訪問的軟件、有效的錯誤檢測和處理”。
總結(jié)穩(wěn)健性要求的一種合理方式是,應(yīng)盡量減少可預(yù)防的嚴重軟件缺陷的數(shù)量。這正是高級靜態(tài)分析工具的最大優(yōu)勢。
粗略地說,這些工具從解析代碼開始,然后創(chuàng)建整個程序的高保真模型。發(fā)現(xiàn)缺陷的分析通過以各種方式遍歷模型尋找異常來進行。最復(fù)雜的算法通過探索代碼路徑來模擬程序的執(zhí)行,但它們不是使用具體值來表示執(zhí)行狀態(tài),而是使用一組抽象方程來模擬程序?qū)傩浴?/p>
這些工具最重要的特性是,它們可以探索比最復(fù)雜的測試方案所能探索的更多的執(zhí)行路徑。即使代碼已經(jīng)過嚴格的覆蓋要求測試,例如完整的 MCDC(ISO 26262 規(guī)定的最嚴苛的要求),也不能保證完全的路徑覆蓋。原則上,高級靜態(tài)分析工具可以保證 100% 的路徑覆蓋(盡管在實踐中,通常會做出犧牲以實現(xiàn)合理的可擴展性和精度)。因此,他們能夠并且確實發(fā)現(xiàn)了傳統(tǒng)測試遺漏的缺陷。此外,它們可以在開發(fā)周期的早期應(yīng)用,甚至在編寫單元測試之前。眾所周知,越早發(fā)現(xiàn)bug,修復(fù)越便宜,
結(jié)論
任何安全關(guān)鍵編碼標準(尤其是 ISO 26262)的動機都是為了將??軟件故障對 ALARP 的風險降低到盡可能低的程度。這意味著不僅要遵守標準的最低要求,還要應(yīng)用最佳實踐技術(shù)來實現(xiàn)高質(zhì)量。先進的靜態(tài)分析工具的特性使其不僅在遵守法律條文方面非常寶貴,而且對于保持其精神 - 開發(fā)健壯和可靠的軟件。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
20250瀏覽量
252224 -
嵌入式
+關(guān)注
關(guān)注
5198文章
20443瀏覽量
333990 -
汽車電子
+關(guān)注
關(guān)注
3045文章
8956瀏覽量
172800
發(fā)布評論請先 登錄
安路科技榮獲ISO 26262及IEC 61508雙重認證
??灯嚺c森思泰克通過ISO 26262汽車功能安全ASIL D流程認證
汽車軟件質(zhì)量躍遷的系統(tǒng)性路徑:基于ISO 26262標準的單元測試體系重構(gòu)與中日實踐深度對比(2026學術(shù)研究報告)
FCC認證周期一般多久?
FCC認證周期一般多久
蘇州翰霖榮獲DEKRA德凱ISO 26262 ASIL-D認證
芯進電子榮獲ISO 26262功能安全管理體系A(chǔ)SIL D認證
元視芯四款車載產(chǎn)品榮獲SGS ISO 26262 ASIL-B認證
格見半導(dǎo)體榮獲ISO 26262 ASIL-D功能安全流程認證證書
小鵬汽車斬獲兩項國際頂級安全認證 ISO 26262功能安全流程認證和ISO 21448預(yù)期功能安全(SOTIF)流程認證
美芯晟獲得ISO 26262功能安全管理體系A(chǔ)SIL D認證證書
ISO 26262標準及如何使用一般工具來幫助進行認證
評論