BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Clone DetectiveのImmo Landwearth氏にインタビュー

Clone DetectiveのImmo Landwearth氏にインタビュー

Visual Studio向けのオープンソースプロジェクトClone Detective(リンク)のImmo Landwerth氏にインタビューした。同プロジェクトはConQATを利用してC#コードの複製を分析する。

Clone Detectiveを作る元々のきっかけは何だったのですか。

クローン検出は非常に融通が利きますが、まだ十分活用されていない品質ツールです。コードが複製される理由は、プログラミング言語の制限を越えてコピー&ペーストする不精な開発者から、アーキテクチャ的な制約まで、多種多様にわたります。現在のところ、クローン検出にはツールのサポートがないため、広く普及していません。私たちのプロジェクトでは、クローン検出を開発者に直接もたらすことが目的であり、スタンドアロンのツールではなく、Visual Studioとの統合を図った理由がここにあります。

Clone Detectiveは重要な機能3つを開発者に提供します。最初の2つは非常に分かりきったことですが、検出の実行と、結果として生成されるクローンレポートの閲覧を可能にします。3番目の機能は最初の2つほど明白ではありません。Clone Detectiveを今日使い始めるとすると、あなたのプロジェクトにはすでにクローンが存在しているかもしれません。複製を除去すれば経費がかかり、リスクも生まれますから、クローン全部をすぐに除去するとはいかないでしょう。クローンに対処する方法が見つかります。ここで2番目の機能が働きます。Clone Detectiveは複製されたすべてのソースコードの余白に紫色の線で印を付けます。すばらしいアイデアには思えないかもしれませんが、最も一般的なメンテナンスのユースケースを考えてみてください。開発者の誰かがあなたのプロジェクトのバグを修正しているとします。コーディングの最中、紫色の線に気づいたこの開発者は、これがクローンを意味することを思い出します。そうするとこの開発者は、他にもこのクローンがないか素早く探し、そこでもバグの修正が必要かどうかをチェックするでしょう。これがクローンに対処する非常に単純な方法です -- クローンを保持しながら、ソースコードでは一貫性を保つようにするのです。

Clone Detectiveの次期バージョンでは「ファジーなクローン」さえ発見できるようになるでしょう。こうしたクローンはほとんど同一ですが、相違があるということです。コードベースの矛盾を指し示すものかもしれないので、こうしたクローンは特に興味深いのです。

複製コードを保持しながら、チェックする必要のあるクローンをClone Detectiveを使ってメンテナンス担当者に警告するとおっしゃいました。このテクニックは本来の目標の1つでしたか、あるいは事後に分かったものなのでしょうか。

そうですね、ミュンヘン工科大学のソフトウェア能力センターは、クローン検出の使用経験が非常に豊富です。つまり、Clone Detectiveでは、クローンの保持と維持に関する問題はすでによく知られていたので、始めから必要条件になっていました。

Clone DetectiveとConQATの関係はどうなっていますか。

ConQAT(リンク)は継続的な品質査定ツールであり -- アーキテクチャ分析といった他のすばらしい機能もありますが -- クローン検出を行うことができます。ConQATは、ビルドプロセスに統合されるツールとして設計されており、プロジェクトのコックピットWebサイト作成に使用できる高度な情報をもたらします。

Clone Detectiveは、ConQATのクローン検出向けにVisual StudioがホストするGUIです。ConQATは、ソースファイルの読み出しや分析といったクローン検出に必要なすべての実務をこなします。Clone Detectiveが提供する視覚化ならびに統合化作業により、利用者はクローンレポートの迅速な作成と閲覧が可能になります。

現在、ConQATのその他の機能をVisual Studioに公開する予定はありますか。

ありません。しかし、クローン検出に関連したConQATの全機能 -- すなわち、ファイルフィルタやブラックリスト、ファジークローン -- は公開する予定です。

 

原文はこちらです:http://www.infoq.com/news/2008/10/Clone-Detective

この記事に星をつける

おすすめ度
スタイル

BT