netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2010-07-21 [長年日記] ▲
_ [ツール] CX-Checker 試してみました ▲
授業で学生がC言語のコードを「読みやすく」書きなおす作業をするということだったので,CX-Checkerを試してみました.
一括インストーラでインストールしたら,Cygwin の /bin ディレクトリへの PATH を環境変数に設定してから,Eclipse を起動します.CDT でプロジェクトを作成した後,設定マニュアルに従って,プロジェクトに Cygwin の /usr/include と /usr/lib へのパスを設定しておきます.検査したいコーディングルールを記述した XML ファイルを好きなだけ登録してから,プロジェクトを右クリックして 「Checker」メニューから 「SDB の作成」を行い,続いてソースコードのチェックを実行するだけとなります.設定の半分は CDT の設定に関する部分であり,CX-Checker 自身が要求しているのは Cygwin/bin への PATH 設定とルール集合だけです.設定項目はかなり少なく収まっている気がします.
Cygwin の /bin ディレクトリへの PATH を設定しておかないと java.io.IOException: Cannot run program "cygpath" (プロジェクトのパス名) ... (以降文字化け)
というエラーメッセージが出ます.いわゆる「コマンドが見つからない」状態であることがエラーメッセージには明示されていなかったので,解決にはちょっとだけ考え込んでしまいました.また,Cygwin を普通に setup.exe
からインストールしていたのですが,make
が標準ではインストールされないということに気付かなかったので,こちらも少し引っかかりました.
CX-Checker のツールそのものに関しては,チェックするルール集合が標準では空になっており,「チェックしたいルールだけを追加して使う」という形式になっているので,「学習しながら試す」のに向いている気がしました.変数名の長さぐらいの簡単な検査であれば,MISRA-C 用に書かれた既存 XML ファイル群をそのまま使えますし,「どんな検査がしたいか」考えてカスタマイズすることが可能です.今回は,学部生が授業で書いたプログラムに対して,いくつかの検査ルールを適用するという使い方だったので,既定で大量のルールを用意しているようなコーディングチェッカに比べて,利用しやすかったという印象です.
2010-07-28 [長年日記] ▲
_ [ツール] CX-Checker のボタンが足りない ▲
CX-Checker には XPathView という「構文木に関する XPath 式を書いてボタンを押したら即座に該当コードを教えてくれる」便利ツールが付いてるらしいんですが,マニュアルに書いてある「チェック」ボタンが表示されない(?)という問題に遭遇しました.
学生に試用してもらおうとした直後の指摘で,手元で試したところ,選択したソースコードにマッチする XPath 式を表示する「取得」ボタンは表示されているし動作するけれども,他には「クリア」「コピー」ボタンしか表示されないようです.2人揃ってインストール手順等を間違えているのでなければ,CX-Checker 側に何か問題があるのかもしれません.
……とりあえず問題を(学生から)問い合わせ窓口に伝えて,様子を見ることにしました.
(7/31 追記) お返事があり,ボタンはなくなって「Tab キーを押す」とチェックが走るようです.
今更の感想ですが,インタラクティブに検査しながらソースコードを修正しようとすると,ソースコード修正ごとのデータベース更新作業が少し手間がかかるように感じられます.Eclipse JDT で,ファイル保存にコンパイル等が連動するのに慣れているせいかもしれません.