情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

大規模ソフトウェア保守のための影響波及量尺度
インパクトスケール小林 健一1,a)

松尾 昭彦1

井上 克郎2

早瀬 康裕3上村 学1

吉野 利明4

受付日 2012年5月14日, 採録日 2012年11月2日

概要：ソフトウェア保守においては変更時に他に及ぼす影響の大きいモジュールほど扱いが難しい．本稿
では障害予測の精度向上を目的として，変更の影響波及量を定量化するメトリクス「インパクトスケール」
を提案する．ソフトウェア保守において効果的な障害予測を行うには，プロダクトメトリクスとプロセス
メトリクスの両方が必要といわれている．しかし，実際の保守現場においてはプロセスメトリクスの入手性は低く利用可能な状況は多くない．インパクトスケールの目的はプロセスメトリクスの得られない状況
で従来のプロダクトメトリクスより効果的な障害予測を実現することであり，その影響波及モデルは確率的な波及と関係依存的な波及という特徴を持つ．インパクトスケールの有効性検証のため，2 つの大規模企業システムを対象として，ポアソン回帰分析と工数考慮モデルを用いて障害予測を行う実験を実施した
ところ，インパクトスケールを既存のプロダクトメトリクスからなる予測モデルに追加することにより，10%検査工数における障害検出数が 50%以上上昇するという結果を得た．また，既存のプロダクトメトリ
クスに依存ネットワーク尺度をあわせた予測モデルに対しても予測性能が上昇するという結果を得た．
キーワード：ソフトウェア保守，メトリクス，障害予測，影響波及解析，グラフ解析

ImpactScale: Change Impact Metric for Maintenance of Large
Software Systems
Kenichi Kobayashi1,a) Akihiko Matsuo1 Katsuro Inoue2 Yasuhiro Hayase3
Manabu Kamimura1 Toshiaki Yoshino4
Received: May 14, 2012, Accepted: November 2, 2012

Abstract: In software maintenance, changing modules which aﬀect many other modules are intractable.
We deﬁned a new metric, ImpactScale, which quantiﬁes the scale of the change impact of a module to improve the accuracy of fault prediction. Both product metrics and process metrics are required to predict
faults eﬀectively in maintenance. However, process metrics cannot be always collected in practical situations. ImpactScale is designed to improve the accuracy of fault prediction by using only product metrics
under situations without process metrics. The change propagation model for ImpactScale is characterized byprobabilistic propagation and relation-sensitive propagation. To evaluate ImpactScale, we predicted faults
in two large enterprise systems using Poisson regression and the eﬀort-aware models. The results showedthat adding ImpactScale to existing product metrics increased the number of detected faults at 10% eﬀort byover 50%. ImpactScale also improved the predicting model using existing product metrics and dependency
network measures.
Keywords: software maintenance, metrics, fault prediction, change impact analysis, graph analysis
1

2

3

4

a)

株式会社富士通研究所ソフトウェアシステム研究所
Software Systems Laboratories, Fujitsu Laboratories Limited, Kawasaki, Kanagawa 211–8588, Japan
大阪大学大学院情報科学研究科
Graduate School of Information Science and Technology,
Osaka University, Suita, Osaka 565–0871, Japan筑波大学システム情報系
Faculty of Engineering, Information and Systems, Universityof Tsukuba, Tsukuba, Ibaraki 305–8573, Japan
富士通株式会社フィールドイノベーション本部
Field Innovation Unit, Fujitsu Limited, Kawasaki,
Kanagawa 211–8588, Japan
kenichi@jp.fujitsu.com

c 2013 Information Processing Society of Japan

1. はじめにソフトウェアの障害予測はレビュー，テスト，品質およびリスク管理を支援する手段として大きく成果をあげている [1], [2]．しかし，リリース後や保守フェーズにおける障害予測はリリース前に比べ困難となる．障害予測には障害と関係の強いメトリクスが説明変数として必要であるが，リリース前障害と相関が高いメトリクス群とリリース後障害と相関が高いメトリクス群は異なり [3], [4]，リリース前

870

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)に有効なメトリクスはリリース後や保守では多くの場合そ関係グラフに対して行い，SNA 分野からネットワーク尺度の有効性を失うためである．たとえば Fenton ら [3] は，リを導入し予測モデルに追加することで障害予測の性能が向リース前には McCabe の循環的複雑度 [5] と障害との間に上すると報告した．ネットワーク尺度はプロダクトメトリ

相関があったが，同じソフトウェアのリリース後には相関

クスではあるが，前述の Cataldo らによる構文的依存関係がほぼなかったという事例を報告している．

の分類の中には含まれない．

保守では，ソースコードから採取されるプロダクトメト

我々は，Zimmerman らによって用いられたネットワー

リクスだけでは実用的な性能の障害予測が難しいため，ソク尺度と，Cataldo らの論理的依存関係の分類が障害潜在

フトウェアプロセス・障害履歴・変更履歴などから採取さ性の共通要素を示していると仮定した．そして，ソース

れるプロセスメトリクスを併用して予測性能を上げる試み

コードの影響波及解析 [13] を行えば，論理的結合関係にがなされている [6]．たとえば，過去に変更が行われた箇所

よって曝されるような暗黙の依存関係を抽出できると仮は他より障害が起こりやすいという観測に基づく研究が行定した．影響波及解析はソフトウェアのある部分が変更さわれている [4], [6], [7]．

れた場合にその影響を受ける範囲を同定する技術である．

しかしながら，現実の保守では経年にともなうドキュメ

Cataldo らの実験では，対象モジュールに関わる論理的結

ントの陳腐化や人材の流出，レガシーゆえの版管理システ

合関係の数がそのモジュールの障害回数と最も相関が強ムの未整備，保守アウトソーシングビジネスのベンダ切替かった．よって，変更の影響範囲の大きさの推定値も同様

えなどにより，ソースコード以外の情報が残されている場に障害回数と相関が強いと期待し，以下の仮説を立てた．

合は多くない．障害案件情報は比較的入手性が高いが，修正履歴やプロジェクト履歴などはその重要性が近年まで認仮説 1： 影響波及量を定量化したメトリクスは大規模ソ識されていなかったこともあって維持されている場合が少

フトウェアにおいて障害予測の性能を向上させることがでなく，プロセスメトリクスが採取できない場合が多く，プきる．

ロダクトメトリクスのみが利用可能な状況で障害予測の性能を高めることは実用上の価値が高い．そのためにはソー

しかし実際には，影響波及範囲を正確に求めることは難スコードから障害要因と関係の強い情報を採取する必要がしい．静的解析による影響波及解析 [14] には偽陽性の範囲ある．長く保守が続くソフトウェアでも除去が難しい障害を過剰に導出するという短所があり，精度を上げるために要因の 1 つにソフトウェア内の依存関係がある [8], [9]．ソは莫大な計算量を必要とする．動的解析による影響波及解

フトウェア内のモジュールが変更されたとき，依存するモ析 [15] では偽陽性を抑え影響範囲を絞り込むことが可能でジュールにも変更が必要になる可能性がある．その変更はあるが，利用頻度が稀な箇所は実行履歴に残りにくく，影

また新たな変更を招き，すべての必要な変更が完了するま

響範囲の見落としを招くという短所を持つ．また，実稼働

でソフトウェア内を波及していく．この波及効果 [10] の見システムでは，運用上の理由から動的解析を実施できない

逃しは障害発生の典型的な一因である．Hassan ら [9] は論場合も多い．対象モジュールへの変更内容が事前に分かっ

理的結合関係（logical coupling）[8] が変更波及の認識に利ている場合には影響範囲を求める実践的な技法も提案され用できると報告している．論理的結合関係とはソフトウェているが [16]，我々の目的のためには影響波及範囲は変更

