特集

学 と 産 の連携による基盤ソフトウェアの先進的開発

データに 基 づく実証的アプローチ
松本健一

＊1

井上克郎

鶴保

征城 ＊3

鳥居宏次 ＊4＊2＊1 奈良先端科学技術大学院大学情報科学研究科＊2 大阪大学大学院情報科学研究科

高 い 生 産 性 を持 つ

産官学連携 による
エンピリカルソフトウェア工学 の 実践

高 信 頼 ソ フ トウ ェア

作 成 技 術 の開 発 ＊｛ 第1 部 ｝

5＊3 情報処理推進機構ソフトウェア・エンジニアリング・センター／
高知工科大学情報システム工学科＊4 奈良先端科学技術大学院大学

背景

データがより重視されるようになってきており，「エソフトウェアは，現代経済社会の基盤として，あらゆEngineering）」と呼ばれている．ソフトウェア工学分
野で最も権威ある国際会議の 1 つ「ソフトウェア工学
国 際 会 議（International Conference on SoftwareEngineering） で も， エ ン ピ リ カ ル ソ フ ト ウ ェ ア 工
学は投稿論文テーマの第 4 位となっている（2008 年
度 大 会 デ ー タ ）． な お，1 位 は program testing andanalysis，2 位は tools，3 位は software architectureand design である．

る産業を支え，かつ，製品やサービスの付加価値を実現している．また，ソフトウェアが社会の隅々にまで行きわたり，その社会的重要性が高まるにつれ，ソフトウェ
アの欠陥（バグ）が引き起こすシステム故障（障害）の影響は，多くの国民にとって非常に大きく，そして，身近なものとなってきている．
一方で，開発当初に計画されたコストと期間の範囲で，

ン ピ リ カ ル ソ フ ト ウ ェ ア 工 学（Empirical Software

要求された機能と品質を持つソフトウェアを開発でき

このように，今日のソフトウェア開発では，ベンダにる割合は低く，国内外共に 30％前後にとどまっている．

とってもユーザにとっても，そして，ソフトウェア工学

ソフトウェア開発の多くは，「プロジェクト」と称され，という学問分野においても，開発プロジェクトを組織的PMBOK で指摘されているように「何らかの点で他とかつ定量的に捉え，分析し，生産性や品質の向上に役立異なる（個別性が高い）」ものである．開発中に起きるてる仕組みや技術の開発と実践がますます重要となってことをすべて予見することは容易ではなく，綿密な計画きている．本稿では，エンピリカルソフトウェア工学のとともに，計画からの逸脱や想定外の事態を検知し，そ基本的な枠組みを説明するとともに，その実践を目指しれに対処する手段を持たなければ，プロジェクトの成功た文部科学省 EASE プロジェクトの活動と産官学連携は望めない．

事例を 3 件紹介する．

特に近年のソフトウェア開発では，ソフトウェア機能と開発プロセス双方の細分化と複雑化が進んでいる．既製ソフトウェアを組み合わせ，複数組織で分担開発されエンピリカルソフトウェア工学たシステムで障害が発生した場合，その原因を突き止め

ロングマン現代アメリカ英語辞典には empirical :るためのコストはこれまで以上に膨大になる．オフショア開発の活発化が，こうした問題の拡大にさらに拍車をbased on scientific testing or practical experience,
not on ideas とある．ここではソフトウェア開発にかけている．

限定して，ソフトウェア開発におけるこうした流れは，ソフトウェア発注者（ユーザ）にも変化をもたらしている．ベ

Empirical（エンピリカル）＝Experimental（大学などでのソフトウェア開発実験ンダ選定の基準は「プロジェクト遂行能力」に移りつつに基づく）あるとされている．開発体制が明確であるか，品質管理・＋ Experienced（ソフトウェア開発現場での経験や生産管理ツールを使用しているか，過去にどのような生実績に基づく）

産性向上の施策を準備・実践してきたか，などが重視さとする．日本語で表記するときには，便宜的に「実証的」れるようになってきている．

や「データに基づく」とすることもある．意訳するなら学問分野においても，従来のソフトウェア工学と比ば，「観察や実験を通じて技術を検証する」や「理論だ較して，ソフトウェア開発に関する実証データや実績けでなく実践経験に基づいて技術を評価する」といった
情報処理 Vol.49 No.11 Nov. 20081257

｛ 第 一 部｝ 高 い生 産 性 を持 つ高 信 頼 ソフト ウェア 作 成 技 術 の開 発

