(57)【要約】【課題】試験開始間もない時点において、複数のソフトウェア信頼度成長モデルの中から実測データに最も適合したソフトウェア信頼度成長モデルを効率的に選択することを可能にするソフトウェア信頼度成長モデル選択方法、ソフトウェア信頼度成長モデル選択装置、ソフトウェア信頼度成長モデル選択プログラム、およびプログラム記録媒体を提供する。【解決手段】実測データを集計した結果を記憶する記憶部を備えたコンピュータが、前記記憶部から読み出した実測データを用いて各ソフトウェア信頼度成長モデルのパラメータを推定するための回帰式における説明変数と目的変数の相関を示す相関係数を選択対象のソフトウェア信頼度成長モデルごとに求め、この求めた相関係数の絶対値が最大となるソフトウェア信頼度成長モデルを前記実測データに最も適合するモデルとして選択する。【選択図】図１
2005063208.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの信頼度を予測する複数のソフトウェア信頼度成長モデルの中から前記ソフトウェア試験時に測定される実測データに最も適合するソフトウェア信頼度成長モデルを選択するソフトウェア信頼度成長モデル選択方法であって、
実測データを集計した結果を記憶する記憶部を備えたコンピュータが、
前記記憶部から読み出した実測データを用いて各ソフトウェア信頼度成長モデルのパラメータを推定するための回帰式における説明変数と目的変数の相関を示す相関係数を選択対象のソフトウェア信頼度成長モデルごとに求めるステップと、
このステップで求めた相関係数の絶対値が最大となるソフトウェア信頼度成長モデルを前記実測データに最も適合するモデルとして選択するステップと
を実行することを特徴とするソフトウェア信頼度成長モデル選択方法。
【請求項２】
前記回帰式は、連続極限で各ソフトウェア信頼度成長モデルを表す微分方程式とそれぞれ一致する差分方程式のうち、厳密解を持ち、その厳密解の連続極限が対応する前記ソフトウェア信頼度成長モデルの微分方程式の厳密解と一致する差分方程式を用いた前記実測データに基づく回帰分析を行うことによって導出されることを特徴とする請求項１記載のソフトウェア信頼度成長モデル選択方法。
【請求項３】
ソフトウェアの信頼度を予測する複数のソフトウェア信頼度成長モデルの中から前記ソフトウェア試験時に測定される実測データに最も適合するソフトウェア信頼度成長モデルを選択するソフトウェア信頼度成長モデル選択装置であって、
前記実測データを用いて各ソフトウェア信頼度成長モデルのパラメータを推定するための回帰式における説明変数と目的変数の相関を示す相関係数を選択対象のソフトウェア信頼度成長モデルごとに求める複数のモデル分析手段と、
この複数のモデル分析手段でそれぞれ求めた相関係数のうち絶対値が最大となる相関係数を有するソフトウェア信頼度成長モデルを前記実測データに最も適合するモデルとして選択する最適モデル選択手段と
を備えたことを特徴とするソフトウェア信頼度成長モデル選択装置。
【請求項４】
前記回帰式は、連続極限で各ソフトウェア信頼度成長モデルを表す微分方程式とそれぞれ一致する差分方程式のうち、厳密解を持ち、その厳密解の連続極限が対応する前記ソフトウェア信頼度成長モデルの微分方程式の厳密解と一致する差分方程式を用いた前記実測データに基づく回帰分析を行うことによって導出されることを特徴とする請求項３記載のソフトウェア信頼度成長モデル選択装置。
【請求項５】
ソフトウェアの信頼度を予測する複数のソフトウェア信頼度成長モデルの中から前記ソフトウェア試験時に測定される実測データに最も適合するソフトウェア信頼度成長モデルを選択するために、コンピュータを、
前記実測データを用いて各ソフトウェア信頼度成長モデルのパラメータを推定するための回帰式における説明変数と目的変数の相関を示す相関係数を選択対象のソフトウェア信頼度成長モデルごとに求める複数のモデル分析手段、
この複数のモデル分析手段でそれぞれ求めた相関係数のうち絶対値が最大となる相関係数を有するソフトウェア信頼度成長モデルを前記実測データに最も適合するモデルとして選択する最適モデル選択手段、
として機能させることを特徴とするソフトウェア信頼度成長モデル選択プログラム。
【請求項６】
前記回帰式は、連続極限で各ソフトウェア信頼度成長モデルを表す微分方程式とそれぞれ一致する差分方程式のうち、厳密解を持ち、その厳密解の連続極限が対応する前記ソフトウェア信頼度成長モデルの微分方程式の厳密解と一致する差分方程式を用いた前記実測データに基づく回帰分析を行うことによって導出されることを特徴とする請求項５記載のソフトウェア信頼度成長モデル選択プログラム。
【請求項７】
請求項５または６記載のソフトウェア信頼度成長モデル選択プログラムを記録したことを特徴とするプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの信頼度を予測する技術に関するものであり、より具体的には、複数のソフトウェア信頼度成長モデルからソフトウェア試験時に測定される実測データに最も適合するモデルを選択するソフトウェア信頼度成長モデル選択方法、ソフトウェア信頼度成長モデル選択装置、ソフトウェア信頼度成長モデル選択プログラム、およびプログラム記録媒体に関する。
【背景技術】
【０００２】
ソフトウェアの完成後の品質を保証するために行われるシステムの動作確認試験においては、ソフトウェアの最終段階での品質予測、いわゆる信頼度予測が行われる。この信頼度予測に関して、従来から各種の手法が提案されている。それらのうち、統計的手法として、ゴンペルツ曲線モデルやロジスティック曲線モデル等に代表されるソフトウェア信頼度成長モデルが知られており、ソフトウェア信頼度成長モデルのパラメータである故障・欠陥数としてのバグ数の試験実績データ（実測データ）から各曲線モデルのパラメータを推定することにより、達成予測値（レベル）、達成期間、予測曲線などを得ている。
【０００３】
図５は、ソフトウェアの信頼度予測を行う信頼度予測装置によって得られる予測曲線の例を示した図である。同図において、Iは試験工程計画時点を表し、IIは実際の試験工程終了時点を表す。予測曲線は試験工程計画時点で求められ、この求められた予測曲線に基づいて、潜在バグ数が推定される。
【０００４】
このようなソフトウェアの信頼度予測においては、実測データに適合するモデルを選択することが重要である。従来、実測データに適したモデルを選択する指標として、例えばバグ数が飽和値（潜在バグ数）に達するまで検出した後にモデルとの適合の度合いを評価する指標や、定性的に評価する指標が用いられてきた（例えば、非特許文献１を参照：この技術を従来技術１とする）。しかしながら、ソフトウェア試験期間のより早期に最適なモデルを選択するための指標はほとんど存在しなかった。
【０００５】
このような状況の中で、試験期間のより早期に、実測データに適合するソフトウェア信頼度成長モデルを選択する技術が開示された（例えば、特許文献１および非特許文献２を参照：この技術を従来技術２とする）。
【０００６】
図６は、この従来技術２に係るソフトウェア信頼度成長モデル選択装置の構成を表すブロック図である。同図に示すソフトウェア信頼度成長モデル選択装置２は、入力部２１においてソフトウェアの試験時にソフトウェアにバグが発生したバグ発生期日およびバグ発生件数を入力し、これらの情報を実データ集計部２３内の記憶部２３ａで記憶する。そして、この実データ集計部２３において、入力部２１から入力されたバグデータから、任意の集計期間内に発生したバグ発生件数を集計する。
【０００７】
モデル分析部２５Ａ、２５Ｂ、・・・は、比較を行うソフトウェア信頼度成長モデルの数だけ用意されており、それらの内部には、実測データに基づいて回帰分析を行ってバグ数等のパラメータを推定する回帰分析部２５１Ａ、２５１Ｂ、・・・、およびバグ数の実測データと推定値とを用いて最適モデル選択の際の指標をそれぞれ計算する指標計算部２５３Ａ、２５３Ｂ、・・・を備えている。
【０００８】
回帰分析部２５１Ａ、２５１Ｂ、・・・は、より詳しくは、連続極限で各ソフトウェア信頼度成長モデルにおけるバグ数の時間変化を表す微分方程式と一致する差分方程式のうち、この差分方程式の厳密解の差分間隔０の連続極限がソフトウェア信頼度成長モデルの微分方程式の厳密解と一致する差分方程式をそれぞれ用い、バグ件数集計部２３ｂから送られてくる実測データから、対応するソフトウェア信頼度成長モデルのパラメータを回帰分析により推定する。
【０００９】
指標計算部２５３Ａ、２５３Ｂ、・・・では、各ソフトウェア信頼度成長モデルの指標Ｃ（ｎ）を以下の定義に基づいてそれぞれ計算する。
【数１】
2005063208.tif 000003
式(1)において、ｎは現時点での時間ステップ数であり、ｘｎは累積バグ数、ｘｎ^は累積バグ数の推定値を表す。したがって、指標Ｃ（ｎ）は、累積バグ数と累積バグ数の推定値の相対推定誤差に他ならない。モデルごとに計算された指標Ｃ（ｎ）は、その後、指標比較部２７に送信されて比較され、実測データに最も適合するソフトウェア信頼度成長モデルが選択される。
【特許文献１】特開２００３−１８６７０１号公報
【非特許文献１】J. Musa, A. Iannino and K. Okumoto, "Software Reliability−Measurement, Prediction, Application", McGraw-Hill (1987).
【非特許文献２】D. Satoh and S. Yamada, "Discrete equations and software reliability growth models", Proceedings of 12th International Symposium on Software Reliability Engineering, pp. 176-184, IEEE Computer Society, Hong Kong (2001).
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述した従来技術２では、指標Ｃ（ｎ）を選択対象のソフトウェア信頼度成長モデルごとに求める必要があるため、各モデルにおいて、データからそのモデルのパラメータを推定し、さらに得られたパラメータ値を用いて、時間ステップごとに推定値を求めなければならない。しかしながら、通常この計算は最適モデルを選択するためだけになされるものであり、この意味で従来技術２では、最適なソフトウェア信頼度成長モデルを選択するまでの計算量を多くせざるを得なかった。
【００１１】
本発明はこのような事情に鑑みてなされたものであり、その目的は、試験開始間もない時点において、複数のソフトウェア信頼度成長モデルの中から実測データに最も適合するソフトウェア信頼度成長モデルを効率的に選択することを可能にするソフトウェア信頼度成長モデル選択方法、ソフトウェア信頼度成長モデル選択装置、ソフトウェア信頼度成長モデル選択プログラム、およびプログラム記録媒体を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、請求項１記載の発明は、ソフトウェアの信頼度を予測する複数のソフトウェア信頼度成長モデルの中から前記ソフトウェア試験時に測定される実測データに最も適合するソフトウェア信頼度成長モデルを選択するソフトウェア信頼度成長モデル選択方法であって、実測データを集計した結果を記憶する記憶部を備えたコンピュータが、前記記憶部から読み出した実測データを用いて各ソフトウェア信頼度成長モデルのパラメータを推定するための回帰式における説明変数と目的変数の相関を示す相関係数を選択対象のソフトウェア信頼度成長モデルごとに求めるステップと、このステップで求めた相関係数の絶対値が最大となるソフトウェア信頼度成長モデルを前記実測データに最も適合するモデルとして選択するステップとを実行することを特徴とする。
【００１３】
なお、本願発明における「コンピュータ」としては、一つの電子的な装置であるコンピュータによって構成される場合は勿論のこと、各手段または各機能を複数のコンピュータに適宜分割して成るコンピュータシステムから構成される場合も含まれる。
【００１４】
請求項２記載の発明は、請求項１記載の発明において、前記回帰式は、連続極限で各ソフトウェア信頼度成長モデルを表す微分方程式とそれぞれ一致する差分方程式のうち、厳密解を持ち、その厳密解の連続極限が対応する前記ソフトウェア信頼度成長モデルの微分方程式の厳密解と一致する差分方程式を用いた前記実測データに基づく回帰分析を行うことによって導出されることを特徴とする。
【００１５】
請求項３記載の発明は、ソフトウェアの信頼度を予測する複数のソフトウェア信頼度成長モデルの中から前記ソフトウェア試験時に測定される実測データに最も適合するソフトウェア信頼度成長モデルを選択するソフトウェア信頼度成長モデル選択装置であって、前記実測データを用いて各ソフトウェア信頼度成長モデルのパラメータを推定するための回帰式における説明変数と目的変数の相関を示す相関係数を選択対象のソフトウェア信頼度成長モデルごとに求める複数のモデル分析手段と、この複数のモデル分析手段でそれぞれ求めた相関係数のうち絶対値が最大となる相関係数を有するソフトウェア信頼度成長モデルを前記実測データに最も適合するモデルとして選択する最適モデル選択手段とを備えたことを特徴とする。
【００１６】
請求項４記載の発明は、請求項３記載の発明において、前記回帰式は、連続極限で各ソフトウェア信頼度成長モデルを表す微分方程式とそれぞれ一致する差分方程式のうち、厳密解を持ち、その厳密解の連続極限が対応する前記ソフトウェア信頼度成長モデルの微分方程式の厳密解と一致する差分方程式を用いた前記実測データに基づく回帰分析を行うことによって導出されることを特徴とする。
【００１７】
請求項５記載の発明は、ソフトウェアの信頼度を予測する複数のソフトウェア信頼度成長モデルの中から前記ソフトウェア試験時に測定される実測データに最も適合するソフトウェア信頼度成長モデルを選択するために、コンピュータを、前記実測データを用いて各ソフトウェア信頼度成長モデルのパラメータを推定するための回帰式における説明変数と目的変数の相関を示す相関係数を選択対象のソフトウェア信頼度成長モデルごとに求める複数のモデル分析手段、この複数のモデル分析手段でそれぞれ求めた相関係数のうち絶対値が最大となる相関係数を有するソフトウェア信頼度成長モデルを前記実測データに最も適合するモデルとして選択する最適モデル選択手段、として機能させることを特徴とする。
【００１８】
請求項６記載の発明は、請求項５記載の発明において、前記回帰式は、連続極限で各ソフトウェア信頼度成長モデルを表す微分方程式とそれぞれ一致する差分方程式のうち、厳密解を持ち、その厳密解の連続極限が対応する前記ソフトウェア信頼度成長モデルの微分方程式の厳密解と一致する差分方程式を用いた前記実測データに基づく回帰分析を行うことによって導出されることを特徴とする。
【００１９】
請求項７記載の発明は、請求項５または６記載のソフトウェア信頼度成長モデル選択プログラムを記録したプログラム記録媒体である。
【００２０】
ここでいう記録媒体とは、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク、ＤＶＤ（Digital Versatile Disk）、光磁気ディスク、ＰＣカード等のコンピュータ読み取り可能な記録媒体を意味している。
【発明の効果】
【００２１】
本発明によれば、ソフトウェアの故障・欠陥検出件数が少ない段階、すなわち試験開始間もない時点において、選択対象となる複数のソフトウェア信頼度成長モデルをそれぞれ記述する微分方程式と連続極限で一致する差分方程式のうち、この差分方程式の厳密解の連続極限が対応する微分方程式の厳密解と一致する差分方程式を用いて各モデルのパラメータを求めるための回帰式の説明変数と目的変数の相関係数を求め、その相関係数の絶対値を比較して最も大きな値をとるソフトウェア信頼度成長モデルを選択することにより、各時間ステップの推定値を計算することなく、実測データに最も適合するソフトウェア信頼度成長モデルをより少ない計算量で効率的に選択することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面を参照して本発明の実施の形態を説明する。なお、以下の説明においては、ソフトウェア試験中に発見される故障・欠陥のことを単にバグと称することにするが、本発明の内容がこれによって限定されるわけでない。
【００２３】
図１は、本発明の一実施形態に係るソフトウェア信頼度成長モデル選択装置の構成を示すブロック図である。同図に示すソフトウェア信頼度成長モデル選択装置１は、ソフトウェアの試験時、ソフトウェアにバグが発生したバグ発生期日およびバグ発生件数を入力するとともに各種情報を入力する入力部１１、入力された実績累積バグデータ（実測データ）の集計を行う集計手段としての実データ集計部１３、モデルごとにバグデータの分析を行うモデル分析手段であるモデル分析部１５Ａ、１５Ｂ、・・・、各モデル分析部で算出される相関係数の比較を行う相関係数比較部１７、および相関係数比較部１７からの結果に基づいて実測データに最も適合するソフトウェア信頼度成長モデルの表示を行う表示手段である表示部１９を備えている。
【００２４】
実データ集計部１３は、入力された実測データの集計結果を記憶する記憶部１３ａ、およびバグデータの集計を行うとともに集計結果を後述する各モデル分析部へ送信するバグ件数集計部１３ｂを備えている。
【００２５】
モデル分析手段としてのモデル分析部１５Ａ、１５Ｂ、・・・は、比較を行うソフトウェア信頼度成長モデルの数だけ用意されており、それらの内部には、実測データに基づいて回帰式における説明変数と目的変数を算出する説明変数・目的変数算出部１５１Ａ、１５１Ｂ、・・・、この説明変数・目的変数算出部１５１Ａ、１５１Ｂ、・・・で算出した説明変数と目的変数の相関を示す相関係数を算出する相関係数算出部１５３Ａ、１５３Ｂ、・・・がそれぞれ具備されている。
【００２６】
説明変数・目的変数算出部１５１Ａ、１５１Ｂ、・・・は、連続極限で各ソフトウェア信頼度成長モデルにおけるバグ数の時間変化を表す微分方程式と一致する差分方程式のうち、この差分方程式の厳密解の連続極限が対応する微分方程式の厳密解と一致する差分方程式をそれぞれ用い、バグ件数集計部１３ｂから送られてくる実測データから、対応するソフトウェア信頼度成長モデルのパラメータを求めるための回帰式の説明変数と目的変数の値を求める。
【００２７】
なお、以上の構成を有するソフトウェア信頼度成長モデル選択装置１は、演算機能および制御機能を備えた中央処理装置（ＣＰＵ：Central Processing Unit）、プログラムやデータを格納する機能を備えた主記憶装置（メインメモリ）、およびハードディスクドライブ、フレキシブルディスクドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ、光磁気ディスクドライブ、ＰＣカードドライブ等の補助記憶装置を備えた電子的な装置であるコンピュータによって構成されている。なお、ここでいう「コンピュータ」としては、一つのコンピュータによって構成される場合は勿論のこと、各手段または各機能を複数のコンピュータに適宜分割して成るコンピュータシステムから構成される場合も含まれるものとする。
【００２８】
次に、以上の構成を有するソフトウェア信頼度成長モデル選択装置１が実行するソフトウェア信頼度成長モデル選択方法の処理内容について、図２のフローチャート図を用いて詳細に説明する。
【００２９】
まず、入力部１１の一部を構成するキーボードまたはマウス等を用いて、選択対象とするソフトウェア信頼度成長モデル（図２では単に「モデル」と記載）の総数Ｍ（ステップＳ１）、相関係数を計算するために使用する最少のデータ数Ｋ（ステップＳ３）、および最適なモデルを判定するために必要な連続判定回数Ｊを順次入力する（ステップＳ５）。このうちステップＳ５で入力する連続判定回数とは、後述する一連の処理において、あるソフトウェア信頼度成長モデルを最適モデルとして選択するために必要な最小の判定回数のことである。すなわち、あるモデルをＪ回連続して最適と判定したとき、そのモデルを最適モデルとして選択する。このＪの値は、選択対象とするソフトウェア信頼度成長モデルにもよるため、経験的に値を決める場合もある。
【００３０】
本実施形態において選択対象とし得るソフトウェア信頼度成長モデルとしては、ゴンペルツ曲線モデル、ロジスティック曲線モデル等を想定することができる（これら以外に適用が想定されるソフトウェア信頼度成長モデルについては、例えば山田茂著「ソフトウェア信頼度モデル−基礎と応用」（日科技連）を参照のこと）。
【００３１】
その後、データ数ｋを１とおいて（ｋ＝１）初期化を行い（ステップＳ７）、実データ集計部１３で一定期間（集計期間）ごとに、ｋ周期目（最初はｋ＝１すなわち１周期目）までに検出された累積バグ数を記録する（ステップＳ９）。
【００３２】
実データ集計部１３では、現時点のｋとステップＳ３で設定したＫとの比較を行い（ステップＳ１１）、ｋ＜Ｋ（ステップＳ１１でＮＯ）ならばｋを１増やし（ステップＳ１３）た後、ステップＳ９の処理を繰り返す。
【００３３】
ｋが増加してｋ≧Ｋとなったとき（ステップＳ１１でＹＥＳ）、各モデル分析部１５Ａ，１５Ｂ，１５Ｃ，．．．において回帰式の説明変数と目的変数の値を求める。そして、求めた回帰式の説明変数と目的変数との相関係数の絶対値の計算を行う（ステップＳ１５）。回帰式における説明変数、目的変数をそれぞれｘei,ｘoiとするとき、両変数の相関の度合いを示す相関係数ｒeoは次式で定義される：
【数２】
2005063208.tif 000004
【００３４】
一般に、回帰分析の結果、データが回帰モデルに適合していれば、説明変数と目的変数の間には線形関係が成り立つ。ソフトウェア信頼度成長モデルにおいて、実測データがそのモデルを記述する微分方程式の厳密解を満足する場合には、厳密解を持つ差分方程式のうち、連続極限で対応するソフトウェア信頼性成長モデルと方程式、厳密解ともに一致する差分方程式から導かれた回帰式の説明変数と目的変数の間に線形関係が成立し、相関係数ｒeoが１または−１となる。したがって、実測データから計算された相関係数ｒeoの絶対値が１に最も近いソフトウェア信頼度成長モデルを、実測データに最も適合するモデルであると結論づけることができる。
【００３５】
なお、比較し得る二つのモデル間には、一般に両者の説明変数同士と目的変数同士が、何らかの関数を用いて関係付けできる必要がある。例えば、モデルＡとモデルＢの間に、同じ時間ステップに対して、
モデルＢの説明変数＝ｆBe（モデルＡの説明変数）      ・・・(I)
モデルＢの目的変数＝ｆBo（モデルＡの目的変数）      ・・・(II)
という関係式があればよい。ここでｆBe およびｆBoは適当な関数である。同様に、他のモデルＣに対しても、適当な関数ｆCeおよびｆCoを用いて
モデルＣの説明変数＝ｆCe（モデルＡの説明変数）      ・・・(III)
モデルＣの目的変数＝ｆCo（モデルＡの目的変数）      ・・・(IV)
という関係式が成立していれば、相関係数比較部１７においてこれら全てのモデルＡ、Ｂ、Ｃの相関係数の比較を行うことができる。
【００３６】
続くステップＳ１７では、相関係数比較部１７において、相関係数の絶対値が最大であるソフトウェア信頼度成長モデル（ｉ（ｋ）とする）を求める（ステップＳ１７）。
【００３７】
その後、データ数ｋと最初のデータ数Ｋを再び比較（ステップＳ１９）し、ｋ＝Ｋのとき（ステップＳ１９でＮＯ）は判定回数ｊを１（ステップＳ２５）としてステップＳ２７に進む。これに対してｋ＞Ｋ（ステップＳ１９でＹＥＳ）のときは、一つ前の（ｋ−１）周期目のステップＳ１７において相関係数が最大であるとして求めたソフトウェア信頼度成長モデルｉ（ｋ−１）と、今周期のステップＳ１７で求めたソフトウェア信頼度成長モデルｉ（ｋ）とが一致しているかどうかを判定（ステップＳ２１）し、一致している場合（ステップＳ２１でＹＥＳ）には、連続して同一モデルが最適と判定されたことになるのでｊの値を１増やし（ステップＳ２３）、ステップＳ２７へ進む。
【００３８】
ステップＳ２７では、ｊの値が連続判定回数Ｊに達しているかどうかを判定し、Ｊに達している場合（ステップＳ２７でＹＥＳ）には表示部１９で最適なソフトウェア信頼度成長モデルの表示を行い（ステップＳ２９）、本実施形態に係るソフトウェア信頼度成長モデル選択方法の処理を終了する。
【００３９】
これに対して、ｊの値がまだＪに達していない場合（ステップＳ２７でＮＯ）には、ｋの値を１増やした（ステップＳ１３）後、ステップＳ９に戻って処理を繰り返す（（ｋ＋１）周期目の処理）。
【００４０】
ところで、以上説明した本実施形態に係るソフトウェア信頼度成長モデル選択方法をコンピュータに実行させるためのソフトウェア信頼度成長モデル選択プログラムは、前述した主記憶装置またはハードディスクに格納される一方、コンピュータ読み取り可能な記録媒体に記録して広く流通させることもできる。ここでいう「記録媒体」とは、ＣＤ−ＲＯＭ、フレキシブルディスク、ＤＶＤ、光磁気ディスク、ＰＣカード等を指している。
【００４１】
以上説明した本発明の一実施形態によれば、選択対象となるソフトウェア信頼度成長モデルを記述する微分方程式と連続極限で一致する差分方程式のうち、この差分方程式の厳密解の連続極限が対応する微分方程式の厳密解と一致する差分方程式を用いて導出される回帰式において、説明変数と目的変数の間の相関係数をモデルごとに求め、その相関係数の絶対値が最大となるソフトウェア信頼度成長モデルを、データに最も適合するモデルとして選択することにより、試験開始間もない時期に、従来法よりも少ない計算量で、データに最適なソフトウェア信頼度成長モデルを選択することが可能となる。
【００４２】
なお、本実施形態においては、選択対象となるソフトウェア信頼度成長モデルを分析する全てのモデル分析部において相対係数の算出を行うことを前提として説明したが、例えばそれ以外にも、信頼度予測を行うソフトウェアの種類や規模などに応じて実際に使用するモデル分析部を適宜選択する機能を具備させておくことも可能である。
【００４３】
また、相関係数の算出自体は全てのソフトウェア信頼度成長モデルに共通する演算なので（式(2)を参照）、相関係数算出部を各モデル分析部内に設ける代わりに、各モデル分析部と相関係数比較部の間に一つだけ設けておき、各モデル分析部から送られてくる説明変数と目的変数を用いて相関係数を求め、その求めた結果を相関係数比較部に順次送る構成にしてもよい。
【００４４】
このように、本発明は、上記一実施形態と同様の効果を奏するさまざまな実施の形態等を含みうるものである。
【実施例】
【００４５】
以下、上述した本発明の一実施形態のさらに具体的な実施例を説明する。本実施例においては、選択対象となるソフトウェア信頼度成長モデルとして、ゴンペルツ曲線モデルとロジスティック曲線モデルを用いる（上記ステップＳ１でＭ＝２に対応）。まず、これら二つの曲線モデルについて説明する。
【００４６】
＜ゴンペルツ曲線モデル＞
ゴンペルツ曲線モデルは、微分方程式
【数３】
2005063208.tif 000005
によって定義される。ここでｔは時間（期間）であり、Ｇ(ｔ) はｔまでに発見されるバグ数、ｋ，ａ，ｂはバグ数の試験実績データから求められるパラメータである。また、本実施例において、logは自然対数を表す。式(3)は、厳密解
【数４】
2005063208.tif 000006
を有する（ここで、ｋ＞０，０＜ａ＜１，０＜ｂ＜１）。式（４）より、
Ｇ(ｔ) → ｋ  （ｔ→∞）            …（5）
となるので、ｋは試験開始前に潜在する潜在バグ数を表す。
【００４７】
式(3)は、δを差分間隔として次式のように差分化することができる：
【数５】
2005063208.tif 000007
【００４８】
この差分方程式は厳密解を有しており、その厳密解は、
【数６】
2005063208.tif 000008
である。式(7)は、差分間隔δが０の連続極限（δ→０）でゴンペルツ曲線の関係式(4)、すなわち微分方程式(2)の厳密解に一致する。このゴンペルツ曲線の差分方程式(6)は、どのような時間間隔δに対しても
Ｇn →ｋ  （ｎ →∞）
を満たしており、式(4)が有する性質（式(5)参照）を保存している。
【００４９】
回帰分析を行うことにより、式(6)から回帰式
【数７】
2005063208.tif 000009
が導出される。ここで、
【数８】
2005063208.tif 000010
である。以上のように回帰分析されるゴンペルツ曲線モデルでは、回帰式(8)（および式(9)）より、説明変数がlog Ｇn+1 、目的変数がlog (Ｇn+1/Ｇn)であることがわかる。
【００５０】
ちなみに、式(8)を回帰式として回帰分析を行うことによって得られるＡ，Ｂの推定値をそれぞれＡ^，Ｂ^とすると、ゴンペルツ曲線モデルのパラメータｋ，ａ, ｂの推定値ｋ^，ａ^，ｂ^は、それぞれ次のように求められる：
【数９】
2005063208.tif 000011
【００５１】
ここで求められる各パラメータの推定値は、時間間隔δの値に関わらず常に同じ値をとる。ただし、ｂ^ については、δlog ｂ^ が時間間隔δによらず同じ推定値をとる。
【００５２】
通常用いる差分方程式は、あくまで対応する微分方程式の単なる近似でしかなく、特に前進差分が用いられる場合には、元の微分方程式を差分間隔の何乗のオーダで近似するかに主眼が置かれる。したがってそのような場合には、差分化がなされた時点で、解の形状や、時間無限大の極限におけるバグ数の一定値への収束性などの性質は一般に保存されない。
【００５３】
これに対して本実施例では、元の微分方程式が有する性質を保つ差分方程式を用いるので、通常用いられる手法より試験期間早期で精度の高いパラメータ推定が可能となる。この点については、次に説明するロジスティック曲線モデルの場合にも同様のことがいえる。
【００５４】
＜ロジスティック曲線モデル＞
ロジスティック曲線モデルは、次式(13)で定義される：
【数１０】
2005063208.tif 000012
ここで、ゴンペルツ曲線モデルと同様に、ｔは時間（期間）であり、Ｌ(ｔ）はｔまでに発見されるバグ数、ｍ，αはバグ数の試験実績データから求められるパラメータである。
【００５５】
この式(13)は、厳密解
【数１１】
2005063208.tif 000013
を持つ。式(14)より、
Ｌ(ｔ) → ｋ  （ｔ→∞）            …（15）
となるので、ロジスティック曲線モデルにおいても、ｋは試験開始前に潜在する潜在バグ数を表す。
【００５６】
式(13)は、δを差分間隔として次式のように差分化することができる：
【数１２】
2005063208.tif 000014
この厳密解は、差分間隔０の連続極限（δ→０）でロジスティック曲線モデルの微分方程式(13)の厳密解(14)に一致する。さらに、
｜１−δα｜＜１
という条件の下で
Ｌn →ｋ  （ｎ →∞）
となり、式(14)が有する性質（式(15)参照）を保存していることがわかる。
【００５７】
式(16)から回帰分析によって導出される回帰式は、
【数１３】
2005063208.tif 000015
である。ここで、
【数１４】
2005063208.tif 000016
である。したがって、ロジスティック曲線モデルの回帰式(18)では、説明変数がＬn+1 、目的変数がＬn+1/Ｌnであることがわかる。
【００５８】
式(18)を回帰式として回帰分析を行うことによって得られるＡ，Ｂの推定値をそれぞれＡ^，Ｂ^とすると、ロジスティック曲線モデルのパラメータｍ，ｋ，αの推定値ｍ^，ｋ^，α^は、それぞれ次のように求められる：
【数１５】
2005063208.tif 000017
【００５９】
＜相関係数の比較＞
以上説明した二つのソフトウェア信頼度成長モデルは、説明変数同士（log Ｇn+1とＬn+1）および目的変数同士（log (Ｇn+1/Ｇn)とＬn+1/Ｌn）の時間ステップがともに一致している。ここで、ロジスティック曲線モデルをモデルＡ、ゴンペルツ曲線モデルをモデルＢとすると、両者の説明変数と目的変数は、上述した式(I)および(II)における二つの関数ｆBeおよびｆBoがともにlog関数の場合に他ならない。したがって、二つのモデル分析部１５Ａおよび１５Ｂの相関係数算出部１５３Ａおよび１５３Ｂからそれぞれ出力される相関係数の値を相関係数比較部１７で比較することができる。
【００６０】
ところで、既に提案されているゴンペルツ差分方程式（D. Satoh, "A discrete Gompertz equation and a software reliability growth model", IEICE Trans., E83-D-7（2000），1508-1513．を参照）
【数１６】
2005063208.tif 000018
の場合には、差分間隔δ→０の極限で式(4)に一致する厳密解
【数１７】
2005063208.tif 000019
を有しており、差分方程式(23)から導出される回帰式は、
【数１８】
2005063208.tif 000020
となる。ここで、左辺のＹnは式(9)と同じである。したがって、この回帰式では、説明変数がlog Ｇn 、目的変数がlog (Ｇn+1/Ｇn)となり、ロジスティック曲線モデルと目的変数の時間ステップを揃えると、説明変数の時間ステップが一致しなくなる。すなわち、式(I)および(II)の関係式が両方成立しなくなり、このような二つのモデルを比較して実測データに最も適合するモデルを選択することができなくなる。
【００６１】
この例からも明らかなように、本発明においては、ソフトウェア信頼度成長モデルを記述する微分方程式をどのように差分化して回帰式を導出するかが極めて重要である。
【００６２】
以下、本実施例で説明した二つのソフトウェア信頼度成長モデルを既知のデータに対して適用した場合につき、本発明のソフトウェア信頼度成長モデルの選択結果が正しいかどうかを検証する。
【００６３】
一つ目のデータ（データ１と呼ぶ）は、試験工程終了時点までのデータから、ゴンペルツ曲線モデルよりもロジスティック曲線モデルによく適合することがわかっているものである。この場合、相関係数が−１に近いモデルの方がより適合することがわかっている（文献：D. Satoh and S. Yamada, "Parameter Estimation of Discrete Logistic Curve Models for Software Reliability Assessment", Japan Journal of Industrial and Applied Mathematics, Vol.19-1 (2002) 39-53. を参照)。
【００６４】
このデータ１において、実用的な観点から早期だけのデータしか得られてない状況で、適合するモデルの候補となる上記二つのモデルに対し、時間ｎステップ目にまでのデータを用いて相関係数をそれぞれ計算した。その計算結果を図３に示す。
【００６５】
図３に示す場合、横軸のデータ数は時系列的に増加していくものであり、時間ステップに対応する。同じデータ数で比較すると、データ数が小さい段階では多少の揺らぎがあるものの、総じて曲線３Ｌ（■でプロット）で示されるロジスティック曲線モデルの相関係数の値の方が、曲線３Ｇ（●でプロット）で示されるゴンペルツ曲線モデルの相関係数の値よりも小さく、−１に近い値をとる。
【００６６】
したがって、上記一実施形態において、相関係数を算出する最小のデータ数Ｋおよび連続判定回数Ｊを十分大きい値として設定することにより（図２のステップＳ３およびＳ５）、ゴンペルツ曲線モデルを最適と判断する可能性はほとんどなくなり、選択結果としてロジスティック曲線モデルを選択する可能性の方が十分高くなり、所望の結果を得ることができる。
【００６７】
二つ目のデータ（データ２）は、試験工程終了時点までのデータからゴンペルツ曲線モデルによく適合することがわかっている実データである。この場合も、相関係数が−１に近いモデルの方がより適合することがわかっている（文献：三觜武著「ソフトウェアの品質評価法」（日科技連、1981）を参照）。
【００６８】
このデータ２においても、試験工程早期のデータしか得られてない状況を仮定し、その状態で、適合するモデルの候補となる上記二つのモデルに対し、ｎステップ目までのデータを用いて相関係数をそれぞれ計算した。図４に、計算結果として、データ２のデータ数と相関係数の関係を示す。
【００６９】
図４に示す場合、データ数２０を超える辺りから、曲線４Ｇ（●でプロット）で示されるゴンペルツ曲線モデルの相関係数の方が、曲線４Ｌ（■でプロット）で示されるロジスティック曲線モデルの相関係数よりも小さく、−１に近い値をとる。したがって、ここでも相関係数を計算する最小のデータ数Ｋを十分大きく取り、さらに連続判定回数Ｊも十分大きく設定しておけば、曲線４Ｌで示されるロジスティック曲線モデルを最適モデルとして選択する可能性はほとんどなくなり、既知の結果と整合してゴンペルツ曲線モデルを最適モデルとして選択することができる。
【００７０】
以上説明した図３および図４では、本発明の効果を確かめるためにロジスティック曲線モデルとゴンペルツ曲線モデルの２つのソフトウェア信頼度成長モデルから実測データに適した方のモデルを選択する場合について説明したが、本発明が適用されるソフトウェア信頼度成長モデルはそれらに限られるわけでない。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施形態に係るソフトウェア信頼度成長モデル選択装置の構成を示すブロック図である。
【図２】本発明の一実施形態に係るソフトウェア信頼度成長モデル選択方法の処理手順を示すフローチャート図である。
【図３】本発明の一実施形態に係るソフトウェア信頼度成長モデル選択方法を第１の既知のデータに適用して相関係数を計算した結果を示す説明図である。
【図４】本実施の一実施形態に係るソフトウェア信頼度成長モデル選択方法を第２の既知のデータに適用して相関係数を計算した結果を示す説明図である。
【図５】従来技術におけるソフトウェア信頼度予測曲線および実績累積バグデータを表す説明図である。
【図６】従来技術２におけるソフトウェア信頼度成長モデル選択装置の構成を示すブロック図である。
【符号の説明】
【００７２】
１、２  ソフトウェア信頼度成長モデル選択装置
１１、２１  入力部
１３、２３  実データ集計部
１３ａ、２３ａ  記憶部
１３ｂ、２３ｂ  バグ件数集計部
１５Ａ、１５Ｂ、・・・、２５Ａ、２５Ｂ、・・・  モデル分析部
１７  相関係数比較部
１９、２９  表示部
２７  指標比較部
１５１Ａ、１５１Ｂ、・・・  説明変数・目的変数算出部
２５１Ａ、２５１Ｂ、・・・  回帰分析部
１５３Ａ、１５３Ｂ、・・・  相関係数算出部
２５３Ａ、２５３Ｂ、・・・  指標計算部
【図１】
2005063208.tif 000021
【図２】
2005063208.tif 000022
【図３】
2005063208.tif 000023
【図４】
2005063208.tif 000024
【図５】
2005063208.tif 000025
【図６】
2005063208.tif 000026