ア内の同時変更関係であり，同時変更により暗黙の依存関を実施する前に知る必要がある．結論として，偽陽性を抑係が観測されたと見なせる．論理的結合関係の強度が障害

えつつ影響波及範囲を求めることは困難といえる．

と関係があることがよく知られている [6]．

ここで，仮説 1 の焦点は影響波及範囲を正確に求めるこGall らはソフトウェアの依存関係の分類を行い，ソーとではなく，より緩和された問題である「影響波及の大きスコードに記述された直接の依存関係を構文的依存関係とさの推定」であることに注目する．本稿では，影響が確率

し，プロセスから採取される論理的結合関係などを論理的的に波及し，かつ二項間に定義された関係に依存して波及依存関係とした [8]．構文的依存関係はプロダクトメトリを制御する制約を持つ波及モデルを定義し，そのモデル上

クスにより，論理的依存関係はプロセスメトリクスによりで影響波及範囲の広さを推定することとした．この推定値計測される．Cataldo ら [11] は様々な依存関係と障害とのを我々は影響波及量を表すメトリクス「インパクトスケー

相関を比較し，構文的依存関係と障害との間の相関は有意

ル」と名付けた [17]．このインパクトスケールの妥当性は，ではないまたは弱く，論理的依存関係と障害は有意であり以下の仮説に立脚する．

最も強かったと報告している．この報告は，既存のプロダ
クトメトリクスだけでは保守の障害予測には不十分であるという一事例である．

Zimmerman ら [12] は ソ ー シ ャ ル ネ ッ ト ワ ー ク 解 析

仮説 2： 確率的かつ関係依存的な波及を持つ波及モデル
は，正確だが計算量やデータ収集コストが大きい解析の代わりとなるのに十分な予測性能を持つ．

（SNA）をソフトウェアのバイナリモジュール間の依存

c 2013 Information Processing Society of Japan

871

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

本稿の構成を以下に示す．2 章で影響波及量を表す新しいメトリクス「インパクトスケール」を定義する．3 章では既存の予測モデルにインパクトスケールを追加すること
で予測性能が上昇するかを評価する．4 章ではインパクト
スケールの効果と定義の妥当性について考察し，5 章では関連研究について述べ，最後に 6 章でまとめる．

2. インパクトスケール

図 1

依存グラフ GD （左）と波及グラフ GP （右）の例

Fig. 1 Example of dependency graph GD (left) and propagation graph GP (right).

本章では，新しいメトリクス「インパクトスケール」（ImpactScale，IS）を定義し，その基盤となる影響波及モ
デルについて述べる．

2.1 依存グラフと波及グラフ
まず本稿で用いる影響波及モデルについて述べる．ソフ

図 2

確率的な波及の例

Fig. 2 Example of probabilistic propagation.

トウェアの構成要素であるコードエンティティ（メソッドや関数など）やデータエンティティ（データベースのテー
ブルやグローバル変数など）をノードとし，ノード間の依存関係を辺（本稿では，辺はすべて有向辺）とするグラフ構
造で表したものを依存グラフと呼ぶ．依存関係には，コー
ル依存やデータ依存など様々な種類があり，この種類を「関係タイプ」と呼ぶ．依存グラフはノード間の辺が多重であってもよい．依存グラフ GD は GD = V, E で定義される．V はノードの集合，E は辺の集合である．辺 e ∈ E は

e = s, t, rel  で定義される．s ∈ V は始点ノード，t ∈ V
は終点ノード，rel ∈ Rel は関係タイプである．Rel は関係

図 3

関係依存的な波及の例

Fig. 3 Example of relation-sensitive propagation.

おく．たとえば，図 2 の波及グラフにおいて，ノード v0
からノード v1 への辺 e1 があるとき，v0 から v1 への影響

タイプの値域集合である．
図 1 左に依存グラフの一例を示す．図の依存グラフには波及率 r1 の確率で伝わるとする．同様に，v1 から v2 へは，CALL，READ，WRITE の 3 種の関係タイプがある．図の影響は波及率 r2 の確率で，v0 から v2 への影響は r1 r2 のの関数 A が関数 B をコールするとき，関数 A から関数 B

確率で伝わるとする．

への CALL 関係があると呼ぶ．関数 A と関数 B は状態を共有したり実装を分担したりする可能性があり，A から B

2.3 関係依存的な（relation-sensitive）波及への波及も B から A への波及も可能性を排除できない．

前述のとおり波及の追跡戦略を保守的としたため，影響離れたエンティティ間の論理的依存関係を見逃さないため範囲が過剰に見積もられる恐れがある．これを抑制するたには，波及が双方向に起こりうるという保守的な戦略をとめの制約を波及追跡戦略に課する．たとえばコールグラフ

る必要がある．

解析では，解の精度を上げるために，経路探索の打ち切り

波及グラフは依存グラフに依存グラフの辺を反転させた辺（以降，カットと呼ぶ）に過去のコール経路や状態を参照すを追加したものである．依存グラフ GD = V, E に対応するコンテクスト依存（context-sensitive）解析がしばしば利る波及グラフは GP = V, EP  と定義される．EP は EP =用される [14]．コンテクスト依存解析は計算量が大きくそE ∪ {reverse(e) | e ∈ E} で定義される．reverse(e) は辺のままでは利用できないが，我々はそこから解決のための

e = s, t, rel  を反転した辺 e = t, s, R rel  を意味する．関着想を得た．

係タイプ R rel は rel を反転した関係タイプを意味する．影

計算量の爆発を抑えるために，現実的に収集可能かつ追加

響波及量の計算はこの波及グラフの上で行われる．図 1 右はの計算量が最小となるコンテクストである「前の辺の関係タ

図 1 左の依存グラフ GD に対応する波及グラフ GP である．

イプ」を用いる．具体的には，あるノードから次の辺への波及のカットの是非を，前の辺の関係タイプと次の辺の関係タイ

2.2 確率的な波及

プの組を定義域とする写像 Cut: Rel × Rel → {True, False}

Haney [10] は，モジュールの変更が他のモジュールに確で決定する．たとえば，図 3 に示す波及グラフと写像 Cut に率的に伝わるという解析モデルを提案し，同様の仮定をおおいて，ノード v の前の辺 e1 の関係タイプが rel prev 1 ，次のいた研究が行われてきた [18], [19]．本稿でも同様の仮定を

辺 e3 の関係タイプが rel next3 のとき，Cut(rel prev 1 , rel next3 )c 2013 Information Processing Society of Japan

872

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)は True なので波及はカットされる．この関係タイプによっ

写像 Cut の上の表記の条件部をカットルールと呼ぶ．

て制御された波及を「関係依存的な（relation-sensitive）波

前記のカットルールは発見的であり，その妥当性は 4 章で及」と呼ぶ．

議論するが，ここではその意図を述べる．CALL から CALLへの波及はトップダウン設計に沿って上位モジュールの2.4 インパクトスケールの定義変更が下位モジュールに波及することを想定し，R CALL

本節では，インパクトスケールの定義を示す．波及グラ

から R CALL への波及はボトムアップ設計に沿って下位モ

フ GP = V, EP  上で，ノード s からノード t へのあるパジュールの変更が上位モジュールに波及することを想定

ス p を，その経由する辺 ei を用いて p = (e1 , e2 , . . . en ) としている．Rule1 は CALL から R CALL への波及をカット表す．p は辺の経由順の順序列であり，e1 の始点が s，en のし，Rule2 は R CALL から CALL への波及をカットするも終点が t である．このパスは厳密にはグラフ理論の用語ののであるが，これらは，一方の設計に沿っていながら，他

