エンピリカルソフトウェア工学とは
ソフト工学のメインストリームを裏側から支える
エンピリカルとは"experimental"と"experienced"を合成した言葉で、エンピリカルソフトウェア工学と言えば、実証データに基づいたソフトウェア工学ということを意味します。通常で言うソフトウェア工学では、コンパイラ、CASE、オブジェクト指向などといった理論的な潮流がメインストリームとしてありますが、エンピリカルソフトウェア工学は、この理論的な流れを実データに基づいて裏付けていく作業のことを言います。1990年代の後半より起こったまだ新しい学問領域です。
エンピリカルソフトウェア工学では、ソフトウェアを計測することで理論化の作業を行い、例えば、この範囲内ではこの仮説に妥当性があるが、ここを外れた場合には妥当性はなくなるというような判断を行います。実際のソフトウェア開発の場面で、見積もりや品質予測に役立つ実践的な学問分野となっています。
生産的な議論のために使えるツール
ソフトウェア開発は開発者の経験や感覚がものをいう世界です。もちろん経験や感覚は重要なファクターですが、それだけに開発者の一人ひとりが意見を言い合うだけで、生産的な議論がなかなかできにくいということが言えます。そのような時に、エンピリカルソフトウェア工学を用いることで、否定しにくい証拠を結果として示すことができ、無駄な議論が避けられます。
例えば、Microsoft Windows Vistaの開発事例をテーマにしたある研究論文では、開発する組織が複雑であればあるほど、それがつくられたソフトの品質に影響を与えるというソフトウェアの品質予測の仮説が提示されています。あるいは、リソースの制約がある中で、リスクを回避しながらどう計画を立てていけば良いかを議論するリスク分析研究もあります。これらの知見が開発現場で役立てられれば、より生産的な現場をつくることができるようになると考えられます。
計測データ利用の国際的動向
現在、エンピリカルソフトウェア工学の国際コミュニティにはクローズなものとオープンなものの2つがあります。前者はISERN(International Software Engineering Research Network)という産学からなる研究コミュニティで、後者の1つにISESE(International Symposium on Empirical Software Engineering)という国際シンポジウムがあります。両者ともに世界各国で持ち回りで毎年開催されています。
ちなみに日本国内では、文科省の「e-society 基盤ソフトウェアの総合開発」のサブテーマの一つとしてEASE(Empirical Approach to Software Engineering)プロジェクトが、主として私どもの奈良先端技術大学院大学と大阪大学で推進しております。
さて、ここでエンピリカルソフトウェア工学の海外の動きをかいつまんでご紹介します。
まずヨーロッパでは、旧西側諸国が旧東側諸国に開発業務を委託するいわゆる“nearshore”の動きが顕著になっており、意思決定に際して透明性を確保しようという狙いから計測を用いようとする動きが出ています。
次にアメリカですが、こちらはアウトソーシングの基準に計測データを用いるという傾向が顕著です。ITソーシングアドバイザーが顧客企業から開発案件の内容をヒアリングしベンダーを選定する際に、計測データが重要な武器になっているわけです。マイクロソフト社の研究部門にもエンピリカルソフトウェア工学チームが設置されています。
一方、中国やインド等の開発途上国では、自身の開発品質を証明するために計測データを用いています。例えば、中国のCSBSGは定量データを集めたベンダーのベンチマークデータベースがありますし、インドのL&T Infotechの生産管理ツールSplice-Mは開発中の定量データを計測するツールとして開発されています。