特集

学 と 産 の連携による基盤ソフトウェアの先進的開発

第1段階：観察（Empiricalの実施（Empirical observations）
observations）
・実験や調査により現象（事実）を確認する．
・現象を表現できるようになる．
・現象を表現できるようになる．

ソフトウェア工学研究（学）モデル

第2段階：法則（Laws）の発見（Laws）
第２段階：法則（Laws）の発見

構築，検証

・現象が起こるコンテキスト（状況）を理解する．
・現象を予測できるようになる．
・現象を予測できるようになる．

第3段階：支援（Supports）の実現（Supports）
第３段階：支援（Supports）の実現

・法則を利用して現象を予測，制御する．
・開発を効率よく行い，改善できるようになる．
・開発を効率よく行い，改善できるようになる．

図 -1

データ

モデル

ところである．

対象ソフトウェア（目的変数）
開発コンテキスト（説明変数）

ソフトウェア開発（産）
理解

観測

対象ソフトウェア（目的変数）
開発コンテキスト（説明変数）(b) モデルによるソフトウェアの理解
ソフトウェア工学研究（学）

字通り，ソフトウェア開発がどのように行われているのモデル

か，硬い表現で言えば「現象」を実験や調査によって確認することである．次の段階が「法則の発見」である．

データ

観察を重ねることで，ある現象が発生するための条件はソフトウェア開発（産）
操作

対象ソフトウェア（目的変数）
改善
開発コンテキスト（説明変数）（c）モデルによるソフトウェアの改善

何か，その現象がどれぐらいの頻度で発生するのか，といった傾向なりパターンなりが分かってくる．
すなわち，観測ソフトウェア工学研究（学）

データ参照）．最初の段階は「観察の実施」である．これは文

観測（a）データによるモデルの構築，検証エンピリカルアプローチの 3 段階

エンピリカルアプローチには 3 つの段階がある（図 -1

ソフトウェア開発（産）

図 -2

エンピリカルソフトウェア工学における産学連携現象が起こる「コンテキスト」がはっきりしてくる．コンテキストが分かれば，その出現を捉えることで，現象の予測ができるようになる．産学連携事例として後述す

ンテキストの間の関係を表すモデルを構築，あるいは，る「相関ルールの発見」などは文字通り法則の発見にあ検証することができる（図 -2 (a)）．そして，学においたるが，ソフトウェアの生産性や品質の標準値や分散とて検証されたモデルを利用すれば，開発コンテキストをいったリファレンスデータの構築，プロジェクト特性間知ることで（入力パラメータとしてモデルに与えることの関係やそれら特性が生産性や品質へ与える影響の大きで），対象ソフトウェアをより詳細に理解することがでさ（寄与率）を明らかにする要因分析なども，ソフトウェ

きる（図 -2 (b)）．さらに，主要開発言語，アーキテクア開発のコンテキストを知る手段となる．最後の段階がチャ，平均要員数といった開発コンテキストを操作する「支援の実現」である．第 2 段階において発見された法ことで，対象ソフトウェアの生産性や品質の改善を図る則を利用して現象を予測し，必要に応じて制御することことができる（図 -2 (c)）．図 -2 は，産と学が 1 対 1 でで，開発作業の効率化や改善を実現する．具体的な支援連携する場合を表しているが，官がリエゾン役として産内容としては次のようなものがある．と学の間に入ることで，組織横断的な連携を実現するこ• プロジェクトの工数，日程，品質を高精度で見積もる．
• 進行中のプロジェクトの品質，コスト，納期をコントとができる．

ロールする．

• 進行中のトラブルプロジェクトを再計画する．
• 組織内の全プロジェクトに対して，リソース割り当ての全体計画を作成する．

経済産業省・産業構造審議会・情報経済分科会・情報サービス・ソフトウェア小委員会が 2006 年 9 月に発表した報告書「情報サービス・ソフトウェア産業維新〜魅力ある情報サービス・ソフトウェア産業の実現に向けて〜」にも，• 開発プロセスがどの程度改善されたかをモニタする．

「ソフトウェアの信頼性・生産性の向上という観点

先述の通り，実証データや実績データをより重視するからは，プロジェクトの計画，実装，試験，運用段ということから，エンピリカルソフトウェア工学研究に階における定量的な運営手法などのソフトウェアエおいて産官学連携は自然な流れである．図 -2 に産学連