トレイル（trail）であり，同じノードを複数回通過しても方の設計へ切り替えることは起きにくいという推測から設かまわない．辺 ei の波及率 ri は次式で与えられる．

けた．Rule3 は，データフロー解析からの類推から設けた．

ri = RP · m(ei )RP は基本波及率であり本稿では 0.5 としている．m(ei )は辺 ei に付随する波及補正値であり，(0, 1] の範囲または

1/RP の値をとるが，通常は 1 である．パス p を介する影
響波及量 Qpath (p) は次式で与えられる．
n
n

1 
Qpath (p) =ri = RP n−1m(ei )
RP i=1i=1

2.6 計算量
インパクトスケールの計算の大部分は経路探索に占められる．波及グラフは多重辺を持つグラフであるため，通常のグラフアルゴリズムは適用できない．Whaley ら [20] は
コンテクスト依存解析のために，ノード複製によりコンテクスト付きの複雑な経路探索問題をコンテクストなしの単純な経路探索問題に帰結する方法を示した．この方法を用s から t への到達可能なすべてのパスの集合を Ps,t とす

いると，インパクトスケールの経路探索も多重辺のない単る．Ps,t は波及グラフを探索して求められる．探索中にある

純なグラフ上の経路探索問題に帰結でき，通常のアルゴリ

ノードに到達したときの次の辺への波及の是非は，写像 Cut

ズムが適用できる．ダイクストラの最短経路アルゴリズムで決定される．なお，始点から次の辺へは必ず波及するとを波及グラフ GP = V, EP  に適用した場合，R を関係タイする．s から t への影響波及量 Q(s, t) は次式で与えられる．
⎧⎨ max Qpath (p) : Ps,t = φQ(s, t) = p∈P s,t⎩0: Ps,t = φ

プの種類数とすれば，計算量は O(R|EP | + R|V| log(R|V|))

Q(s, t) の計算は本質的には最短経路問題の求解と等価である．s のインパクトスケールを IS(s) と表すと，IS(s) は次式で与えられる（V\s は V から s を除いた部分集合の意）．
IS(s) =Q(s, t)t∈V\s以上からなる 4 つ組 IS, RP , Rel, Cut が，インパクトス
ケールの定義である．

2.5 カットルール

である．これは対象システムが大規模であっても実用的な時間で計算可能であることを意味する．

2.7 計算例
図 4 左はノード C のインパクトスケールの計算例である．パス (C → A)，(C → D)，(C → X)，(C → X, X → F)，(C → X, X → F, F → E)，(C → X, X → F, F → H) が探索されている．辺 C → A の関係タイプは R CALL で，辺 A → Bの関係タイプは CALL であるため，パス (C → A, A → B)
は Rule2 によって辺 A → B の箇所でカットされる．同様に，パス (C → X, X → F, F → H, H → G) は Rule1 によって辺 H → G の箇所でカットされる．C のインパクトス

関係タイプの値域集合 Rel と写像 Cut は抽出する依存
関係と目的に応じて自由に設定でき，本稿では，Rel ={CALL, READ, WRITE, R CALL, R READ, R WRITE} と す
る．CALL はコール，READ はリードアクセス，WRITE
はライトアクセス（リードアクセスも含意する）を意味し，

R CALL，R READ，R WRITE はそれぞれ反転された関係タイプである．写像 Cut は次式を用いる．
⎧⎪
True : p = CALL∧n = R CALL · · · (Rule1)⎪⎪⎪⎨ True : p = R CALL∧n = CALL · · · (Rule2)
Cut(p, n) =⎪True : p = READ
· · · (Rule3)⎪⎪⎪⎩
False : otherwisec 2013 Information Processing Society of Japan

図 4 インパクトスケールの計算例

Fig. 4 Example of calculating ImpactScale.

873

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

表 1 評価対象ソフトウェアのプロファイル

ケールは Q(C, A)，Q(C, D)，Q(C, X)，Q(C, F)，Q(C, E)，

Q(C, H) の合計であり，4.0 である．

Table 1 Proﬁles of the target software systems.

図 4 右はノード J のインパクトスケールの計算例であり，「関係依存的な波及」の特徴的なケースが現れている．

(J → K, K → L) というパスは Rule1 により辺 K → L の箇所でカットされるが，別のパス (J → K, K → Y, Y → K, K → L)
表 2というパスはカットされない．結果として，J からの影響採集したメトリクス

Table 2 Collected product metrics.

は L まで波及する．J のインパクトスケールは Q(J, K)，

Q(J, Y)，Q(J, L) の合計であり，1.625 である．データノー
ド Y は J から L への媒介として働くため，Y がなければ Kまでしか波及せず J のインパクトスケールは 1.0 となる．

2.8 用途インパクトスケールの用途として，たとえば以下のものが想定される．

• 限られた予算と期間の下での障害予測を用いた品質改善．特に本稿は次節以降でこれについて述べる．

的な規模を持ち，そして，ソースコード解析の精度の影響• バグ修正作業の早期見積り．修正対象となるソースをこの評価において最小化するために解析の容易な言語でコードからの影響範囲の大きさは，コードレビューや記述されていることである．2 つのシステムから収集した

回帰テストなど修正作業の工数に直接影響するため．

データセットを DS1，DS2 と称し，そのプロファイルを• ソフトウェアシステム全体の早期の品質監査．

表 1 に示す．両システムは COBOL 言語で記述されてお• ソフトウェアのモジュラリティを維持するためのコーり，それぞれについて我々は近年の 40 カ月分の障害レポー

ド修正作業の監視．インパクトスケールの目立った上昇は，モジュラリティ違反の兆候である．

3. 評価

トを収集した．
本評価では，1 モジュールは，COBOL 言語の「プログラム」であり，ソースファイル 1 本である．
「プログラム」
はコール命令の対象となる単位で，他言語の関数に相当す

仮説 1 と仮説 2 の検証と，インパクトスケールの有効性る．採集したメトリクスを表 2 に示す．「セクション」はを評価するため，以下の研究課題（research question）を

COBOL 言語特有の概念で，関数内部のサブブロックに相

設定する．

当する．

RQ1： インパクトスケールを既存のプロダクトメトリ
クスに加えることは障害予測性能を向上させられるか？

3.2 インパクトスケールの測定
インパクトスケールの測定は以下の手順で行われる．

RQ2： インパクトスケールを既存のプロダクトメトリ

まず，測定対象ソフトウェアから静的解析でコール命令

クスとネットワーク尺度をあわせたものに加えることは障（CALL）と，データベースやファイルへのアクセス操作

害予測性能を向上させられるか？

（READ，WRITE）を抽出する．次に，依存グラフと波及グ
ラフを構築する．そして，その依存グラフのすべてのノー

続く節の構成は以下のとおりである．

ドについて，インパクトスケールを前述の定義に従い計• 3.1 節〜3.3 節では実験の設定について説明する．

算する．ここでは m(e) はすべて 1.0 とした．対象システ• RQ1 については，障害予測性能の評価を，3.4 節で二ムにおける計算時間は数十秒であった（使用した CPU は

項判別を用いて行い，3.5 節で工数考慮モデル [21] をCore2Duo 2.5 GHz）．図 5 に測定されたインパクトスケー

用いて行う．

ルの分布と統計量を示す．図中，ほとんどのモジュールが• RQ2 については，3.6 節で工数考慮モデルと階層モデ
ル分析を用いて行う．

小さいインパクトスケールの値を持ち，ごく一部が大きな値を持つ．我々の経験では，この傾向はほとんどの大規模ソフトウェアにおいて共通する．

3.1 評価対象ソフトウェア
我々は評価対象として，2 つの企業から大規模な勘定系

3.3 反復検証

