MISRA(汽車產業軟體可靠性協會)提供相關指引,以協助開發安全且可靠的電子系統。這些指引適用於嵌入式控制系統、軟體密集型應用以及獨立軟體。
MISRA 是汽車製造商、零組件供應商及工程顧問公司共同推動的計畫。該計畫由一個指導委員會負責管理,成員包括福特汽車公司、賓利汽車、捷豹路虎、HORIBA MIRA、ZF TRW 以及利茲大學。
儘管 MISRA 起源於汽車產業,但已獲得航空航天、生物醫學及金融等其他市場的廣泛認可。它在嵌入式系統、物聯網及工業控制系統領域同樣被廣泛採用。雖然符合 MISRA 規範並不能保證軟體完全沒有品質或安全問題,但它確實能產出更穩健、更易維護且更具可移植性的程式碼。
MISRA 專注於程式碼安全標準。 ISO 26262 專注於功能安全措施,並建立稱為 ASIL 的風險等級。
MISRA 指南中最為重要的,是針對使用 C 及 C++ 程式語言開發的專案所制定的。其中包括 MISRA C 2004、MISRA C++ 2008 以及 MISRA C 2012 標準。
MISRA 準則分為「強制性」、「必要性」及「建議性」三類。符合規範的要求是不得違反任何「強制性」準則。然而,若能提供書面理由,則允許在「必要性」準則上出現某些違規情況。此類偏離僅在以下情況下才被允許:既不影響安全與防護,且無可接受的替代方案。例如,無法修改的第三方自訂程式碼即屬此類。
如今,從防鎖死煞車系統、動力輔助轉向系統,到導航與資訊娛樂系統,一切皆由軟體控制。這些系統均來自不同的供應商。而且軟體供應鏈正變得越來越長——每個最終產品所使用的程式碼,都是由多家供應商共同貢獻而成的。
MISRA C/C++ 已成為汽車系統的事實上的編碼標準。然而,它既未涵蓋 C++ 語言的最新改進,也未能反映最新安全漏洞與弱點所帶來的教訓。
2019 年 1 月,MISRA 宣布將把AUTOSAR 指南與其既有的最佳實務結合,以制定一套適用於安全相關 C++ 開發的統一「標準」語言子集。這套由 MISRA 主導的指南將納入該語言的最新版本(AUTOSAR 的 C++17),並在後續版本(AUTOSAR 的 C++20)推出時一併納入。
整合的 MISRA–AUTOSAR C++ 規則集將提供一套基於共同規則的統一產業標準,成為供應鏈中所有開發人員的單一參考依據。
當今的汽車包含超過 1 億行程式碼。在未來十年內,一輛普通汽車的程式碼行數可能達到 3 億行。MISRA 程式碼編寫準則有助於開發出具備以下特性的程式碼:
MISRA 合規性不僅定義了編碼準則,更界定了軟體從供應商移交至採購方時,其軟體品質的評估標準。該合規流程不僅紮實(基於 C/C++ 編碼標準),且極具實用性,並闡明了在必要時應如何處理規則的例外情況。
在軟體定義車輛的時代, 新思科技 是加速您汽車創新進程的關鍵。