開(kāi)發(fā)符合 MISRA C 的軟件需要規(guī)劃、文檔和工具,以最好地執(zhí)行指南的意圖和精神。MISRA C:2023 修正案 2012 (AMD4) 和 MISRA C:4 的 2023 版用于開(kāi)發(fā)安全和安保關(guān)鍵型軟件系統(tǒng),解決了 C 標(biāo)準(zhǔn)的最新兩個(gè)版本(ISO/IEC 9899:2011 和 2018)中引入的并發(fā)功能,并將所有 MISRA C 版本合并到一個(gè)文檔中。
MISRA C不是編碼風(fēng)格指南,而是一套規(guī)則和指令,用于最小化或消除已知危險(xiǎn)的編碼實(shí)踐。鑒于對(duì)安全和安保關(guān)鍵型系統(tǒng)的這種重要性,AMD4 和 MISRA C:2023 版本使開(kāi)發(fā)人員有機(jī)會(huì)重新審視其流程,以改進(jìn)對(duì)有效和高效地證明 MISRA 合規(guī)性的支持。
MISRA 合規(guī)性:2020 指南指出,合規(guī)性聲明必須確定:
使用規(guī)范的軟件開(kāi)發(fā)過(guò)程
應(yīng)用的確切準(zhǔn)則
執(zhí)法方法的有效性
與準(zhǔn)則的任何偏差程度
在項(xiàng)目之外開(kāi)發(fā)的任何軟件組件的狀態(tài)
新老制造商必須確定如何在不犧牲開(kāi)發(fā)速度的情況下將MISRA規(guī)則和指令集成到其流程中。
圖 1:來(lái)自 LDRA 工具套件的 MISRA 合規(guī)性報(bào)告示例(來(lái)源:LDRA)
MISRA C:2023合規(guī)框架
MISRA C 指南沒(méi)有指定實(shí)現(xiàn)合規(guī)性的確切流程和工具,因?yàn)橛涗洿祟愐髸?huì)不公平地限制嵌入式開(kāi)發(fā)團(tuán)隊(duì)可以做的事情。相反,MISRA 合規(guī)性:2020 指南提供了“在聲明 MISRA 合規(guī)性時(shí)軟件開(kāi)發(fā)過(guò)程中必須涵蓋的內(nèi)容”的定義,作為捕獲最重要活動(dòng)的框架。
MISRA 指南涵蓋了許多流程和合規(guī)性要點(diǎn)。在這里,我們將介紹需要更多思考的活動(dòng),這些活動(dòng)將對(duì)希望簡(jiǎn)化合規(guī)性工作的開(kāi)發(fā)團(tuán)隊(duì)產(chǎn)生最大的影響。
定義規(guī)范的軟件開(kāi)發(fā)流程
MISRA 合規(guī)性:2020 指南指出,“MISRA 指南旨在在記錄的軟件開(kāi)發(fā)過(guò)程框架內(nèi)使用”,并且“遵守 MISRA 指南必須是代碼開(kāi)發(fā)階段的一個(gè)組成部分,在提交代碼以供審查或單元測(cè)試之前,需要滿足合規(guī)性要求。
將合規(guī)性集成到新的或現(xiàn)有的開(kāi)發(fā)流程中,首先要定義如何在生命周期的每一步驗(yàn)證 MISRA 規(guī)則和指令。這些活動(dòng)會(huì)影響開(kāi)發(fā)人員培訓(xùn)、合規(guī)性項(xiàng)目的創(chuàng)建和管理,以及合規(guī)性測(cè)試的運(yùn)行方式。
開(kāi)發(fā)團(tuán)隊(duì)?wèi)?yīng)以足夠全面的方式正式記錄這些過(guò)程,以確保在開(kāi)發(fā)生命周期的每個(gè)階段完全實(shí)現(xiàn)所有軟件需求,并且測(cè)試活動(dòng)涵蓋所有代碼。此文檔必須包括驅(qū)動(dòng)開(kāi)發(fā)任務(wù)的所有決策,包括培訓(xùn)、報(bào)告、開(kāi)發(fā)工具鏈的選擇和運(yùn)行時(shí)配置。
在 MISRA C:2023 上培訓(xùn)開(kāi)發(fā)人員
通過(guò)正式培訓(xùn),開(kāi)發(fā)人員可以花更少的時(shí)間試圖自己了解MISRA合規(guī)性,而將更多的時(shí)間花在交付代碼上。MISRA 合規(guī)性:2020 指南建議包含有關(guān)嵌入式應(yīng)用程序使用 C 語(yǔ)言的概念以及安全和安保關(guān)鍵系統(tǒng)的細(xì)節(jié)。
除了代碼之外,開(kāi)發(fā)人員還應(yīng)該了解他們選擇的開(kāi)發(fā)環(huán)境(從編譯器工具鏈到靜態(tài)分析工具)的安全和安保影響。隨著 MISRA C:2023 包含針對(duì)復(fù)雜多線程系統(tǒng)的新指南,刷新開(kāi)發(fā)人員對(duì)他們的選擇如何影響 MISRA 指南的執(zhí)行以及如何減少在并發(fā)應(yīng)用程序中引入違規(guī)的可能性的理解變得更加重要。
靜態(tài)分析工具為課堂培訓(xùn)提供了有效的補(bǔ)充,因?yàn)樗鼈冊(cè)谡n程結(jié)束后很長(zhǎng)時(shí)間內(nèi)提供了全面和實(shí)時(shí)的微學(xué)習(xí)形式。靜態(tài)分析結(jié)果在編寫(xiě)代碼時(shí)強(qiáng)化了 MISRA 規(guī)則和指令,在新手和有經(jīng)驗(yàn)的開(kāi)發(fā)人員的頭腦中保持恒定的意識(shí)水平。
建立偏差流程
MISRA合規(guī)性要求代碼供應(yīng)商和收購(gòu)方就規(guī)則和指令的解釋達(dá)成一致。這種一致性至關(guān)重要,因?yàn)楹弦?guī)性的概念因項(xiàng)目而異,具體取決于它們各自的要求和特征。部分一致性來(lái)自建立一個(gè)管理偏離指南的流程,其中證明合規(guī)性可能不切實(shí)際或不可能遵循某個(gè)項(xiàng)目。
MISRA 合規(guī)性:2020 指南將偏差記錄定義為包含以下信息:
違反的準(zhǔn)則
對(duì)可以接受違規(guī)行為的情況的描述
需要偏差的原因
解釋上下文和語(yǔ)言問(wèn)題的背景信息
一套要求,包括相關(guān)的風(fēng)險(xiǎn)評(píng)估程序和預(yù)防措施
使用自動(dòng)化支持合規(guī)性活動(dòng)
自動(dòng)化減少或消除了MISRA合規(guī)活動(dòng)中的手動(dòng)工作和人為錯(cuò)誤的可能性。為了從自動(dòng)化工具中獲得最大收益,開(kāi)發(fā)團(tuán)隊(duì)?wèi)?yīng)按照 MISRA 合規(guī)性:2020 指南的建議,在軟件生命周期的早期部署它們:
“一個(gè)試圖在其生命周期后期檢查合規(guī)性的項(xiàng)目可能會(huì)花費(fèi)大量時(shí)間重新編碼、重新審查和重新測(cè)試,而且這種返工很容易意外引入缺陷?!?/p>
為了簡(jiǎn)化合規(guī)性測(cè)試,MISRA C:2012引入了兩種規(guī)則分類:
對(duì)于分析技術(shù)可以提供結(jié)論性驗(yàn)證的規(guī)則,可決定
無(wú)法確定無(wú)法驗(yàn)證保證的情況
將可判定規(guī)則與MISRA的建議配對(duì),使用靜態(tài)分析進(jìn)行驗(yàn)證,可以為自動(dòng)化合規(guī)性測(cè)試提供高效而全面的解決方案。
MISRA C:2023 合規(guī)性始于堅(jiān)實(shí)的戰(zhàn)略
將 MISRA 合規(guī)性集成到開(kāi)發(fā)流程中有助于改善代碼的安全性。這種集成需要了解 MISRA C 規(guī)則和指令,團(tuán)隊(duì)將這些規(guī)則和指令嵌入到開(kāi)發(fā)生命周期的各個(gè)方面。
從培訓(xùn)到自動(dòng)化工具,MISRA合規(guī)流程應(yīng)使開(kāi)發(fā)人員能夠最大限度地減少已知危險(xiǎn)的編碼實(shí)踐,并支持代碼供應(yīng)商和收購(gòu)方之間的期望一致。預(yù)先采用這些目標(biāo)的組織將比那些等待的組織更有可能獲得MISRA合規(guī)性的成功。
審核編輯:郭婷
-
amd
+關(guān)注
關(guān)注
25文章
5484瀏覽量
134372 -
嵌入式
+關(guān)注
關(guān)注
5088文章
19158瀏覽量
306484 -
自動(dòng)化
+關(guān)注
關(guān)注
29文章
5603瀏覽量
79474
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論