ンジニアリングに関する実証的な研究を産学官が連携の例を示す．たとえば，産において，対象ソフトウェ携して進めるとともに，その普及に努めることが重アとその開発コンテキストを観測し，観測データを学に要である」

おいて分析することで，対象ソフトウェアとその開発コ「新しい手法の現場への導入を促進するためには，

1258 情報処理 Vol.49 No.11 Nov. 2008

5. 産官学連携 によるエンピリカルソフトウェア工学 の 実践
FY2003

FY2004

FY2005

EPMリリース

ＥＡＳＥラボ

0.91α

FY2006

FY2007

オープンソース化
0.92α

0.92β 0.92β 0.93α
英語版

EPM適用：日立GP

0.93β

EPM適用：高知工科大

EPM適用：三菱SS

0.94β

EPM適用：日立GP

1.00

300

EPM適用：IT Spiral

EASEツール群適用：SEC先進プロジェクト（IPA/SEC）EASEツール群説明会
C C Finder

EPM

EPM

EPM

C C Fi nder

NEEDLENEEDLE EPM EPM
Magi Pro* Pro*200

普及活動等

委員会等

EASE産業部会

図 -3

海外アドバイザーミーティング
外部評価委員会

研究業績計348件
第1回EASE国際フォーラム開催

関西オープン
ソース2004出展

情報処理学会
解説記事掲載IEEE TSE
論文掲載

100

組み込み技術展 APSEC2007
関西2007出展 Exhibition出展

エンピリカルソフトウェア工学研究会

中間成果 NASSCOM
報告会 Keynote Speech

SEC Journal
第2回EASE
最優秀論文賞受賞
国際フォーラム
ワークショップ 経済産業大臣
ISPAW2006開催 表彰受賞

電子情報通信学会
ISS論文賞受賞
ESEM2007 Best
Paper Award受賞

EASE本
出版

EASE プロジェクト年表

理論やガイドラインのみでは十分ではなく，実際の発」の一環として，奈良先端科学技術大学院大学と大阪現場へ適用して成功例を示すことや，現場からの大学が 2003 年度から 2007 年度までの 5 年間実施したフィードバックを得て，さらに理論等を改善してい研究プロジェクトである．EASE プロジェクトの目標は，くことが重要である」

ソフトウェア開発の分野において，計測，定量化，評とある．「定量的な運営手法」「実証的な研究」「成功例

価，およびフィードバックによる改善という手法を実践を示す」「現場からのフィードバック」といった表現は，し，エンピリカルソフトウェア工学の成果をソフトウェ

まさにソフトウェア工学におけるエンピリカルなアプアツールとして具体化すると同時に，産業界と学界が連ローチに属するものであり，産学連携の重要性を説くも携してエンピリカルアプローチの普及とさらなる発展とのでもある．

を後押しすることにあった．

エンピリカルなアプローチは，ソフトウェア工学の従来の枠組みには収まらないものというよりは，産官学連【 エンピリカルソフトウェア工学ラボ 】

携の下に従来の枠組みを補強し研究開発を促進するもの

EASE プロジェクトの中核は，大阪の千里中央に設と言える．たとえば，研究者によって新しい技術が提案置した「エンピリカルソフトウェア工学ラボ（以下，されても，それがソフトウェアの生産性や品質の向上に的な評価結果が示されなければ，その技術を適用するこEASE ラボと略す）」である．協力企業 4 社（日立公共システムエンジニアリング，日立製作所，NTT ソフトウェア，SRA 先端技術研究所）のソフトウェア技術者とに，ソフトウェア開発の現場は躊躇することになる．と大学のポスドク研究員が同居する場であり，工学の原逆に，きちんとした科学的な評価がなされれば，その技点に立ち返り，地道にソフトウェア開発データを集め，術はソフトウェア開発の現場に積極的に導入されるようその評価や分析を通じて改善案を提案し開発現場に適用になる．同様に，ソフトウェア開発者の直感や開発現場するという，図 -2 で示したような産学連携サイクルにに蓄積されているノウハウも，客観的なデータの裏付けおける橋渡し役でもあった．EASE ラボの活動を中心に，があれば，研究の対象となり，より一般的で適用範囲の産官学連携や国際連携，研究業績など，プロジェクト広いモデルや手法の開発につながる．

5 年間の活動概要を図 -3 に示す．
プロジェクト前半，EASE ラボは，主に，ソフトウェ

EASE プロジェクト

