本テーマでは、大阪大学井上研究室で開発していているコードクローン(重複コード、類似コード)検出ツールであるCCFinderの機能を拡張し、より広範な目的に利用できるようにします。
コードクローンとは、ソースコード中の全く同一のコードの断片、または、類似したコード断片のことであり、開発者がソースコードをコピー&ペーストするなどの原因により、ソースコード中に作り込まれます。コードクローンが存在すると、あるコード断片にバグが見つかったとき、そのコードクローンが100個あれば、その100個のコード断片をすべて探し出し修正する必要があります。特に、大規模なソースコードにおいては、手作業でコード断片を見つけ出すことは困難であり、ソフトウェアの保守を困難にする原因であるとされています。
CCFinderは現在、C, C++, COBOL, Javaなどのプログラミング言語によって記述されたソースコードからコードクローンを検出することができますが、利用が広がるにつれ、当初の開発においては想定していなかった用途にも適用され始めました。たとえば、CCFinderが対応していないプログラミング言語で記述されたソースコードからコードクローンを検出したい、あるいは、CVSなどのソースコードバージョン管理ツールと組み合わせて使いたい、といった要求が寄せられました。これらの要求を実現するため、CCFinderに新たな機能を実装し、同時に、必要とされる設計の変更を行います。
CCFinderの強化は、「拡張された正規表現(仮称)」と呼んでいる正規表現に似た汎用の文字列マッチングルーチンの開発と、CCFinderの設計の変更で行います。

|