ソフトウェアシステムのデータを入手した．これらを選ん結果の妥当性を保証するため，各データセットの各評価だ規準は，長期間保守されており，適用領域における標準につき 100 回のランダムサブサンプリングバリデーション

c 2013 Information Processing Society of Japan

874

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

表 3 二項判別における障害予測性能の向上

Table 3 Performance improvement in binary classiﬁcation.

図 5 測定されたインパクトスケール

Fig. 5 Measured ImpactScale.

を行った．100 回の反復のそれぞれにおいて，対象データ
セットの全モジュール中の 2/3 を訓練セットとしてランダ
ムに選び，残りの 1/3 のモジュールをテストセットとして用いて，予測性能の測定を行う．障害率は数%と低いが，両データセットともサンプルサイズが大きく障害数も十分であるため，層別サンプリング（Stratiﬁed sampling）のよ
うな特別な処置は行っていない．比較対象群の差異の有意性検定には，標本サイズ 100 に対する Wilcoxon の符号順位検定を用いた．

VIF（Variance Inﬂation Factor）が 10 以上となったモデルは除外した [23]．

3.4.3 モデル学習とテスト
各反復において，表 2 にあげたインパクトスケール以外の既存メトリクスを用いて最良モデルを学習したものが「モデル MET」である．同様に既存メトリクスとインパク
トスケールをあわせて最良モデルを学習したものが「モデル MET+IS」である．学習とテストでは，障害数が 1 以
上であれば障害あり，障害数が 0 ならば障害なしとして

3.4 二項判別による評価（RQ1）扱った．

本節では，インパクトスケールを既存のプロダクトメト
リクス群に追加することで，予測性能向上が得られるかを評価するために，二項判別を行う．

次に，テストセットに対して予測を行った．テストセッ
トの各モジュールに対し，目的変数 y が所定の閾値以上ならばそのモジュールを障害モジュールと分類した．DS1 と3.4.1 ロジスティック回帰

DS2 の両方とも障害率が低い（3.7%と 2.7%）ため，閾値

分類器としてロジスティック回帰モデルを用いる．ロジスティック回帰モデルは次式で表される．

y=だ．多重共線性を避けるために，説明変数のいずれかのは 0.1 とした．

3.4.4 性能尺度

exp(b1 x1 + b2 x2 + · · · + b0 )1 + exp(b1 x1 + b2 x2 + · · · + b0 )

予測性能の評価のため，各バリデーションにおいて適合率（Precision）と再現率（Recall）と F1 値を用いる．TP

このとき，y は目的変数，各 xi は説明変数，各 bi は偏回を障害ありと観測され障害ありと予測されたモジュール数，

帰係数である．式 b1 x1 + b2 x2 + · · · + b0 は線形予測子と呼TN を障害なしと観測され障害なしと予測されたモジュー

ばれる．偏回帰係数を推定するためには最尤推定法を用い

ル数，FP を障害なしと観測され障害ありと予測されたモる．目的変数 y（0 < y < 1）は障害潜在確率と解釈される．

ジュール数，FN を障害ありと観測され障害なしと予測さ3.4.2 モデル選択れたモジュール数とすると，適合率は TP/(TP + FP) と各反復において，各訓練セットに対する最良の予測モデ定義され，1.0 に近い適合率は障害ありと誤って判定されルを選択するため変数選択法を述べる．表 2 にあげたメるモジュールがほとんどないことを意味する．再現率はトリクスが予測モデルの説明変数の候補であり，メトリク

TP/(TP + FN) と定義され，1.0 に近い再現率はほとんど

スの対数値（値域に 0 を含む場合は 1 を加算後の対数値）の障害が検出されることを意味する．F1 値は適合率と再も代替候補とした．すなわち，各メトリクスにつき，値・現率の二値の要約尺度で，二値の調和平均（適合率の逆数

対数値・非選択の三択である．偏った分布のデータに対数と再現率の逆数の平均の逆数）で定義される．

変換を施す措置は標準的に用いられる技法である．モデ

3.4.5 結果

ルの選択規準には AIC（赤池情報量規準）[22] を用いた．

表 3 に 100 回の反復結果の各性能尺度の平均値と標準

AIC はモデルのあてはまり度合い（尤度）に説明変数の偏差を示す．
「モデル MET」と「モデル MET+IS」の列は数によるペナルティを課したもので，AIC が小さいほどそれぞれのモデルでの性能尺度，「IS による向上」は 2 つモデルが良いことを示す規準である．モデルの説明変数とのモデルの差，つまりインパクトスケールを説明変数に追してインパクトスケール抜きの 7 つ，またはインパクトス

加したことによる向上である．表から，インパクトスケー

7

ケールを含めた 8 つメトリクスのすべての組合せ（3 通8り，または 3 通り）から，AIC 最小となる組合せを選ん

c 2013 Information Processing Society of Japan

ルの追加は両データセットですべての性能尺度を有意に向上させていることが分かる．この結果は RQ1 を肯定的に

875

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

支持する．

（eﬀort-vs-PD curve）[25] と呼ばれる．X 軸は相対累積工F1 値の向上は有意であったが低い値にとどまっている

数を表し，Y 軸は費やした工数での障害検出率を表してい（DS1: 0.234，DS2: 0.216）．障害率が低いことが一般的なる．曲線の立ち上がりが急ならば，予測はより工数効率が保守での障害予測ではよく見られる結果であるが，この F1高いことを意味している．曲線が対角線を下回るならば，値が実用上どの程度有効であるかの解釈は難しい．そこで，予測がほとんどランダムで意味のないことを表す．
「完全

次節では障害予測性能が工数に及ぼす効果を直接的に比較予測曲線」と題された点線曲線は，完全な予測が行われたできる手法である工数考慮モデルを用いて評価を行う．

場合を示しており，性能の上限値を表している．

3.5 工数考慮モデルによる評価（RQ1）

ている．
「AUC」
（Area Under the eﬀort-vs-PD Curve）は3.5.1 工数考慮モデルと性能尺度

工数対検出率曲線の下部領域の面積を意味する [25]．AUC

図 6 は本稿で使用する 2 つの性能尺度についても説明し

近 年 ，モ ジ ュ ー ル の テ ス ト や 監 査 に か か る 工 数 をは全領域での平均性能を表しており，AUC が 1.0 以下の障害予測の性能評価でも考慮すべきと指摘されてい上限値に近ければ，予測性能が高いことを意味する．一る [21], [24], [25], [26]．障害と規模には相関がある [3] た方，AUC が 0.5 前後かそれ以下ならば，その予測に意義

め，障害ありと分類されるモジュールは規模が大きい傾向

はない．
「ddr」
（defect detection rate）は障害検出率であがある．たとえば Arisholm らはモジュールのテスト工数

る [21]．本稿では「ddr x」は全工数の x%において検出しはそのモジュールの規模に大まかに比例すると報告していた障害率を意味する．保守では典型的に工数が逼迫しておる [24]．実際の保守では，予算とスケジュールは多くの場

り，この尺度は実践者のたとえば「10%の行数をレビュー

合要求が厳しく，障害予測の工数効率性は実務者にとってするとどれだけの障害を検出できるか？」などの問いに直の重要な関心となってきている．

接答えることができる．高い ddr x は高い予測性能を意味

上記の議論をふまえ我々は，予測性能評価に Mende

する．既存研究には x として 20%を用いるものがあるが，ら [21] によって提案された工数考慮モデルを用いた．工数

大規模システムにおける実践的見地からは 20%は大きすぎ考慮モデルでは，相対リスク Rdd (x) がモジュールのテス

