CCFinderXとは
| 著者: | 神谷 年洋(かみや としひろ) |
| 日付: | 2008/05/02 |
| 連絡先: | info@ccfinder.net |
| 著作権: | 2005-2008 ( C ) Tosihiro Kamiya. All rights reserved. |
コードクローンとは、ソースコード中の重複した部分のことであり、
典型的には、プログラマがコピー&ペーストを行うことにより作られます。
コードクローンが存在すると、ソースコードを修正することが困難になるため、
また、大規模なソースコードでは、そもそもコードクローンがどこにあるかを知ることも難しいため、
リファクタリングにおいても、コードクローンは「不吉なにおい」であるとされています。
CCFinderX とは、拙作コードクローン検出ツールCCFinder [Kamiya2002] を完全に再設計したものです。特徴は:
- マルチコアCPU向けのマルチスレッド (10.2以降)
- Island parser風のパーザーにより、抽象構文木ベースの前処理
- 検索機能 (10.2以降)
- 対応しているすべてのプログラミング言語を(可能な限り)等しくサポートする
- 利用者によるプログラミング言語の方言、新しいプログラミング言語への対応を可能に
- コードクローンに関するメトリクスを使った分析
- 他のツールとの連携のために、TSV(タブ区切り形式)でデータを入出力
- ブロックシェイパ [Higo2002] 、多数派シェイパ (10.2以降)
- P-match [Baker1995] 機能
- 複数のビューによる対話的な分析(GUIフロントエンド GemXによる)
(注: 前CCFinderをご利用の方へ:GemXは、再設計されたGemini [Ueda2002] でもあります。)
CCFinderXは、コマンドラインからバッチ的に実行するツール
ccfxと、そのGUIフロントエンド
GemXから構成されています。
この文書では、GemXを利用してコードクローンを検出する方法を説明します。
| [Kamiya2002] | Toshihiro Kamiya, Shinji Kusumoto, and Katsuro Inoue, "CCFinder: A Multi-Linguistic Token-based Code Clone Detection System for Large Scale Source Code," IEEE Trans. Software Engineering, vol. 28, no. 7, pp. 654-670, (2002-7). |
| [Higo2002] | Yoshiki Higo, Yasushi Ueda, Toshihiro Kamiya, Shinji Kusumoto and Katsuro Inoue, "On software maintenance process improvement based on code clone analysis", Proc. 4th International Conference, PROFES 2002 Rovaniemi, Finland, pp.185-197, (2002-12) |
| [Baker1995] | B.S. Baker, "On Finding Duplication and Near-Duplication in Large Software Systems," Proc. Second Working Conf. Reverse Eng. (WCRE '95), pp. 86-95,July 1995. |
| [Ueda2002] | Yasushi Ueda, Yoshiki Higo, Toshihiro Kamiya, Shinji Kusumoto, and Katsuro Inoue"Gemini: Code Clone Analysis Tool," Proc. of 2002 International Symposium on Empirical Software Engineering (ISESE2002), vol.2, pp.31-32, Nara-ken New Public Hall, Nara, Japan, (October 3-4, 2002). |