EASEプロジェクトは,進行中のプロジェクトの様々な指標を計測・定量化すると述べた。ここで,「進ちょくやバグの発生件数など,進行中のプロジェクトの計測は従来から行われている。EASEプロジェクトは,それとどこが違うのか」と疑問に思う読者がいるかもしれない。

 確かに,プロジェクトの進ちょく管理や品質管理のために,進ちょく状況やバグなどを収集するのは,ごく一般的である。しかし,これまでは人手でデータを入力・集計することが多く,正確なデータを集めにくい問題があった。また,開発担当者自身のメリットにつながらないため,開発担当者がデータを入力したがらない,という問題もある。

 このため,EASEプロジェクトでは,進行中のプロジェクトの様々なデータを自動的に計測できる「EPM(Empirical Project Monitor)」と呼ぶシステムを開発した。プロジェクトの様々な指標を自動計測する点が,EASEプロジェクトの最も大きな特徴だ。

 EPMは,計測したデータをEASEプロジェクトに提供することを条件に,2004年春からITベンダーに無償でライセンスしている。2005年1月時点で7社のベンダーに提供しており,このうち2社は,実際のプロジェクトにEPMを適用してデータ計測を実施している。近いうちにEPMをオープンソースとして,一般に無償公開する予定である。

 これまで,プロジェクトの様々なデータを自動的に計測するシステムは,容易に入手できなかった。プロジェクト定量化のための汎用的なプラットフォームをだれもが使える形で開発したという意味で,EASEプロジェクトのIT業界に与えるインパクトは極めて大きいと,我々は考えている。

オープンソースで構築

 EPMは,「構成管理システム」,「メール管理システム」,「障害管理システム」という3つのサブシステムと「トランスレータ」,「インポータ」,「アナライザ」と呼ぶモジュール群で構成される[4]~[8]図2)。

図2●EPM(Empirical Project Monitor)の構成
図2●EPM(Empirical Project Monitor)の構成
システム開発プロジェクトの構成管理データ,メンバー間でやり取りする電子メールに関するデータ,障害データを自動収集し,様々な切り口で分析できる。EPMは,オープンソース・ソフトで構築している
[画像のクリックで拡大表示]

 構成管理システムはプログラムなどの成果物のバージョンを管理するシステムである。メール管理システムは,メールサーバーのデータを基にプロジェクトのメンバーがやり取りする電子メールに関する情報を収集・管理するシステム,障害管理システムはメンバーが発見したバグや作業の障害に関する情報を管理するシステムである。

 一方,トランスレータ,インポータ,アナライザは,各サブシステムが管理するデータを収集・蓄積して,分析・表示する役割を担う。

 まずトランスレータが,各サブシステムのデータをEPMの標準データ形式である「標準エンピリカル・データ」(フォーマットはXML)に変換し,インポータがリレーショナル・データに変換して「EPM Repository」と呼ぶデータベースに格納。アナライザが,利用者が指定したデータの種類や出力するグラフの種類,表示対象期間などに基づいて,EPM Repository内のデータをWebブラウザに表示する。

 アナライザは,新しい分析・表示機能を簡単に追加できるプラグイン方式を採用している。2004年末には,「ソフトウエア信頼度成長モデル(SRGM=Software Reliability Growth Model)」に基づくバグ収束曲線グラフの作成機能を,新たなプラグインとして追加した。EPMを利用するベンダーも,容易に新機能を追加することができる。

 アナライザで表示するだけではなく,データを表形式で取り出したり,他のツールで分析するためにCSVやMS-Officeの形式で出力したりすることも可能だ。SQL文を記述してEPM Repositoryから直接情報を取り出す機能も用意している。

 EPMは原則としてオープンソース・ソフトで構築している。構成管理システムはオープンソースの「CVS(Concurrent Version System)」で構築しており,メール管理システムには「Mailman」,「FML」,「Majordomo」といったオープンソースのメーリングリスト管理システムを,障害管理システムには「GNATS」,「Bugzilla」といったオープンソースの障害管理システムを採用している。

 また,トランスレータの開発言語にはオープンソースのスクリプト言語「Ruby」を採用し,インポータとアナライザは,オープンソースのWebアプリケーション・サーバー「Tomcat」上でJavaサーブレットとして開発している。さらに,Web表示用のWebサーバーとしてはApacheを,EPMの稼働OSにはオープンソースOSの「Red Hat Linux」を採用している。

構成情報とメール,障害を計測

 では,EPMでどんなデータを自動計測できるのだろうか。

 EPMでは,大きく(1)構成管理データ,(2)電子メールに関するデータ,(3)障害データの3種類のデータを自動計測できる(表1)。構成管理データは,「構成管理システム」が管理するもので,プログラムなどの成果物の参照や変更,削除,移動といった「イベント」に関するデータと,成果物そのものに関するデータを計測する。これにより,プロジェクトの進ちょくをリアルタイムに正確に把握することができる。

表1●EPMで自動収集する主なデータ
表1●EPMで自動収集する主なデータ
[画像のクリックで拡大表示]

 電子メールに関するデータは「メール管理システム」が管理するもので,各メールの送出元,宛先,サブジェクト,受信時刻といったヘッダー情報,メール投稿数,本文行数などを計測する。これらのデータは,開発チーム内のコミュニケーションの状況を把握するのに役立つ。

 最後の障害データは「障害管理システム」で管理するデータで,障害の種類,対処の状態,優先度などを計測する。これにより,先手を打った障害対策を講じることができる。

 アナライザは,これらの情報を単独ではなく重ね合わせて表示したり,複数プロジェクトのデータを重ねて表示したりする。このため,プロジェクト状況に対する関係者間の共通認識の形成にも役立つ。

 EPMで計測するデータ項目はどれも基本的なものだが,これだけ多くのデータを人手で,しかもプロジェクトが進行している最中に収集するには,大きな手間がかかる。その手間を軽減できることの意義は,非常に大きいと我々は考えている。

(次回へ)

神谷 芳樹(みたに よしき) 奈良先端科学技術大学院大学 産学官連携研究員(EASEプロジェクト)
電電公社横須賀電気通信研究所,NTTソフトウェア研究所,NTTソフトウェアなどを経て,2003年4月より現職。EASEプロジェクトに発足時から参加し,2004年10月からSECの研究員も兼務している