RBF ネットワークを用いたソフトウェアメトリクス データによる信頼性評価

法政大学大学院工学研究科紀要 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).