如何為支持ISO 26262選擇符合AUTOSAR C++的正確工具
希望通過應(yīng)用AUTOSAR C++編碼準(zhǔn)則來簡化ISO 26262合規(guī)性工作的團(tuán)隊(duì),如果他們在選擇用于項(xiàng)目的靜態(tài)分析工具時掌握了充分的信息,將會更加成功。閱讀有關(guān)交易的一些技巧。
多年來一直占據(jù)著汽車領(lǐng)域主導(dǎo)地位的C語言已不足以滿足日益增長的汽車軟件體系結(jié)構(gòu)的復(fù)雜性,并且由于面向?qū)ο笤O(shè)計(jì)的要求,C++對于許多汽車團(tuán)隊(duì)來說是一種自然的選擇。但是C++是一門復(fù)雜的語言,需要付出大量努力才能確保可預(yù)測性、安全性和安全性。
汽車功能安全標(biāo)準(zhǔn)ISO 26262提供了有關(guān)軟件開發(fā)和V&V流程的一些指導(dǎo),但在語言結(jié)構(gòu)層面上并沒有深入探討。為了獲得這樣的指導(dǎo),組織轉(zhuǎn)向諸如MISRA C/C++或AUTOSAR C++之類的編碼標(biāo)準(zhǔn)。在此文中,我將分享如何使用配置有AUTOSAR C++ 14符合性檢查器的靜態(tài)分析工具來符合ISO 26262。
如何使用AUTOSAR C++簡化ISO 26262的合規(guī)性
遵守功能性安全標(biāo)準(zhǔn)(例如ISO 26262)需要付出巨大的努力,并且從一開始就需要成為項(xiàng)目的組成部分。即使在軟件組件的情況下,合規(guī)性也需要在需求收集,計(jì)劃和實(shí)施過程中進(jìn)行特定的活動,并且絕對不能“稍后添加”。
ISO 26262指定了達(dá)到標(biāo)準(zhǔn)要求的方法的集合。要聲明其合規(guī)性,用戶必須提供證據(jù)證明所有適用的要求和方法均已實(shí)施。并非所有方法都適用于所有人。該方法的適用性取決于汽車安全完整性等級(ASIL),這是標(biāo)準(zhǔn)中定義的風(fēng)險(xiǎn)分類(ASIL A代表最低等級,ASIL D代表最高汽車危害等級)??梢詮?qiáng)烈推薦、推薦或中性的方法。
團(tuán)隊(duì)在嘗試遵守該標(biāo)準(zhǔn)時通常面臨的挑戰(zhàn)是如何實(shí)施為其流程推薦的方法。有關(guān)如何遵守特定方法或要求的決定通常取決于團(tuán)隊(duì)經(jīng)驗(yàn)。在某些簡單情況下,手動操作和檢查可能是一個答案,但是在大多數(shù)情況下,團(tuán)隊(duì)正在嘗試尋找可以自動化所需方法的工具。
必須通過稱為工具認(rèn)證的正式流程來批準(zhǔn)用于符合ISO26262的工具以用于預(yù)期用途。鑒定軟件工具的目的是提供軟件工具適用性的證據(jù),以便在開發(fā)與安全相關(guān)的項(xiàng)目或元素時使用。這可能是一項(xiàng)時間和資源消耗的任務(wù)。(如果您使用的是Parasoft C/C++test,則它具有自動化的鑒定套件來支持,該套件簡化了鑒定過程,并包括TüVSüD認(rèn)證,在許多情況下足以進(jìn)行工具鑒定。
AUTOSAR C++編碼標(biāo)準(zhǔn)如何提供幫助?
遵循像AUTOSAR C++這樣的編碼標(biāo)準(zhǔn),是滿足ISO 26262某些要求的一種廣為接受的方法。AUTOSARC++ 14提供了可追溯性表,這些表將ISO 26262的原理和建議映射到適當(dāng)?shù)木幋a準(zhǔn)則。該映射主要涵蓋了ISO 26262第6部分的第8節(jié),并極大地簡化了實(shí)現(xiàn)符合標(biāo)準(zhǔn)中相應(yīng)方法和要求的過程。
但是,僅AUTOSAR C++ 14編碼指南不足以實(shí)現(xiàn)軟件組件符合ISO 26262的要求。該標(biāo)準(zhǔn)中的某些方法無法應(yīng)用于AUTOSAR準(zhǔn)則,例如建議使用“樣式指南的使用”的方法1g或建議使用“命名約定的使用”的方法1h。AUTOSAR C++ 14不包含任何樣式指南或命名約定。但是,這兩種方法都可以使用Parasoft C/C++test輕松實(shí)現(xiàn),該軟件包括3000多個靜態(tài)分析檢查器(包括代碼樣式檢查器),并提供了用于創(chuàng)建自定義靜態(tài)分析規(guī)則的模塊。通常,標(biāo)準(zhǔn)中無法通過靜態(tài)分析實(shí)現(xiàn)的方法需要其他測試技術(shù),例如故障注入測試。
滿足AUTOSAR C++ 14要求的3個關(guān)鍵功能
因此,這當(dāng)然使我們能夠找到合適的工具來簡化合規(guī)性。將編碼標(biāo)準(zhǔn)合規(guī)性流程引入團(tuán)隊(duì)開發(fā)工作流程并非易事。因此,選擇一種有助于實(shí)現(xiàn)合規(guī)性而又不增加過多開銷且不需要其他手動程序的工具非常重要。選擇靜態(tài)分析解決方案時,以下幾點(diǎn)是重要的決策因素。
1.本標(biāo)準(zhǔn)涵蓋的編碼指南
AUTOSAR C++ 14定義了大量指南。目前,AUTOSAR編碼標(biāo)準(zhǔn)的最新版本包含大約400條準(zhǔn)則,其中350條準(zhǔn)則可以通過靜態(tài)分析來實(shí)施。支持如此多的準(zhǔn)則對靜態(tài)分析工具供應(yīng)商來說是一個挑戰(zhàn),并不是市場上所有可用的靜態(tài)分析工具都能充分滿足標(biāo)準(zhǔn)的要求。(無恥的插件:在這種情況下,Parasoft C/C++test是領(lǐng)先的解決方案,涵蓋了數(shù)量最多的AUTOSAR C++準(zhǔn)則,并且每天都在繼續(xù)實(shí)施。)
2.支持?jǐn)?shù)據(jù)和流分析技術(shù)
AUTOSAR C++編碼標(biāo)準(zhǔn)中定義的準(zhǔn)則具有不同級別的復(fù)雜性。一些簡單的準(zhǔn)則可以使用相對簡單的靜態(tài)分析技術(shù)來實(shí)施,但是有些準(zhǔn)則則需要復(fù)雜的數(shù)據(jù)和控制流分析,以模擬所分析源代碼中的路徑并確定是否違反了給定準(zhǔn)則。
您選擇的靜態(tài)分析工具必須評估代碼中的路徑,以正確確定用于訪問容器中數(shù)據(jù)的索引是否在正確范圍內(nèi)。市場上的許多商業(yè)工具和大多數(shù)開源工具都對此類問題進(jìn)行了非常基本的流程分析,實(shí)際上,它們要么錯過了代碼中的問題,要么報(bào)告了大量的誤報(bào),這浪費(fèi)了大量的時間。審查并殺死生產(chǎn)力。在對靜態(tài)分析工具進(jìn)行基準(zhǔn)測試時,我強(qiáng)烈建議您特別注意比較結(jié)果,以獲取更復(fù)雜的準(zhǔn)則,這需要流量分析技術(shù)。
3.支持工具鑒定
盡管AUTOSAR C++并沒有明確要求工具資格來批準(zhǔn)使用靜態(tài)分析解決方案,但I(xiàn)SO 26262卻需要。因此,當(dāng)計(jì)劃使用AUTOSAR C++簡化對ISO 26262的遵從時,建議選擇一種靜態(tài)分析解決方案,該解決方案為最終用戶提供適當(dāng)?shù)淖C書和資格認(rèn)證工具。
總結(jié)
遵循像AUTOSAR C++ 14這樣的編碼標(biāo)準(zhǔn)可以幫助組織達(dá)到ISO 26262的合規(guī)性,因?yàn)镮SO 26262標(biāo)準(zhǔn)中定義了多種方法和要求,可以通過符合AUTOSAR編碼準(zhǔn)則來滿足這些方法和要求。AUTOSAR C++ 14提供了專用的可追溯性表,這些表演示了ISO 26262要求和編碼準(zhǔn)則之間的映射,希望通過應(yīng)用AUTOSAR C++編碼準(zhǔn)則來簡化ISO 26262遵從性工作的團(tuán)隊(duì)如果選擇了充分的信息后會更加成功。用于項(xiàng)目的靜態(tài)分析工具。