Presentation is loading. Please wait.

Presentation is loading. Please wait.

大杉 直樹†, 神谷 年洋‡, 門田 暁人†, 松本 健一† †奈良先端科学技術大学院大学 情報工学科 {naoki-o, akito-m,

Similar presentations


Presentation on theme: "大杉 直樹†, 神谷 年洋‡, 門田 暁人†, 松本 健一† †奈良先端科学技術大学院大学 情報工学科 {naoki-o, akito-m,"— Presentation transcript:

1 CloneWarrior http://se.aist-nara.ac.jp/clonewarrior/
大杉 直樹†, 神谷 年洋‡, 門田 暁人†, 松本 健一† †奈良先端科学技術大学院大学 情報工学科 {naoki-o, akito-m, ‡科学技術振興事業団 さきがけ研究21 SEA関西SPIN

2 内容 CloneWarrior 概要 検索対象のコード サンプルコード コードクローン 利用手順 今後の課題 SEA関西SPIN

3 概要 GUIベースのコードクローン視覚化ツール 容易なセットアップ シンプルなインタフェース 高速コードクローン検索
InstallShield によるセットアップウィザード シンプルなインタフェース マウス操作によるコードクローンの検索,閲覧 高速コードクローン検索 CCFinder によるコードクローン検索 コードクローン分析作業の保存 コードクローン,オプション設定,ビューの状態を保存 コーディング作業との高い親和性 ソースコードの変更を追跡 SEA関西SPIN

4 アーキテクチャ CloneWarrior CCFinder Interfaces Source code list manager
CCFinder controller Source code list view Source code list manager Source code selection information CCFinder Code clone list view Code clone detector User Code clone list manager Code clone selection information Source codes and Code clones Information Source code editor Source code editor Source codes SEA関西SPIN

5 画面の概要 検索対象のコードの一覧 サンプルコードの一覧 検索対象のコード サンプルコード コードクローン コードクローンの一覧
SEA関西SPIN

6 検索対象のコード(1/2) 検索対象のコードの一覧 検索対象のコード SEA関西SPIN

7 検索対象のコード(2/2) コードクローンを検索する対象のソースコード HDD上に記録されているソースコードを指定する
コードクローンが含まれている可能性があるソースコードを指定する 下記の何れかの言語で書かれているソースコードを指定する C; C++; Java; COBOL; COBOL/S; HPL; Emacs Lisp; FORTRAN; Plain Text SEA関西SPIN

8 サンプルコード(1/2) サンプルコードの一覧 サンプルコード SEA関西SPIN

9 サンプルコード(2/2) 検索対象のコードと比較するコード断片(コードの一部,或いは,全部)
検索対象のコードの一部(或いは,全部)をコピー&ペーストして指定する 検索対象のコードの一部に類似している可能性があるコード断片を指定する 記述言語は切り取り元の検索対象のコードに準ずる SEA関西SPIN

10 コードクローン(1/2) コードクローン コードクローンの一覧 SEA関西SPIN

11 コードクローン(2/2) 検索対象のコードとサンプルコードの間の類似したコード断片
検索対象のコードの一部(或いは,全部)と類似したサンプルコードの一部(或いは,全部)が検出される [最小クローンサイズ]オプションで指定したトークン数以上,類似したトークンを含むものが検出される 検出されるコードクローンは CCFinder の実装に依存する SEA関西SPIN

12 利用手順 セットアップ CloneWarrior の起動 プロジェクトの作成 オプションの設定 検索対象のコードの追加 サンプルコードの追加
プロジェクトの保存 コードクローンの検索 検索結果の閲覧 その他の機能 SEA関西SPIN

13 セットアップ CloneWarrior セットアッププログラムをメディアからコピーしてください
セットアッププログラムは以下のURLからダウンロードすることもできます setup.exe を実行し,セットアッププログラムの支持に従ってセットアップを行ってください SEA関西SPIN

14 CloneWarrior の起動 Windowsの [スタート] メニューで [すべてのプログラム(P)]→[NAIST CloneWarrior 1.6]→ [CloneWarrior1.6] を選択して CloneWarrior を起動してください SEA関西SPIN

15 プロジェクトの作成 「プロジェクトの新規作成」ダイアログで新しく作成するプロジェクトの名前を入力してください.
プロジェクトの名前は,ユーザがプロジェクトを識別するための文字列です. 入力できる文字に制限はありません. 入力が終わったら,[OK] ボタンを押して「プロジェクト」の名前を決定してください. SEA関西SPIN

16 プロジェクトについて CloneWarrior プロジェクトファイル(拡張子cwp)はコードクローン検索作業の保存単位です
プロジェクトファイルには,以下の情報が保存されます プロジェクト名 追加された,検索対象のコード 追加された,サンプルコード 検索された,コードクローン プロジェクトファイルを開くことで, 以前に行った検索作業を再開することができます プロジェクトの保存方法は「プロジェクトの保存」で説明します SEA関西SPIN

17 オプションの設定 コードクローンの検索方法や,画面の表示方法に関するオプションを設定してください
設定したオプションは CloneWarrior 終了時に ini ファイルに保存され,次回起動時に再現されます [ヘルプ] ボタンを押すと, 設定項目についての説明 が表示されます SEA関西SPIN

18 検索対象のコードの追加 ボタンを押して,追加するソースコードを選択してください
以下のディレクトリにインストールされている Java のサンプルコードを追加してみてください D:\Program Files\NAIST CloneWarrior\samples\ multiprogressbar\jp\ac\aist_nara\is\naoki_o\progressbar SEA関西SPIN

19 検索対象のコードの一覧 ここをクリックすると「名前」でソートします.もう一度クリックすると,ソートの方向(降順,昇順)を入れ替えます
ここをドラッグして左右にスライドさせると,「検索対象のコードの一覧」の幅を変更することができます SEA関西SPIN

20 検索対象のコードの表示 表示されている検索対象のコードをダブルクリックすると,そのコードの内容をテキストエディタ部分に表示します.
SEA関西SPIN

21 サンプルコードの追加(1/3) ボタンを押してください 空白のサンプルコードが追加されます
ユーザはカット&ペースト等で,サンプルコードを編集することができます SEA関西SPIN

22 サンプルコードの追加(2/3) 検索対象のコードの一覧で,マウスを右クリックしてください
ポップアップメニューから [サンプルコードとして追加(E)] を選択してください 検索対象のコードの一覧で選択している,検索対象のコードのテキスト(ソースコード全体)が,サンプルコードとして追加されます SEA関西SPIN

23 サンプルコードの追加(3/3) テキストエディタで,サンプルコードにする部分を選択し,マウスを右クリックしてください
ポップアップメニューから [サンプルコードとして追加(E)] を選択してください テキストエディタで選択している,検索対象のコードのテキストの一部が,サンプルコードとして追加されます SEA関西SPIN

24 サンプルコードの一覧 ここをクリックすると「サイズ」でソートします.もう一度クリックすると,ソートの方向(降順,昇順)を入れ替えます
ここをドラッグして左右にスライドさせると,「サンプルコードの一覧」の幅を変更することができます SEA関西SPIN

25 サンプルコードの表示 表示されているサンプルコードをダブルクリックすると,そのコードの内容をテキストエディタ部分に表示します
SEA関西SPIN

26 プロジェクトの保存 ボタンを押し,保存するファイルの名前を入力してください SEA関西SPIN

27 コードクローンの検索 ボタンを押してください コードクローン検索が完了するまでは,一部のメニューの実行ができなくなります SEA関西SPIN

28 コードクローンの検索 コードクローン検索中は進行状況がウインドウ右下のステータスバーに表示されます 検索開始前
ccfinder.exe でコードクローン検索中 検出したコードクローンの追加中 検索完了 SEA関西SPIN

29 コードクローンの一覧 ここをクリックすると「サイズ」でソートします.もう一度クリックすると,ソートの方向(降順,昇順)を入れ替えます
ここをドラッグして上下にスライドさせると,「コードクローンの一覧」の高さを変更することができます SEA関西SPIN

30 コードクローンの表示 表示されているコードクローンを選択すると,コードクローンの範囲をテキストエディタ上で強調表示します SEA関西SPIN

31 コードクローンの絞込み 一覧で選択された「検索対象のコード」と「サンプルコード」の間に含まれるコードクローンだけが{コードクローンの一覧」に表示されます SEA関西SPIN

32 コードへの変更の追跡 検索の後,変更があった検索対象のコード,及び,サンプルコードの横には マークが表示される
検索の後,変更があった検索対象のコード,及び,サンプルコードの横には マークが表示される タイムスタンプが変更され検索対象のコードは CloneWarrior が読み込み直す CloneWarrior 組込のテキストエディタによる編集も追跡する 次回検索時には,変更があったコードのみを対象に検索を行う 変更がないコードには新たなコードクローンはないから SEA関西SPIN

33 今後の課題(1/3) ユーザビリティの改善 「検索対象のコード」,「サンプルコード」という分類を廃止する
「検索対象のコード」,「サンプルコード」という分類は分かりにくいという指摘をいただいたので ユーザインタフェースの国際化(英語化)を行う ドキュメントの国際化(英語化)を行う SEA関西SPIN

34 今後の課題(2/3) スケーラビリティの改善 検索対象のコードの一覧,サンプルコードの一覧,並びに,コードクローンの一覧の描画処理の経過を示すプログレスバーを実装する 大量のデータを処理すると,リアルタイムに制御が帰ってこなくなるので SEA関西SPIN

35 今後の課題(3/3) ポータビリティの改善 .NET アプリケーションとしてビルドする
現在,Windows XP などの限られた OS 上でしか動作しないので SEA関西SPIN


Download ppt "大杉 直樹†, 神谷 年洋‡, 門田 暁人†, 松本 健一† †奈良先端科学技術大学院大学 情報工学科 {naoki-o, akito-m,"

Similar presentations


Ads by Google