Nothing Special   »   [go: up one dir, main page]

JP6033891B2 - 状態図の生成 - Google Patents

状態図の生成 Download PDF

Info

Publication number
JP6033891B2
JP6033891B2 JP2014557823A JP2014557823A JP6033891B2 JP 6033891 B2 JP6033891 B2 JP 6033891B2 JP 2014557823 A JP2014557823 A JP 2014557823A JP 2014557823 A JP2014557823 A JP 2014557823A JP 6033891 B2 JP6033891 B2 JP 6033891B2
Authority
JP
Japan
Prior art keywords
transition
state
representing
states
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014557823A
Other languages
English (en)
Other versions
JP2015517128A (ja
Inventor
シッダルタ シャンカル
シッダルタ シャンカル
スリナス アバダヌラ
スリナス アバダヌラ
エブラヒム メスチアン
エブラヒム メスチアン
ビジェイ ラグハバン
ビジェイ ラグハバン
ヨー レン
ヨー レン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MathWorks Inc
Original Assignee
MathWorks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MathWorks Inc filed Critical MathWorks Inc
Publication of JP2015517128A publication Critical patent/JP2015517128A/ja
Application granted granted Critical
Publication of JP6033891B2 publication Critical patent/JP6033891B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Description

有限状態機械(FSM:finite−state machine)、または単に状態機械とは、特に、コンピュータプログラムおよびディジタル論理回路を設計するために使用される数学的モデルである。状態機械は、条件が満たされると、ある状態から別の状態に変化し得る。
状態機械モデルのための状態‐状態遷移表を記述するデータ構造を示す図である。 状態機械モデルのための状態‐事象遷移表または状態‐条件遷移表を記述するデータ構造を示す図である。 図1Aに記載される状態機械モデルに対応するように生成された状態図を示す図である。 1または複数の実施形態による方法およびシステムを実装するための例示的な環境の図である。 一実施形態によるコンピュータデバイスの例示的な構成要素を示す図である。 一実施形態におけるモデリングシステムの例示的な構成要素の図である。 一実施形態における状態機械モデルについての状態遷移表を記述するデータ構造を示す図である。 図4の状態遷移表によって記述される状態機械モデルの状態図を示す図である。 図4の状態遷移表によって記述される状態機械モデルの状態図を示す図である。 状態機械モデルを記述するデータから状態図を生成するプロセスのフローチャートである。 状態機械モデルを記述するデータから状態図を生成するプロセスのフローチャートである。
図1Aは、状態機械モデルについての状態‐状態遷移表102を記述するデータ構造を図示する。表102は、状態機械モデルの遷移元状態(例えば、状態の名前、状態と関連付けられたラベル、状態と関連付けられた注釈など)(例えばS1およびS2)を格納する縦のフィールド列104(例えば表102の左側に沿った)を含む。ここで、「S1」は状態の名前または状態と関連付けられたラベルである。同様に、「S2」も別の状態の名前または状態と関連付けられたラベルである。
表102は、状態機械モデルの遷移先状態(例えばS1およびS2)を格納する横のフィールド行106(例えば表102の上に沿った)も含む。前述のように、「S1」は状態の名前であり、「S2」は別の状態の名前である。遷移元状態のうちの1つによって特定される行と遷移先状態のうちの1つによって特定される列との交点には、状態機械モデルが、対応する遷移元状態から対応する遷移先状態に遷移する条件(または事象)(例えば条件C11〜条件C22)を格納する条件フィールドがある。表102によれば、例えば、状態機械が現在、遷移元状態S1にある場合には、条件C12が満たされると、状態機械は状態S2に遷移し得る。条件C11〜条件C22は、例えば、ブール条件を含んでもよい。
条件と共に、表102は、状態機械モデルが、対応する遷移元状態から対応する遷移先状態に遷移する場合に(例えば、対応する条件が満たされた場合に)、状態機械が取る(または実行する)べきアクション(例えばA11〜A22)を格納するアクションフィールドを含む。表102によれば、例えば、状態機械が現在、遷移元状態S1にあり、条件C12が満たされた場合には、状態機械は、状態S2に遷移するときにアクションA12を取る。アクションA11〜アクションA22は、変数に値を割り当てる、事象を生成する等をし得る。一実施形態では、表102は、例えば、アクションフィールド、条件フィールド、および/または遷移先フィールドを除外し得る。さらに、一実施形態では、表102内の1または複数のセルが、アクションフィールド、条件フィールド、および/または遷移先フィールドを除外してもよい。例えば、表102は、条件が満たされるが、状態機械モデルが異なる状態に遷移しない場合に取られるアクションを規定し得る。
前述のように、行(例えば、遷移元状態の名前で特定される)と列(例えば、遷移先状態の名前で特定される)との交点には、条件フィールドおよび、おそらくは、アクションフィールドがある。便宜上、条件フィールドおよびそれに対応するアクションフィールドを、遷移元状態および遷移先状態に対応する「セル」とみなされ得る。前述のように、セルは、アクションフィールド、条件フィールドを、または遷移先フィールドさえも含んでもよく、または含まなくてもよい。図1Aの記述は、状態機械モデルのセマンティクス(例えば意味)を決定するための1つのシンタックス(例えば状態‐状態表の規則)を提供する。一実施形態では、状態‐状態表102のセルの位置は、例えば、状態機械モデルの実行順に作用し得て、したがって、このシンタックスもまた、状態機械モデルのセマンティックにも作用し得る。
図1Bは、状態機械モデルのための状態‐条件(または状態‐事象)表112を記述するデータ構造を図示する。表102と同様に、表112は、状態機械モデルの遷移元状態(例えば、状態の名前、状態と関連付けられたラベル、状態と関連付けられた注釈)を格納する縦のフィールド列114(例えば表112の左に沿った)を含む。表102とは異なり、表112は、条件または事象を格納する横のフィールド行116(例えば表112の上に沿った)を含む。遷移元状態のうちの1つによって特定される行と条件のうちの1つによって特定される列との交点には、対応する条件が満たされた場合に、または事象が発生した場合に、状態機械が遷移し得る遷移先状態を格納する遷移先フィールドがある。表112によれば、例えば、状態機械が現在、遷移元状態S1にあり、条件C2が満たされた場合には、状態機械は状態S2に遷移し得る。表102と同様に、条件C1および条件C2は、例えば、ブール条件を含んでもよい。
条件と共に、表112は、対応する条件を満たした場合に、対応する遷移元状態にあるときに(例えば、状態機械モデルが、対応する遷移先状態に遷移するときに)、または対応する事象が発生した場合に、状態機械が取る(または実行する)べきアクション(例えばA11〜A22)を格納するアクションフィールドを含む。表112によれば、例えば、状態機械が現在、遷移元状態S1にあり、条件C2が満たされた場合には、状態機械は、アクションA12を取る(例えば、それが状態S2に遷移する時点で)。アクションA11〜アクションA22は、変数に値を割り当てる、事象を生成する等をし得る。一実施形態では、表112は、例えば、アクションフィールドを除外し得る。
前述のように、行(例えば遷移元状態によって特定される)と列(例えば条件によって特定される)との交点には、遷移先状態フィールドおよび、おそらくは、アクションフィールドがある。便宜上、遷移先状態フィールドおよびそれに対応するアクションフィールドを、遷移元状態および条件に対応する「セル」とみなされ得る。セルは、アクションフィールドを含んでもよく、または含まなくてもよい。図1Bの記述は、状態機械モデルのセマンティクス(例えば意味)を決定するための別のシンタックス(例えば状態‐条件表の規則)を提供する。一実施形態では、状態‐条件表112のセルの位置は、例えば、状態機械モデルの実行順に作用し得て、したがって、このシンタックスはまた、状態機械モデルのセマンティックにも作用し得る。
状態機械によってモデル化されるシステムに応じて、ユーザは状態機械を、状態‐状態遷移表によって、または状態‐条件遷移表によって記述するよう選択し得る。すなわち、ある場合には、状態‐状態遷移表を選択した方がより好都合となり、別の場合には、状態‐条件遷移表を選択した方がより好都合となる。
状態機械モデルが前述のように格納されることに加えて、状態機械モデルは、図1Aおよび図1Bに示されるように提示(例えば表示)され得る。すなわち、ユーザは、状態機械モデルを、ディスプレイ上の状態‐状態遷移表102として、またはディスプレイ上の状態‐条件遷移表112として見得る。
図1Cは、表102に記述される状態機械モデルに対応するように生成された状態図を図示する。図1Cには、状態が楕円形で示されており、遷移が状態間の矢印で示されている。アクションおよび条件(括弧内の)は、遷移を表す関連付けられたラインの横に示されている。図1Cの記述も、状態機械モデルのセマンティクス(例えば意味)を決定するためのシンタックス(例えば状態図の規則)を提供する。状態図122のシンタックスはまた、記号の形状(例えばライン、円、楕円)、記号の位置(例えばある円から別の円までの)、および記号の配置(例えば、ある記号が別の記号の上にあること、ある記号の別の記号に対する相対的位置など)を含んでもよい。一実施形態では、記号の配置は、例えば、状態機械モデルの実行順に作用し得て、したがって、このシンタックスはまた、状態機械モデルのセマンティックにも作用し得る。
上記の例では、状態図122で表される状態機械モデルのセマンティクスは、(例えば、状態図122と表102との間で実行の順序が同じであるとすると)、たとえシンタックスが異なっていたとしても、状態‐状態表102で表される状態機械モデルのセマンティクスとして同じと目される。さらに、状態‐状態表102のシンタックスと状態図122のシンタックスとの間には近い関係が存在する。例えば、列104および行106(表102)に表示されている状態フィールドと状態図122の円(例えばあるタイプの図形記号)との間には1対1の対応関係がある。別の例として、表102の条件フィールド内の条件(C11、C12、C21、およびC22)によって定義される遷移と状態図122内のライン(例えばあるタイプの図形記号)との間には1対1の対応関係がある。さらに複雑な状態機械モデルでは、そうした1対1の対応関係は、状態表の意味的に正しい状態図表現(例えば、状態‐状態表から状態図を生成する場合には)であるが、人間にとってセマンティクスを理解することが非常に難しいものをもたらし得る。
後述するように、本明細書に記述する方法およびシステムは、状態機械モデル(状態‐状態表102、状態‐条件表112、または以下でより詳細に記述する統合状態遷移表といった)を記述するデータから、状態図(状態図122といった)を記述するためのデータを生成し得る。一実施形態は、状態図に、例えば、状態機械モデルのセマンティックを変更しない追加的なシンタックス要素を導入し得る。追加的なシンタックス要素を導入することにより、状態機械モデルのセマンティクスは、人間にとってより分かりやすくされ得る。後述する一実施形態では、状態機械モデルの状態表または異なる状態図から状態図(例えば追加のシンタックスを有する)が生成され得る(例えば、状態機械モデルの元の表現がどのようなものであれ、状態機械モデルのセマンティクスを維持しながら)。状態機械モデルのセマンティクスを維持することは、第1のデータで表される第1の状態機械モデルのセマンティクスが第2のデータで表される第2の状態機械モデルのセマンティクスと等価であることを意味する。
<例示的なモデリング環境>
図2Aは、例えば、状態図を生成するための方法およびシステムを実装するための例示的な環境200の図である。図2Aに示されるように、環境200は、コンピュータデバイス210、ネットワーク230、ターゲット環境240、およびプロセッシングクラスタ250を含んでもよい。
コンピュータデバイス210は、パーソナルコンピュータ、ワークステーション、サーバデバイス、ブレードサーバ、メインフレーム、PDA(personal digital assistant)、ラップトップ、タブレット、または別のタイプの計算処理デバイスもしくは通信デバイスといった、1または複数のコンピュータデバイスを含んでもよい。コンピュータデバイス210は、モデリングシステム220を含んでもよい。モデリングシステム220は、動的システムを表すグラフィカルモデルの作成、変更、設計、および/またはシミュレーションを可能にする開発ツール(例えばソフトウェアアプリケーション)を含んでもよい。さらに、モデリングシステム220は、グラフィカルモデルに基づく実行可能なコードの自動生成を可能にし得る。モデリングシステム220は、ダイナミクスモデルとコストおよび制約条件モデルとによって定義される軌道最適化問題を解くためのフレームワーク100を提供するための機能を含んでもよい。
ネットワーク230は、コンピュータデバイス210が、ターゲット環境240および/またはプロセッシングクラスタ250といった、環境200の他の構成要素と通信できるようにし得る。ネットワーク220は、1または複数の有線ネットワークおよび/もしくは無線ネットワークを含んでもよい。例えば、ネットワーク220は、セルラネットワーク、PLMN(Public Land Mobile Network)、第2世代(2G)ネットワーク、第3世代(3G)ネットワーク、第4世代(4G)ネットワーク(例えばLTE(long term evolution)ネットワーク)、第5世代(5G)ネットワーク、CDMA(code division multiple access)ネットワーク、GSM(global system for mobile communications)ネットワーク、GPRS(general packet radio services)ネットワーク、Wi‐Fiネットワーク、イーサネットネットワーク、上記ネットワークの組み合わせ、および/または別のタイプの無線ネットワークを含んでもよい。加えて、または代替として、ネットワーク230はまた、LAN(local area network)、WAN(wide area network)、MAN(metropolitan area network)、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク(例えば光ファイバ・サービス・ネットワーク)、衛星ネットワーク、テレビネットワーク、および/または上記その他のタイプのネットワークの組み合わせを含んでもよい。
ターゲット環境240は、モデリングシステム220内のグラフィカルモデルによって表される動的システムと関連付けられ得る1または複数のデバイスを含んでもよい。例えば、ターゲット環境240は、動的システムに対応する1組のセンサおよび/または1組のコントローラを含んでもよい。モデリングシステム220は、ターゲット環境240からデータを受理し、受理されるデータをグラフィカルモデルへの入力として使用し得る。さらに、ターゲット環境240は、モデリングシステム220から実行可能なコードを受理し得る。受理される実行可能なコードは、ターゲット環境240が、ターゲット環境240と関連付けられた動的システム上で1または複数の動作を実行できるようにし得る。ターゲット環境240は、例えば、エンベデッドプロセッシングデバイスを含んでもよい。
プロセッシングクラスタ250は、グラフィカルモデルと関連してモデリングシステム220によって使用され得る処理リソースを含んでもよい。例えば、プロセッシングクラスタ250は、プロセッシングユニット255‐A〜プロセッシングユニット255‐N(本明細書ではまとめて「各プロセッシングユニット255」、個別に「プロセッシングユニット255」と呼ぶ)を含んでもよい。各プロセッシングユニット255は、コンピュータデバイス210に代わって動作を実行し得る。例えば、プロセッシングユニット255は、モデリングシステム220内のグラフィカルモデルにおいて並列処理を実行し得る。モデリングシステム220は、プロセッシングクラスタ250に実行されるべき動作を提供し得て、プロセッシングクラスタ250は、各プロセッシングユニット255間で動作と関連付けられたタスクを分割し得て、プロセッシングクラスタ250は、各プロセッシングユニット255から実行されたタスクの結果を受理し、動作の結果を生成し、動作の結果をモデリングシステム220に提供し得る。
一実装形態では、プロセッシングユニット255は、グラフィックプロセッシングユニット(GPU:graphic processing unit)を含んでもよい。GPUは、グラフィックス処理(例えば、ブロック画像転送動作、同時の画素単位動作など)に関連した動作を実行するための、かつ/または多数の動作を並列に実行するための専用回路を含む1または複数のデバイスを含んでもよい。別の例では、プロセッシングユニット255は、マルチコアプロセッサの1つのコアに対応してもよい。別の例では、プロセッシングユニット255は、例えば、コンピューティングクラウドの一部として動作するコンピューティングデバイスなど、コンピュータデバイスのクラスタの一部であるコンピュータデバイスを含んでもよい。
図2Aには環境200の例示的な構成要素が示されているが、他の実装形態では、環境200は、図2Aに示されるものよりも少ない構成要素、異なった構成要素、異なった配置の構成要素、および/または追加的な構成要素を含んでもよい。代替として、または加えて、環境200の1もしくは複数の構成要素が、環境200の1もしくは複数の他の構成要素によって実行されると記載されている1または複数のタスクを実行してもよい。
<例示的なコンピュータデバイス>
図2Bは、一実施形態によるコンピュータデバイス210の例示的な構成要素を示す図である。図2Bに示されるように、コンピュータデバイス210は、バス260、プロセッサ265、メモリ270、入力デバイス275、出力デバイス280、および通信インターフェース285含み得る。
バス260は、コンピュータデバイス210の構成要素間の通信を容認にする経路を含み得る。プロセッサ265は、1もしくは複数のシングルコアプロセッサおよび/もしくはマルチコアプロセッサ、マイクロプロセッサ、ならびに/または命令を解釈し、実行し得る処理論理(例えば、ASIC(application specific integrated circuit)、FPGA(field programmable gate array)、ARMプロセッサなど)を含んでもよい。メモリ270は、情報およびプロセッサ265が実行するための命令を格納し得るRAM(random access memory)デバイスもしくは別のタイプの動的記憶デバイス、プロセッサ265が使用するための静的情報および命令を格納し得るROM(read only memory)デバイスもしくは別のタイプの静的記憶デバイス、磁気記録メモリデバイスおよび/もしくは光記録メモリデバイスおよびこれに対応するドライブ、ならびに/またはフラッシュメモリといったリムーバブル形式のメモリを含んでもよい。
入力デバイス275は、例えば、キーパッド、キーボード、ボタン、またはキーパッドもしくはキーボード、カメラ、アナログ・ディジタル変換器(ADC:analog to digital converter)、パルス幅変調(PWM:pulse−width modulation)入力などといった入力デバイスのための入力ジャックなど、オペレータがコンピュータデバイス210に情報を入力することを可能にするメカニズムを含んでもよい。出力デバイス280は、1または複数の表示灯、スピーカ、ディジタル・アナログ変換器(DAC:digital to analog converter)、PWM出力などを含む、オペレータに情報を出力するメカニズムを含んでもよい。
出力デバイス280は、ユーザに情報を表示する表示デバイスを含んでもよい。表示デバイスは、陰極線管(CRT)、プラズマ表示デバイス、発光ダイオード(LED)表示デバイス、液晶ディスプレイ(LCD)デバイスなどを含んでもよい。表示デバイスは、必要に応じてユーザ入力を受理するように(例えばタッチスクリーンを介して)構成され得る。一実施形態では、表示デバイスはユーザに1または複数のグラフィカル・ユーザ・インターフェース(GUI:graphical user interface)を表示し得る。表示デバイスは、状態機械モデルを含むモデルの表現(例えば、状態‐状態遷移表、状態‐条件遷移表、状態‐事象遷移表、および/または統合状態遷移表)を表示し得る。またモデル表現は、ラインで接続された、いくつかのエンティティも含んでもよい。
通信インターフェース285は、コンピュータデバイス210が他のデバイスおよび/またはシステムと通信できるようにする送受信機を含んでもよい。例えば、通信インターフェース285は、モデム、ネットワーク・インターフェース・カード、および/または無線インターフェースカードを含み得る。
以下で詳細に記述するように、コンピュータデバイス210は、軌道最適化問題の解を生成するためのフレームワークに関連した、ある一定の演算を実行し得る。コンピュータデバイス210は、これらの演算を、プロセッサ265が、メモリ270といったコンピュータ可読媒体に格納されたソフトウェア命令を実行したことに応答して実行し得る。コンピュータ可読媒体は、非一時的メモリデバイスとして定義され得る。メモリは、単一の物理的メモリデバイス内のメモリ空間を含んでもよく、複数の物理的メモリデバイスにまたがって分散されてもよい。
ソフトウェア命令は、別のコンピュータ可読媒体から、または通信インターフェース285を介して別のデバイスからメモリ270に読み込まれ得る。メモリ270に含まれるソフトウェア命令は、プロセッサ265に、後述するプロセスを実行させ得る。あるいは、配線回路が、本明細書に記述するプロセスを実装するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用され得る。よって、本明細書で記述する実装形態は、ハードウェア回路とソフトウェアとのいかなる特定の組み合わせにも限定されない。
図2Bにはコンピュータデバイス210の例示的な構成要素が示されているが、他の実装形態では、コンピュータデバイス210は、図2Bに示されるものよりも少ない構成要素、異なった構成要素、追加的な構成要素、または異なった配置の構成要素を含んでもよい。加えて、または代替として、コンピュータデバイス210の1または複数の構成要素は、コンピュータデバイス210の1または複数の他の構成要素によって実行されると記載されている1または複数のタスクを実行してもよい。
<例示的なモデリングシステム>
図3は、コンピュータデバイス210に含まれ得るモデリングシステム220の例示的な構成要素の図である。モデリングシステム220は、既存のソフトウェアコンポーネントをモデルの作成で使用されるようにし、モデルに基づく実行可能なコードの生成を可能にし得る開発ツールを含んでもよい。例えば、開発ツールは、数値コンピューティング環境のためのユーザインターフェースを提供するグラフィカル・モデリング・ツールまたはアプリケーションを含み得る。加えて、または代替として、開発ツールは、動的システムをモデル化し、シミュレートする(例えば、モデルを実行することによって)(例えば、微分方程式、差分方程式、代数方程式、離散事象、離散状態、確率関係などに基づいて)ためのユーザインターフェースを提供するグラフィカル・モデリング・ツールおよび/またはアプリケーションを含み得る。
動的システムは(自然なものにせよ人工的なものにせよ)その応答がいつでも、その入力刺激、その現在の状態、および現在時刻の関数であり得るシステムであり得る。そうしたシステムの範囲は、単純なシステムから高度に複雑なシステムにまでに及び得る。自然な動的システムには、例えば、落下物体、地球の自転、生体力学系(筋肉、関節など)、生化学系(遺伝子発現、タンパク質経路)、天気、および気候パターンシステム、ならびに/または任意の他の自然の動的システムが含まれ得る。人工的な、または工学技術で作られた動的システムには、例えば、弾むボール、一端に分銅が結び付けられたばね、自動車、航空機、大部分の電気器具の制御システム、通信ネットワーク、オーディオ信号処理システム、および金融もしくは株式市場、ならびに/または任意の他の人工的な、もしくは工学技術で作られた動的システムが含まれ得る。
モデルによって表されるシステムは、モデルにおいて、しばしばブロックと呼ばれるモデリングエンティティの集合体として表され得る様々な実行セマンティクスを有し得る。ブロックは、一般には、モデルにおいて使用され得る機能の一部分をいう。ブロックは、グラフィカルで表され、テキストで表され得て、および/または何らかの形の内部表現で格納され得る。また、例えばグラフィカルなブロック図においてブロックを表すために使用される特定の視覚的描写は、設計上の選択であってもよい。
ブロックは、ブロック自体がそのブロックを構成する1または複数のブロックを含み得るという点で、階層的であってもよい。1または複数のブロック(サブブロック)を含むブロックを、サブシステムブロックと称され得る。サブシステムブロックは、モデルによって表される全体システムのサブシステムを表すように構成され得る。サブシステムブロックは、サブシステムブロックが含む要素によってのみ読取り可能、書き込み可能な変数を含む論理的な作業領域を有するように構成されたマスク・サブシステム・ブロックであってもよい。
グラフィカルモデル(例えば機能モデル)は、エンティティ間の関係を有するエンティティを含んでもよく、関係および/またはエンティティは、それらと関連付けられた属性を有してもよい。エンティティは、ブロックおよび/またはポートといったモデル要素を含んでもよい。関係は、ライン(例えばコネクタライン)および参照といったモデル要素を含んでもよい。属性は、属性と関連付けられたモデル要素の値情報およびメタ情報といったモデル要素を含んでもよい。グラフィカルモデルは、構成情報と関連付けられてもよい。構成情報は、モデル実行情報(例えば、数値積分スキーム、基本実行周期など)、モデル診断情報(例えば、代数ループをエラー、または警告を発生させるべきか)、モデル最適化情報(例えば、モデル要素が実行中にメモリを共用すべきかどうか)、モデル処理情報(例えば、共通機能をモデルのために生成されるコードにおいて共用されるべきかどうか)などといったグラフィカルモデルについての情報を含んでもよい。
加えて、または代替として、グラフィカルモデルは、実行可能なセマンティクスを有していてもよく、および/または実行可能であってもよい。実行可能なグラフィカルモデルは時間ベースのブロック図であってもよい。時間ベースのブロック図は、例えば、ライン(例えばコネクタライン)で接続されたブロックからなっていてもよい。ブロックは、微分方程式系(例えば、連続時間の振る舞いを規定するための)、差分方程式系(例えば、離散時間の振る舞いを規定するための)、代数方程式(例えば、制約条件を規定するための)、状態遷移系(例えば、有限状態機械の振る舞いを規定するための)、事象ベースのシステム(例えば、離散事象の振る舞いを規定するための)などといった基本の動的システムからなっていてもよい。ラインは、信号(例えば、ブロック間の入力/出力関係を規定し、または関数呼び出しといったブロック間の実行依存関係を規定するための)、変数(例えば、ブロック間で共用される情報を規定するための)、物理的接続(例えば、電線、体積流量を有するパイプ、柔軟性のない機械的接続などを規定するための)などを表し得る。属性は、モデル要素と関連付けられた、サンプル時間、次元、複雑さ(値に対する虚数成分があるかどうか)、データ型などといったメタ情報からなっていてもよい。
時間ベースのブロック図では、ポートはブロックと関連付けられ得る。2つのポート間の関係は、2つのポート間でライン(例えばコネクタライン)を接続することによって作成され得る。ラインは同様に、または代替として、例えば分岐点を作成することによって、他のラインに接続され得る。例えば、3つ以上のポートを、各ポートにラインを接続し、ラインの各々をすべてのラインの共通分岐点に接続することによって接続され得る。物理的連結を表すラインの共通分岐点は、動的システムであり得る(例えば、あるタイプのすべての変数を合計して0にすることによって、またはあるタイプのすべての変数を同等にすることによって)。ポートは、入力ポート、出力ポート、イネーブルポート、トリガポート、関数呼び出しポート、パブリッシュポート、サブスクライブポート、例外ポート、エラーポート、物理ポート、エンティティ・フロー・ポート、データ・フロー・ポート、制御フローポートなどであり得る。
ブロック間の関係は、因果的であってもよく、および/または非因果的であってもよい。例えば、モデル(例えば機能モデル)は、ライン(例えばコネクタライン)を使用して連続時間積分ブロックの出力ポートをデータ・ログ・ブロックの入力ポートに連結することによってデータ・ログ・ブロックに因果的に関係付けられ得る連続時間積分ブロックを表すブロックを含んでもよい。さらに、モデルの実行中に、連続時間インテグレータによって格納される値は、実行の現在時刻が進むに従って変化し得る。連続時間インテグレータの状態の値は出力ポート上で利用可能であり得て、データ・ログ・ブロックの入力ポートとの接続は、この値をデータ・ログ・ブロックに利用可能にし得る。
一例では、ブロックは、非因果的モデリング関数または演算を含み、またはそれ以外にこれに対応していてよい。非因果的モデリング関数の一例は、1もしくは複数の入力、状況、および/もしくは条件、に応じて異なって実行され得る関数、演算、または方程式を含んでもよい。言い換えると、非因果的モデリング関数または演算は、所定の因果関係を持たない関数、演算、または方程式を含んでもよい。例えば、非因果的モデリング関数は、他方の変数(例えば「Y」)に対応する割り当てられた値を受理した場合に方程式中の一方の変数(例えば「X」)の値を識別するために使用され得る方程式(例えば、X=2Y)を含んでもよい。同様に、他方の変数(例えば「Y」)の値が提供された場合に、方程式は、一方の変数(例えば「X」)の値を求めるために使用され得るはずである。
方程式への因果関係の割り当ては、方程式中のどの変数がその方程式を用いて算出されるか決定することからなっていてもよい。因果関係の割り当ては、ガウス消去アルゴリズムといったソーティングアルゴリズムによって実行され得る。因果関係の割り当ての結果は、代数的サイクルまたはループを表す強く接続された成分を有するソートされた方程式を表す下三角ブロック行列であり得る。因果関係の割り当ては、モデルコンパイル(model compilation)の一部であり得る。
方程式は記号形式で提供され得る。1組のシンボリック方程式は、例えば、より単純な形式にするために、シンボリック的に処理され得る。例を挙げると、2つの方程式X=2Y+UおよびY=3X−2Uの系は、1つの方程式5Y=−Uにシンボリック的に処理され得る。方程式のシンボリック的な処理は、モデルコンパイルの一部であり得る。
したがって、非因果的モデリング関数は、例えば、有効な出力を生成し、またはそれ以外に意図されるように動作するために、ある特定の入力または特定のタイプの入力(例えば、特定の変数の値)を要件としなくてもよい。実際、非因果的モデリング関数の動作は、例えば、その非因果的モデリング関数に対応する状況、条件、または入力に基づいて変動し得る。したがって、上記の記述はブロック間の方向的に一貫した信号フローを記述するが、他の実装形態では、ブロック間の相互作用は、必ずしも方向的に特有の、または一貫していなくてもよい。
一実施形態では、モデル内のコネクタラインは、2つの接続されたブロック間で共用される関連した変数を表し得る。それらの変数は、その組み合わせが電力を表すように関係づけられ得る。例えば、コネクタラインは、電圧、電流、電力などを表し得る。加えて、または代替として、ブロック間の信号フローは、自動的に導出され得る。
ある実装形態では、1または複数のブロックは同様に、または代替として、それらが含まれるモデルに対応する1または複数の規則もしくはポリシーに従って動作し得る。例えば、モデルが、電子回路といった実際の物理的なシステムまたはデバイスとして振る舞うように意図されていた場合、ブロックは、例えば、物理学の法則(本明細書では「物理学に基づく規則」ともいう)内で動作することを要件とされ得る。これらの物理学の法則は、微分方程式および/または代数方程式(例えば制約条件など)として定式化され得る。微分方程式は、時間、距離、および/または他の量に関する導関数を含んでもよく、常微分方程式(ODE:ordinary differential equation)、偏微分方程式(PDE:partial differential equation)、および/または微分代数方程式(DAE:differential and algebraic equation)であってもよい。モデルおよび/またはモデル成分がそうした規則またはポリシーに従って動作することを要件とすることは、例えば、そうしたモデルに基づくシミュレーションが意図されるように動作することを保証することに役立つ。
サンプル時間は、グラフィカルモデルの要素と関連付けられ得る。例えば、グラフィカルモデルは、入力値を実行時間の進捗に従って積分し得る連続時間積分ブロックといった連続サンプル時間を有するブロックを含んでもよい。この積分は、微分方程式によって規定され得る。実行中、連続時間の振る舞いは、数値ソルバーの一部である数値積分スキームによって近似され得る。数値ソルバーは、実行時間を進めるために離散的ステップを取り得て、これらの離散的ステップは、実行中一定であってもよく(例えば固定ステップ積分)、実行中に変動してもよい(例えば可変ステップ積分)。
事象は、連続時間の振る舞いが特定の特性を示すときに生成され得る。例えば、連続時間の振る舞いを近似する数値ソルバーの2つの離散的ステップの間で不等式がその真理値を変化させる場合に、事象が生成され得る。事象の時間には、2つの離散的ステップのどちらかの時間を割り当てられてもよく、真理値が変化する時間に最も近い、2つの離散的ステップの間の値が取得されてもよい。2つの離散的時間ステップの間のこの時間は、規定された数値的な正確さに見合う求根数値アルゴリズムに基づいて計算され得る。
代替として、または加えて、グラフィカルモデルは、特定の遅延の後で対応する入力の値を出力し得る単位遅延ブロックといった、離散サンプル時間を有するブロックを含んでもよい。この遅延は時間間隔であってよく、この間隔は、ブロックのサンプル時間を決定し得る。実行中に、実行時間が、単位遅延ブロックの出力が変化し得る時点に到達する都度、単位遅延ブロックが評価され得る。これらの時点は、実行を開始する前に、グラフィカルモデルのスケジューリング解析に基づいて統計的に決定され得る。
代替として、または加えて、グラフィカルモデルは、接続されたブロックを非周期的に評価されるようにスケジュールし得る関数呼び出しジェネレータブロックといった、非対称サンプル時間を有するブロックを含んでもよい。実行中に、関数呼び出しジェネレータブロックは入力を評価し得て、実行時間がある時点に到達して入力が特定の値を獲得すると、関数呼び出しジェネレータブロックは、接続されたブロックを、この時点で、実行時間を進める前に評価されるようにスケジュールし得る。
さらに、グラフィカルモデルの属性の値は、グラフィカルモデルの他の要素またはグラフィカルモデルの属性から推測され得る。推測はモデルコンパイルの一部であり得る。例えば、グラフィカルモデルは、ブロックのサンプル時間を規定する属性を有し得る、単位遅延ブロックといったブロックを含んでもよい。グラフィカルモデルが、基本実行周期を規定する実行属性を有する場合、単位遅延ブロックのサンプル時間は、この基本実行周期から推測され得る。
別の例として、グラフィカルモデルは、2つの単位遅延ブロックのうちの第1のブロックの出力が2つの単位遅延ブロックのうちの第2のブロックの入力に接続されている2つの単位遅延ブロックを含んでもよい。第1の単位遅延ブロックのサンプル時間は、第2の単位遅延ブロックのサンプル時間から推測され得る。この推測は、第2の単位遅延ブロックのサンプル時間属性の評価後で、グラフ探索が引き続き第1の単位遅延ブロックのサンプル時間属性を評価するような、モデル要素属性の伝搬によって実行され得る。なぜならば、第1の単位遅延ブロックは第2の単位遅延ブロックに直接接続されているからである。
グラフィカルモデルの属性の値は、1または複数の継承された設定、1または複数のデフォルト設定などといった、特性設定に設定することができる。例えば、ブロックと関連付けられた変数のデータ型は、doubleといったデフォルトに設定され得る。デフォルト設定のために、グラフィカルモデルが含む要素の属性(例えば、接続されたブロックと関連付けられた変数のデータ型)および/またはグラフィカルモデルの属性に基づいて代替のデータ型(例えば、single、integer、fixed pointなど)が推測され得る。別の例として、ブロックのサンプル時間が継承されるように設定され得る。継承されるサンプル時間の場合には、グラフィカルモデルが含む要素の属性および/またはグラフィカルモデルの属性(例えば基本実行周期)に基づいて特定のサンプル時間推測され得る。
別の例として、実行可能なグラフィカルモデルは、状態機械モデル(例えばグラフィカル状態機械モデル)を含んでもよい。状態機械モデルは、実行可能な時間ベースのモデルを含んでもよい。状態機械モデルは、ある時点におけるその遷移を評価する離散的状態遷移系を含んでもよい。これらの時点は、周期的な(また離散的な)サンプル時間に基づいてもよく、式(例えば不等式)の真理値の変化に基づいてもよい。遷移系の評価は事象の発生と関連付けられてもよく、評価は、ある状態からの遷移が可能であるかどうか評価することからなっていてもよい。遷移は、関連付けられた事象(1または複数の)が発生した場合、および関連付けられた条件(1または複数の)が満たされた場合に可能とされ得る。状態遷移系は、グラフィカルモデル内の他のエンティティから獲得され、グラフィカルモデル内の他のエンティティに提供され得る入力変数および出力変数を有してもよい。上記のように、グラフィカルエンティティは、微分方程式系および差分方程式系といった時間ベースの動的システムを表し得る。別の実施形態では、グラフィカルモデルおよびグラフィカルエンティティは、複数の領域の動的システムを表し得る。各領域は、例えば、連続時間、離散時間、離散事象、状態遷移系、および/もしくは計算処理のモデルといった実行領域または振る舞いを含んでもよい。計算処理のモデルは、微分方程式、差分方程式、代数方程式、離散事象、離散状態、確率関係、データフロー、同期データフロー、制御フロー、プロセスネットワーク、および/または状態機械に基づいてもよい。
モデリングシステム220は、テクニカルコンピューティング環境(TCE:technical computing environment)を実装し得る。TCEは、ユーザが、それだけに限らないが、数学、科学、工学、医学、商取引などといった分野に関連したタスクを、それらのタスクが、C++、Fortran、Javaなどといった従来のプログラミング言語でユーザがコードを開発することを必要とする環境といった別のタイプのコンピューティング環境で実行された場合よりも効率よく実行することを可能にするコンピューティング環境を提供する、ハードウェアおよび/またはソフトウェアベースの論理を含んでもよい。
一実装形態では、TCEは、当業者がよく知る数学的表記で問題および/または解を表現するために使用され得る動的型付け言語を含んでもよい。例えば、TCEは、基本要素として配列を使用してよく、その場合、配列は次元化を必要としなくてもよい。加えて、TCEは、データ解析、データ視覚化、アプリケーション開発、シミュレーション、モデリング、アルゴリズム開発などに使用され得る行列および/またはベクトルの定式化を実行するように適合され得る。これらの行列および/またはベクトルの定式化は、統計、画像処理、信号処理、制御設計、生命科学モデリング、離散事象の解析および/または設計、状態ベースの解析および/または設計などといった、多くの分野で使用され得る。
TCEはさらに、数学的関数および/またはグラフィカルツール(例えば、プロット、面、画像、立体表現などを作成するための)を提供し得る。一実装形態では、TCEは、これらの関数および/またはツールを、ツールボックス(例えば、信号処理、画像処理、データプロット、並列処理などのためのツールボックス)を用いて提供し得る。別の実装形態では、TCEはこれらの関数をブロックセットとして提供し得る。別の実装形態では、TCEはこれらの関数を、ライブラリによってなど、別のやり方で提供し得る。TCEは、テキストベースの環境、グラフベースの環境、または、テキストおよびグラフの両方に基づくハイブリッド環境といった別のタイプの環境として実装され得る。
TCEは、それだけに限らないが、The MathWorks, Inc.によるMATLAB(登録商標);Octave;Python;Comsol Script;National InstrumentsのMATRIXx;Wolfram Research, Inc.のMathematica;Mathsoft Engineering & Education Inc.のMathcad;MaplesoftのMaple;Imagine That Inc.のExtend;INRIAのScilab;CadenceのVirtuoso;Dassault SystemesのModelicaまたはDymolaといった製品を用いて実装され得る。
代替の実施形態は、それだけに限らないが、The MathWorks, Inc.によるSimulink(登録商標)、Stateflow(登録商標)、SimEvents(登録商標)など;Visual SolutionsによるVisSim;National InstrumentsによるLabView(登録商標);Dassault SystemesによるDymola;Measurement ComputingによるSoftWIRE;DALSA CorecoによるWiT;AgilentによるVEE ProまたはSystemVue;PPT VisionのVision Program Manager;Khoral ResearchのKhoros;Gedae, Inc.によるGedae;(INRIA)からのScicos;CadenceのVirtuoso;IBMのRational Rose;TelelogicのRhopsodyまたはTau;カリフォルニア大学バークリー校のPtolemy;UML(unified modeling language)またはSysML環境の諸態様といった製品を用いてTCEがグラフベースのTCEとして実装され得る。
別の実施形態は、上記のテキストベースのTCEまたはグラフベースのTCEの1または複数といったTCEを含む製品と適合する言語で実装され得る。例えば、MATLAB(登録商標)(テキストベースのTCE)は、第1のコマンドを使用してデータ配列を表し、第2のコマンドを使用して配列を転置し得る。別の製品は、TCEを含んでも含まなくてもよいが、MATLAB(登録商標)互換であり、配列コマンド、配列転置コマンド、または他のMATLAB(登録商標)コマンドを使用し得る。例えば、その別の製品は、MATLAB(登録商標)を使用してモデルチェックを実行し得る。
別の代替の実施形態は、テキストベースのTCEとグラフベースのTCEの特徴が組み合わさったハイブリッドTCEにおいて実装され得る。一実装形態では、一方のTCEが他方のTCEの上で動作し得る。例えば、テキストベースのTCE(例えばMATLAB(登録商標))が基礎として動作し、グラフベースのTCE(例えばSimulink)がMATLAB(登録商標)の上で動作し得て、テキストベースの機能(例えばコマンド)を利用してユーザにグラフィカル・ユーザ・インターフェースおよびグラフィカル出力(例えば、データのためのグラフィカル表示、ダッシュボードなど)を提供し得る。
図3に示されるように、モデリングシステム220は、シミュレーションツール310、エンティティライブラリ320、インターフェース論理330、コンパイラ340、コントローラ論理350、オプティマイザ360、シミュレーションエンジン370、レポートエンジン380、およびコードジェネレータ390を含んでもよい。
シミュレーションツール310は、モデルを構築するためのアプリケーションを含んでもよい。シミュレーションツール310は、動的システムモデル110ならびに/またはコストおよび制約条件モデル120といった、実行可能なセマンティクスを有するテキストモデルまたはグラフィカルモデルを構築するために使用され得る。グラフィカルモデルの場合、シミュレーションツール310は、ユーザに、モデルエンティティおよび/または接続の作成、表示、変更、診断、注釈付け、削除、印刷などを行うことを可能にさせ得る。シミュレーションツール310は、ユーザ入力を受理し、モデルを実行してシミュレーションを獲得し、結果を表示し、コードを生成するなどのために、図2に示される他のエンティティとインタラクションし得る。シミュレーションツール310はユーザに、テキストモデルを構築し、またはこれとインタラクションするためのエディタおよび/もしくはグラフィカルモデルを作成し、またはこれとインタラクションするためのGUIを提供し得る。エディタは、ユーザに、例えば、モデルの規定、編集、注釈付け、保存、印刷、および/またはパブリッシュを行うことを可能にするように構成されてもよい。エディタとのインタラクションを可能にするテキストインターフェースが提供され得る。ユーザは、テキストインターフェースを用いてモデルに対する自動編集操作を実行するスクリプトを書いてもよい。例えば、テキストインターフェースは、モデルのキャンバスとして機能し得る1組のウィンドウを提供し得て、ユーザにモデルとインタラクションさせ得る。モデルは1または複数のウィンドウを含んでもよい。複数の階層レベルに分割されたモデルが異なる階層レベルを別々のウィンドウとして示し得る。
エンティティライブラリ320は、動的システムモデル110ならびに/またはコストおよび制約条件モデル120に追加される特定のブロックといった、グラフィカルモデルを含む表示ウィンドウにユーザがドラッグ・アンド・ドロップし得るコードモジュールまたはエンティティ(例えばブロック/アイコン)を含んでもよい。グラフィカルモデルの場合、ユーザはさらに、接続を用いてエンティティを結合して、ターゲット環境140といった、システムのグラフィカルモデルを生成し得る。
インターフェース論理330は、モデリングシステム220に、デバイス(例えば、ターゲット環境240、プロセッシングクラスタ250など)またはソフトウェアモジュール(例えば、関数、アプリケーション・プログラム・インターフェースなど)へ/からデータおよび/または情報を送り、または受理することを可能にし得る。
コンパイラ340は、動的システムモデル110、コストおよび制約条件モデル120、ならびに/またはインターフェースモデル130といったモデルを実行可能な形式にコンパイルし得る。コードジェネレータ390は、コンパイラ340によって生成されたコンパイル済みモデルからコードを生成し得る。生成されたコードは、モデル化の結果を生成するために、コンピュータデバイス210上で実行され得る。一実施形態では、コンパイラ340は、モデルと関連付けられたエラーを診断するためのデバッグ機能も提供し得る。コードジェネレータ390は、グラフィカルモデルの一部の実行可能なコードを生成し得る。次いで、実行可能なコードは、モデルの実行中に自動的に実行され得て、モデルの第1の部分が解釈済み実行として実行され、モデルの第2の部分がコンパイル済み実行として実行される。
コントローラ論理350は、グラフィカルモデルにおいてコントローラを作成し、実装するために使用され得る。例えば、コントローラ論理350は、グラフィカルモデルにおいてコントローラのタイプを表すエンティティのための機能を提供し得る。グラフィカルモデルが実行されると、コントローラ論理350は、グラフィカルモデル内のエンティティとインタラクションすることによってモデルに対する制御動作を実行し得る。一実施形態では、コントローラ論理350は、例えば、フレームワーク100と関連付けられた決定されるNOCゲインを含むフィードバック制御、「偏差・積分・微分(PID:proportional−integral−derivative)」制御、ゲインスケジューリング制御、H無限大制御、モデル予測制御(MPC:model predictive control)、動的反転制御、バング/バング制御、スライディングモード制御、デッドビート制御、および/または他のタイプの制御といった、グラフィカルモデルにおけるコントローラを実装する制御アルゴリズムを含んでもよい。コントローラ論理350の実施形態は、スタンドアロン型の実装形態として動作するように構成されてもよく、または分散型の実装形態として動作するように構成されてもよい。
オプティマイザ360は、モデルについてのコード、パラメータ、性能(例えば、実行速度、メモリ使用)などを最適化し得る。例えば、オプティマイザ360は、コードが最適化されずにコードが実行された場合よりも、例えば、コードが占有するメモリを少なくし、コードを効率よく実行させ、コードを高速で実行させるようにコードを最適化し得る。またオプティマイザ360は、例えば、コントローラのパラメータを最適化するために、コントローラ論理350の最適化を実行してもよい。一実施形態では、オプティマイザ360は、コンパイラ340、コントローラ論理350、コードジェネレータ390などと一緒に動作し得て、またはこれらに統合され得る。オプティマイザ360の実施形態は、例えば、オプティマイザ360が作用するデータを受理するための他のオブジェクト指向ソフトウェアとインタラクションするソフトウェアオブジェクトによって実装され得る。
シミュレーションエンジン370は、システムをシミュレートするモデルを実行するための動作を実行し得る。システムをシミュレートするモデルを実行することは、モデルをシミュレートすることと称され得る。シミュレーションエンジン370は、ユーザ設定またはシステム設定に基づいて、スタンドアロン型のシミュレーションまたはリモートシミュレーションを実行するように構成され得る。
レポートエンジン380は、モデリングシステム220内の情報に基づいてレポートを生成し得る。例えば、レポートエンジン380は、コントローラが設計仕様を満たすかどうかを示すレポート、コントローラが安定して動作するかどうかを示すレポート、モデルが正しくコンパイルされているかどうかを示すレポートなどを生成し得る。レポートエンジン380の実施形態は、出力デバイス350上で表示するための電子形式で、ハードコピー形式で、および/またはストレージデバイスへのストレージに適合された形式でレポートを生成し得る。
コードジェネレータ390は、コンパイラ340によって生成されたコンパイル済みモデルからコードを生成し得る。一実施形態では、コードジェネレータ390は、生成されたコードをコンパイルし、リンクさせてモデルの「メモリ内実行可能」バージョンを生成するように構成され得る。モデルのメモリ内実行可能バージョンは、例えば、モデルをシミュレートし、検証し、削減し、および/または線形化するために使用され得る。一実施形態では、コードジェネレータ390は、第1の形式のコードを受理し得て、そのコードを第1の形式から第2の形式へ変換し得る。一実施形態では、コードジェネレータ390は、モデルの少なくとも一部分から、ソースコード、アセンブリ言語コード、バイナリコード、インターフェース情報、構成情報、性能情報、タスク情報などを生成し得る。例えば、コードジェネレータ390は、モデルから、C、C++、SystemC、Java、構造化テキスト、ハードウェア記述言語(HDL:hardware description language)などのコードを生成し得る。
コードジェネレータ390の実施形態はさらに、統一モデリング言語(UML)ベースの表現および/またはグラフィカルモデルの一部または全部からの拡張(例えば、システムモデリング言語(SysML:System Modeling Language)、XML(Extensible Markup Language)、MARTE(Modeling and Analysis of Real Time and Embedded System)、AADL(Architecture Analysis and Design Language)、ハードウェア記述言語(HDL)、AUTOSAR(Automotive Open System Architecture)など)を生成し得る。一実施形態では、オプティマイザ360は、コードジェネレータ390とインタラクションして、パラメータ(例えば、メモリ使用、実行速度、多重処理など)に従って最適化されたコードを生成し得る。本発明の原理と一致するモデリング環境の実施形態は、さらに、検証構成要素、バリデーション構成要素などといった構成要素を含み得る。
図3にはモデリングシステム220の例示的な構成要素が示されているが、他の実装形態では、モデリングシステム220は、図3に示されるものよりも少ない構成要素、異なった構成要素、異なった配置の構成要素、または追加的な構成要素を含んでもよい。加えて、または代替として、モデリングシステム220の1または複数の構成要素が、モデリングシステム220の1または複数の他の構成要素によって実行されると記載されている1または複数のタスクを実行してもよい。
<例示的なデータ構造およびプロセス>
図4Aは、一実施形態における状態機械モデルを記述する例示的なデータ構造402(または統合状態遷移表402)を図示する。表402は、状態機械モデルの遷移元状態を格納する縦のフィールド列404(例えば表402の左側に沿った)を含む。遷移元状態フィールドのうちの1または複数について、表402は、1または複数のセル406(個別には「セル406」または「セル406‐x」)も含んでもよい。コンピュータデバイス210は、遷移表402をメモリ270に格納し得て、例えば、評価および処理のためにメモリ270から遷移表402を読み込み得る。
セル406は、満たされる場合に、状態機械モデルが対応する遷移元状態から遷移先状態に遷移し得る条件を特定する条件フィールドを含んでもよい。一実施形態では、条件フィールドはまた、発生する場合に条件(例えば同じフィールド内の)を評価される事象を規定し得る。また、事象は関数呼び出しに関係づけられ得る。すなわち、関数呼び出しは、例えば、条件の評価のためにモデルを「起動する」ことができる事象であってもよい。
またセル406は、対応する条件(例えば同じセル内の)が満たされた場合に状態機械モデルが遷移すべき遷移先状態を特定する遷移先フィールドも含んでもよい。またセル406は、対応する条件(例えば同じセル内の)が満たされ、状態機械モデルが対応する遷移先状態(例えば同じセル内の)に遷移する場合に状態機械モデルによって取られるべきアクションを特定するアクションフィールドも含んでもよい。一実施形態では、統合状態遷移表402は、例えば、アクションフィールド、条件フィールド、および/または遷移先フィールドを除外し得る。条件フィールドが事象を規定する実施形態では、アクションフィールドは、対応する事象が発生し、対応する条件が満たされた場合に状態機械モデルによって取られるべきアクションを特定する。便宜上、また理解しやすくするために、図4の例示的な実施形態では、遷移表402内の条件フィールドが事象を含まないとみなされる。遷移先フィールドが省かれる場合には、デフォルトの遷移(例えば、隣接するセルの遷移先状態、テンプレート行内のセルの遷移先状態など)が発生し得る。
図4に示されるように、遷移表402は、デフォルト連結点と、4つの状態、すなわち、状態S1、状態S2、状態S3、および状態S4とを記述している。セル406‐11およびセル406‐12は、条件C12Aが満たされた場合(セル406‐11)または条件C12Bが満たされた場合(セル406‐12)の状態S1から状態S2への遷移を記述している。前述のように、条件C12Aおよび/または条件C12Bを規定する条件フィールドは、各々、発生する場合に、対応する条件が評価される事象も含んでもよい。便宜上、また理解しやすくするために、図4の例示的な実施形態では、遷移表402内の条件フィールドが事象を含まないとみなされている。さらに、遷移表402は、状態機械モデルが状態S1にあり、条件C12Aが満たされると、状態機械モデルがアクションA11を実行することを記述している(セル406‐11)。遷移表402は、条件C13が満たされた場合に状態機械モデルが状態S1にあるときの状態S3への遷移を記述している(セル406‐13)。また遷移表402は、状態機械モデルが状態S1にあり、条件C14が満たされた場合の状態S4への遷移およびアクションA13も記述している(セル406‐14)。
状態機械モデルが状態S2にある場合には、遷移表402は、条件C21が満たされたときの状態S1への遷移(セル406‐21)、条件C23が満たされたときの状態S3への遷移(セル406‐22)、および条件C24が満たされたときの状態S4への遷移(セル406‐23)を記述している。状態機械モデルが状態S3にある場合には、遷移表402は、条件C31が満たされたときの状態S1への遷移(セル406‐31)、条件C33が満たされたときの状態S3への遷移(セル406‐32)、および条件C34が満たされたときの状態S4への遷移(セル406‐33)を記述している。最後に、状態機械モデルが状態S4にある場合には、遷移表402は、条件C41が満たされたときの状態S1への遷移を記述している(セル406‐41)。
また遷移表402は、1または複数の連結点状態も記述してもよい。連結点状態は、状態機械モデルがとどまらず、即座に別の状態に遷移する特定のタイプの状態とみなされ得る。言い換えると、連結点状態は、別の状態に出るための1または複数の条件を特定する。すなわち、連結点状態は、状態機械モデルが遷移先状態のうちの1つに遷移し、その連結点状態にとどまらないことを保証する1または複数の条件と関連付けられる。連結点状態から出て行く遷移のうちのいずれも可能とされない場合、一実施形態では、遷移は遷移元状態に戻り得る。連結点状態は、例えば、連結点名を特定するフィールドを取り囲む角丸を表示することによって、遷移表402で他の状態と区別され得る。
図4の例示的な実施形態では、遷移表402は、状態機械モデルが開始すべき状態であるデフォルト状態(例えば、「デフォルト」とラベル付けされたデフォルト遷移行)を記述している。この実施形態では、デフォルト状態はまた、連結点状態であってもよい。デフォルト状態は、状態機械モデルが実行される場合に、最初に評価され、実行され得る。遷移表402のデフォルト状態は、セル406‐01およびセル406‐02で2つの条件、すなわち、u>=0およびu<0を記述している。デフォルト状態(または連結点)の2つの条件のうちの一方は常に満たされるはずであり、状態機械モデルは、u>=0であるかまたはu<0であるかに応じて、それぞれ、状態S1または状態S2に遷移することになる。
図4はまた、表402の情報の例示的な表示も示し得る。すなわち、表402は、表示デバイス(例えば出力デバイス280)の画面上に、ほぼ図4に示す通りに表示され得る。また表402は別のやり方で、例えば、状態‐状態形式、状態‐条件形式、状態‐事象形式、または複数の形式の組み合わせのように表示され得る。
図5Aは、図4の統合状態遷移表402に対応する状態図502である。すなわち、遷移表402によって記述される状態機械モデルのセマンティクスと状態図502によって記述される状態機械モデルのセマンティクスとは同一であるとみなされ得る(例えば、実行順も含めて)。状態図502は、例えば、遷移表402に格納された情報から生成され得る(例えばコンピュータデバイス210によって)。遷移表402も状態図502も、状態機械モデルを記述するデータとみなされ得る。図5Aに示されるように、状態図502は、矩形504‐1〜矩形504‐4(個別には「矩形504」または「矩形504‐x」)といった図形記号を含んでもよい。矩形504は、遷移元状態および/または遷移先状態を含む状態を表し得る。状態図502において、矩形504‐1は状態S1を表し、矩形504‐2は状態S2を表し、矩形504‐3は状態S3を表し、矩形504‐4は状態S4を表す。一実施形態では、矩形504の幅および/または高さはすべて同一であり、または同様の幅である。一実施形態では、矩形504の幅および/または高さは、後述する他の要因に応じて変化し得る。
一実施形態では、状態図502は連結点状態を、非連結点状態とは異なる図形で表し得る。この実施形態では、状態図502は、連結点を表すための円508といった図形記号を含んでもよい。円508は、遷移表402のセル406‐01およびセル406‐02に記載されているデフォルト連結点を表している。この実施形態では、円508は(「デフォルト連結点508」もまた)、状態図502の他の図形記号と区別するために、グレーで強調表示され、遷移元状態に連結されていない、入ってくる矢印を有する。
また状態図502は、状態(連結点を含む)間の遷移を表すために、矢印の付いたライン506(個別には「ライン506‐x」)といった図形記号も含んでもよい。すなわち、ラインのシンタックスは遷移のセマンティックを表すことができる。シンタックス(「ライン」)もそのセマンティック(「遷移」)も、図5Aおよび図5Bにおいて同じ参照番号506を使用し得る。例えば、状態図502は、条件C12Bが満たされた場合の状態S1と状態S2との間の遷移を表すライン506‐1を含む。一実施形態では、矩形504‐xの高さは、矩形504‐xの両側(例えば左および/または右の)の遷移を表すライン506の数に応じて変化してもよい。同様に、矩形504‐xの幅も、矩形504‐xの上および/または下の遷移を表すライン506の数に応じて変化してもよい。複数のライン506が1つの状態と関連付けられている(例えば左、右、上、または下で)場合は、ライン506は等しく間隔を空けられ得る。
状態図502は、遷移連結点(まとめては「各連結点510」、個別には「連結点510‐x」)を表す円510(個別には「円510‐x」)といった図形記号を含んでもよい。円508で表されるデフォルト連結点と同様に、遷移連結点は、状態機械モデルがとどまらず、即座に別の状態に遷移する特定のタイプの状態とみなされ得る。すなわち、円のシンタックスは連結点のセマンティックを表すことができる。シンタックス(「円」)もそのセマンティック(「遷移」)も、図5Aおよび図5Bにおいて同じ参照番号510を使用し得る。円508で表されるデフォルト連結点とは異なり、一実施形態では、遷移連結点510は、遷移表402に記述されなくてもよい。すなわち、遷移連結点510は状態図502においては表される(例えば状態図502のシンタックスでは)が、遷移表402では表されなくてもよい(例えば遷移表402のシンタックスでは)。それでもなお、遷移表402によって記述される状態機械モデルのセマンティクスは、状態図502において維持され得る。遷移連結点510は、状態図502において遷移元状態(連結点)または遷移先状態(連結点)としての機能であり得る。遷移連結点510は、たとえその状態図502への導入が状態図502の全体のセマンティックを変更しないとしても、セマンティック(連結点)と関連付けられた図形記号(円)によって表され得る。
遷移連結点510は、状態図502を理解しやすくするために生成され得る。例えば、遷移連結点510は、状態(連結点を含む)間の遷移を図式的に表すためのライン506の数を減らし得る。状態図502では、遷移連結点510は、遷移連結点510を、遷移表402で明示的に記述される連結点(例えば、円508ならびにセル406‐01およびセル406‐02で表されるデフォルト連結点)と区別するためにグレーで強調表示されていない。一実施形態では、円510が省かれていてよく、ライン506が点で交差してもよい。言い換えると、遷移連結点のシンタックス的な表現は、円ではなく点であってもよい。また任意の他の図形記号で遷移連結点は表され得る。
遷移表402のセル406‐01およびセル406‐02と一致して、状態図502は、u>=0の場合はデフォルト連結点508から状態S1への遷移、u<0の場合は状態S2への遷移を示している。同様に、状態図502も、条件C12Aが満たされた(セル406‐11と一致する)場合または条件C12Bが満たされた(セル406‐12と一致する)場合の状態S1から状態S2への遷移を示している。理解しやすくするために、状態図502からアクション(例えばアクションA11)が省かれている。他の実施形態では、状態図502は、例えば、条件と共にアクションを表示し得る。また状態図502は、条件C13が満たされた(セル406‐13と一致する)場合の状態S1から状態S3への遷移、および条件C14が満たされた(セル406‐14と一致する)場合の状態S4への遷移も示している。
状態図502は、条件C21が満たされた(セル406‐21と一致する)場合の状態S2から状態S1への遷移、条件C23が満たされた(セル406‐22と一致する)場合の状態S3への遷移、および条件C24が満たされた(セル406‐23と一致する)場合の状態S4への遷移を示している。状態図502は、条件C31が満たされた(セル406‐31と一致する)場合の状態S3から状態S1への遷移、条件C33が満たされた(セル406‐32と一致する)場合の状態S3への遷移、および条件C34が満たされた(セル406‐33と一致する)場合の状態S4への遷移を示している。最後に、状態図502は、条件C41が満たされた(セル406‐41と一致する)場合の状態S4から状態S1への遷移を示している。
上記のように、コンピュータデバイス210は、遷移表402から状態図502を生成し得る。図6Aは、状態機械モデルを記述するデータから状態図を生成するプロセス600のフローチャートである。プロセス600は、コンピュータデバイス210によって実行され得る(例えば自動的に)。プロセス600は、コンピュータデバイス210によるコンピュータ可読媒体からの状態機械モデルのセマンティック情報(例えば遷移表402)を記述するデータ(例えばモデル)の読取り(ブロック602)から開始し得る。状態機械モデルを記述するデータは、状態表(表102または表104といった)を含んでもよく、状態図(状態図122といった)を含んでもよい。言い換えると、状態機械モデルを記述するデータは、状態機械モデルのセマンティックを記述するためのどのようなタイプのシンタックスを含んでもよい。
プロセス600は、状態機械モデルを記述するデータから状態図を記述するデータの生成に続く(ブロック604)。例えば、コンピュータデバイス210は、遷移表402から状態図502を生成し得る。状態機械モデルを記述するデータの生成は、対応する遷移表には表示されないシンタックス要素(例えば遷移連結点510または状態)を含み得る。それでもなお、状態図を記述するデータによって表された状態機械モデルのセマンティクスは、状態機械モデルのセマンティクスと同じであり得る。
状態図を記述するデータの生成(ブロック604)後、状態図はユーザに表示され得る(ブロック606)。例えば、図5Aの状態図502が表示デバイス上に表示され得る。一実施形態では、コンピュータデバイス210は、状態機械モデルを記述するデータ(例えば遷移表402)を変更し、または更新する編集(例えばユーザからの)を受理し得る(ブロック608)。この場合には、状態機械モデル(例えば遷移表402)を記述するデータを更新(ブロック610)し得て、プロセス600が再度開始し、結果として状態図502が動的に生成されることになる(例えば、ユーザが遷移表402内の情報を編集する際に)。一実施形態では、遷移表402によって記述される状態機械モデルのセマンティクスは、例えば、実行順を含めて、状態図502によって記述される状態機械モデルのセマンティクスと同じである。
状態機械モデルを記述するデータの生成(ブロック604)自体がプロセスとして記述され得る。図6Bは、状態図502といった状態図を記述するデータを生成するプロセス604(例えば図6Aのブロック604)のフローチャートである。図5Bに、プロセス604を例示するための追加的なマーク付けを有する状態図502(図5Aにも示されている)を示す。図5Aの状態図502に示されているいくつかのマーク付け(いくつかの条件といった)は、明確にするために図5Bの状態図502から省かれている。プロセス604は、列に遷移元状態および遷移先状態を表す図形記号を配置するためのデータの生成から開始し得る(ブロック604‐1)。例えば、図5Bの状態図502に示されるように、状態S1、状態S2、状態S3、および状態S4を表す矩形504が列520に配置されており、列520は2本の破線で定義されている。また各列(例えば列520)は、行(例えば行520)として記述され得る。すなわち、状態図502の列は、縦ではなく横に配置され得る。一実施形態では、列520(および列522、列524、列526、および列528)を規定する破線は状態図502に示されなくてもよいが、理解しやすいように図5Bでは使用されている。一実施形態では、デフォルト連結点(例えば、デフォルト連結点508および/または他の連結点状態)が、矩形504を含む列520の外側になるように配置され得る。別の実施形態では、デフォルト連結点(例えばデフォルト連結点508)以外の連結点状態が列520に含められ得る。
一実施形態では、すべての遷移元状態および遷移先状態(連結点および/またはデフォルト連結点を除く)が、列520といった1つの列(例えば複数の列ではなく)に配置され得る。一実施形態では、状態を表す矩形504が、遷移表402に格納され、および/または表示された状態の順序と同じ順序で配置され得る(例えば上から下へ)。この実施形態では、遷移表402と状態図502によって表される状態機械モデルの実行順(よってセマンティック)は同じままであり得る。あるいは、実行順(よってセマンティック)は同じままで、矩形504の順序が変化され得る(遷移表402と比べて)。別の実施形態では、状態を表す矩形504が、遷移表402に格納され、および/または表示された状態の順序と異なる順序で配置され得る(例えば上から下へ)。例えば、矩形504は、遷移を有する状態が相互に隣り合うように配置され得る。一実施形態では、相互への最大数の遷移を有する状態が相互に隣り合うように配置される。それでもなお、状態図502は、遷移表402で表されるように状態機械モデルのセマンティックを維持するように生成され得る。一実施形態では、1つの状態へ/1つの状態からの遷移を表すライン(例えばライン506‐1〜ライン506‐3)が、等間隔に配置されるように生成され得る。別の実施形態では、状態を表す矩形504が、オーバーラップしない複数の列(例えば2列)に配置され得る。
プロセス604は、それぞれの遷移元状態に隣接した遷移先状態への遷移ラインを配置するためのデータの生成(ブロック604‐2)を含んでもよい。例えば、状態S1は状態図502で状態S2に隣接している。一実施形態では、状態S1から状態S2への遷移および状態S2から状態S1への遷移が、それぞれ、列520内の1または複数のライン506(例えば、縦のライン506‐1、506‐2、および506‐3)で表され得る。同様に、状態S2は状態図502で状態S3に隣接している。よって、この実施形態では、状態S2から状態S3への遷移は、列520内の1または複数のライン506(例えば縦のライン506‐4)で表され得る。同様に、状態S2から状態S1への遷移(図示せず)もまた、列520内の1または複数のラインで表され得る。加えて、状態S3も状態図502で状態S4に隣接している。よって、この実施形態では、状態S3から状態S4への遷移は、列520内の1または複数のライン506(例えば縦のライン506‐5)で表され得る。同様に、状態S4から状態S3への遷移(図示せず)も、列520内の1または複数のラインで表され得る。前述のように、一実施形態では、矩形504は、列520において、列520内のライン506(遷移を表す)の数が最大になるような順序で配置され得る(例えば、そのそれぞれの遷移元状態に隣接した遷移先状態の数を最大にするような)。
プロセス604は、それぞれの遷移元状態に隣接していない遷移元状態から遷移先状態への遷移ラインを配置するためのデータの生成(ブロック604‐3)を含んでもよい。例えば、図5Bの状態図502に示されるように、状態S3は状態S1に隣接していない。一実施形態では、状態S1から状態S3への遷移は、1または複数のライン506(例えば縦のライン506‐7ならびに横のライン506‐6および506‐8)で表され得る。この実施形態では、ライン506のうちの1または複数(例えば縦のライン506‐7)が列522に表示されるように配置され得る。一実施形態では、列522は、列520(または列524、列526、もしくは列528)とオーバーラップしない。この実施形態では、列522は、状態S3への遷移ラインのためのものであってもよい。すなわち、列522は、状態S3への遷移ラインに専用の「レーン」であり得る。他のライン506(例えばライン506‐9およびライン506‐12)は、状態S3以外の状態(例えば状態S4)への遷移を表すために列522を通過してもよい。言い換えると、一実施形態では、列522内の縦のライン506はすべて遷移先状態S3への遷移を表すためのものであってもよく、列522は、他の遷移先状態(例えば状態S4)への縦のラインを除外し得る。遷移先状態へのラインを配置するためのレーンまたは列を設け、または定義することは、状態図502に、読みやすいやり方で生成されることを可能にし、遷移を表すラインの衝突(またはオーバーラップ)を回避する。
一実施形態では、遷移連結点510(例えば遷移連結点510‐1および遷移連結点510‐2)は、ライン506間の(例えばライン506‐6とライン506‐7との間の)関係を示す図形記号として生成され得る。別の実施形態では、遷移連結点510は除外され得る(例えば、ライン506‐6とライン506‐7とを点で交差させてもよい)。
別の例として、状態S4も状態S1に隣接していない。この実施形態では、状態S1から状態S4への遷移は、1または複数のライン506(例えば縦のライン506‐10および506‐11ならびに横のライン506‐9および506‐12)で表され得る。この実施形態では、ライン506のうちの1または複数(例えば縦のライン506‐10およびライン506‐11)は列524に表示されるように配置され得る。一実施形態では、列524は、列520、列522、列526、または列528とオーバーラップしない。この実施形態では、列524は、遷移先状態S4への遷移ラインのためのものであってよい。すなわち、列524は、状態S4への遷移ラインに専用の「レーン」であり得る。他のライン(この例では図示されていない)は、状態S4以外の状態への遷移を表すために列524を通過してよい。すなわち、一実施形態では、列524内の縦のライン506はすべて遷移先状態S4への遷移を表すためのものであってもよく、列524は、他の遷移先状態(例えば状態S3)への縦のラインを除外し得る。この実施形態では、ライン506‐9、ライン506‐10、ライン506‐11、およびライン506‐13は、例えば、遷移表402において1対1の対応関係を有しないシンタックス要素(例えば遷移を表す)である。すなわち、この例では、遷移表402内の遷移連結点510‐3に対応する状態(例えば連結点)がないため、ライン506‐9、ライン506‐10、およびライン506‐11は、遷移表402内の遷移に対する直接の対応関係を有しない遷移を表す。
同様に、状態S2も状態図502で状態S4に隣接していない。よって、この実施形態では、状態S2から状態S3への遷移は、列524内の1または複数のライン506(例えば縦のライン506‐11ならびに横のライン506‐13および506‐12)で表され得る。状態S2からの遷移は状態S4へのものであるため、この遷移を表すライン506は、状態S4への遷移に専用の「レーン」内に表示され得る。よって、状態図502で状態S2から状態S4への遷移を表すライン506は列524に表示される。さらに、ラインの数を減らすために、一実施形態では、ライン506は、状態S2から状態S4への遷移が、他の状態(例えば状態S1)から状態S4への1または複数の遷移も表す1または複数のライン506(例えばライン506‐11およびライン506‐12)を共用し得るように配置され得る。別の実施形態では、異なる遷移元状態(例えば状態S1および状態S2)から同じ遷移先状態(例えば状態S4)への遷移がライン506を共用しなくてもよい。
一実施形態では、遷移連結点510(例えば遷移連結点510‐3、510‐4、および510‐5)は、ライン506間の関係を示す図形記号(例えば、遷移連結点への遷移を表すライン506‐9〜ライン506‐13の間の)として生成され得る。この実施形態では、遷移連結点510‐4は、状態S2および状態S4からの遷移がライン(例えばライン506‐11およびライン506‐12)を共用できるようにする。よって、1つの遷移先状態(例えば状態S4)への遷移は、レーン(例えば列524)を共用し得て、そのレーン内の1または複数のライン506を共用し得る。別の実施形態では、円510が除外され得て、ライン506‐10、ライン506‐11、およびライン506‐13は、例えば、点(例えば、シンタックスにおける異なる図形記号)で交差させられ得る。言い換えると、遷移連結点510‐3、遷移連結点510‐4、および遷移連結点510‐5は、遷移表402のシンタックスで表されない状態(例えば連結点)を表すシンタックス要素である。したがって、ライン506‐9〜ライン506‐13は、遷移表402内の遷移に対する直接の対応関係を有しない遷移を表す。一実施形態では、1つの状態へ/1つの状態からの遷移を表すライン(例えば状態S1からのライン506‐6およびライン506‐9)が、等間隔に配置されるように生成され得る。
別の例として、状態S4も状態S3も状態S1に隣接していない。この実施形態では、状態S3から状態S1への遷移は、1または複数のライン506(例えば縦のライン506‐15ならびに横のライン506‐14および506‐16)で表され得る。この実施形態では、ライン506のうちの1または複数(例えば縦のライン506‐15)が列526に表示されるように配置され得る。一実施形態では、列526は、列520またはその他の列(例えば、列522、列524、列528)とオーバーラップしない。この実施形態では、列526は、状態S1への遷移ラインのためのものであってもよい。すなわち、列526は、状態S1への遷移ラインに専用の「レーン」であり得る。他のライン(例えばライン506‐17およびライン506‐19)は、状態S1以外の状態への遷移を表すために列526を通過してもよい。すなわち、一実施形態では、列526内の縦のライン506はすべて遷移先状態S1への遷移を表すためのものであってもよく、列526は、他の状態(例えば状態S2)への遷移を表す縦のラインを除外し得る。
同様に、この実施形態では、状態S4から状態S1への遷移は、列526内の1または複数のライン506(例えば縦のライン506‐21およびライン506‐15ならびに横のライン506‐20および506‐16)で表され得る。状態S4からの遷移は状態S1へのものであるため、この遷移を表すライン506は、状態S1への遷移に専用の「レーン」(例えば列526)内に表示され得る。さらに、ラインの数を減らすために、一実施形態では、ライン506は、状態S4から状態S1への遷移が、他の状態(例えば状態S3)から状態S1への1または複数の遷移も表す1または複数のライン506(例えばライン506‐15およびライン506‐16)を共用するように配置され得る。別の実施形態では、異なる遷移元状態(例えば状態S3および状態S4)から同じ遷移先状態(例えば状態S1)への遷移がライン506を共用しなくてもよい。
一実施形態では、遷移連結点510(例えば遷移連結点510‐6、510‐7、および510‐8)は、ライン506間の(例えば、連結点510への遷移を表すライン506‐14、ライン506‐15、ライン506‐16、506‐20およびライン506‐21の間の)関係を示す図形記号として生成され得る。この実施形態では、遷移連結点510‐6は、状態S3および状態S4からの遷移がライン(例えば、遷移を表すライン506‐15およびライン506‐16)を共用することを可能にする。よって、1つの遷移先状態(例えば状態S1)への遷移はレーン(例えば列526)を共用し得て、そのレーン内の1または複数のライン506(例えば、ある状態へ、またはある状態からの遷移を表す)を共用し得る。別の実施形態では、円510は除外され得て、遷移連結点510は点で表され得て、例えば、ライン506はその点で交差し得る。
上述したように、遷移連結点510‐6〜遷移連結点510‐8は、遷移表402のシンタックスで表されない状態(例えば連結点)を表すシンタックス要素である。したがって、ライン506‐14、ライン506‐15、ライン506‐16、ライン506‐20、およびライン506‐21は、遷移表402内の遷移に対する1対1の対応関係を有しない遷移を表す。
一実施形態では、上方向(例えば状態S4から状態S1へ)の遷移を表すライン506は、列520の一方の側(例えば左側)に現れるように生成され得る。さらに、下方向(例えば状態S1から状態S4へ)の遷移を表すライン506は、列520の他方の側(例えば右側)に現れるように生成され得る。
一実施形態では、状態図502の状態機械モデルは、状態として定義された(例えば、表の行または列で定義された)遷移連結点を含む表形式で表され得る。この実施形態では、遷移連結点は追加された状態として特定され得る(例えば、状態機械モデルの全体のセマンティクスを変更しない状態図を生成させる目的で)。一実施形態では、追加されたシンタックス要素(およびそれらの図形表現)は、すでにユーザによく知られた、状態図においてすでに標準の状態機械モデルのセマンティック(例えば連結点)と関連付けられ得る。したがって、ユーザはシンタックスとセマンティクスとの新しい関連付けを学ぶ必要がない。例えば、遷移連結点510は、同じ記号(円)を使用しており、連結点508と同じセマンティック(遷移表402に記述されたデフォルト連結点)を有する。同様に、ライン506‐11およびライン506‐10も、同じ記号(ライン)を使用しており、ライン506‐17と同じセマンティック(遷移表402に記述されたライン)を有する。公知のシンタックスおよびセマンティクスを有するが、状態図で表された状態機械モデルの全体のセマンティクスを変更しない他のシンタックス要素が状態図502に導入されてもよい。
一実施形態では、ユーザは、状態機械モデルのセマンティックを変更せずに手作業で遷移連結点510を挿入し得る。例えば、ユーザは、ツールバーから連結点遷移の図形表現(例えば円)を選択し、その図形表現を状態図(例えば状態図502)上にドラッグし、その図形表現をライン(例えば、遷移元状態から遷移先状態への遷移を表すライン506‐x)上にドロップし得る。コンピュータデバイス210は次いで、その遷移元状態から遷移先状態への遷移を表すラインを記述するデータを置き換えるための新しいデータを自動的に生成し得る。この新しいデータは、遷移元状態から遷移連結点への遷移を表すライン、および遷移連結点から遷移先状態への遷移を表すラインを記述し得る。一実施形態では、このような遷移連結点の挿入は、状態機械モデルのセマンティクスを変更しない。別の実施形態では、ユーザは、例えば、条件、および別の遷移先状態への遷移を表す追加ラインを加えることにより、遷移連結点に関連した情報を編集することによって、状態機械モデルのセマンティクスを変更し得る。
状態図502のライン506は直線であるが、本明細書で使用する「ライン」という用語は必ずしも直線を表すとは限らない。「ライン」という用語を使用する場合、それは何らかの湾曲を含んでいてよい。「直線」は、本明細書で使用する場合、湾曲を含まない。
よって、上記の実施形態は状態図に、例えば、状態機械モデルのセマンティックを変更しない追加的なシンタックス要素を導入する。追加的なシンタックス記述を導入することにより、状態機械モデルのセマンティクスは人間にとってより分かりやすくされ得る。一実施形態では、状態機械モデルの状態表または別の状態図から(例えば追加のシンタックスを有する)状態図が生成され得る(例えば、状態機械モデルの元の表現がどのようなものであれ、状態機械モデルのセマンティクスを維持しながら)。
本出願は、整理番号第0081‐0003号、「Unified State Transition Table Describing a State Machine Model」という名称の、2013年2月15日に出願された、米国特許出願第13/XXX,XXX号明細書を援用する。
<結論>
本明細書で使用する場合、冠詞の「a」は1または複数の項目を含むことが意図されている。例えば、命令を保持する「a computer−readable medium」は、命令を保持するcomputer−readable media(例えば複数のコンピュータ可読媒体)を指し、および/またはカバーし得る。別の例として、1または複数の命令を実行する「a processor」は、命令を実行する1または複数のプロセッサを指し、およびカバーし得る。別の例として、「an instruction」は、複数の命令を指し、およびカバーし得る。
本明細書の説明では、列を縦として、行を横として記述している。これらの用語(「列」、「行」、「縦」、「横」)は、フィールドセットの相対的関係(例えば直交関係)を表すために意図され、必ずしも特定の縦方向および/または横方向を表すとは限らない。したがって、横の行の第1のフィールドセットおよび縦の列の第2のフィールドセットを記述し、およびに/または表示する実施形態はまた、縦の列の第1のフィールドセットおよび横の行の第2のフィールドセットを記述し、および/または表示する実施形態を開示するとも理解される。同様に、本明細書は、縦としてのライン、または横としてのラインを記述している。これらの用語(「ライン」、「縦」、「横」)は、ラインの相対的関係(例えば直交関係)を表すために意図され、必ずしも特定の縦方向および/または横方向を表すとは限らない。したがって、第1の横のラインおよび第2の縦のラインを記述し、および/または表示する実施形態はまた、縦としての第1のラインおよび横としての第2のラインを記述し、および/または表示する実施形態を開示すると理解される。「行」という用語は、縦としても横としても使用し、記述し得る。それでもなお、「行」という用語が「列」と併用される場合、それは関係(例えば直交関係)を表す。すなわち、「行」は横方向であるとは限らない。
状態機械モデルを記述するデータは、状態機械モデルを記述する(コンピュータ言語または他の言語で書かれた)命令および/またはコンピュータコードを含んでもよい。命令および/またはコンピュータコードは、C、C++、C#、プログラマブル・ロジック・コントローラ(PLC:programmable logic controller)言語、Ada、Java、MATLAB(登録商標)、統一モデリング言語(UML)、システムモデリング言語(SysML)、拡張可能なマークアップ言語(XML)、リアルタイム組み込みシステムのモデリングおよび解析(MARTE)、ハードウェア記述言語(HDL)、および/または自動車オープン・システム・アーキテクチャ(AUTOSAR)を含んでもよい。
「保持している(holding)」という用語は、非限定的であることが意図されている。例えば、1または複数の要素を保持していると記述される媒体は、その媒体が、記載される1または複数の要素を表す機械可読命令を保持しており、また、追加的な、明記されていない要素も含み得ることを意味することを意図されている。「1または複数の命令を保持している」という用語は、「1または複数の命令を記憶している」ことを含んでもよい。
上記のように、状態図は図形記号を含んでもよい。一実施形態では、状態図の図形記号「の各々」が遷移元状態のうちの1つまたは遷移先状態のうちの1つを表す。この実施形態では、状態図は、遷移元状態および/または遷移先状態以外のものを表す他の図形記号を含んでもよい。すなわち、「〜の各々」という用語は、当該の特性を有する各図形記号の特性を記述するために使用され、必ずしも、状態図内のすべての図形記号がそれらの特性を有することを意味するとは限らない。さらに、この実施形態では、状態機械モデル(状態図で表される)内のすべての遷移元状態および/または遷移先状態が、必ずしも、図形記号で表されるとは限らない。
本明細書で使用する場合、状態機械モデルの第1の状態を表す第1の図形記号は、同じ状態機械モデルの第3の状態を表す図形記号が第1の図形記号と第2の図形記号との間にあるときには、第2の状態を表す第2の図形記号に「隣接している」とみなされない。他方、第1の図形記号は、第2の図形記号が第1の図形記号のすぐ隣にある、すなわち、同じ状態機械モデル任意の他の状態を表す図形記号が第1の図形記号と第2の図形記号との間にないときに、第2の図形記号に「隣接している」とみなされる。
上述したように、格納されたデータは、遷移元状態および遷移先状態を有する状態機械モデルを記述し得る。一実施形態では、遷移元状態「の各々」は、状態機械モデルがそれを条件として対応する遷移元状態から遷移先状態のうちの1つに遷移する(または遷移することになっている)条件と関連付けられ得る。この実施形態では、同じ状態機械モデルの一部として、データは、いかなる条件とも関連付けられない追加的な遷移元状態を記述し得る。すなわち、「〜の各々」という用語は、当該の特性を有する各遷移元状態の特性を記述するために使用され、必ずしも、状態図内のすべての遷移元状態がそれらの特性を有することを意味するとは限らない。加えて、この実施形態では、遷移元状態以外のものと関連付けられた条件があってもよい。
一実施形態では、上記の方法は、状態図を記述するデータを生成することを含む。この実施形態では、状態図は、遷移元状態および遷移先状態を表す図形記号、ならびに遷移を表すラインを含んでもよい。この方法は、第1の列に図形記号を「配置すること」を含んでもよい。「配置すること」という用語は、例えば、記述される図形記号が、状態図で第1の列に表示されることになるような状態図を記述するデータを生成することを含む。同様に、第2の列にラインを「配置すること」は、記述されるラインが状態図で第2の列に表示されることになるような状態図を記述するデータを生成することを含む。
本明細書で使用する場合、「データ」という用語は、複数のみならず単数として解釈されてもよい。よって、「状態機械モデルを記述するデータ(data)」は、「状態機械モデルを記述するデータ(datum)」と同義であってもよい。
本発明の例示的な実施形態の以上の記述は例示および説明を提供するが、網羅的であることも、本発明を開示どおりの形態に限定することも意図されない。上記の教示に照らして変更および変形が可能であり、本発明の実施により変更および変形が取得され得る。例えば、一連の動作が記述されているが、各動作の順番は、本発明の原理と整合性を有する他の実装形態では変更されてもよい。さらに、非依存の動作は並列に実行されてもよい。
加えて、本発明の原理と整合性を有する実装形態は、本発明の趣旨を逸脱することなく、各図に例示され、本明細書で記述されているもの以外のデバイスおよび構成を用いて実装され得る。具体的な展開および/または適用に応じて、デバイスおよび/または構成要素が、図2A、図2B、および図3の各実装形態に追加され、および/または各実装形態から削除され得る。さらに、開示の実装形態はいかなる特定のハードウェアの組み合わせにも限定され得ない。
さらに、本発明のいくつかの部分は、1または複数の機能を果たす「論理」として実装され得る。この論理は、配線論理、特定用途向け集積回路、フィールド・プログラマブル・ゲート・アレイ、マイクロプロセッサ、またはハードウェアとソフトウェアとの組み合わせといったハードウェアを含んでもよい。本発明の記述で使用されるいかなる要素、動作、または命令も、特に明示しない限り、本発明にとって必要不可欠であると解釈すべきではない。また、本明細書で使用する場合、冠詞の「a」は1または複数の項目を含むことが意図されている。さらに、「〜に基づく(based on)」という句は、本明細書で使用する場合、特に明示しない限り、「〜に少なくとも一部は基づく(based,at least in part,on)」を意味する。
本明細書で使用する見出しおよび小見出しは、本明細書を小区分に分割することによって読みやすくするためのものである。これらの見出しおよび小見出しは、本発明の範囲を限定するもの、または本発明の特徴を定義するものとも解釈すべきではない。

Claims (24)

  1. プロセッサにより実行可能な命令を保持する非一時的なコンピュータ可読媒体であって、
    状態機械モデルを記述する第1のデータを読み取るための1または複数の命令であって、前記状態機械モデルは、
    遷移先状態と、
    満たされる場合、前記状態機械モデルが対応する遷移元状態から前記遷移先状態のうちの1つに遷移することを可能にする条件と関連付けられる遷移元状態と、
    を含む命令と;
    前記状態機械モデルを記述する前記第1のデータから状態図を記述するための第2のデータを生成するための1または複数の命令であって、前記状態図は、
    第1の図形記号であって、前記遷移元状態のうちの1つまたは前記遷移先状態のうちの1つを表す前記第1の図形記号の各々と、
    第2の図形記号であって、前記第1のデータによって記述されない複数の連結点状態のうちの1つを表す前記第2の図形記号の各々と、
    第1のラインおよび第2のラインを含む、遷移を表すラインと、
    を含む命令と;
    前記ラインを配置するための1または複数の命令であって、
    前記第1のラインは、前記遷移元状態のうちの第1の遷移元状態から前記連結点状態のうちの1つへの、前記遷移のうちの第1の遷移を表し、
    前記第2のラインは、前記連結点状態のうちの前記1つから前記遷移先状態のうちの第1の遷移先状態への、前記遷移のうちの第2の遷移を表し、
    前記第1のラインおよび前記第2のラインは、前記遷移元状態のうちの前記第1の遷移元状態から前記遷移先状態のうちの前記第1の遷移先状態への遷移の前記第1のデータ内の記述を意味的に置き換える命令と;ならびに
    前記第2のデータに基づいて前記状態図を表示するための1または複数の命令であって、状態図は、前記第1のデータによって記述される前記状態機械モデルのセマンティクスを維持する命令と、
    を保持する非一時的なコンピュータ可読媒体。
  2. 前記第1の図形記号を第1の行に配置するための1または複数の命令と;および
    複数の前記第2の図形記号を前記第1の行とオーバーラップしない第2の行に配置するための1または複数の命令と、
    をさらに含む、請求項1に記載の非一時的なコンピュータ可読媒体。
  3. 記ラインが、複数の前記遷移元状態から前記遷移先状態のうちの1つへの遷移を表す1または複数の縦のラインを含み、前記遷移先状態のうちの前記1つを表す前記第1の図形記号は、前記複数の前記遷移元状態を表す前記第1の図形記号に隣接せず、前記非一時的なコンピュータ可読媒体は、
    前記1または複数の縦のラインを、前記第1の行とオーバーラップしない第3の行に配置するための1または複数の命令と;
    追加の行を定義するための1または複数の命令であって、前記追加の行は前記第3の行を含み、前記追加の行の各々は前記遷移先状態のうちの異なる1つと関連付けられ、前記追加の行の各々は前記第1の行とも前記追加の行のいずれの他の行ともオーバーラップせず、各追加の行は、
    前記遷移元状態のうちの複数から前記遷移先状態のうちの対応する異なる1つへの前記遷移を表す1または複数の縦のラインを含み、前記遷移先状態のうちの前記対応する異なる1つを表す前記第1の図形記号は、前記遷移元状態のうちの前記複数を表す前記第1の図形記号に隣接しない命令と、
    をさらに保持する、請求項2に記載の非一時的なコンピュータ可読媒体。
  4. 前記追加の行の各々は、前記遷移先状態のうちの前記対応する異なる1つへの前記遷移以外のいずれの遷移を表す縦のラインも含まない、請求項3に記載の非一時的なコンピュータ可読媒体。
  5. 前記第1の行に、前記遷移元状態のうちの別の1つから前記遷移先状態のうちの別の1つへの前記遷移を表す縦のラインを配置するための1または複数の命令であって、前記遷移先状態のうちの前記別の1つを表す前記第1の図形記号は、前記遷移元状態のうちの前記別の1つを表す前記第1の図形記号に隣接する命令をさらに含む、請求項4に記載の非一時的なコンピュータ可読媒体。
  6. 前記複数の遷移元状態から前記遷移先状態のうちの前記1つへの前記遷移を表す前記1または複数の縦のラインは、前記遷移のうちの複数を表す1つの縦のラインを含む、請求項3に記載の非一時的なコンピュータ可読媒体。
  7. 前記遷移を表す前記ラインは、前記複数の遷移元状態を表す前記第1の図形記号の各々から前記1つの縦のラインへのラインを含む、請求項4に記載の非一時的なコンピュータ可読媒体。
  8. 前記1つの縦のラインと、前記複数の遷移元状態を表す前記第1の図形記号からの前記ラインのうちの1つとの交点を表す第2の図形記号を配置するための1または複数の命令をさらに含む、請求項7に記載の非一時的なコンピュータ可読媒体。
  9. 前記状態機械モデルを開始するデフォルトの第1の遷移以外の、前記遷移先状態を表す前記第1の図形記号が、前記遷移元状態を表す前記第1の図形記号の下にあるが隣接しない、前記遷移元状態から前記遷移先状態への遷移を表す前記ラインは、前記第1の行の外側で、前記第1の行の一方の側にあり、
    前記状態機械モデルを開始するデフォルトの第1の遷移以外の、前記遷移先状態を表す前記第1の図形記号が、前記遷移元状態を表す前記第1の図形記号の上にあるが隣接しない、前記遷移元状態から前記遷移先状態への遷移を表す前記ラインは、前記第1の行の図式的に外側で、前記第1の行の別の側にあり、前記別の側は前記一方の側の反対側である、請求項3に記載の非一時的なコンピュータ可読媒体。
  10. 前記状態機械モデルの前記セマンティクスを変更するためのユーザからの入力を受理するための1または複数の命令と;
    前記ユーザからの前記入力に基づいて、更新される状態機械モデルを記述する更新された第1のデータを生成するための1または複数の命令と;
    前記更新された第1のデータに基づいて更新される状態図を記述する更新された第2のデータを生成するための1または複数の命令であって、前記更新される状態図は、前記第1のデータ内の記述を意味的に置き換えるための、前記第1のデータによって記述されないセマンティック要素を含む命令と;ならびに、
    前記更新された第2のデータに基づいて前記更新される状態図を表示するための1または複数の命令であって、状態図は、前記第1のデータによって記述される前記状態機械モデルのセマンティクスを維持する命令をさらに含む、請求項1に記載の非一時的なコンピュータ可読媒体。
  11. テクニカルコンピューティング環境におけるコンピューティングデバイスであって、
    状態機械モデルを記述するデータを格納するためのメモリであって、前記状態機械モデルは、
    遷移先状態と、
    前記状態機械モデルが、対応する遷移元状態から前記遷移先状態のうちの1つに遷移することになる条件と関連付けられる遷移元状態と、
    を含むメモリと;
    プロセッサであって、
    前記状態機械モデルを記述する前記データから状態図を記述するためのデータを生成し、前記状態図は、
    図形記号であって、前記遷移元状態のうちの1つまたは前記遷移先状態のうちの1つを表す前記図形記号の各々と、
    遷移を表すラインと、
    を含み、
    前記図形記号を第1の行に配置し、
    前記ラインを配置し、前記ラインは前記遷移元状態のうちの複数から前記遷移先状態のうちの1つへの遷移を表す1または複数の縦のラインを含み、前記遷移先状態のうちの前記1つを表す前記図形記号は、前記遷移元状態のうちの前記複数を表す前記図形記号に隣接せず、
    前記1または複数の縦のラインを、前記第1の行とオーバーラップしない第2の行に配置する
    ように構成されるプロセッサと;
    前記状態図を示すためのディスプレイと、
    を備えるコンピューティングデバイス。
  12. 前記プロセッサは、
    追加の行を定義し、前記追加の行は前記第2の行を含み、前記追加の行の各々は前記遷移先状態のうちの異なる1つと関連付けられ、前記追加の行の各々は前記第1の行とも前記追加の行のいずれの他の行ともオーバーラップせず、各追加の行は、
    前記遷移元状態のうちの複数から前記遷移先状態のうちの対応する異なる1つへの前記遷移を表す1または複数の縦のラインを含み、前記遷移先状態のうちの前記対応する異なる1つを表す前記図形記号は、前記遷移元状態のうちの前記複数を表す前記図形記号に隣接しない、請求項11に記載のコンピューティングデバイス。
  13. 前記追加の行の各々は、前記遷移先状態のうちの前記対応する異なる1つへの前記遷移以外のいずれの遷移を表す縦のラインも含まない、請求項12に記載のコンピューティングデバイス。
  14. 前記プロセッサは、
    前記第1の行に、前記遷移元状態のうちの別の1つから前記遷移先状態のうちの別の1つへの前記遷移を表す縦のラインを配置するように構成され、前記遷移先状態のうちの前記別の1つを表す前記図形記号は、前記遷移元状態のうちの前記別の1つを表す前記図形記号に隣接する、請求項13に記載のコンピューティングデバイス。
  15. 前記複数の遷移元状態から前記遷移先状態のうちの前記1つへの前記遷移を表す前記1または複数の縦のラインは、前記遷移のうちの複数を表す1つの縦のラインを含む、請求項11に記載のコンピューティングデバイス。
  16. 前記遷移を表す前記ラインは、前記複数の遷移元状態を表す前記図形記号の各々から前記1つの縦のラインへのラインを含む、請求項15に記載のコンピューティングデバイス。
  17. 前記プロセッサは、
    前記1つの縦のラインと、前記複数の遷移元状態を表す前記図形記号からの前記ラインのうちの1つとの交点を表す図形記号を配置するように構成される、請求項16に記載のコンピューティングデバイス。
  18. プロセッサにより、状態機械モデルを記述するデータを受理することであって、前記状態機械モデルは、
    遷移先状態と、
    前記状態機械モデルが、対応する遷移元状態から前記遷移先状態のうちの1つに遷移することになる条件と関連付けられる遷移元状態と、
    を含むことと;
    前記状態機械モデルを記述する前記データから状態図を記述するためのデータを生成することであって、前記状態図は、
    図形記号であって、前記遷移元状態のうちの1つまたは前記遷移先状態のうちの1つを表す前記図形記号の各々と、
    遷移を表すラインと、
    を含むことと;
    前記図形記号を第1の行に配置することと;
    前記ラインを配置することであって、前記ラインは、前記遷移元状態のうちの複数から前記遷移先状態のうちの1つへの遷移を表す1または複数の縦のラインを含み、前記遷移先状態のうちの前記1つを表す前記図形記号は、前記遷移元状態のうちの前記複数を表す前記図形記号に隣接しないことと;
    前記1または複数の縦のラインを、前記第1の行とオーバーラップしない第2の行に配置することと;
    前記状態図をディスプレイ上に表示することと、
    を含む方法。
  19. 追加の行を定義することであって、前記追加の行は前記第2の行を含み、前記追加の行の各々は前記遷移先状態のうちの異なる1つと関連付けられ、前記追加の行の各々は前記第1の行とも前記追加の行のいずれの他の行ともオーバーラップせず、各追加の行は、
    前記遷移元状態のうちの複数から前記遷移先状態のうちの対応する異なる1つへの前記遷移を表す1または複数の縦のラインを含み、前記遷移先状態のうちの前記対応する異なる1つを表す前記図形記号は、前記遷移元状態のうちの前記複数を表す前記図形記号に隣接しないこと、をさらに含む、請求項18に記載の方法。
  20. 前記追加の行の各々は、前記遷移先状態のうちの前記対応する異なる1つへの前記遷移以外のいずれの遷移を表す縦のラインも含まない、請求項19に記載の方法。
  21. 前記第1の行に、前記遷移元状態のうちの別の1つから前記遷移先状態のうちの別の1つへの前記遷移を表す縦のラインを配置することであって、前記遷移先状態のうちの前記別の1つを表す前記図形記号は、前記遷移元状態のうちの前記別の1つを表す前記図形記号に隣接すること、
    をさらに含む、請求項20に記載の方法。
  22. 前記複数の遷移元状態から前記遷移先状態のうちの前記1つへの前記遷移を表す前記1または複数の縦のラインは、前記遷移のうちの複数を表す1つの縦のラインを含む、請求項18に記載の方法。
  23. 前記遷移を表す前記ラインは、前記複数の遷移元状態を表す前記図形記号の各々から前記1つの縦のラインへのラインを含む、請求項22に記載の方法。
  24. 前記1つの縦のラインと、前記複数の遷移元状態を表す前記図形記号からの前記ラインのうちの1つとの交点を表す図形記号を配置すること、をさらに含む、請求項23に記載の方法。
JP2014557823A 2012-02-15 2013-02-15 状態図の生成 Active JP6033891B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261599311P 2012-02-15 2012-02-15
PCT/US2013/026407 WO2013123373A1 (en) 2012-02-15 2013-02-15 Generating a state diagram

Publications (2)

Publication Number Publication Date
JP2015517128A JP2015517128A (ja) 2015-06-18
JP6033891B2 true JP6033891B2 (ja) 2016-11-30

Family

ID=48946502

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014557823A Active JP6033891B2 (ja) 2012-02-15 2013-02-15 状態図の生成
JP2014557824A Active JP6038959B2 (ja) 2012-02-15 2013-02-15 状態機械モデルを記述する統合状態遷移表

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014557824A Active JP6038959B2 (ja) 2012-02-15 2013-02-15 状態機械モデルを記述する統合状態遷移表

Country Status (4)

Country Link
US (1) US10360502B2 (ja)
EP (2) EP2820537A1 (ja)
JP (2) JP6033891B2 (ja)
WO (1) WO2013123373A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959494B2 (en) * 2012-03-20 2015-02-17 Massively Parallel Technologies Inc. Parallelism from functional decomposition
WO2014152800A1 (en) 2013-03-14 2014-09-25 Massively Parallel Technologies, Inc. Project planning and debugging from functional decomposition
US9086688B2 (en) * 2013-07-09 2015-07-21 Fisher-Rosemount Systems, Inc. State machine function block with user-definable actions on a transition between states
US20170045880A1 (en) * 2015-04-14 2017-02-16 Sendyne Corporation Model numerical solver for system control
GB2547222A (en) * 2016-02-10 2017-08-16 Testplant Europe Ltd Method of, and apparatus for, testing computer hardware and software
GB2547220A (en) * 2016-02-10 2017-08-16 Testplant Europe Ltd Method of, and apparatus for, testing computer hardware and software
KR102092722B1 (ko) * 2016-03-23 2020-04-23 포그혼 시스템스 인코포레이티드 실시간 데이터플로우 프로그래밍 언어를 위한 도구 및 방법
CN108646562B (zh) * 2018-05-15 2021-05-18 浙江工业大学 一种基于交叉耦合的多机械臂系统有限时间参数辨识与位置同步控制方法
US11468216B2 (en) * 2018-08-28 2022-10-11 Linecraft Ai Limited Method for building a model of a physical system
JP7193623B2 (ja) * 2019-04-23 2022-12-20 日立Astemo株式会社 車両制御装置及びコンピュータプログラム
CN111596915B (zh) * 2020-05-19 2022-12-02 西安电子科技大学 基于状态机图的无人机飞行模式的c++代码生成方法
CN113553062A (zh) * 2021-07-23 2021-10-26 中国电子科技集团公司第二十八研究所 一种基于模板技术的状态机代码生成方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02206861A (ja) 1989-02-06 1990-08-16 Nec Corp 状態遷移表作成装置
JPH04152473A (ja) * 1990-10-17 1992-05-26 Nec Corp 状態遷移図作成装置
JP3283295B2 (ja) 1992-07-21 2002-05-20 株式会社日立製作所 情報処理装置
US5485600A (en) 1992-11-09 1996-01-16 Virtual Prototypes, Inc. Computer modelling system and method for specifying the behavior of graphical operator interfaces
US5870590A (en) 1993-07-29 1999-02-09 Kita; Ronald Allen Method and apparatus for generating an extended finite state machine architecture for a software specification
US7387253B1 (en) 1996-09-03 2008-06-17 Hand Held Products, Inc. Optical reader system comprising local host processor and optical reader
US5920718A (en) 1997-03-21 1999-07-06 The Boeing Company Method and apparatus for creating executable code for object-oriented objects having finite state machine
US7200838B2 (en) 2000-12-20 2007-04-03 National Instruments Corporation System and method for automatically generating a graphical program in response to a state diagram
US20040205703A1 (en) 2000-12-28 2004-10-14 Yeda Research And Development Co . , Ltd. , Playing in scenarios of system behavior
US7720656B2 (en) 2001-05-14 2010-05-18 The Math Works, Inc. Graphical functions
US20030052919A1 (en) 2001-09-06 2003-03-20 Tlaskal Martin Paul Animated state machine
US7512931B2 (en) 2001-11-13 2009-03-31 National Instruments Corporation Graphical program nodes for implementing a measurement state model
ATE398804T1 (de) 2002-04-26 2008-07-15 California Inst Of Techn Vorrichtung und verfahren für taktlose datenrückgewinnung
US7010778B2 (en) 2002-06-24 2006-03-07 International Business Machines Corporation Method, apparatus, and program for a state machine framework
NO20032419D0 (no) 2003-05-27 2003-05-27 Ericsson Telefon Ab L M Ikke blokkerende, varige tilstandsmaskiner i en "Enterprise Java Bean" plattform
US7730415B2 (en) 2003-09-05 2010-06-01 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
US20070282480A1 (en) * 2003-11-10 2007-12-06 Pannese Patrick D Methods and systems for controlling a semiconductor fabrication process
EP1586965A1 (en) 2004-04-16 2005-10-19 Athys A synchronous formal language for programming deterministic finite state machines
US7343599B2 (en) 2005-01-03 2008-03-11 Blue Lane Technologies Inc. Network-based patching machine
US7958454B2 (en) 2005-04-19 2011-06-07 The Mathworks, Inc. Graphical state machine based programming for a graphical user interface
FI118064B (fi) 2005-07-12 2007-06-15 Suomen 3C Oy Äärellisen tilakonemallin luominen
US8464188B1 (en) * 2005-08-23 2013-06-11 The Mathworks, Inc. Multi-rate hierarchical state diagrams
CA2637656C (en) * 2006-01-17 2016-06-28 Transcend Medical, Inc. Glaucoma treatment device
US7948495B1 (en) 2006-02-02 2011-05-24 Nvidia Corporation Linking texture headers and texture samplers
US7840913B1 (en) 2006-03-31 2010-11-23 The Mathworks, Inc. Restricting state diagrams with a set of predefined requirements to restrict a state diagram to a state diagram of a moore or mealy machine
JP4245012B2 (ja) * 2006-07-13 2009-03-25 東京エレクトロン株式会社 処理装置及びこのクリーニング方法
US8200807B2 (en) 2006-08-31 2012-06-12 The Mathworks, Inc. Non-blocking local events in a state-diagramming environment
JP4480737B2 (ja) 2007-03-29 2010-06-16 富士通株式会社 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法
US8387002B2 (en) 2007-04-20 2013-02-26 National Instruments Corporation Statechart development environment with embedded graphical data flow code editor
US8387000B2 (en) 2007-07-12 2013-02-26 The Mathworks, Inc. Continuous time mode-driven simulations in a graphical modeling environment
JP2010128583A (ja) 2008-11-25 2010-06-10 Toshiba Corp テスト容易化設計装置ならびにその方法およびプログラム
JP5114718B2 (ja) 2008-12-04 2013-01-09 株式会社日立情報制御ソリューションズ 状態遷移表の表示方法及び表示装置
US20110288830A1 (en) * 2009-08-13 2011-11-24 Bikram Garg Finite State Machine Diagram Generation
JP2011059817A (ja) 2009-09-07 2011-03-24 Sony Corp 情報処理装置、情報処理方法、及び、プログラム
US8572014B2 (en) 2009-10-16 2013-10-29 Mcafee, Inc. Pattern recognition using transition table templates
JP2013057985A (ja) 2009-12-09 2013-03-28 Hitachi Ltd システムの設計支援装置および方法
EP2510433B1 (en) * 2009-12-09 2018-08-08 The MathWorks, Inc. Canonicalized versions of reuse candidates in graphical state diagrams
US8429605B2 (en) 2009-12-30 2013-04-23 The United States Of America As Represented By The Secretary Of The Navy Finite state machine architecture for software development
US20110246962A1 (en) 2010-04-05 2011-10-06 Microsoft Corporation State machine expressions in database operators
US8479151B2 (en) 2010-05-12 2013-07-02 National Instruments Corporation Converting a statechart from a first statechart format to a second statechart format
JP5432816B2 (ja) 2010-05-14 2014-03-05 株式会社日立ハイテクノロジーズ 自動分析システムおよび装置管理サーバ
EP2616932A4 (en) 2010-09-13 2015-02-11 Massively Parallel Tech Inc SOFTWARE CONCEPT AND AUTOMATIC ENCRYPTION FOR PARALLEL CALCULATION
WO2013123376A1 (en) 2012-02-15 2013-08-22 The Mathworks, Inc. Unified state transition table describing a state machine model

Also Published As

Publication number Publication date
JP2015517129A (ja) 2015-06-18
EP2815310B1 (en) 2016-12-21
EP2820537A1 (en) 2015-01-07
US10360502B2 (en) 2019-07-23
EP2815310A1 (en) 2014-12-24
JP2015517128A (ja) 2015-06-18
JP6038959B2 (ja) 2016-12-07
WO2013123373A1 (en) 2013-08-22
US20130212054A1 (en) 2013-08-15

Similar Documents

Publication Publication Date Title
JP6033891B2 (ja) 状態図の生成
US9600241B2 (en) Unified state transition table describing a state machine model
Heiner et al. Snoopy–a unifying Petri net tool
US9377998B2 (en) Code generation for control design
US10235140B2 (en) Defining attributes of variables in a state chart of a technical computing environment
US8904302B2 (en) Identification of semantically relevant concepts in a graphical model
US20140214373A1 (en) Framework for solving trajectory optimization problems
US9354846B2 (en) Bidomain simulator
US9152393B1 (en) Dynamic entities for a model of a graphical modeling environment
US10430532B2 (en) Bidomain simulator
US8875039B2 (en) Propagation of characteristics in a graphical model environment
EP4028960A1 (en) Visually creating and monitoring machine learning models
US9378562B1 (en) Management of variants in a graphical modeling environment
US8805651B1 (en) Properties, instrumentation and automatic scaling for signals in a modeling environment
US12086204B1 (en) Systems and methods for interactive display of symbolic equations extracted from graphical models
Wozniak et al. A guidance framework for the generation of implementation models in the automotive domain
Sridhar et al. Slicing matlab simulink/stateflow models
Andersson Import and Export of Functional Mockup Units in CasADi
Fonseca et al. Vird-gm: Towards a grid computing environment
Nosażewski et al. Implementation of the Turing machine symulator
Brinkrolf et al. OMPetri-A Software Application for Modeling and Simulation Using Extended Hybrid Petri Nets by Employing OpenModelica
Milani Automated Derivation and Dynamic Reconfiguration of Computerized Dynamic Systems
Krupenkins et al. Digital Circuit Simulator Development with CNN Integration
Brinkrolf et al. Check for updates OMPetri-A Software Application for Modeling and Simulation Using Extended Hybrid Petri Nets by Employing OpenModelica
von Hanxleden et al. A synccharts editor based on yakindu set

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20150420

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160414

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161026

R150 Certificate of patent or registration of utility model

Ref document number: 6033891

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250