るため，本稿では ddr10 の方を ddr20 よりも重視する．もトや監査の優先付けに用いられる．Rdd (x) は #errors(x)し ddr10 が 0.1 より小さければ，予測による利得がないこをモジュール x の障害数，E(x) をモジュール x に必要なとを意味する．

工数としたとき，#errors(x)/E(x) と定義される．ここで3.5.2 ポアソン回帰分析を用いた障害密度予測

は既存研究 [21], [26] と同様に E(x) として LOC を用い

障害密度予測のためには連続値か計数値が出力となる

る．この場合，Rdd (x) は障害密度を意味する．工数考慮

予測モデルが必要となる．本稿では，ポアソン回帰モデモデルでは Rdd (x)（すなわち，障害密度）を予測し，モル [27] を使用する．ポアソン回帰モデルは確率事象のカウジュールを障害密度の降順でテストまたは監査を行う．

ント予測に一般的に用いられるモデルであり，障害発生を予測性能を調べるためには，図 6 に例示される工数ベー

ポアソン過程に従う確率事象と見なすことにより従来からス累積リフトチャートが用いられる．図の実曲線が総合障害予測の分野で用いられている [6], [28]．ポアソン回帰

的な予測性能を示している．この曲線はコスト効果曲線

モデルの式は一般的には次式で表される．

（cost-eﬀectiveness curve）[24]，または工数対検出率曲線

y = exp(b1 x1 + b2 x2 + · · · + b0 )偏回帰係数 bi を推定するためには最尤推定法を用いる．
目的変数 y（0 < y ）は障害回数の期待値と解釈される．目
的変数が発生回数なので発生密度はただちに導出可能である．密度を予測するためには係数を 1.0 に固定したオフ
セット項 log(LOC) を線形予測子に以下のとおり加えて学習すればよい．

y = exp(b1 x1 + b2 x2 + · · · + b0 + log(LOC))
オフセット項の存在にかかわらず，log(LOC) を説明変数に加えることが可能である．

3.5.3 モデル選択，モデル学習とテスト
図 6

工数ベース累積リフトチャートと AUC，ddr の例

Fig. 6 Example of eﬀort-based cumulative lift chart, AUC andddr.

c 2013 Information Processing Society of Japan

最良モデルの選択および，モデルの学習とテストは 3.4 節と同様に行われる．差異は，障害数を学習に直接用いることのみである．

876

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

図 7 インパクトスケールあり/なしモデルの工数考慮モデル比較

Fig. 7 Eﬀort-aware comparison between models with/without ImpactScale.
表 4

障害密度と工数考慮モデルにおける障害予測性能の向上

Table 4 Performance improvement in fault density prediction and eﬀort-aware-model.

3.5.4 結果

3.6.1 SNA のネットワーク尺度

図 7 と表 4 に 100 回の反復結果を示す．図中，赤い破ネットワーク尺度はネットワークの様々なトポロジ的特線の各曲線がインパクトスケールなしのモデルの性能を徴量である．Zimmermann らは 58 のネットワーク尺度を表す（DS1-MET/DS2-MET）．青い実線の各曲線がインパ

UCINet ツール [32] を用いて収集し，障害予測を行った．使クトスケールありのモデルの性能を表す（DS-MET+IS/

用されたネットワーク尺度の完全なリストと説明は文献 [12]DS2-MET+IS）．曲線上の白い中抜き点は表 4 にある ddr10と [33] を参照のこと．本稿では既存研究 [12], [29], [30], [31]と ddr20 の測定点である．DS1 と DS2 の両方で，図ではと同じく UCINet を用い，インパクトスケールの測定に用モデル MET+IS の曲線はモデル MET の曲線をほぼすべいた DS1 の依存グラフに対してネットワーク尺度を収集ての範囲で上回り，表ではすべての性能尺度で MET+IS

した．DS2 の依存グラフは UCINet が扱える規模を超えてが上回る．特に，ddr10 の向上は顕著である．この結果は，いるため，本節の評価では DS1 のみを対象とした．

全検査工数の 10%の工数において，検出できる障害数に3.6.2 主成分回帰分析

1.5 倍の向上が得られることを意味する．この結果もまた，本節でもポアソン回帰分析を用いて障害密度予測を行

RQ1 を肯定的に支持する．

い，工数考慮モデルを用いて評価を行う．この場合，説明

3.6 ネットワーク尺度との比較（RQ2）

存研究と同様に主成分分析（PCA）[34] を用いる．PCA は変数が多く（60 以上）多重共線性は避けられないため，既Zimmermann と Nagappan らは，ソーシャルネットワー

主成分を発見するための教師なし学習である．すべての主ク解析（SNA）を依存グラフに行い，障害予測に利用し成分は直交するため，主成分を説明変数として用いる回帰

た [12]．彼らの研究と追試 [29], [30], [31] は，ネットワー

分析では多重共線性の問題は発生しない．この組合せは主

ク尺度の有効性を示した．インパクトスケールは依存グラ

成分回帰分析と呼ばれる．

フ上で測定されるため，その有効性を確認するために RQ2

3.6.3 モデル選択，モデル学習とテストを調べる必要がある．

以下の 4 つのモデルを用意した．

• MET 既存メトリクスからなる最良モデル
RQ2（再掲）： インパクトスケールを既存のプロダクト
メトリクスとネットワーク尺度をあわせたものに加えることは障害予測性能を向上させられるか？

c 2013 Information Processing Society of Japan• MET+IS 既存メトリクスとインパクトスケールからなる最良モデル• MET+SNA 既存メトリクスとネットワーク尺度か877情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

らなる最良モデル• MET+SNA+IS 既存メトリクス，ネットワーク尺度，
インパクトスケールからなる最良モデル
各反復において，4 つのモデルごとに，全メトリクスとRQ2 を支持する結果が得られた．ネットワーク尺度については関連研究の章でさらに述べる．

4. 考察

全尺度を対数変換し PCA を用いて主成分に変換する．そ

本章では，インパクトスケールが確かに障害予測に寄与のうち，累積寄与率 99%までの主成分をポアソン回帰分

しているかどうか，2 章で与えたインパクトスケールの定

析の説明変数として使用する．使用された主成分数の平均義が妥当かについて考察する．

値は MET で 6.0，MET+IS で 7.0，MET+SNA で 27.8，

MET+SNA+IS で 28.8 であった．テスト手順は 3.5 節と

4.1 障害予測への寄与同じである．

まず，インパクトスケールと他のメトリクスとの関係を

3.6.4 結果

調べる．DS1 についての，表 2 のメトリクス間のスピアマ

図 8 は，結果を階層モデル比較で示したものである．

ンの順位相関係数を表 5 に示す．絶対値が 0.5 以上のもの

4 つの楕円は 4 つの予測モデルを表し，それぞれの性能尺を太字で示している．インパクトスケールは他のメトリク

度 AUC と ddr10 が記されている．実線矢印は説明変数のスとの相関係数の絶対値がたかだか 0.38 であり明らかに追加によるモデルの拡張を表しており，付された数字は上低い．この結果は DS2 でも同様であった．ネットワーク

が AUC の向上，下が ddr10 の向上を表している．たとえ尺度に関しては，インパクトスケールとの相関係数はたかば，矢印 (a) はインパクトスケールをモデル MET に追加

だか 0.60 であり，図 7 に示した向上に寄与するほど十分

し，予測性能が AUC で 0.054 向上，ddr10 で 0.074 向上しに低い．これはインパクトスケールが他のメトリクスとはたことを表している．これは 3.4 節，3.5 節の結果に整合

独立，つまり他のメトリクスの示さない障害要素を示してする．矢印 (b) はネットワーク尺度の効果を表し，既存のいるといえる．

SNA を用いた研究の結果に整合する．