ア開発における自動的なデータ収集と分析のためのプEASE（Empirical Approach to SoftwareEngineering）プロジェクトは，文部科学省リーディン
グプロジェクト「e-Society 基盤ソフトウェアの総合開開発する場であった．一般のソフトウェア開発と異なりどのようにつながるのか，客観的なデータに基づく科学

ラ ッ ト ホ ー ム EPM（Empirical Project Monitor） をEPM の業務要件は明確ではなかったため，フィージビリティ検討やプロトタイピングを中心に進められた．そ情報処理 Vol.49 No.11 Nov. 20081259

｛ 第 一 部｝ 高 い生 産 性 を持 つ高 信 頼 ソフト ウェア 作 成 技 術 の開 発

特集

学 と 産 の連携による基盤ソフトウェアの先進的開発
ファイル参照・変更・削除・移動操作情報，対象ファイ
ル／ディレクトリ名，メール管理システムからは，メールの送受信者名，送信時刻，件名，本文行数，障害管理システムからは，障害表の変更履歴，障害の概要・優先度・重要度，などである．
プロジェクト後半，EASE ラボは，分析手法の洗練，データ解釈，技術開発のための議論の場となった．その成果の 1 つが，ソフトウェア開発におけるエンピリカルアプローチを支援するための 15 個のツール「EASEツール群」である．EASE ツール群の名称と機能の概要を表 -1 に示す．ツールそれぞれの具体的な機能や適用事例の紹介，また，いくつかについてはその実行形式が，EASE プロジェクト Web ページで公開されているので参照されたい

6）．

EASE ツール群の 1 つ Project Replayer は，EPM 等で収集されたソフトウェア開発データを基に，ソフトウェア開発プロジェクトを再現し，ビデオプレイヤーのような感覚でプロジェクトの流れを分析できるツールである（図 -5）．5 つのビュー（イベントリストビュー，
図 -4

グラフビュー，メンバビュー，ファイルビュー，メールEPM（Empirical Project Monitor）ビュー）と，再生日時を示すタイムバーから構成され，開発者自身はもちろんのこと，研究者も分析対象のプロの結果，EPM では，ソフトウェア開発者の負担を小さジェクトをより詳細に，素早く理解することができる．

くするため，ソフトウェア開発プロジェクトで広く使用

大学におけるケーススタディでは，ソフトウェア開発プされている，構成管理システム，メール管理システム，ロジェクトにまったくかかわっていない学生であって障害管理システムからデータを収集する方式となったも，開発が滞っていた期間の特定やその理由の把握など，（図 -4）．主な収集データは，構成管理システムからは，開発プロセスの問題点を容易に認識できることが確認さ

プロセス計測・分析

名称

機能概要

EPM (Empirical Project Monitor)

ソフトウェア開発データの自動収集・分析環境で，開発支援ツールの履歴を収集，分析する．

EPM Pro*EPMのトランスレータによって作成されたXMLファイルを入力として，開発プロジェクトの分析・可視化を行う．

EP-Cluster Suite

ソフトウェア開発データの定性的分析補助のために，自然語で記述された文書のクラスタリングを行う．

MPA (Micro Process Analysis)-Plot/type 1

ソフトウェア開発データから抽出された細粒度レベルの作業系列を図示することで，マイクロプロセス分析を支援する．

Project Replayer

EPM 等で収集されたソフトウェア開発データを基に，ソフトウェア開発プロジェクトを再現する．

EASE.CORE

ソフトウェア開発データを開発者個人レベルで収集，分析する．

MUDABlue

潜在的意味解析手法を用いて，ソースコードのカテゴリ集合を作成し，ソフトウェアの分類を自動的に行う．

Stigmata for Web

Java クラスファイルからバースマークを抽出し，比較する．

プロダクト計測・分析 CHAN (Clone History ANalyzer)

版管理システムに登録されているソースコードの情報から，コードクローンの履歴分析を行う．

D-CCFinder

80 台のコンピュータを用いて分散処理型コードクローン検出を行う．

SHINOBI

ソフトウェア保守時にコードクローンを自動的に検出する．

Magi

EASE協調フィルタリング法を利用して，ソフトウェアの開発規模や工数の見積もりを行う．

NEEDLE

ソフトウェア開発データに対して，相関ルールマイニングを行う．

EPDG2 (Electric Process Data Guidebook 2)

定量的管理を取り入れたソフトウェア開発計画の立案を支援する．

