「CCFinderX」でコードクローン分析
コードクローン(重複コード)とは、ソースコード中の全く同じあるいは類似したコードの断片。一般に、コードクローンが存在するソースコードは保守が困難になる。これは、誤りを含んだコードを複製することでその誤りが分散してしまうことや、機能変更を行う際にクローンを探して、同様の対応が必要かどうかを調査する必要があるためである。コードクローンを検出するためには、単純なテキスト比較では不十分であり、言語の構文レベルでの比較が必要となる。
CCFinderXは、フリーのコードクローン検出ツール。2004年の未踏にも採択されているようだ。
CCFinderXはコードクローン検出ツールです。Java, C/C++, COBOL, VB, C#のソースコードから、コードクローン(重複コード)を検出します。
http://www.ccfinder.net/ccfinderx-j.html
CCFinderXは、拙作CCFinderのメジャーバージョンアップであり、新しい設計と技術により、性能の向上、利用者による前処理のカスタマイズ、メトリクスやプログラムパターンに基づいた対話的な分析を可能にします。
某プロジェクトでダサい障害が発生したので、なんとなくソースを眺めてみたら、、、なんじゃこりゃ〜!というような冗長なコードが目に付いた。もしかして、こんなコードがほかのモジュールにも伝染しているのではと不安になったのだけど、手作業で全量チェックもできないし、単純な文字列比較ではチェックできないしと困っていたところ、「ITプロジェクトの見える化」で紹介されていた「CCFinderX」を思い出した。
ITプロジェクトの「見える化」下流工程編 (SEC BOOKS)
- 作者: 情報処理推進機構(IPA),ソフトウェアエンジニアリングセンター(SEC),日経コンピュータ
- 出版社/メーカー: 日経BP社
- 発売日: 2006/06/17
- メディア: 単行本
- 購入: 4人 クリック: 92回
- この商品を含むブログ (20件) を見る
とりあえず、動作確認のために学生時代に作成したプログラムを解析してみた。少人数で作成した小さなプログラムだし、ちゃんとしたアーキテクト(もちろん僕ではない)が設計しているのでコードクローンはほとんどなし。使い方は理解したので実プロジェクトの成果物に適用してみたい。
インストール
インストールには、解凍パスワードとライセンスキーファイルが必要となるため、少々面倒。
- ユーザー登録ページに名前とメールアドレスを入力すると、解凍パスワードとライセンスキーファイルが登録したメールアドレスに送付される
- ダウンロードページから最新をダウンロード
- ファイルは7zip形式で圧縮されているので、解凍ツールをダウンロードする必要がある(ここが面倒・・・)。
- ファイルを7-Zipで展開する。
- ライセンスキー入りのメールを「licensedata.eml」という名前で保存し、binディレクトリ下にコピー