次に，DS1 で，各メトリクスによる 1 変数ポアソン回帰

RQ2 を調べるため，矢印 (d) と矢印 (e) に注目する．矢で障害密度予測を行った結果（100 回平均）が図 9 の工印 (d) はモデル MET+SNA にインパクトスケールを追加

数ベース累積リフトチャートと図中の表である．インパク

することが有意であることを表している．これはインパク

トスケール以外のメトリクスは AUC が 0.5 をやや上回る

トスケールがネットワーク尺度とは異なる障害要因説明要程度，ddr10 は 0.1 前後であり予測が無判別に近いのに対素を含んでいることを意味している．矢印 (e) はインパク

し，インパクトスケールは単独で高い予測性能を発揮してトスケールとネットワーク尺度との比較であり，ddr10 が増加していることからインパクトスケールが工数に限りがあるときにネットワーク尺度よりも高い検出率を持つといえる．一方，AUC が減少していることから工数に際限が

表 5

メトリクス間のスピアマンの順位相関係数

Table 5 Spearman rank correlation coeﬃcients between metrics.

ない想定では予測性能が若干低くなるといえる．いずれにせよ，インパクトスケール単独がもたらす予測性能の向上
はネットワーク尺度の集合全体による向上に匹敵し，これは予測モデルの解釈容易性という点で大きな利点となる．
以上から，評価対象ソフトウェアが 1 システムではあるが，

図 8

インパクトスケールとネットワーク尺度の階層モデル比較

Fig. 8 Hierarchical model comparison between ImpactScaleand network measures.

c 2013 Information Processing Society of Japan

図 9 1 変数障害密度予測の結果

Fig. 9 Results of fault density prediction with single metric.

878

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

図 11 関係依存的な波及の効果
図 10 遠隔ノードを考慮することの効果

Fig. 11 Eﬀect of relation-sensitive propagation.

Fig. 10 Eﬀect of considering distant nodes.

ル NoCut はモデル MET に対しきわめてわずかな向上しいる．よって，インパクトスケールは DS1 において障害予かもたらさない．よって，カットルールのない定義には意測に強く寄与しているといえる．DS2 も同様であった．

義がないといえる．逆にいえば，カットルールの存在がイ

RQ1 と RQ2 に関する結果と本節から，仮説 1 は本稿において妥当といえる．

ンパクトスケールと障害との相関を高めることができたといえる．ddr20 と AUC についても図 10 と図 11 と同様の結果が見られた．

： 影響波及量を定量化したメトリクスは
仮説 1（再掲）

結果として，仮説 2 は本稿において妥当といえる．

大規模ソフトウェアにおいて障害予測の性能を向上させることができる．

： 確率的かつ関係依存的な波及を持つ波仮説 2（再掲）
及モデルは，正確だが計算量やデータ収集コストが大きい

4.2 インパクトスケールの定義の妥当性

解析の代わりとなるのに十分な予測性能を持つ．

ここでは，インパクトスケールの定義が妥当かどうか検証する．インパクトスケールの定義を変化させ，それに対し予測性能がどう変化するかを ddr10 を基準に調べる．

4.3 一般化のための留意点
本節では，本稿の提案や評価結果を広く一般化する際にまず，依存グラフ上でグラフ距離が離れた遠隔ノードを考課題となること，留意すべきことをあげる．インパクトス

慮することの意義を調べる．インパクトスケールは経路探

ケールの定義は言語非依存である．とはいえ，評価対象シ

索により計算される．そのため，経路探索の距離に上限を設

ステムの記述言語である COBOL は他言語とは流儀もパラ

けてその上限を変化させ，それによる予測性能の変化を調べダイムも異なるため，本稿の結論をそのまま他の言語に拡る．図 10 は DS1，DS2 について，3.5 節に述べたインパク

大するには配慮を要する．たとえば，本稿では障害予測のトスケールありの最良モデルを用いて探索上限距離（横軸）単位を「プログラム」（関数相当）としたが，他の言語ではに制約を課す変更を加えたインパクトスケールで評価した

障害予測の単位は複数の関数からなるクラスやソースファ

予測性能 ddr10（縦軸）である．探索上限距離が 1 ならば，

イルであることが多いだろう．また，対象システムは勘定

インパクトスケールは定義上 Fan-in と Fan-out の和にほぼ系システムの領域に属するが，一般化のためには他の領域等しいため，上限距離が 1 で ddr10 が十分大きければ，遠のシステムの評価も必要となる．

隔ノードを考慮することに意義がないことになる．しかし，本稿の評価では，インパクトスケールのほかに採取した

図では，DS1 では距離 5 まで，DS2 では距離 3 まで，ddr10

メトリクスが 7 つと少ない．対象言語がオブジェクト指向が増加し続けており，遠隔ノードの考慮に意義があること

言語であれば既存の多くのオブジェクト指向メトリクスがを示している．また，考慮すべき上限距離もソフトウェア

あり [35]，それらの集合にインパクトスケールを加えたそごとに異なることを示している．ただ，DS1，DS2 ともに上のうえで意義があるかは検証を要する．また，プロセスメ

限距離を十分にとっても ddr10 に大きな影響を与えないこトリクスが採取できる状況でインパクトスケールの意義がとから，上限距離は単に十分に大きくとればよいといえる．

あるか，どのプロセスメトリクスに対しどの程度の代替と次に，「関係依存的な波及」を組み込んだことに意義があなりうるかは未評価であるが興味深い課題である．

るかを調べる．図 11 の箱ひげ図中のモデル MET+IS は，また，IS の測定にはコールグラフなど依存関係の抽出

3.5 節に述べたインパクトスケールを含んだ最良モデル，モが必要である．もし抽出した情報の精度が低ければ，インデル MET はインパクトスケールを含まない最良モデルでパクトスケールの測定値は影響範囲量を正確には反映しなある．モデル NoCut はカットルールを除いて関係依存的い．インパクトスケールは要約統計量なので抽出精度に対な波及を抑制するよう定義を変えたインパクトスケールをし過敏ではないと期待されるが，本稿では動的束縛の少な含む最良モデルである．三者の ddr10 を比較すると，モデ

い COBOL 言語で書かれたシステムを評価対象とすること

c 2013 Information Processing Society of Japan

879

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

でこの問題を極力避けたため，この影響については未評価「主成分」は人間にとって解釈が難しいという欠点を持つ．

である．

一方，インパクトスケールは単一のメトリクスでありなが5. 関連研究

ら，障害と相関があり，解釈が容易という利点を持つ．また，ネットワーク尺度ではデータ依存などを数値に反映でソフトウェアのコードとその関係からなるソフトウェ

きないが，インパクトスケールは関係依存の波及を備える

ア構造メトリクス [2] の既存のものには Fan-in，Fan-out，

ことによりネットワーク尺度では扱えない障害要素を扱う

LCOM，CBO [35] がある．これらは依存グラフの隣接ノーことができ，障害予測性能のさらなる向上を可能にした．

ド間の直接的な関係のみを考慮するものだったが，本稿の6. まとめ

評価ではグラフ上の間接的な遠隔ノードも障害に強く影響することが分かった．よって，遠隔ノードの情報を障害予測に組み入れるメトリクスは有効といえる．

本稿では，影響波及の大きさが大規模ソフトウェアにおける障害発生の要因の 1 つであると仮定して，影響波及量を定変更量に関するプロセスメトリクスは障害予測の説明変量化したメトリクス「インパクトスケール」（ImpactScale，

数として有効である [4], [6], [7]．インパクトスケールがそIS）を定義した．インパクトスケールは波及の有無を確率

れらのプロセスメトリクスとは独立の障害要素であれば価的に扱い，関係依存的な波及探索を行うモデルを用いるこ

