メソッド抽出リファクタリングの推薦におけるプロセスメトリクスの有効性調査

田中 大樹 (1551060)


リファクタリングとは,外部から見たときの振る舞いを保ちつつ,保守性や可読性を向上させるために,ソフトウェアの内部構造を整理することである. メソッド抽出は,既存のメソッドの一部を新規メソッドとして抽出するリファクタリング手法の一つであり,実施される回数が多いことも知られている. メソッド抽出リファクタリングを支援するためには,開発者がどのようなメソッドを抽出の対象としているかを調査する必要がある. 既存の研究では,メソッド抽出対象となるメソッドの長さ,パラメータ数など,コード片のスナップショットから得られるプロダクトメトリクスを用いたメソッド抽出の対象メソッドの調査と,その調査結果に基づいた,メソッド抽出するべきメソッドの推薦手法の提案が行われている.

一方,異なる側面からコード片の特徴を計測する方法として,メソッドの変更回数,変更に関わった開発者数などの開発履歴から得られるプロセスメトリクスがある. 開発プロセスはソースコードの品質に影響を与えるものであり,品質の良し悪しはコード片をリファクタリングするか否かの判断材料になるため,プロセスメトリクスとリファクタリングの実施には相関がある可能性がある. そこで本研究では,プロセスメトリクスとメソッド抽出リファクタリングの関係を調査した. 調査の結果,メソッド抽出対象となるメソッドと対象ではないメソッドの間で,いくつかのプロセスメトリクスの値に有意差が確認できた.

次に,調査によって有効性が確認されたプロセスメトリクスを利用して,メソッド抽出リファクタリングの候補となるメソッドを推薦する機械学習モデルを構築し,その精度を評価した. 実験の結果,プロダクトメトリクスと今回の調査対象であるプロセスメトリクスの両方を利用した推薦モデルが,F値で0.827と最も高い精度を示した.

本発表では,前述したプロセスメトリクスの調査実験と,それらのメトリクスをメソッド抽出リファクタリングの推薦モデルに適用した実験について報告する.