Download presentation
Presentation is loading. Please wait.
1
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
クローン履歴を利用した クローン分析環境 川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
2
発表の概要 クローン履歴分析 クローン履歴分析の応用 クローンの過去を追跡 書き換える場所の発見 書き換える場所の理解促進
2005/08/04
3
コードクローン コードクローン(あるいは単にクローン) クローンペア クローンセット 類似文字列が存在するコード片
クローンの位置は (ファイル名、開始行番号、終了行番号) で指定 クローンペア クローンA-1 とクローンA-2 が類似文字列であるときに、これらをクローンペアとよぶ クローンセット クローンペア関係において推移関係が成り立つクローンの集合 Clone A-1 Clone A-3 Clone A-2 Clone B-2 Clone B-1 2005/08/04
4
クローン履歴 1. ひとつのクローンセットを クローン発生時期から分類 2.過去に同じクローンセットだった クローンセットの発見
Clone A-3 追加 Clone A-3 Clone A-3 Clone A-1 Clone A-1 Clone A-1 Clone B-1 Clone B-1 Clone B-1 Clone A-4 Clone A-4, A-5 追加 Clone A-2 Clone A-2 Clone A-2 Clone B’-2 Clone B-5 Clone B’-2 Clone A-5 Clone B-2 Clone B-2 Clone B-2 Clone B’-1 Clone B-3 Clone B-4 Clone B’-3 Clone B’-1 Clone B’-3 Clone B-3, B-4, B-5 が編集 されて別クローンセットに Clone B’-3 削除 2.過去に同じクローンセットだった クローンセットの発見 3.コード中に含まれるコード クローンの変化を分析 2005/08/04
5
クローン履歴関係抽出手法 指定された期間 [0, t]、間隔Δt について期間 [0, t] を Δt ごとに分割、それぞれの時のファイルの状態をバージョン V0, V1, ..., Vt と表す 過去のプロダクトの取得には版管理システム (ex. cvs, subversion, ...) を用いる となりあうバージョン間について分析 V0, V1 をリポジトリから取得 V0, V1 間のクローン履歴関係を分析 Vt をリポジトリから取得 Vt-1, Vt 間を分析 ・・・ V0 V1 Vt-1 Vt 2005/08/04
6
クローン履歴を用いたプログラムの書き換え
書き換え箇所の発見 要改善箇所の提示 書き換え箇所の理解 クローンが入ったときのコミットログ 他の部分にコピーされた部分の 書き換え 2005/08/04
7
書き換え候補の提示 クローン 履歴をつかって範囲を広げる 2005/08/04
8
書き換え箇所の理解支援 どこからコピーされた? 2005/08/04
9
作成中の支援環境 クローン履歴閲覧環境 Eclipse プラグイン 主なUI ディレクトリ単位でのクローン行数の変遷グラフ クローンマップ
過去の時点のソースコード参照 2005/08/04
10
今後の課題 2005/08/04
11
2005/08/04
12
版管理システム 2005/08/04
13
履歴を考慮したクローン分析 過去にクローン関係にあったコード片の抽出 過去の時点でのクローン解析情報
現在のクローンは、過去のどのクローンに対応するか? Clone A-3 追加 Clone A-3 Clone A-3 Clone A-1 Clone A-1 Clone A-1 Clone B-1 Clone B-1 Clone B-1 Clone A-4 Clone A-4, A-5 追加 Clone A-2 Clone A-2 Clone A-2 Clone B’-2 Clone B-5 Clone B’-2 Clone A-5 Clone B-2 Clone B-2 Clone B-2 Clone B’-1 Clone B-3 Clone B-4 Clone B’-3 Clone B’-1 Clone B’-3 Clone B-3, B-4, B-5 が編集 されて別クローンセットに Clone B’-3 削除 クローンセット B, B’ を 「分離クローンセット」と呼ぶ 2005/08/04
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.