モデル構築よりも類似プロジェクト検索

2008年10月27日(月)
松本 健一

組織横断的工数見積もりの可能性

 多様で個別性のソフトウエア開発において、他組織で収集されたソフトウエア開発データ(実績データ)に基づいて構築されたモデルをそのまま自組織に導入することは意味がないかもしれない。しかしだからといって、組織横断的に実績データを共有し、工数見積もりに利用することまでもが無意味だとはいえない。

 同じ組織内でも似て非なるプロジェクトがあるだろうし、自分たちのプロジェクトと同様の状況にあるプロジェクトが意外と他組織にあったりするかもしれない。「組織」というくくりではなく、別の観点でプロジェクトを分類し、見積もりを行った方が高い精度が得られるかもしれない。ただし、実績データを共有するために、組織間で収集データを統一しなければならないとなると、ハードルは一気に高くなる。工数見積もりに必須なプロジェクト特性がはっきりしていない現状では、統一したくても統一できないかもしれない。

 協調フィルタリングをはじめとする「類似プロジェクト検索」というアプローチは、「異なる組織で収集された異質な実績データのごった煮」をある程度許容するものである。実績データの差異が組織間であまりにも大きいと、それらを1つにまとめたところで相互にはほとんど利用されないことになるが、少しでも利用されることがあるのなら、あとは、データ集積コストとのバランスだけである。

 情報処理推進機構ソフトウェア・エンジニアリング・センターでは、ソフトウエア開発データを組織横断的に収集、蓄積している。そのデータに対して、協調フィルタリングによる工数見積もり法を適用したところ、同一組織で収集された実績データに対する場合と同程度の精度の得られることが確かめられている。詳しくは、文献(http://se.naist.jp/achieve/pdf/157.pdf)を参照されたい。

開発計画見直しに役立つノウハウ提供の可能性

 もう1つの可能性は、見積値という単なる数値が得られるだけでなく、見積もりの過程で得られたより多様な情報を活用できるようになる、というものである。

 例えば、モデルを用いて工数見積もりを行った結果、現実的に確保できる工数の2倍の工数が見積もられたとする。「類似プロジェクト検索」による見積もりでは、工数を現実的な値まで削減すべく開発計画を見直す際に、類似プロジェクトの情報を活用することができる。類似プロジェクトでどのような解決策が検討され、実施されたのか、そして、その効果はどうだったか、といった情報は、開発計画の見直しにおいて大いに参考になるはずである。

 複数の類似プロジェクトの情報が利用できれば、共通する解決策を見つけたり、いくつかの解決策の効果を比較検討したりする、ということも可能になる。そのためには、プロジェクト開始時点からの詳細な活動記録が必要となるが、構成管理や不具合情報管理の体制が整っている組織では、それほど難しいことではないだろう。

 開発計画の見直しに直接役立つ情報を提供するところまではいかなくても、得られた見積もり結果の信頼性を議論するための情報ぐらいであれば、比較的簡単に提供することができる。

 図3は、協調フィルタリングによる見積もりとそれに基づくソフトウエア開発データの品質を診断するツールMagi(http://se.naist.jp/magi/license.html)である。Magiでは、単に工数見積値が出力されるだけでなく、見積もり対象プロジェクトと類似度の高い最大5つのプロジェクトの類似度と工数の実績値が表示される。

 単純にいえば、類似プロジェクトの工数実績値のばらつきが小さければ、見積値は比較的信頼できるが、逆にばらつきが大きければ、見積もりが大きく外れる可能性があることになる。類似プロジェクトの中に、ほかのプロジェクトとは一見異質なプロジェクトが含まれているような場合には、見積もり結果に対するより慎重な議論が必要となるかもしれない。

 今回の連載では、これまでに提案されている工数見積もりの手法やモデルのごく一部を紹介したにすぎない。ソフトウエア開発における工数見積もりの現状については、「情報サービス産業白書2008」(http://www.jisa.or.jp/report/whitepaper2008.html)などが参考になると思われる。

 最後までお付き合いいただいた読者の皆さまに感謝する。

 なお、本稿の執筆にあたって、以下を参考にした。

柿元 健,角田 雅照,大杉 直樹,門田 暁人,松本 健一「協調フィルタリングによる工数見積もり手法におけるデータ数と見積もり精度の関係の分析」『ソフトウェア工学の基礎XII』日本ソフトウェア科学会FOSE2005(発行年:2005)。

柿元 健,角田 雅照,大杉 直樹,門田 暁人,松本 健一「協調フィルタリングに基づく工数見積もり手法のデータの欠損に対するロバスト性の評価」『電子情報通信学会論文誌』電子情報通信学会(発行年:2006)

大杉 直樹,角田 雅照,門田 暁人,松村 知子,松本 健一,菊地 奈穂美,「企業横断的収集データに基づくソフトウェア開発プロジェクトの工数見積もり」『SEC journal,5』(2006)

Magiライセンスページ( http://se.naist.jp/magi/license.html)(アクセス:2008/10)

奈良先端科学技術大学院大学
奈良先端科学技術大学院大学 松本 健一。1989年5月大阪大学・基礎工学部・情報工学科・助手、1993年4月に奈良先端科学技術大学院大学・情報科学研究科・助教授、2001年4月から同大学教授。合同会社EASE創研業務執行社員。ソフトウエア工学、特に、ソフトウエアメトリクスの研究に従事。2007年8月から、ソフトウエアタグの研究開発を目的とした文部科学省STAGEプロジェクト研究代表者。http://se.naist.jp/http://easesoken.com/http://www.empirical.jp/http://www.stage-project.jp

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています