(57)【特許請求の範囲】
【請求項１】
開発対象システムの性能を評価する性能評価装置であり、
開発対象システムの構成要素と、上記開発対象システムの実行環境と、上記開発対象システムが動作するネットワークを含む外部環境とのとり得る状態と、イベントの発生により起こされる上記構成要素と上記実行環境と上記外部環境との状態の変化を示す状態遷移と、上記状態遷移が起こる場合に発生する上記構成要素と上記実行環境と上記外部環境との動作を示す遷移アクションとにより、上記開発対象システムと上記実行環境と上記外部環境との動作仕様を表した状態遷移モデルを記憶装置に記憶する状態遷移モデル記憶部と、
上記状態遷移モデル記憶部が記憶した状態遷移モデルにおける遷移アクションの実行にかかる処理負荷の値を示す処理負荷モデルを作成して記憶装置に記憶する処理負荷作成部と、
上記状態遷移モデルにおける遷移アクションを実行するプロセッサの処理能力の値を示す処理能力モデルを作成して記憶装置に記憶する処理能力作成部と、
上記状態遷移モデルにおける遷移アクションを実行するまでの待ち時間を計算するための処理待ちモデルを作成して記憶装置に記憶する処理待ち作成部と、
複数のイベントを有するイベント列を作成して記憶装置に記憶するイベント列作成部と、
上記イベント列作成部が作成したイベント列の各イベントを入力として、上記状態遷移モデルに従い、上記構成要素と上記実行環境と上記外部環境との状態を変化させる状態遷移モデル実行部と、
上記状態遷移モデル実行部が上記構成要素と上記実行環境と上記外部環境との状態を変化させる場合に、上記各イベントにより発生する遷移アクションの実行にかかる処理時間を、上記処理負荷作成部が作成した処理負荷モデルと、上記処理能力作成部が作成した処理能力モデルとから計算する処理時間計算部と、
上記状態遷移モデル実行部が上記構成要素と上記実行環境と上記外部環境との状態を変化させる場合に、上記各イベントによる遷移アクションの実行までの待ち時間を上記処理待ち作成部が作成した処理待ちモデルに基づき計算する待ち時間計算部と、
上記処理時間計算部が計算した処理時間と、上記待ち時間計算部が計算した待ち時間とに基づき性能指標値を計算する性能指標値計算部と、
上記性能指標値計算部が計算した性能指標値に基づき、開発対象システムの性能を評価する性能評価部と
を備えることを特徴とする性能評価装置。
【請求項２】
上記イベント列作成部は、起こされる状態遷移を特定可能なイベント種別と、イベントが発生するタイミングを示すイベント発生タイミングとを含むイベントを複数作成することにより、イベント列を作成する
ことを特徴とする請求項１に記載の性能評価装置。
【請求項３】
上記イベント列作成部は、過去のシステム稼動実績と、所定の確率分布との少なくともいずれかに基づき、イベント列を作成する
ことを特徴とする請求項１又は２に記載の性能評価装置。
【請求項４】
上記処理負荷作成部は、上記状態遷移モデルにおける遷移アクションの実行にかかる処理負荷モデルを、上記遷移アクションを構成する命令数と、数値演算数と、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）コール数と、ミドルウェアＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）数との少なくともいずれかに基づき作成することを特徴とする請求項１から３までのいずれかに記載の性能評価装置。
【請求項５】
上記処理能力作成部は、上記状態遷移モデルにおける遷移アクションを実行するプロセッサの処理能力モデルを、命令処理速度と、数値演算処理速度と、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）コール処理速度と、ミドルウェアＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ
Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）処理速度との少なくともいずれかに基づき作成する
ことを特徴とする請求項１から４までのいずれかに記載の性能評価装置。
【請求項６】
上記処理能力作成部は、上記状態遷移モデルにおける遷移アクションを実行するプロセッサの処理能力モデルを、開発システムに使用するプロセッサの仕様情報と、所定の確率分布との少なくともいずれかに基づき作成する
ことを特徴とする請求項１から５までのいずれかに記載の性能評価装置。
【請求項７】
上記処理待ち作成部は、遷移アクションを実行するまでの処理待ちモデルを、イベント列の各イベントを格納するイベントキューの数と、上記イベントキューのサイズと、上記イベントキューからイベントを取り出す規則との少なくともいずれかに基づき作成する
ことを特徴とする請求項１から６までのいずれかに記載の性能評価装置。
【請求項８】
上記処理時間計算部は、上記各イベントにより発生する遷移アクションの実行にかかる処理時間を、上記処理負荷作成部が作成した処理負荷モデルから計算される処理負荷の値を、上記処理能力作成部が作成した処理能力モデルから計算される処理能力の値で除することにより計算する
ことを特徴とする請求項１から７までのいずれかに記載の性能評価装置。
【請求項９】
上記待ち時間計算部は、上記各イベントによる遷移アクションの実行までの待ち時間を、上記処理待ち作成部が作成した処理待ちモデルと、上記処理時間計算部が計算した上記各イベントにより発生する遷移アクションの実行にかかる処理時間とに基づき計算する
ことを特徴とする請求項１から８までのいずれかに記載の性能評価装置。
【請求項１０】
上記性能指標値計算部は、上記処理時間計算部が計算した処理時間と、上記待ち時間計算部が計算した待ち時間とに基づき、イベントの発生からそのイベントによる状態遷移が終了するまでの応答時間の上記イベント列に含まれるイベントの平均時間を性能指標値として計算する
ことを特徴とする請求項１から９までのいずれかに記載の性能評価装置。
【請求項１１】
上記性能指標値計算部は、上記処理時間計算部が計算した処理時間と、上記待ち時間計算部が計算した待ち時間とに基づき、単位時間当たりにイベントの発生からそのイベントによる状態遷移の終了まで実行されるイベント数の平均値を性能指標値として計算する
ことを特徴とする請求項１から１０までのいずれかに記載の性能評価装置。
【請求項１２】
上記性能評価装置は、さらに、
開発システムに要求する性能を示す性能要求値を記憶装置に記憶する性能要求値記憶部を備え、
上記性能評価部は、上記性能要求値記憶部が記憶した性能要求値を、上記性能指標値計算部が計算した性能指標値で除して要求達成度を算出し、算出した要求達成度により開発対象システムの性能を評価する
ことを特徴とする請求項１から１１までのいずれかに記載の性能評価装置。
【請求項１３】
開発対象システムの性能を評価する性能評価プログラムであり、
開発対象システムの構成要素と、上記開発対象システムの実行環境と、上記開発対象システムが動作するネットワークを含む外部環境とのとり得る状態と、イベントの発生により起こされる上記構成要素と上記実行環境と上記外部環境との状態の変化を示す状態遷移と、上記状態遷移が起こる場合に発生する上記構成要素と上記実行環境と上記外部環境との動作を示す遷移アクションとにより、上記開発対象システムと上記実行環境と上記外部環境との動作仕様を表した状態遷移モデルを記憶装置に記憶する状態遷移モデル記憶処理と、
上記状態遷移モデル記憶処理で記憶した状態遷移モデルにおける遷移アクションの実行にかかる処理負荷の値を示す処理負荷モデルを作成して記憶装置に記憶する処理負荷作成処理と、
上記状態遷移モデルにおける遷移アクションを実行するプロセッサの処理能力の値を示す処理能力モデルを作成して記憶装置に記憶する処理能力作成処理と、
上記状態遷移モデルにおける遷移アクションを実行するまでの待ち時間を計算するための処理待ちモデルを作成して記憶装置に記憶する処理待ち作成処理と、
複数のイベントを有するイベント列を作成して記憶装置に記憶するイベント列作成処理と、
上記イベント列作成処理で作成したイベント列の各イベントを入力として、上記状態遷移モデルに従い、上記構成要素と上記実行環境と上記外部環境との状態を変化させる状態遷移モデル実行処理と、
上記状態遷移モデル実行処理で上記構成要素と上記実行環境と上記外部環境との状態を変化させる場合に、上記各イベントにより発生する遷移アクションの実行にかかる処理時間を、上記処理負荷作成処理で作成した処理負荷モデルと、上記処理能力作成処理で作成した処理能力モデルとから計算する処理時間計算処理と、
上記状態遷移モデル実行処理で上記構成要素と上記実行環境と上記外部環境との状態を変化させる場合に、上記各イベントによる遷移アクションの実行までの待ち時間を上記処理待ち作成処理で作成した処理待ちモデルに基づき計算する待ち時間計算処理と、
上記処理時間計算処理で計算した処理時間と、上記待ち時間計算処理で計算した待ち時間とに基づき性能指標値を計算する性能指標値計算処理と、
上記性能指標値計算処理で計算した性能指標値に基づき、開発対象システムの性能を評価する性能評価処理と
をコンピュータに実行させることを特徴とする性能評価プログラム。
【請求項１４】
開発対象システムの性能を評価する性能評価方法であり、
記憶装置が、開発対象システムの構成要素と、上記開発対象システムの実行環境と、上記開発対象システムが動作するネットワークを含む外部環境とのとり得る状態と、イベントの発生により起こされる上記構成要素と上記実行環境と上記外部環境との状態の変化を示す状態遷移と、上記状態遷移が起こる場合に発生する上記構成要素と上記実行環境と上記外部環境との動作を示す遷移アクションとにより、上記開発対象システムと上記実行環境と上記外部環境との動作仕様を表した状態遷移モデルを記憶する状態遷移モデル記憶ステップと、
入力装置の指示に基づき、上記状態遷移モデル記憶ステップで記憶した状態遷移モデルにおける遷移アクションの実行にかかる処理負荷の値を示す処理負荷モデルを作成する処
理負荷作成ステップと、
入力装置の指示に基づき、上記状態遷移モデルにおける遷移アクションを実行するプロセッサの処理能力の値を示す処理能力モデルを作成する処理能力作成ステップと、
入力装置の指示に基づき、上記状態遷移モデルにおける遷移アクションを実行するまでの待ち時間を計算するための処理待ちモデルを作成する処理待ち作成ステップと、
入力装置の指示に基づき、複数のイベントを有するイベント列を作成するイベント列作成ステップと、
上記イベント列作成ステップで作成したイベント列の各イベントを入力として、上記状態遷移モデルに従い、上記構成要素と上記実行環境と上記外部環境との状態を変化させる状態遷移モデル実行ステップと、
上記状態遷移モデル実行ステップで上記構成要素と上記実行環境と上記外部環境との状態を変化させる場合に、上記各イベントにより発生する遷移アクションの実行にかかる処理時間を、上記処理負荷作成ステップで作成した処理負荷モデルと、上記処理能力作成ステップで作成した処理能力モデルとから計算する処理時間計算ステップと、
上記状態遷移モデル実行ステップで上記構成要素と上記実行環境と上記外部環境との状態を変化させる場合に、上記各イベントによる遷移アクションの実行までの待ち時間を上記処理待ち作成ステップで作成した処理待ちモデルに基づき計算する待ち時間計算ステップと、
上記処理時間計算ステップで計算した処理時間と、上記待ち時間計算ステップで計算した待ち時間とに基づき性能指標値を計算する性能指標値計算ステップと、
上記性能指標値計算ステップで計算した性能指標値に基づき、開発対象システムの性能を評価する性能評価ステップと
を備えることを特徴とする性能評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、所定のシステムの性能を評価する性能評価技術に関する。
【背景技術】
【０００２】
システム開発では、ソフトウェアやハードウェアの開発前に、システムの仕様モデルを用いて性能要求を実現できるか繰り返し評価する。組込み制御システムに代表されるような、外部からの入力に対してリアルタイムで応答を返すシステムでは、仕様モデルとして状態遷移モデルが適しており、この状態遷移モデルを用いて性能評価を実施する性能評価システムがある。
【特許文献１】特開２０００−２０３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の性能評価システムでは、システムに高い負荷がかかることにより処理輻輳が起こった場合や、複数の処理が同時に実行されることにより排他制御が起こった場合など、システム稼動時に必ず発生する待ち時間を考慮していない。そのため、待ち時間が発生する場合は性能評価結果の精度が低いという課題がある。また、従来の性能評価システムが評価に用いる性能評価モデルでは、構成要素の待ち時間や、実行環境やシステム外部環境の状態に依存する処理時間と待ち時間とを正確に表現できないという課題がある。
この発明は、例えば、上記課題を解決し、性能評価結果の精度を高くすることを目的とする。
【課題を解決するための手段】
【０００４】
本発明に係る性能評価装置は、例えば、開発対象システムの性能を評価する性能評価装置であり、
開発対象システムの構成要素のとり得る状態と、イベントの発生により起こされる上記構成要素の状態の変化を示す状態遷移と、上記状態遷移が起こる場合に発生する上記構成要素の動作を示す遷移アクションとにより、上記開発対象システムの動作仕様を表した状態遷移モデルを記憶装置に記憶する状態遷移モデル記憶部と、
上記状態遷移モデル記憶部が記憶した状態遷移モデルにおける遷移アクションの実行にかかる処理負荷の値を示す処理負荷モデルを作成して記憶装置に記憶する処理負荷作成部と、
上記状態遷移モデルにおける遷移アクションを実行するプロセッサの処理能力の値を示す処理能力モデルを作成して記憶装置に記憶する処理能力作成部と、
上記状態遷移モデルにおける遷移アクションを実行するまでの待ち時間を計算するための処理待ちモデルを作成して記憶装置に記憶する処理待ち作成部と、
複数のイベントを有するイベント列を作成して記憶装置に記憶するイベント列作成部と、
上記イベント列作成部が作成したイベント列の各イベントを入力として、上記状態遷移モデルに従い、上記構成要素の状態を変化させる状態遷移モデル実行部と、
上記状態遷移モデル実行部が上記構成要素の状態を変化させる場合に、上記各イベントにより発生する遷移アクションの実行にかかる処理時間を、上記処理負荷作成部が作成した処理負荷モデルと、上記処理能力作成部が作成した処理能力モデルとから計算する処理時間計算部と、
上記状態遷移モデル実行部が上記構成要素の状態を変化させる場合に、上記各イベントによる遷移アクションの実行までの待ち時間を上記処理待ち作成部が作成した処理待ちモデルに基づき計算する待ち時間計算部と、
上記処理時間計算部が計算した処理時間と、上記待ち時間計算部が計算した待ち時間とに基づき性能指標値を計算する性能指標値計算部と、
上記性能指標値計算部が計算した性能指標値に基づき、開発対象システムの性能を評価する性能評価部と
を備えることを特徴とする。
【発明の効果】
【０００５】
本発明に係る性能評価装置は、状態遷移に伴う処理時間に加えて処理輻輳や排他制御により発生する待ち時間を考慮する。そのため、性能評価結果の精度を高くすることができる。
【発明を実施するための最良の形態】
【０００６】
実施の形態１．
まず、後述する性能評価装置１の基礎となる性能評価装置１’について説明する。
図１は、基礎となる性能評価装置１’の機能ブロック図である。
図１に示す性能評価装置１’は、イベント列作成部１０、イベント列記憶部２０、性能評価モデル作成部３０、性能評価モデル記憶部４０、性能評価モデル実行部５０、計算値記憶部６０、性能指標値計算部７０、性能要求値作成部８０、性能要求値記憶部９０、性能評価部１００、性能評価結果記憶部１１０を備える。
【０００７】
イベント列作成部１０は、実運用で開発対象システムに入力されることを想定した複数のイベントを有するイベント列を処理装置により作成する。イベント列作成部１０は、例えば、入力装置により入力されたユーザからの指示に基づきイベント列を作成する。そして、イベント列記憶部２０は、イベント列作成部１０が作成したイベント列を記憶装置に記憶する。
【０００８】
性能評価モデル作成部３０は、開発対象システムの性能評価に利用する性能評価モデルを処理装置により作成する。性能評価モデル作成部３０は、例えば、入力装置により入力されたユーザからの指示に基づき性能評価モデルを作成する。そして、性能評価モデル記憶部４０は、性能評価モデル作成部３０が作成した性能評価モデルを記憶装置に記憶する。
性能評価モデル作成部３０は、状態遷移作成部３１、処理時間作成部３２を備える。また、性能評価モデル記憶部４０は、状態遷移モデル記憶部４１、処理時間記憶部４２を備える。
状態遷移作成部３１は、開発対象システムの動作仕様を表した状態遷移モデルを処理装置により作成する。そして、状態遷移モデル記憶部４１は、状態遷移作成部３１が作成した状態遷移モデルを記憶装置に記憶する。
処理時間作成部３２は、状態遷移モデルの遷移アクションの実行にかかる処理時間を作成する。そして、処理時間記憶部４２は、処理時間作成部３２が作成した処理時間を記憶装置に記憶する。
つまり、性能評価モデルは、状態遷移モデル、処理時間を備える。
【０００９】
性能評価モデル実行部５０は、状態遷移モデル実行部５１、処理時間計算部５２を備える。
状態遷移モデル実行部５１は、イベント列記憶部２０が記憶したイベント列を入力として、状態遷移モデル記憶部４１が記憶した状態遷移モデルを処理装置により実行する。つまり、状態遷移モデル実行部５１は、状態遷移モデルに基づき、入力イベントに対応する状態遷移を特定し、この状態遷移に関連付けられた遷移アクションを実行し、次状態に遷移させる。
処理時間計算部５２は、状態遷移モデル実行部５１での遷移アクションの実行にかかる処理時間を入力イベント毎に処理装置により積算して処理時間計算値を得る。そして、計算値記憶部６０は、処理時間計算部５２が積算して得た処理時間計算値を記憶装置に記憶する。
【００１０】
性能指標値計算部７０は、入力イベント毎に処理時間を積算した処理時間計算値を性能指標値とする。
性能要求値作成部８０は、開発対象システムが達成すべき性能の要求値である性能要求値を作成する。性能要求値作成部８０は、例えば、入力装置により入力されたユーザからの指示に基づき性能要求値を作成する。そして、性能要求値記憶部９０は、性能要求値作成部８０が作成した性能要求値を記憶装置に記憶する。
性能評価部１００は、性能要求値と性能指標値を比較して、要求を満たしているかどうか処理装置により評価し、その結果を性能評価結果として出力する。そして、性能評価結果記憶部１１０は、性能評価部１００が出力した性能評価結果を記憶装置に記憶する。
性能指標値が性能要求値を満たしていなければ、性能評価結果記憶部１１０が記憶した性能評価結果を基に、性能評価モデル作成部３０で状態遷移モデルや処理時間を修正して、以後繰り返し性能評価を実施する。
【００１１】
次に、性能評価装置１’の性能評価モデル作成部３０が作成する性能評価モデルの構成について説明する。図２は、性能評価装置１’の性能評価モデル作成部３０が作成する性能評価モデルの構成を示す図である。
性能評価モデル作成部３０は、開発対象システムの構成要素と、構成要素に関する各処理を実行するための実行環境（ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ミドルウェアなど）と、システム外部環境（接続機器、ネットワークなど）とを定義する。また、性能評価モデル作成部３０は、開発対象システムの各構成要素と、実行環境と、システム外部環境とに１つ以上のポートを定義し、これらのポートを通して開発対象システムの各構成要素と、実行環境と、システム外部環境とが互いにイベントをやり取りするように定義する。なお、システム外部環境は、複数定義してもよい。また、システム外部環境は、複数の機器やネットワークを抽象化して１つの状態遷移モデルで表現してもよい。
状態遷移作成部３１は、性能評価モデル作成部３０が定義した開発対象システムの各構成要素に、その振舞いを示す状態遷移モデルを規定する。
処理時間作成部３２は、性能評価モデル作成部３０が定義した開発対象システムの各構成要素に規定した状態遷移モデルに、その状態遷移モデルに入力イベントが発生した場合の処理時間を規定する。また、処理時間作成部３２は、実行環境に一定の処理時間（オーバーヘッド時間）を規定する。
【００１２】
次に、性能評価装置１’の状態遷移作成部３１が作成する状態遷移モデルについて説明する。図３は、性能評価装置１’の状態遷移作成部３１が開発対象システムの各構成要素に対して作成する状態遷移モデルの概念を示す図である。
状態遷移作成部３１は、状態遷移モデルを、状態、状態遷移、遷移アクション、処理時間を用いて表現して作成する。
図３に示す状態遷移モデルでは、構成要素の動作は開始状態（黒丸）から始まり、状態Ｓ１でイベントｅｖｔ１を受信すると、遷移アクションａｃｔ１を実行して、次状態Ｓ２へ遷移する。また、状態Ｓ２でイベントｅｖｔ２を受信すると、遷移アクションａｃｔ２を実行して、終了状態（二重黒丸）に遷移する。さらに、状態Ｓ２でイベントｅｖｔ３を受信すると、遷移アクションａｃｔ３を実行して、元の状態Ｓ２に遷移する。また、終了状態（二重黒丸）に遷移して、動作が停止するという情報を示す。
つまり、状態遷移モデルでは、開発対象システムの構成要素毎に、その構成要素のとり得る状態（Ｓ１，Ｓ２）と、イベントの発生により起こされる上記構成要素の状態の変化を示す状態遷移（各状態間の矢印）と、上記状態遷移が起こる場合に発生する上記構成要素の動作を示す遷移アクション（ａｃｔ１，ａｃｔ２，ａｃｔ３）とが規定されている。ここで、状態とは、開発対象システムの各構成要素、実行環境、システム外部環境のライフサイクル中のある期間を示す。
また、入力イベントが発生した場合に実行される遷移アクション毎に実行にかかる処理時間が規定されている。
【００１３】
次に、性能評価装置１’の性能評価処理の動作について説明する。図４は、性能指標値としてシステム応答時間を評価する場合の動作例を示す図である。
性能評価モデル実行部５０は、イベント列記憶部２０が記憶したイベント列を順に入力して、開発対象システムの各構成要素の振舞いを定義した状態遷移モデルを実行する。性能評価モデル実行部５０は、各イベントを構成要素間でやり取りする。つまり、状態遷移モデルにイベントが入力されると、性能評価モデル実行部５０は、ある構成要素（例えば、構成要素Ａ）にイベントを受信させ、これに対応した遷移アクションの実行にかかる処理時間を積算する。この遷移アクションには別の構成要素（例えば、構成要素Ｂ）へのイベント送信処理なども記述されている。性能評価モデル実行部５０は、イベント送信処理などの記述に従って別の構成要素（ここでは、構成要素Ｂ）にイベントを受信させ、同様に遷移アクションの実行にかかる処理時間を積算する。また、各遷移アクションの実行にかかる処理時間には、実行環境のオーバーヘッド時間を加える。
性能評価モデル実行部５０は、以上の動作を、イベントに対する応答イベントがシステム外部に出力されるまで実行する。そして、性能指標値計算部７０は、イベントが入力されてから応答イベントがシステム外部に出力されるまでの処理時間を積算したシステム応答時間を性能指標値とする。なお、開発対象システムに複数のイベントが入力された場合には、各イベントのシステム応答時間の平均値を性能指標値とする。なお、これに限らず、各イベントのシステム応答時間の中で最も遅いシステム応答時間を性能指標値としてもよいし、最も早いシステム応答時間を性能指標値としてもよい。
そして、性能評価部１００は、性能要求値作成部８０が作成した性能要求値と、性能指標値計算部７０が計算した性能指標値とを比較して、性能評価結果を作成する。
【００１４】
次に、上記性能評価装置１’を改良した性能評価装置１について説明する。性能評価装置１は、性能評価装置１’の性能評価方法に、さらに、システム稼動時に発生する待ち時間やシステムの外部環境等の状態に依存する処理時間（処理の遅れ）等を考慮することで、より正確に開発対象システムの性能を評価する。
図５は、性能評価装置１の機能ブロック図である。図５に示す性能評価装置１について、性能評価装置１’と異なる部分についてのみ説明する。
【００１５】
性能評価モデル作成部３０は、処理時間作成部３２を備えず、状態遷移作成部３１、処理負荷作成部３３、処理能力作成部３４、処理待ち作成部３５を備える。また、性能評価モデル記憶部４０は、処理時間記憶部４２を備えず、状態遷移モデル記憶部４１、処理負荷モデル記憶部４３、処理能力モデル記憶部４４、処理待ちモデル記憶部４５を備える。
状態遷移作成部３１は、開発対象システムの動作仕様を表した状態遷移モデルを処理装置により作成する。特に、状態遷移作成部３１は、開発対象システムの各構成要素だけでなく、実行環境とシステム外部環境とについての状態遷移モデルを作成する。そして、状態遷移モデル記憶部４１は、状態遷移作成部３１が作成した状態遷移モデルを記憶装置に記憶する。
処理負荷作成部３３は、状態遷移モデルにおける各遷移アクションの実行にかかる処理負荷の値を示す処理負荷モデルを処理装置により作成する。ここでは、処理負荷作成部３３は、実行環境とシステム外部環境との状態遷移モデルにおける遷移アクションの実行に係る処理負荷を示す処理負荷モデルも作成する。そして、処理負荷モデル記憶部４３は、処理負荷作成部３３が作成した処理負荷モデルを記憶装置に記憶する。処理負荷モデルとは、処理負荷の値を示す指標であり、詳しくは後述する。
処理能力作成部３４は、状態遷移モデルにおける遷移アクションを実行するプロセッサの処理能力の値を示す処理能力モデルを処理装置により作成する。ここでは、処理能力作成部３４は、実行環境とシステム外部環境との状態遷移モデルにおける遷移アクションを実行するプロセッサの処理能力の値を示す処理能力モデルを作成する。そして、処理能力モデル記憶部４４は処理能力作成部３４が作成した処理能力モデルを記憶装置に記憶する。処理能力モデルとは、処理能力の値を示す指標であり、詳しくは後述する。
処理待ち作成部３５は、状態遷移モデルにおける遷移アクションを実行するまで（実行している間）の待ち時間を計算するための処理待ちモデルを処理装置により作成する。ここでは、処理待ち作成部３５は、実行環境とシステム外部環境との状態遷移モデルにおける遷移アクションを実行するまでの待ち時間を計算するための処理待ちモデルを作成する。そして、処理待ちモデル記憶部４５は処理待ち作成部３５が作成した処理待ちモデルを記憶装置に記憶する。処理待ちモデルとは、待ち時間を計算するための指標（計算するための方法）を示すものであり、詳しくは後述する。
つまり、性能評価モデルは状態遷移モデル、処理負荷モデル、処理能力モデル、および処理待ちモデルを備える。
【００１６】
性能評価モデル実行部５０は、状態遷移モデル実行部５１、処理時間計算部５２、待ち時間計算部５３を備える。また、計算値記憶部６０は、処理時間計算値記憶部６１、待ち時間計算値記憶部６２を備える。
状態遷移モデル実行部５１は、性能評価装置１’の状態遷移モデル実行部５１と同様に、イベント列記憶部２０が記憶したイベントを入力として、状態遷移モデル記憶部４１が記憶した状態遷移モデルを処理装置により実行する。ここでは、実行環境やシステム外部環境にも状態遷移モデルが作成されているため、実行環境やシステム外部環境の状態遷移モデルついても実行する。
処理時間計算部５２は、状態遷移モデル実行部５１が開発対象システムの各構成要素の状態を変化させる場合に、各イベントにより発生する遷移アクションの実行にかかる処理時間を、処理負荷モデル記憶部４３が記憶した処理負荷モデルと、処理能力モデル記憶部４４が記憶した処理能力モデルとから処理装置により計算する。同様に、処理時間計算部５２は、状態遷移モデル実行部５１が実行環境とシステム外部環境との状態を変化させる場合に、各イベントにより発生する遷移アクションの実行にかかる処理時間を計算する。また、処理時間計算部５２は、計算した処理時間を処理装置により積算して処理時間計算値を得る。そして、処理時間計算値記憶部６１は、処理時間計算部５２が積算した処理時間計算値を記憶装置に記憶する。
待ち時間計算部５３は、状態遷移モデル実行部５１が開発対象システムの各構成要素の状態を変化させる場合に、各イベントによる遷移アクションの実行までの待ち時間を処理待ちモデル記憶部４５が記憶した処理待ちモデルに基づき処理装置により計算する。同様に、待ち時間計算部５３は、状態遷移モデル実行部５１が状態遷移モデル実行部５１が実行環境とシステム外部環境との状態を変化させる場合に、各イベントによる遷移アクションの実行までの待ち時間を計算する。また、待ち時間計算部５３は、計算した待ち時間を処理装置により積算して待ち時間計算値を得る。待ち時間計算値記憶部６２は、待ち時間計算部５３が積算した待ち時間計算値を記憶装置に記憶する。
【００１７】
性能指標値計算部７０は、処理時間計算値記憶部６１が記憶した処理時間計算値と、待ち時間計算値記憶部６２が記憶した待ち時間計算値とに基づき性能指標値を処理装置により計算する。性能指標値計算部７０は、例えば、処理時間計算値と待ち時間計算値との和を性能指標値とする。なお、処理時間と待ち時間とそれぞれをそのまま性能評価値としてもよい。処理時間と待ち時間とそれぞれをそのまま性能評価値とする場合、性能要求値作成部８０も同様に、処理時間と待ち時間とのそれぞれの性能要求値を作成する。そして、性能評価部１００は、処理時間と待ち時間とのそれぞれについての性能を評価する。
【００１８】
次に、性能評価装置１の性能評価モデル作成部３０が作成する性能評価モデルの構成について説明する。図６は、性能評価装置１の性能評価モデル作成部３０が作成する性能評価モデルの構成を示す図である。
性能評価モデル作成部３０は、開発対象システムの各構成要素と、実行環境と、システム外部環境とを定義する。また、性能評価モデル作成部３０は、開発対象システムの各構成要素と、実行環境と、システム外部環境とに入力イベントを格納しておく１つ以上のイベントキューおよび１つ以上のポートを定義し、このイベントキューおよびポートを通してお互いにイベントをやり取りするように定義する。つまり、開発対象システムの各構成要素と、実行環境と、システム外部環境とには、ポートだけでなく、イベントが格納されるイベントキューが定義される。
状態遷移作成部３１は、性能評価モデル作成部３０が定義した開発対象システムの各構成要素と、実行環境と、システム外部環境とに、その振舞いを示す状態遷移モデルを定義する。つまり、状態遷移作成部３１は、開発対象システムの各構成要素の状態遷移モデルだけでなく、実行環境と、システム外部環境との状態遷移モデルを規定する。
処理負荷作成部３３、処理能力作成部３４、処理待ち作成部３５は、性能評価モデル作成部３０が定義した開発対象システムの各構成要素と、実行環境と、システム外部環境との状態遷移モデルに、処理負荷モデル、処理能力モデル、処理待ちモデルを規定する。
【００１９】
次に、性能評価装置１の状態遷移作成部３１が作成する状態遷移モデルについて説明する。図７は、性能評価装置１の状態遷移作成部３１が開発対象システムの各構成要素、実行環境、システム外部環境に対して作成する状態遷移モデルの概念を示す図である。
状態遷移作成部３１は、状態遷移モデルを、状態、状態遷移、遷移アクション、処理負荷、処理能力、処理待ちとを用いて表現して作成する。
図７に示す状態遷移モデルでは、構成要素、実行環境、システム外部環境の動作は開始状態（黒丸）から始まり、状態Ｓ１でイベントｅｖｔ１を受信すると、遷移アクションａｃｔ１を実行して、次状態Ｓ２へ遷移する。また、状態Ｓ２でイベントｅｖｔ２を受信すると、遷移アクションａｃｔ２を実行して、次状態Ｓ３へ遷移する。さらに、状態Ｓ２でイベントｅｖｔ３を受信すると、遷移アクションａｃｔ３を実行して、元の状態Ｓ２に遷移する。また、状態Ｓ３でイベントｅｖｔ４を受信すると、遷移アクションａｃｔ４を実行して、終了状態（二重黒丸）に遷移する。さらに、状態Ｓ３でイベントｅｖｔ５を受信すると、遷移アクションａｃｔ５を実行して、元の状態Ｓ３に遷移する。また、終了状態（二重黒丸）に遷移して、動作が停止するという情報を示す。つまり、状態遷移モデルでは、開発対象システムの各構成要素、実行環境、システム外部環境に対して、その構成要素のとり得る状態（Ｓ１，Ｓ２，Ｓ３）と、イベントの発生により起こされる上記構成要素の状態の変化を示す状態遷移（各状態間の矢印）と、上記状態遷移が起こる場合に発生する上記構成要素の動作を示す遷移アクション（ａｃｔ１，２，３，４，５）とが規定されている。
また、入力イベントが発生した場合に実行される遷移アクション毎に実行にかかる処理負荷モデル（処理負荷１，２，３，４，５）が規定されている。さらに、１つの状態遷移モデルの中での共通特性として、処理能力モデルと処理待ちモデルとが規定されている。つまり、各構成要素、実行環境、システム外部環境について、各々１つの処理能力モデルと処理待ちモデルとが規定されている。
処理負荷モデルが示す処理負荷は、遷移アクションを実行する際の論理的な処理負荷を示す。また、処理能力モデルが示す処理能力は、遷移アクションを実行するプロセッサの物理的な処理能力を示す。また、処理待ちモデルはイベントキューの中で待たされているイベントの処理待ちの算出方法を示す。
ここで、開発対象システムの性能は処理時間と待ち時間で表すことができる。処理時間は、開発対象システムの各構成要素、実行環境、システム外部環境での処理負荷の値と処理能力の値とに基づき計算できる。また、待ち時間は、システムに高い負荷がかかることで発生する処理輻輳の時間や、複数の処理が同時に実行されることで発生する排他制御の時間に基づき計算できる。つまり、待ち時間は、開発対象システムの各構成要素、実行環境、システム外部環境の処理待ちモデルと処理時間とから計算できる。
特に、性能評価装置１では、各構成要素における処理時間や待ち時間だけでなく、実行環境やシステム外部環境における処理時間や待ち時間も考慮され、各イベントに対する処理時間や待ち時間が計算される。
【００２０】
次に、性能評価装置１の性能評価処理の動作について説明する。図８は、性能指標値としてシステム応答時間を評価する場合の動作例を示す図である。
性能評価モデル実行部５０は、イベント列記憶部２０が記憶したイベント列を順に入力して、開発対象システムの各構成要素の振舞いを定義した状態遷移モデルを実行する。性能評価モデル実行部５０は、各イベントを構成要素間でやり取りする。つまり、状態遷移モデルにイベントが入力されると、性能評価モデル実行部５０は、ある構成要素（例えば、構成要素Ａ）にイベントを受信させ、これに対応した遷移アクションの実行にかかる処理時間を積算する。処理時間は、処理負荷モデルが示す処理負荷の値と処理能力モデルが示す処理能力の値とから計算できる。また、イベントを受信した時点でイベントキューに入っている全てのイベントについて、処理待ちモデルから受信したイベントが実行されるまでの待ち時間を計算して積算する。
また、この遷移アクションには別の構成要素へのイベント送信処理なども記述されている。性能評価モデル実行部５０は、イベント送信処理などの記述に従って別の構成要素（例えば、構成要素Ｂ）にイベントを受信させ、同様に遷移アクションの実行にかかる処理時間と待ち時間とを積算する。
この処理時間と待ち時間との計算には、実行環境とシステム外部環境の処理負荷、処理能力、待ち時間も考慮され、計算される。つまり、実行環境やシステム外部環境へもイベントが送信され、実行環境やシステム外部環境における処理時間や待ち時間も計算される。つまり、実行環境やシステム外部環境に処理負荷がかかり処理時間がかかれば、その処理時間が加算され、実行環境やシステム外部環境において処理待ちが発生すれば、その待ち時間が加算される。
性能評価モデル実行部５０は、以上の動作を、イベントに対する応答イベントがシステム外部に出力されるまで実行する。そして、性能指標値計算部７０は、処理時間を積算したシステム応答時間を性能指標値とする。なお、開発対象システムに複数のイベントが入力された場合には、各イベントのシステム応答時間の平均値を性能指標値とする。なお、これに限らず、各イベントのシステム応答時間の中で最も遅いシステム応答時間を性能指標値としてもよいし、最も早いシステム応答時間を性能指標値としてもよい。
そして、性能評価部１００は、性能要求値作成部８０が作成した性能要求値と、性能指標値計算部７０が計算した性能指標値とを比較して、性能評価結果を作成する。
【００２１】
図９は、状態遷移モデルにおけるイベントの処理の流れを示す概念図である。図９では、各構成要素、実行環境、システム外部環境のイベントキューを示す。なお、ここでは、イベントは、初めに入力されたものから処理されるもの（ＦＩＦＯ）とする。
図９に示すように、イベント列作成部１０が作成したイベント列は、例えば、全て初めに実行環境のイベントキューへ入力される（１）。ここで、入力されるタイミングは、イベント列が有するイベント毎に定められている。例えば、イベント列が投入されてから、イベント１（ｅｖｔ１）は０ミリ秒後、イベント３（ｅｖｔ３）は１ミリ秒後、イベント２（ｅｖｔ２）は２ミリ秒後、イベント５（ｅｖｔ５）は７ミリ秒後、イベント４（ｅｖｔ４）は１０ミリ秒後にそれぞれ入力されるとする。ここで、図９は、イベント列が入力されてから５ミリ秒経過した時点を示すとする。つまり、イベント１、イベント３、イベント２が既に入力されている。
そして、初めに入力されたイベント１についての実行環境における遷移アクションが実行され、イベント１が構成要素１へ送信され、構成要素１のイベントキューにイベント１が入力されている（２）。ここで、イベント１についての実行環境における遷移アクションの実行に、４ミリ秒かかったとする。イベント３は、入力されてから、イベント１についての遷移アクションが終わるまでが待ち時間となるため、図１０（ａ）に示すように待ち時間は３ミリ秒である。待ち時間経過後、イベント３についての実行環境における遷移アクションが実行される。ここで、イベント３についての実行環境における遷移アクションの実行に、３ミリ秒かかるとする。イベント２は、入力されてから、イベント３についての遷移アクションが終わるまでが待ち時間となるため、図１０（ｂ）に示すように待ち時間は５ミリ秒である。
一方、イベント列投入から４ミリ秒後には、イベント１についての構成要素１における遷移アクションも実行されている。ここで、イベント１についての構成要素１における遷移アクションの実行に２ミリ秒かかるとする。つまり、イベント列投入から、６ミリ秒後（実行環境における遷移アクションの実行４ミリ秒＋構成要素１における遷移アクションの実行２ミリ秒後）に、イベント１についての構成要素１における遷移アクションが終了する。そして、イベント１は次の構成要素へ送信される。ここでは、原則として、各イベントは一旦実行環境へ送られてから、次の構成要素へ送られるものとする（３）（４）（５）。イベント列投入から６ミリ秒後には、イベント５は入力されていないため、実行環境のイベントキューにはイベント１が、イベント５よりも前に入力される。そして、イベント列投入から７ミリ秒後に、イベント５が実行環境のイベントキューに入力される。
イベント列の全てのイベントについての処理が終了するまで、以上の動作が行われ、イベント毎に処理時間と待ち時間とがカウントされる。
なお、システム外部環境へイベントが送信される場合も、上記と同様に、各イベントは一旦実行環境へ送られてから、システム外部環境へ送られる。
【００２２】
以上のように、各イベントは、遷移アクションの終了時刻になると、次のイベントキューに入力され、待ち行列に入る。
また、イベントキューにおけるイベントの待ち時間は、イベントキューで待っている全イベントの遷移アクションの処理時間の合計から、現在実行しているイベントについての遷移アクションの開始時刻とそのイベントがイベントキューへ入力された時刻の時差をマイナスした時間である。つまり、図１０（ｂ）に示すイベント２の待ち時間は、イベントキューで待っている全イベント（イベント１、イベント３）の遷移アクションの処理時間の合計（４ミリ秒＋３ミリ秒＝７ミリ秒）から、現在実行しているイベント（イベント１）についての遷移アクションの開始時刻（イベント列投入から０ミリ秒後）とそのイベント（イベント２）がイベントキューへ入力された時刻（イベント列投入から２ミリ秒後）の時差（２ミリ秒）をマイナスした時間（７ミリ秒−２ミリ秒＝５ミリ秒）である。
【００２３】
次に、性能評価装置１の性能評価処理の動作について説明する。図１１は、性能評価装置１の性能評価処理の動作を示すフローチャートである。
（Ｓ１０１）：イベント列作成部１０はイベント列を作成し、イベント列記憶部２０はイベント列作成部１０が作成したイベント列を記憶する。性能評価モデル実行部５０は、イベント列作成部１０が作成したイベント列をイベント列記憶部２０から取得する。
（Ｓ１０２）：性能評価モデル作成部３０は性能評価モデルを作成し、性能評価モデル記憶部４０は性能評価モデル作成部３０が作成した性能評価モデルを記憶する。性能評価モデル実行部５０は、性能評価モデル作成部３０が作成した性能評価モデルを性能評価モデル記憶部４０から取得する。
（Ｓ１０３）：性能評価モデル実行部５０の状態遷移モデル実行部５１は、いずれかのイベントキューにイベントがあるか、又は入力されていないイベントがイベント列にあるか否かを判断する。イベントキューにイベントがある又は入力されていないイベントがイベント列にあると判断した場合（Ｓ１０３でＹｅｓ）、状態遷移モデル実行部５１は（Ｓ１０４）へ進む。一方、イベントキューにイベントがなく、入力されていないイベントがイベント列にないと判断した場合（Ｓ１０３でＮｏ）、つまり、全てのイベントについての処理が完了して読み出すイベントがなくなった場合、状態遷移モデル実行部５１は（Ｓ１０８）へ進む。
（Ｓ１０４）：イベントがあると判断した場合（Ｓ１０３でＹｅｓ）、状態遷移モデル実行部５１は、各イベントキューの先頭のイベントを読み出し、読み出ししたイベントに対応する状態遷移を特定する。
（Ｓ１０５）：処理時間計算部５２は、（Ｓ１０４）で状態遷移モデル実行部５１が特定した状態遷移に関連付けられた遷移アクションの処理時間を、状態遷移モデルに規定された処理負荷モデルと処理能力モデルとから計算する。そして、処理時間計算部５２は、そのイベントについての処理時間を積算した処理時間計算値に、計算した処理時間を加え新たな処理時間計算値を求める。処理時間計算値記憶部６１は処理時間計算部５２が計算した処理時間計算値を記憶する。
（Ｓ１０６）：待ち時間計算部５３は、イベントキューの中で待たされているイベントの待ち時間を、状態遷移モデルに規定された処理待ちモデルから計算する。そして、待ち時間計算部５３は、そのイベントについての待ち時間を積算した待ち時間計算値に、計算した待ち時間を加え新たな待ち時間計算値を求める。待ち時間計算値記憶部６２は待ち時間計算部５３が計算した待ち時間計算値を記憶する。
（Ｓ１０７）：状態遷移モデル実行部５１は、遷移アクションの記述に従って、他の構成要素へのイベント送信処理などがあれば、そのイベント送信処理を実行する。このとき発生したイベントは、送信された先の構成要素のイベントキューに所定の時刻に追加され、状態遷移モデル実行部５１でのイベント読み出し処理の対象となる。そして、（Ｓ１０３）へ戻る。
（Ｓ１０８）：イベントがないと判断した場合（Ｓ１０３でＮｏ）性能指標値計算部７０は、処理時間と待ち時間の計算結果を集計して性能指標値を計算する。
（Ｓ１０９）：性能評価部１００は、予め性能要求値作成部８０が作成して、性能要求値記憶部９０が記憶していた性能要求値と、性能指標値を比較して、開発対象システムが性能要求を満たしているか評価して、性能評価結果を作成する。性能評価結果記憶部１１０は、性能評価部１００が作成した性能評価結果を記憶する。また、性能評価部１００は、開発対象システムが性能要求を満たしているか判断する。開発対象システムが性能要求を満たしていると判断した場合（Ｓ１０９でＹｅｓ）、処理を終了する。一方、開発対象システムが性能要求を満たしていないと判断した場合（Ｓ１０９でＮｏ）、（Ｓ１１０）へ進む。
（Ｓ１１０）：性能評価モデル実行部５０は、イベント列作成部１０が（Ｓ１０１）で作成したイベント列をイベント列記憶部２０から取得する。そして、性能評価モデル実行部５０は、（Ｓ１０２）へ戻り改めて性能評価モデルを作成して性能評価を行う。
【００２４】
以上のように、性能評価装置１によれば、処理輻輳や排他制御により発生する待ち時間を計算して性能を評価する。特に、開発対象システムの構成要素だけでなく、実行環境やシステム外部環境における処理時間や待ち時間も考慮して性能を評価する。これにより、システムに高い負荷がかかる場合や複数の処理が同時に実行される場合の性能評価結果の精度を高くする効果が得られる。
また、性能評価装置１によれば、状態遷移に伴う処理負荷と処理能力を組み合わせて処理時間を計算して性能を評価する。特に、開発対象システムの構成要素だけでなく、実行環境やシステム外部環境における処理負荷と処理能力を組み合わせて処理時間を計算して性能を評価する。これにより、多種多様なプロセッサから構成されるシステムの性能評価結果の精度を高くする効果が得られる。
さらに、性能評価装置１では、構成要素、実行環境、およびシステム外部環境の状態に依存する処理負荷、処理能力および処理待ちを形式的に記述する。これにより、システム設計の厳密性が上がり、不具合混入を防止する効果が得られる。
また、さらに、性能評価装置１では、開発対象システムの仕様を定義する状態遷移モデルを直接実行することで、ソフトウェアやハードウェアの性能評価を実施する。これにより、システム試験での性能チューニングや不具合改修の手戻り作業を抑止する効果が得られる。
【００２５】
実施の形態２．
この実施の形態では、上記イベント列作成部１０によるイベント列の作成処理ついて説明する。
【００２６】
まず、イベント列について説明する。図１２は、イベント列の一例を示す図である。
イベント列は、１つ、又は複数のイベントから構成される。イベントは、起こす状態遷移を特定可能なイベント種別、イベントの発生する順序を示す入力順序、イベントの発生する時刻を示す入力時刻を有する。図１２では、入力時刻をある時刻（ここでは、１番目に入力されるイベントの入力時点）からの相対的な時間で記述したが、絶対的な時刻で記述してもよい。
【００２７】
次に、イベント列の作成処理について説明する。イベント列の作成処理は、以下の２つの方法がある。
１つ目の方法は、システム稼動実績や開発者等の経験から、評価実施前にイベント列を確定的に作成する方法である。つまり、例えば、同様のシステムが過去に稼動している場合や、システム化しようとする業務が手作業により行われている場合に、これらの稼動実績をイベント列作成部１０へ入力して、イベント列を作成する。すなわち、イベント列作成部１０は、過去に稼動していたシステムや手作業により行われていた処理を、開発対象システムの動作（イベント）に置き換えて、イベント列を生成する。例えば、過去に稼動していたシステムや手作業により行われていた処理と、開発対象システムの動作（イベント）との対応関係を示す情報を作成しておくことで、イベント列作成部１０はイベント列を作成することができる。
２つ目の方法は、例えば、システム稼動実績が乏しい場合や、今後のシステム稼動状況を予測しづらい場合等に用いる方法であり、指数分布などの確率分布を用いて、評価実施時にイベント列を作成する方法である。例えば、イベント種別をランダムに発生させ、各イベントの入力時間の間隔を、確率分布を用いて計算するとしてもよい。
また、上記１つ目の方法と２つ目の方法とを組み合わせてイベント列を作成してもよい。
【００２８】
以上のようにイベント列を作成することにより、開発対象システムに適したイベント列を作成することが可能となり、正確な性能評価をすることができる。
【００２９】
実施の形態３．
この実施の形態では、処理負荷モデルと処理能力モデルとについて説明する。
【００３０】
まず、処理負荷モデルについて説明する。図１３は、処理負荷モデルの一例を示す図である。
処理負荷モデルでは、遷移アクション毎に、その遷移アクションを構成する命令数、数値演算数、ＯＳシステムコール数、ミドルウェアＡＰＩ数、またはこれらの組み合わせで処理負荷の値を表す。
命令数は、遷移アクションの処理量から換算したプロセッサの命令数である。
数値演算数は、遷移アクションの処理量から換算した整数演算数または浮動小数点演算数である。
ＯＳシステムコール数は、遷移アクションの中で利用する、ＯＳが提供するシステムコール（ソケットＡＰＩなど）の回数である。
ミドルウェアＡＰＩ数は、遷移アクションの中で利用する、ミドルウェアが提供するＡＰＩ（データベースＡＰＩなど）の回数である。
図１３に示す処理負荷モデルでは、ａｃｔ１の処理負荷を浮動小数点演算回数で表し、ａｃｔ２の処理負荷をソケットＡＰＩ数で表し、ａｃｔ３の処理負荷を浮動小数点演算回数とデータベースＡＰＩ数との組み合わせで表している。
【００３１】
次に、処理能力モデルについて説明する。図１４は、処理能力モデルの一例を示す図である。
処理能力モデルでは、命令処理速度、数値演算処理速度、ＯＳシステムコール処理速度、ミドルウェアＡＰＩ処理速度、またはこれらの組み合わせで処理能力の値を表す。
命令処理速度は、プロセッサが単位時間に処理可能な命令数（ＭＩＰＳなど）である。
数値演算処理速度は、プロセッサが単位時間に処理可能な整数演算数または浮動小数点演算数（ＭＦＬＯＰＳなど）である。
ＯＳシステムコール処理速度は、プロセッサが単位時間に処理可能なＯＳシステムコールの処理速度（ソケットＡＰＩの帯域（ｂｐｓ）など）である。
ミドルウェアＡＰＩ処理速度は、プロセッサが単位時間に処理可能なミドルウェアＡＰＩの処理速度（データベースＡＰＩの帯域（トランザクション数／秒）など）である。
図１４に示す処理能力モデルでは、プロセッサ１の処理能力を浮動小数点演算数（ＭＦＬＯＰＳ）で表した。また、プロセッサ２の処理能力を、ＯＳシステムコール処理速度の例であるソケットＡＰＩ帯域で表した。さらに、プロセッサ３の処理能力を、浮動小数点演算数（ＭＦＬＯＰＳ）と、ミドルウェアＡＰＩ処理速度の例であるデータベースＡＰＩ帯域との組み合わせで表した。
【００３２】
次に、処理能力モデルの作成処理について説明する。処理能力モデルの作成処理は、以下の２つの方法がある。
１つ目の方法は、開発対象システムに使用するプロセッサの仕様諸元から、評価実施前に処理能力モデルを確定的に作成する方法である。つまり、例えば、開発対象システムに使用するプロセッサが決定している場合等に、これらの仕様諸元を処理能力作成部３４へ入力して、処理能力モデルを作成する。
２つ目の方法は、例えば、開発対象システムに使用するプロセッサが決定していない場合や、使用するプロセッサが決定していても、プロセッサ内部の動作仕様が複雑なため、その処理性能を予測しづらい場合等に用いる方法であり、指数分布などの確率分布を用いて、評価実施時に処理能力モデルを作成する方法である。
また、上記１つ目の方法と２つ目の方法とを組み合わせて処理能力モデルを作成してもよい。
【００３３】
次に、処理負荷モデルが示す処理負荷と、処理能力モデルが示す処理能力とから処理時間計算部５２が処理時間を算出する方法について説明する。
処理時間計算部５２は、遷移アクションの処理時間計算の処理で、遷移アクションの処理負荷の値を分子、処理能力の値を分母とした比率から処理時間を計算する。そして、入力イベント毎に処理時間を積算する。
例えば、ある入力イベントに対応する遷移アクションの処理負荷の値を浮動小数点演算１０００回、プロセッサの処理能力の値を１００ＭＦＬＯＰＳとする。処理時間計算部５２は、この遷移アクションの実行にかかる処理時間を１０００／１００Ｍ＝１０マイクロ秒と計算する。
他の例として、ある入力イベントに対応する遷移アクションの処理負荷の値を浮動小数点演算１０００回とデータベースＡＰＩ１０回の組み合わせ、処理能力の値を１００ＭＦＬＯＰＳとデータベースＡＰＩ帯域１００ｋトランザクション／秒とする。処理時間計算部５２は、この遷移アクションの実行にかかる処理時間を１０００／１００Ｍ＋１０／１００ｋ＝１１０マイクロ秒と計算する。
【００３４】
以上のように、処理負荷モデルと処理能力モデルとを作成することにより、開発対象システムに即した処理負荷の値と処理能力の値とを作成することが可能となり、正確な性能評価をすることができる。
【００３５】
実施の形態４．
この実施の形態では、処理待ちモデルについて説明する。
【００３６】
図１５は、処理待ちモデルの一例を示す図である。
処理待ちモデルでは、入力イベントを格納するイベントキューのキュー本数、入力イベントをキューから取り出す規則であるサービス規律の組で待ち時間の算出方法を表す。
キュー本数は、状態遷移モデルが受信する入力イベントを格納するイベントキューの数である。
サービス規律は、状態遷移モデルが処理対象の入力イベントをイベントキューから取り出すときの規則（ＦＩＦＯ、完全優先など）である。
図１５に示す処理待ちモデルでは、構成要素１をＦＩＦＯで、構成要素２を完全優先で表した。
【００３７】
次に、処理待ちモデルに基づき待ち時間計算部５３が待ち時間を計算する方法について説明する。
待ち時間計算部５３は、イベントキュー内の待ち時間計算の処理において、遷移アクションの処理時間計算の処理で求めた処理時間と状態遷移モデルに記述した処理待ちモデルから待ち時間を計算して、入力イベント毎に積算する。
例えば、図１０に基づき説明した例では、キュー本数を１本、サービス規律をＦＩＦＯとする処理待ちモデルに基づき待ち時間を計算した。しかし、これに限らず、キュー本数を複数本として、サービス規律で、各イベントキューからイベントを取り出すルールを定めるとしてもよい。そして、このルールに基づき、待ち時間を計算する対象のイベントの前に実行されるイベントを求め、求まったイベントの処理時間から、図１０に基づき説明した例と同様に、待ち時間を計算するとしてもよい。
【００３８】
また、状態遷移モデルが受信する入力イベントを格納する各イベントキューの大きさを示すキューサイズを処理待ちモデルとして定義してもよい。この場合、待ち時間計算部５３は、各イベントキューにおいて、キューサイズを超える数のイベントがイベントキューに入力されることがあったか否かを検出するとしてもよい。つまり、キューサイズを超える数のイベントがイベントキューに入力されたか否かを性能評価値としてもよい。
【００３９】
以上のように、待ち時間を算出するための処理待ちモデルを、開発対象システムで採用される方法により表すことで、開発対象システムに即した正確な性能評価をすることができる。
【００４０】
実施の形態５．
この実施の形態では、性能指標値と性能評価方法とについて説明する。
【００４１】
まず、性能指標値について説明する。図１６は、性能指標値を示す模式図である。
実施の形態１では、性能指標値としてシステム応答時間を用いる例を説明した。システム応答時間とは、実施の形態１で述べたように、開発対象システムに入力されたイベントに対する応答が出力されるまでの平均時間（あるいは、各イベントのシステム応答時間の中で最も遅い／早いシステム応答時間）である。つまり、図１６では、イベント１（Ｅ１）のシステム応答時間はｒｊである。そして、各イベントのシステム応答時間の平均時間が性能指標値である。つまり、システム応答時間の平均値で性能指標値を示すと以下の（式１）のように表すことができる。
システム応答時間Ｒ＝Σｒｊ／Ｍ（ｊ＝１からＭまで）（式１）
ｒｊ：ある入力イベントに対する応答時間
Ｍ：一回の評価での入力イベント数
【００４２】
また、性能指標値として、システム応答時間ではなく、システムスループットを用いてもよい。システムスループットとは、単位時間当たりに開発対象システムが処理する平均イベント数である。図１６では、ｘｔを単位時間とすると、システムスループットは５である。図１６では、１単位時間分のみを示しているが、実際には複数単位時間のシステムスループットの平均値を性能指標値とする。システム応答時間と同様に、複数単位時間のシステムスループットの最小値又は最大値を性能評価値としてもよい。システムスループットの平均値で性能指標値を示すと以下の（式２）のように表すことができる。
システムスループットＸ＝Σｘｔ／Ｔ（ｔ＝１〜Ｔ）（式２）
ｘｔ：ある単位時間区間のイベント処理数
Ｔ：１回の評価の実行時間（単位時間区間の個数）
【００４３】
次に、性能評価方法について説明する。
性能評価部１００は、例えば、性能指標値を分子、性能要求値を分母とした比率である要求達成度を計算する。つまり、要求達成度は以下の（式３）のように表すことができる。
要求達成度＝（性能要求値／性能指標値）×１００［％］（式３）
また、システム応答時間で性能指標値を表した場合の要求達成度を以下の（式４）のように表すことができる。
システム応答時間の要求達成度＝（システム応答時間要求値／システム応答時間）×１００［％］（式４）
さらに、システムスループットで性能指標値を表した場合の要求達成度を以下の（式５）のように表すことができる。
システムスループットの要求達成度＝（システムスループット／システムスループット要求値）×１００［％］（式５）
例えば、システム応答時間で性能指標値を表した場合、システム応答時間の指標値を９．８ミリ秒、要求値を１０ミリ秒とすると、システム応答時間の要求達成度を１０ミリ秒／９．８ミリ秒×１００＝１０２％となる。
【００４４】
以上のように、性能評価値及び要求達成度を算出することにより、正確な性能評価をすることができる。
【００４５】
実施の形態６．
この実施の形態では、状態遷移モデルの各状態に入るときに実行されるＥｎｔｒｙアクション、および各状態から出るときに実行されるＥｘｉｔアクションを遷移アクションに変換して性能評価を実施する例について説明する。
【００４６】
図１７は、ＥｎｔｒｙアクションおよびＥｘｉｔアクションの変換の例を示す図である。
Ｅｎｔｒｙアクションは、Ｅｎｔｒｙアクションが記述されている状態に入ってくる全ての状態遷移に共通の処理である。そのため、その状態に入ってくる全ての状態遷移の遷移アクションに引き続きＥｎｔｒｙアクションを実行するように遷移アクションを変換する。
Ｅｘｉｔアクションは、Ｅｘｉｔアクションが記述されている状態から出て行く全ての状態遷移に共通の処理である。そのため、その状態から出て行く全ての状態遷移の遷移アクションに引き続きＥｘｉｔアクションを実行するように遷移アクションを変換する。
【００４７】
図１７において、状態（Ｓ２）には、Ｅｎｔｒｙアクション（ａｃｔ２１）と、Ｅｘｉｔアクション（ａｃｔ２２）が設定されている。つまり、状態（Ｓ２）に入ってくる場合には、Ｅｎｔｒｙアクション（ａｃｔ２１）が実行され、状態（Ｓ２）から出て行く場合には、Ｅｘｉｔアクション（ａｃｔ２２）が実行される。
すなわち、状態（Ｓ２）へ入る遷移アクション（ａｃｔ１）を発生させるイベント（ｅｖｔ１）が実行された場合には、遷移アクション（ａｃｔ１）に続きＥｎｔｒｙアクション（ａｃｔ２１）が実行されるように変換する。同様に、状態（Ｓ２）へ入る遷移アクション（ａｃｔ４）を発生させるイベント（ｅｖｔ４）が実行された場合には、遷移アクション（ａｃｔ４）に続きＥｎｔｒｙアクション（ａｃｔ２１）とが実行されるように変換する。
一方、状態（Ｓ２）から出て行く遷移アクション（ａｃｔ２）を発生させるイベント（ｅｖｔ２）が実行された場合には、遷移アクション（ａｃｔ２）に続きＥｘｉｔアクション（ａｃｔ２２）が実行されるように変換する。同様に、状態（Ｓ２）から出て行く遷移アクション（ａｃｔ３）を発生させるイベント（ｅｖｔ３）が実行された場合には、遷移アクション（ａｃｔ３）に続きＥｘｉｔアクション（ａｃｔ２２）が実行されるように変換する。
【００４８】
以上のように変換することで、開発対象システムの動作仕様を定義する状態遷移モデルに、ＥｎｔｒｙアクションおよびＥｘｉｔアクションが記述されている場合でも、上記実施の形態で説明した性能評価装置１を用いて性能を評価することが可能となる。
【００４９】
以上をまとめると性能評価装置１は、開発対象システムの性能が要求を満たしているか評価する性能評価装置１であり、
開発対象システムに入力されることを想定したイベント列を作成する手段と、
開発対象システムの動作仕様を定義する状態遷移モデルを作成する手段と、
状態遷移モデルの遷移アクションの実行にかかる処理負荷を記述する手段と、
状態遷移モデルの遷移アクションを実行するプロセッサの処理能力を記述する手段と、
状態遷移モデルの遷移アクションを実行している間に発生する処理待ちを記述する手段と、
イベントの入力により状態遷移モデルを実行する手段と、
遷移アクションの実行にかかる処理時間を処理負荷と処理能力から計算して入力イベント毎に積算する手段と、
イベントキューの中で待たされているイベントの待ち時間を処理待ちから計算して入力イベント毎に積算する手段と、
処理時間を積算した結果と待ち時間を積算した結果から性能指標値を計算する手段と、
開発対象システムが達成すべき性能の要求値を作成する手段と、
開発対象システムが性能の要求を満たしているか評価する手段と、
を備えることを特徴とする。
【００５０】
また、性能評価装置１は、開発対象システムに入力されることを想定したイベント列を、評価実施前に確定的に作成したり、または評価実施時に確率分布を用いて作成したりすることを特徴とする。
【００５１】
さらに、性能評価装置１は、状態遷移モデルの遷移アクションの実行にかかる処理負荷を、遷移アクションを構成する命令数、数値演算数、ＯＳシステムコール数、ミドルウェアＡＰＩ数、またはこれらの組み合わせで記述することを特徴とする。
【００５２】
また、さらに、性能評価装置１は、状態遷移モデルの遷移アクションを実行するプロセッサの処理能力を、命令処理速度、数値演算処理速度、ＯＳシステムコール処理速度、ミドルウェアＡＰＩ処理速度、またはこれらの組み合わせで記述することを特徴とする。
【００５３】
また、性能評価装置１は、状態遷移モデルの遷移アクションを実行するプロセッサの処理能力を、評価実施前に確定的に記述したり、または評価実施時に確率分布を基に指定したりすることを特徴とする。
【００５４】
さらに、性能評価装置１は、状態遷移モデルの遷移アクションを実行している間に発生する処理待ちを、入力イベントを格納するイベントキューのキュー本数、キューサイズ、および入力イベントをキューから取り出す規則であるサービス規律の組で記述することを特徴とする。
【００５５】
また、さらに、性能評価装置１は、遷移アクションの実行にかかる処理時間を、処理負荷を分子、処理能力を分母とした比率から計算して、入力イベント毎に積算することを特徴とする。
【００５６】
また、性能評価装置１は、イベントキューの中で待たされているイベントの待ち時間を、遷移アクションの実行にかかる処理時間と処理待ちから計算して、入力イベント毎に積算することを特徴とする。
【００５７】
さらに、性能評価装置１は、性能指標値として、システム応答時間とシステムスループットを計算することを特徴とする。
【００５８】
また、さらに、性能評価装置１は、開発対象システムが性能の要求を満たしているか評価する方法として、性能指標値を分母、性能要求値を分子とした比率である要求達成度を計算することを特徴とする。
【００５９】
また、性能評価装置１において、状態遷移モデルの各状態に入るときに実行されるＥｎｔｒｙアクション、および各状態から出るときに実行されるＥｘｉｔアクションを遷移アクションに変換して、性能評価を実施することを特徴とする。
【００６０】
次に、上記実施の形態における性能評価装置１のハードウェア構成について説明する。
図１８は、性能評価装置１のハードウェア構成の一例を示す図である。
図１８に示すように、性能評価装置１は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９０１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、キーボード９０２、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
【００６１】
ＲＯＭ９１３、磁気ディスク装置９２０は、不揮発性メモリの一例である。ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３とＲＡＭ９１４と磁気ディスク装置９２０とは、記憶装置の一例である。通信ボード９１５とキーボード９０２とは、入力装置の一例である。また、通信ボード９１５は、出力装置の一例である。さらに、通信ボード９１５は、通信装置の一例である。また、さらに、ＬＣＤ９０１は、表示装置の一例である。
【００６２】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００６３】
プログラム群９２３には、上記の説明において「イベント列作成部１０」、「イベント列記憶部２０」、「性能評価モデル作成部３０」、「性能評価モデル記憶部４０」、「性能評価モデル実行部５０」、「計算値記憶部６０」、「性能指標値計算部７０」、「性能要求値作成部８０」、「性能要求値記憶部９０」、「性能評価部１００」、「性能評価結果記憶部１１０」等として説明した機能を実行するプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「イベント列」、「状態遷移モデル」、「処理時間」、「処理負荷モデル」、「処理能力モデル」、「処理待ちモデル」、「処理時間計算値」、「待ち時間計算値」、「性能要求値」、「性能評価結果」等として説明した情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００６４】
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【図面の簡単な説明】
【００６５】
【図１】性能評価装置１’の機能ブロック図。
【図２】性能評価装置１’の性能評価モデル作成部３０が作成する性能評価モデルの構成を示す図。
【図３】性能評価装置１’の状態遷移作成部３１が作成する状態遷移モデルの概念を示す図。
【図４】性能指標値としてシステム応答時間を評価する場合の性能評価装置１’の動作例を示す図。
【図５】性能評価装置１の機能ブロック図。
【図６】性能評価装置１の性能評価モデル作成部３０が作成する性能評価モデルの構成を示す図。
【図７】性能評価装置１の状態遷移作成部３１が作成する状態遷移モデルの概念を示す図。
【図８】性能指標値としてシステム応答時間を評価する場合の性能評価装置１の動作例を示す図。
【図９】状態遷移モデルにおけるイベントの処理の流れを示す概念図。
【図１０】待ち時間の計算方法を示す概念図。
【図１１】性能評価装置１の性能評価処理の動作を示すフローチャート。
【図１２】イベント列の一例を示す図。
【図１３】処理負荷モデルの一例を示す図。
【図１４】処理能力モデルの一例を示す図。
【図１５】処理待ちモデルの一例を示す図。
【図１６】性能指標値を示す模式図。
【図１７】ＥｎｔｒｙアクションおよびＥｘｉｔアクションの変換の例を示す図。
【図１８】性能評価装置１のハードウェア構成の一例を示す図。
【符号の説明】
【００６６】
１  性能評価装置、１０  イベント列作成部、２０  イベント列記憶部、３０  性能評価モデル作成部、３１  状態遷移作成部、３２  処理時間作成部、３３  処理負荷作成部、３４  処理能力作成部、３５  処理待ち作成部、４０  性能評価モデル記憶部、４１  状態遷移モデル記憶部、４２  処理時間記憶部、４３  処理負荷モデル記憶部、４４  処理能力モデル記憶部、４５  処理待ちモデル記憶部、５０  性能評価モデル実行部、５１  状態遷移モデル実行部、５２  処理時間計算部、５３  待ち時間計算部、６０  計算値記憶部、６１  処理時間計算値記憶部、６２  待ち時間計算値記憶部、７０  性能指標値計算部、８０  性能要求値作成部、９０  性能要求値記憶部、１００  性能評価部、１１０  性能評価結果記憶部。
【図１】
0005036595.tif 000002
【図２】
0005036595.tif 000003
【図３】
0005036595.tif 000004
【図４】
0005036595.tif 000005
【図５】
0005036595.tif 000006
【図６】
0005036595.tif 000007
【図７】
0005036595.tif 000008
【図８】
0005036595.tif 000009
【図９】
0005036595.tif 000010
【図１０】
0005036595.tif 000011
【図１１】
0005036595.tif 000012
【図１２】
0005036595.tif 000013
【図１３】
0005036595.tif 000014
【図１４】
0005036595.tif 000015
【図１５】
0005036595.tif 000016
【図１６】
0005036595.tif 000017
【図１７】
0005036595.tif 000018
【図１８】
0005036595.tif 000019