(57)【要約】不具合の重大な原因の１つである性能問題に関連する設計工程を改善し、組込みソフトウェアの品質向上と後戻り工数削減による開発コストの抑制を図るべく、計算機ソフトウェア設計支援方法および設計支援装置を提供する。アプリケーション処理プログラムを構成するタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義する。また、アプリケーション処理プログラムを構成するタスクの実行フローを定義する。そして、タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間を算出する。そして、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布からシステムの性能予測を行う。
2012117746.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのアプリケーション処理プログラムを搭載したシステムの性能予測を行う計算機ソフトウェア設計支援方法であって、
アプリケーション処理プログラムを構成するタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義するステップと、
アプリケーション処理プログラムを構成するタスクの実行フローを定義するステップと、
前記タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間を算出するステップと、
アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布からシステムの性能予測を行うステップと、
を備えたことを特徴とする計算機ソフトウェア設計支援方法。
【請求項２】
前記タスクの実行時間において、タスク実行時間の分布情報が付加されたことを特徴とする請求項１に記載の計算機ソフトウェア設計支援方法。
【請求項３】
前記タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることを特徴とする請求項２に記載の計算機ソフトウェア設計支援方法。
【請求項４】
前記タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことを特徴とする請求項２に記載の計算機ソフトウェア設計支援方法。
【請求項５】
前記タスク実行時間の分布情報は、該タスクが排他制御ロジックを含む場合に、排他制御の予想待ち時間を含むことを特徴とする請求項２に記載の計算機ソフトウェア設計支援方法。
【請求項６】
前記タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることを特徴とする請求項２に記載の計算機ソフトウェア設計支援方法。
【請求項７】
前記アプリケーション処理プログラム毎の予測時間領域を定義し、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することを特徴とする請求項１〜６のいずれかに記載の計算機ソフトウェア設計支援方法。
【請求項８】
前記アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、条件実行される１以上の各タスクに対して、それぞれの実行確率が定義されることにより、実行時間分布が生じることを特徴とする請求項１に記載の計算機ソフトウェア設計支援方法。
【請求項９】
前記アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、複数のタスクで共通アクセスされるハードウェアリソースに対して、排他制御を行うことにより、実行時間分布が生じることを特徴とする請求項１に記載の計算機ソフトウェア設計支援方法。
【請求項１０】
アプリケーション処理プログラムを構成するタスク毎の優先度，起動周期，実行時間，実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段と、
アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段と、
前記タスク情報データベースとプログラム定義データベースおよび前記フロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間分布をシミュレーションする実行時間分布シミュレーション手段と、
システムの性能評価結果を表示する結果表示手段と、
を備えたことを特徴とする計算機ソフトウェアシステム設計支援装置。
【請求項１１】
アプリケーション処理プログラム毎の性能目標情報として、アプリケーション処理プログラム毎に予測時間領域を前記プログラム定義データベースに定義する性能目標情報定義手段を更に備えたことを特徴とする請求項１０に記載の計算機ソフトウェアシステム設計支援装置。
【請求項１２】
前記結果表示手段は、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することを特徴とする請求項１１に記載の計算機ソフトウェアシステム設計支援装置。
【請求項１３】
前記タスク定義入力手段において、タスク毎に起動オフセット時間，実時間属性およびタイムスライス時間を、タスク情報データベースに更に登録できる手段を備えたことを特徴とする請求項１０〜１２のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
【請求項１４】
前記タスク定義入力手段において、タスク実行時間の分布情報を見積り実行時間とその重み付けの１セットとして複数セットを分布情報として登録できる手段を備えたことを特徴とする請求項１０〜１２のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
【請求項１５】
前記タスク定義入力手段において、見積り実行時間とその重み付けとを１セットとして、複数セットをタスク実行時間の分布情報として登録できるタスク実行時間分布情報入力手段を更に備えたことを特徴とする請求項１０〜１２のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
【請求項１６】
前記タスク定義入力手段において、処理待ち時間が発生するハードウェアリソースの処理待ち時間の見積り時間を登録する処理待ち時間登録手段を更に備えたことを特徴とする請求項１５に記載の計算機ソフトウェアシステム設計支援装置。
【請求項１７】
前記ハードウェアリソースが、複数のタスクで共通アクセスされるリソースであることを特徴とする請求項１６に記載の計算機ソフトウェアシステム設計支援装置。
【請求項１８】
前記アプリケーション定義入力手段は、前記フロー定義部品データベースに登録された部品を用いて、繰り返し処理，条件分岐処理，並列実行処理を少なくとも定義入力できることを特徴とする請求項１０〜１２のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
【請求項１９】
前記条件実行処理は、条件実行される１以上の各タスクに対して、それぞれの実行確率を定義できることを特徴とする請求項１８に記載の計算機ソフトウェアシステム設計支援装置。
【請求項２０】
前記並列実行処理には、並列に実行される全てのタスクが終了した場合のみ、その後の処理が進むパルドタイプ並列実行と、並列実行される全てのタスクが終了しなくても進むスプリットタイプ並列実行と、を備えたことを特徴とする請求項１８に記載の計算機ソフトウェアシステム設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スタンドアロンで動作する計算機ソフトウェアの性能予測を行い、計算機ソフトウェアの設計ならびに性能を事前評価するための設計支援方法と設計支援装置に関するものである。
【背景技術】
【０００２】
情報家電や携帯電話などの計算機搭載デバイスに要求される機能が増大したことにより、デバイスに搭載されるソフトウェア量が増大し、１つのシステムに搭載されるソフトウェア部品も莫大な数になっている。特に、携帯電話の場合、通話機能、電子メール機能、ブラウザ機能など、２００〜３００のソフトウェア部品が同居している。
そのため、このような計算機搭載デバイスの品質の問題がつきまとう。かかる品質問題は、シミュレータなどで解決することもできるが、性能問題はソフトウェア部品を結合した後でないと性能が満足するか否かわからないことが多い。
なぜなら、これらソフトウェア部品は１つのハードウェア資源を共有しながら同時に作動するので、１つのソフトウェア部品の実行が他のソフトウェア部品の実行を遅らせる原因になるからである。性能問題が発見された場合、開発工程の後戻りが発生し、膨大なコストが発生しているのが現状である。【０００３】
かかる状況下、従来から、図１５に示すようなサーバコンピュータの設計モデルには待ち行列モデルが多く利用されている（例えば、非特許文献１）。特に、待ち行列モデルは、ネットワークシステムで利用されてきている。しかしながら、待ち行列モデルはシステム設計には有効なもののソフトウェア設計には待ち行列モデルとソフトウェアの設計モデルに大きいなギャップがあり、実用的なアプローチとは言い難いものであった。
また、ソフトウェアの実行に際して、必要なハードウェア資源量を各々のステップのまとまり単位で見積って、全体システムの性能を予測するアプローチ方法を提示している（非特許文献２）。但し、システム内の共有資源へのアクセスはしばしば性能に大きいな影響を与えるが、この性能評価においても、待ち行列モデルを利用したものであり、上記と同様の問題がある。【０００４】
また、コンピュータシステム内の性能予測のアプローチ方法を開示しているものもある（特許文献１）。
また、並列計算機を対象とした性能評価方法もあるが（特許文献２）、こちらも待ち行列モデルをベースとした待ち行列網モデルを用いており上記と同じ問題がある。【０００５】
また、実際にシステムでの性能を測定しそのデータに基づき性能予測を行うものがある（特許文献３）。この方法は、系列システムの開発には有効であろうが、最初にシステムを設計する場合にはあまり有効に機能するものではない。
また、計算機システム内の粒度の粗い部品レベルでの性能予測方法がある（特許文献４）。しかしながら、粒度の粗い部品レベルでの性能予測の場合、リアルタイムシステムなどの時間制約が厳しいものについては性能評価できない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−３６３７３０号公報
【特許文献２】特開２０００−２９８５９８号公報
【特許文献３】特開２００４−２２０４５３号公報
【特許文献４】特開２００４−２７２５８２号公報
【非特許文献】
【０００７】
【非特許文献１】滝根  哲哉、伊藤  大雄、西尾  章治郎、ネットワーク設計理論、岩波書店、２００１
【非特許文献２】C.Smith andL.Willianm’s, “Performance Solutions,” Addison Wesloy,2002
【発明の概要】
【発明が解決しようとする課題】
【０００８】
組込みシステムの動作不良原因は、組込みソフトウェア不具合が半数以上を占める。不具合が起きる理由として、組込みソフトウェアの大規模化と複雑化に対して、十分な対策がとられなかったためである。
例えば、携帯電話の場合、図１３に示すように、製品競争力確保のために新機能の搭載や、新技術を利用した機能向上や、顧客要望に対応する機能改善を行っており、ワンセグ機能，メール機能，通話機能，ブラウザ機能，動画再生機能など数多くのプログラムが搭載されている。このため、携帯電話の開発規模が増大し、プログラムの組合せ動作検証が困難になっている。不具合原因の５０％以上がプログラムに起因するものであり、それらの不具合が製品開発段階の終盤や製品出荷後に発生している。
このため、搭載される数多くのプログラムの個々の機能の性能要求を明確化し、事前動作検証を行うことにより、開発期間・工程・後戻り・不具体対策コストの抑制を図るべく、機能だけでなく要求性能を満足できるようにプログラムの設計支援を行えるツールが要望されている（図１４を参照）。【０００９】
上記状況に鑑みて、本発明は、不具合の重大な原因の１つである性能問題に関連する設計工程を改善し、組込みソフトウェアの品質向上と後戻り工数削減による開発コストの抑制を図るべく、計算機ソフトウェア設計支援方法および設計支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成すべく、本発明の計算機ソフトウェア設計支援方法は、少なくとも１つのアプリケーション処理プログラムを搭載したシステムの性能予測を行う計算機ソフトウェア設計支援方法であって、以下の１）〜４）のステップを備える。
１）アプリケーション処理プログラムを構成するタスク毎に少なくとも優先度，起動周期，実行時間，実行回数を定義するステップ
２）アプリケーション処理プログラムを構成するタスクの実行フローを定義するステップ
３）タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間を算出するステップ
４）アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布からシステムの性能予測を行うステップ【００１１】
かかる構成によれば、携帯電話や情報家電など多くのアプリケーション処理プログラムを搭載したシステムの性能予測について、設計段階において事前検証することができる。
上記１）のアプリケーション処理プログラムを構成するタスク毎の優先度，起動周期，実行時間，実行回数について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば０（ゼロ）とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。【００１２】
次に、上記２）のアプリケーション処理プログラムを構成するタスクの実行フローについて説明する。ここで、アプリケーション処理プログラムとは、例えば、携帯電話の場合には、ブラウザ機能を実現するプログラムや、電子メール機能を実現するプログラムや、通話機能を実現するプログラムなどをいう。アプリケーション処理プログラムを構成するタスクの実行フローとは、アプリケーション処理プログラムを構成する１以上のタスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などをフローチャートの如く示したものをいう。【００１３】
次に、上記３）のタスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、タスクの実行フローの実行時間をどのように算出するとは、タスクの実行フローにしたがって、各タスクの実行時間を加算していくことである。
１つのアプリケーション処理プログラムを搭載するシステムの場合、そのアプリケーション処理プログラムを構成するタスクの実行フローにしたがって、順番に実行時間を加算していく。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。【００１４】
一方、複数のアプリケーション処理プログラムを搭載するシステムの場合、アプリケーション処理プログラム毎にタスクの実行フローが複数存在する。実行フローが複数存在する場合、実行可能なタスクが複数存在するケースも有り得る。この場合、例えば、１方の実行フローのタスクでリソースの処理待ち時間が生じた場合や特定条件が成立するまで処理を待つアルゴリズムを有する場合は、他方の実行フローで実行可能なタスクに切り替わり当該タスクが実行されるとして実行時間を加算する。また、オペレーティングシステム（ＯＳ）によって優先度の高いものが実行されることから、例えば、１方の実行フローで実行可能なタスクの優先度と他方の実行フローで実行可能なタスクの優先度とを比べて、優先度の高い側のタスクが実行されるとして実行時間を加算する。【００１５】
本発明の計算機ソフトウェア設計支援方法における上記１）のタスクの実行時間において、タスク実行時間の分布情報が付加されることが好ましい。
タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。【００１６】
例えば、タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることがより好ましい。重み付けは、見積り実行時間になる確率で表現してもよい。【００１７】
例えば、タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことがより好ましい。
ここで、ハードウェアリソースとは、共有メモリ、フラッシュメモリ（flash
memory）などの不揮発性の半導体メモリ、ＵＳＢ（Universal Serial Bus）メモリ、ハードディスクなどをいう。また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。【００１８】
また、タスク実行時間の分布情報には、該タスクが排他制御ロジックを含む場合に、排他制御の処理待ち時間を含むことがより好ましい。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。【００１９】
また、タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることがより好ましい。
ここで、システムソフトウェアとは、オペレーティングシステム（ＯＳ）や画面描画サービスプログラムなど、アプリケーション処理プログラムの枠外のプログラムである。【００２０】
また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラム毎の性能目標となる予測時間領域を定義し、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することが好ましい。
ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。【００２１】
また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、条件実行される１以上の各タスクに対して、それぞれの実行確率が定義されることにより、実行時間分布が生じることが好ましい。
ここで、条件実行される１以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって２つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。【００２２】
また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、複数のタスクで共通アクセスされるハードウェアリソースに対して、排他制御を行うことにより、実行時間分布が生じることが好ましい。
複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。【００２３】
次に、本発明の計算機ソフトウェアシステム設計支援装置について説明する。
本発明の計算機ソフトウェアシステム設計支援装置は、アプリケーション処理プログラムを構成するタスク毎の優先度，起動周期，実行時間，実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段と、アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段と、タスク情報データベースとプログラム定義データベースおよびフロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間分布をシミュレーションする実行時間分布シミュレーション手段と、システムの性能評価結果を表示する結果表示手段と、を備える。【００２４】
かかる構成によれば、携帯電話や情報家電など多くのアプリケーション処理プログラムを搭載したシステムの性能予測について、設計段階において事前検証することができる。
上記のアプリケーション処理プログラムを構成するタスク毎の優先度，起動周期，実行時間，実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば０（ゼロ）とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。【００２５】
タスク情報データベースは、これらの優先度，起動周期，実行時間，実行回数の情報を、タスク毎に割り当てられたユニークな識別番号により参照できるデータベースである。なお、タスク毎に割り当てられたユニークな識別番号はユニークなタスク名でもよい。【００２６】
次に、上記のアプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段について説明する。ここで、アプリケーション処理プログラムとは、例えば、携帯電話の場合には、ブラウザ機能を実現するプログラムや、電子メール機能を実現するプログラムや、通話機能を実現するプログラムなどをいう。アプリケーション処理プログラムを構成するタスクの実行フローとは、アプリケーション処理プログラムを構成する１以上のタスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などをフローチャートの如く示したものをいう。【００２７】
また、フロー定義部品とは、タスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などを、それぞれシンボル図形化したものであり、繰り返し回数、条件分岐の確率、排他制御のタイムアウトなどのパラメータを有するものである。
また、プログラム定義データベースとは、該プログラムが使用するフロー定義部品とそのパラメータ、該プログラムがアクセスするリソース、該プログラムを構成するタスクの識別番号をプログラム毎に割り当てられたユニークな識別番号により参照できるデータベースである。なお、プログラム毎に割り当てられたユニークな識別番号はユニークなプログラム名でもよい。【００２８】
次に、上記のタスク情報データベースとプログラム定義データベースおよびフロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間をシミュレーションする実行時間分布シミュレーション手段について説明する。アプリケーション処理プログラム毎の実行時間分布のシミュレーションは、該プログラムに対応するプログラム定義データベースから、使用されるタスクと使用されるフロー定義部品を認識し、該タスクに対応するタスク情報データベースから優先度や実行時間などを認識し、また該フロー定義部品に対応するフロー定義部品データベースから処理内容とパラメータを認識する。【００２９】
そして、認識したタスクの優先度や実行時間、認識した実行順序などに基づいて、タスクの実行フローにしたがって、各タスクの実行時間を加算していくことにより、アプリケーション処理プログラム毎の実行時間をシミュレーションする。
１つのアプリケーション処理プログラムを搭載するシステムの場合、そのアプリケーション処理プログラムを構成するタスクの実行フローにしたがって、順番に実行時間を加算していく。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。【００３０】
一方、複数のアプリケーション処理プログラムを搭載するシステムの場合、アプリケーション処理プログラム毎にタスクの実行フローが複数存在する。実行フローが複数存在する場合、実行可能なタスクが複数存在するケースも有り得る。この場合、例えば、１方の実行フローのタスクでリソースの処理待ち時間が生じた場合や特定条件が成立するまで処理を待つアルゴリズムを有する場合は、他方の実行フローで実行可能なタスクに切り替わり当該タスクが実行されるとして実行時間を加算する。また、オペレーティングシステム（ＯＳ）によって優先度の高いものが実行されることから、例えば、１方の実行フローで実行可能なタスクの優先度と他方の実行フローで実行可能なタスクの優先度とを比べて、優先度の高い側のタスクが実行されるとして実行時間を加算する。【００３１】
次に、上記のシステムの性能評価結果を表示する結果表示手段について説明する。シミュレーションした結果のプログラム毎の実行時間分布は、実行最小時間、実行最大時間、発生頻度をグラフや表にして装置に付属する液晶パネルなどの表示画面に結果を表示する。また、シミュレーション結果は、プログラム毎あるいはプログラムのバージョン毎に異なるファイルとして保存される。【００３２】
また、上記の計算機ソフトウェアシステム設計支援装置において、アプリケーション処理プログラム毎の性能目標情報として、アプリケーション処理プログラム毎に予測時間領域を上記のプログラム定義データベースに定義する性能目標情報定義手段を更に備えることが好ましい。
性能目標情報とは、最小実行時間、実行最大時間、平均実行時間、分布度合いである。【００３３】
また、上記の計算機ソフトウェアシステム設計支援装置における結果表示手段は、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することが好ましい。
ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。【００３４】
また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、タスク毎に起動オフセット時間，実時間属性およびタイムスライス時間を、タスク情報データベースに更に登録できる手段を備えることが好ましい。
ここで、起動オフセット時間とはタスクが起動するまでの遅れ時間である。主メモリに常駐するタスクの場合、遅れ時間は無視できるが、起動される度にハードディスクから処理コードが読み込まれる非常駐のタスクの場合は遅れ時間も考慮して設計を行うことが、システム全体の性能評価を正しく行えることになる。
また、実時間属性とは、本明細書において、割り込みのようなイベント駆動型のタスク、すなわちリアルタイム性が要求されるタスクか、周期的に処理を行うような周期駆動型のタスク、すなわち周期性が要求されるタスクか、ＣＰＵ時間を実行可能な全てのタスクに分配するラウンドロビン方式が要求されるタスクか否かのタスクの属性を意味する。【００３５】
また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、タスク実行時間の分布情報を見積り実行時間とその重み付けの１セットとして複数セットを分布情報として登録できる手段を備えることが好ましい。
重み付けは、見積り実行時間になる確率で表現してもよい。タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。【００３６】
また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、処理待ち時間が発生するハードウェアリソースの処理待ち時間の見積り時間を登録する処理待ち時間登録手段を更に備えることが好ましい。
ここで、ハードウェアリソースとは、上述したように、共有メモリ、フラッシュメモリなどの不揮発性の半導体メモリ、ＵＳＢメモリ、ハードディスクなどをいう。また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
また、ハードウェアリソースは複数のタスクで共通アクセスされるリソースであることがより好ましい。複数のタスクで共通アクセスされるリソースで排他制御ロジックを要する場合、排他制御の処理待ち時間を含む。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。【００３７】
また、上記の計算機ソフトウェアシステム設計支援装置において、アプリケーション定義入力手段は、前記フロー定義部品データベースに登録された部品を用いて、繰り返し処理，条件分岐処理，並列実行処理を少なくとも定義入力できることがより好ましい。【００３８】
ここで、条件実行処理は、条件実行される１以上の各タスクに対して、それぞれの実行確率を定義できることが好ましい。
条件実行される１以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって２つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。【００３９】
また、並列実行処理は、並列に実行される全てのタスクが終了した場合のみ、その後の処理が進むパルドタイプ並列実行と、並列実行される全てのタスクが終了しなくても進むスプリットタイプ並列実行と、を備えることが好ましい。
【発明の効果】
【００４０】
ソフトウェア、特にデバイス機器に組み込まれる組み込みソフトウェアでは、ＣＰＵ能力が低い、メモリが少ないなどの厳しいハードウェア制約の中でソフトウェアを設計する必要がある。
本発明によれば、ソフトウェアモジュールの設計・製作・デバイスに組込みを行った段階で初めてシステム全体の性能が未達成であることが判明するといった事態を回避でき、ソフトウェア製作の膨大な後戻り工程やそれに伴うコストを削減できるといった効果を有する。
【図面の簡単な説明】
【００４１】
【図１】計算機ソフトウェア設計支援フロー図
【図２】アプリケーション処理プログラムの説明図
【図３】アプリケーション処理プログラムの実行フローに用いるタスクの説明図
【図４】タスクの実行フローの説明図１
【図５】タスクの実行フローの説明図２
【図６】タスクの実行フローの説明図３
【図７】タスクの実行フローの説明図４
【図８】タスクの実行フローの説明図５
【図９】タスクの実行フローの説明図６
【図１０】タスクの実行フローの説明図７
【図１１】映像再生システムの機能ブロック図
【図１２】映像再生システムにおけるプログラムの実行フロー図
【図１３】携帯電話の機能ブロック図１
【図１４】携帯電話の機能ブロック図２
【図１５】従来の待ち行列モデルを用いるトランザクションの概念図
【図１６】計算機ソフトウェアシステム設計支援装置の機能ブロック図
【図１７】プロジェクトの作成メニュー
【図１８】プロジェクトの作成画面
【図１９】タスク作成メニュー
【図２０】タスク作成画面
【図２１】アプリケーション処理プログラムの定義画面
【図２２】性能要求解析メニュー
【図２３】シミュレーション情報入力画面
【図２４】性能目標情報一覧画面
【図２５】性能目標情報入力画面
【図２６】タスク情報一覧画面
【図２７】タスク情報入力画面
【図２８】シミュレーション評価結果表示画面（全体情報画面）
【図２９】シミュレーション評価結果表示画面（シーケンス画面）
【図３０】シミュレーション評価結果表示画面（タスクトレース画面）
【発明を実施するための最良の形態】
【００４２】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。【００４３】
図１は、本発明の計算機ソフトウェア設計支援方法の処理フローを示している。
本発明の計算機ソフトウェア設計支援方法は、１以上のアプリケーション処理プログラムを搭載するスタンドアロンのシステムに関する性能予測を以下のステップで行う。
（ステップ１）それぞれのアプリケーション処理プログラムを構成するタスク毎に、優先度，起動周期，実行時間，実行回数を定義する。
（ステップ２）アプリケーション処理プログラム毎に、プログラムを構成するタスクの実行フローを定義する。
（ステップ３）タスク毎に定義された優先度，起動周期，実行時間，実行回数を用いて、それぞれのアプリケーション処理プログラム毎に、タスクの実行フローの実行時間を算出する。
（ステップ４）全てのアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布に基づいて、システムの性能予測を行う。【００４４】
アプリケーション処理プログラムとタスクの関係について、図２を用いて説明する。
図２は、アプリケーション処理プログラムの一例を示す機能ブロック図である。
図２のアプリケーション処理プログラムでは、処理タスク１と処理タスク２で構成されている。処理タスク１は、メッセージキュー１からメッセージデータ３を取り出し、メッセージデータ３を加工して共有メモリ５にデータを書き込む処理を行うものとする。また、処理タスク２は、共有メモリ５からデータを読み込み、データを加工して、フラッシュメモリ６にデータを書き込む処理と、場合によってはフラッシュメモリ６からデータを読み出して、メッセージキュー２に送る処理を行うものとする。【００４５】
このようなアプリケーション処理プログラムにおいては、上記（ステップ１）に従って、まず処理タスク１と処理タスク２の２つのタスクに関して、優先度，起動周期，実行時間，実行回数を定義することになる。
ここで、処理タスク１がメッセージ駆動型のタスクとし、処理タスク２が周期的駆動型のタスクとして設計されるとする。処理タスク１の起動周期は０（ゼロ）で、処理タスク２の起動周期を例えば１０ｍｓとする。また、メッセージ駆動型の処理タスク１は、一般的に、優先度が高く設計される。また、処理が1回だけ行われる場合、実行回数は１であり、複数回処理が繰り返される場合、実行回数はｎ回となる。【００４６】
実行時間に関しては、処理タスク１の場合、タスクの行う処理、すなわち、メッセージキュー１からデータの取り出し処理、共有メモリ５への書き込み処理、それぞれの見積り時間を予測して決定する。また、処理タスク２の場合、共有メモリ５からデータを読み込み処理、フラッシュメモリ６にデータを書き込む処理、メッセージキュー２にデータを送る処理、それぞれの見積り時間を予測して決定する。
ここで、共有メモリの書き込み処理、読み込み処理、フラッシュメモリのアクセス処理などに処理待ち時間があればそれらを考慮して見積り時間を予測する。また、処理タスク１と処理タスク２がそれぞれ書き込み・読み込みを行う共有メモリ５に排他制御が行われる場合、制御権を受け取るまでの処理待ち時間も考慮して見積り時間を予測する。【００４７】
図３（１）は、アプリケーション処理プログラムの実行フローに用いるタスクの種類の一例を示している。タスクは見積り予測が可能な単位に細かく定義する。タスクを繰り返し実行するものや、条件によってケース分けして多数を実行するものや、タスクを並列に実行するものなど定義する。
また、図３（２）は、ハードウェアリソースの一例を示している。ハードウェアリソースには、リソースにアクセスするためのタスクの処理待ち時間が属性情報として付与されている。【００４８】
次に、アプリケーション処理プログラムを構成するタスクの実行フローについて図４〜１０を参照して説明する。
まず、繰り返しタスクの実行フローの一例を示す。図４は繰り返しタスクの実行フローの一例を示している。例えば、初期化処理タスク１０が１０μｓｅｃ、プロセストランザクションタスク１２が２０μｓｅｃ、終了セッションタスク１４が５μｓｅｃの見積り時間で、繰り返しタスク１６の繰り返し回数ｎ＝５とした場合、図４に示す実行フローの実行時間は、１０＋２０×５＋５＝１１５μｓｅｃとなる。【００４９】
次に、ケースタスクの実行フローの一例を示す。図５はケースタスクの実行フローの一例を示している。例えば、トランザクション取得タスク２０が１５μｓｅｃ、プロセスＡタスク２２が２０μｓｅｃ、プロセスＢタスク２４が４０μｓｅｃ、プロセスＣタスク２６が２５μｓｅｃの見積り時間で、ケースタスク２８の分岐確率ａ〜ｃがそれぞれ０．５，０．３，０．２とした場合、図５に示す実行フローの実行時間は、最小実行時間が１５＋２０＝３５μｓｅｃ、最大実行時間が１５＋４０＝５５μｓｅｃで、実行時間分布が３５μｓｅｃ，５５μｓｅｃ，１５＋２５＝４０μｓｅｃがそれぞれの確率で現れる分布となる。【００５０】
次に、パルドタスクの実行フローの一例を示す。図６はパルドタスクの実行フローの一例を示している。例えば、ユーザ入力操作タスク３０が５μｓｅｃ、リモートクエリー表示タスク３２が１５μｓｅｃ、クエリー結果をスクリーンに表示させるタスク３４が２５μｓｅｃ、入力データを表示データとするタスク３６が１０μｓｅｃ、ディスプレイ表示タスク３８が２０μｓｅｃの見積り時間の場合、図６に示す実行フローの実行時間は、５＋２５＋１０＋２０＝６０μｓｅｃとなる。なお、パルドタスク３１は付属するタスク３２とタスク３４が並列実行され、それらのタスクが全て終了しないと先に処理が進まないロジックを備えるものである。【００５１】
次に、共有メモリを排他制御するタスクの実行フローの一例を示す。図７は、データ入力し共有メモリに書き込む２つのプログラムのタスクの実行フローの一例を示している。２つのアプリケーション処理プログラムは、繰り返しタスク４１とデータ入力タスク４２と書込みデータタスク４３の実行フローで構成されるプログラムと、繰り返しタスク４６とデータ入力タスク４７と書込みデータタスク４８の実行フローで構成されるプログラムである。例えば、書込みデータタスク４３の実行時間は２０μｓｅｃで、書込みデータタスク４８の実行時間は２５μｓｅｃとすると、それぞれの書込みデータタスクは他方の書込みデータタスクが共有メモリ４０に書込み中は処理待ちとなるため、書込みデータタスク４３の実行時間は最小実行時間が２０μｓｅｃ、最大実行時間が２０＋２５＝４５μｓｅｃとなり、書込みデータタスク４８の実行時間は最小実行時間が２５μｓｅｃ、最大実行時間が２５＋２０＝４５μｓｅｃとなる。【００５２】
また、図８は、共有メモリにデータを書き込む処理と読み込む処理の２つのプログラムのタスクの実行フローの一例を示している。２つのアプリケーション処理プログラムは、繰り返しタスク５１とデータ入力タスク５２と書込みデータタスク５３の実行フローで構成されるプログラムと、繰り返しタスク５６と読込みデータタスク５７とスクリーン表示タスク５８の実行フローで構成されるプログラムである。共有メモリ５０に一方のプログラムがデータを書き込んで、他方のプログラムが書き込まれたデータを読み込んで処理する場合を想定する。例えば、データ入力タスク５２の実行時間は１０μｓｅｃ、書込みデータタスク５３の実行時間は２０μｓｅｃ、読込みデータタスク５７の実行時間は１５μｓｅｃ、スクリーン表示タスク５８の実行時間は２５μｓｅｃとすると、データ入力してそれがスクリーン表示されるまでの最小実行時間は１０＋２０＋１５＋２５＝７０μｓｅｃとなる。【００５３】
ここで、データ入力タスク５２の優先度と読込みデータタスク５７の優先度が異なる場合を考える。仮に、データ入力タスク５２が、読込みデータタスク５７より優先される場合、データ入力してそれがスクリーン表示されるまでの最小実行時間は１０＋２０＋１０＋１５＋２５＝８０μｓｅｃとなる。書込みデータタスク５３が終了した後、繰り返しによって再びデータ入力タスク５２が動作しそれが終了するまで、読込みデータタスク５７が動作しないからである。なお、データ入力タスク１０が、スクリーン表示タスク５８より優先される場合も同様となる。【００５４】
次に、フラッシュメモリにアクセスするタスクの実行フローの一例を示す。図９は、データ格納しそれをテンポラリメモリあるいはフラッシュメモリに格納するプログラムのタスクの実行フローの一例を示している。例えば、データ格納タスク６０の実行時間は１５μｓｅｃ、テンポラリメモリへ格納タスク６２の実行時間は２０μｓｅｃ、フラッシュメモリの処理待ち時間を５０μｓｅｃと見積ってフラッシュメモリへ格納タスク６３の実行時間は７０μｓｅｃ、終了セッションタスク６５の実行時間は５μｓｅｃ、ケースタスク６１の分岐確率がそれぞれ０．８と０．２とすると、図９に示す実行フローの実行時間は、最小実行時間が１５＋２０＝４０μｓｅｃ、最大実行時間が１５＋７０＋５＝９０μｓｅｃで、実行時間分布が４０μｓｅｃ，９０μｓｅｃがそれぞれの確率で現れる分布となる。【００５５】
次に、メッセージキューからメッセージを受け取るタスクの実行フローの一例を示す。図１０は、メッセージキュー７０からメッセージ受信しサービスを行うプログラムのタスクの実行フローの一例を示している。例えば、メッセージ受信タスク７１の実行時間は１０μｓｅｃ、サービス処理タスク７２の実行時間は５０μｓｅｃ、終了セッションタスク７３の実行時間は５μｓｅｃとすると、図１０に示す実行フローの実行時間は、１０＋５０＋５＝６５μｓｅｃとなる。
【実施例１】
【００５６】
（映像再生装置）
図１１に映像再生装置のアプリケーション処理プログラムの機能ブロック図を示す。図１１には、ファイル読込みタスク，映像復号タスク，映像表示タスク，音声復号タスク，音声再生タスクおよび共有メモリが示され、それぞれのタスクの起動周期および起動遅延、共有メモリの待ち時間およびアクセス単位が示されている。
まず、ファイル読込みタスクが共有メモリから読み込んだデータを他の共有メモリに書込む。次に、映像復号タスクと音声復号タスクがそれぞれ共有メモリのデータを取り出して復号し、それぞれ映像表示タスクと音声再生タスクに共有メモリを介して渡す。
図１２は、図１１の機能ブロックをタスクの実行フローに書き換えたものである。音声処理プログラムと映像処理プログラムの２つのプログラムに分け、それぞれのタスクの実行フローを示している。共有メモリ１〜５について排他制御は行っていない。またファイル読込みタスク（８０，８６）は共通のタスクである。【００５７】
例えば、ファイル読込みタスク（８０，８６）の実行時間は２０μｓｅｃ、音声復号タスク８２の実行時間は１０μｓｅｃ、音声再生タスク８３の実行時間は３０μｓｅｃ、映像復号タスク８７の実行時間は４０μｓｅｃ、映像表示タスク８８の実行時間は６０μｓｅｃとすると、音声処理プログラムの最小実行時間は６０μｓｅｃ、映像処理プログラムの最小実行時間は１２０μｓｅｃとなる。また、最大実行時間は、処理が起動周期時間分遅れるとし、さらに起動遅延時間も加わるとして算出する。音声処理プログラムの場合は、（２＋１）＋（４＋１）＋（１６＋１）＝２５ｍｓｅｃを最小実行時間に加算して最大実行時間を算出する。映像処理プログラムの場合は、（２＋１）＋（４＋１）＋（１６＋１）＝２５ｍｓｅｃを最小実行時間に加算して最大実行時間を算出する。それぞれのタスクの起動周期が異なるために実行時間にはバラツキが生じることになるのである。
【実施例２】
【００５８】
実施例２では、計算機ソフトウェアシステム設計支援装置の一態様について説明する。
計算機ソフトウェアシステム設計支援装置は、汎用のデスクトップ型コンピュータやノート型コンピュータで構成される。
図１６は、計算機ソフトウェアシステム設計支援装置の機能ブロック図を示している。
計算機ソフトウェアシステム設計支援装置は、図１６の破線で囲まれたタスク情報データベースとプログラム定義データベースおよびフロー定義部品データベースを備える。これらのデータベースは、通常、計算機ソフトウェアシステム設計支援装置のハードディスクに保存される。
タスク情報データベースは、アプリケーション処理プログラムを構成するタスク毎のタスク名，優先度，起動オフセット，起動周期，実時間属性，実行時間，タイムスライス，実行回数の情報を、タスク毎に割り当てられたユニークなタスク名により参照できるデータベースである。【００５９】
また、プログラム定義データベースは、プログラムが使用するフロー定義部品とそのパラメータ、該プログラムがアクセスするリソース、プログラムを構成するタスク名をプログラム毎に割り当てられたユニークなプログラム名により参照できるデータベースである。【００６０】
また、フロー定義部品データベースは、繰り返し回数、条件分岐の確率、排他制御のタイムアウトなどのフロー定義部品のパラメータ情報を、タスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などのフロー定義部品に割り当てられたユニークな番号により参照できるデータベースである。【００６１】
また、図１６に示すように、計算機ソフトウェアシステム設計支援装置は、タスク毎にタスク情報を定義してタスク情報データベースとして登録するタスク定義入力手段と、プログラム毎に用いるタスクの実行フローを予め登録されているフロー定義部品を用いて定義してプログラム定義データベースとして登録するプログラム定義入力手段とを備える。
また、アプリケーション処理プログラム毎の実行時間分布をシミュレーションするプログラムの実行時間分布シミュレーション手段と、システムの性能評価結果表示手段を備える。【００６２】
以下、計算機ソフトウェアシステム設計支援装置の操作メニューならびに画面を参照しながら説明する。
図１７および図１８は、それぞれプロジェクトの作成メニューとプロジェクトの作成画面を示している。計算機ソフトウェアシステム設計支援装置は、設計対象デバイスもしくは設計対象システムをプロジェクト単位に管理する。従って、最初にプロジェクトを作成する。【００６３】
次に、アプリケーション処理プログラムとそれを構成する個々のタスクを定義する画面について説明する。タスクの定義は、ＵＭＬ（Unified Modeling Language）２．０に沿ったクラス図を描いて定義する。ＵＭＬは、オブジェクト指向のソフトウェア開発における、プログラム設計図の統一表記法である。
また、アプリケーション処理プログラムの定義は、アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義することである。このタスクの実行フローをソフトウェア実行モデルと称している。
図１９と図２０は、それぞれタスク作成メニューとＵＭＬ２．０に沿ったタスク作成画面を示している。また図２１は、アプリケーション処理プログラムの定義画面である。【００６４】
次に、性能要求解析について説明する。図２２は性能要求解析メニューを示している。メニューから性能要求解析を選択すると、図２３のシミュレーション情報入力画面が表示される。図２３のシミュレーション情報入力画面を用いて、シミュレーション動作環境情報を入力する。具体的には、シミュレート時間とスケジューリング方式を入力する。
図２３の画面において、画面内の“性能目標情報”タブを選択すると、図２４の性能目標情報一覧画面が表示される。性能目標情報として、プログラムの時間制約、ここでは実行時間の上限が表示される。
個々のタスクの性能目標情報は、図２５の性能目標情報入力画面を用いて作成する。【００６５】
次に、タスク情報について説明する。
図２３の画面において、画面内の“タスク情報”タブを選択すると、図２６のタスク情報一覧画面が表示される。タスク情報一覧画面では、タスク毎にタスク名，優先度，起動オフセット，起動周期，実時間属性，実行時間，タイムスライス，実行回数の情報が一覧となって表示される。
個々のタスク情報は、図２７のタスク情報入力画面を用いて作成する。【００６６】
次に、シミュレーションによる性能評価の結果表示画面について説明する。
全体情報としては、図２８に示すように、シミュレート時間、実時間属性のタスク実行時間合計、ＣＰＵ使用率、性能目標未達成のプログラム一覧が全体情報画面として表示される。
図２８の画面において、画面内の“シーケンス”タブを選択すると、図２９のシーケンス画面が表示される。図２８のグラフ情報として、プログラム名、性能目標、最小実行時間、最大実行時間が表示される。シーケンス画面によれば、アプリケーション処理プログラムの実行時間分布を把握することができる。
図２８又は図２９の画面において、画面内の“タスクトレース”タブを選択すると、図３０のタスクトレース画面が表示される。タスクトレース画面によれば、アプリケーション処理プログラムを構成するタスクの実行順序と実行時間を把握することができる。図中のグラフでは、１つのプログラムが５個のタスク（DecodeAudioタスク，DecodeVideoタスク，Timingタスク，FileReaderタスク，Playbuttonタスク）から構成され、FileReaderタスクの実行後、Timingタスクが実行される様子が示されている。
【産業上の利用可能性】
【００６７】
本発明の計算機ソフトウェア設計支援方法および計算機ソフトウェア設計支援装置は、携帯電話端末や情報家電などスタンドアロンの計算機搭載デバイスのソフトウェア設計方法や設計支援装置として、また、自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに搭載されるソフトウェアの設計支援方法や設計支援装置として有用である。
【符号の説明】
【００６８】
１，２        メッセージキュー
３，４        データ
５            共有メモリ
６            フラッシュメモリ
１１，１２    タスク
【図１】
2012117746.tif 000003
【図２】
2012117746.tif 000004
【図３】
2012117746.tif 000005
【図４】
2012117746.tif 000006
【図５】
2012117746.tif 000007
【図６】
2012117746.tif 000008
【図７】
2012117746.tif 000009
【図８】
2012117746.tif 000010
【図９】
2012117746.tif 000011
【図１０】
2012117746.tif 000012
【図１１】
2012117746.tif 000013
【図１２】
2012117746.tif 000014
【図１３】
2012117746.tif 000015
【図１４】
2012117746.tif 000016
【図１５】
2012117746.tif 000017
【図１６】
2012117746.tif 000018
【図１７】
2012117746.tif 000019
【図１８】
2012117746.tif 000020
【図１９】
2012117746.tif 000021
【図２０】
2012117746.tif 000022
【図２１】
2012117746.tif 000023
【図２２】
2012117746.tif 000024
【図２３】
2012117746.tif 000025
【図２４】
2012117746.tif 000026
【図２５】
2012117746.tif 000027
【図２６】
2012117746.tif 000028
【図２７】
2012117746.tif 000029
【図２８】
2012117746.tif 000030
【図２９】
2012117746.tif 000031
【図３０】
2012117746.tif 000032
【手続補正書】
【提出日】平成25年7月29日(2013.7.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１８
【補正方法】変更
【補正の内容】
【請求項１８】
前記プログラム定義入力手段は、前記フロー定義部品データベースに登録された部品を用いて、繰り返し処理，条件分岐処理，並列実行処理を少なくとも定義入力できることを特徴とする請求項１０〜１２のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１９
【補正方法】変更
【補正の内容】
【請求項１９】
前記条件分岐処理は、条件実行される１以上の各タスクに対して、それぞれの実行確率を定義できることを特徴とする請求項１８に記載の計算機ソフトウェアシステム設計支援装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
また、上記の計算機ソフトウェアシステム設計支援装置において、プログラム定義入力手段は、前記フロー定義部品データベースに登録された部品を用いて、繰り返し処理，条件分岐処理，並列実行処理を少なくとも定義入力できることがより好ましい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
ここで、条件分岐処理は、条件実行される１以上の各タスクに対して、それぞれの実行確率を定義できることが好ましい。
条件実行される１以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって２つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
【国際調査報告】
2012117746.tif 000033
2012117746.tif 000034
2012117746.tif 000035
2012117746.tif 000036