如何更順暢地走向MISRA合規之路?

 

汽車工業軟件可靠性協會(MISRA)的「關鍵系統中使用C語言的指南」(稱爲MISRA C 2012)是對C語言子集的定義,旨在最大限度地減小潛在的錯誤、安全漏洞和致使程序失敗或嚴重錯誤的錯誤。雖然最初是爲汽車系統建立的,但該指南已被許多其餘行業的安全關鍵型應用所採用。在全部狀況下,肯定合規性(在供應商/客戶關係中愈來愈多的要求)是複雜和耗時的。瀏覽器

市場上有許多工具能夠報告錯誤,代表代碼什麼時候違反了指南,但不多有工具可以簡化證實合規性所需的報告和文檔流程——更不用說將指南實施到你的軟件開發流程中了。爲了簡化在整個產品生命週期中實現、記錄和維護MISRA合規性的整個過程,咱們設計了咱們的報告和分析平臺(Parasoft DTP),與咱們的CC++測試工具C/C++test一塊兒帶來自動化和協助。在這篇文章中,我想要更好地解釋你能夠如何一塊兒利用這些工具,使MISRA的合規性再也不那麼頭疼。安全

坎坷的合規之路

合規是一種二元狀態——代碼要麼合規,要麼不合規,MISRA準則但願全部的代碼都能符合標準中的指令和規則。所以,在一個大型複雜的項目中實現徹底合規性並非一件容易的事情。除了挑戰以外,許多供應商/客戶關係還要求經過文件證實對標準的遵照。工具

爲了更好地明確實施MISRA編碼指南的程序,MISRA2016年發佈了合規性指南,以幫助開發組織實現和記錄合規性。爲了經過自動化來簡化這一過程,須要如下幾點性能

  • 高水平、實時地查看項目總體狀態,以確保合規性被嵌入到開發過程當中。
  • 自動建立符合MISRA合規準則的報告MISRA Compliance:2016),以減小生成證實文件的負擔。
  • 快速、簡單的工做流程,用於調查違規行爲,並對補救行動進行優先排序,以簡化使項目「走上正軌」的過程,實現合規性。

考慮到這些準則,咱們設計了報告和分析平臺(DTP),以定製和擴展C/C++test的部署,提供智能分析,讓利益相關者更深刻地瞭解測試覆蓋率和變動引入的風險。對於MISRA標準,DTP簡化了實現、執行和記錄合規性的過程,同時證實了功能、性能和安全性。測試

MISRA合規性儀表板

項目當前的合規狀態是一個重要的衡量標準,衡量合規性的各類細枝末節也是如此。DTP提供了一個全面的MISRA合規性儀表盤,能夠對項目進行現場評估。這種高層次的視圖對管理人員和開發人員都很重要,它爲管理人員提供了一個一目瞭然的合規性視圖,併爲開發人員提供了一個實現合規性進展的起點,有助於肯定工做的優先級。編碼

1DTPMISRA合規性儀表板示例。spa

MISRA合規性套包

除了MISRA合規儀表盤,Parasoft還提供了一個完整的合規包,專門針對MISRA的合規文件要求。DTPMISRA合規包根據MISRA Compliance:2016指南提供了自動文檔,大大減小了向認證機構證實合規性所需的時間和精力。這些功能包括設計

準則執行計劃

MISRA準則執行計劃展現瞭如何對每條MISRA準則進行覈查。在大多數狀況下,這顯示了MISRA指令或規則與相關代碼分析規則或DTP功能之間的聯繫。請看下面的例子3d

2DTPMISRA準則執行計劃報告的一個例子。blog

準則從新分類計劃

MISRA準則從新分類計劃用於傳達商定的準則的重要性,做爲供應商/客戶關係的一部分。該文件展現瞭如何針對當前項目對每條準則進行具體分類。強制性和要求的準則不能降級到較低的級別;可是,一個項目能夠決定將要求的或諮詢的準則升級到更嚴格的設置,諮詢的能夠不被採納(即,使其成爲不須要遵照的準則)。請看下面一個從新分類計劃的例子

3DTPMISRA從新分類計劃報告的一個例子。

誤差報告

MISRA偏離報告記錄了偏離準則的行爲,並提出適當的理由。任什麼時候候,只要發現了違反規則的行爲,但容許其繼續存在,就必須記錄在誤差報告中。在大多數狀況下,這些都是代碼分析中報告的被抑制的錯誤。下面是一個示例報告

4DTPMISRA誤差報告示例

準則遵照狀況彙總

遵照狀況摘要是項目整體遵照狀況的主要記錄。該報告記錄了每項準則的遵照狀況,以及任何相關的偏離或從新分類。下面是一個例子:

5DTPMISRA遵照狀況報告的一個例子。

走上合規的軌道

在大多數狀況下,在分析源代碼是否符合MISRA的要求時,違規行爲是靜態分析規則違規。在一個大型項目中,最初會有不少錯誤報告,快速有效地管理它們是相當重要的。DTP Violations Explorer是導航、評估、優先處理和分配報告的錯誤以進行補救的關鍵工具。若是靜態分析規則的違反被證實是有效的,但合理的,被認爲是無害的,或不適用,開發人員能夠抑制錯誤,並記錄誤差。這些誤差經過項目的每一個級別向上報告,到儀表板和合規性文檔。下圖是違規瀏覽器的一個例子

6:在DTP違規資源管理器中正在調查的違規實例。

執行、合規和可追溯性

總之,在開發安全關鍵型軟件時,MISRA標準提供了一套全面的準則,以防止安全漏洞和程序失敗。然而,應用這些準則和證實合規性可能會過於繁瑣,簡化這項工做對於確保軟件按時交付相當重要。

要讓軟件幫助你完成這項工做,你能夠:

  • 在每次構建軟件後,使用C/C++test經過靜態代碼分析來驗證MISRA準則,確保平常執行。
  • 建立高級概述和詳細報告,從DTPMISRA合規性包中快速得到,以有效地證實合規性。
  • 利用DTP實現項目需求與測試的可追溯性,這不只是MISRA的重要要求,也是安全標準的要求。

最後,在整個生命週期中支持MISRA合規性對於持續執行和可追溯性很是重要,根據MISRA Compliance:2016指南,自動化文檔是節省處理該指南的時間和挫折的關鍵

相關文章
相關標籤/搜索