CX-Checker

CX-Checker は Sapid Project で開発されています。CX-Checker の一部は 2007 年から実施された名古屋大学愛知県立大学南山大学文部科学省助成 先導的ITスペシャリスト育成推進プログラムの一環として、アイシン精機株式会社アイシン・コムクルーズ株式会社で行った OJLで開発されました。

CX-Checker は C言語プログラムを解析してコーディング規約を満たしているかをチェックできるコーディングチェッカーです。その最大の特長は、検査するルールをカスタマイズすることが出来る点です。

CX-Checker にはその他にも以下の特徴ががあります。

  •  コマンドライン版 と Eclipse プラグイン版 が提供されており、開発環境に適した方法で利用できます(上記の動作図は Eclipse プラグイン版です)。
  • Eclipse のプラグイン版では,開発中にいつでもコーディング規約違反を検査することが出来ます。違反箇所はソースコードに波線で表示されます.
  • XPath 言語または Java 言語を用いてユーザが容易にルールを記述することができます.プロジェクト毎の独自ルールを定義して検査することが出来ます。
  • 内部表現として,CソースコードをSapidプロジェクトが定める CX-model 形式のXMLファイルに変換します.CX-model では,Cソースコードに構文や依存関係の情報をXMLタグとして埋め込んでいるため,構文や依存関係の情報をXpathとして記述することができます.

コーディング規約とは?

コーディング規約 とはプログラマがコーディング時に従うべきルールのことをいいます。K&R スタイルや GNU Coding Standard のように,インデントや括弧の位置などを定めるコーディングスタイルだけでなく,識別子の命名規則や,不具合の原因になりうる危険な記述を避けるためのルールを含みます.たとえば,識別子の命名規約をプロジェクト内であらかじめ決めておくことにより,プロジェクト内の開発者が変数名を見るだけで識別子が表す意味を理解でき,可読性・保守性が向上します.

コーディング規約に含まれるルールには、例えば

ソースコードのインデントにタブを用いてはならない。

のような簡易なルールから、

自動記憶域にあるオブジェクトのアドレスを、そのオブジェクトの存在かが終了した後にまで持続期間をもつ他のオブジェクトに代入してはならない。

のような複雑なものまで存在し、多種多様です。

代表的なコーディング規約には MISRA が提唱している MISRA-C という規約があります。MISRA-C は C 言語プログラムの高信頼化のための規約と位置付られ、組込みソフトウェア開発の分野で多く導入されています。MISRA-C は 環境,文字セット,コメント,識別子,型,定数,宣言と定義,初期化,演算子,変換,式,制御フロー,関数,前処理命令,ポインタと配列,構造体と共用体,標準ライブラリという観点からルールを定めている.MISRA-Cには初版が 1998 年、改訂版が 2004 年にも発行されており、それぞれ MISRA-C 1998 、MISRA-C 2004 と呼ばれています。

Sapid について

CX-Checker はソースコードの解析に,細粒度ソフトウェアリポジトリに基づく CASE ツール・プラットフォーム Sapid(Sophisticated APIs fot CASE tool Development)を利用しています。そのためCX-Checkerを利用するためには Sapid のインストールが併せて必要です。

Sapid の入手やインストールについては別途 インストール のページを参照して下さい。

CX-Checker の開発に貢献した学生メンバ

  • 大須賀 俊憲 (CX-Checker 初版の開発)
  • 上原 伸介 (XPath ルールのための拡張 XPath 関数の開発)
  • 林 英志 (eclipse 版における XPath の入力支援機能の開発)
  • 蛭牟田 英治 (フロー情報を利用可能にするために CX-model を拡張)
  • 野田 訓広 (品質向上活動)
  • 大塲 光明 (マクロ展開に関する機能拡張)
  • 小寺 勝仁 (検査結果可視化ツールの開発)
  • 高井 康勢 (検査速度改善,品質向上活動)
  • 戸田 達也 (検査結果可視化ツールの改善)