研究概要 |
本年度は,プログラム依存グラフを用いたインクリメンタルな検出法を提案し,ツールとして実装した.インクリメンタルな検出法とは,検出結果とその中間生成物をデータベースなどに保管し,次回以降の検出時に利用する検出法である.検出対象ファイルが前回の検出時から更新されていない場合は,そのファイル自身は解析されず,ファイルに関する必要な情報はデータベースから取得される.このような枠組みを用いることによって,同じファイル集合から何度も検出を行う場合は,2回目以降の検出時間を大幅に短縮することができる.例えば,提案手法を用いることによって,下記のような検出処理を効率的に行うことが可能である, ノ複数のリビジョンから順にコードクローンを検出する. ♂着目するファイルに関連するコードクローンのみを検出する. また,前年度に提案した手法を用いて,Template Methodパターンリファクタリングの支援手法を提案した.Template Methodパターンの適用元になるコードは,不一致部分を含むコードクローンであるための従来のコードクローン検出法では十分に支援することができていなかった.提案手法を用いることにより,従来手法では発見することのできなかったTemplate Methodパターンを適用すべき箇所を発見することができる. 上記の2つの手法について,実際にツールを作成し,オープンソースソフトウェアに対して実験を行い,共にそれらの有効性を確認することができた.
|