IPAが“エンピリカル”なソフト開発手法を推奨

バグの量や滞留時間を定量分析する新アプローチ

2007/09/28

 ソフトウェア工学は、アルゴリズムやシステムアーキテクチャといった分野で大きな成果を上げてきた。しかし、開発プロジェクトの「活動」の分析となると、経験を積んだエキスパートによる主観的な判断やカンに頼るのが現状だ。

ipa01.jpg IPA SEC エンタプライズ系プロジェクトリーダー 長岡満夫氏

 こうした状況に対して、情報処理推進機構(IPA)ソフトウェア・エンジニアリング・センター(SEC)では、「現場におけるソースコードやバグといったデータを基にして、ソフトウェア開発をエンジニアリングしていく」(IPA SEC エンタプライズ系プロジェクトリーダー 長岡満夫氏)、「エンピリカル・ソフトウェア・エンジニアリング」の普及に力を入れている。「エンピリカル」(Empirical)とは実験や観察を通して得られた知見や、現場での実績・経験に基づいた技術や手法を利用すること。

 2003年から大阪大学と奈良先端科学技術大学院大学が中心となって産学連携で行ってきたプロジェクトを通じて開発されたツールや、IPA未踏ソフトウェア創造事業で採択され、産業技術総合研究所が開発を続けるツールの最新版など、計5つのツールが含まれる。ツール群は、プロジェクト状況の定量的把握を行うツール、ソースコードの類似部分を把握するツール、プロジェクト・マネジメントの弱点やリスクを把握するためのツール、作業工数見積もり精度を把握するツール、チームとしてのスキル状況を把握するツールからなる。定量分析を行うことで異変の早期発見、類似部分の共通化・リファクタリングによる効率化などを行う。

 ツール群はCVS、Subversion、Bugzilla、Majordomoなど、オープンソースベースの開発ツールに対応し、XML形式で各種データをリポジトリに蓄積する。蓄積されたデータを分析することで、リアルタイムでプロジェクト改善のためのフィードバックを行う。

 収集されるデータは、例えば開発用PCの延べ使用時間、コミットされるソースコードの行数、ソフトウェア障害の数、除去に要した時間、原因、影響度など現場の開発に関わるものから、ソフトウェアへの投資額や顧客満足度といった聞き取り調査によるデータまでを含む。

 2004年10月に設立されたSECでは、これらのツール群の集大成を2008年1月に公開するほか、この10月には書籍「エンピリカルソフトウェアエンジニアリングの勧め」を出版する。実際にツールを適用する例として約30社がツールを使っているほか、実証実験プロジェクトとして、トヨタ自動車、デンソー、NTTデータ、NECなどマルチベンダが参加する実際の中規模開発プロジェクトでも2年間の開発期間を通じてツールによるデータ収集と分析を行ったという。

 SECでは今後、同プロジェクトで実践した分析方法を取り込むほか、実プロジェクトによるさらなる実証を行っていくという。

(@IT 西村賢)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)