値が高い．Cataldo ら [11] は変更量と論理的結合関係が相とを特徴とし，大規模ソフトウェアでも現実的な時間で測互に独立でかつ両方が障害数と相関があることを報告し定でき，直観的な解釈が可能という性質を備える．

た．論理的結合関係とインパクトスケールは依存関係と影

2 つの大規模企業システムを対象とする実験により，イ

響波及といった共通要素を持つため，インパクトスケール

ンパクトスケールを障害予測モデルに追加することで予測も変更量メトリクスと独立であると推測される．

性能が向上するかを，適合率・再現率・F1 値と工数考慮

Geiger らはコードクローンと論理的結合関係の間にあるモデルの 2 つの基準で評価した．工数考慮モデルは，障害程度の関係があると報告した [36]．コードクローンはコーと予測されたモジュールに必要な工数を考慮するという実ルグラフやデータ依存のみではすべてを捕捉することはで

践的な観点で予測性能を評価する手法である．すべての評

きないため，論理的結合関係のすべてをインパクトスケー

価において，インパクトスケールを含む予測モデルは，含ルで捕捉することはできない．コードクローンの関係をイ

まないモデルに比べて障害予測性能が高いという結果がンパクトスケールの波及グラフに加えることは容易であり得られた．たとえば，インパクトスケールを既存のプロダ（たとえば，新しい関係タイプ CLONE を追加）
，そのような

クトメトリクスに追加することで，10%検査工数において情報の追加により予測性能の向上に寄与する余地がある．

50%以上の障害検出数の向上が確認された．また，既存の近年は依存グラフを探索するメトリクスが現れてきていプロダクトメトリクスとネットワーク尺度をあわせて用いる．Inoue らは，ソフトウェアコンポーネントの利用依存

た予測モデルにさらにインパクトスケールを追加した場合グラフをマルコフ連鎖モデルと見なすことで，コンポーネにも予測性能の向上が確認された．以上の結果は，既存のントの利用性の重要度を求めるコンポーネントランク [37]

多くのメトリクスがありながら，あえて新しいメトリクス

を提案している．早瀬らは，影響波及解析により構築した「インパクトスケール」を定義することの有用性を示して依存グラフを探索して保守工数の推定量を得る保守ポイ

いる．

ントを提案している [38]．保守ポイントは評価値がグラフ

我々はすでに，インパクトスケールを用いた障害予測に

経路上で漸減する点はインパクトスケールと共通するが，よる品質管理を実施しており，たとえばある顧客の事例でインパクトスケールは関係依存的な波及を導入しているは，予測障害密度が上位のモジュールに集中して年間予算ことが差異である．影響波及が確率的に起こるという仮定の 1/20 にあたる工数でレビューを施したところ，年あたの下に，変更の予測を行うモデルの研究もある [18], [19]．

りの障害発生が数件程度のシステムにおいて，8 件の欠陥

Tsantalis らのモデル [19] は変更履歴を用いてモジュールを検出することができ，少ない工数で有効な予防措置を講の変更確率を予測する．このモデルは，各変更が波及によじることができた．

るものか起源的なものかの教師情報を人間が与える必要があるため，スケーラビリティに課題がある．
ネットワーク尺度の導入によって障害予測性能が向上
するかについては Zimmermann らの提案 [12] 以後，主成
分回帰を用いて追試が行われている [29], [30], [31]．Tosun

今後の課題としては，Java など他言語での効果の実証を行うとともに，インパクトスケールの用途として意図されている工数予測，品質劣化の監視などにも応用を広げ実証していく予定である．
謝辞

本研究を進めるうえで多大な助言と議論をいただら [29] は小規模ソフトウェアと大規模ソフトウェアを対象いた大阪大学の楠本真二教授，松下誠准教授，そしてソフに追試し，大規模では有効だが小規模では効果がないと報トウェア工学講座のメンバ諸氏に篤く感謝する．有益な議告した．主成分分析により多数の説明変数から合成される論をいただいた NICTA（National ICT Australia）の ESE

c 2013 Information Processing Society of Japan

880

情報処理学会論文誌

Vol.54 No.2 870–882 (Feb. 2013)

グループのメンバ諸氏に感謝する．評価のためのデータの[17]提供および継続的な支援をいただいた富士通モダナイゼー
ション事業部の鎌倉潤一氏ならびにメンバ諸氏に深く感謝
する．
[18]

参考文献
[1]

[2]

[3]

[4]

