【バグ管理の作法】
エンピリカルソフトウェア工学に触れる
第4回:法則を発見し、開発支援へつなげるアプローチの事例
著者:奈良先端科学技術大学院大学 松本 健一
公開日:2007/12/26(水)
「法則の発見」と「支援の実現」の事例
「第3回:エンピリカルアプローチの実例」では、「観察」を中心にエンピリカルな研究事例をみてきた。最終回となる今回は、「法則の発見」や「支援の実現」により近い事例を紹介する。
相関ルール分析
最初の例は、ソフトウェアプロジェクトデータに対する相関ルール分析である。エンピリカルアプローチとしての段階は「法則の発見」、粒度は「リポジトリ」である。
相関ルール分析は、データマイニング手法の基本的なものの1つであり、大量のデータの中から「AならばB」というルール(相関ルール)を見つけ出す技術である。よく知られている適用例としては、小売店POSシステムの販売履歴データなどから、顧客の購買傾向やパターンを洗い出し、販売戦略に活用するというものである。
今回紹介する例は、そうした分析手法をソフトウェア開発データに適用したものである。分析対象は、日本ユニシス株式会社で実施された37のプロジェクトの特性(プロファイル)に関する21種類のデータである。適用の結果、出現頻度が0.5%以上の相関ルールが約4,000個得られた。
日本ユニシスのプロジェクトの特性
(画像をクリックすると別ウィンドウに拡大図を表示します)
図は外部委託率の平均と標準偏差の分布である。図から導き出されたルール1と2は、それぞれ分析対象組織において外部委託率が最大になる場合と最小になる場合の条件(プロジェクト特性)を教えてくれている。つまり、その組織では開発実績のある業種の既存顧客向け開発で外部委託比率は平均37%で最大となり、逆に新規開発でピーク時でも開発メンバーの増加が最小限にとどめられるような場合に、外部委託率は12%で最小となる。
こうした事実を知っていれば、プロジェクト計画立案/見積り時に外部委託比率の妥当性の議論や確認が可能になる。また、もしその組織が外部委託率を組織全体として上げたい、あるいは下げたいと考えているならば、どのような特性を持つプロジェクト向けに対策を取るべきかがはっきりしてくる。
もう1つの例は、試験工数比率に関するものである。図から導き出されたルール3と4はそれぞれ試験工数比率のばらつきが最小になる場合と最大になる場合の条件(プロジェクト特性)を教えてくれる。すなわち、ルール3で示された特性を持つプロジェクトでは、試験工数比率はどれも0.21から大きくずれることはなく安心できるが、ルール4で示された特性を持つプロジェクトでは、試験工数比率が大きくぶれる可能性があり、あらかじめそれに備えておくことで開発リスクを回避することができる。
どちらの例でも、なぜそのような傾向を示すのか、その理由や因果関係まではわかっていない(理論の確立には至っていない)。しかし、開発の支援には十分役立つ情報を提供しているといえよう。なお、プロジェクト特性には数値データ(量的変数)が含まれるため、一般的な相関ルール分析ツールは適用できない。ここでは、日本ユニシス株式会社 共通利用技術部 データサイエンス技術室のMiningPro21開発チームの協力を得て開発した相関ルール抽出ツールNEEDLEを用いている。 次のページ