D-SNS (Dynamic Social Networking System)

EPM等で収集，蓄積されたソフトウェア開発データに基づいて，開発者が必要としている知識を有する人物を推薦し，知識協創を支援する．

プロジェクト分析

開発管理支援1260 情報処理 Vol.49 No.11 Nov. 2008

表 -1

EASE ツール群

5. 産官学連携 によるエンピリカルソフトウェア工学 の 実践

図 -5

プロセス再現・分析ツール Project Replayer

れている．

Magi は，EASE 協調フィルタリング法を利用した，ワンクリック見積もり & データ診断ツールである（図 -6）．
情報検索技術の 1 つである協調フィルタリング法を応用することで，見積もりに利用するデータに大量の欠損値が含まれていても，高い精度での見積もりが可能となっている．見積もりに利用するデータがあらかじめ定められているわけではないが，代表的なものとしては，

図 -6

ワンクリック見積もり＆データ診断ツール Magi

開発期間，使用言語，使用アーキテクチャ，ファンクションポイント，欠陥数などがある．レビューで発見された欠陥数などから試験工数を見積もるケーススタディでする．より詳しくは，文献 2）を参照されたい．

は，データ欠損率が約 60% という悪条件にもかかわらず，相対誤差平均が従来法の 2211% に対して 79% と◉エンピリカルソフトウェア工学研究会なった．Magi は，見積もりに利用するデータの量や質

エンピリカルソフトウェア工学研究会は，2004 年を診断する機能も備えており，定量データに基づく見積【 EASE における産官学連携活動 】

4 月の第 1 回にはじまり 2008 年 3 月までに計 16 回開催され，毎回 20 〜 50 社の企業の 50 〜 100 名の参加者を集めた．当初は，EASE プロジェクトからの活動報告が中心であったが，IPA/SEC や企業との連携や共同研究がスタートすると，EASE ツール群の適用事例が，◉ IPA/SEC との連携連携企業から多数報告されるようになった．適用事例にEASE プロジェクトにおける産官学連携の代表例の1 つが，2005 年度から実施した，独立行政法人 情報処基づく具体的な議論は，ソフトウェア開発におけるエン理推進機構ソフトウェア・エンジニアリング・センターものであった．

もりに不慣れなユーザでも，見積もり結果の解釈や利用が容易となっている．

ピリカルアプローチの有効性を参加者に強く印象付ける（IPA/SEC）との連携である．IPA/SEC が，経済産業省ほかにも，国際会議の参加報告など海外の研究動向をの指導の下に 2005 〜 06 年度に実施した「SEC 先進プ

随時紹介し，エンピリカルソフトウェア工学に対する関ロジェクト」では，EASE プロジェクトが，データ収集・心の高さやその重要性を産業界に訴えてきた．参加者へ分析手法や EPM 等のツールを同プロジェクトに提供し，のアンケートや意見交換会を通じて，人的ネットワークプロジェクトメンバによる人的支援も行うことで，エンの構築にも努めた．本研究会がトリガとなり共同研究開

ピリカル環境の大規模な適用実験が実施された．

発に発展したケースも多数あり，産学の距離を縮めた先

IPA/SEC との連携は，EASE プロジェクトで開発さ駆的な研究会として，産業界から高く評価されている．

れた手法やツールの有用性を示す場が得られたというだ
けでなく，産業界への普及という点からも，大きな成果を挙げたと言える．活動の一部は，連携事例として後述◉ EASE 産業部会

EASE 産業部会は，EASE プロジェクトのより広範な情報処理 Vol.49 No.11 Nov. 20081261

学 と 産 の連携による基盤ソフトウェアの先進的開発普及を目的として，SI ベンダのソフトウェア技術者をメンバとする組織である．参加企
業は，NTT データ，NTT ソフトウェア，住商情報システム，オージス総研，日本電子計

EPM Pro*PM, PL算，JFE システムズ，SRA 先端技術研究所，構成管理ツール

日立システムアンドサービスなどである．

EPM

グラフ生成機能

障害管理
ツール

…
…

｛ 第 一 部｝ 高 い生 産 性 を持 つ高 信 頼 ソフト ウェア 作 成 技 術 の開 発

特集

EASE プロジェクトが提案する手法やツールの多くは，産業界のニーズに基づいて開発障害を登録

設計書・ソースコードを登録
機能Ａ 機能Bが始められたものである．しかし，学によるコードX コードY検討や具体化の過程を経るにつれ，その狙いや効果がソフトウェア開発現場の技術者か単体 結合 総合らは分かりづらいものとなる場合があった．