[5]
[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

[15]

[16]

Basili, V.R., Briand, L.C. and Melo, W.L.: A validationof object-oriented design metrics as quality indicators,
IEEE Trans. Softw. Eng., Vol.22, No.10, pp.751–761(1996).
Briand, L.C., Wüst, J., Daly, J.W. and Porter, D.V.:
Exploring the relationships between design measures andsoftware quality in object-oriented systems, J. Systems
and Software, Vol.51, No.3, pp.245–273 (2000).
Fenton, N.E. and Ohlsson, N.: Quantitative analysis offaults and failures in a complex software system, IEEE
Trans. Softw. Eng., Vol.26, No.8, pp.797–814 (2000).
Ostrand, T.J. and Weyuker, E.J.: The distribution of
faults in a large industrial software system, Proc. ACM
SIGSOFT Int’l Symp. on Software Testing and Analysis (ISSTA), pp.55–64 (2002).
McCabe, T.J.: A complexity measure, IEEE Trans.
Softw. Eng., Vol.SE-2, No.4, pp.308–320 (1976).
Graves, T.L., Karr, A.F., Marron, J.S. and Siy, H.:
Predicting fault incidence using software change history, IEEE Trans. Softw. Eng., Vol.26, No.7, pp.653–661(2000).
Nagappan, N. and Ball, T.: Use of relative code churnmeasures to predict system defect density, Proc. Int’l
Conf. on Software Engineering (ICSE ), pp.284–292(2005).
Gall, H., Hajek, K. and Jazayeri, M.: Detection of logical coupling based on product release history, Proc.
IEEE Int’l Conf. on Software Maintenance (ICSM ),pp.190–198 (1998).
Hassan, A.E. and Holt, R.C.: Predicting change propagation in software systems, Proc. IEEE Int’l Conf. on
Software Maintenance (ICSM ), pp.284–293 (2004).
Haney, F.M.: Module connection analysis — a tool
for scheduling software debugging activities, Proc. Fall
Joint Computer Conference, pp.173–180 (1972).
Cataldo, M., Mockus, A., Roberts, J.A. and Herbsleb,
J.D.: Software dependencies, work dependencies, andtheir impact on failures, IEEE Trans. Softw. Eng.,
Vol.36, No.2, pp.864–878 (2009).
Zimmermann, T. and Nagappan, N.: Predicting defects
using network analysis on dependency graphs, Proc. Int’l
Conf. on Software Engineering (ICSE ), pp.531–540(2008).
Bohner, S.A. and Arnold, R.S. (Eds.): Software change
impact analysis, Bohner, S.A. and Arnold, R.S.: An introduction to software change impact analysis, pp.1–26,
IEEE Computer Society Press (1996).
Grove, D. and Chambers, C.: A framework for call graphconstruction algorithms, ACM Trans. Progr. Lang.
Syst., Vol.23, No.6, pp.685–746 (2001).
Law, J. and Rothermel, G.: Whole program path-based
dynamic impact analysis, Proc. Int’l Conf. on Software
Engineering (ICSE ), pp.308–318 (2003).
Ren, X., Shah, F., Tip, F., Ryder, B.G. and Chesley,
O.: Chianti: a tool for change impact analysis of Java
programs, Proc. Conf. on Object-Oriented Prog., Syst.,
Lang., and App. (OOPSLA), pp.432–448 (2004).

c 2013 Information Processing Society of Japan


[19]

[20]

[21]

[22]

[23]
[24]

[25]

[26]

[27]
[28]

[29]

[30]

[31]

[32]

[33]

[34]

Kobayashi, K., Matsuo, A., Inoue, K., Hayase, Y.,
Kamimura, M. and Yoshino, T.: ImpactScale: Quantifying Change Impact to Predict Faults in Large Software Systems, Proc. Int’l Conf. on Software Maintenance (ICSM ), pp.43–52 (2011).
Sharafat, A.R. and Tahvildari, L.: A probabilistic approach to predict changes in object-oriented software systems, Proc. European Conf. on Software Maintenanceand Reengineering (CMSR), pp.27–38 (2007).
Tsantalis, N., Chatzigeorgiou, A. and Stephanides,
G.: Predicting the probability of change in objectoriented systems, IEEE Trans. Softw. Eng., Vol.31,
No.7, pp.601–614 (2005).
Whaley, J. and Lam, M.S.: Cloning-based contextsensitive pointer alias analysis using binary decision diagrams, Proc. ACM SIGPLAN Conf. on Prog. Lang.
Design and Impl. (PLDI ), pp.131–144 (2004).
Mende, T. and Koschke, R.: Eﬀort-aware defect prediction models, Proc. European Conf. on Software Maintenance and Reengineering (CSMR), pp.107–116 (2010).
Akaike, H.: A new look at the statistical model identiﬁcation, IEEE Trans. Automatic Control, Vol.AC-19,
No.6, pp.716–723 (1974).
Chatterjee, S. and Hadi, A.S.: Regression analysis byexample, 4th Edition, John Wiley and Sons (2006).
Arisholm, E. and Briand, L.C.: Predicting faultprone components in a Java legacy system, Proc.
ACM/IEEE Int’l Symp. on Empirical Software Engineering (ISESE ), pp.8–17 (2006).
Menzies, T., Milton, Z., Turhan, B., Cukic, B., Jiang,
Y. and Bener, A.: Defect prediction from static code
features: current results, limitations, new approaches,
J. Automated Software Engineering, Vol.17, pp.375–407(2010).
Kamei, Y., Matsumoto, S., Monden, A., Matsumoto,K., Adams, B. and Hassan, A.E.: Revisiting common
bug prediction ﬁndings using eﬀort-aware models, Proc.
IEEE Int’l Conf. on Software Maintenance (ICSM ),pp.1–10 (2010).
Cameron, A.C. and Trivedi, P.K.: Regression analysis
of count data, Cambridge University Press (1998).
Khoshgoftaar, T.M., Geleyn, E. and Gao, K.: An empirical study of the impact of count models predictions on
module-order models, Proc. IEEE Int’l Software Metrics Symp. (METRICS ), pp.161–172 (2002).
Tosun, A., Turhan, B. and Bener, A.: Validation of network measures as indicators of defective modules in software systems, Proc. Int’l Conf. on Predictor Models in
Software Engineering (PROMISE ), pp.5:1–5:9 (2009).
Nguyen, T., Adams, B. and Hassan, A.: Studying the impact of dependency network measures on software quality, Proc. IEEE Int’l Conf. on Software Maintenance(ICSM ), pp.1–10 (2010).
Premraj, R. and Herzig, K.: Network Versus Code Metrics to Predict Defects: A Replication Study, Proc. Int’l
Sympo. on Empirical Software Engineering and Measurement (ESEM ), pp.215–224 (2011).
Borgatti, S.P., Everett, M.G. and Freeman, L.C.:
UCINet for Windows: Software for social network analysis, Analytic Technologies (2002).
Hanneman, R.A. and Riddle, M.: Introduction to social network methods, University of California, Riverside(2005).
Jolliﬀe, I.T.: Principal component analysis, 2nd edition,
Springer (2002).

881

情報処理学会論文誌

[35]

[36]

[37]

[38]

Vol.54 No.2 870–882 (Feb. 2013)

Chidamber, S.R. and Kemerer, C.K.: A metrics suite forobject oriented design, IEEE Trans. Softw. Eng., Vol.20,
No.6, pp.476–493 (1994).
Geiger, R., Fluri, B., Gall, H. and Pinzger, M.: Relationof code clones and change couplings, Int’l Conf. of Fundamental Approaches to Software Engineering (FASE ),LNCS 3922, pp.411–425, Springer (2006).
Inoue, K., Yokomori, R., Yamamoto, T., Matsushita,
M. and Kusumoto, S.: Ranking signiﬁcance of software
components based on use relations, IEEE Trans. Softw.
Eng., Vol.31, No.3, pp.213–225 (2005).
早瀬康裕，松下 誠，楠本真二，井上克郎，小林健一，吉野利明：影響波及解析を利用した保守作業の労力見積りに用いるメトリックスの提案，電子情報通信学会論文誌 D，Vol.J90-D, No.10, pp.2736–2745 (2007).

早瀬 康裕 （正会員）
平成 14 年大阪大学基礎工学部情報科学科卒業．平成 19 年同大学大学院博士後期課程修了．同年同大学特任助教．平成 22 年東洋大学総合情報学部
助教．平成 23 年筑波大学システム情報系助教．博士（情報科学）．オープ
ンソースソフトウェア開発，ソフトウェア保守の研究に従事．IEEE 会員．

上村 学
平成 12 年上智大学理工学部機械工学

小林 健一 （正会員）

科卒業，平成 14 年同大学大学院博士

平成 4 年東京大学工学部計数工学科

前期課程修了．同年富士通研究所入卒業．平成 6 年同大学大学院工学系研

社．平成 23 年上智大学大学院理工学

究科情報工学専攻修士課程修了．同年

研究科理工学専攻情報学領域博士後期

富士通研究所入社．現在まで富士通株課程修了．博士（工学）．平成 24 年ブ

式会社および同研究所に勤務．ソフト

リティッシュコロンビア大学客員研究員．現在，富士通研

ウェア工学（特にソフトウェア保守，

究所でソフトウェア工学，モデリング，プログラム分析のエンピリカルソフトウェア工学），データマイニング，HPC研究に従事．

の研究に従事．

吉野 利明 （正会員）松尾 昭彦 （正会員）

昭和 55 年九州工業大学工学部情報工

昭和 62 年東京理科大学物理学科卒業．

学科卒業，昭和 57 年九州大学大学院

同年富士通研究所入社．ソフトウェ

総合理工学研究科情報システム学専

アシステム研究所所属．ソフトウェア

攻修士課程修了．同年富士通研究所入保守効率化技術（特にソフトウェアテ

社．平成 21 年富士通株式会社に転籍，スト技術，仕様抽出技術，影響検索技

フィールド・イノベータ．ソフトウェ術），クラウド間連携技術，コンピュー

ア工学，エージェント技術，自然言語処理，データベース

タグラフィックスの研究に従事．

開発，ナレッジマネージメントの研究に従事．平成 4〜8 年
情報処理学会誌編集委員．

井上 克郎 （フェロー）
昭和 59 年大阪大学大学院基礎工学研
究科博士後期課程修了（工学博士）．
同年大阪大学基礎工学部情報工学科
助手．昭和 59〜61 年ハワイ大学マノ
ア校コンピュータサイエンス学科助教授．平成 3 年大阪大学基礎工学部助教
授．平成 7 年同学部教授．平成 14 年大阪大学大学院情報科学研究科教授．平成 23 年 8 月より大阪大学大学院情報科
学研究科研究科長．ソフトウェア工学，特にコードクロー
ンやコード検索等のプログラム分析や再利用技術の研究に従事．

c 2013 Information Processing Society of Japan

882