この論文では,リファクタリング可能なクローンを判別する手法として,既存研究で提案されているクローンメトリクスを用いる手法を実装したツール ARIES を紹介している.

既存手法では,メソッド抽出とメソッド引き上げの両方でリファクタリングできそうなクローンをフィルタリングする. 例えば,メソッド抽出だと

メソッド引き上げだと

などの条件を満たしているとリファクタリングしやすいと判定される. なお,これらの条件は CCFinder のメトリクスとして提供されているため,用意にフィルタリングできる.

ARIES はこれらのメトリクスでクローンのフィルタリングを行い可視化する. まずは CCFinder を用いてクローンを検出する. 次に,既存ツールを用いて,検出されたクローンのうち,ブロックであるものをフィルタリングする. 最後にリファクタリング可能性を判定し,可視化する.

所感としては,かなり大雑把な手法だと感じた. 例えばメソッド抽出の際の条件も,クローンが複数クラスにまたがっていてもリファクタリング自体は可能である. また,参照している変数についても,変更がなされていなかったり,極論オブジェクトであれば参照渡しで抽出したメソッドに渡されるので変更があっても問題はない. 一方,メトリクスでフィルタリングしたクローンであっても,リファクタリングが難しそうなものはいくつか存在した. 2004年という時期を考えると,当時はまだまだクローンの研究は手探り状態であったと伺える. 可視化は大変そうだなと感じた.

似てる論文 Assessing the Refactorability of Software Clones ニコラス著. こっちはガチガチに解析してる.