shimashimaの日記: CCFinder 4
日記 by
shimashima
CCFinder。大阪大学大学院情報科学研究科 コンピュータサイエンス専攻 井上研究室の神谷さんが開発した、ソースコード中のコピー個所の分布を調べるソフトウェア。
ソフトウェアの保守性、というか逆保守性の指標としてコピー&ペーストによるコーディングがあるが、このCCFinderはそのコピー&ペーストの個所を分析しグラフとして出力することができるようだ。
ちょうど目の前に腐ったコード郡があるので、このCCFinderで分析をしたくなる衝動に駆られる。だが、現時点でCCFinderは公に公開されていない。配布については個別対応をしている。
なお、IPAの未踏ソフトウェア創造事業でCCFinderNexGenが採択された。
う~む。 (スコア:1)
我々が一番頭を悩ますのは,クローンコードのようでクローンコードじゃないんだけど,クローンコードじゃないようでクローンコードな状態を,どうやって取り除くかということと思います。各々の目的に応じて微妙にカスタマイズされたクローンコードを,デグレードないように切り分けて重複をとりのぞく技術が要求されるわけです。そのためには,ソースコードを読んで,影響箇所や解決方法などを分析および検討する必要があります。ということは,結局はソースを一通り精査しなければならない。そういった点で,本当に効果があるのかどうか,私は少し懐疑的です。
Re:う~む。 (スコア:1)
元々、このCCFinderを見つけたのは以前の日記に書いた保守性の数値化について調べていた過程でのことです。ですから、コピー&ペーストを探し出すのは、その部分を直すためではなく保守性の低下を数値として示すための指標にするためなのです。コピー&ペーストのコードが保守性のすべてを現す指標ではありませんが、指標として数値ででてくることに意義を感じます。
それからもう一つ。
ソフトウェア工学の成果として、現実に目の前で動くソフトウェアとその成果を確認することができる研究だからです。
私はソフトウェア工学の勉強をしたいと思っていますが、現場で実際に使ってもらえるもので無ければいけないと考えています。その、自分の考えに合致して、理論を提示かつ動作するソフトウェアを公開しているという点で私はCCFinderと開発された神谷さんに興味があるのです。
IPAの未踏ソフトウェア創造事業に選ばれたのも、そういったことが評価されたのではと私は思っています。
Re:う~む。 (スコア:1)
関数化提案パッチを出力してくれるようになってくれたりすると物凄く便利だなぁとか思ってしまったw。でもそういうツールに育つ可能性も秘めているとは思うけどね。
はよソース公開されないかなぁ。。。(´¬`)じゅるり
むらちより/あい/をこめて。
Re:う~む。 (スコア:1)
そ、それいいですね!
類似指数の高い2つのコード部分を検出して、なおかつ
こんなカンジ [apple.com]で GUI で表示してくれちゃったりすると
サイコーです。
# ちなみにこの画像は、apple の WebObjects で cvs の marge 部分を
# 提案してくれる機能のものです(多分)。
コードの重複を検出した後、多少手間がかかろうとも重複部分を丁寧に
汎化してこそ、その後のメンテナがラクできるというもんですので。
なんにしても、完成が楽しみですね。