BT

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

| 作者: Jonathan Allen フォローする 612 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2008年10月20日. 推定読書時間: 3 分 |

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

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT