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