MISRA 2004規則 軟件測試
關鍵字:MISRA 2004規則
MISRA (The Motor Industry Software Reliability Association 汽車工業軟件可靠性聯會) 是位于英國的一個跨國汽車工業協會,其成員包括了大部分歐美汽車生產商。其核心使命是為汽車工業提供服務和協助,幫助廠方開發安全的、高可靠性的嵌入式軟件。這個組織最出名的成果是所謂的MISRA C Coding Standard,這一標準中包括了127條C語言編碼標準,通常認為,如果能夠完全遵守這些標準,則你的C代碼是易讀、可靠、可移植和易于維護的。最近很多嵌入式開發者都以MISRA C來衡量自己的編碼風格,比如著名的uC/OS-II就得意地宣稱自己99%遵守MISRA標準。而《嵌入式開發雜志》也專門載文號召大家學習。編碼規范通常是一個公司自定的“土政策”,居然有人去做標準,而且還得到廣泛的認可,這不禁引起我強烈的興趣??上н@份標準的文本需要花錢去買,而且短短幾十頁,要價非常昂貴。MISRA在網上公布了一些文檔,其中有關于MISRA C Coding Standard的Clarification報告,從中間你可以大致猜到MISRA標準本身是什么。我仔細閱讀了這些文檔,并且通過閱讀其他一些介紹性文檔,大致了解了MISRA標準的主要內容。這些條款確有過人之處,對于C/C++語言工程項目的代碼質量管理能夠起到良好的指導性作用,對于大部分軟件開發企業來說,在MISRA的基礎上適當修改就可以形成自己的規范。當然其中也有一些過于嚴苛的東西,這就需要各個開發部門靈活處理了。我個人的體會,編碼規范雖然很簡單,但是要完全執行,不折不扣,需要開發部門有很高的組織性和紀律性,并且有很好的代碼評審機制。因此,如果能夠嚴格地遵守編碼規范,本身就是一個開發部門實力的證明。
內容
<環境>
Rule1.1(強制):所有的代碼應該遵守ISO 9899:1990“Programming Language C”
Rule1.2(強制):只有當具備統一接口的目標代碼的時候才可以采用多種編譯器和語言
Rule1.4(強制) 檢查編譯器/連接器以確保支持31一個有效字符,支持大小寫敏感
<語言擴展>
Rule 2.1(強制):匯編語言應該封裝起來并且隔離:
例如:#define NOP asm(“ NOP”)
Rule 2.2(強制) :源代碼只能采用/*…*/風格的注釋
Rule2.3(強制): 字符序列/*不能在注釋中使用
注:C語言不支持注釋的嵌套即使一些編譯器支持這個語言擴展
原文轉自:http://www.anti-gravitydesign.com