奈良先端科学技術大学院大学 > 情報科学研究科 > ソフトウェア工学講座 > 研究テーマ

ソフトウェア開発の見える化 > ソフトウェア解析・計測

協調フィルタリングによる工数見積もり

背景

ソフトウェア開発プロジェクトにおいて,開発工数を見積もることは,開発コストや納期などを決定するために用いられるため非常に重要です.そのため,COCOMOを代表として数多くの開発工数を見積もり手法が提案されています.

ソフトウェア開発プロジェクトでは,過去プロジェクトのデータから線形モデルやニューラルネットなどの予測モデルを作成し,予測モデルに対して,現行プロジェクトの実績値を当てはめることで工数を予測します.しかし,ソフトウェア開発プロジェクトは,開発対象や開発組織,開発時期などによってプロジェクトの様相は大きく異なるため多様であると言えます.そのため,ソフトウェア開発プロジェクトを一つのモデルだけで適切に表現することは難しいという問題点があります.また,ソフトウェア開発プロジェクトのデータには,しばしば記録されていない値(欠損値)が多く含まれているため,いわゆる虫食いデータとなっています.従来の工数見積もり手法では,データの欠損に対して脆弱であるという問題があります.


目的とアプローチ

本研究では,多様性・欠損値に強いソフトウェア開発プロジェクトの工数を予測する方法を確立することを目的としています. そこで,本研究では,一つのモデルを構築するのではなく,現行プロジェクトごとに似たプロジェクト(類似プロジェクト)を過去プロジェクトから選び出し予測します. 類似プロジェクトを選び出し予測する方法として協調フィルタリング技術を応用します.


提案手法

提案する予測手法は,協調フィルタリング技法の推薦方法を基に,ソフトウェア開発プロジェクトのデータの特徴を考慮した手法を提案しています.おおまかに以下の手順で予測します.

  1. 変数間の値域の差を無くすために変数ごとに正規化を行います.
  2. プロジェクトの変数の値から現行プロジェクトと各過去プロジェクトの類似度を算出します.
  3. 現行プロジェクトと類似度の高い過去プロジェクトを選び出します.
  4. 類似度の高い過去プロジェクトの工数を類似度で加重平均し,現行プロジェクトの予測値を算出します.

提案手法の詳細については発表文献を参考にして下さい.

提案手法について,従来手法と見積もり精度や欠損値に対する堅牢さなどを比較することで有効性を確認していくとともに,より有効性が高くなるように手法の改善を行っていきます.また,工数以外の見積もりへの適用も目指します.


発表文献

  • 角田雅照, 大杉直樹, 門田暁人, 松本健一, 佐藤慎一, "協調フィルタリングを用いたソフトウェア開発工数予測方法," 情報処理学会論文誌, Vol.46, No.5, pp.1155-1164, May. 2005.
  • Naoki Ohsugi, Masateru Tsunoda, Akito Monden, Ken-ichi Matsumoto, "Effort estimation based on collaborative filtering," Proc. of the the 5th International Conference on Product Focused Software Process Improvement (Profes2004), Nara, Japan, April 2004.
  • 柿元健, 角田雅照, 大杉直樹, 門田暁人, 松本健一, "協調フィルタリングに基づく工数見積もりのロバスト性評価," ソフトウェア工学の基礎XI, 日本ソフトウェア科学会FOSE2004, pp.73-84, November. 2004.
  • 角田 雅照, 大杉 直樹, 門田 暁人, 松本 健一, "協調フィルタリングに基づくソフトウェア信頼性予測方法," 電子情報通信学会技術報告, ソフトウェアサイエンス研究会, No. SS2003-27, pp.19-24, November 2003.

Copyright (c) 2007 Software Engineering Laboratory, NARA INSTITUTE of SCIENCE and TECHNOLOGY. All Rights Reserved.