EASE 産業部会は，先進的な企業の事例から成功要件を策定することなどにより，EASE設計
図 -7

製造試験

SEC 先進プロジェクトにおけるデータ収集・分析プロジェクトにおける産の視点の維持に大きく寄与した．

• 障害の再現度や重要度も修正工数に影響する．
障害の再現度が低いと平均修正工数は約 2 倍となっ連携事例

た．重要度が「軽微」な障害については，平均修正工

ここまで，エンピリカルソフトウェア工学の基本的な枠組みや産官学連携の現状を EASE プロジェクトの活数が半分以下となった．
観察された現象のいくつかは，Boehm らが 1970 年
1）動を中心に述べてきたが，最後に，具体的な産官学連携代に実施した実験の結果と同様の傾向を示すもので事例を 3 件紹介する．

あるが，障害単位での修正工数に基づいた分析，障害の混入工程との関係や再現度，重要度，発見遅延の原因に【 マルチベンダ開発における障害修正工数の要因分析 】

まで言及した事例は少ない．開発作業や障害対応の遅延

最初の例は，先に紹介した SEC 先進プロジェクトにを検出し，進行中のプロジェクトをコントロールするとおける障害修正工数の要因分析である

3）．開発プロジェ

いった応用が期待されている．

クトは物理的に離れた計 7 拠点で実施され，プロジェ
クト発足当初から EASE プロジェクトと IPA/SEC それ【 システム障害対応データの傾向分析 】

ぞれの研究員がプロジェクト定例会議に参加し，データ

2 つ目の事例は，EASE ラボの協力企業の 1 つ日立製収集体制を構築するとともにデータ分析を担当した．

作所／日立システムアンドサービスとの連携によるもの

データ収集は，設計工程から総合試験までを対象とし，開発で利用される構成管理ツールと障害管理ツールを介である

5）．システム障害対応に見られる傾向を相関ルールとして抽出したものである．

して行われ，分析には EASE プロジェクトで開発され障害対応データの分析は，平均対応日数や平均対応工た EPM と EPM Pro* が用いられた（図 -7）．観察され数など，障害対応全体として見られる傾向に関するものた主な現象は次の通りである．と，特定の障害属性における傾向に関するものに大別で• 障害の発見が遅れると修正工数が極端に大きくなる．

きる．障害対応の改善を考える上では，後者がより有用総合試験での平均障害修正工数は，コーディング／であるが，単にデータを眺めているだけでは分析の手が単体試験でのそれの約 5 倍であった．特に，詳細設かりが得られない．この事例では，相関ルール分析技術

計工程で混入した障害はコーディング／単体試験までを用いることで，特定の障害属性における傾向分析を実に，また，コーディング工程で混入した障害は結合試現している．

験工程までに，それぞれ発見されると，平均修正工数が小さく抑えられることが分かった．

• 障害がプログラム中に滞留する時間が長くなると修正工数は大きくなる．
障害の混入工程と発見工程の差が 2 工程となると，平均修正工数はそれ以下の場合の約 4 倍となった．

1262 情報処理 Vol.49 No.11 Nov. 2008

分析対象は，日立システムアンドサービスで 1999 年から 2006 年までに蓄積された 601 件の障害対応データである．障害対応ごとに，発生日，対策日，対策所要日数，顧客名，システム，バージョン，現象コード，重要度，開発部署名，回答内訳コード，等が記録されている．
相関ルールの抽出には，EASE プロジェクトで開発した

5. 産官学連携 によるエンピリカルソフトウェア工学 の 実践
ソフトウェア開発の「支援の実現」に向けた「観察の実施」
や「法則の発見」であるのに対し，最後のこの事例は，「支援の実現」に向けたものではあるが，コードクローンという大学で開発された技術が，類似不具合発見という支援に役立つかどうかを確かめようとしたものである．
コードクローン検索による類似不具合発見の有用性は，オープンソースソフトウェアを対象とした研究により確認されていた．
この事例では，商用開発のソフトウェアを対象とし，評価における効率性（適合率）と網羅性（再現率）を示し，商用開発の現場への適用の指針となることを目指した．対象はパナソニック MSE において
図 -8

コードクローン検索ツール Libra

開発・保守されている商用システムのうち，OS とプログラミング言語の組合せが異なるソースコード 3 件で，試験工程での不具合修正履歴が記録されたリリース済み

