(57)【要約】  【課題】最尤法によるパラメータ推定を行うことが可能であり、モデルに統計的な意味を持たせることができるソフトウェア信頼性予測技法を提供すること。  【解決手段】ソフトウェア信頼性成長モデルのパラメータを推定してソフトウェアの信頼性評価を行うソフトウェアの信頼性予測方法であって、データ入力手段から入力されるソフトウェア信頼性に係る事象の発生情報を記憶手段に記憶するステップと、この記憶手段に記憶された情報と、分布関数入力手段から入力される分布関数に基づき、前記ソフトウェア信頼性成長モデルのパラメータの一つが当該分布関数に従う確率変数とした差分方程式において、その差分方程式のパラメータを最尤法および最小二乗法を使って推定するパラメータ推定ステップとを有することを特徴とする（ステップ２１〜２４）。【選択図】  図２
2006072670.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア信頼性成長モデルのパラメータを推定してソフトウェアの信頼性評価を行うソフトウェアの信頼性予測方法であって、
データ入力手段と分布関数入力手段、並びに前記ソフトウェア信頼性成長モデルを用いて記述した予測条件の記憶手段を備えたコンピュータが、
前記データ入力手段から入力されるソフトウェア信頼性に係る事象の発生情報を前記記憶手段に記憶するステップと、
前記記憶手段に記憶された情報と、前記分布関数入力手段から入力される分布関数に基づき、前記ソフトウェア信頼性成長モデルのパラメータの一つが当該分布関数に従う確率変数とした差分方程式において、その差分方程式のパラメータを最尤法および最小二乗法を使って推定するパラメータ推定ステップと
を有することを特徴とするソフトウェア信頼性予測方法。
【請求項２】
前記パラメータ推定に使用する差分方程式が、確率変数であるパラメータの各時間ステップごとのサンプルパスに対して厳密解を持つ差分方程式であって、
前記パラメータ推定方法により、ソフトウェアのテスト時のバグ発生期日，件数のデータからソフトウェア信頼性成長モデルのパラメータ，各時間における累積バグ数推定値の分布を推定することを特徴とする請求項１記載のソフトウェア信頼性予測方法。
【請求項３】
ソフトウェア信頼性成長モデルのパラメータを推定してソフトウェアの信頼性評価を行うソフトウェアの信頼性予測装置であって、
データ入力手段と分布関数入力手段、並びに前記ソフトウェア信頼性成長モデルを用いて記述した予測条件の記憶手段と、
前記記憶手段に記憶された情報と、前記分布関数入力手段から入力される分布関数に基づき、前記ソフトウェア信頼性成長モデルのパラメータの一つが当該分布関数に従う確率変数とした差分方程式において、その差分方程式のパラメータを最尤法および最小二乗法を使って推定するパラメータ推定手段と
を有することを特徴とするソフトウェア信頼性予測装置。
【請求項４】
前記パラメータ推定に使用する差分方程式が、確率変数であるパラメータの各時間ステップごとのサンプルパスに対して厳密解を持つ差分方程式であって、
前記パラメータ推定手段により、ソフトウェアのテスト時のバグ発生期日，件数のデータからソフトウェア信頼性成長モデルのパラメータ，各時間における累積バグ数推定値の分布を推定することを特徴とする請求項３記載のソフトウェア信頼性予測装置。
【請求項５】
ソフトウェアの信頼性予測方法におけるソフトウェア信頼性成長モデルのパラメータを推定する方法の処理手順をコンピュータに実行させるためのプログラムであって、
ソフトウェアのテスト時にソフトウェアにバグが発生した期日およびバグ件数を入力する手段と、
入力されたバグ発生期日，バグ件数の情報から、任意の等期間内に発生したバグ件数を計数し直す手段と、
該当期間内に発生したバグ件数に基づいて、ソフトウェアに残存する要因によって発生するバグ数を請求項１または２記載の方法により推定する手段と、
前記バグが発生する期日を請求項１または２記載の方法により推定する手段と、
各時間における累積バグ数推定値の分布を請求項１または２記載の方法により推定する手段と
を、コンピュータに実行させるためのプログラム。
【請求項６】
請求項５記載のプログラムを記録したコンピュータ読み出し可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアシステムなどのシステムの信頼度を予測する技術に関するものである。
【背景技術】
【０００２】
〔従来の技術１〕
ソフトウェアの完成後の品質を保証するために、一般的にシステムの動作確認試験を行う。動作確認試験において、ソフトウェアの最終段階での品質予測、いわゆる信頼性予測が行われる。この信頼性予測に関して、従来から各種の手法が提案されている。
【０００３】
それらのうち、統計的手法として、ゴンペルツ曲線モデルやロジスティック曲線モデルなどを用いる方法が知られていて、ソフトウェアのバグ実績データから、各曲線モデルのパラメータを推測することにより、達成予測値（レベル），達成期間，予測曲線などを得ている。
【０００４】
図３は、こうした統計的手法を用いて実績試験結果データから予測曲線を得る装置の構成概念図で、図４は、それによって得られる予測曲線の例を示した図である。図３において、３１は信頼性予測装置、３２は入力である試験実績データ、３３は予測データを示しており、この装置により、実績データに基づく予測曲線が得られることを示している。
【０００５】
また、図４において、予測曲線は初期時点で求められ、この予測曲線に基づいて予測値の飽和値等の推定が行われる。
【０００６】
まず始めに、ゴンペルツ曲線モデルとそのパラメータの推定方法について説明する。ゴンペルツ曲線は、式（1）の関係式で与えられる曲線である。
なお、本明細書中では、例えば文字ｚに対して上付き記号＾を付与する場合を、ｚ＾のように２文字に分けて記載するので、式との対応に注意されたい。
【０００７】
【数１】
2006072670.tif 000003
【０００８】
ここで、ｔは時間（期間）であり、Ｇ(ｔ)はｔまでに発見される総バグ数、ａ，ｂは実績から求められるパラメータである。式（1）から、
【０００９】
【数２】
2006072670.tif 000004
より、ｋはテスト開始前に潜在するバグ数を表わす。
【００１０】
また、式（1）は微分方程式
【００１１】
【数３】
2006072670.tif 000005
の解でもある。このままでは、パラメータａ，ｂ，ｋは求められないので、式（3）の両辺をＧ(ｔ)で割り、さらに対数をとると、次式（4）となる。
【００１２】
【数４】
2006072670.tif 000006
【００１３】
ここで、
【００１４】
【数５】
2006072670.tif 000007
【００１５】
【数６】
2006072670.tif 000008
【００１６】
【数７】
2006072670.tif 000009
とおくと、次式（8）が得られる。
【００１７】
【数８】
2006072670.tif 000010
【００１８】
現実には、微分値
【００１９】
【数９】
2006072670.tif 000011
は求められないので、δをデータ集計期間（発生したバグ数を集計する、予め決められた期間）として、
【００２０】
【数１０】
2006072670.tif 000012
【００２１】
【数１１】
2006072670.tif 000013
【００２２】
【数１２】
2006072670.tif 000014
とおくと、実際に使用する回帰式は、次式（12）となる。
【００２３】
【数１３】
2006072670.tif 000015
【００２４】
ここで、Ｙｎとして
【００２５】
【数１４】
2006072670.tif 000016
を利用することもある。
【００２６】
式（12）を回帰式として、回帰分析を行うことにより、Ａ，Ｂの推定値Ａ＾，Ｂ＾を求める。ａ，ｂ，ｋの推定値ａ＾，ｂ＾，ｋ＾は、
【００２７】
【数１５】
2006072670.tif 000017
【００２８】
【数１６】
2006072670.tif 000018
【００２９】
【数１７】
2006072670.tif 000019
から得られる。
【００３０】
早期のデータによる推定結果は精度が悪いといわれており、少なくとも曲線モデルの変曲点を超えた時点のデータでパラメータ推定を行うことが必要である。三觜武：“ソフトウェアの品質評価法”日科技連（1981）によれば、ソフトウェアの潜在バグ数の推定値をｋ＾として、ソフトウェアの累積バグ数をｙ−とすると、
【００３１】
【数１８】
2006072670.tif 000020
となれば、その時点までのデータでパラメータ推定を行うとしている。なお、ｗは経験的にｗ＝0.6〜0.8としている。また、ｋ＾は経験的または統計的に予測する。
【００３２】
次に、ロジスティック曲線モデルについて説明する。ロジスティック曲線モデルは、式（18）の関係式で与えられる曲線である。
【００３３】
【数１９】
2006072670.tif 000021
【００３４】
ゴンペルツ曲線モデルと同様にｔは時間（期間）であり、Ｌ(ｔ)はｔまでに発見される総バグ数、ｍ，αは実績から求められるパラメータである。式（18）より
【００３５】
【数２０】
2006072670.tif 000022
となるから、ゴンペルツ曲線と同様に、ｋはテスト開始前に潜在するバグ数を表わす。
【００３６】
式（18）は微分方程式
【００３７】
【数２１】
2006072670.tif 000023
の解でもある。パラメータｋ，α，ｍを求めるために式（20）を次のように書き直す。
【００３８】
【数２２】
2006072670.tif 000024
【００３９】
改めて
【００４０】
【数２３】
2006072670.tif 000025
【００４１】
【数２４】
2006072670.tif 000026
【００４２】
【数２５】
2006072670.tif 000027
【００４３】
【数２６】
2006072670.tif 000028
とおくと、
【００４４】
【数２７】
2006072670.tif 000029
が得られる。
【００４５】
現実には、微分値
【００４６】
【数２８】
2006072670.tif 000030
は求められないので、δをデータ集計期間（発生したバグ数を集計する、予め決められた期間）として、
【００４７】
【数２９】
2006072670.tif 000031
【００４８】
【数３０】
2006072670.tif 000032
【００４９】
【数３１】
2006072670.tif 000033
とおくと、実際に使用する回帰式は、次式（30）となる。
【００５０】
【数３２】
2006072670.tif 000034
ここで、Ｙｎとして
【００５１】
【数３３】
2006072670.tif 000035
を利用することもある。
【００５２】
式（30）を回帰式として、回帰分析を行うことにより、Ａ，Ｂの推定値Ａ＾，Ｂ＾を求める。ｍ，ｋ，αの推定値ｍ＾，ｋ＾，α＾は、
【００５３】
【数３４】
2006072670.tif 000036
【００５４】
【数３５】
2006072670.tif 000037
【００５５】
【数３６】
2006072670.tif 000038
から得られる。
【００５６】
ロジスティック曲線モデルについても、ゴンペルツ曲線と同様に、早期のデータによる推定結果は精度が悪いといわれており、少なくとも曲線モデルの変曲点を超えた時点のデータでパラメータ推定を行うことが必要である。どの時点までのデータでパラメータ推定を行うべきかについては、ゴンペルツ曲線と同様である。
【００５７】
〔従来の技術２〕
以上の説明では、微分方程式を差分方程式に書き直し、回帰式を得て、その回帰式から求めたいパラメータの推定値を得ている。これに対して、以下に説明する従来の技術２では、特許文献１，非特許文献１−３に従って、微分方程式を先に説明した従来の技術１とは異なった差分方程式に書き直す。
【００５８】
ゴンペルツ曲線モデル１について説明する。再度、ゴンペルツ曲線の満たす微分方程式を次式に示す。
【００５９】
【数３７】
2006072670.tif 000039
【００６０】
δを差分間隔として、式（35）を次式のように差分化する。
【００６１】
【数３８】
2006072670.tif 000040
式（36）は、次のような厳密解を持つ。
【００６２】
【数３９】
2006072670.tif 000041
式（37）は、δ→０で式（1）に一致する。
【００６３】
さらに
【００６４】
【数４０】
2006072670.tif 000042
の条件の下で、
【００６５】
【数４１】
2006072670.tif 000043
となり、式（1）が持っている性質を保存していることがわかる。
【００６６】
上述の差分化の詳細は、以下のように行う。式（35）は次のように変形できる。
【００６７】
【数４２】
2006072670.tif 000044
さらに変形できて、
【００６８】
【数４３】
2006072670.tif 000045
となる。右辺の変形は、
【００６９】
【数４４】
2006072670.tif 000046
の両辺の対数をとってみれば確認できる。
ここで、差分化すると、式（125）は次のようになる。
【００７０】
【数４５】
2006072670.tif 000047
【００７１】
右辺の差分化は、以下に説明する。
まず、自然対数ｅの定義として、次のものがある。
【００７２】
【数４６】
2006072670.tif 000048
ここで、
【００７３】
【数４７】
2006072670.tif 000049
とおくと、
【００７４】
【数４８】
2006072670.tif 000050
となる。
【００７５】
次に、非特許文献４のp.170の定理5.9で、同様の次の置き換え
【００７６】
【数４９】
2006072670.tif 000051
を行えば、定理5.9は、
【００７７】
【数５０】
2006072670.tif 000052
を連続化するとexpａになることを示している。
このことから、上述の式（37）のａの肩に乗っている部分を連続化すると、
【００７８】
【数５１】
2006072670.tif 000053
となる。
【００７９】
式（127）はさらに変形できて、
【００８０】
【数５２】
2006072670.tif 000054
さらに、
【００８１】
【数５３】
2006072670.tif 000055
となり、logを取り払うと、
【００８２】
【数５４】
2006072670.tif 000056
となり、最終的に、上述の式（36）、すなわち次の式が得られる。
【００８３】
【数５５】
2006072670.tif 000057
【００８４】
ここで、パラメータｋ，ａ，ｂを求めるために、式（36）の両辺の対数を２回とる。
【００８５】
【数５６】
2006072670.tif 000058
ここで、
【００８６】
【数５７】
2006072670.tif 000059
【００８７】
【数５８】
2006072670.tif 000060
【００８８】
【数５９】
2006072670.tif 000061
【００８９】
【数６０】
2006072670.tif 000062
【００９０】
【数６１】
2006072670.tif 000063
とおくと、回帰式
【００９１】
【数６２】
2006072670.tif 000064
が得られる。
【００９２】
式（46）を使った回帰分析によって得られるＡ，Ｂの推定値をＡ＾，Ｂ＾とすると、ａ，ｂ，ｋの推定値ａ＾，ｂ＾，ｋ＾は、次のように求められる。
【００９３】
【数６３】
2006072670.tif 000065
【００９４】
【数６４】
2006072670.tif 000066
【００９５】
【数６５】
2006072670.tif 000067
【００９６】
ゴンペルツ曲線モデル２について説明する。
ゴンペルツ曲線モデルは、次式の微分方程式の解として表現することもできる。
【００９７】
【数６６】
2006072670.tif 000068
式（50）は、次のように差分化することができる。
【００９８】
式（50）の両辺をＧ(ｔ)で割ると、
【００９９】
【数６７】
2006072670.tif 000069
となる。さらに変形できて、
【０１００】
【数６８】
2006072670.tif 000070
となる。
【０１０１】
ここで、差分化すると式（138）は次のようになる。
【０１０２】
【数６９】
2006072670.tif 000071
この式（139）は、以下のように書き換え可能である。
【０１０３】
【数７０】
2006072670.tif 000072
この式（140）の両辺からlogを取り除くと、
【０１０４】
【数７１】
2006072670.tif 000073
が得られる。
【０１０５】
式（51）の厳密解は、
【０１０６】
【数７２】
2006072670.tif 000074
となり、式（37）と同じである。
パラメータｋ，ａ，ｂを求めるために、式（51）の両辺をＧｎで割り、さらに両辺の対数をとり、δ＝1とおくと、
【０１０７】
【数７３】
2006072670.tif 000075
となる。
【０１０８】
ここで、
【０１０９】
【数７４】
2006072670.tif 000076
【０１１０】
【数７５】
2006072670.tif 000077
【０１１１】
【数７６】
2006072670.tif 000078
とおくと、回帰式
【０１１２】
【数７７】
2006072670.tif 000079
が得られる。
【０１１３】
式（57）を使った回帰分析によって得られるＡ，Ｂの推定値をＡ＾，Ｂ＾とすると、ａ，ｂ，ｋの推定値ａ＾，ｂ＾，ｋ＾は、次のように求められる。
【０１１４】
【数７８】
2006072670.tif 000080
【０１１５】
【数７９】
2006072670.tif 000081
【０１１６】
【数８０】
2006072670.tif 000082
【０１１７】
次に、ロジスティック曲線モデルについて説明する。
再度、ロジスティック曲線が満たす微分方程式を、次式に示す。
【０１１８】
【数８１】
2006072670.tif 000083
【０１１９】
厳密解は、
【０１２０】
【数８２】
2006072670.tif 000084
である。δを差分間隔として、式（61）を次式のように差分化する。
【０１２１】
【数８３】
2006072670.tif 000085
式（63）は、次のような厳密解を持つ。
【０１２２】
【数８４】
2006072670.tif 000086
【０１２３】
式（64）は、δ→０で式（62）に一致する。さらに
【０１２４】
【数８５】
2006072670.tif 000087
の条件の下で、
【０１２５】
【数８６】
2006072670.tif 000088
となり、式（62）が持っている性質を保存していることがわかる。
【０１２６】
また、δを差分間隔とすると、式（61）は次式のように差分化され、δ→０で式(62)に一致する。
【０１２７】
【数８７】
2006072670.tif 000089
厳密解は、
【０１２８】
【数８８】
2006072670.tif 000090
である。
【０１２９】
パラメータｋ，α，ｍを求めるために、ｔｎ＝ｎδ、δ＝１とおいて、式（63），式（67）を次のように書き換える。
【０１３０】
【数８９】
2006072670.tif 000091
【０１３１】
ここで、式（63）のときは、
【０１３２】
【数９０】
2006072670.tif 000092
【０１３３】
【数９１】
2006072670.tif 000093
【０１３４】
【数９２】
2006072670.tif 000094
であり、式（67）のときは、
【０１３５】
【数９３】
2006072670.tif 000095
【０１３６】
【数９４】
2006072670.tif 000096
【０１３７】
【数９５】
2006072670.tif 000097
である。
【０１３８】
式（69）を回帰式として回帰分析を行うことにより、Ａ，Ｂの推定値Ａ＾，Ｂ＾を求める。ｍ，ｋ，αの推定値ｍ＾，ｋ＾，α＾は、式（63）の場合、次のように求められる。
【０１３９】
【数９６】
2006072670.tif 000098
【０１４０】
【数９７】
2006072670.tif 000099
【０１４１】
【数９８】
2006072670.tif 000100
【０１４２】
式（67）の場合には、
【０１４３】
【数９９】
2006072670.tif 000101
【０１４４】
【数１００】
2006072670.tif 000102
【０１４５】
【数１０１】
2006072670.tif 000103
となる。
【０１４６】
【特許文献１】特開2000-122860号公報
【非特許文献１】D.Satoh: A Discrete Gompertz Equation and a Software Reliability Growth Model,IEICE Trans.,E83-D-7(2000)1508-1513
【非特許文献２】D.Satoh and S.Yamada: Parameter Estimation of Discrete Logistic Curve Models for Software Reliability Assessment,JJIAM,19-1(2002)39-53
【非特許文献３】D.Satoh and S.Yamada: Discrete equations and software reliability growth models, Proceedings of 12th International Symposium on Software Reliability Engineering (IEEE Computer Society, Hong Kong, November, 2001)176-184
【非特許文献４】黒田 成俊 共立講座２１世紀の数学（１）微分積分、共立出版
【発明の開示】
【発明が解決しようとする課題】
【０１４７】
前記、従来の技術1では、試験早期での推定精度は低く、ある程度の精度を要求するには、変曲点を超えた時点までのデータが必要となる。また、実データが各曲線モデルに完全に一致していたとしても、試験開始間もないとき、すなわち潜在バグ件数に対して、発見されたバグ件数の割合が小さいときには正確なパラメータ推定ができず、そのため信頼性分析の結果の精度はかなり低いものとなっている。
【０１４８】
どの時点までのデータを利用してパラメータ推定を行うかの判定基準に、式（17）があるが、式（17）内のｋ＾の精度そのものが低く、経験に頼った判定基準になっている。また、従来の技術1では、実データとモデルによる分析が一致しなかった場合には、パラメータ推定の精度が低いため、その原因はモデルの不適切によるものなのか、パラメータの推定制度によるものなのかがはっきりしなかった。
【０１４９】
これに対して、従来の技術２では、従来の技術１の問題を解決し、バグ発見件数が少ない段階、試験開始間もない時点から、正確なパラメータ推定を行えるようになり、信頼性分析の結果の精度が向上し、実データとモデルによる分析が一致していなかったときに前記２つの原因の切り分けを可能にした。
【０１５０】
しかし、従来の技術２では、モデルそのものが決定論に基づいているため、推定結果の統計的解釈が不可能であるという問題、パラメータ推定に最尤法を用いることができず、最小二乗推定法しか用いることができず、仮に統計的性質が明らかになったとしても、その性質をパラメータ推定に活かすことが不可能であるという問題がある。
【０１５１】
本発明は上述のような事情に鑑みてなされたものであり、その目的とするところは、従来の技術２の利点を保持した上で、従来の技術２の持つ問題を解消することにある。
より具体的には、厳密解を持つ差分方程式を採用していることに加え、パラメータを確率変数とするため、最尤法によるパラメータ推定を行うことが可能であり、モデルに統計的な意味を持たせることができるソフトウェア信頼性予測技法を提供することを目的とするものである。
【課題を解決するための手段】
【０１５２】
上記目的を達成するために、本発明は、従来の技術２が持つ利点である差分間隔０の極限で該ソフトウェア信頼性成長モデルと方程式，厳密解ともに一致する差分方程式をさらに拡張し、従来の技術２では定数であったパラメータを確率変数として扱い、そのサンプルパスに対して厳密解を持つような差分方程式を用いて、最小二乗法および確率変数であるパラメータの推定法には最尤法を用いることを最も主要な特徴とする。
すなわち、従来の技術２とは、モデルの回帰式として使用する差分方程式のパラメータが確率変数である点が異なる。
【０１５３】
より具体的には、本発明に係るソフトウェアの信頼性予測方法は、ソフトウェア信頼性成長モデルのパラメータを推定してソフトウェアの信頼性評価を行うソフトウェアの信頼性予測方法であって、データ入力手段と分布関数入力手段、並びに前記ソフトウェア信頼性成長モデルを用いて記述した予測条件の記憶手段を備えたコンピュータが、前記データ入力手段から入力されるソフトウェア信頼性に係る事象の発生情報を前記記憶手段に記憶するステップと、前記記憶手段に記憶された情報と、前記分布関数入力手段から入力される分布関数に基づき、前記ソフトウェア信頼性成長モデルのパラメータの一つが当該分布関数に従う確率変数とした差分方程式において、その差分方程式のパラメータを最尤法および最小二乗法を使って推定するパラメータ推定ステップとを有することを特徴とする。
【０１５４】
また、本発明に係るソフトウェアの信頼性予測方法は、前記パラメータ推定に使用する差分方程式が、確率変数であるパラメータの各時間ステップごとのサンプルパスに対して厳密解を持つ差分方程式であって、前記パラメータ推定方法により、ソフトウェアのテスト時のバグ発生期日，件数のデータからソフトウェア信頼性成長モデルのパラメータ，各時間における累積バグ数推定値の分布を推定することを特徴とする。
【０１５５】
また、本発明は、これをソフトウェアの信頼性予測装置として具体化することが可能である。
【０１５６】
すなわち、本発明に係るソフトウェアの信頼性予測装置は、ソフトウェア信頼性成長モデルのパラメータを推定してソフトウェアの信頼性評価を行うソフトウェアの信頼性予測装置であって、データ入力手段と分布関数入力手段、並びに前記ソフトウェア信頼性成長モデルを用いて記述した予測条件の記憶手段と、前記記憶手段に記憶された情報と、前記分布関数入力手段から入力される分布関数に基づき、前記ソフトウェア信頼性成長モデルのパラメータの一つが当該分布関数に従う確率変数とした差分方程式において、その差分方程式のパラメータを最尤法および最小二乗法を使って推定するパラメータ推定手段とを有することを特徴とする。
【０１５７】
また、本発明に係るソフトウェアの信頼性予測装置は、前記パラメータ推定に使用する差分方程式が、確率変数であるパラメータの各時間ステップごとのサンプルパスに対して厳密解を持つ差分方程式であって、前記パラメータ推定手段により、ソフトウェアのテスト時のバグ発生期日，件数のデータからソフトウェア信頼性成長モデルのパラメータ，各時間における累積バグ数推定値の分布を推定することを特徴とする。
【０１５８】
また、本発明に係るソフトウェアの信頼性予測方法は、これをコンピュータのプログラム制御により実行させることが可能であり、本発明は、そのためのプログラム並びにこのプログラムを記録したコンピュータ読み出し可能な記録媒体として具体化することが可能である。
【発明の効果】
【０１５９】
従来の技術１では、既に示したようにパラメータ推定を行うための回帰分析の際、微分方程式で表されるソフトウェア信頼性成長モデルを差分方程式に書き直して回帰分析を行う。差分方程式はあくまで微分方程式の近似でしかない。通常用いる差分方程式は前進差分であり、これは元の微分方程式を差分間隔の何乗のオーダーで近似するかに主眼がおかれている。そのため解の形状、ここでは時間を無限大にしたときにバグの数が一定に収束するという性質などは一般的に保たれない。
【０１６０】
従来の技術２では厳密解を持ち、その解は差分間隔０の極限で微分方程式の解と一致するため、上記のような性質を保存することができる。これにより、従来の技術１よりも精度の高いパラメータ推定が可能となる。しかし、従来の技術２は、従来の技術１と同様に決定論に基づく差分方程式を採用しているために、パラメータを決定する上で、最小二乗法を用いる他なく、統計的な意味を持たない。
【０１６１】
これに対して、本発明では、従来の技術２の持つ性質、すなわち、厳密解を持つ差分方程式を採用していることに加え、分布関数を導入することによりパラメータを確率変数とするため、最尤法によるパラメータ推定を行うことが可能であり、モデルに統計的な意味を持たせることができる。
【発明を実施するための最良の形態】
【０１６２】
以下に、添付の図面に示す好適実施形態に基づいて、本発明に係るソフトウェア信頼性予測方法を詳細に説明する。
なお、以下の説明においては、採用するモデルによらず共通している実施形態を、図１のブロック図と図２のフローチャートを用いて説明する。
【０１６３】
図１に示すように、本実施形態に係るソフトウェア信頼性予測装置は、オペレータが、対象とする事象（ここでは、ソフトウェアにおけるバグ）のデータを入力するためのデータ入力装置１１，入力されたデータを記憶する事象発生期日・件数保存部１２，オペレータが、分布関数を入力するための分布関数入力装置１３，入力された情報に基づいてパラメータの推定を行うパラメータ推定部１４並びに推定結果を出力するための出力装置１５から構成される。
【０１６４】
なお、上記分布関数入力装置１３は、具体的には、公知の分布関数（より具体的には、特に、パラメータが一つの場合に好適に適用し得る分布関数）を予め入力しておき、オペレータが、この中から、統計的に尤も適合すると考えるものを選択するように構成してもよい。
【０１６５】
まず始めに、図１のブロック図のデータ入力装置１１で対象とする事象（ここでは、ソフトウェアにおけるバグ）の発生期日、件数を一定の期間ごとに入力し、事象発生期日・件数保存部１２にて保存する（図２のステップ２１）。
【０１６６】
十分なデータ数が保存された後、モデルにおいて、確率変数列となっているパラメータの分布関数を、分布関数入力装置１３で入力する（図２のステップ２２）。このステップは、前述のように、最適と思われるものを選択する方法でもよい。
【０１６７】
事象発生期日・件数保存部１２にて保存されたデータおよび分布入力装置１３で入力された分布関数から、図１のパラメータ推定部１４でパラメータの推定を行う（図２のステップ２３）。
【０１６８】
推定されたパラメータを元に、出力装置１５で潜在バグ数の推定値の表示，実績値および推定値の時系列表示などを行う（図２のステップ２４）。
なお、パラメータ推定の詳細はモデルによって異なるため、以下の節で詳細に説明する。
【０１６９】
〔実施例１〕ゴンペルツ曲線モデル
式（36）、式（51）では、パラメータが定数であったが、本発明では、パラメータが各時間ステップごとに異なる値を持つ差分方程式をモデルとして採用し、各時間ステップごとに異なる値を持つそのパラメータが確率変数列としてパラメータ推定を行う。まず始めに基となる決定論に基づくモデルをゴンペルツ曲線モデルとして説明を行う。
【０１７０】
式（36）に対応する、パラメータが各時間ステップごとに異なる値を持つ差分方程式は、
【０１７１】
【数１０２】
2006072670.tif 000104
である。ここで、｛Ｂｎ：ｎ＝1,2,．．．｝は、独立同一分布に従う確率変数列とする。
厳密解は、
【０１７２】
【数１０３】
2006072670.tif 000105
と書ける。
【０１７３】
また、式（51）に対応する式は、
【０１７４】
【数１０４】
2006072670.tif 000106
である。ここで、｛Ｂｎ：ｎ＝1,2,．．．｝は、独立同一分布に従う確率変数列とする。
厳密解は、
【０１７５】
【数１０５】
2006072670.tif 000107
と書ける。
【０１７６】
まず始めに、式（82）に基づいたパラメータ推定を説明する。独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2．．．｝を
【０１７７】
【数１０６】
2006072670.tif 000108
とし、その分布関数をＦｇ(ｘ)、確率密度関数をｆｇ(ｘ)とする。
【０１７８】
パラメータｋは、以下の式から決定する。
【０１７９】
【数１０７】
2006072670.tif 000109
ここで、
【０１８０】
【数１０８】
2006072670.tif 000110
であり、Ｎは全データ数である。
【０１８１】
式（87）から、
【０１８２】
【数１０９】
2006072670.tif 000111
を得る。独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝の対数尤度関数を
【０１８３】
【数１１０】
2006072670.tif 000112
とすると、式（89）を式（90）に代入して、
【０１８４】
【数１１１】
2006072670.tif 000113
からμを得る。
【０１８５】
パラメータｋは、式（89）から決定する。パラメータａは、以下の式から得られる。
【０１８６】
【数１１２】
2006072670.tif 000114
ここで、例として、独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝の分布関数Ｆｇ(ｘ)が指数分布の場合について説明する。他の分布に従う場合には、分布関数(Ｆｇ(ｘ)がその分布関数に置き換わるだけで、その他の手順は同じである。
【０１８７】
指数分布の分布関数は、
【０１８８】
【数１１３】
2006072670.tif 000115
と書ける。このとき、対数尤度関数は、
【０１８９】
【数１１４】
2006072670.tif 000116
となる。式（89）を式（120）に代入して、式（91）とすると
【０１９０】
【数１１５】
2006072670.tif 000117
となる。
【０１９１】
パラメータｋは、式（89）と式（121）から得られる。式（112）から
【０１９２】
【数１１６】
2006072670.tif 000118
を得る。
【０１９３】
次に、式（84）に基づいたパラメータ推定を説明する。独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝を
【０１９４】
【数１１７】
2006072670.tif 000119
とし、その分布関数をＦｇ(ｘ)、確率密度関数をｆｇ(ｘ)とする。
パラメータｋは、以下の式から決定する。
【０１９５】
【数１１８】
2006072670.tif 000120
【０１９６】
ここで、
【０１９７】
【数１１９】
2006072670.tif 000121
であり、Ｎは全データ数である。式（98）から、
【０１９８】
【数１２０】
2006072670.tif 000122
を得る。
【０１９９】
独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝の対数尤度関数を
【０２００】
【数１２１】
2006072670.tif 000123
とすると、式（100）を式（101）に代入して、
【０２０１】
【数１２２】
2006072670.tif 000124
からμを得る。
【０２０２】
パラメータｋは、式（100）から決定する。パラメータａは、以下の式から得られる。
【０２０３】
【数１２３】
2006072670.tif 000125
【０２０４】
ここで、例として、独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝の分布関数Ｆｇ(ｘ)が指数分布の場合について説明する。他の分布に従う場合には、分布関数Ｆｇ(ｘ)がその分布関数に置き換わるだけで、その他の手順は同じである。
【０２０５】
指数分布の分布関数は、
【０２０６】
【数１２４】
2006072670.tif 000126
と書ける。このとき、対数尤度関数は、
【０２０７】
【数１２５】
2006072670.tif 000127
となる。式（100）を式（105）に代入して、式（102）とすると、
【０２０８】
【数１２６】
2006072670.tif 000128
となる。
【０２０９】
パラメータｋは、式（100）と式（106）から得られる。式（97）から
【０２１０】
【数１２７】
2006072670.tif 000129
を得る。
【０２１１】
〔実施例２〕ロジスティック曲線モデル
ここで使用する差分方程式（108）および（110）は、下記の特許文献２および非特許文献５に掲載されているが、これら文献では、統計的性質を用いた、すなわち最尤法を用いたパラメータの推定方法については一切触れられていない。
【０２１２】
特許文献２：特開2004-78780号公報
非特許文献５：D.Satoh:A Discrete Stochastic Logistic Equatoin and a Software Reliability Growth Model, Supplementary Proceedings of 13th International Symposium on Software Reliability Engineering, (IEEE Computer Sciety, Annapolis, November, 2002)141-142.
【０２１３】
ゴンペルツ曲線モデルと同様に、パラメータが各時間ステップごとに異なる値を持つ差分方程式をモデルとして採用し、各時間ステップごとに異なる値を持つそのパラメータが確率変数列としてパラメータ推定を行う。式（63）に対応するパラメータが、各時間ステップごとに異なる値を持つ差分方程式は、
【０２１４】
【数１２８】
2006072670.tif 000130
である。
【０２１５】
ここで、｛Ａｎ：ｎ=1,2,．．．｝は、独立同一分布に従う確率変数列とする。
厳密解は、
【０２１６】
【数１２９】
2006072670.tif 000131
と書ける。
【０２１７】
次に、式（67）に対応する式は、
【０２１８】
【数１３０】
2006072670.tif 000132
である。ここで、｛Ａｎ：ｎ=1,2,．．．｝は、独立同一分布に従う確率変数列とする。
厳密解は、
【０２１９】
【数１３１】
2006072670.tif 000133
と書ける。
【０２２０】
まず始めに、式（108）に基づいたパラメータ推定を説明する。独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝を
【０２２１】
【数１３２】
2006072670.tif 000134
とし、その分布関数をＦｌ(ｘ)、確率密度関数をｆｌ(ｘ)とする。
パラメータｋは、以下の式から決定する。
【０２２２】
【数１３３】
2006072670.tif 000135
【０２２３】
ここで、
【０２２４】
【数１３４】
2006072670.tif 000136
であり、Ｎは全データ数である。式（87）から、
【０２２５】
【数１３５】
2006072670.tif 000137
を得る。
【０２２６】
独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝の対数尤度関数を
【０２２７】
【数１３６】
2006072670.tif 000138
とすると、式（115）を式（116）に代入して、
【０２２８】
【数１３７】
2006072670.tif 000139
からμを得る。
【０２２９】
パラメータｋは、式（115）から決定する。パラメータｍは、以下の式から得られる。
【０２３０】
【数１３８】
2006072670.tif 000140
【０２３１】
ここで、ゴンペルツ曲線モデルと同様に、例として、独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝の分布関数Ｆ(ｘ)が指数分布の場合について説明する。他の分布に従う場合には、分布関数Ｆ(ｘ)がその分布関数に置き換わるだけで、その他の手順は同じである。
【０２３２】
指数分布の分布関数は、
【０２３３】
【数１３９】
2006072670.tif 000141
と書ける。このとき、対数尤度関数は、
【０２３４】
【数１４０】
2006072670.tif 000142
となる。
【０２３５】
式（89）を式（120）に代入して、式（91）とすると、
【０２３６】
【数１４１】
2006072670.tif 000143
となる。パラメータｋは、式（89）と式（121）から得られる。式（112）から
【０２３７】
【数１４２】
2006072670.tif 000144
を得る。
【０２３８】
次に、式（110）に基づいたパラメータ推定を説明する。独立同一分布に従う確率変数列｛Ｘｎ：ｎ=1,2,．．．｝を
【０２３９】
【数１４３】
2006072670.tif 000145
とすれば、その後の処理は、式（108）のときと同じ手続きでμ，ｋ，ｍを得る。
【０２４０】
以上説明したように、本発明に係る技術によれば、厳密解を持つ差分方程式を採用していることに加え、分布関数を導入することによりパラメータを確率変数とするため、最尤法によるパラメータ推定を行うことが可能であり、モデルに統計的な意味を持たせることができる。
【０２４１】
上記実施形態は、本発明の一例を示したものであり、本発明はこれに限定されるものではなく、本発明の趣旨を変更しない範囲内で適宜の変更・改良を行ってもよいことはいうまでもない。なお、上述したソフトウェア信頼性予測装置における各手段で実現される処理は、当該装置が備えるＣＰＵおよびメモリによって行われる。そのためのプログラムは、ＣＤ−ＲＯＭ，ＦＤ，ＤＶＤなどのコンピュータ読取可能な記録媒体に記録して頒布したり、インターネットなどのネットワークを介して頒布することにより、市場に普及させることができる。
【図面の簡単な説明】
【０２４２】
【図１】本発明の一実施形態に係るソフトウェア信頼性予測装置のブロック図である。
【図２】本発明の一実施形態に係るソフトウェア信頼性予測方法の処理手順を示すフローチャートである。
【図３】ソフトウェア信頼性予測装置の概念図である。
【図４】ソフトウェア信頼性予測曲線と実累積バグ数の概念図である。
【符号の説明】
【０２４３】
１１  データ入力装置
１２  事象期日・件数保存部
１３  分布関数入力装置
１４  パラメータ推定部
１５  出力装置
２１〜２４  処理ステップ
３１  信頼性予測装置
３２  試験実績データ
３３  予測データ
【図１】
2006072670.tif 000146
【図２】
2006072670.tif 000147
【図３】
2006072670.tif 000148
【図４】
2006072670.tif 000149