NAIST-IS-MT0851024
修士論文
ソフトウェア設計文書メトリクスを用いた
低品質モジュール予測
片山 真一
2010 年 2 月 4 日
奈良先端科学技術大学院大学
情報科学研究科 情報システム学専攻
本論文は奈良先端科学技術大学院大学情報科学研究科に
修士 (工学) 授与の要件として提出した修士論文である。
片山 真一
審査委員:
飯田 元 教授
(主指導教員)
西谷 紘一 教授
(副指導教員)
松本 健一 教授
(副指導教員)
川口 真司 助教
ソフトウェア設計文書メトリクスを用いた
低品質モジュール予測∗
片山 真一
内容梗概
近年,ソフトウェアの社会的位置づけが重要性を帯び,高品質なソフトウェアへ
の需要が高まっている.不具合の発見が遅れるほどその修正工数が増大するため,
開発の早期において多くの不具合を含む可能性のある低品質モジュールを特定す
ることが求められている.そのため,線形判別分析などのモデルを用いた様々な予
測手法が提案されている.しかし,従来手法では主にソースコードから計測された
メトリクスを用いていたため,予測のタイミングが実装工程完了後に限定されてい
た.また,欠陥の有無でモジュールの品質を判断しているものが多く,欠陥の多寡
を考慮したものは少ない.本研究では設計書の規模,変更量などの設計文書メトリ
クスを用いて,相対的により多くの欠陥を含む可能性が高い低品質モジュールの予
測を試みる.これらのメトリクスを利用することで設計工程完了時に予測を行い,
実装工程における品質改善活動に寄与することができる.重回帰分析・遺伝的プロ
グラミングを複数のソフトウェア開発企業が共同で行ったプロジェクトに適用し
た結果,ランダムにモジュールを選択する手法,設計書のページ数の多い順にモ
ジュールを選択する手法に比べて約 40 %高い精度で低品質モジュールを特定する
ことができた.
キーワード
低品質モジュール予測,設計文書メトリクス,重回帰分析,遺伝的プログラミング
∗奈 良 先 端 科 学 技 術 大 学 院 大 学
情 報 科 学 研 究 科 情 報 シ ス テ ム 学 専 攻 修 士 論 文, NAIST-IS-
MT0851024, 2010 年 2 月 4 日.
i
Low Quality Module Prediction using Software
Design Documents Metrics∗
Shinichi Katayama
Abstract
Recently, software has been playing an increasingly important role and the
demand for high quality software has been rising in software organizations. It is
important to detect low quality modules, which are likely to have many defects
at an early development phase. This is because defects detected later require
more effort to fix. Hence, various prediction methods using models such as linear discriminant analysis are proposed. These methods, however, use metrics
measured mainly from source code, thus they can only be applied after implementation is completed. In addition, the quality of a module is judged by an
occurance of a defect, and not by the quantity of defects. We attempted to predict low quality modules that are likely to have many defects compared to other
modules using design documents metrics such as the size of a design document
and quantity of change. Using these metrics, we can predict when design is
completed. Therefore our method contributes to reliability enhancement activities at the implementation phase. We applied multiple regression analysis and
genetic programming to projects by software development organizations, and
detected low quality modules with about 40% accuracy higher than methods
that selects modules randomly and that selects modules in decreasing order of
the number of pages of a design document.
∗ Master’s
Thesis, Department of Information Systems, Graduate School of Information
Science, Nara Institute of Science and Technology, NAIST-IS-MT0851024, February 4, 2010.
ii
Keywords:
Low Quality Module Prediction, Design Documents Metrics, Multiple Regression Analysis, Genetic Programming
iii
目次
1.
はじめに
1
2.
低品質モジュール予測
3
2.1.
概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2.
ステップワイズ重回帰分析
. . . . . . . . . . . . . . . . . . . . . .
3
2.3.
遺伝的プログラミング . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3.1. 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3.2. オペレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3.3. 選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.3.4. アルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.5. 変数の正規化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.
評価指標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
実験
3.
13
3.1.
対象プロジェクト . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.
実験手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
結果・考察
4.
19
4.1.
ランキングの比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2.
予測に貢献したメトリクスの分析 . . . . . . . . . . . . . . . . . . . 23
4.3.
適用可能性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.4.
予測結果の応用プロセス . . . . . . . . . . . . . . . . . . . . . . . . 26
5.
関連研究
28
6.
おわりに
31
謝辞
33
iv
図目次
1
木構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2
突然変異 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3
一点交叉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4
評価例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5
実験手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6
リフトチャート . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7
重回帰分析における各設計文書メトリクスの標準化偏回帰係数の
合計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8
GP における各設計文書メトリクスの出現回数 . . . . . . . . . . . 25
v
表目次
1
木構造に関する用語 . . . . . . . . . . . . . . . . . . . . . . . . .
6
2
GP のオペレータ . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3
設計文書メトリクス一覧 . . . . . . . . . . . . . . . . . . . . . . . 14
4
GP のパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5
Ĝ(c)/Gtot : 上位のモジュールが全欠陥の何%を含んでいるか . . . 20
6
ϕ(c): 予測ランキングが正解ランキングとどれくらい近いか . . . . 20
7
t 検定の p 値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
8
パワーアナリシスの結果 . . . . . . . . . . . . . . . . . . . . . . . 22
vi
関連発表論文
研究会・シンポジウム
1. 片山 真一, 大蔵 君治, 伏田 享平, 川口 真司, 名倉 正剛, 門田 暁人, 飯田 元,
“ソフトウェアタグを用いた設計文書メトリクスからの低品質モジュール
の予測,” 電子情報通信学会技術研究報告, vol. 109, no. 343, pp. 67-72,
December 2009.
その他の発表論文
研究会・シンポジウム
1. 片山真一, 名倉正剛, 飯田元, “ソフトウェアタグ運用基盤の構築を支援する
ためのプロセスシミュレータの提案,” ウインターワークショップ 2009・イ
ン・宮崎論文集, pp. 81-82, January 2009.
vii
1. はじめに
近年,ソフトウェアの社会的位置づけがますます重要性を帯びてくるとともに,
高品質なソフトウェアを作成することが重要な目標となっている.不具合の発見が
遅れるほどその修正工数が増大する [5] ため,開発の早期段階において多くの不具
合を含む可能性のある低品質モジュールを特定することが求められている.これ
までに,多数のモジュールから計測されたプロダクトメトリクス(プログラム行
数やサイクロマティック数,変更行数など)を入力とし,モジュールの欠陥の有
無を予測する判別モデルが提案されており,線形判別分析,ロジスティック回帰
分析,ニューラルネットワークなどのモデルを用いた様々な予測手法が存在する
[8, 11, 17, 21].
一般的にソフトウェア開発は要件定義・設計・実装・テストの順に開発が進めら
れる.上記のプロダクトメトリクスの多くはモジュールのソースコードを対象とす
るため,モジュールの実装完了段階まで適用できない.このようなプロダクトメト
リクスを用いた低品質モジュールの予測は,テスト工程におけるテストの効率化や
ソフトウェアの信頼性向上には有効であるが,実装工程以前における早期の品質改
善活動には寄与できない.また,従来の低品質モジュール予測には,モジュールの
欠陥の有無でモジュールの品質を判断しているものが多く,モジュールの欠陥の多
寡を考慮したものは少ない.設計工程のような開発の早期段階では欠陥が多く含ま
れているのは自然であり,欠陥の有無ではなく相対的な多寡に基づいて品質改善活
動のターゲットを定めることが現実的である.
そこで,本研究ではソフトウェアタグ [28] に含まれる設計文書メトリクスを用
いて,相対的により多くの欠陥を含む可能性が高い低品質モジュールの予測を試み
た.ソフトウェアタグはソフトウェア開発プロセスや成果物などのソフトウェア開
発に関するデータを,ユーザとベンダの間で共有するための基盤技術である.ソフ
トウェアタグは従来の実装工程で計測されたプロダクトメトリクスに加えて,要件
定義,設計工程で計測されるメトリクスも含んでいる.このうち設計文書から計測
されるメトリクス(設計書の規模,変更量など)を以降では設計文書メトリクスと
呼ぶ.
1
設計文書メトリクスを対象として分析を行うことで,設計工程完了時に低品質モ
ジュールを生成する可能性の高い設計書を特定し,予測結果を実装工程における品
質改善活動に役立てることが可能となる.実験では,複数の企業が合同で行った実
開発プロジェクトから収集されたデータを使用し,重回帰分析,遺伝的プログラミ
ングにより低品質モジュールの予測を行った.
本論文の構成は以下の通りである.2 章では提案手法の概要,および予測手法で
あるステップワイズ重回帰分析,遺伝的プログラミング,そして評価指標について
説明を行う.3 章では提案手法の有効性を確認するために行った実験について報告
する.4 章では実験の結果に対する考察を行う.5 章では本研究に関連の深い研究
を挙げる.最後に 6 章で本研究のまとめを述べる.
2
2. 低品質モジュール予測
2.1. 概要
モジュールとはソフトウェアの品質評価単位の1つであり,通常,ソフトウェア
は複数のモジュールから構成される.低品質モジュールとは他のモジュールに比べ
て多くの欠陥を含む可能性の高いモジュールのことを指す.欠陥とは,モジュール
中に存在する正しくない処理のことであり,ソフトウェアが所定の機能を遂行でき
ないことの直接の原因となるプログラムの記述誤りである.
一般的にソフトウェアの欠陥は,全てのモジュールに均一に分布しているのでは
なく,特定のモジュールに偏在していることが確認されている [26].例えば,本研
究で用いたデータセットでは全体の 60 %の欠陥が 20 %のモジュールに集中して
いる.従って,この 20 %に当たるような低品質モジュールの特定は,限られたリ
ソースの中で品質向上を行う際に非常に重要な要素となる.
以降,2.2,2.3 節では予測手法として用いたステップワイズ重回帰分析と遺伝的
プログラミングについて述べ,2.4 節では評価指標について述べる.
2.2. ステップワイズ重回帰分析
重回帰分析は,ある変数(目的変数)と,それに対して影響すると考えられる複
数の変数(説明変数)の間の関係を一次式で表した見積もりモデルを作成し,作成
された見積もりモデルに基づいて説明変数から目的変数を予測する手法である.本
研究ではモジュールの欠陥数が目的変数であり,設計文書メトリクスが説明変数と
なる.ここで,目的変数を y, n 個の説明変数を xk (k = 1 . . . n), 偏回帰係数を bk ,
定数項を a とすると重回帰分析のモデル式は式 (1) で定義される.
y = b1 x1 + b2 x2 + . . . + bn xn + a
(1)
式 (1) の bk と a は,残差平方和が最小となるように決定される.作成された重回
帰式に説明変数の値を与えることで,目的変数の値を予測することが可能となる.
重回帰分析では,予測精度を向上させるために,多数の説明変数候補の中から,
予測精度の向上に寄与すると考えられる変数を選択して重回帰式を作成する方法が
3
とられる.ステップワイズ重回帰分析は,ステップワイズ変数選択法により採用す
る変数を決定し,重回帰分析を行う手法である.ステップワイズ変数選択は次の手
順で行われる.
ステップ 1 変数を全く含まないモデルを初期モデルとして作成する
ステップ 2 作成されたモデルに対して,各説明変数の係数が 0 でないかの検定を
行い,指定した有意水準で棄却されない場合に変数を採択する
ステップ 3 検定により適切な変数が選択されたと判断されるまでステップ 2 を繰
り返す
ここでステップ 2 において,説明変数の間に強い相関関係が存在する場合,重
回帰分析により得られる結果に悪い影響がでることがある.これを多重共線性と
いう.
具体的には,
• 同時に用いる説明変数の加除により回帰式の係数が大きく変化
• 決定係数が高い一方で t 値が低く,有効な推定結果が得られない
• 通常考えられる符号と異なる結果が得られる
などの症状が生じる.
そこで,多重共線性を検出するために,分散拡大要因(Variance inflation factor,
VIF) と呼ばれる指標を用いる.説明変数 xi と xj の間の分散拡大要因 V IFij は以
下の式で定義される.
V IFij =
1
2
1 − Rij
(2)
ここで,Rij は xi と xj の間の相関係数を表す.
ステップ 2 では,採択する変数の分散拡大要因 (VIF) が一定値以上の場合,また
はその変数を採択することによって,他の変数の VIF が一定値以上となる場合,そ
の変数は採択しないという操作が行われる [35].
対数変換を伴う線形重回帰モデル
Kichenham[13] らは,対数変換の重要性を指摘し,規模の尺度(ファンクション
ポイント)を対数変換すると,値の分布が正規分布に近づき,予測性能のよい重回
4
帰モデルができることを示している.また,距離の尺度のみならず,全ての変数を
対数変換してから重回帰モデルを構築することもしばしば行われている [18, 29].
従って,本論文でも対数変換を行わない重回帰モデルと,重回帰モデル適用の前
処理として,全ての変数を対数変換した重回帰モデルの 2 種類を実験に用いる.対
数変換を行った重回帰モデル式は式 (3) のようになる.
log y = b1 log x1 + b2 log x2 + . . . + bn log xn + a
(3)
ここで,log の底は 10 である.
2.3. 遺伝的プログラミング
2.3.1. 概要
遺伝的プログラミング (Genetic Programming, GP) とは, 自動プログラム合成
の一手法であり,進化論的な考え方に基づいてデータを操作し,最適化の問題や学
習,推論を取り扱うものである [14]. GP は, これまで自動プログラミングやアナロ
グ回路の合成など様々な分野に応用されており,低品質モジュールの予測にも用い
られている [15].
GP では,各個体が遺伝子を持ち,環境に応じて各個体の適合度の計算を行う.
適合度とは個体がその環境にどれほど適しているかを表す指標であり,GP の利用
者が環境に合わせて適合度の計算方法を定める.そして,適合度の大きい個体ほど
多くの子孫を作りやすいように,適合度の小さいものほど淘汰されやすいように遺
伝子の組み換え(世代交代)を行う.その結果,次の世代での各個体の適合度は,
前の世代よりも良いことが期待され,これを繰り返していくと,世代が進むにつれ
環境に適した個体が生成される.
GP では遺伝子として木と呼ばれる図 1 に示すような構造表現を取り扱う.な
お,図 1 のような木構造に関して,表 1 に示す用語を用いる.
5
図 1 木構造
表 1 木構造に関する用語
用語
説明
ノード
記号 A, B, C, D のこと
根(ルート)
A のこと
終端記号
B, D のこと
非終端記号
A, C のこと
子供
A にとっての子供は B, C
兄弟
B, C は兄弟関係
親
B, C の親は A
6
2.3.2. オペレータ
世代交代の際に木に対して適用されるオペレータを表 2 に示す.ここで,オペ
レータとは個体の遺伝子となる木構造を変化させる操作のことを指す.各オペレー
タを木に適用した例をそれぞれ図 2,図 3 に示す.交叉手法には Poli ら [22] によ
る一様交叉や Francone ら [7] による相同性交叉など様々な交叉手法があるが,図 3
は Poli ら [23] による一点交叉を表している.
表 2 GP のオペレータ
オペレータ
説明
突然変異
木構造の部分木を新しく生成された部分木に変更するオペレータである.
交叉
異なる木の間でお互いの部分木を取り換えるオペレータである.
図 2 突然変異
7
図 3 一点交叉
8
2.3.3. 選択
選択とは,集団の中から他の個体よりも優れた性質を持つ個体の遺伝子をより高
い確率で生存させる機構である.代表的な選択方法には以下のようなものがある.
ルーレット選択方式
適合度に比例した面積を有するルーレットを作り,そのルーレットを回して当
たった場所の個体を選択する.ルーレットを個体数が得られるまで繰り返し回す方
式.適合度の低い個体でも次世代の個体として選ばれる可能性が残るため,局所最
適解に陥るのを防ぐ.しかし,適合度が負の数とならず,適合度が高いことが前提
となっているため最小値を求める問題では使いづらい.さらに、もし個体間の適合
度の格差が激しい場合は適合度の高い個体の選ばれる確率が非常に高くなり、局所
最適解の原因にもなる.このため、実際には適合度をスケーリングした値を使用す
ることが多い.
トーナメント選択方式
集団の中からある個体数(トーナメントサイズ)をランダムに選び出し,その中
で最も良いものを選択する.この過程を集団数が得られるまで繰り返す方式.トー
ナメントサイズを変更する事で選択圧をコントロールできる特徴がある.すなわ
ち,トーナメントサイズを大きくする事で選択圧を高める事ができるが、局所最適
解に陥りやすくなる.
ランク選択方式
各個体を適合度の大きいものから順に並べ,この順位に応じた関数により次の世
代に残す個体を決める方式.この方法は、ルーレット選択方式と違い選択確率が適
合度の格差に影響されない.しかし,これは逆に適合度にあまり差がない個体間で
も選択確率に大きな差が生じる可能性がある.また,個体にランク付けをするため
次世代が揃うたびにソートを行う必要がある.
9
エリート戦略
適合度の良い個体のいくつかを常にコピーして,次の世代に残す方式.選択に
よって解が悪い方向に向かわない(適合度の最大値が下がらない)ことを保証でき
る.しかし,エリートの遺伝子が集団の中に広まりすぎて解の多様性が失われると
いう恐れもある.
2.3.4. アルゴリズム
GP の基本的なアルゴリズムを以下に示す.
ステップ 1 ランダムに多数の個体を作成し,初期母集団とする
ステップ 2 各個体の適合度を計算
ステップ 3 終了条件に照らし合わせる.この条件のいずれかを満たすときは GP
を終了
• 終了条件 1:母集団の中に十分に高い適合度を持った個体が存在
する
• 終了条件 2:規定回数の世代交代を終了
ステップ 4 終了条件を満たさなかった場合
• 交叉,突然変異などの遺伝的操作を行う
• 適合度の高い個体を一定数選択
• 世代数を 1 増やす
• ステップ 2 に戻る
2.3.5. 変数の正規化
各変数の測定単位の違いを吸収するため,各変数を正規化(平均値を 0,分散を
1 にすること)してから GP を行っている研究もある [32].従って,本論文でも正
規化を行わない GP モデルと,GP モデル適用の前処理として,全ての変数を正規
化した GP モデルの 2 種類を実験に用いる.
10
2.4. 評価指標
低 品 質 モ ジ ュ ー ル 予 測 の 評 価 指 標 と し て は ,モ ジ ュ ー ル オ ー ダ ー モ デ ル
(MOM)[12] の評価に用いられている指標を用いた.MOM では予測欠陥数の多い
順にモジュールを並べたランキング(予測ランキング)を作成する.本評価指標は
それが実際の欠陥数の多い順にモジュールを並べたランキング(正解ランキング)
とどれほど近いかを表す尺度である.MOM による予測ランキングの評価は以下の
ステップで行う.
ステップ 1 まず,評価対象の範囲を決定するパラメータである,カットオフパー
センタイル c を設定する (0 ≤ c ≤ 1).MOM では c よりも上位のモ
ジュールを品質改善活動のターゲットとする
ステップ 2 正解ランキング,予測ランキングそれぞれについて c よりも上位のモ
ジュールに含まれる欠陥数の合計である G(c),Ĝ(c) を計算する.
G(c) =
∑
Fi
(4)
i:Ri ≥c
Ĝ(c) =
∑
Fi
(5)
i R̂(xi ) ≥c
Ri はモジュール i の実際の欠陥数 Fi に基づく正解ランキングのパーセ
ンタイルランクである.R̂(xi ) はモジュール i の予測モデルに基づく予
測欠陥数 F̂ (xi ) に基づく予測ランキングのパーセンタイルランクであ
る.x は説明変数を表す
ステップ 3 それぞれのランキングについて,G(c)/Gtot ,Ĝ(c)/Gtot を計算する.
Gtot は全モジュールの欠陥数の合計を表す.G(c)/Gtot ,Ĝ(c)/Gtot は
c より上位のモジュールに含まれる欠陥数が全モジュールの欠陥数の合
計に占める割合を表す
ステップ 4 ϕ(c) = Ĝ(c)/G(c) を計算する.ϕ(c) は予測ランキングが正解ランキン
グとどれほど近いかを表す.この値を MOM の最終的な評価とする
11
図 4 評価例
図 4 に 5 つのモジュールからなるランキングを用いた場合の評価例を示す.図の
各ステップは上記のステップと対応している.例では上位 2 個のモジュールを評価
対象とし,G(c)/Gtot ,Ĝ(c)/Gtot ,ϕ(c) の値を計算している.
12
3. 実験
3.1. 対象プロジェクト
対象プロジェクトは,経済産業省の支援を受けて,COSE*1 参加企業によって実
施されたプローブ情報システムの開発プロジェクトである [34].このプロジェクト
には以下の特徴がある.
• 2 ヶ年度に渡ったプロジェクトであり,新規開発を行った 2005 年度版と,保
守や改良を行った 2006 年度版のデータがある
• 実装内容別に分類されたコンポーネントが存在する.コンポーネントは 1 つ
以上のファイルの集合であり,全てのファイルはいずれか 1 つのコンポーネ
ントに属している
• 欠陥情報はコンポーネント毎に記録されている.従って,これらの記録を調
べることで,2005 年度,2006 年度に開発・保守されたコンポーネント毎の
欠陥数が把握できる
• コンポーネントと基本・詳細設計書との対応関係を把握できる
上記の特徴から,本研究ではコンポーネントをモジュールとみなす.松村ら [33]
が収集・加工した設計文書メトリクスのうち,変更量のメトリクスを含む 2006 年
度のメトリクスのみを説明変数として実験に用いた.実験に用いた設計文書メトリ
クスの一覧を表 3 に示す.重要変更箇所数,重要追加箇所数,重要削除箇所数につ
いては,変更・追加・削除箇所のうち,表紙・変更履歴・目次等,仕様・設計内容
に関連のない箇所を除いて計測を行っている.重大原因指摘数については,指摘さ
れた設計書の欠陥が混入した原因が,次の 3 つのいずれかに当てはまる指摘の数で
ある.
• 要求の確認不足
• 設計条件の確認不足
• 実現方式の検討不足
*1 ソフトウェアエンジニアリング技術研究組合
(COSE): COnsortium for Software Engineering.
13
基本設計書と詳細設計書のそれぞれについて表 3 に示す 19 のメトリクスを計測し
たため,合計 38 の設計文書メトリクスが得られた.
次に目的変数となる欠陥数の計測について述べる.テスト工程で発見された欠陥
データには, コンポーネント名が入力されており,基本・詳細設計書との関連付け
が可能である.基本・詳細設計書を基準にして設計書に対応するコンポーネントの
欠陥数を目的変数とする.欠陥数は単体・社内結合・社間結合・総合テストの 4 工
表 3 設計文書メトリクス一覧
変数名
説明
新規ページ数
新規作成ページ数
流用ページ数
再利用ページ数
全ページ数
新規+流用ページ数
更新回数
設計書の更新回数 (CVS 上のバージョン数)
重要変更箇所数
更新毎の重要な変更箇所数の合計
変更文字数(/100)
更新毎の設計書の変更文字数
重要追加箇所数
更新毎の重要な追加箇所数の合計
追加文字数(/100)
更新毎の設計書の追加文字数/100 の合計
重要削除箇所数
更新毎の重要な削除箇所数の合計
削除文字数(/100)
更新毎の設計書の削除文字数/100 の合計
レビュー時間(/新規ページ数)
レビュー時間/新規ページ数
レビュー時間(/全ページ数)
レビュー時間/全ページ数
指摘数
レビューで見つかった指摘数
重要指摘数
上記指摘のうち,重要度が高・中のものの総数
重大原因指摘数
設計内容に関して指摘された指摘数
指摘密度(/新規ページ数)
指摘数/新規ページ数
指摘密度(/全ページ数)
指摘数/全ページ数
重要指摘密度(/新規ページ数)
重要指摘数/新規ページ数
重要指摘密度(/全ページ数)
重要指摘数/全ページ数
14
程の合計値を用いた.
なお,各設計文書から生成されたモジュールの欠陥数を使って評価するため,下
流工程までのトレースができない文書は分析対象外とした.また,他システムや前
年度開発分からの流用コードで,基本設計や詳細設計が行われていないコンポー
ネントも分析対象外とした.上記の前処理の結果,分析対象となる文書は 24 と
なった.
3.2. 実験手順
実験の手順は次の通りである.手順を図示したものを図 5 に示す.図の 1 . . . 5
は以下のステップに対応している.
ステップ 1 24 の文書からランダムに 16 の文書を選び,それらをモデル構築用の訓
練データ,残りを予測値算出用のテストデータとした
ステップ 2 訓練データを用いて重回帰および GP モデルを構築した.重回帰モデ
ルは変数の対数変換を行ったものと行っていないものの 2 つ,GP モデ
ルは変数の正規化を行ったものと行っていないものの 2 つ,合計 4 つ
の予測モデルを構築した
ステップ 3 構築した重回帰,GP モデルにテストデータを適用して予測欠陥数を算
出し,予測欠陥数の多い順に並べて文書の予測ランキングを作成した.
また,比較のためにランダムで文書を並べたランキング,基本・詳細設
計書の全ページ数の合計値の多い順に並べたランキングも作成した
ステップ 4 各ランキングについて MOM の最終的な評価指標である Ĝ(c)/Gtot と
ϕ(c) を算出した.c には 0.875, 0.75, 0.625, 0.5 の 4 つの値を用いた.
テストデータは 8 つであるため,これらの値はランキングの上位から
それぞれ 1, 2, 3, 4 番目までのモジュールを評価対象とすることを表す
ステップ 5 ステップ 1 から 4 までを 100 回繰り返し,Ĝ(c)/Gtot と ϕ(c) の平均を
算出した
15
図 5 実験手順
16
重回帰分析のパラメータ
ステップワイズ重回帰分析のパラメータとして,各説明変数の係数が 0 でないか
の検定で用いる有意水準を pin = 0.05, pout = 0.05 とした.また,分散拡大要因
(VIF) は 10 とした.
GP のパラメータ
GP の適合度 f (k) の計算には以下の式を用いた.
f (k) =
1
∑
1 + log ( j∈O exp |Fˆk (xj ) − F (j)|)
(6)
ただし,k は個体,O は訓練データである文書群, j は文書,Fˆk (xj ) は個体 k の
予測欠陥数,F (j) は文書 j に関連付けられたモジュールの欠陥数を表す.式 (6) は
Matthew ら [6] が用いたものと同じ式を用いた.
√
非終端記号は {+, −, ×, /, sin, cos, exp′ , log} である.ただし,exp′ = exp( x).
終端記号は x1 , x2 , · · · , xn , R (x1 , x2 , · · · , xn は設計文書メトリクス,R は 0 ≤ R ≤
1 のランダムな実数) である.表 4 にその他の GP のパラメータを示す.
17
表 4 GP のパラメータ
個体数
2000
世代数
50
個体の木の最大深さ
17
初期個体の木の最小深さ
3
初期個体の木の最大深さ
6
交叉率
0.75
突然変異率
0.1
淘汰率
0.5
個体選択手法
エリート戦略
交叉手法
一点交叉
18
4. 結果・考察
4.1. ランキングの比較
それぞれのランキング毎の Ĝ(c)/Gtot の値を表 5 に,ϕ(c) の値を表 6 に示す.
また,Ĝ(c)/Gtot をすべての c について表したリフトチャートを図 6 に示す.
表 5 より,正解ランキングの上位 1/8(c ≥ 0.875) のモジュールは全欠陥の約 40
%,上位 1/2(c ≥ 0.5) のモジュールは全欠陥の約 89 %を含んでいる.従って,こ
の正解ランキング上位の低品質モジュールを生成する可能性のある文書を特定する
ことで,限られたリソースの中で最大限に品質改善活動を行うことが可能となる.
表 6, 図 6 より重回帰モデル 2 つと GP モデル 2 つを用いて算出された予測ラン
キングは,ランダムなランキングと全ページ数を用いたランキングよりも正解ラン
キングに近いことが分かった.ランダムなランキングでは上位 1/8 のモジュールは
全欠陥の 13 %,上位 1/2 のモジュールは全欠陥の 50 %を含むのに対し,対数変換
を行っていない重回帰モデルを使用した予測ランキングでは上位 1/8 のモジュール
は全欠陥の 30 %,上位 1/2 のモジュールは全欠陥の 73 %を含んでいる.また,正
規化を行っていない GP モデルを用いた予測ランキングでは上位 1/8 のモジュー
ルは全欠陥の 29 %,上位 1/2 のモジュールは全欠陥の 73 %を含んでいる.全ペー
ジ数を用いたランキングと比較した場合,上位 1/8 では重回帰,GP のランキング
の方がより多くの欠陥を含んでいるのに対し,上位 1/2 よりも多くのモジュールを
対象にするとほぼ差がなくなった.しかし,限られたリソースでの品質改善活動で
は,0.875 ≤ c ≤ 0.5 の範囲で全ページ数を用いたランキングよりも ϕ(c) の値が大
きい重回帰や GP のランキングの方がより有効であると考えられる.
対数変換を行っていない重回帰,対数変換を行った重回帰,正規化を行っていない
GP,正規化を行った GP それぞれのモデルを用いたランキングの ϕ(c) の平均値と
ランダム,全ページ数を用いたランキングの ϕ(c) の平均値の差の検定 (t 検定) を有
意水準 5 %で行った結果を表 7 に示す.ただし,ϕ(c) の平均値は 0.875 ≤ c ≤ 0.5
を対象とした.表 7 より,4 つのランキングはいずれもランダムなランキングと比
較すると ϕ(c) の平均値に有意差があった.全ページ数と比較すると有意差があっ
たのは対数変換を行っていない重回帰モデルを用いたランキングだけであった.し
19
表 5 Ĝ(c)/Gtot : 上位のモジュールが全欠陥の何%を含んでいるか
c
ランキング
正解
重回帰
GP
重回帰
(対数変換)
GP
ランダム
全ページ数
(正規化)
0.875
0.4
0.3
0.21
0.29
0.29
0.13
0.12
0.75
0.63
0.49
0.41
0.48
0.48
0.27
0.31
0.625
0.79
0.63
0.55
0.62
0.61
0.39
0.52
0.5
0.89
0.73
0.67
0.73
0.71
0.5
0.72
表 6 ϕ(c): 予測ランキングが正解ランキングとどれくらい近いか
c
ランキング
重回帰
重回帰
GP
(対数変換)
GP
ランダム
全ページ数
(正規化)
0.875
0.75
0.53
0.73
0.73
0.33
0.30
0.75
0.78
0.65
0.76
0.76
0.43
0.49
0.625
0.80
0.70
0.78
0.77
0.49
0.66
0.5
0.82
0.75
0.82
0.80
0.56
0.81
かし,今回の実験はサンプルサイズが非常に小さく, 第 2 種の過誤(実際には有意
差があるが誤って有意差なしと判断すること)が起こっている可能性もあるため,
全ページ数と比較して有意差がなかった 3 つのランキングについてパワーアナリシ
スを行った.その結果を表 8 に示す.表 8 より,いずれのランキングも検出力は低
い(一般に検出力は 80 %以上が目安となる).従って,今回の結果だけでは 3 つの
ランキングに関して,全ページ数を用いたランキングとは差があるのかどうか判断
できなかった.
20
図 6 リフトチャート
21
表 7 t 検定の p 値
重回帰
重回帰
GP
(対数変換)
GP
(正規化)
ランダム
0.001
0.013
0.001
0.002
全ページ数
0.046
0.23
0.079
0.08
表 8 パワーアナリシスの結果
重回帰
GP
(対数変換)
検出力
0.43
(正規化)
0.67
22
GP
0.65
4.2. 予測に貢献したメトリクスの分析
38 の設計文書メトリクスのうちどのメトリクスが低品質モジュール予測に貢献し
たかを調べるために,重回帰分析では 100 回の試行における標準化偏回帰係数の合
計,GP では各試行における最も適合度の高い個体での各メトリクスの出現回数を
調べた.その結果を図 7, 図 8 に示す.各設計文書メトリクスの BD,DD はそれぞ
れ基本設計書 (Basic Design document), 詳細設計書 (Detailed Design document)
から計測したことを表している.標準化偏回帰係数とは偏回帰係数の大きさが測定
単位によって左右されないようにするため,各変数を平均 0,分散 1 に標準化して
重回帰分析を行った時の偏回帰係数の値である.GP における各メトリクスの出現
回数は重複も許してカウントしている.
図 7, 図 8 より,重回帰分析,GP 共に DD 重要指摘数,BD 重要変更箇所数の
2 つが他のメトリクスに比べて予測に大きく貢献していることが分かる.また,重
回帰分析,GP それぞれにおいて予測に貢献したメトリクスの上位 5 つを見ると,
5 つのうち 4 つのメトリクス(DD 重要指摘数,BD 重要変更箇所数,DD 重要指
摘密度 (/全ページ数),BD 指摘数)が共通している.このことが重回帰と GP の
Ĝ(c)/Gtot および ϕ(c) の値が近くなった原因と思われる.
23
図 7 重回帰分析における各設計文書メトリクスの標準化偏回帰係数の合計
24
図 8 GP における各設計文書メトリクスの出現回数
25
4.3. 適用可能性
本研究の実験結果を用いることで,設計工程が完了した時点で低品質モジュール
を生成する可能性のある設計文書を特定することができる.実験で使用したデータ
は特定の 1 社だけではなく,複数のソフトウェア開発企業が参加したプロジェク
トから計測したデータであるため,本研究の実験結果は特定の会社に依存する要因
(開発プロセス,開発体制など)の影響を受けておらず,他の組織においても同様に
本手法を適用可能であると考えられる.しかし,本研究の実験結果を利用するにあ
たって,以下のような注意点がある.
• モジュールの品質は設計書の品質だけでなく開発者の技量,開発プロセスな
どの開発環境にも影響を受けると考えられる.そのため,訓練データでモデ
ルを構築した時の開発環境と,テストデータで実際に予測を行う時の開発環
境とをできるだけ近づける必要がある
• 実験で使用したプロジェクトは保守開発のプロジェクトである.保守開発で
は新規に作ったソフトウェアに加えて既存のソフトウェアに新規ソフトウェ
アを組み込んだものに対してもテストを行わなければならないため,新規開
発に比べてテストにより多くの工数がかかるなどの違いがある.そのため,
新規開発とは開発プロセスが異なる.従って,実験で使用したプロジェクト
と同様に,保守開発のプロジェクトで本手法を適用した場合には本研究の実
験結果と同様の結果が期待できるが,新規開発の場合でも本手法が有効であ
るかどうかは今後さらに検証していく必要がある
4.4. 予測結果の応用プロセス
本研究の予測結果の応用例として,設計工程完了時に低品質モジュールを生成す
る可能性のある文書を特定し,実装工程における品質改善活動を行うことが考えら
れる.4.3 節の注意点を踏まえ,実装工程で品質改善活動を行うプロセスを以下に
示す.
ステップ 1 現在進行中のプロジェクトと開発環境(開発体制,開発プロセスなど)
26
が似た過去のプロジェクトで生成されたソフトウェアタグを取得する.
ソフトウェアタグにはプロジェクト情報としてこのような開発環境の
情報も含まれているため,この情報を利用して類似プロジェクトを検索
可能である
ステップ 2 ステップ 1 で取得したソフトウェアタグから設計文書メトリクスとモ
ジュールの欠陥数を抽出し,設計文書と各設計文書から生成されたモ
ジュールの欠陥数を関連付ける
ステップ 3 ステップ 2 の設計文書メトリクスとモジュールの欠陥数を訓練データ
として重回帰モデルと GP を構築する
ステップ 4 現在進行中のプロジェクトで生成されているソフトウェアタグに含まれ
る設計文書メトリクスをステップ 3 のモデルに適用し,低品質モジュー
ルを生成する可能性のある設計文書を特定する
ステップ 5 リソースの制約に応じてステップ 4 の設計文書を対象に実装工程での
品質改善活動(経験のある開発者を割り当てる,コードレビューを重点
的に行うなど)を行う
27
5. 関連研究
これまで低品質モジュールを予測する研究が盛んに行われてきた [1–3, 9, 11, 17,
19, 27, 30].これらの予測手法は,実装工程完了時に予測を行う手法と,本研究と
同様に設計工程などの実装工程よりも前の段階で予測を行う手法の 2 つに分けるこ
とができる.
実装工程完了時に予測を行う手法
亀井ら [31] は低品質モジュール予測精度の向上を目的として,相関ルール分析と
ロジスティック回帰分析を組み合わせた予測手法を提案している.提案手法では,
与えられたモジュールに対し,重要なルール(支持度,信頼度,または,リフト値
の大きなルール)が存在する場合は相関ルール分析によって判別し,そうでない場
合は,ロジスティック回帰分析によって判別する.NASA/WVU の公開している
データと,Eclipse プロジェクトから収集したデータセットを対象として,ロジス
ティック回帰分析,線形判別分析,分類木の 3 つと性能を比較した結果,判別精度
を表す F1 値が従来手法と比較して 0.163 向上した.
また,ソースコードからメトリクスを抽出することなく,ソースコードのテキス
ト自身を入力として,低品質モジュールを判別する手法が Mizuno ら [16] によっ
て提案されている.Mizuno らは,メールのスパムフィルタなどに利用されている
ベイジアンフィルタを用いることで,ソースコードを単なるテキストとみなして低
品質モジュールの判別を試みている.オープンソースプロジェクトから収集した
データセットを対象とした実験では,欠陥を含むモジュールの全体のうち 78% の
モジュールを検出することができた.
これらの研究では実装工程完了時に予測を行っているが,本研究は設計工程完了
時に予測を行っている点が異なる.設計工程完了時に予測を行うことで実装工程で
の品質改善に寄与することができる.
28
設計工程完了時に予測を行う手法
低品質モジュール予測手法の多くはソースコードから計測したメトリクスを用い
て予測を行っているが,本研究と同じく設計工程で計測可能なメトリクスを用いて
低品質モジュールの予測を行っている研究もいくつかみられる.
Ohlsson ら [20] は,FDL オブジェクトの数,送信,受信シグナルの数などの設
計工程で計測されるメトリクスと,サイクロマティック数,サブルーチン数などの
ソースコードから計測されるメトリクスを用いて低品質モジュールの予測を行って
いる.予測モデルとしては Spearman の順位相関係数を用いて欠陥数と相関の高
いメトリクスを複数選択し,メトリクスの合計値が高い順を予測ランキングとして
いる.大規模な通信システムのプロジェクトに適用した結果,予測ランキングの上
位 20 %のモジュールには全欠陥の 49 %が含まれていた.(正解ランキングでは 57
%)
Kamiya ら [10] は,分析・設計・実装フェーズに 4 つのチェックポイントを設け,
それぞれのチェックポイントで計測可能なメトリクスを用いて低品質モジュールの
予測を行い,チェックポイント毎の結果を比較している.メトリクスにはオブジェ
クト指向設計を対象とする C&K メトリクス [4] を用いている.メール配送システ
ムのプロジェクトに多変量ロジスティック回帰分析を適用した結果,どのチェック
ポイントでも適合率は高く,後工程になるにつれて再現率が上昇することを示して
いる.
Adrian ら [24] は,コンポーネントの依存関係を用いて低品質モジュールの予測
を行っている.52 の Eclipse プラグインを対象に線形回帰分析,リッジ回帰,回帰
木,サポートベクターマシーンを適用した結果,サポートベクターマシーンが最も
精度が高く,適合率 67 %,再現率 69 %という結果が得られたと報告している.コ
ンポーネントの依存関係は設計完了時に決まっているため,この予測結果を利用す
ることで本研究と同じく実装工程における品質改善活動に役立つと述べている.
これらの研究は Formal Description Language(FDL) や Unified Modeling Lan-
guage(UML) 等で記述された詳細設計書の内容に着目している.従って,適用可
能なプロジェクトが限定されてしまう,計測にコストがかかるといった問題点があ
る.本研究ではページ数のように設計書の内容に関わらず計測可能なメトリクスを
29
使用しているため,全てのプロジェクトで適用可能であり,計測も容易である.
30
6. おわりに
本研究では実装工程における品質改善活動への寄与を目的にソフトウェアタグに
含まれる設計文書メトリクスを用いて,多くの欠陥を含む可能性が高い低品質モ
ジュールの予測を試みた.実験では複数のソフトウェア開発企業が共同で行ったプ
ロジェクトを対象とし,予測手法として低品質モジュール予測に一般的に用いられ
ている重回帰分析,GP を用いた.各手法で得られたランキングと欠陥数の多い順
にモジュールを並べた正解ランキングの上位 1/8 を比較した結果,ランダムにモ
ジュールを選択した場合は正解ランキングの 33 %を,設計書のページ数の多い順
に選択した場合は 30 %を予測できたのに対し,重回帰分析で予測を行った予測ラ
ンキングは 75 %,GP で予測を行った予測ランキングは 73 %の精度で低品質モ
ジュールの予測を行うことができた.この結果から設計工程完了時に高い精度で低
品質モジュールの予測を行うことができ,実装工程における品質改善活動へ寄与で
きることが分かった.また,基本・詳細設計書から計測した設計文書メトリクスの
うち,重回帰分析,GP それぞれにおいてどのメトリクスが予測に貢献していたの
かを明らかにした.さらに,本研究の適用可能性について言及し,本研究の応用プ
ロセスとしてソフトウェアタグを用いた実装工程における品質改善活動について提
案した.
以下に,本研究をさらに探求するための,今後の課題を挙げる.
予測精度のさらなる向上
本研究では,GP のパラメータは Matthew ら [6] の予測手法を参考に試行錯誤を
行って定めたものであるが,今後,メタ GA[25] などの GP のパラメータ調整手法
を用いることで GP の予測精度をさらに向上させることが考えられる.
設計工程でのプロセス改善
本研究では,実験に用いた設計文書メトリクスのうち予測に貢献したものをいく
つか明らかにした.これらのメトリクスを参考に設計工程でのプロセス改善を行う
31
ことで,低品質モジュールを生成する可能性のある設計書の数を減らすことができ
るのではないかと考えられる.
32
謝辞
本研究を進めるにあたり,多くの方々に御指導,御協力,御支援を頂きました.
巻末ではありますが,ここに謝意を添えて御名前を記させて頂きます.
奈良先端科学技術大学院大学 情報科学研究科 ソフトウェア設計学講座 飯田 元
教授には,本研究の全過程において熱心な御指導を賜りました.研究方針だけでは
なく,研究に対する姿勢,論文執筆,発表方法についても多くの御助言を頂きまし
た.心より厚く御礼を申し上げます.
奈良先端科学技術大学院大学 情報科学研究科 システム制御・管理講座 西谷 紘一
教授 には,本研究を進めるに当たり,貴重な御指導を賜りました.また,学内の発
表において多数の御質問と御指導を頂きました.心より感謝申し上げます.
奈良先端科学技術大学院大学 情報科学研究科 ソフトウェア工学講座 松本 健一
教授には,様々な場面で本研究に対し貴重な御指導,御助言を賜りました.心より
感謝申し上げます.
奈良先端科学技術大学院大学 情報科学研究科 ソフトウェア設計学講座 川口 真
司 助教には,本研究を進めるに当たり,広範囲かつ多大な御助力を頂きました.特
に,学会発表や論文投稿時に貴重な御助言を頂戴いたしました.心より感謝申し上
げます.
奈良先端科学技術大学院大学 情報科学研究科 ソフトウェア工学講座 松村 知子
特任助教,森崎 修司 助教,門田 暁人 准教授,京都産業大学 コンピュータ理工学
部 玉田 春昭 助教,株式会社 NTT データ 大杉 直樹 氏,独立行政法人 情報処理推
進機構 ソフトウェア・エンジニアリング・センターの方々には,本研究を進めるに
当たり,貴重な企業データをご提供頂きました.心より感謝申し上げます.
株式会社日立製作所 名倉 正剛 氏には,本研究を進めるに当たり,広範囲かつ多
大な御助言・御助力を頂戴しました.心より感謝申し上げます.
奈良先端科学技術大学院大学 情報科学研究科 ソフトウェア設計学講座 伏田 享
平氏ならびに大蔵 君治氏には,本研究を進めるに当たり,広範囲かつ多大な御助力
を頂きました.特に,学会発表や論文投稿時に貴重な御助言を頂戴いたしました.
33
心より感謝申し上げます.
奈良先端科学技術大学院大学 情報科学研究科 ソフトウェア設計学講座,ならび
にソフトウェア工学講座の皆様には,日頃より多大な御協力と御助言を頂き,公私
ともに支えていただきました.ありがとうございました.最後に,日頃より私を励
まし,温かく見守ってくれた家族に心より深く感謝します.
34
参考文献
[1] V. R. Basili, L. C. Briand, and W. L. Melo. A validation of object-oriented
design metrics as quality indicators. IEEE Transactions on Software Engineering, Vol. 22, No. 10, pp. 751–761, 1996.
[2] L.C. Briand, V.R. Basili, and C.J. Hetmanski. Developing interpretable
models with optimized set reduction for identifying high-risk software components. IEEE Transactions on Software Engineering, Vol. 19, No. 11, pp.
1028–1044, 1993.
[3] C.Catal and B.Diri. A systematic review of software fault prediction studies. Expert Systems With Applications, 2008.
[4] S.R. Chidamber and C.F. Kemerer. A metrics suite for object oriented
design. IEEE Transactions on software engineering, Vol. 20, No. 6, pp.
476–493, 1994.
[5] A. Endres and H.D. Rombach. A handbook of software and systems engineering: empirical observations, laws, and theories. Addison-Wesley, 2003.
[6] M. Evett, T. Khoshgoftar, P.D. Chien, and E. Allen. GP-based software
quality prediction. In Genetic Programming 1998: Proceedings of the Third
Annual Conference, pp. 60–65, 1998.
[7] F.D. Francone, M. Conrads, W. Banzhaf, and P. Nordin. Homologous
crossover in genetic programming. In Proceedings of the Genetic and Evolutionary Computation Conference, Vol. 2, pp. 1021–1026, 1999.
[8] A.R. Gray and S.G. Macdonell. Software metrics data analysis-exploring
the relative performance of some commonly used modeling techniques. Empirical Software Engineering, Vol. 4, No. 4, pp. 297–316, 1999.
[9] Y. Jiang, B. Cuki, T. Menzies, and N. Bartlow. Comparing design and
code metrics for software quality prediction. In Proceedings of the 4th
international workshop on Predictor models in software engineering, pp.
11–18, 2008.
35
[10] T. Kamiya, S. Kusumoto, and K. Inoue. Prediction of fault-proneness at
early phase in object-oriented development. In Proceedings of the Second
IEEE International Symposium on Object-Oriented Real-Time Distributed
Computing, pp. 253–258, 1999.
[11] T.M. Khoshgoftaar and E.B. Allen. Modeling software quality with classification trees. Recent Advances in Reliability and Quality Engineering, pp.
247–270, 2001.
[12] T.M. Khoshgoftaar, B. Cukic, and N. Seliya. An empirical assessment on
program module-order models. Qual Technol Quant Manag, Vol. 4, No. 2,
pp. 171–190, 2007.
[13] B. Kitchenham and E. Mendes. Why comparative effort prediction studies
may be invalid. In Proceedings of the 5th International Conference on
Predictor Models in Software Engineering, 2009.
[14] J. R. Koza. Genetic Programming. The MIT Press, 1992.
[15] Y. Liu and T.M. Khoshgoftaar. Genetic programming model for software
quality classification. In Proceedings of the 6th IEEE International Symposium on High Assurance Systems Engineering(HASE ’01), pp. 127–136.
IEEE Computer Society, 2001.
[16] O. Mizuno, S. Ikami, S. Nakaichi, and T. Kikuno. Fault-Prone Filtering: Detection of Fault-Prone Modules Using Spam Filtering Technique.
In Proceedings of the 1st International Symposium on Empirical Software
Engineering and Measurement (ESEM’07), pp. 374–383, 2007.
[17] J.C. Munson and T.M. Khoshgoftaar. The detection of fault-prone programs. IEEE Transactions on Software Engineering, Vol. 18, No. 5, pp.
423–433, 1992.
[18] I. Myrtveit, E. Stensrud, and U.H. Olsson. Analyzing data sets with missing data: An empirical evaluation of imputation methods and likelihoodbased methods. IEEE Transactions on Software Engineering, Vol. 27,
No. 11, pp. 999–1013, 2001.
[19] N. Ohlsson and H. Alberg. Predicting fault-prone software modules in
36
telephone switches. IEEE Transactions on Software Engineering, pp. 886–
894, 1996.
[20] N. Ohlsson, M. Helander, and C. Wohlin. Quality improvement by identification of fault-prone modules using software design metrics. In Proceedings:
International Conference on Software Quality, pp. 1–13, 1996.
[21] M. Pighin and R. Zamolo. A predictive metric based on discriminant
statistical analysis. In Proceedings of the 19th international conference on
Software engineering, pp. 262–270, 1997.
[22] R. Poli and W.B. Langdon. On the search properties of different crossover
operators in genetic programming. Genetic Programming, pp. 293–301,
1998.
[23] R. Poli and W.B. Langdon. Schema theory for genetic programming with
one-point crossover and point mutation. Evolutionary Computation, Vol. 6,
No. 3, pp. 231–252, 1998.
[24] A. Schröter, T. Zimmermann, and A. Zeller. Predicting component failures
at design time. In ISESE ’06: Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, pp. 18–27, 2006.
[25] J. SHÍRATAK and T. TOMIKAWA. A Study of Parameter Optimization
in Meta-Genetic Algorithm. Research Reports of Kanagawa Institute of
Technology, Vol. 24, pp. 63–66, 2000.
[26] F. Shull, V. Basili, B. Boehm, A.W. Brown, P. Costa, M. Lindvall, D. Port,
I. Rus, R. Tesoriero, and M. Zelkowitz. What we have learned about
fighting defects. In Proceedings of the 8th International Symposium on
Software Metrics, p. 249, 2002.
[27] Q. Song, M. Shepperd, M. Cartwright, and C. Mair. Software defect association mining and defect correction effort prediction. IEEE Transactions
on Software Engineering, Vol. 32, No. 2, pp. 69–82, 2006.
[28] StagE プロジェクト. http://www.stage-project.jp/.
[29] E. Stensrud, T. Foss, B. Kitchenham, and I. Myrtveit. A further empirical
investigation of the relationship between MRE and project size. Empirical
37
software engineering, Vol. 8, No. 2, pp. 139–161, 2003.
[30] T. Zimmermann and N. Nagappan. Predicting defects using network analysis on dependency graphs. In Proceedings of the 30th international conference on Software engineering, pp. 531–540, 2008.
[31] 亀井靖高, 森崎修司. 相関ルール分析とロジスティック回帰分析を組み合わせ
た fault-prone モジュール判別方法. 情報処理学会論文誌, Vol. 49, No. 12,
pp. 3954–3966, 2008.
[32] 齊藤光俊, 芹川聖一. 累積探索を用いた進化論的手法による関数発見システ
ム. 電気学会論文誌C(電子・情報・システム部門誌), Vol. 128, No. 3, pp.
399–406, 2008.
[33] 松村知子, 森崎修司, 玉田春昭, 大杉直樹, 門田暁人, 松本健一. Gqm モデルに
基づく設計工程完成度計測手法の提案. Technical Report TR2007005, 奈良
先端科学技術大学院大学, March 2007.
[34] 情報処理推進機構ソフトウェア・エンジニアリング・センター. ソフトウェア
エンジニアリングの実践−先進ソフトウェア開発プロジェクトの記録. 翔泳社,
東京, 2007.
[35] 田中豊, 垂水共之. 統計解析ハンドブック 多変量解析. 共立出版, 1998.
38
© Copyright 2025 Paperzz