法政大学大学院工学研究科紀要 Vol.55(2014 年 3 月) 法政大学 RBF ネットワークを用いたソフトウェアメトリクス データによる信頼性評価に関する研究 A STUDY ON SOFTWARE RELIABILITY EVALUATION BASED ON SOFTWARE METRICS DATA USING RBF NETWORKS 稲垣寿一 Toshikazu INAGAKI 指導教員 木村光宏 法政大学大学院工学研究科システム工学専攻修士課程 This paper provides a new approach to estimate the software reliability with the data sets obtained from the upper process of software development. We first explain the concept of RBF (Radial Basis Function) network and show the structure of our model. By using the actual data sets, we try to estimate the number of inherent software faults. We also compare the proposed model and the neural network model which were constructed in the previous study in terms of the goodness-of-fit to the data sets. Our model can provide the better estimation results of the number of inherent software faults in the early stage of software development. Key Words: Software reliability, Software project data, Software quality control, Regression analysis, RBF network, Neural network 1. はじめに 現在は高度情報化社会であると言われているように,コ 2. RBF ネットワーク 放射基底関数 (Radial Basis Function, 以下 RBF) ネッ ンピュータシステムは様々な分野で重要な役割を担って トワークは,放射基底関数と呼ばれる局在化した基底関 いる.その中でもソフトウェアの品質の維持・向上が重 数の重ね合わせにより,任意関数の補間を行う手法であ 要な要素になっている.そして,そのソフトウェア信頼 る [3].図 1 は RBF ネットワークの構成図である. 性の定量的な評価を,その開発段階においてなるべく早 期に,かつ精度よく行いたいという要望は自然なもので ある.本研究では,ウォーターフォール型のソフトウェ ア開発方式を想定しており,テスト工程以前に計測でき る多変量のソフトウェアプロジェクトデータに対して, RBF ネットワークを用いることで,そのソフトウェアに 潜在しているであろうソフトウェアフォールト数を見積 もるモデルの評価を,既存のニューラルネットワークに よる研究結果 [1] と比較しながら実際のデータに基づいて 行う.RBF ネットワークは中間層に放射基底関数を用い た 3 層ニューラルネットワークの一種であり,各ニュー ロンからの出力の重み付き線形和が出力となる.シグモ イド関数を用いたニューラルネットワークに比べ中間層 の数が少なく構造が簡単であり,また,関数近似能力や 学習効率に優れていると報告されている [2]. 図 1 RBF ネットワーク. ∑ (xi − µij ) ∂E = (y − y p )y ∂µij σj2 i (1)RBF ネットワークの概要 入力を x ∈ Rm ,出力を y ∈ R とすると,RBF ネット ∑1 ∂E p = (y − y )y ∂σj2 2 i ワークの目的は,N 個の入出力データの組, (x1 , y 1 ), . . . , (xN , y N ) , (1) が与えられたとき,これらの条件を満たす関数 y = f (x) を同定することである.入力xに対する j 番目の RBF 素 子の出力 Gj は, ( xi − µij σj2 , (9) , (10) )2 となる.上記の学習を繰り返し行い,パラメータの推 定を行っていく. 3. ソフトウェアプロジェクトデータ ( Gj = exp − ∑ (xi − µij )2 ) i 本研究の目的は,ソフトウェア開発の最終段階である , 2σj2 (2) テスト工程に入るまでに得られた多変量データ(ソフト である.ここで,µij は j 番目の RBF 素子の第 i 次元入 力の平均値,σj2 は j 番目の RBF 素子の標準偏差である. さらにネットワークの出力 y は, y= m ∑ wj Gj ウェアプロジェクトデータと称する)を用いて,RBF ネットワークによる予測モデルを上述のように構成する ことで,プログラム内に含まれたソフトウェアフォール ト数を出来るだけ早期に精度よく見積もりたいというも , (3) のである.以下に,あるソフトウェア開発主体において 観測された 19 のソフトウェア開発プロジェクトで観測さ j で与えられる.ここで,wj は j 番目の RBF 素子の重み, れた変数の意味づけを説明する. m は中間層の素子数である.以降,RBF パラメータの集 (1) 変量の意味づけ 合を,簡単のため (m, µ, σ 2 , w) と表す. 本研究では,既存の論文 [5] で使われたソフトウェア RBF ネットワークは,与えられた入出力関係を満たす 開発プロジェクトデータを用いて,モデルの予測精度を 関数を近似することが目的であるため,評価関数として 評価する.以下に,各データの意味づけも合わせて列挙 RBF ネットワークの出力と教師信号との 2 乗誤差が多く する. 用いられる.xp を入力したときの RBF ネットワークの x1 プロジェクト初期のリスク率 (比)(0∼100) 出力を y とすると, 1∑ (y − y p )2 E(m, µ, σ , w) = 2 2 x2 開 発 の 大 き さ に 対 す る 契 約 内 容 の 問 題 数 (数 , (4) により評価関数 E を定義する.ここで,y p は所与の値 /KLOC) (KLOC : Kilo Lines of Code) x3 開発の大きさに対する日数 (日/KLOC): 契約内容の確認の時に発見される問題を解決する である.このとき,解くべき関数同定問題は,必要な同 際にかかった日数の総数 定の精度 ϵ を用いて,E < ϵ を満たすパラメータの組 x4 開発の大きさに対する計画の問題の数 (数/KLOC): (m, µ, σ 2 , w) を見つける問題になる [4]. プロジェクト計画の確認の際に発見された問題の (2) パラメータの推定 数の総数 RBF ネットワークの未知パラメータを最急降下法によ x5 開発の大きさに対する日数 (日/KLOC) : り求める.最急降下法による学習則は, ∂E ∂wj , ∂E ∂µij , wjnew = wjold − η µnew = µold ij ij − η σj2 new = σj2 old プロジェクト計画の確認の際に発見される問題を −η x6 設計品質評価の層別因子 (1=評価あり,0=評価なし) ∂E ∂σj2 (6) 則における未知パラメータに対する勾配ベクトルは,そ れぞれ ∂E = (y − y p ) exp − ∂wj ∑ (xi − µij )2 i 2 2σij Yq 開発中及びテスト中に発見されたフォールト数 表 1 に実測データを示す.Yq がいわゆる目的関数であ (7) り,古典的には説明変数を x1 から x6 の中から採用する , である.ただし,η は正の学習係数である.また,学習 ( 解決する際にかかった日数の総数 (5) 重回帰モデルにより Yq を精度よく推定する問題になる. Yq はソフトウェア開発の最終段階であるテスト工程から 計測されるが,一方 x1 から x6 の変量は,テスト工程に 入る前に計測可能な変量であることに注意が必要である. ) , (8) つまり,テスト工程の結果として計測される Yq を,それ 以前の段階において推定することに,本研究も含んだこ 表2 れまでの研究は意味をもつことになる. wj の最終値. 中間層 (j) — 1 350.339 2 -548.464 表 1 実測データ [5](No. はプロジェクト番号). No. x1 x2 x3 x4 x5 x6 Yq 3 -167.384 1 19 0.323 8.065 0.473 10.430 0 1 4 -23.516 2 13 0.690 4.483 0.259 2.414 0 0 5 25.521 3 11 0.127 4.322 0.059 1.186 0 2 4 24 0.150 3.083 0.293 11.880 0 5 5 17 0.131 1.343 0.082 4.552 0 0 6 29 0.638 2.553 0.979 40.000 0 1 7 35 0.241 5.060 0.494 19.398 0 4 HH 8 25 0.076 0.138 0.069 0.519 0 0 i 表3 µij の最終値. HH j 1 HH H 1 37.697 2 3 4 5 9 28 0.057 0.573 0.046 0.573 0 3 38.071 33.597 42.443 28.476 10 38 0.323 2.177 0.258 3.226 0 5 2 11.087 13.571 14.097 12.643 14.476 11 42 0.329 2.336 0.292 3.723 0 6 3 10.897 14.071 13.607 12.543 14.476 12 30 0.256 1.923 0.321 3.205 0 3 13 28 0.149 1.940 0.224 2.985 0 2 14 35 1.250 7.500 1.563 62.500 0 0 15 23 0.331 7.868 0.184 7.647 1 0 表4 16 29 0.345 10.345 0.379 14.483 1 0 中間層 (j) — 17 25 0.047 2.617 0.005 0.094 1 0 1 10.523 18 18 0.000 0.000 1.167 10.000 1 0 2 10.053 19 30 0.059 0.118 0.188 0.941 1 0 3 10.810 4 9.071 5 11.550 σj2 の最終値. 4. 適用例 2つの予測モデルは以下の通りである.19 個のプロ ジェクトデータから 1 個のデータを取りおき,残りの 18 表5 個のデータからモデルを推定する.その後,同定された モデルに対して取りおいたデータを入力することにより, 出力される Yˆq を予測値とし,これを 19 パターン行った. 各モデルの適合性を,予測値と実測値によって算出され た残差平方和によって比較する.適用例の一部と結果を 以下に示す. No. 1 Yq 1 推定結果 1. NN(h = 1) NN(h = 2 ) 予測値 残差 2 予測値 残差 2 1.063 0.004∗ 1.770 0.593 ∗ 1.149 2 0 0.105 0.011 1.072 3 2 1.149 0.724∗ 1.121 0.772 4 5 1.556 11.86 2.220 7.729∗ 5 0 1.605 2.576 1.434 2.056 ∗ 6 1 1.418 0.175 1.778 0.605 7 4 4.209 0.044 4.317 0.100 文献 [1] では,中間層数が 1 個 (ニューロン数は 5 個) 8 0 2.862 8.194 2.763 7.634 と 2 個 (ニューロン数はともに 9 個) から成る予測モデル 9 3 3.152 0.023∗ 3.309 0.096 を構築した.推定結果を表 5 に示す. 10 5 4.609 0.153 4.573 0.183 11 6 5.860 0.020 5.906 0.009 12 3 2.785 0.046∗ 2.780 0.049 本研究では,RBF ネットワークの中間層の数を1と固 13 2 2.886 0.786 2.898 0.807 定して,中間層のニューロン数 m を m = 3, m = 5 と 14 0 0.971 0.944 0.958 0.918 15 0 -0.597 0.356 -0.094 0.009 16 0 -0.534 0.285 -0.259 0.067 ∗ (1) ニューラルネットワーク (2)RBF ネットワーク m = 7 の 3 つのモデルを構築した.m = 5 の場合におい て,No.1∼No.18 のデータを使って,No.19 の予測値を 17 0 0.034 0.001 -0.067 0.004 求めるための予測モデルにおける,各パラメータの値を 18 0 0.296 0.088 0.183 0.033 表 2,表 3 および表 4 に示す.推定結果を表 5 から表 7 19 0 0.424 0.180 -0.139 0.019 に示す.なお,推定結果の表中,∗ はその行において最も 合計 — — 26.467 — 22.832 小さい値を,つまり最良のモデルであることを示す. 11 個となり,RBF ネットワークモデルの方が良い推定 表6 No. 推定結果 2. RBF(m = 3) Yq 値を与えていることが分かる.また,残差平方和を比較 RBF(m = 5) 予測値 残差 2 予測値 残差 2 すると 1 1 0.261 0.546 0.917 0.007 ニューラルネット (h = 1) = 26.467 2 0 -0.180 0.032 0.540 0.292 ニューラルネット (h = 2) = 22.832 3 2 -0.129 4.532 0.475 2.325 RBF ネット (m = 3) = 24.894 4 5 1.674 11.064 1.727 10.710 0 0.058 0.003∗ RBF ネット (m = 5) = 20.095 5 0.834 0.696 6 1 1.785 0.616 1.502 0.252 7 4 3.408 0.351 4.030 0.001∗ となり,残差平方和という評価基準において,m = 5 と ∗ RBF ネット (m = 7) = 20.120 8 0 1.967 3.868 2.063 4.255 m = 7 のとき,RBF ネットワークの方が,過去の研究に 9 3 2.456 0.296 2.727 0.075 5 5.183 0.033∗ おいて最も予測精度が高かったニューラルネットワーク 10 4.752 0.061 11 6 5.987 0.000∗ 5.963 0.001 12 3 2.557 0.197 2.686 0.099 1つの場合に限ると,m = 3,m = 5 と m = 7 のすべて 13 2 2.437 0.191∗ 2.524 0.274 の場合において RBF ネットワーク方が精度が良いこと ∗ が分かった. 14 0 0.316 0.010 0.393 0.155 15 0 0.818 0.668 -0.054 0.003 16 0 -0.222 0.049∗ -0.732 0.535 17 0 1.513 2.289 0.271 0.074 18 0 -0.116 0.014∗ 0.517 0.267 19 0 0.210 0.044 0.117 0.014∗ 合計 — — 24.894 — 20.095 よりも予測精度が良いことが分かった.また,中間層を 5. おわりに 本研究では,既に提案されたニューラルネットワーク モデルに対して,RBF ネットワークモデルを提案した. 結果として,RBF ネットワークモデルの方がニューラル ネットワークモデルよりも適用したプロジェクトデータ 表7 No. Yq 推定結果 3. RBF(m = 7) 予測値 残差 2 をより良く推定できることが分かった.残差平方和にお いては,最大約 12% 向上し,従来よりも有用性のあるモ デルを構築することができたと考えられる. 1 1 0.908 0.008 2 0 0.480 0.231 今後の課題としては,ガウシアン関数のパラメータの 3 2 0.444 2.420 初期値の設定の問題がある.本研究では,実験的な経験 4 5 1.690 10.958 から初期値を設定したが,これでは他の問題には精度良 5 0 0.840 0.706 く予測が出来ない可能性がある.そのため,パラメータ 6 1 1.496 0.246 7 4 4.099 0.010 8 0 2.015 4.061 ば,より柔軟で使いやすい予測モデルが構築できると考 えられる. の初期値を問題によって自動的に設定することができれ 9 3 2.709 0.085 10 5 4.775 0.051 11 6 5.921 0.006 12 3 2.697 0.092 13 2 2.509 0.259 在フォールト数の予測−コネクショニストアプローチ−」, 14 0 0.322 0.104 法政大学大学院工学研究科,平成 24 年度修士論文 (2013). 15 0 -0.049 0.002∗ 16 0 -0.674 0.455 17 0 0.309 0.096 18 0 0.527 0.278 19 0 0.229 0.052 合計 — — 20.120 表 5,表 6,および表 7 より,各モデルにおける ∗ の数 はニューラルネットワークがニューラルネット (h = 1) が 7 個,ニューラルネット (h = 2) が 1 個の計 8 個と なった.一方 RBF ネットワークは RBF(m = 3) が 8 個,RBF(m = 5) が 2 個,RBF(m = 7) が 1 個,の計 参考文献 [1] 嶋田遼平, 「ソフトウェア開発プロジェクトデータによる潜 [2] J. Moody and C. J. Darken, “Fast learning networks of locally-tuned processing units; ” Neural Computation, Vol. 1, No. 2, pp. 281-294 (1989). [3] M. J. D. Powell, “Radial basis function for multivariable interpolation: a review”. In Algorithm for approximation. Clarendon, Oxford, 1987. [4] 渕田孝康他,「強化学習を用いた RBF ネットワークの学 習」,信学技法,NC99-113, pp. 157-163 (2000-03). [5] S. Yamada and J. Yamakawa, “An empirical study on statistical analysis based on software process monitoring data with initial project risks”, Proc. of 17th ISSAT Intern . Conf. on Reliability and Quality in Design, Vancouver, Canada, pp. 348-388 (2011).
© Copyright 2024