相関ルールマイニングツール NEEDLE が用いられた．のものである．修正履歴から不具合修正前のソースコー

NEEDLE は「項目定義作成機能」「前処理機能」「ルード片を取り出し，取り出したソースコード片を検索キー

ル抽出機能」「例外ルール抽出機能」「ルールフィルタ機としてコードクローン検索を実施し，検索結果と修正履能」から構成される．項目定義作成機能は，対象データ歴から類似の不具合がどの程度検出できているかを実証を量的（数値），質的（カテゴリ）に自動的に判断する的に評価した．コードクローン検索には，CCFinder とものである．前処理機能によって，量的データを離散化

その GUI ラッパーである Libra を用いた（図 -8）．

した上で，ルール抽出機能により，対象データに含まれ評価の結果，コードクローンの検索結果数が 10 件未る規則性を「A → B（A ならば B）」の形式で列挙する．

満となるようなソースコード片を対象とした 3 つの事

出現頻度の下限値を与えることで，列挙されるルールを例では，類似不具合検出の適合率は平均で 78.6%，同絞り込むことも可能である．例外ルール抽出機能は，常じく再現率は平均で 87.4% となった．また，検索結果識ルール（出現頻度の高いルール）を少し変形すること数を限定しない別の事例では，適合率 37.2%，再現率で得られる滅多に起こらないルール（例外ルール）を抽89.3% となった．特に，検索キーとなるソースコード出する機能である．

片のトークン数が大きな場合に大きな適合率が得られる最低支持度（対象データが相関ルールを満たす割合）ことが分かった．

を 3% として相関ルールを抽出し，ルール結論部に，「重コードクローン検索にかかる人的，時間的コストは非要度」か「対策所要日数」を含むものについて，障害対常に小さく，網羅的な検索が可能である．システムテス

応データに詳しい技術者と検討した結果，次のようなトや運用中に緊急で類似不具合を探さなければならないルールが，障害対応の改善に有用であるとされた（部署場合，派生ソフトウェア製品に対して横断的な類似不具名や顧客名は，固有名詞に変わり A，X 等で表記する）．

合を発見しなければならない場合，などにおいて有用と• 部署 A で開発され，顧客 X に納入されたシステム P考えられる．

で重要度中の障害が多い．

• 部署 B で重要度の大きな障害が多い．
• 部署 C で設計されたシステムでの発生障害は 3 日以内に対策される傾向にあるが，部署 D で設計されたシステムでの発生障害には対策が長期化するものがある．
【 コードクローン検索による類似不具合検出 】

活発化するエンピリカルアプローチ
EASE ラボに参加した協力企業のうち NTT ソフトウェアでは，EASE ラボでの活動を受けて，2006 年春から EPM の全社導入を開始している．また，EPM をはじめとして EASE プロジェクトが開発した手法やツールが適用された「SEC 先進プロジェクト」の参加企業は，最後の事例は，奈良先端科学技術大学院大学と大阪大ソフトウェア開発におけるエンピリカルアプローチの有学，そして，パナソニック MSE の三者の連携によるも用性を確信し，その後，自らの資源を投入し，新たなソのである4）．不具合（バグ）修正前のソースコード片をフトウェアエンジニアリング施策へ歩を進めている．

検索キーとしたコードクローン検索による類似不具合検IPA/SEC 自体でも，SEC 先進プロジェクトで用いた出の有用性を実証的に評価した．最初の 2 つの事例が，エンピリカル環境を幅広く普及しその成果を再現可能と情報処理 Vol.49 No.11 Nov. 20081263

｛ 第 一 部｝ 高 い生 産 性 を持 つ高 信 頼 ソフト ウェア 作 成 技 術 の開 発

特集

学 と 産 の連携による基盤ソフトウェアの先進的開発するため，その機能・性能拡充と配布キット化を図るの生産性と品質に関する実証的アプローチの適用範囲を「EPM ツール検証プロジェクト」が推進されている．現

広げ，エンピリカルソフトウェア工学のより先進的な実在 40 社余りの企業が同検証プロジェクトに参加し，ツー践が進められている．

ルの適用や評価が進行中である．また，組込みソフト
ウェア分野における新たな実証プロジェクトも進行中で

参考文献
1 ） Boehm, B. W. : Software Engineering, IEEE Trans. onある．中間法人 JasPar による自動車制御用基盤ソフト

