(57)【要約】【課題】ベイジアンネットワークモデルの条件付確率表の変化にともなう推定値の変化を確認するための動作確認方式を提供する。【解決手段】欠陥数推定モデルに入力される複数のシミュレーションデータ１２６を生成するシミュレーションデータ作成部１０２と、シミュレーションデータ１２６を欠陥数推定モデルに入力して条件付確率表を変更し、変更された条件付確率表を備える欠陥数推定モデルにモデル入力値１２３を入力して推定値１２７を算出し、算出した推定値１２７と欠陥数推定モデルに入力したシミュレーションデータ１２６とを対応付けた情報を蓄積して推定値情報１３０として出力する推定値算出部１０３と、推定値情報１３０に基づいて、グラフ１２８を作成するグラフ作成部１０４とを備える。【選択図】図４
2014164336.tif 000002
【特許請求の範囲】
【請求項１】
入力値が入力される入力対象である入力対象ノードと推定の対象である推定対象ノードとを含む複数のノードを対象とするベイジアンネットワークモデルであって、前記複数のノードの依存関係を条件付確率により表した条件付確率表を備えるベイジアンネットワークモデルを分析するモデル分析装置において、
前記入力対象ノードに入力する前記入力値を記憶装置に記憶する入力値記憶部と、
前記ベイジアンネットワークモデルに入力される複数のシミュレーションデータを生成するシミュレーションデータ生成部と、
前記シミュレーションデータ生成部により生成された前記複数のシミュレーションデータの各シミュレーションデータを前記ベイジアンネットワークモデルに入力して前記条件付確率表を変更する確率表変更部と、
前記確率表変更部により変更された前記条件付確率表を備える前記ベイジアンネットワークモデルの前記入力対象ノードに、前記入力値記憶部により記憶された前記入力値を入力して前記推定対象ノードの推定値を算出し、算出した前記推定値と、前記ベイジアンネットワークモデルに入力した前記シミュレーションデータとを対応付けた推定値情報を蓄積して分析対象情報として記憶装置に記憶する分析対象情報生成部と
を備えることを特徴とするモデル分析装置。
【請求項２】
前記シミュレーションデータ生成部は、
１番目からｎ（ｎは２以上の整数）番目までのｎ個のシミュレーションデータを生成し、
前記確率表変更部は、
前記シミュレーションデータ生成部により生成された前記ｎ個のシミュレーションデータを順次読み込み、ｉ（ｉは１以上ｎ以下の整数）番目のシミュレーションデータを読み込む度に、前記ｉ番目のシミュレーションデータを前記ベイジアンネットワークモデルに入力して前記条件付確率表を変更し、
前記分析対象情報生成部は、
算出した前記推定値と前記ｉ番目のシミュレーションデータとを対応付けたｉ番目の前記推定値情報を出力することにより、ｎ個の前記推定値情報を出力し、出力したｎ個の前記推定値情報を前記分析対象情報として記憶装置に記憶する
ことを特徴とする請求項１に記載のモデル分析装置。
【請求項３】
前記シミュレーションデータ生成部は、
前記複数のシミュレーションデータを生成するために用いる基準分布を設定する基準分布設定部と、
前記基準分布設定部により設定された前記基準分布を、予め定められた分割数に分割し、前記分割数の分割後分布を生成する分布分割部と、
前記分割数の分割後分布の各々から、予め定められたデータ数のシミュレーションデータを生成し、前記分割数の分割後分布毎の前記データ数のシミュレーションデータを生成するシミュレーションデータ作成部と
を備えることを特徴とする請求項１または２に記載のモデル分析装置。
【請求項４】
前記ベイジアンネットワークモデルに入力する前記シミュレーションデータは、前記分割数の分割後分布毎に生成された前記データ数のシミュレーションデータからなり、
前記分析対象情報生成部は、
前記分割数の分割後分布毎に生成された前記データ数のシミュレーションデータ毎に、算出した前記推定値と前記ベイジアンネットワークモデルに入力した前記シミュレーションデータとを対応付けた推定値情報を蓄積して分割後分布毎分析対象情報として生成することを特徴とする請求項３に記載のモデル分析装置。
【請求項５】
前記基準分布は、前記複数のノードのノード毎の基準となる分布であるノード別基準分布を有し、
前記分布分割部は、
前記ノード別基準分布を前記分割数に分割し、前記分割数のノード別分割後分布を生成して前記分割数の分割後分布とし、
前記シミュレーションデータ作成部は、
前記分割数の分割後分布毎に、前記分割数のノード別分割後分布の組合せを定めた分割後分布割当情報を予め記憶する分割後分布割当情報記憶部と、
前記分割後分布割当情報記憶部により記憶された前記分割後分布割当情報に基づいて、前記分割数の分割後分布毎に、前記分割数のノード別分割後分布を組み合わせた分布セットを生成し、生成した分布セットから前記データ数のシミュレーションデータを生成することを特徴とする請求項４に記載のモデル分析装置。
【請求項６】
前記モデル分析装置は、さらに、
前記分析対象情報生成部により記憶された前記分析対象情報に基づいて、前記複数のシミュレーションデータを前記ベイジアンネットワークモデルに入力することによる前記条件付確率表の変化にともなう前記推定対象ノードの値の変化を分析するモデル分析部を備えることを特徴とする請求項１〜５のいずれかに記載のモデル分析装置。
【請求項７】
前記モデル分析部は、
前記分析対象情報生成部により記憶された前記分析対象情報に基づいて、前記条件付確率表の変化にともなう前記推定対象ノードの値の変化を可視化することを特徴とする請求項６に記載のモデル分析装置。
【請求項８】
入力値が入力される入力対象である入力対象ノードと推定の対象である推定対象ノードとを含む複数のノードを対象とするベイジアンネットワークモデルであって、前記複数のノードの依存関係を条件付確率により表した条件付確率表を備えるベイジアンネットワークモデルを分析するモデル分析装置のモデル分析方法において、
シミュレーションデータ生成部が、前記ベイジアンネットワークモデルに入力される複数のシミュレーションデータを生成し、
確率表変更部が、前記シミュレーションデータ生成部により生成された前記複数のシミュレーションデータの各シミュレーションデータを前記ベイジアンネットワークモデルに入力して前記条件付確率表を変更し、
分析対象情報生成部が、前記確率表変更部により変更された前記条件付確率表を備える前記ベイジアンネットワークモデルの前記入力対象ノードに、予め定められた入力値を入力して前記推定対象ノードの推定値を算出し、算出した前記推定値と、前記ベイジアンネットワークモデルに入力した前記シミュレーションデータとを対応付けた推定値情報を蓄積して分析対象情報を生成することを特徴とするモデル分析方法。
【請求項９】
入力値が入力される入力対象である入力対象ノードと推定の対象である推定対象ノードとを含む複数のノードを対象とするベイジアンネットワークモデルであって、前記複数のノードの依存関係を条件付確率により表した条件付確率表を備えるベイジアンネットワークモデルを分析するモデル分析装置のモデル分析プログラムにおいて、
シミュレーションデータ生成部が、前記ベイジアンネットワークモデルに入力される複数のシミュレーションデータを生成するシミュレーションデータ生成処理と、
確率表変更部が、前記シミュレーションデータ生成処理により生成された前記複数のシミュレーションデータの各シミュレーションデータを前記ベイジアンネットワークモデルに入力して前記条件付確率表を変更する確率表変更処理と、
分析対象情報生成部が、前記確率表変更処理により変更された前記条件付確率表を備える前記ベイジアンネットワークモデルの前記入力対象ノードに、予め定められた入力値を入力して前記推定対象ノードの推定値を算出し、算出した前記推定値と前記ベイジアンネットワークモデルに入力した前記シミュレーションデータとを対応付けた推定値情報を蓄積して分析対象情報を生成する分析対象情報生成処理と
をコンピュータである前記モデル分析装置に実行させることを特徴とするモデル分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデル分析装置及びモデル分析方法及びモデル分析プログラムに関するものである。本発明は、特に、ベイジアンネットワークモデルの分析に関するものである。
【背景技術】
【０００２】
ベイジアンネットワークモデルは、ネットワーク図と条件付確率表の２つから構成される。ネットワーク図は、対象とする現象をノードとし、ノード間を矢印でつないで因果関係を非循環性の有向グラフで表した図である。ネットワーク図内の各ノードに対し、それぞれ条件付確率表（Ｃｏｎｄｉｔｉｏｎａｌ・ｐｒｏｂａｂｉｌｉｔｙ・Ｔａｂｌｅ）が存在する。この図と表とを合わせて、ベイジアンネットワークモデルという。
【０００３】
図１は、構築されたベイジアンネットワークモデルの一例である。Ｘ１からＸ５は事象（ノード）であり、矢印はそれらの因果関係を示している。各ノードにはそれぞれに条件付確率表が存在する。Ｐ（Ｘ４／Ｘ２）は、その数値例で、各ノードは０，１の値を取る二項分布に従い、Ｘ４が０の状態の時、Ｘ２が０の確率が０．８（１の確率は０．２）であると解釈する。以降、各ノードの条件付確率表をまとめて「条件付確率表」と呼ぶ。
【０００４】
ベイジアンネットワークモデルを用いた作業は２ステップからなり、はじめに「Ｓｔｅｐ１（学習ステップ）」により最適化された条件付確率表を生成し、次に「Ｓｔｅｐ２（推定値算出ステップ）」により、推定値を算出する。
（１）Ｓｔｅｐ１（学習ステップ）：
実績データ（過去の実測データ）を利用し、最適化された条件付確率表の生成を行う。（２）Ｓｔｅｐ２（推定値算出ステップ）：
ネットワーク図のノードの一部に値を入力することにより、それ以外のノードに対する推定値を算出する。ただし、推定値の算出結果は、入力値と条件付確率表の値によって変化する（ネットワーク図は変化しない）。
【０００５】
上記２つのステップを、例を用いて具体的に説明する。
（例）卵モデル
前日の天気と気温から、翌日鶏が産む卵の数を推定するモデル（卵モデル）を考える。卵モデルには、「前日の天気、前日の気温、翌日鶏が産んだ卵の数」の３つのノードが存在するとする。
（１）Ｓｔｅｐ１（学習ステップ）：
例えば１０日間、前日の天気、前日の気温、翌日の卵の数を測定する。この１０日間分の測定データを実績データとしてモデルに与え、１１日目に鶏が産む卵の数を推定するために最適な条件付確率表を生成する。
（２）Ｓｔｅｐ２（推定値算出ステップ）：
１１日目に、「前日の天気、前日の気温」の２ノードの値を入力する事で、「翌日鶏が産んだ卵の数」の推定値を得る。つまり、前日に測定した天気と気温の値を卵モデルに入力すると、翌日鶏が産む卵の数の推定値を事前に得る事ができる。
ただし、Ｓｔｅｐ１で用いた１０日間分の実測データの違いにより、１１日目に入力する天気と気温の値が同じであっても、鶏が産む卵の数の推定値は変化する。
【０００６】
ここで、ベイジアンネットワークモデルの動作確認手段とは、モデルへの数値入力により算出される推定値が変動する様子についての確認手段のことをいう。
従来のベイジアンネットワークモデルの動作確認手段では、入力値を増減させた場合に算出される推定値同士を比較する事により、推定値の変化の確認を可能にしていた（例えば、特許文献１）。
特許文献１では、推定値算出ステップにて入力値を変化させ、算出される推定値の変化を確認する手段を提供している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−８１４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、ベイジアンネットワークモデルは、Ｓｔｅｐ１により生成された条件付確率表が異なると、Ｓｔｅｐ２で入力値が一定であったとしても、推定値が変化する。
しかし、従来のベイジアンネットワークモデルの動作確認手段（以下、分析手段という場合もあるものとする)は、Ｓｔｅｐ２での入力値を変化させた場合に生じる推定値の変化のみを確認・分析可能とする手段であるため、Ｓｔｅｐ１で生成された条件付確率表の変化は考慮できないという課題があった。
【０００９】
この発明は、例えば、上記のような課題を解決するためになされたもので、ベイジアンネットワークモデルに対し、条件付確率表の変化による推定値の変化を確認するための動作確認方式・モデル分析方式の提供を目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るモデル分析装置は、入力値が入力される入力対象である入力対象ノードと推定の対象である推定対象ノードとを含む複数のノードを対象とするベイジアンネットワークモデルであって、前記複数のノードの依存関係を条件付確率により表した条件付確率表を備えるベイジアンネットワークモデルを分析するモデル分析装置において、
前記入力対象ノードに入力する前記入力値を記憶装置に記憶する入力値記憶部と、
前記ベイジアンネットワークモデルに入力される複数のシミュレーションデータを生成するシミュレーションデータ生成部と、
前記シミュレーションデータ生成部により生成された前記複数のシミュレーションデータの各シミュレーションデータを前記ベイジアンネットワークモデルに入力して前記条件付確率表を変更する確率表変更部と、
前記確率表変更部により変更された前記条件付確率表を備える前記ベイジアンネットワークモデルの前記入力対象ノードに、前記入力値記憶部により記憶された前記入力値を入力して前記推定対象ノードの推定値を算出し、算出した前記推定値と、前記ベイジアンネットワークモデルに入力した前記シミュレーションデータとを対応付けた推定値情報を蓄積して分析対象情報として記憶装置に記憶する分析対象情報生成部とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明に係るモデル分析装置によれば、確率表変更部が複数のシミュレーションデータの各シミュレーションデータをベイジアンネットワークモデルに入力して条件付確率表を変更し、変更された条件付確率表を備えるベイジアンネットワークモデルの入力対象ノードに予め設定された入力値を入力して推定値を算出し、算出した推定値とベイジアンネットワークモデルに入力したシミュレーションデータとを対応付けた推定値情報を蓄積して分析対象情報を生成するので、条件付確率表の変更にともなう推定値の変化を分析することができる。
【図面の簡単な説明】
【００１２】
【図１】構築されたベイジアンネットワークモデルの一例である。
【図２】実施の形態１に係る動作確認装置１００の動作確認対象となる欠陥数推定モデルのネットワーク図である。
【図３】実施の形態１に係る動作確認装置１００の動作確認対象となる欠陥数推定モデルのＳＷ開発時の具体的な利用手順を示した図である。
【図４】実施の形態１に係る動作確認装置１００の機能ブロック図である。
【図５】実施の形態１に係る動作確認装置１００のハードウェア構成の一例を示す図である。
【図６】実施の形態１に係るデータ１２０及び分割後分布割当表１２９の各構成を示す図であり、（ａ）シミュレーションデータ用基本分布１２１、（ｂ）シミュレーションデータ用分布分割情報１２２、（ｃ）モデル入力値１２３、（ｄ）グラフ用設定情報１２４の一例、（ｋ）分割後分布割当表１２９の一例である。
【図７】実施の形態１に係るシミュレーションデータ用分割後分布１２５（ｅ）の構成を示す図である。
【図８】実施の形態１に係るシミュレーションデータ１２６の一例（ｆ）を示す図である。
【図９】実施の形態１に係る推定値算出部１０３により算出された推定値１２７の一例を示す図である。
【図１０】実施の形態１に係る動作確認装置３００の動作確認方法（分布情報生成処理、シミュレーションデータ作成処理）を示すフローチャートである。
【図１１】実施の形態１に係る動作確認装置３００の動作確認方法（推定値算出処理、グラフ作成処理）を示すフローチャートである。
【図１２】（ａ）シミュレーションデータ用基本分布１２１を定義について説明するための図である。
【図１３】実施の形態１に係るシミュレーションデータ用基本分布１２１の分割の仕組みを表したイメージ図である。
【図１４】実施の形態１に係るシミュレーションデータ用基本分布１２１の分割の仕組みを表したイメージ図である。
【図１５】実施の形態１に係るシミュレーションデータ用基本分布１２１の分割の仕組みを表したイメージ図である。
【図１６】実施の形態１に係るシミュレーションデータセット及びシミュレーションデータ１２６の作成の仕組みを表したイメージ図である。
【図１７】実施の形態１に係るシミュレーションデータセット及びシミュレーションデータ１２６の作成の仕組みを表したイメージ図である。
【図１８】実施の形態１に係る（ｈ）第１グラフ１２８ｈの一例を示す図である。
【図１９】実施の形態１に係る（ｉ）第２グラフ１２８ｉのＤＩＲの例を示す図である。
【図２０】実施の形態１に係る（ｉ）第２グラフ１２８ｉのＤＲＥの例を示す図である。
【図２１】実施の形態１に係る基準となるシミュレーションデータセットに対する他のシミュレーションデータセットの各推定値の変化率を示す表である。
【図２２】実施の形態１に係る（ｊ）第３グラフ１２８ｊのＤＩＲの例を示す図である。
【図２３】実施の形態１に係る（ｊ）第３グラフ１２８ｊのＤＲＥの例を示す図である。
【発明を実施するための形態】
【００１３】
実施の形態１．
まず、本実施の形態に係る動作確認装置１００（モデル分析装置）の動作確認対象（分析対象）となるベイジアンネットワークモデルを用いた欠陥数推定モデルについて説明する。
【００１４】
欠陥数推定モデルの概要は以下の（ａ）〜（ｃ）のとおりである。
（ａ）目的：
ＳＷ（ソフトウェア）開発途中で、ＳＷ開発終了時の最終的な欠陥数に関わる数値（欠陥混入密度、欠陥除去率）の推定値を得る。
【００１５】
（ｂ）利用方法：
ＳＷ開発途中に測定できる値（レビュー工数密度、レビュー指摘密度）をモデルにＩＮＰＵＴ（入力）する事で、本来知ることが不可能な値（欠陥混入密度、欠陥除去率）をＯＵＴＰＵＴ（推定）する。
【００１６】
（ｃ）詳細：
図２は、本実施の形態に係る動作確認装置１００の動作確認対象となる欠陥数推定モデルのネットワーク図である。本モデルは６つのノード（要素）からなる。
開発中には、本モデルの推定対象ノードであるＤＩＲ（欠陥混入密度）とＤＲＥ（欠陥除去率）は、知る事ができないため、測定が可能なＥＤ（レビュー工数密度）とＤＲ（レビュー指摘密度）を使って推定する。ＥＤ（レビュー工数密度）とＤＲ（レビュー指摘密度）とは、入力値が入力される入力対象ノードの一例である。
【００１７】
開発が終了したら、ＥＤ、ＤＲおよびＳＱ（仕様書の質）、ＲＱ（レビュープロセスの質）をＦＩＸし、フルセットのデータを作成する。このデータを実績データとして、モデルの条件付確率表を再生成すると、次の開発に向けて欠陥数推定モデルが最適化された状態になる。
【００１８】
さらに、（ｃ）詳細の説明を続ける。
図３は、本実施の形態に係る動作確認装置１００の動作確認対象となる欠陥数推定モデルのＳＷ開発時の具体的な利用手順を示した図である。
ＳＷ開発開始時に、実績データを与えて最適化された条件付確率表を生成する（Ｓｔｅｐ１）。次に、開発中に観測されたＩＮＰＵＴ値をモデルに入力し、推定値を得る（Ｓｔｅｐ２）。開発が完了したら、推定値として算出した値を含めた６ノードすべての値が確定するので、これらを実績データとして新たに加えてＳｔｅｐ１を再度実行する事で、次の開発に向け最適化された条件付確率表を生成し、Ｓｔｅｐ２にて推定値（推定値および標準偏差）を算出する。以降は、開発に応じて上記処理を繰り返す。
【００１９】
上記「欠陥数推定モデル」は、ソフトウエア開発中に測定可能な「レビュー工数密度」と「レビュー指摘密度」を入力する事で、測定不可能な「欠陥混入密度」と「欠陥除去率」の推定値算出を目的としたモデルである。
【００２０】
上記「欠陥数推定モデル」における各ノードの詳細を以下に示す。以降、各ノード名は下記カッコ内の英略称を用いる。
（ａ）仕様書の質：Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ・Ｑｕａｌｉｔｙ（ＳＱ）；
・分布名：二項分布；
・モデル上の役割：組織の仕様書作成レベル；
・性質：ソフトウエア開発時の過去実績から評価する。レビュー前の仕様書の良し悪しを表す。数値は任意（ユーザ定義）。
【００２１】
（ｂ）レビュープロセスの質：Ｒｅｖｉｅｗ・Ｑｕａｌｉｔｙ（ＲＱ）；
・分布名：二項分布；
・モデル上の役割：組織のレビューレベル；
・性質：ソフトウエア開発時の過去実績から評価する。組織のレビュープロセスの良し悪しを表す。数値は任意（ユーザ定義）。
【００２２】
（ｃ）レビュー工数密度：Ｅｆｆｏｒｔ・Ｄｅｎｓｉｔｙ（ＥＤ）；
・分布名：正規分布；
・モデル上の役割：測定値（入力値）；
・性質：ソフトウエア開発時に測定可能で、レビュー時間（ｈｏｕｒ、ｄａｙ、ｍｏｎｔｈ）を開発規模で割ったもの。工数は任意の単位で良い。開発規模は、ドキュメント作成量（ページ数）を指す。０以上の値を取る。
【００２３】
（ｄ）レビュー指摘密度：Ｄｅｆｅｃｔ・Ｒｅｖｉｅｗ（ＤＲ）；
・分布名：正規分布；
・モデル上の役割：測定値（入力値）；
・性質：ソフトウエア開発時に測定可能で、レビュー指摘件数を開発規模で割ったもの。開発規模は、ドキュメント作成量（ページ数）を指す。０以上の値を取る。
【００２４】
（ｅ）欠陥混入密度：Ｄｅｆｅｃｔ・Ｉｎｊｅｃｔｉｏｎ・Ｒａｔｅ（ＤＩＲ）；
・分布名：正規分布；
・モデル上の役割：推定値；
・性質：ソフトウエア開発中に測定不可能な値。欠陥混入数を開発規模で割ったもので、欠陥混入数は、ソフトウエア開発終了後の最終的な欠陥発見数で、測定不可能。開発規模は、ドキュメント作成量（ページ数）を指す。０以上の値を取る。
【００２５】
（ｆ）欠陥除去率：Ｄｅｆｅｃｔ・Ｒｅｍｏｖａｌ・Ｅｆｆｉｃｉｅｎｃｙ（ＤＲＥ）；・分布名：正規分布；
・モデル上の役割：推定値；
・性質：ソフトウエア開発中に測定不可能な値。欠陥除去数を欠陥混入数で割ったもので、欠陥除去数は、欠陥修正件数を表す。欠陥混入数は、ソフトウエア開発終了後の最終的な欠陥発見数で、測定不可能。０以上の値を取る。
【００２６】
なお、ソフトウエア開発の現場において上記欠陥数推定モデルを利用する場合、ベイジアンネットワーク構築支援システム（例えば、ＢｅｙｏＮｅｔ、ＨｕｇｉｎＥｘｐｅｒｔなど）のツール上にモデル図を作成し、ここに実績データを与え、条件付確率表を自動生成することができる。
以上で、欠陥数推定モデルについての説明を終わる。
【００２７】
次に、本実施の形態に係る動作確認装置１００の動作確認方式の概要について説明する。
【００２８】
図４は、本実施の形態に係る動作確認装置１００の機能ブロック図である。
図４に示すように、動作確認装置１００は、分布情報生成部１０１、シミュレーションデータ作成部１０２、推定値算出部１０３、グラフ作成部１０４を備える。
【００２９】
動作確認装置１００の動作確認方式では、例えば、ベイジアンネットワーク構築支援システム等のツール上に上述した欠陥数推定モデルを構築して動作確認対象のモデルとする。そして、この欠陥数推定モデルの条件付確率表を直接操作することなく、自動的に任意に変化させ、変化した条件付確率表毎に、それぞれ一定値を入力した時に得られる推定値を比較する。
【００３０】
図４に示すように、動作確認装置１００の動作確認方式においては、ユーザにより予め作成されたデータ１２０を用いる。
データ１２０には、シミュレーションデータ用基本分布１２１、シミュレーションデータ用分布分割情報１２２、モデル入力値１２３、グラフ用設定情報１２４がある。
【００３１】
図４において、分布情報生成部１０１は、シミュレーションデータ用基本分布１２１、シミュレーションデータ用分布分割情報１２２を読み込んで、シミュレーションデータ１２６を作成するために必要なデータであるシミュレーションデータ用分割後分布１２５を演算する機能を有する。
【００３２】
シミュレーションデータ作成部１０２は、シミュレーションデータ用分割後分布１２５及び分割後分布割当表１２９を利用し、統計処理用ソフトウエア（Ｒなど）と連携して、複数のシミュレーションデータ１２６を生成する機能を有する。
【００３３】
分布情報生成部１０１及びシミュレーションデータ作成部１０２は、ベイジアンネットワークモデルに入力される複数のシミュレーションデータを生成するシミュレーションデータ生成部の一例である。
【００３４】
動作確認装置１００は、複数のシミュレーションデータを入力することにより条件付確率表を変更し、その変更にともなう推定値の変化を分析するものである。以下、シミュレーションデータをＳＤと略す場合もある。
【００３５】
推定値算出部１０３は、シミュレーションデータ作成部１０２で作成したシミュレーションデータ１２６とモデル入力値１２３とを利用して、ベイジアンネットワーク専用ソフトウエアと連携し、当該ソフトウエア上にあらかじめ組み上げておいた欠陥数推定モデルを動作させて推定値１２７を算出する機能を有する。
【００３６】
推定値算出部１０３は、複数のシミュレーションデータ１２６の各シミュレーションデータをベイジアンネットワークモデルに入力して条件付確率表を変更する確率表変更部の一例である。
また、変更された条件付確率表を備えるベイジアンネットワークモデルの入力対象ノードに、入力値を入力して推定値を算出し、算出した推定値１２７とベイジアンネットワークモデルに入力したシミュレーションデータ１２６とを対応付けた推定値情報１３０を分析対象情報として生成する分析対象情報生成部の一例である。
【００３７】
グラフ作成部１０４は、推定値１２７から、統計処理用ソフトウエアやエクセルなどを利用してグラフ１２８を作成する機能を有する。
グラフ１２８には、例えば、第１グラフ１２８ｈ、第２グラフ１２８ｉ、第３グラフ１２８ｊなど複数種類がある。
【００３８】
グラフ作成部１０４は、推定値情報１３０（分析対象情報）に基づいて、複数のシミュレーションデータをベイジアンネットワークモデルに入力することによる条件付確率表の変更にともなう推定値１０７の変化を分析するモデル分析部の一例である。
また、グラフ作成部１０４は、推定値情報１３０（分析対象情報）に基づいて、条件付確率表の変更にともなう推定対象ノードの値（推定値１０７）の変化を第１グラフ１２８ｈ、第２グラフ１２８ｉ、第３グラフ１２８ｊ等のようにグラフ化（可視化）する。
【００３９】
図５は、本実施の形態に係る動作確認装置１００のハードウェア構成の一例を示す図である。
【００４０】
図５において、動作確認装置１００は、コンピュータであり、ＬＣＤ９０１（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ９０６といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。ＬＣＤ９０１の代わりに、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置が用いられてもよい。マウス９０３の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【００４１】
動作確認装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵ９１１は、処理装置１９１の一例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、ＬＣＤ９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ９０６、ＨＤＤ９２０（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）と接続され、これらのハードウェアデバイスを制御する。ＨＤＤ９２０の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ、あるいは、その他の記録媒体が用いられてもよい。
【００４２】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ＨＤＤ９２０は、不揮発性メモリの一例である。これらは、記憶装置１９２の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５は、入力装置１９３の一例である。また、通信ボード９１５、ＬＣＤ９０１、プリンタ９０６は、出力装置１９４の一例である。
【００４３】
通信ボード９１５は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信ボード９１５は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワークの一例である。
【００４４】
ＨＤＤ９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、ＣＰＵ９１１により読み出され実行される。ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ＲＡＭ９１４やＨＤＤ９２０等の記録媒体に記憶される。ＲＡＭ９１４やＨＤＤ９２０等の記録媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００４５】
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、ＲＡＭ９１４等のメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、ＨＤＤ９２０の磁気ディスク、光ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）、あるいは、その他の記録媒体に記録される。また、データや信号は、バス９１２、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００４６】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００４７】
次に、動作確認装置１００の動作確認方式における各データの構成について説明する。各データの形式は問わないが、以下の例では、各列にカラム名が決まった表形式で、１行で１セットのデータとして扱うものとする。
【００４８】
図６は、本実施の形態に係るデータ１２０及び分割後分布割当表１２９の各構成を示す図であり、（ａ）シミュレーションデータ用基本分布１２１、（ｂ）シミュレーションデータ用分布分割情報１２２、（ｃ）モデル入力値１２３、（ｄ）グラフ用設定情報１２４の一例、（ｋ）分割後分布割当表１２９の一例である。図７は、本実施の形態に係る（ｅ）シミュレーションデータ用分割後分布１２５の構成を示す図である。
【００４９】
シミュレーションデータ用基本分布１２１には、文献や調査結果などから得られる「欠陥数推定モデル」に対する一般的な現実的数値を記載する。各ノードに対応した一般的分布値となる。
図６（ａ）に示すシミュレーションデータ用基本分布１２１は、分布情報の一例である。
【００５０】
ＥＤ、ＤＲ、ＤＩＲ、ＤＲＥの各項目は、一般的なＳＷ開発でしばしば利用される代表的なメトリクスである。ここでは、世の中の一般的なＳＷ開発にて測定（または推定）される可能性のある値を想定して分布とした。
また、ＳＱとＲＱは、任意のユーザ定義となるため特定の想定値は存在しない。そこで、ここでは、成功をｇｏｏｄ＝１、失敗をｂａｄ＝０とし、確率分布をＢ（１０、０．７）と仮定した。
【００５１】
図１２は、（ａ）シミュレーションデータ用基本分布１２１を定義について説明するための図である。
図６（ａ）及び図１２を用いて、（ａ）シミュレーションデータ用基本分布１２１について説明する。
【００５２】
図６（ａ）及び図１２に示すシミュレーションデータ用基本分布１２１における各カラムの内訳は下記の通りである。
「ＮｏｄｅＮａｍｅ」は、ベイジアンネットワークモデルのノード名であり、全ノード名が列挙される。
正規分布（Ｎｏｒｍａｌ）のノードは、平均値μで標準偏差σの時、確率変数がＮ（μ，σ２）に従うものとする。また、二項分布（Ｂｉｎｏｍｉｎａｌ）のノードは、試行回数をｎ、成功確率Ｐとした時、Ｂ（ｎ，Ｐ）に従うものとする。
具体例では、欠陥数推定モデルの全ノードであるＳＱ，ＲＱ，ＥＤ，ＤＲ，ＤＩＲ，ＤＲＥに対し数値が設定される。
【００５３】
「Ｔｙｐｅ」は、分布名であり、当該システムで共通利用するために定義する。図６（ａ）に示すように、ｂｉｎｏｍｉｎａｌを二項分布、ｎｏｒｍａｌを正規分布とする。
「Ｄｉｓｔｒｉｂｕｔｉｏｎ」には、分布名に対応した分布値を記入する。
具体例では、一般的な統計記法に従った記載とした。
【００５４】
「Ｖａｌｕｅ１」には、分布名に対応した値を入れる。ノードのＴｙｐｅがｂｉｎｏｍｉｎａｌの場合、各事象の名称を記入する。各事象は、Ｄｉｓｔｒｉｂｕｔｉｏｎに従う。
具体例では、ｇｏｏｄが起こる確率は１０回の試行のうち７回、ｂａｄが起こる確率は１０回の試行のうち３回となる。
Ｔｙｐｅがｎｏｒｍａｌの場合、当該欄は利用しないので記入不要となる。
【００５５】
「Ｖａｌｕｅ２」には、分布名に対応した値を入れる。Ｔｙｐｅがｂｉｎｏｍｉｎａｌの場合、各事象の値を記入する。記入は、Ｖａｌｕｅ１と同じ順で記載する。
具体例では、ｇｏｏｄが１、ｂａｄが０の値を取る。Ｔｙｐｅがｎｏｒｍａｌの場合、当該欄は利用しないので記入不要となる。
【００５６】
「Ｖａｌｕｅ３」には、分布名に対応した値を入れる。Ｔｙｐｅがｂｉｎｏｍｉｎａｌの場合、Ｄｉｓｔｒｉｂｕｔｉｏｎの平均値に対する標準偏差である。この値は、現実的に考えうる平均値の振れ幅に該当する。
具体例では、当該値（標準偏差σ）が０．１のため、ｇｏｏｄが出る確率が少ない組織では、Ｄｉｓｔｒｉｂｕｔｉｏｎの値がＢ（１０，０．５）とする。これにより、平均値がＳＤの２倍下がったことになる。
また、ｇｏｏｄが出る確率が高い組織では、Ｂ（１０，０．９）とする。これにより、平均値がＳＤの２倍上がったことになる。
Ｔｙｐｅがｎｏｒｍａｌの場合、当該欄は利用しないので記入不要となる。
【００５７】
次に、図６（ｂ）に示すシミュレーションデータ用分布分割情報１２２について説明する。
シミュレーションデータ用分布分割情報１２２には、シミュレーションデータセット数に関する情報を設定する。
シミュレーションデータセット数とは、複数のシミュレーションデータを１つのシミュレーションデータセットとし、このシミュレーションデータセットをいくつ生成するかを定める数である。つまり、シミュレーションデータセット数が３である場合には、複数のシミュレーションデータからなるシミュレーションデータセットが３つ生成される。
各欄の内訳は下記の通りである。
【００５８】
「Ｎａｍｅ」項目には、「Ｄａｔａｓｅｔ」、「ＮｏｒｍａｌＤｉｓｔｒｉｂｕｔｉｏｎＤａｔａＩｎｔｅｒｖａｌ」、「ＭａｘＤａｔａ」、「Ｇｒａｐｈ１Ｉｎｔｅｒｖａｌ」の４つの項目が設定される。
【００５９】
「Ｄａｔａｓｅｔ」には、シミュレーションデータセットの生成数（分割数の一例）を設定する。指定可能な数値はシステム内で定義しておく。これは、システム内で予め生成される分割後分布割当表１２９の内容と対応させるためである。
具体例では、「３」であり、下記３種類のシミュレーションデータセット（データ）が生成されることになる。
（ａ）ＳＤ１；
（ｂ）ＳＤ２；
（ｃ）ＳＤ３。
【００６０】
「ＮｏｒｍａｌＤｉｓｔｒｉｂｕｔｉｏｎＤａｔａＩｎｔｅｒｖａｌ」には、正規分布のデータ範囲の定義を定義する。
具体例では、「９５」が設定されている。これは、正規分布のデータ範囲は、下側９５％〜上側９５％の信頼区間をデータ範囲とすることを意味する。
【００６１】
「ＭａｘＤａｔａ」には、１つのシミュレーションデータセット内のデータ数を定義する。
具体例では、「４０」が設定されており、ＳＤ１〜ＳＤ３の各シミュレーションデータセットは４０個のシミュレーションデータからなることを意味する。
【００６２】
「Ｇｒａｐｈ１Ｉｎｔｅｒｖａｌ」には、シミュレーションデータセット内のシミュレーションデータを何個ごとにデータセット化するかの指定が設定される。これは、後述するグラフ１２８の作成のために、生成したシミュレーションデータセットを分割したデータセットを作成するための情報である。
具体例では、「１０」が設定されており、これは、１からはじめてデータ１０個ごとに１つ、データセット化することを意味する。
【００６３】
例えば、下記のようにデータが生成される。
（ａ）ＳＤ１−ｄａｔａ１、ＳＤ１−ｄａｔａ１０、ＳＤ１−ｄａｔａ２０、ＳＤ１−ｄａｔａ３０、ＳＤ１−ｄａｔａ４０；
（ｂ）ＳＤ２−ｄａｔａ１、ＳＤ２−ｄａｔａ１０、ＳＤ２−ｄａｔａ２０、ＳＤ２−ｄａｔａ３０、ＳＤ２−ｄａｔａ４０；
（ｃ）ＳＤ３−ｄａｔａ１、ＳＤ３−ｄａｔａ１０、ＳＤ３−ｄａｔａ２０、ＳＤ３−ｄａｔａ３０、ＳＤ３−ｄａｔａ４０。
【００６４】
図６（ｂ）に示すように、「Ｖａｌｕｅ」項目には、「Ｎａｍｅ」欄に記載した内容に対応した値を記入する。
【００６５】
次に、図６（ｃ）に示すモデル入力値１２３について説明する。モデル入力値１２３には、「欠陥数推定モデル」のノードへの入力値を設定する。
図６（ｃ）に示すように、各欄の内訳は下記の通りである。
「ＩｎｐｕｔＮｏｄｅＮａｍｅ」欄には、入力値を入力するノード名を設定する。
具体例では、「ＥＤ」、「ＤＲ」が記入されている。
「ＩｎｐｕｔＶａｌｕｅ」欄には、ノード名に対応する値（入力値）を設定する。
具体例では、「ＥＤ」に対し「０．６３」、「ＤＲ」に対し「０．８３」が記入されている。
動作確認方式では、モデル入力値１２３（入力値）を入力値記憶部により予め記憶装置に記憶することにより、入力値を一定とする。
【００６６】
次に、図６（ｄ）に示すグラフ用設定情報１２４について説明する。グラフ用設定情報１２４には、推定値をグラフ化するために利用する値を設定する。
図６（ｄ）に示すように、各欄の内訳は下記の通りである。
「ＳｉｍｕｒａｓｉｏｎＤａｔａＮａｍｅ」には、シミュレーションデータセット名が記入される。具体例では、ＳＤ１〜ＳＤ３が記入される。
「ＢａｓｅＬｉｎｅ」には、比較基準とするシミュレーションデータセットの指定が設定される。具体例では、ＳＤ１〜ＳＤ３のいずれか１つに「１」を設定し、それ以外は０とする。ここでは、ＳＤ２に１が設定されているので、ＳＤ２が比較基準に設定されている。
「ＸＡｘｉｓＯｒｄｅｒ」には、グラフのＸ軸（シミュレーションデータセット名）のメモリ表記順序の指定が設定される。
具体例では、グラフのＸ軸には、ＳＤ１、ＳＤ２、ＳＤ３の順に表記することを意味している。
【００６７】
以上、図６（ａ）〜（ｄ）まで説明したが、これらの情報は、ユーザが任意に内容を設定して用意し、予め記述して記憶装置に記憶するものとする。図６（ｋ）の説明については、後述する。
【００６８】
次に、図７に示すシミュレーションデータ用分割後分布１２５について説明する。シミュレーションデータ用分割後分布１２５は、複数のシミュレーションデータを生成するためのデータ分布である。数値は、シミュレーションデータ用基本分布１２１の情報を加工して算出した値が入る。
【００６９】
図７に示すように、シミュレーションデータ用分割後分布１２５の内訳は、「ＮｏｄｅＮａｍｅ」、「Ｔｙｐｅ」、「Ｄｉｓｔｒｉｂｕｔｉｏｎ」、「Ｖａｌｕｅ１」、「Ｖａｌｕｅ２」である。これらの内容は、シミュレーションデータ用基本分布１２１の「ＮｏｄｅＮａｍｅ」、「Ｔｙｐｅ」、「Ｄｉｓｔｒｉｂｕｔｉｏｎ」、「Ｖａｌｕｅ１」、「Ｖａｌｕｅ２」と同じ内容である。ただし、「Ｖａｌｕｅ３」の欄は存在しない。
【００７０】
シミュレーションデータ用基本分布１２１の内容を分割して（ここでは３分割して）、得たデータ分布がシミュレーションデータ用分割後分布１２５である。
具体的には、分布情報生成部１０１は、シミュレーションデータ用基本分布１２１のＳＱからＳＱ１〜ＳＱ３を生成し、ＲＱからＲＱ１〜ＲＱ３を生成し、ＥＤからＥＤ１〜ＥＤ３を生成する。ＤＲ，ＤＩＲ，ＤＲＥについても同様である。
シミュレーションデータ用分割後分布１２５は、システム内（例えば、動作確認装置３００内）で自動生成される。
【００７１】
次に、図６に戻り、図６（ｋ）に示す分割後分布割当表１２９について説明する。図６（ｋ）に示す分割後分布割当表１２９は、システム上（例えば、動作確認装置３００）で予め用意され、分割後分布割当表記憶部により記憶装置に記憶されている情報である。
【００７２】
分割後分布割当表１２９は、図７（ｅ）に示す各ノード別の情報であるシミュレーションデータ用分割後分布１２５の組み合わせについて、どのようなデータセットを作成するかを定義した表である。
分割後分布割当表１２９は、システム内で定義されたシミュレーションデータ用分布分割情報１２２の「Ｄａｔａｓｅｔ」で指定可能な数に対応するように、あらかじめシステム内で定義しておく。この設定値は、モデルの目的やノードの性質から、目的に応じて任意に作成可である。
【００７３】
具体例では、シミュレーションデータ用分布分割情報１２２の「Ｄａｔａｓｅｔ」で指定された数「３」に対応するデータの３分割に対する表を示したものである。例えば、ＳＤ１は、６つのノードＳＱ，ＲＱ，ＥＤ，ＤＲ，ＤＩＲ，ＤＲＥの組合せを「１，１，１，１，３，１」としている。したがって、ＳＤ１は、図７（ｅ）のシミュレーションデータ用分割後分布１２５から、「ＳＱ１，ＲＱ１，ＥＤ１，ＤＲ１，ＤＩＲ３，ＤＲＥ１」の組合せが取り出され、生成される。
ここでは、ＳＤ１はソフトウエア開発組織のレベルが低い組織のデータ、ＳＤ２はレベルが中程度の組織、ＳＤ３はレベルが高い組織を指すよう、知見より設定した。
【００７４】
図８は、本実施の形態に係る（ｆ）シミュレーションデータ１２６からなるシミュレーションデータセットの一例を示す図である。
シミュレーションデータ１２６は、「欠陥数推定モデル」に対して利用するシミュレーションデータである。１レコードが１つのシミュレーションデータ１２６であり、各データはシミュレーションデータ用分割後分布１２５と分割後分布割当表１２９とにしたがって、各ノード別に生成される。
ここで、シミュレーションデータ１２６の生成には、例えば「Ｒ」などの一般的な統計ソフトウエアを利用する。
【００７５】
具体例では、ＳＤ１のシミュレーションデータセット（ｄａｔａ２０）が生成された場合を示している。
【００７６】
図９は、本実施の形態に係る推定値算出部１０３により算出された推定値情報１３０（推定値１２７）の一例を示す図である。
推定値１２７は、「欠陥数推定モデル」に対し、Ｓｔｅｐ１で実績データの代わりに、作成したシミュレーションデータ１２６を与え、Ｓｔｅｐ２でモデル入力値１２３を入力して得られた推定値である。推定値１２７は、複数生成される。推定値１２７は、生成したシミュレーションデータ１２６の１つに対して１つ出力され、生成したシミュレーションデータ１２６の数だけ出力されることになる。
【００７７】
図１０は、本実施の形態に係る動作確認装置３００の動作確認方法（分布情報生成処理、シミュレーションデータ作成処理）を示すフローチャートである。図１１は、本実施の形態に係る動作確認装置３００の動作確認方法（推定値算出処理、グラフ作成処理）を示すフローチャートである。図１０及び図１１を用いて、動作確認装置３００の動作確認方法について説明する。
まず、動作確認装置３００の動作確認方法の全体フローについて説明する。
【００７８】
＜分布情報生成処理＞
Ｓ１００において、分布情報生成部１０１は、シミュレーションデータ用基本分布１２１（図６（ａ））とシミュレーションデータ用分布分割情報１２２（図６（ｂ））とを読み込む。
Ｓ１０１において、分布情報生成部１０１は、読み込んだシミュレーションデータ用基本分布１２１とシミュレーションデータ用分布分割情報１２２とに基づいて、シミュレーションデータ用分割後分布１２５（図７（ｅ））を作成する。
【００７９】
＜シミュレーションデータ作成処理＞
Ｓ１０２において、シミュレーションデータ作成部１０２は、シミュレーションデータ用分割後分布１２５と分割後分布割当表１２９とを読込む。
Ｓ１０３において、シミュレーションデータ作成部１０２は、読み込んだシミュレーションデータ用分割後分布１２５と分割後分布割当表１２９とに基づいて、複数のシミュレーションデータ１２６を作成する。シミュレーションデータ１２６は、ｎ個作成されるものとする。つまり、シミュレーションデータ作成部１０２は、１番目からｎ（ｎは２以上の整数）番目までのｎ個のシミュレーションデータを作成する。
【００８０】
＜推定値算出処理＞
Ｓ１０４において、推定値算出部１０３は、モデル入力値１２３を読込む。
Ｓ１０５〜Ｓ１０６において、推定値算出部１０３は、ｎ個のシミュレーションデータ１２６を１つずつ順次に読み込む。処理対象のシミュレーションデータをｉ（ｉは１以上ｎ以下の整数）番目とする。
まず、ｉ番目のシミュレーションデータについて欠陥数推定モデルにてｓｔｅｐ１を実行し、条件付確率表を算出する。次に、読み込んだモデル入力値１２３を入力して、ｓｔｅｐ２を実行し、ｉ番目の推定値１２７を算出する。
図１０のＳ１０５に示すように、ｉ＝０，１＜ｎ，ｉ＋＋の条件で処理を繰り返し、１番目からｎ番目までのシミュレーションデータ１２６について処理し、対応する１番目からｎ番目までの推定値１２７を算出する。
【００８１】
ここで、例えば、ＳＤ１，ＳＤ２，ＳＤ３のシミュレーションデータセットのそれぞれが、４０個のシミュレーションデータ１２６を有する場合には、ｎ＝１２０となる。
【００８２】
＜グラフ作成処理＞
Ｓ１０７において、グラフ作成部１０４は、推定値１２７のｎ個全てと、グラフ用設定情報１２４とを読み込む。
Ｓ１０８において、グラフ作成部１０４は、第１グラフ１２８ｈ、第２グラフ１２８ｉ、第３グラフ１２８ｊを作成する。
【００８３】
以上で、図１０及び図１１に示すフローチャートの全体フローについての説明を終わる。
【００８４】
次に、本実施の形態に係る動作確認装置３００の動作確認方法の分布情報生成処理、シミュレーションデータ作成処理、推定値算出処理、グラフ作成処理の詳細について説明する。
【００８５】
まず、（１）分布情報生成処理：Ｓ１００〜Ｓ１０１について説明する。
分布情報生成部１０１は、シミュレーションデータ用基本分布１２１（図６（ａ））とシミュレーションデータ用分布分割情報１２２（図６（ｂ））とを読み込み、シミュレーションデータ用分割後分布１２５（図７（ｅ））を作成する。
ＩＮＰＵＴ：
（ａ）シミュレーションデータ用基本分布１２１；
（ｂ）シミュレーションデータ用分布分割情報１２２。
ＯＵＴＰＵＴ：
（ｅ）シミュレーションデータ用分割後分布１２５。
【００８６】
分布情報生成部１０１は、（ｂ）シミュレーションデータ用分布分割情報１２２の「Ｄａｔａｓｅｔ」に設定された情報を元に、（ａ）シミュレーションデータ用基本分布１２１の分布を分割する。
具体例では、「Ｄａｔａｓｅｔ」が「３」なので、（ａ）シミュレーションデータ用基本分布１２１の分布を３分割する。
【００８７】
分布情報生成部１０１は、シミュレーションデータ用基本分布１２１（基準分布、ノード別基準分布）を設定する基準分布設定部の一例である。また、シミュレーションデータ用基本分布１２１（基準分布）を、（ｂ）シミュレーションデータ用分布分割情報１２２の「Ｄａｔａｓｅｔ」の値（予め定められた分割数）に分割し、シミュレーションデータ用分割後分布１２５（分割数の分割後分布、分割数のノード別分割後分布）を生成する分布分割部の一例である。
【００８８】
図１３、図１４、及び図１５は、本実施の形態に係るシミュレーションデータ用基本分布１２１の分割の仕組みを表したイメージ図である。
【００８９】
分布情報生成部１０１は、（ｂ）シミュレーションデータ用分布分割情報１２２の「ＮｏｒｍａｌＤｉｓｔｒｉｂｕｔｉｏｎＤａｔａＩｎｔｅｒｖａｌ」の値を利用して、（ａ）シミュレーションデータ用基本分布１２１のデータ範囲を計算する。
ただし、「欠陥数推定モデル」の全てのノードは、０以上の値を取るデータだが、（ａ）シミュレーションデータ用基本分布１２１は測定データに対して単純な分布計算を行った結果であるため、ＥＤ、ＤＲ、ＤＩＲのデータ分布範囲（基本分布の下側９５％点から上側９５％点の範囲とする）がマイナス値にかかる。
この場合、データ範囲の下限（下側９５％点）を０として範囲を調整し、調整済みの範囲を図１３のように３分割して計算を行う。
【００９０】
図１３に示すように、分布情報生成部１０１は、（ａ）シミュレーションデータ用基本分布１２１を３分割する。
図１４及び図１５の「分割のイメージ（正規分布）」に示すように、分布情報生成部１０１は、３分割した分布範囲（グループ１，グループ２，グループ３）のそれぞれについて、分布化する。
【００９１】
分布情報生成部１０１は、３分割した分布範囲をさらに分布化した計算結果を、（ｅ）シミュレーションデータ用分割後分布１２５（図７（ｅ）参照）として出力する。各ノードの分割後分布は本表（（ｅ）シミュレーションデータ用分割後分布１２５）の通りとなる。
【００９２】
次に、（２）シミュレーションデータ作成処理：Ｓ１０２〜Ｓ１０３について説明する。
図１６及び図１７は、本実施の形態に係るシミュレーションデータセット及びシミュレーションデータ１２６の作成の仕組みを表したイメージ図である。
【００９３】
シミュレーションデータ作成部１０２は、シミュレーションデータ用分割後分布１２５と分割後分布割当表１２９とを読込み、複数のシミュレーションデータ１２６を作成する。
ＩＮＰＵＴ：
（ｅ）シミュレーションデータ用分割後分布１２５；
（ｋ）分割後分布割当表１２９。
ＯＵＴＰＵＴ：
（ｆ）シミュレーションデータ１２６（「ＤａｔａＳｅｔ」に基づいた任意のｎ個が作成される）。
【００９４】
図１６に示すように、シミュレーションデータ作成部１０２は、読み込んだ（ｋ）分割後分布割当表１２９と（ｅ）シミュレーションデータ用分割後分布１２５とを照らし合わせ、ＳＤ１からＳＤ３のシミュレーションデータの分布内容を決定する。
例えば、ＳＤ１については、（ｋ）分割後分布割当表１２９にて、ＤＩＲが３、それ以外は１が設定されている。したがって、生成するシミュレーションデータ１２６は、（ｅ）シミュレーションデータ用分割後分布１２５の「ＳＱ１、ＲＱ１、ＥＤ１、ＤＲ１、ＤＩＲ３、ＤＲＥ１」の分布の組み合わせ（分布セット）から生成したデータとなる（６ノード全てが揃ったフルセットデータ）。
【００９５】
次に、シミュレーションデータ作成部１０２は、シミュレーションデータ用分布分割情報１２２の「ＭａｘＤａｔａ」の値と「ＧｒａｐｈＩｎｔｅｒｖａｌ」の値から、作成するシミュレーションデータセット内のデータ数を決定する。
【００９６】
ここでは、「ＭａｘＤａｔａ」の値が「４０」で、「ＧｒａｐｈＩｎｔｅｒｖａｌ」の値が「１０」である。これは、最大が４０個で、ファイルごとのデータ数インターバルは１０個であることを示している。
ＳＤ１〜ＳＤ３に対し、それぞれデータ数が１個、１０個、２０個、３０個、４０個のファイルを作成する。なお、データ数の初期値は、あらかじめシステム内で定義しておく。ここでは、１としたため１個〜４０個となる。
【００９７】
図１７に示すように、シミュレーションデータ作成部１０２は、統計用ソフトウエア等を用いてシミュレーションデータ１２６を作成する。作成されるシミュレーションデータ一覧は以下のようになる。ただし、図１７においては、シミュレーションデータ１２６の１３個分までしか記載していない。
（Ａ）ＳＤ１−ｄａｔａ１、ＳＤ１−ｄａｔａ１０、ＳＤ１−ｄａｔａ２０、ＳＤ１−ｄａｔａ３０、ＳＤ１−ｄａｔａ４０；
（Ｂ）ＳＤ２−ｄａｔａ１、ＳＤ２−ｄａｔａ１０、ＳＤ２−ｄａｔａ２０、ＳＤ２−ｄａｔａ３０、ＳＤ２−ｄａｔａ４０；
（Ｃ）ＳＤ３−ｄａｔａ１、ＳＤ３−ｄａｔａ１０、ＳＤ３−ｄａｔａ２０、ＳＤ３−ｄａｔａ３０、ＳＤ３−ｄａｔａ４０。
【００９８】
なお、シミュレーションデータ生成そのものについては、統計用ソフトウエア（Ｒ（２１）など）と利用して作成する。作成されるデータの一例は、図８（ｆ）に示す（ｆ）シミュレーションデータ１２６（ＳＤ１−ｄａｔａ２０の例）のとおりである。
【００９９】
シミュレーションデータ作成部１０２は、シミュレーションデータ用分割後分布１２５（分割数の分割後分布）のＳＤ１、ＳＤ２，ＳＤ３の各々から、シミュレーションデータ用分布分割情報１２２の「ＭａｘＤａｔａ」の値（予め定められたデータ数）のシミュレーションデータ１２６を生成し、ＳＤ１、ＳＤ２，ＳＤ３毎のシミュレーションデータ１２６（分割数の分割後分布毎のデータ数のシミュレーションデータ）を生成するシミュレーションデータ作成部の一例である。
【０１００】
次に、（３）推定値算出処理：Ｓ１０４〜Ｓ１０６について説明する。
推定値算出部１０３は、（ｆ）シミュレーションデータ１２６と（ｃ）モデル入力値１２３とを読み込み、推定値情報１３０を算出する。
ＩＮＰＵＴ：
（ｆ）シミュレーションデータ１２６；
（ｃ）モデル入力値１２３。
ＯＵＴＰＵＴ：
（ｇ）推定値情報１３０。
【０１０１】
推定値算出部１０３による推定値の算出には、ベイジアンネットワーク用のツールを利用する。予め、欠陥数推定モデルを当該ツールの上に組み上げておく。
まず、推定値算出部１０３は、ツール上の欠陥数推定モデルに対し、Ｓｔｅｐ１にて、シミュレーションデータ１２６を順に１つずつ与えて、ツール上の欠陥数推定モデルの条件付確率表を最適化する。
推定値算出部１０３は、複数（ｎ個の）のシミュレーションデータ１２６の各シミュレーションデータ１２６を欠陥数推定モデルに入力して、条件付確率表を最適化する確率表最適化部の一例である。
【０１０２】
次に、推定値算出部１０３は、Ｓｔｅｐ２にて（ｃ）モデル入力値１２３に指定された値を入力し、推定値１２７を１セット算出する。
推定値算出部１０３は、モデル入力値１２３を入力対象ノードであるＥＤ，ＤＲに入力し、最適化された条件付確率表を備える欠陥数推定モデルを用いて、推定対象ノードであるＤＩＲ，ＤＲＥの値を推定して推定値１２７として出力する推定値出力部の一例である。
【０１０３】
例えば、推定値算出部１０３は、ＳＤ１−ｄａｔａ１を欠陥数推定モデルに与え、ＥＤ＝０．６３、ＤＲ＝０．８３を入力し、推定値１２７としてＤＩＲとＤＥＲの値を算出する。推定値算出部１０３は、上述の処理を繰り返し、全てのシミュレーションデータ１２６に対する推定値１２７の算出を実行する。
【０１０４】
推定値算出部１０３は、欠陥数推定モデルに入力した複数（ｎ個の）のシミュレーションデータ１２６の各シミュレーションデータ１２６と、対応する推定値１２７とが対応付けられた情報を蓄積して推定値情報１３０（図８参照）（分析対象情報）として記憶装置に記憶する分析対象情報記憶部の一例である。
【０１０５】
次に、（４）グラフ作成処理：Ｓ１０７〜Ｓ１０８について説明する。
グラフ作成部１０４は、推定値１２７のｎ個全て（推定値情報１３０）と、グラフ用設定情報１２４とを読み込み、第１グラフ１２８ｈ、第２グラフ１２８ｉ、第３グラフ１２８ｊを作成する。
ＩＮＰＵＴ：
（ｇ）推定値情報１３０；
（ｄ）グラフ用設定情報１２４。
ＯＵＴＰＵＴ：
（ｈ）第１グラフ１２８ｈ（グラフ１）；
（ｉ）第２グラフ１２８ｉ（グラフ２）；
（ｊ）第３グラフ１２８ｊ（グラフ３）。
【０１０６】
図１８は、実施の形態１に係る（ｈ）第１グラフ１２８ｈの一例を示す図である。図１９は、実施の形態１に係る（ｉ）第２グラフ１２８ｉのＤＩＲの例を示す図である。図２０は、実施の形態１に係る（ｉ）第２グラフ１２８ｉのＤＲＥの例を示す図である。図２１は、実施の形態１に係る基準となるシミュレーションデータセットに対する他のシミュレーションデータセットの各推定値の変化率を示す表である。図２２は、実施の形態１に係る（ｊ）第３グラフ１２８ｊのＤＩＲの例を示す図である。図２３は、実施の形態１に係る（ｊ）第３グラフ１２８ｊのＤＲＥの例を示す図である。
【０１０７】
グラフ作成部１０４は、（ｇ）推定値情報１３０を利用して、（ｈ）第１グラフ１２８ｈ（グラフ１）、（ｉ）第２グラフ１２８ｉ（グラフ２）、（ｊ）第３グラフ１２８ｊ（グラフ３）を作成する。
（ｈ）第１グラフ１２８ｈ（グラフ１）は、シミュレーションデータの数とモデル精度の関係を可視化したグラフである（図１８参照）。
（ｉ）第２グラフ１２８ｉ（グラフ２）は、シミュレーションデータの違いにより変化した推定値の差を可視化したグラフである（図１９及び図２０参照）。
（ｊ）第３グラフ１２８ｊ（グラフ３）は、シミュレーションデータにより変化した推定値同士の関係性を可視化したグラフである（図２２及び図２３参照）。
【０１０８】
なお、上記（ｉ）第２グラフ１２８ｉ（グラフ２）の作成時には、（ｄ）グラフ用設定情報１２４の「ＸＡｘｉｓＯｒｄｅｒ」を利用し、Ｘ軸のシミュレーションデータセット（ＳＤ１，ＳＤ２，ＳＤ３）の並びを決定する。
【０１０９】
また、（ｈ）第１グラフ１２８ｈ（グラフ１）の作成時には、（ｄ）グラフ用設定情報１２４の「ＢａｓｅＬｉｂｎｅ」の値を利用し、１が入力されたシミュレーションデータを基準として各推定値の変化率を計算し、グラフ１上に表示する。
具体例では、ＳＤ２が基準となる（図６（ｄ）参照）ため、図２１に示すように数値を算出し、これをグラフ１（図１８参照）上に表示する。
【０１１０】
次に、グラフ作成部１０４により作成される各グラフについて、図１８〜２０，２２，２３を用いて説明する。
【０１１１】
図１８を用いて、（ｈ）第１グラフ１２８ｈ（グラフ１）について説明する。
（ｇ）推定値情報１３０を利用して作成されたグラフ図で、シミュレーションデータセット（ＳＤ１，ＳＤ２（基準），ＳＤ３）ごとに、基準値に対する推定値の位置付けを一度にチェックするためのグラフである。本グラフにより、与えるデータ数が増えると推定値およびその信頼区間（推定値±２σ）がどのように推移していくかを確認できる。
【０１１２】
図１９，２０を用いて、（ｉ）第２グラフ１２８ｉ（グラフ２）について説明する。
（ｇ）推定値情報１３０を利用して作成されたグラフ図で、シミュレーションデータセット（ＳＤ１，ＳＤ２，ＳＤ３）に対する推定値そのものの値をチェックするためのグラフである。本グラフを用いると、シミュレーションデータセット（ＳＤ１，ＳＤ２，ＳＤ３）ごとの推定値の差を確認できる。
【０１１３】
図２２，２３を用いて、（ｊ）第３グラフ１２８ｊ（グラフ３）について説明する。
（ｇ）推定値情報１３０の情報を利用して作成されたグラフ図で、各シミュレーションデータに対する推定値そのものの値をチェックするためのグラフである。本グラフにより、与えるデータ数が増えると推定値およびその信頼区間（推定値±２σ）がどのように推移していくかを確認できる。
【０１１４】
以上で、本実施の形態に係る動作確認装置１００の機能及び動作についての説明を終わる。
【０１１５】
以下において、本実施の形態に係る動作確認装置１００の機能及び動作について換言するとともに、効果について記載する。
【０１１６】
本実施の形態に係る動作確認装置１００は、条件付確率表を任意に変化させるために、実績データの替わりに予め定義した分布（シミュレーションデータ用基本分布１２１）に従ったシミュレーションデータ１２６を作成してモデルに与える。
動作確認装置１００は、シミュレーションデータ用基本分布１２１の範囲の中にさらに分布を複数作る。このように作成された分布がシミュレーションデータ用分割後分布１２５である。複数作成した分布のそれぞれをデータセット（ＳＤ１，ＳＤ２，ＳＤ３）の分布とする。
【０１１７】
動作確認装置１００においては、データセットの分布を作成するに当たっては、粒度を定義し、この粒度の数だけ各ノードの基本分布のデータ範囲中に分布を作る。「粒度」とは、上述した（ｂ）シミュレーションデータ用分布分割情報１２２の「Ｄａｔａｓｅｔ」の値に該当する。
【０１１８】
動作確認装置１００は、推定値１２７の算出を、このデータセットの分布単位で行う。正規分布ノードについては、そのままではデータ範囲が限定できないため、上側９５％点から下側９５％など、分布に対する有効範囲を任意に決めて範囲とする方法を取る。この範囲は、（ｂ）シミュレーションデータ用分布分割情報１２２の「ＮｏｒｍａｌＤｉｓｔｒｉｂｕｓｉｏｎＤａｔａＩｎｔｅｒｖａｌ」の値を利用する。
【０１１９】
動作確認装置１００では、このように作成した分割後分布を各ノードに割り当てた（ｅ）シミュレーションデータ用分割後分布１２５を作成し、分布に従い各ノード別にデータ生成を行う。その後、生成されたデータを分割後分布割付表１２９に従って組み合わせ、シミュレーションデータセット化する。これらのシミュレーションデータセットをモデルに与えると、それぞれ異なる条件付確率表が自動生成される。このとき、基準値として定義した一定値を入力し、推定値を算出する。入力値を一定にし、条件付確率表の影響以外の変化要因を排除する。算出した推定値を可視化して結果の評価を行う。
【０１２０】
以上のように、本実施の形態に係る動作確認装置１００によれば、シミュレーションデータに対する推定結果を算出し、その結果を比較したグラフが作成できる。これにより、実データが全く得られていない状態でも、モデル利用効果の目安を得る事ができる。
また、当該グラフに対し、ソフトウエアの実開発時に「欠陥数推定モデル」を利用して得られる推定値や、最終的に実績データとして得られた値を照らし合わせる事により、自分の組織がどのシミュレーションデータに近い組織であるかを知る事ができるため、組織の評価を行う事ができる。
【０１２１】
例えば、（ｈ）グラフ１から、ソフトウエアの開発力が中程度の組織（ＳＤ２）と比較し、開発力のある組織（ＳＤ３）ではＤＩＲが下がりＤＲＥが上がっている事がわかる。逆に、開発力不足の組織（ＳＤ１）ではＤＩＲが上がり、ＤＲＥが下がっている事がわかる。（ｉ）グラフ２からは、各組織で利用した場合のおおよその推定値がわかる。
よって、（ｈ）グラフ１と（ｉ）グラフ２の情報から、他組織のおおよその値などがわかるため、自組織で実際に値が得られた際にグラフと照らし合わせる事で、自分の組織がどの程度のレベルにあるかチェックしたり、他組織との比較をする事ができる。
また、開発のレベルを上げると、どの程度の値になるか知る事ができる。
（ｊ）グラフ３からは、各組織でどの程度実績データが用意できると、期待する程度のモデル精度が得られるかを知る事ができる。
【０１２２】
特に、（１）分布情報生成機能と、（２）シミュレーションデータ作成機能の処理により、シミュレーションデータが作成できるという効果がある。また、（４）グラフ作成機能の処理にて、算出された推定値が目的に応じた形に可視化されるという効果がある。
【０１２３】
上記実施の形態１の説明では、「分布情報生成部」、「シミュレーションデータ作成部」、「推定値算出部」、「グラフ作成部」等がそれぞれ独立した機能ブロックとして動作確認装置３００を構成している。しかし、これに限られるわけではなく、例えば、「分布情報生成部」、「シミュレーションデータ作成部」をひとつの機能ブロックで実現し、「推定値算出部」、「グラフ作成部」をひとつの機能ブロックで実現しても良い。あるいは、これらの機能ブロックを、他のどのような組み合わせで動作確認装置３００を構成しても構わない。
なお、本発明は、この実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【０１２４】
１００  動作確認装置、１０１  分布情報生成部、１０２  シミュレーションデータ作成部、１０３  推定値算出部、１０４  グラフ作成部、１２０  データ、１２１  シミュレーションデータ用基本分布、１２２  シミュレーションデータ用分布分割情報、１２３
モデル入力値、１２４  グラフ用設定情報、１２５  シミュレーションデータ用分割後分布、１２６  シミュレーションデータ、１２７  推定値、１２８  グラフ、１２８ｈ  第１グラフ、１２８ｉ  第２グラフ、１２８ｊ  第３グラフ、１２９  分割後分布割当表、１３０  推定値情報、９０１  ＬＣＤ、９０２  キーボード、９０３  マウス、９０４
ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ、９１１  ＣＰＵ、９１２  バス、９１３
ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  ＨＤＤ、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2014164336.tif 000003
【図２】
2014164336.tif 000004
【図３】
2014164336.tif 000005
【図４】
2014164336.tif 000006
【図５】
2014164336.tif 000007
【図６】
2014164336.tif 000008
【図７】
2014164336.tif 000009
【図８】
2014164336.tif 000010
【図９】
2014164336.tif 000011
【図１０】
2014164336.tif 000012
【図１１】
2014164336.tif 000013
【図１２】
2014164336.tif 000014
【図１３】
2014164336.tif 000015
【図１４】
2014164336.tif 000016
【図１５】
2014164336.tif 000017
【図１６】
2014164336.tif 000018
【図１７】
2014164336.tif 000019
【図１８】
2014164336.tif 000020
【図１９】
2014164336.tif 000021
【図２０】
2014164336.tif 000022
【図２１】
2014164336.tif 000023
【図２２】
2014164336.tif 000024
【図２３】
2014164336.tif 000025