協調フィルタリングを用いたロバストなソフトウェア開発工数見積もり方法

角田 雅照(0251073)


 ソフトウェア開発においては,過去の開発プロジェクトで計測されたソフトウェアメトリクス(評価尺度)を用いて,精度の高い工数見積もりを行うことが重要である.工数は作業量を表す数値であり,数値が大きい程,作業量が多いことを表す.一般に,工数を見積もる際には,過去のソフトウェア開発において計測されたメトリクスから統計的な予測モデルを作成し,そのモデルに基づいて工数を予測する.しかし,計測されたメトリクスには大量の欠損値が含まれることがあり,欠損値を考慮した回帰分析等の手法を用いた場合でも,十分な見積もり精度が得られない場合がある.本論文では,協調フィルタリングの技術を応用することで,欠損値に対してロバストな(堅牢な)工数見積もり方法を提案する.協調フィルタリングは情報検索の分野で研究された見積もり手法であり,不完全なデータ,すなわち大量の欠損値を含むデータを用いることが前提となっている.提案方法では,まず,見積もり対象(開発中)のプロジェクトと,過去の各プロジェクトとの類似度を計算する.次に,過去の類似プロジェクトの工数の加重平均を取り,見積もり対象のプロジェクトの工数を計算する.実際の開発現場から得られたデータに基づいて提案方法を評価したところ,提案方法は従来方法(欠損値を考慮した回帰分析)よりも高い見積もり精度を示し,相対誤差の平均値が30.22から0.82に改善した.