Computers, Vol.25, No.12, pp.1226-1241 (1976).
2）情報処理推進機構ソフトウェア・エンジニアリング・センター編著：

ウェア開発において，EPM 等によるプロジェクト計測が実施計画に組み込まれている．さらに，こうした活動や成果を受け，2 つの業界団体，情報サービス産業協会（JISA） と Information Technology Alliance（ITA）
では，専門の部会が組織され，EPM の実適用作業や相互啓発活動が活発に進められている．
産における実証的アプローチの活発化に合わせるよ
うに，学においても実証性を重視した研究は盛んになりつつある．エンピリカルソフトウェア工学に関する

ソフトウェアエンジニアリングの実践 先進ソフトウェア開発プロジェ
クトの記録，翔泳社（2007）．
3）松村知子，門田暁人，森崎修司，松本健一：マルチベンダ情報シス
テム開発における障害修正工数の要因分析，情報処理学会論文誌，

Vol.48, No.5, pp.1926-1935 (May 2007).
4）森崎修司，吉田則裕，肥後芳樹，楠本真二，井上克郎，佐々木健介：
コードクローン検索による類似不具合検出の実証的評価，電子情報通信学会論文誌，Vol.J91-D, No.10, pp.2466-2477（Oct. 2008）．
5）十九川博幸，森崎修司，松村知子，門田暁人，松本健一：相関ルール
を用いたシステム障害対応データの傾向分析，情報処理学会第 70 回全国大会（Mar. 2008）．
6）http://www.empirical.jp
7）http://www.stage-project.jp（平成 20 年 7 月 31 日受付）

国 際 会 議 International Conference on Empirical

Software Engineering and Measurement（ESEM）は，2002 年 に 奈 良 で 第 1 回 が 開 催 さ れ た International
Symposium on Empirical Software Engineering を前身とするものであるが，2007 年 9 月にスペインのマドリッドで開催された大会では，発表論文 44 編のうち5 編は日本からのものであり，うち 1 編が最優秀論文賞を受賞するなど，日本勢も健闘している．
官においても，ソフトウェア開発における実証的アプローチの重要性や有用性は強く認識されており，2007年 8 月には，文部科学省次世代 IT 基盤構築のための研究開発「ソフトウェア構築状況の可視化技術の普及：エンピリカルデータに基づくソフトウェアタグ技術の開発と普及」がスタートした

7）．StagE プロジェクトと名付けられたこの研究開発では，ソフトウェア開発データを「ソフトウェアタグ」としてソフトウェア製品に添付することで，ソフトウェアの発注者やエンドユーザにもオープンにする．さらに，オフショア開発や法的問題への対応という新しい視点を加えることで，ソフトウェア

1264 情報処理 Vol.49 No.11 Nov. 2008松本 健一（正会員） matumoto@is.naist.jp
平成元年大阪大学基礎工学部情報工学科博士課程中退．同年同大助
手．平成 5 年奈良先端科学技術大学院大学助教授．平成 13 年同大教授．工学博士．文部科学省 StagE プロジェクト研究代表者．電子情報通信学会，日本ソフトウェア科学会，ACM 各会員．IEEE Senior

Member.
井上 克郎（正会員） inoue@ist.osaka-u.ac.jp
昭和 59 年大阪大学基礎工学部情報工学科博士課程修了．同年同学科助手．昭和 59 〜 61 年ハワイ大マノア校情報工学科助教授．平成元年大阪大学基礎工学部情報工学科講師．平成 3 年同学科助教授．平成 7 年同学科教授．平成 14 年同大情報工学科コンピュータサイエンス教授．工学博士．ソフトウェア工学の研究に従事．日本ソフトウ
ェア科学会，IEEE，ACM 各会員．
鶴保 征城（名誉会員） tsuruho@ipa.go.jp
工学博士．昭和 41 年大阪大学修士課程修了．NTT（株），（株）NTT
データを経て，NTT ソフトウェア（株）代表取締役社長．平成 15 年より高知工科大学教授，平成 16 年より独立行政法人情報処理推進機構（IPA）ソフトウェア・エンジニアリング・センター（SEC）所長．
鳥居 宏次（正会員） torii@is.naist.jp
電気試験所，大阪大学，奈良先端科学技術大学院大学を歴任後，平成 13 〜 17 年同学長．EASE プロジェクト代表．平成 20 年合同会社「EASE 創研」設立．ACM，IEEE，電子情報通信学会，本会各フェロー．