特徵
1 概述C語言編程準則檢查工具CChecker是由航天軟體評測中心自主研發的、基於C語言開發環境、用於對C 語言編寫的程式進行準則檢查及安全性分析的軟體工具。
C Checker可以為高可靠高安全軟體的開發提供有力支持,它面向三個層次的用戶,包括開發人員、軟體質量管理人員與測試人員,幫助他們發現軟體編程方面的安全隱患,避免一些不良的編碼風格,從而提高代碼的可讀性與編程水平,降低出錯機率,改進代碼質量。
2 功能C Checker當前版本為1.0,支持GCC、CCS、TC等多種開發環境開發的C程式,檢查內容及給出的結果符合GJB 5369-2005(C語言安全子集)、Q/WE 905-2005標準。
C Checker的主要功能包括
1.檢查C語言原始碼的安全缺陷
2.檢查程式的注釋度(可讀性)
3.按一定的編寫風格美化原始碼程式
4.自動生成檢查結果報告
3 特性C Checker基於先進編譯技術、靜態編碼安全性程式分析技術、基於契約的自下而上分析方法、語言特徵信息識別擴展機制等先進技術,經過多個航天項目實際使用驗證,確保了準則檢查的精確性,為航天型號軟體質量保障提供了有力支持。
C Checker針對聲明後沒有使用、類型不一致、先使用後定義、不可達的代碼、忽略返回值、執行路徑沒有返回、可能的死循環、緩衝區溢出問題和動態記憶體錯誤,以及使用了不安全的C庫函式等方面,提出安全警示;同時,還能夠對軟體進行度量,對軟體的安全性和可靠性給予指示。
C Checker界面與Visual Studio風格相似,界面友好,易學易用。
圖1 C Checker運行界面
C Checker根據C語言編程準則(Misra準則、GJB 5369-2005 航天型號軟體C語言安全子集、Q/WE 905-2005),所檢查的編程準則類型包括聲明定義類、分支控制類、指針使用類、跳轉控制類等。用戶可以通過設定掃描類型方便地對檢查準則進行剪裁。
圖2 設定掃描類型
C Checker生成HTML格式的檢測結果報告,警示信息直接標註於代碼行下方,清晰直觀,方便查看。
圖3 警示信息
C Checker通過圖形化的度量分析結果(包括掃描結果的度量,程式可讀性度量等信息)表述程式的內在質量特性。
圖4 軟體缺陷度量信息
圖5 注釋數量度量信息
4 運行環境CPU性能在P4 1.8GHz以上的PC機、筆記本電腦;
128兆記憶體以上;
100兆可用硬碟空間以上;
Microsoft Windows2000/ XP作業系統及以上。