(57)【要約】　　　（修正有）【課題】動的システムのソフトウェアモデルを予備ソフトウェアモデルを入力として用いて生成する方法。【解決手段】通常は、予備ソフトウェアモデル230は所与のモデリング環境内でシステム設計者が生成したシステムモデルに基づくものとなる。予備ソフトウェアモデル230はモデリング環境外からシステムモデルの内部変数へのアクセスを許可しないが該モデリング環境が存在しない場合にコンピュータプラットフォーム上で実行可能なものである。次いでシステムモデルの内部変数を開示するインタフェイスソフトウェア370が生成される。予備ソフトウェアモデル230及びインタフェイスソフトウェア370の両者から構築されたソフトウェアモデル360はモデリング環境外からの内部変数へのプラグラム上のアクセスを可能とし、モデリング環境が提供する能力を超えたシステムモデルの詳細なシミュレーションが可能となる。【選択図】図３
2004118842.tif 000002
【特許請求の範囲】
【請求項１】
　動的システムのソフトウェアモデル(360)を生成する方法であって、
　前記動的システムの予備ソフトウェアモデル(230)内に存在する少なくとも１つの内部変数を開示するよう構成されたインタフェイスソフトウェア(370)を生成し(310,320)、該予備ソフトウェアモデル(230)が所与のモデリング環境内で生成されたものであり、
　前記予備ソフトウェアモデル(230)及び前記インタフェイスソフトウェア(370)を介して前記ソフトウェアモデル(360)を構築し(330)、該ソフトウェアモデル(360)が、前記モデリング環境外から前記動的システムの前記少なくとも１つの内部変数へのユーザアクセスを可能にする、
という各ステップを含む、動的システムのソフトウェアモデル(360)を生成する方法。
【請求項２】
　前記インタフェイスソフトウェア(370)の生成に先立ち前記予備ソフトウェアモデル(230)を生成(220)するステップを更に含む、請求項１に記載の方法。
【請求項３】
　前記予備ソフトウェアモデル(230)の生成に先立ちシステムモデル(1)を生成し(210)、該予備ソフトウェアモデル(230)が該システムモデル(1)に基づくものである、
という各ステップを更に含む、請求項２に記載の方法。
【請求項４】
　前記ソフトウェアモデル(360)が、該ソフトウェアモデル(360)の実行をユーザが前記モデリング環境外から制御することを可能にするものでもある、請求項１に記載の方法。
【請求項５】
　前記インタフェイスソフトウェアを生成する前記ステップが、
　前記少なくとも１つの内部変数へのアクセスを調整するよう構成されたC++ラッパークラス(340)を生成し(310)、
　該C++ラッパークラス(340)を用いて前記予備ソフトウェアモデル(230)の前記少なくとも１つの内部変数を開示するCOMサーバを構築するよう構成されたコンポーネントオブジェクトモデル(COM)サーバ構築ソフトウェア(350)を生成する(320)、
という各ステップを更に含む、請求項１に記載の方法。
【請求項６】
　前記ソフトウェアモデル(360)が、ソフトウェアクライアントにより実行可能となるよう構成されたダイナミックリンクライブラリ(DLL)である、請求項１に記載の方法。
【請求項７】
　前記ソフトウェアモデル(360)がコンソールアプリケーションである、請求項１に記載の方法。
【請求項８】
　コンピュータシステムにより実行することが可能なプログラムであって動的システムのソフトウェアモデル(360)を生成する方法ステップを実行するプログラムを記憶させた、コンピュータシステムによりデータを読み出すことが可能なプログラム記憶媒体であって、前記方法ステップが、
　前記動的システムの予備ソフトウェアモデル(230)内に存在する少なくとも１つの内部変数を開示するよう構成されたインタフェイスソフトウェア(370)を生成し、前記予備ソフトウェアモデル(230)が所与のモデリング環境内で生成されたものであり、
　前記予備ソフトウェアモデル(230)及び前記インタフェイスソフトウェア(370)を介して前記ソフトウェアモデル(360)を構築し、該ソフトウェアモデル(360)が、前記モデリング環境外から前記動的システムの前記少なくとも１つの内部変数へのユーザアクセスを可能にする、
という各ステップを含む、プログラム記憶媒体。
【請求項９】
　前記方法ステップが、前記インタフェイスソフトウェア(370)の生成に先立ち前記予備ソフトウェアモデル(230)を生成(220)するステップを更に含む、請求項８に記載のプログラム記憶媒体。
【請求項１０】
　前記方法ステップが、前記予備ソフトウェアモデル(230)の生成に先立ちシステムモデル(1)を生成するステップを更に含み、前記予備ソフトウェアモデル(230)が前記システムモデル(1)に基づくものとなる、請求項９に記載のプログラム記憶媒体。
【請求項１１】
　前記ソフトウェアモデル(360)が、該ソフトウェアモデル(360)の実行を前記ユーザが前記モデリング環境外から制御することを可能にするものでもある、請求項８に記載のプログラム記憶媒体。
【請求項１２】
　前記インタフェイスソフトウェアを生成する前記ステップが、
　前記少なくとも１つの内部変数へのアクセスを調整するよう構成されたC++ラッパークラス(340)を生成し(310)、
　前記C++ラッパークラス(340)を用いて前記予備ソフトウェアモデル(230)の前記少なくとも１つの内部変数を開示するCOMサーバを構築するよう構成されたコンポーネントオブジェクトモデル(COM)サーバ構築ソフトウェア(350)を生成する(320)、
という各ステップを更に有する、請求項８に記載のプログラム記憶媒体。
【請求項１３】
　前記ソフトウェアモデル(360)が、ソフトウェアクライアントにより実行可能となるよう構成されたダイナミックリンクライブラリ(DLL)である、請求項８に記載のプログラム記憶媒体。
【請求項１４】
　前記ソフトウェアモデル(360)がコンソールプログラムである、請求項８に記載のプログラム記憶媒体。
【請求項１５】
　動的システムのソフトウェアモデル(360)を表すダイナミックリンクライブラリ(DLL)(360)を生成する方法であって、
　前記動的システムの予備ソフトウェアモデル(230)内に存在する少なくとも１つの内部変数へのアクセスを調整するよう構成されたC++ラッパークラス(340)を生成し(310)、前記予備ソフトウェアモデル(230)が所与のモデリング環境内で生成されたものであり、
　前記C++ラッパークラス(340)を用いて前記予備ソフトウェアモデル(230)の前記少なくとも１つの内部変数を開示するCOMサーバを構築するよう構成されたコンポーネントオブジェクトモデル(COM)サーバ構築ソフトウェア(350)を生成し(320)、
　前記予備ソフトウェアモデル(230)、前記C++ラッパークラス(340)、及び前記COMサーバ構築ソフトウェア(350)を用いて前記DLL(360)を構築し(330)、該DLL(360)が前記モデリング環境外のソフトウェアクライアントにより実行可能であり、該DLL(360)が前記ソフトウェアクライアントを介してユーザが前記動的システムの前記少なくとも１つの内部変数へアクセスすることを可能にする、
という各ステップを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明はオリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法に関するものである。
【背景技術】
【０００２】
　動的システムは、その環境内で変化する条件に対して何らかの有益な態様で応答する、人間が考案したシステムであり、かかるシステムの設計者に対して大きな難題を呈するものである。これは、かかるシステムが効率的に処理することができなければならない条件が膨大な異なるものであるからである。例えば、かかる動的システムの一種を表す電気回路や電子回路は、入力信号に基づいて出力信号を供給することにより、絶えず変化する入力信号に反応して、該システムが動作する環境において何らかの好ましい動作を生じさせなければならないことが多い。電気回路や電子回路は、電子レンジやパーソナルコンピュータ等の日用家電品からハイテク軍事兵器に至る極めて複数の用途で非常に効果的に利用されている。更に、動的システムはまた、特定の有益な機能を遂行するよう書かれたあらゆる種類のソフトウェアを含む。更に、動的システムは、電気的、ソフトウェア的、機械的、空気圧的、又は化学的な原理またはそれらの何らかの組み合わせに基づくものを含むことが可能である（但しこれらには限定されない）。
【０００３】
　動的システムの設計作業は、システムシミュレーション技術の継続的な改良により大幅に強化されてきた。かかるシミュレーションにより、構築及び保守が困難な高価なプロトタイプを必要とすることなく最初に動的システムの設計モデルを試験することが可能となる。シミュレーションを通じて、あらゆる想像可能な一組の試験条件を用いて予備的なシステム設計を細部まで行なうことが可能となる。次いでその試験結果をシステム設計者が使用してシステム性能を解析することが可能となる。一般に、該試験結果に基づいて変更が行われ、試験が再実行され、その試験結果が再度解析されて、該変更による影響の善悪が判定される。かくして、シミュレーションは、試験対象となるシステムの実際の構成に先立ち反復的な態様で動的システムの設計を改善することを可能にし、その結果として、より短期間でより生産的なシステム開発を行うことが可能となる。
【０００４】
　かかるモデリング環境の具体例は、Mathworks Inc.によるSimulink(R)（システム定義及びシミュレーションツール）である。図２に示すように、モデリング環境210は、動的システムが電気的、機械的、又はその他のものであろうと、設計者により決定された特性を有するシステムモデル1により動的システムをシステム設計者が指定することを可能にする。システムモデル1の一例を図１に示す。該システムモデル1は、システムモデル1内で幾つかの識別可能な作業をそれぞれ遂行する幾つかの機能ブロック2からなる。通常は、１つ又は２つ以上の入力信号3及び出力信号4（すなわち包括的には外部変数）が、モデル1で表わされる動的システムにより利用されて、周囲の環境と通信し該環境に影響を及ぼす。各機能ブロック2には、該機能ブロック2がその特定の機能を実行する態様に影響を与える１つ又は２つ以上のブロックパラメータ5を関連付けることが可能である。更に、システムモデル1の内部信号6は、機能ブロック2が通信することを可能にし、これにより機能ブロック2間の協働により動的システムの全機能を実行することが可能になる。Simulink等の大部分のモデリング環境210はまた、階層的な設計を可能にするものである。これは、システムモデル1の各ブロック2が、それよりも低いレベルのブロックである様々な機能を表す小ブロック（図示せず）を含むことが可能であるからである。
【０００５】
　図２に示すように、Simulink環境において指定されたシステムモデル1は次いで、システム設計者により考案された入力信号3を使用して同じ環境内でシミュレートすることが可能となる。モデルの解析、それに次ぐ設計変更、及び更なるシミュレーションは、通常、Simulinkツールの領域内で全てもたらされる。このプロセスの価値を高めるために、Simulinkは、内部信号6、ブロックパラメータ5、及び提案されるシステムの挙動を画定するシステムモデル1の他の重要な内部変数へのアクセスを可能にする。内部信号6は、システムモデルの動作に関する設計者によるより多くの洞察を可能にし、一方、パラメータブロック5の修正は、設計者がシミュレーション期間中にモデル1の動作を変更することができる方法を提供する。このため、かかる内部変数へのアクセスは、シミュレーション及び解析プロセス全体を一層効率的なものにする。
【０００６】
　Real-Time Workshop(R)（RTW）と呼ばれるMathworksにより提供されるような関連するコード生成ツール220は、モデリング環境210内で入力として当初に開発されたシステムモデルを受け取って、システムモデル（図２の符号230）を表すコード（すなわちソフトウェア）を生成する。該コード230は、CやAdaその他を含む幾つかの異なるプログラミング言語のうちの１つで生成することができる。次いで該コード230を別のプラットフォームへ転送してそこで実行することが可能であり、該コード230の実行は、プラットフォームの特性に応じておそらくはリアルタイムで進行する。電子制御システムの場合には、該プラットフォームは、制御システムを実施するために最終的に使用される目的のプラットフォームとすることが可能であり、このため、システムモデルの生成から製品レベルのコードまでほぼシームレスな進行が提供される。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
　残念なことに、シミュレーション環境210内で当初はアクセス可能なシステム内部変数（図１の内部信号6やブロックパラメータ5等）は、モデルコード230を実行するプラットフォーム上では、設計者が特に作成した追加のモデル固有のソフトウェアを用いずにアクセスすることができなくなることが多い。Mathworks環境内でのこの状況を改善する努力において、RTWツールは「外部モード」オプションを提供した。これは、Simulink環境を介してアクセスされた際にRTWにより生成されたコード（以下「RTW生成コード」と称す）の内部変数に設計者がアクセスすることを可能にするものである。外部モードを使用する場合、Simulinkを介したかかる内部変数へのアクセスは、RTW生成コードが、Simulinkを実行しているプラットフォームと同じプラットフォーム上で実行されようが、伝送制御プロトコル／インターネットプロトコル（TCP/IP）等の通信リンクを介してSimulinkプラットフォームに接続された別のプラットフォーム上で実行されようが、可能である。しかし、何れの場合にも、シミュレーションの制御は依然として完全にSimulinkモデリング環境内で与えられる。その結果として、RTW生成コードを実行する能力、並びに別個のプラットフォーム上で動作しているそのコードの内部変数にアクセスする（おそらくは変更する）能力が、Simulinkの能力、並びにSimulinkプラットフォームとRTW生成コードをホストするプラットフォームとの間の通信コネクションの利用可能性に依存するものとなる。換言すれば、実行中のソフトウェアモデルの内部変数にアクセスする能力、並びにおそらくはかかる場合に該ソフトウェアモデルの実行を、オリジナルのモデリング環境外に位置するソフトウェアクライアントを介して制御する能力は、現時点では利用することができない。
【０００８】
　それ故、上述より、ソフトウェアモデルの内部変数にアクセスする能力並びにおそらくはソフトウェアモデルの実行を制御する能力をオリジナルのモデリング環境外のソフトウェアクライアントに自動的に与える方法は、有利なものとなる。かかる方法は、システム設計者に対し、オリジナルモデリング環境が存在しない場合に利用可能なソフトウェアモデルの実行の形式及び範囲並びに該ソフトウェアモデルへのアクセスに大きな柔軟性を提供するものとなる。
【課題を解決するための手段】
【０００９】
　以下で詳述する本発明の実施形態は、予備ソフトウェアモデルから動的システムのソフトウェアモデルを生成する方法を表したものである。システムモデルの動作を表す予備ソフトウェアモデルは、通常はモデリング環境内で指定されたシステムモデルを用いて生成される。予備ソフトウェアモデルは、オリジナルのソフトウェアモデルを生成するために使用されたモデリング環境の外部で実行可能なものであるが、該モデルの内部変数は一般に、該モデリング環境に関連しないソフトウェアクライアントによりアクセスすることはできない。
【００１０】
　この状況を緩和させるために、本発明の一実施形態では、予備ソフトウェアモデルの内部変数の少なくとも１つを開示するインタフェイスソフトウェアが生成される。次いで該予備ソフトウェアモデル及びインタフェイスソフトウェアからソフトウェアモデルが構築される。このため、この結果的に得られるソフトウェアモデルは、モデリング環境の外部から、内部変数へのプログラムによるアクセスを可能とし、おそらくは該ソフトウェアモデルの実行の制御を可能とする。
【００１１】
　かかるソフトウェアモデルは、オリジナルモデリング環境内で利用可能となるものよりも高いシミュレーション能力及び解析能力を有するソフトウェアクライアントによって、動的システムを表すソフトウェアモデルを詳細にシミュレートし解析することを可能にする。更に、モデルの実行制御が可能になると、かかるソフトウェアクライアントは複数のソフトウェアモデルの実行を制御することが可能となり、このため、かかるソフトウェアモデルがソフトウェアクライアントを介して互いに作用し合うことが可能になる。更に、かかるプログラムによるインタフェイスを採用するソフトウェアモデルは、異種の互換性のないモデリング環境の使用を通じて生成することができ、しかも、かかるソフトウェアモデルは、ソフトウェアクライアントを介して互いに作用し合うことが可能となる。
【００１２】
　本発明の他の特徴及び利点は、本発明の原理を例示する添付図面と併せて行う以下の詳細な説明から明らかとなろう。
【発明を実施するための最良の形態】
【００１３】
　以下に詳述する本発明の実施形態は、Mathworks Simulink(R)モデリング環境内で生成されたソフトウェアモデル（以下「予備ソフトウェアモデル」と称す）を開始点として用いる。更に、以下の実施形態は、Mathworks Real-Time Workshop(R)（RTW）コード生成ツール環境内に統合されて該RTW内で通常得られるものを越える一層強力な能力でコードを生成するソフトウェアとして存在するものである。しかし、他のシミュレーションモデル及びそれに対応する開発ツール環境を本発明の代替的な実施形態の基礎として同様の態様で採用することも可能である。
【００１４】
　更に、本発明の代替的な実施形態のソフトウェアは、関連するモデリング環境との様々なレベルの統合で表すことが可能である。例えば、代替的な実施形態は、コード生成ツールとは別個にインストールされる別個の後続(follow-on)ソフトウェアを含むことが可能である。他の実施形態は、本書で具体的に説明するものと同様に、コード生成ツールとは無関係に開発されたが該ツールにより提供される幾つかの言語ターゲットの１つとしてコード生成ツール内に統合されたソフトウェアを含むことが可能である。また、他の実施形態では、コード生成ツール内に統合されたコードであって、該コード生成ツールの残りを構成するものから外部の観察者が識別することが不能となる程度に十分に統合された、コードを提供することが可能である。
【００１５】
　図３は、本発明の方法300の一実施形態を示すフローチャートを示している。該方法300により入力として受信されるのは予備ソフトウェアモデル230であり、これは、例えば図２に示したRTW等のコード生成ツール220により生成されたコード230とすることが可能である。予備ソフトウェアモデル230は、やはり図２に示したモデリング環境210内で生成されたシステムモデル1から導出される。その結果として、コード生成ツール220は（それ自体又はモデリング環境210との組み合わせたものが）本発明の代替的な実施形態に含めることが可能なものとなる。
【００１６】
　上述のように、予備ソフトウェアモデル230は、オリジナルのシステムモデルで記述された機能を実行することが可能である。実施形態に応じて、予備ソフトウェアモデル230の実施に用いるターゲットプログラミング言語は、C、Ada、又はC++等のオブジェクト指向プログラミング言語を含む他のあらゆるプログラミング言語とすることが可能である。図３の実施形態では、予備ソフトウェアモデル230は一般的なWin32ターゲットとして生成され、これは典型的にはMathworks RTWツールにより提供される。概して言えば、予備ソフトウェアモデル230は、本発明の実施形態によるあらゆる処理に先立ち、ブロックパラメータや内部信号等の内部変数へのアクセスをSimulinkモデリング環境外に許容することはない。代替的に、内部変数へのアクセスが許容される場合には、かかる変数はモデリング環境を介してのみアクセスすることが可能となり、該環境はまた、予備ソフトウェアモデル230の実行の本質的に完全な制御を維持するものとなる。
【００１７】
　モデルの実行制御及び内部変数へのアクセスを同時に可能とするために、方法300の各ステップは、予備ソフトウェアモデル230内に存在する内部変数をオリジナルモデリング環境外に開示する（図２の）インタフェイスソフトウェア370を作成する。図３の実施形態では、名前及びデータ種別によりシステムの内部変数を記述し、並びにそれら変数へのアクセスを調整する機能を記述する、C++ラッパークラス340が最初に生成される（ステップ310）。C++の使用は、他のオブジェクト指向言語と同様に、制御された態様で内部変数の一部または全部の開示を可能とする一方で、予備ソフトウェアモデル230のうち設計者が通常隠したままにすることを望む他の部分へのアクセスを妨げることを可能にする。C++は本書で説明する実施形態のために選択された言語であるが、本発明は、他の応用例に適した他の任意の言語も意図したものである。
【００１８】
　図３の実施形態では、C++ラッパークラス340を使用してソフトウェア350が生成される（ステップ320）。該ソフトウェア350は、その実行時にコンポーネントオブジェクトモデル（COM）サーバを構成するものである。COMは、マイクロソフト社により指定された広範に使用されるソフトウェアアーキテクチャ定義であり、これにより、個別のソフトウェア開発者によって様々な言語で書かれたソフトウェア「コンポーネント」（すなわちソフトウェアの各構成部分）が相互に通信することが可能となる。基本的には、COMアーキテクチャは、ソフトウェアの異種の各部の統合を容易にし、それら各部が互いに通信する態様を律する枠組を定義することにより何らかの統合された機能を実行する。図３の実施形態におけるCOM技術を利用することの主な利点は、該技術が、実質的に全てのWin32ベースのプラットフォームにわたって用いられ、このため、かかるプラットフォーム上における、結果的に得られるソフトウェアモデルの転送及び実行のためのタスクが、比較的単元的なものになる、という点にある。しかし、本発明の他の実施形態にCOM技術を使用する必要はない。これは、他の方法を使用して、予備ソフトウェアモデル230の内部変数へのアクセスを可能にすることができるからである。例えば、より包括的なインタフェイス技術であるMicrosoft(R)「.NET」を用いることも可能である。Microsoft(R)「.NET」は、一組のXMLウェブサービスを用いてソフトウェアの各部間の相互接続を可能にするものである。代替的には、C++ラッパークラス340及び予備ソフトウェアモデル230からWin32コンソールアプリケーションを直接生成し、これにより、特定のシステムモデルに関して特に生成された実行可能なシミュレーションプログラムを得ることが可能である。
【００１９】
　次いで、予備ソフトウェアモデル230、C++ラッパークラス340、及びCOMサーバ構築ソフトウェア350を使用してダイナミックリンクライブラリ（DLL）360が構築される。概して言えば、DLLとは、実行可能プログラムが構築される時点ではなく、その実行時に該実行可能プログラムとリンクさせることが可能な、ソフトウェアファイルである。DLLは、Win32システムで広く使用されており、実行可能プログラムの実行中にソフトウェアのどの部分を該実行可能プログラムにより実行すべきかに関する決定を行うことを可能にすることにより、プログラム構成に柔軟性をもたらすものである。COM技術のように、DLLはWin32のアプリケーションによって広範に採用されている。
【００２０】
　Simulink内で生成されたシステムモデルをDLL360へ変換するプロセス全体は、システム設計者によりコード生成プロセスの一部として開始されるソフトウェアスクリプトによりRTW環境内で自動的に行なわれる。典型的には、設計者は、ソフトウェアにおいてSimulinkにより生成されるシステムモデルを記述する幾つかのコードターゲットのうちの１つを選択することができる。かかるターゲットは通常は、C、C++、Ada、及び様々なリアルタイムプロセッサアーキテクチャに関する様々な種類の埋込型のターゲットで書かれたソフトウェアを含む。本発明の実施形態は、設計者に対して利用可能なターゲットの更に別の選択肢を提供し、該ターゲットが、オリジナルのシステムモデリング環境外に存在するソフトウェアクライアントによるシステムモデルの内部変数への（従来利用不能であった）アクセス能力を提供する。このターゲットが選択されると、特定のシステムモデルに関して前述のステップを実行するRTW内でソフトウェアスクリプトの集合が実行される。より詳細には、図３の実施形態によれば、ビジュアルC++プロジェクトファイルが生成され、C++Visual Studio（これもまたMicrosoft(R)により開発されたもの）が呼び出されてプロジェクトが構築され、結果的にDLL360が生成され、次いで該DLL360がオペレーティングシステムにより請われ、それ自体がCOMサーバとしてシステムレジストリ内に登録される。更に、DLL360の他の生成方法を採用することも可能である。
【００２１】
　一旦DLL360が構築されると、次いで該DLL360は、任意のWin32コンピュータプラットフォーム（Simulink開発環境をホストしないものを含む）へと転送することが可能となる。システムモデルの実行とモデルの内部変数へのアクセスとに必要な全ての情報は該DLL360内に含まれる。このため、DLL360は、結果的に得られるシステムモデルをシミュレートすることができるプラットフォームの種類及び数に極めて大きな柔軟性を提供するものとなる。
【００２２】
　DLL360を利用するために、該DLL360にリンクした選択されたプラットフォーム上のソフトウェアクライアント（図示せず）すなわち実行可能プログラムを、システム設計者が開始させる。COM技術を介して、DLL360は標準化されたインタフェイス定義を提供し、これに合わせてソフトウェアクライアントを設計することにより、システムモデルの全ての内部変数をクライアントからアクセスできるようにすることが可能となる。典型的には、クライアントは、モデルに関してシミュレーションを実行する能力、並びにモデルを定期的に停止させて設計者が所与の時点でシステムモデルの入力信号、出力信号、及び内部変数の「スナップショット」を視認することができるようにする能力を有するものとなる。また、これらの信号及び変数の各々に対する書き込み（及び通常は読み出し及びアクセス）を、それら信号または変数の各々が関連するブロックの識別子といったあらゆる有用な識別情報と共に、提供することが可能である。更に、信号及び変数の図形的な表現を提供して、各信号及び変数について捕捉した値を解析するための別の方法を設計者に提供することが可能である。
【００２３】
　ソフトウェアクライアントは、多くの形式のうちの任意の形式を採用することが可能である。例えば、実行可能プログラムは、ソフトウェアモデル及びその内部変数にユーザがアクセスすることを可能にするために特に考案された特定目的アプリケーションである「モデルブラウザ」とすることが可能である。ブラウザは典型的には、DLL360とリンクしたWin32アプリケーションであり、これは、DLL360により表わされるモデルに関連する内部変数及び外部信号情報を全て獲得するものである。次いで該情報は、該ブラウザを介してアクセスしてそれらの値の監視や修正を行うことが可能となる。該ブラウザはまた、モデルに関する初期条件を設定し、モデルの実行を開始させ又は停止させ、及び様々な信号やそれに伴う内部変数の数値的表現及び図形的表現の双方にアクセスする、といった能力をユーザに提供するものとなることが十分に考えられる。
【００２４】
　代替的に、ソフトウェアクライアントは、Microsoft Excel(R)ワークブックといった、より一般的な汎用プログラムの特定例とすることが可能である。かかるプログラムは、モデルとその信号及び変数に対する同種のアクセスを可能にするものとなる。ワークブックの異なる複数のスプレッドシートはまた、モデル動作の異なる複数のビューを提供するものとなる。例えば、１つのスプレッドシートは、複数の内部変数、それらのデータ種別、及びそれらの現在の値を示すことが可能である。他のシートは、関心の対象となる特定の変数の図形的な表現を表示することが可能である。
【００２５】
　ソフトウェアクライアントにより採用した特定の形態にかかわらず、本発明の重要な潜在的利点は、複数の異種のDLL360（おそらくはその各々が一層大きなソフトウェアモデルの一部を表すもの）がソフトウェアクライアントを介して互いに作用し合う能力にある。図４に示すように、ソフトウェアクライアント400は、４つの別個のDLL360A,360B,360C,360Dの実行を制御する。該DL360A〜Dの各々は、それぞれ異なるモデリング環境内でモデル化されたものとすることが可能である。かかる環境は一般的ではない。これは、システム設計者がシステムの特定部分をモデル化するために１つのモデリング環境を好み得るからである。更に、DLL360A〜Dは、通信リンクを介してソフトウェアクライアント400と通信することがそれぞれ可能な別個のハードウェアプラットフォーム上で実行することが可能である。ソフトウェアクライアント400は、各DLL360A〜Dの実行、並びに各々の内部変数及び外部信号へのアクセスを制御することができるため、該ソフトウェアクライアント400を介してDLL360A〜Dが互いに作用し合うことを可能にする能力を有しており、このため、DLL360A〜Dが１つの単一のシステムとして作用することが可能となり、一方、ソフトウェアクライアント400は、各DLL360A〜Dへのプログラム上のアクセスを維持する。それ故、本発明の実施形態により生成されるDLL360A〜Dとして実施される多様なソフトウェアモデルは、互いに作用し合うことが可能となり、ソフトウェアクライアントは、別個のDLL360A〜Dの各々の内部変数へのクライアントのアクセスのお陰でシステム全体にわたる優れた解析能力を維持することになる。
【００２６】
　複数のDLL360A〜Dを用いることの別の利点は、（電子的又はソフトウェアをベースとするモデルにおいて）複数の独立したクロック領域を用いるシステムを一層精確にシミュレートすることが可能になる点である。かかるシミュレーションは、システム全体を複数の別個のDLL360A〜Dへと編成し、その各々が、システム全体のうちそのDLL自体の自律的なクロック領域内で実行する部分を表すものとすることにより、達成することが可能である。次いでDLL360A〜Dは、別個のハードウェアプラットフォーム上で実行することが可能となり、又はマルチタスク方式で同一プラットフォーム内で実行することが可能となる。次いで、上述したように、別個に動作しているDLL360A〜D間の相互作用がソフトウェアクライアント400によって容易化されることになる。
【００２７】
　上述したように、上記の本発明の実施形態は、オリジナルのシステムモデルを定めたモデリング環境外に存在するソフトウェアクライアントにより実行することが可能な動的システムのソフトウェアモデルを生成する方法を提供すべく示したものである。更に、本発明を実施する他の具体化なシステムや方法もまた実施することが可能である。それ故、本発明は上記で説明し図示した具体的な形態に限定すべきものではなく、すなわち、本発明は特許請求の範囲によってのみ限定されるものである。
【図面の簡単な説明】
【００２８】
【図１】Simulinkモデリング環境並びにその他のモデリング環境内で表すことが可能なシステムモデルを示すブロック図である。
【図２】動的システムのモデルを表すソフトウェアを開発する従来技術の方法を示すフローチャートである。
【図３】動的システムのソフトウェアモデルを開発する本発明の一実施形態による方法を示すフローチャートである。
【図４】ソフトウェアクライアントを介して互いに作用し合う複数の異種のソフトウェアモデルを表すブロック図である。
【符号の説明】
【００２９】
1　　システムモデル
2　　機能ブロック
3　　入力信号
4　　出力信号
5　　ブロックパラメータ
6　　内部信号
210　モデリング環境
220　コード生成ツール
230　コード
300　方法
340　C++ラッパークラス
350　COMサーバ構築ソフトウェア
360，360A，360B，360C，360D　ダイナミックリンクライブラリ（DLL）
370　インタフェイスソフトウェア
400　ソフトウェアクライアント
【図１】
2004118842.tif 000003
【図２】
2004118842.tif 000004
【図３】
2004118842.tif 000005
【図４】
2004118842.tif 000006