ISO 26262、MISRA 和其他標準旨在通過為在軟件開發過程中實施工程概念提供基礎來規范汽車應用程序的軟件開發。一些組織將遵守 ISO 26262 和其他標準視為增加開銷的負擔,但事實是,與軟件缺陷相關的失敗成本遠遠高于確保質量的成本。
什么是 ISO 26262,我為什么要關心?
ISO 26262 是一項功能安全標準,旨在應用于汽車電氣和/或電子 (E/E) 系統的軟件開發。它旨在通過提供可行的要求和流程,將與安全功能軟件相關的風險降低到可容忍的水平,例如:
汽車應用的功能安全管理
汽車應用的概念階段
用于汽車應用的系統級產品開發
軟件架構設計
汽車應用硬件級別的產品開發
軟件單元測試
汽車應用軟件級別的產品開發
生產、運營、服務和退役
支持過程:分布式開發中的接口、安全管理要求、變更和配置管理、驗證、文檔、軟件工具的使用、軟件組件的認證、硬件組件的認證和使用證明的論證
面向汽車安全完整性等級 (ASIL) 和面向安全的分析
需要明確的是,ISO 26262 不是強制性的(盡管考慮到最近所有圍繞汽車安全缺陷的頭條新聞,它可能成為強制性的)。法律只是規定您應該根據當前的最佳實踐來開發軟件——在汽車領域是 ISO 26262。ISO 26262 帶來的是基于一些軟件開發最佳實踐多年研究的操作指南。該領域最有經驗的人。
ISO 26262 的美妙之處在于,盡管它旨在用于安全關鍵功能,但原則上它可以應用于您關心的任何軟件組件。如果您認為您的集成信息娛樂系統是市場上的業務差異化因素,請根據 ISO 26262 進行開發,并確保它是最先進的系統,值得升級到高級模型。
MISRA 呢?
ISO 26262 類似于說,如果你想活得更久,就應該鍛煉和飲食。但是,如果您的運動知識僅限于舉起重物,或者您對什么是好食物的了解是早上的生雞蛋,那該怎么辦?
這就是 MISRA 標準的用武之地。適用于 C 和 C++ 的 MISRA 標準系列,包括 1998 年、2004 年和最近的 2012 年版本,告訴軟件工程師在編寫代碼時什么是好的做法,什么是不好的做法。回到我們的比喻,MISRA 告訴您哪些食物對您有益,以及什么是安全、可靠的鍛煉。
如何實施 ISO 26262 和 MISRA?
實現對 ISO 26262 和 MISRA 的合規性首先要以政策的形式承諾最佳實踐。需要明確的是,政策不是建議或推薦行為的指導方針。策略是一種自動可執行的聲明,以通俗易懂的語言規定軟件應該如何開發——以及為什么應該以這種方式開發。該政策必須明確聲明:
必須根據 ISO 26262 定義的軟件開發生命周期 (SDLC) 開發軟件
如果下游分包商不能提供足夠的可追溯性證明符合標準,則不會接受代碼
您的開發策略應該有類似的語言來指定符合 MISRA 編碼指南。這為制造商提供了另一種形式的驗收測試,他們可以執行以驗證從下游供應商收到的軟件。
圖 1: ISO 26262 定義的軟件開發生命周期 (SDLC)。
從功能上講,這意味著應用開發測試活動,例如靜態代碼分析、單元測試、同行評審和運行時錯誤檢測,以確保根據這些策略開發代碼。市場上有幾種工具以靜態分析規則的形式實施 MISRA 指南(完全披露,我們為銷售這些工具的公司工作)。每個工具都有自己的執行編碼標準的方法,因此您需要研究適合您的環境、預算等的最佳工具。
靜態分析
這種做法已經存在了很長時間,并且仍然是一種廉價(就專用開發資源而言)的方式來挑選代碼中容易實現的成果。盡管由于維護、參數化、極端情況和需要人類智能的活動的其他方面,有許多自動測試生成解決方案,單元測試在資源方面要昂貴得多。也就是說,失敗的成本仍然大大超過了測試的成本。
同行代碼審查
此過程要求軟件工程師提交他們的代碼以作為開發過程的常規部分進行審查,并且被認為是確保軟件質量的最有效活動。與單元測試一樣,此活動需要您花費資源,但如果它可以防止需要召回的缺陷,則成本可以忽略不計。
運行時錯誤檢測 (RED)
RED 監控代碼執行,以便梳理出僅在運行時出現的構造,并且應該作為驗證和驗證過程來實現。RED 可幫助您找到導致競爭條件、異常、資源和內存泄漏、安全漏洞和其他難以發現的缺陷的代碼。簡而言之,它是軟件的儀表,就像儀表和記錄儀是硬件的儀表一樣。
覆蓋分析
如果沒有衡量測試覆蓋了多少代碼,您將無法知道您是否進行了足夠的測試。覆蓋分析本身并沒有什么作用,但是當與單元測試等活動結合使用時,覆蓋分析可以提供有關您的軟件的寶貴信息。
結論
隨著我們曾經簡單的產品變得“更智能”,軟件無處不在,并將繼續發揮更大的作用。在汽車開發中尤其如此,這在確保嵌入式應用的安全性和可靠性方面提出了獨特的挑戰。汽車將安全關鍵軟件與業務差異化軟件相結合,所有這些軟件都是以高度分布式的方式開發的。
底線是汽車應用的端到端測試過于昂貴和復雜。另一方面,軟件故障的成本應該成為尋找降低風險方法的動力。通過應用 ISO 26262 和 MISRA 等汽車軟件開發標準,汽車制造商將自己置于最佳位置,以避免與錯誤軟件相關的風險。
作者:Arthur Hicken,Adam Trujillo
審核編輯:郭婷
-
汽車電子
+關注
關注
3026文章
7941瀏覽量
166914 -
C++
+關注
關注
22文章
2108瀏覽量
73623
發布評論請先 登錄
相關推薦
評論