(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110108
(43)【公開日】2024-08-15
(54)【発明の名称】状態遷移モデル合成システム、状態遷移モデル合成方法およびプログラム
(51)【国際特許分類】
G06F 8/36 20180101AFI20240807BHJP
【FI】
G06F8/36
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023014477
(22)【出願日】2023-02-02
(71)【出願人】
【識別番号】520423334
【氏名又は名称】ミラクシアエッジテクノロジー株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】今井 紅
(72)【発明者】
【氏名】植田 裕之
(72)【発明者】
【氏名】池内 陽平
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BB05
5B376BB06
5B376BB13
5B376BC16
5B376BC32
5B376BC38
(57)【要約】
【課題】大規模な状態遷移モデルの開発における生産性を向上することができる状態遷移モデル合成システムを提供する
【解決手段】状態遷移モデル合成システム10は、複数の状態遷移モデル20a~20nのそれぞれから状態遷移に関する状態遷移情報を抽出する抽出部11と、抽出された状態遷移情報に基づいて複数の状態遷移モデル20a~20nを合成することで、合成状態遷移モデル30を生成する合成部12と、合成部12での合成の妥当性を解析する解析部13と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の状態遷移モデルのそれぞれから状態遷移に関する状態遷移情報を抽出する抽出部と、
抽出された前記状態遷移情報に基づいて前記複数の状態遷移モデルを合成することで、合成状態遷移モデルを生成する合成部と、
前記合成部での合成の妥当性を解析する解析部と、を備える、
状態遷移モデル合成システム。
【請求項2】
前記複数の状態遷移モデルのそれぞれには、複数の状態が含まれ、
前記抽出部は、前記状態遷移情報として、前記複数の状態のそれぞれの識別子を抽出する、
請求項1に記載の状態遷移モデル合成システム。
【請求項3】
前記抽出部は、前記状態遷移情報として、前記複数の状態遷移モデル間で前記識別子が同一となっている状態のそれぞれに記述された共通の記述内容および固有の記述内容を抽出し、
前記合成部は、前記共通の記述内容および前記固有の記述内容が記述された、同一の前記識別子に対応する状態が前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、
請求項2に記載の状態遷移モデル合成システム。
【請求項4】
前記合成部は、前記複数の状態遷移モデルのそれぞれの前記複数の状態のうち、前記識別子が同一となっている状態が、他の状態遷移モデルには含まれていない固有の状態が前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、
請求項2に記載の状態遷移モデル合成システム。
【請求項5】
前記複数の状態遷移モデルのそれぞれには、複数の状態、および、前記複数の状態間を結ぶ複数の状態遷移線が含まれ、
前記抽出部は、前記状態遷移情報として、前記複数の状態遷移線の記述内容を抽出する、
請求項1に記載の状態遷移モデル合成システム。
【請求項6】
前記合成部は、前記複数の状態遷移モデル間で、遷移元の状態および遷移先の状態が同一となっている状態遷移線のそれぞれの記述内容が同一である場合、当該状態遷移線のうちの1つが前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、
請求項5に記載の状態遷移モデル合成システム。
【請求項7】
前記合成部は、前記複数の状態遷移モデル間で、遷移元の状態および遷移先の状態が同一となっている状態遷移線のそれぞれの記述内容が異なる場合、当該状態遷移線のそれぞれが前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、
請求項5に記載の状態遷移モデル合成システム。
【請求項8】
前記合成部は、前記複数の状態遷移モデルのそれぞれの前記複数の状態遷移線のうち、遷移元の状態および遷移先の状態が同一となっている状態遷移線が、他の状態遷移モデルには含まれていない固有の状態遷移線が前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、
請求項5に記載の状態遷移モデル合成システム。
【請求項9】
前記複数の状態遷移モデルのそれぞれには、状態遷移処理に必要な定義データが対応付けられており、
前記抽出部は、前記状態遷移情報として、前記定義データを抽出する、
請求項1~8のいずれか1項に記載の状態遷移モデル合成システム。
【請求項10】
前記抽出部は、前記複数の状態遷移モデル間で、定義名が共通の前記定義データおよび定義名が固有の前記定義データを抽出し、
前記合成部は、前記共通の前記定義データおよび前記固有の前記定義データが前記合成状態遷移モデルに対応付けられるように、前記合成状態遷移モデルを生成する、
請求項9に記載の状態遷移モデル合成システム。
【請求項11】
前記解析部は、前記合成状態遷移モデルに対応付けられた前記共通の前記定義データと、前記複数の状態遷移モデルのそれぞれに対応付けられた前記共通の前記定義データとを比較することで、前記合成部での合成の妥当性を解析する、
請求項10に記載の状態遷移モデル合成システム。
【請求項12】
前記解析部は、前記合成状態遷移モデルに対応付けられた前記共通の前記定義データにおける変数の最大値または最小値と、前記複数の状態遷移モデルのそれぞれに対応付けられた前記共通の前記定義データにおける変数の最大値または最小値とが異なっているか否かに基づいて、前記合成部での合成の妥当性を解析する、
請求項11に記載の状態遷移モデル合成システム。
【請求項13】
前記解析部は、前記合成状態遷移モデルに対応付けられた前記共通の前記定義データにおける定数の定数値と、前記複数の状態遷移モデルのそれぞれに対応付けられた前記共通の前記定義データにおける定数の定数値とが異なっているか否かに基づいて、前記合成部での合成の妥当性を解析する、
請求項11に記載の状態遷移モデル合成システム。
【請求項14】
前記解析部は、前記合成状態遷移モデルに対応付けられた前記共通の前記定義データにおける変数または定数のデータ型と、前記複数の状態遷移モデルのそれぞれに対応付けられた前記共通の前記定義データにおける変数または定数のデータ型とが異なっているか否かに基づいて、前記合成部での合成の妥当性を解析する、
請求項11に記載の状態遷移モデル合成システム。
【請求項15】
状態遷移モデル合成システムにより実行される状態遷移モデル合成方法であって、
複数の状態遷移モデルのそれぞれから状態遷移に関する状態遷移情報を抽出する抽出ステップと、
抽出された前記状態遷移情報に基づいて前記複数の状態遷移モデルを合成することで、合成状態遷移モデルを生成する合成ステップと、
前記合成ステップでの合成の妥当性を解析する解析ステップと、を含む、
状態遷移モデル合成方法。
【請求項16】
請求項15に記載の状態遷移モデル合成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、状態遷移モデル合成システムなどに関する。
【背景技術】
【0002】
組込ソフトウェア開発において、動く仕様書モデルを使って要求仕様を検証し、そのままソースコードを自動生成する開発手法が用いられることが多い。このような開発手法は、モデルベース開発と呼ばれる。モデルベース開発では、統一モデリング言語(UML)のようなルール規定が行われた記法に基づいて状態遷移モデルを作成し、作成した状態遷移モデルからコードを生成することができる。
【0003】
特許文献1には、状態遷移データに時間情報を追加できるようにするための技術が開示されている。
【0004】
特許文献2には、モデル検査で使用する状態遷移図に送信アクションを自動的に追加するための技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2021-057061号公報
【特許文献2】特開2008-021160号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1および特許文献2に開示された技術は、与えられた外部のデータ情報を読み込んで、状態遷移図を自動で編集するということを特徴としている。
【0007】
しかしながら、近年、ソフトウェアのメトリクスが急激に増加している状況にあり、状態遷移モデルにおける状態、状態遷移線および処理に必要となる定義データのメトリクス数が爆発的に増加しており、特許文献1および特許文献2に開示された技術では、このことが考慮されていない。例えば、車載ナビの画面遷移を司る状態遷移モデルなどでは、切り替え対象の画面が年々増加してきており、大規模な状態遷移モデルを開発する場合、人為的ミスが発生しやすく、また、不具合の発見が困難となっている。このため、大規模な状態遷移モデルの開発における生産性が低下してしまうという問題がある。
【0008】
そこで、本開示は、大規模な状態遷移モデルの開発における生産性を向上することができる状態遷移モデル合成システムなどを提供する。
【課題を解決するための手段】
【0009】
本開示に係る状態遷移モデル合成システムは、複数の状態遷移モデルのそれぞれから状態遷移に関する状態遷移情報を抽出する抽出部と、抽出された前記状態遷移情報に基づいて前記複数の状態遷移モデルを合成することで、合成状態遷移モデルを生成する合成部と、前記合成部での合成の妥当性を解析する解析部と、を備える。
【0010】
本開示に係る状態遷移モデル合成方法は、状態遷移モデル合成システムにより実行される状態遷移モデル合成方法であって、複数の状態遷移モデルのそれぞれから状態遷移に関する状態遷移情報を抽出する抽出ステップと、抽出された前記状態遷移情報に基づいて前記複数の状態遷移モデルを合成することで、合成状態遷移モデルを生成する合成ステップと、前記合成ステップでの合成の妥当性を解析する解析ステップと、を含む。
【0011】
本開示に係るプログラムは、上記の状態遷移モデル合成方法をコンピュータに実行させるためのプログラムである。
【0012】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0013】
本開示の一態様に係る状態遷移モデル合成システムなどによれば、大規模な状態遷移モデルの開発における生産性を向上することができる。
【図面の簡単な説明】
【0014】
【
図1】実施の形態に係る状態遷移モデル合成システムの一例を示すブロック図である。
【
図2B】
図2Aに示される状態遷移モデルの状態遷移処理に必要な定義データの一例を示す図である。
【
図3B】
図3Aに示される状態遷移モデルの状態遷移処理に必要な定義データの一例を示す図である。
【
図4】実施の形態に係る状態遷移モデル合成システムの動作の一例を示すフローチャートである。
【
図5】実施の形態に係る状態遷移モデル合成システムの複数の状態遷移モデルの合成時の動作の一例を示すフローチャートである。
【
図7】状態遷移線の合成を説明するための図である。
【
図8】定義データの合成を説明するための図である。
【
図9】生成された合成状態遷移モデルの一例を示す図である。
【発明を実施するための形態】
【0015】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0016】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。
【0017】
(実施の形態)
以下、実施の形態に係る状態遷移モデル合成システムについて説明する。
【0018】
図1は、実施の形態に係る状態遷移モデル合成システム10の一例を示すブロック図である。
図1には、状態遷移モデル合成システム10の他に、状態遷移モデル合成システム10によって合成される複数の状態遷移モデル20a~20nと、上記合成により生成された合成状態遷移モデル30が示されている。なお、
図1には、状態遷移モデルが3つ以上示されているが、少なくとも2つあればよい。
【0019】
状態遷移モデル合成システム10は、複数の状態遷移モデル20a~20nを合成することで、合成状態遷移モデル30を生成するための装置である。状態遷移モデル合成システム10は、モデルベース開発において用いられ、生成された合成状態遷移モデル30は、図示していない自動コード生成器などに入力され、自動コード生成器は、合成状態遷移モデル30からソースコードなどを生成する。
【0020】
複数の状態遷移モデル20a~20nのそれぞれには、複数の状態、および、複数の状態間を結ぶ複数の状態遷移線が含まれる。また、複数の状態遷移モデル20a~20nのそれぞれには、状態遷移処理に必要な定義データが対応付けられている。これらの具体例については後述する。
【0021】
状態遷移モデル合成システム10は、抽出部11、合成部12および解析部13を備える。状態遷移モデル合成システム10は、プロセッサおよびメモリなどを含むコンピュータである。メモリは、ROM(Read Only Memory)およびRAM(Random Access Memory)などであり、プロセッサにより実行されるプログラムを記憶することができる。抽出部11、合成部12および解析部13は、メモリに格納されたプログラムを実行するプロセッサなどによって実現される。
【0022】
例えば、状態遷移モデル合成システム10は、1つの筐体からなるコンピュータ(装置)であってもよいし、状態遷移モデル合成システム10が備える構成要素が複数のコンピュータに分散して配置されているシステムであってもよい。また、例えば、状態遷移モデル合成システム10は、サーバによって実現されてもよい。状態遷移モデル合成システム10がサーバによって実現される場合には、状態遷移モデル合成システム10が備える構成要素は、1つのサーバに配置されていてもよいし、複数のサーバに分散して配置されていてもよい。
【0023】
抽出部11は、複数の状態遷移モデル20a~20nのそれぞれから状態遷移に関する状態遷移情報を抽出する。抽出部11の詳細については後述する。
【0024】
合成部12は、抽出された状態遷移情報に基づいて複数の状態遷移モデル20a~20nを合成することで、合成状態遷移モデル30を生成する。合成部12の詳細については後述する。
【0025】
解析部13は、合成部12での合成の妥当性を解析する。解析部13の詳細については後述する。
【0026】
以下では、複数の状態遷移モデル20a~20nが状態遷移モデル20aおよび20bである場合の例を説明する。
【0027】
まず、状態遷移モデル20aおよび20bについて説明する。
【0028】
図2Aは、状態遷移モデル20aの一例を示す図である。
【0029】
状態遷移モデル20aには、3つの状態S1a、S2aおよびS3aならびに3つの状態遷移線L12a、L23aおよびL32aが含まれており、状態遷移線L12a、L23aおよびL32aが示す特定の条件が満たされた場合に、状態S1a、S2aおよびS3a間で状態遷移が行われる。
【0030】
状態S1aは、状態名が「A1」であり、状態S1aの記述内容は、「entry:」および「OutA=1;」となっている。状態S1aでは、変数「OutA」に1が代入される。
【0031】
状態S2aは、状態名が「A2」であり、状態S2aの記述内容は、「entry:」、「OutA=2;」および「Common=1;」となっている。状態S2aでは、変数「OutA」に2が代入され、変数「Common」に1が代入される。
【0032】
状態S3aは、状態名が「A3」であり、状態S3aの記述内容は、「entry:」および「OutA=3;」となっている。状態S3aでは、変数「OutA」に3が代入される。
【0033】
状態遷移線L12aは、遷移元の状態が状態S1aであり、遷移先の状態が状態S2aであり、状態遷移線L12aの記述内容は「A1_A2==0」となっている。状態S1aにおいて変数「A1_A2」が0となった場合、状態S1aから状態S2aへの状態遷移が行われる。
【0034】
状態遷移線L23aは、遷移元の状態が状態S2aであり、遷移先の状態が状態S3aであり、状態遷移線L23aの記述内容は「A2_A3==1」となっている。状態S2aにおいて変数「A2_A3」が1となった場合、状態S2aから状態S3aへの状態遷移が行われる。
【0035】
状態遷移線L32aは、遷移元の状態が状態S3aであり、遷移先の状態が状態S1aであり、状態遷移線L32aの記述内容は「A3_A1==0」となっている。状態S3aにおいて変数「A3_A1」が0となった場合、状態S3aから状態S1aへの状態遷移が行われる。
【0036】
また、状態遷移モデル20aには、状態遷移処理に必要な定義データが対応付けられている。定義データは、状態遷移処理に用いられる変数または定数などの定義を示すデータである。
【0037】
図2Bは、
図2Aに示される状態遷移モデル20aの状態遷移処理に必要な定義データの一例を示す図である。
【0038】
図2Bに示されるように、状態遷移モデル20aには、状態遷移モデル20aの状態遷移処理に用いられる変数「A1_A2」、「A2_A3」、「A3_A1」、「OutA」および「Common」のそれぞれの定義データが対応付けられている。例えば、これらの変数のうちの変数「A1_A2」の定義データについて説明する。変数「A1_A2」の定義データは、定義名が「A1_A2」であり、当該定義データにおいて、変数「A1_A2」の入出力のタイプが「入力」であり、変数「A1_A2」のデータ型が「int型」であり、変数「A1_A2」に代入される値の範囲(つまり最小値および最大値)が「-127~128」と定義されている。
【0039】
図3Aは、状態遷移モデル20bの一例を示す図である。
【0040】
状態遷移モデル20bには、3つの状態S2b、S3bおよびS4bならびに3つの状態遷移線L23b、L24bおよびL42bが含まれており、状態遷移線L23b、L24bおよびL42bが示す特定の条件が満たされた場合に、状態S2b、S3bおよびS4b間で状態遷移が行われる。
【0041】
状態S2bは、状態名が「A2」であり、状態S2bの記述内容は、「entry:」、「OutB=3;」および「Common=1;」となっている。状態S2bでは、変数「OutB」に3が代入され、変数「Common」に1が代入される。
【0042】
状態S3bは、状態名が「A3」であり、状態S3bの記述内容は、「entry:」および「OutA=3;」となっている。状態S3bでは、変数「OutA」に3が代入される。
【0043】
状態S4bは、状態名が「A4」であり、状態S4bの記述内容は、「entry:」および「OutB=4;」となっている。状態S4bでは、変数「OutB」に4が代入される。
【0044】
状態遷移線L23bは、遷移元の状態が状態S2bであり、遷移先の状態が状態S3bであり、状態遷移線L23bの記述内容は「A2_A3==4」となっている。状態S2bにおいて変数「A2_A3」が4となった場合、状態S2bから状態S3bへの状態遷移が行われる。
【0045】
状態遷移線L24bは、遷移元の状態が状態S2bであり、遷移先の状態が状態S4bであり、状態遷移線L24bの記述内容は「A2_A4==5」となっている。状態S2bにおいて変数「A2_A4」が5となった場合、状態S2bから状態S4bへの状態遷移が行われる。
【0046】
状態遷移線L42bは、遷移元の状態が状態S4bであり、遷移先の状態が状態S2bであり、状態遷移線L42bの記述内容は「A4_A2==6」となっている。状態S4bにおいて変数「A4_A2」が6となった場合、状態S4bから状態S2bへの状態遷移が行われる。
【0047】
また、状態遷移モデル20bには、状態遷移処理に必要な定義データが対応付けられている。
【0048】
図3Bは、
図3Aに示される状態遷移モデル20bの状態遷移処理に必要な定義データの一例を示す図である。
【0049】
図3Bに示されるように、状態遷移モデル20bには、状態遷移モデル20bの状態遷移処理に用いられる変数「A2_A3」、「A2_A4」、「A4_A2」、「OutA」、「OutB」および「Common」のそれぞれの定義データが対応付けられている。例えば、これらの変数のうちの変数「A2_A3」の定義データについて説明する。変数「A2_A3」の定義データは、定義名が「A2_A3」であり、当該定義データにおいて、変数「A2_A3」の入出力のタイプが「入力」であり、変数「A2_A3」のデータ型が「int型」であり、変数「A2_A3」に代入される値の範囲(つまり最小値および最大値)が「-127~128」と定義されている。
【0050】
次に、状態遷移モデル合成システム10の動作の詳細について説明する。
【0051】
図4は、実施の形態に係る状態遷移モデル合成システム10の動作の一例を示すフローチャートである。
【0052】
まず、抽出部11は、状態遷移モデル20aおよび20bのそれぞれから状態遷移に関する状態遷移情報を抽出する(ステップS11)。
【0053】
例えば、抽出部11は、状態遷移情報として、状態遷移モデル20aおよび20bのそれぞれに含まれる複数の状態のそれぞれの識別子を抽出する。識別子は、例えば状態名である。なお、識別子は状態名に限らず、状態を識別できるものであれば特に限定されない。例えば、抽出部11は、状態遷移モデル20aに含まれる状態S1a、S2aおよびS3aのそれぞれの状態名「A1」、「A2」および「A3」を抽出し、状態遷移モデル20bに含まれる状態S2b、S3bおよびS4bのそれぞれの状態名「A2」、「A3」および「A4」を抽出する。詳細は後述するが、これにより、状態遷移モデル20aおよび20bのそれぞれに含まれる複数の状態のそれぞれの識別子を用いて、状態遷移モデル20aおよび20bにおける状態の合成を行うことができる。
【0054】
また、例えば、抽出部11は、状態遷移情報として、状態遷移モデル20aおよび20b間で識別子(状態名)が同一となっている状態のそれぞれに記述された共通の記述内容および固有の記述内容を抽出する。状態遷移モデル20aおよび20b間で状態名が同一となっている状態は、状態名が同一の「A2」となっている状態S2aおよびS2bと、状態名が同一の「A3」となっている状態S3aおよびS3bである。状態S2aおよびS2bについて、状態S2aおよびS2bの両方に記述されている「entry:」および「Common=1;」が共通の記述内容であり、状態S2aにのみ記述されている「OutA=2;」、および、状態S2bにのみ記述されている「OutB=3;」が固有の記述内容である。状態S3aおよびS3bについて、状態S3aおよびS3bの両方に記述されている「entry:」および「OutA=3;」が共通の記述内容である。状態S3aおよびS3bには、固有の記述内容は記述されていない。
【0055】
以上より、抽出部11は、状態S2aおよびS2bについて、共通の記述内容「entry:」および「Common=1;」、ならびに、固有の記述内容「OutA=2;」および「OutB=3;」を抽出する。また、抽出部11は、状態S3aおよびS3bについて、共通の記述内容「entry:」および「OutA=3;」を抽出する。
【0056】
また、例えば、抽出部11は、状態遷移情報として、状態遷移モデル20aおよび20bのそれぞれに含まれる複数の状態遷移線の記述内容を抽出する。例えば、抽出部11は、状態遷移モデル20aに含まれる状態遷移線L12a、L23aおよびL32aの記述内容「A1_A2==0」、「A2_A3==1」および「A3_A1==0」を抽出し、状態遷移モデル20bに含まれる状態遷移線L23b、L24bおよびL42bの記述内容「A2_A3==4」、「A2_A4==5」および「A4_A2==6」を抽出する。詳細は後述するが、これにより、状態遷移モデル20aおよび20bのそれぞれに含まれる複数の状態遷移線のそれぞれの記述内容を用いて、状態遷移モデル20aおよび20bにおける状態遷移線の合成を行うことができる。
【0057】
また、例えば、抽出部11は、状態遷移モデル20aおよび20b間で、定義名が共通の定義データおよび定義名が固有の定義データを抽出する。状態遷移モデル20aおよび20b間で定義名が共通の定義データは、定義名が「A2_A3」、「OutA」および「Common」の定義データである。状態遷移モデル20aおよび20b間で定義名が固有の定義データは、状態遷移モデル20aについては定義名が「A1_A2」および「A3_A1」の定義データであり、状態遷移モデル20bについては定義名が「A2_A4」、「A4_A2」および「OutB」の定義データである。なお、抽出部11は、状態遷移モデル20aおよび20b間で定義名が共通の定義データについて、状態遷移モデル20aの定義データを抽出してもよいし、状態遷移モデル20bの定義データを抽出してもよい。詳細は後述するが、状態遷移モデル20aおよび20bのそれぞれに含まれる定義データを抽出することで、状態遷移モデル20aおよび20bにおける定義データの合成を行うことができる。
【0058】
以上より、抽出部11は、例えば状態遷移モデル20aから定義名が共通の「A2_A3」、「OutA」および「Common」となっている定義データを抽出し、状態遷移モデル20aから定義名が固有の「A1_A2」および「A3_A1」となっている定義データを抽出し、状態遷移モデル20bから定義名が固有の「A2_A4」、「A4_A2」および「OutB」となっている定義データを抽出する。なお、上述したように、抽出部11は、例えば状態遷移モデル20bから定義名が共通の「A2_A3」、「OutA」および「Common」となっている定義データを抽出してもよい。
【0059】
次に、合成部12は、抽出された状態遷移情報に基づいて状態遷移モデル20aおよび20bを合成することで、合成状態遷移モデル30を生成する(ステップS12)。合成部12の動作の詳細について、
図5を用いて説明する。
【0060】
図5は、実施の形態に係る状態遷移モデル合成システム10の状態遷移モデル20aおよび20bの合成時の動作の一例を示すフローチャートである。
【0061】
まず、合成部12は、状態遷移モデル20aおよび20bにおける状態を合成する(ステップS21)。状態の合成について、
図6を用いて説明する。
【0062】
図6は、状態の合成を説明するための図である。
図6には、状態の合成を説明するために、状態遷移モデル20aおよび20bにおける複数の状態のみが合成されることで生成された合成状態遷移モデル30を示している。つまり、
図6に示される合成状態遷移モデル30は、状態の合成の説明のために、複数の状態遷移線が含まれていないものとなっている。
【0063】
例えば、合成部12は、抽出された共通の記述内容および固有の記述内容が記述された、同一の識別子(状態名)に対応する状態が合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0064】
上述したように、抽出された共通の記述内容は、状態遷移モデル20aおよび20b間で状態名が「A2」で同一となっている状態S2aおよびS2bのそれぞれに記述された記述内容「entry:」および「Common=1;」、ならびに、状態遷移モデル20aおよび20b間で状態名が「A3」で同一となっている状態S3aおよびS3bのそれぞれに記述された記述内容「entry:」および「OutA=3;」である。
【0065】
また、上述したように、抽出された固有の記述内容は、状態遷移モデル20aおよび20b間で状態名が「A2」で同一となっている状態S2aおよびS2bのうち、状態S2aにのみ記述された「OutA=2;」および状態S2bにのみ記述された「OutB=3;」である。なお、状態遷移モデル20aおよび20b間で状態名が「A3」で同一となっている状態S2aおよびS2bには、固有の記述内容は記述されていないため抽出されていない。
【0066】
図6に示されるように、合成部12は、状態遷移モデル20aおよび20b間で同一の状態名「A2」に対応する状態S2cが合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。状態S2cには、同一の状態名「A2」の状態S2aおよびS2bのそれぞれに記述された共通の記述内容「entry:」および「Common=1;」、ならびに、状態S2aにのみ記述された固有の記述内容「OutA=2;」および状態S2bにのみ記述された固有の記述内容「OutB=3;」が記述されている。また、合成部12は、状態遷移モデル20aおよび20b間で同一の状態名「A3」に対応する状態S3cが合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。状態S3cには、同一の状態名「A3」の状態S3aおよびS3bのそれぞれに記述された共通の記述内容「entry:」および「OutA=3;」が記述されている。
【0067】
このように、状態遷移モデル20aおよび20b間で識別子(状態名)が同じであっても、共通の記述内容に加えて固有の記述内容が含まれている状態が存在する場合がある。この場合には、合成状態遷移モデル30に、共通の記述内容に加えて固有の記述内容が記述された状態が含まれるようにすることで、状態の合成を行うことができる。
【0068】
また、例えば、合成部12は、状態遷移モデル20aおよび20bのそれぞれの複数の状態のうち、識別子(状態名)が同一となっている状態が、他の状態遷移モデルには含まれていない固有の状態が合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0069】
例えば、状態遷移モデル20aにおける状態S1aは、状態名が「A1」であり、他の状態遷移モデル20bには、状態名が「A1」の状態は含まれていない。このため、状態遷移モデル20aにおける状態S1aは、他の状態遷移モデル20bには含まれていない固有の状態である。また、例えば、状態遷移モデル20bにおける状態S4bは、状態名が「A4」であり、他の状態遷移モデル20aには、状態名が「A4」の状態は含まれていない。このため、状態遷移モデル20bにおける状態S4bは、他の状態遷移モデル20aには含まれていない固有の状態である。
【0070】
図6に示されるように、合成部12は、状態遷移モデル20aおよび20b間で固有の状態S1aおよびS4bが合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0071】
このように、状態遷移モデル20aおよび20b間で1つしか存在しない識別子(状態名)の状態が存在する場合がある。この場合には、合成状態遷移モデル30に、当該状態がそのまま含まれるようにすることで、状態の合成を行うことができる。
【0072】
図5での説明に戻り、合成部12は、状態遷移モデル20aおよび20bにおける状態遷移線を合成する(ステップS22)。状態遷移線の合成について、
図7を用いて説明する。
【0073】
図7は、状態遷移線の合成を説明するための図である。
図7には、状態遷移線の合成を説明するために、状態遷移モデル20aおよび20bにおける複数の状態遷移線のみが合成されることで生成された合成状態遷移モデル30を示しており、また、状態遷移線の遷移元の状態および遷移先の状態がわかるように、状態名だけが記載された状態を破線で示している。
【0074】
例えば、合成部12は、状態遷移モデル20aおよび20b間で、遷移元の状態および遷移先の状態が同一となっている状態遷移線のそれぞれの記述内容が同一である場合、当該状態遷移線のうちの1つが合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0075】
また、例えば、合成部12は、状態遷移モデル20aおよび20b間で、遷移元の状態および遷移先の状態が同一となっている状態遷移線のそれぞれの記述内容が異なる場合、当該状態遷移線のそれぞれが合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0076】
なお、遷移元の状態および遷移先の状態が同一とは、遷移元の状態の識別子(状態名)および遷移先の状態の識別子(状態名)が同一であることを意味する。
【0077】
例えば、状態遷移モデル20aにおける状態遷移線L23aおよび状態遷移モデル20bにおける状態遷移線L23bは、遷移元の状態および遷移先の状態が同一となっている状態遷移線である。状態遷移線L23aの記述内容は「A2_A3==1」であり、状態遷移線L23bの記述内容は「A2_A3==4」であるため、状態遷移線L23aおよびL23bのそれぞれの記述内容は異なっている。
【0078】
このため、
図7に示されるように、合成部12は、状態遷移線L23aおよびL23bのそれぞれが合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0079】
このように、状態遷移モデル20aおよび20b間で、遷移元の状態および遷移先の状態が同一で、記述内容が異なる状態遷移線が存在する場合がある。この場合には、合成状態遷移モデル30に、これらの状態遷移線のそれぞれが含まれるようにすることで、状態遷移線の合成を行うことができる。
【0080】
なお、図示していないが、状態遷移モデル20aおよび20b間で、遷移元の状態および遷移先の状態が同一で、記述内容が同一の状態遷移線が存在する場合には、合成部12は、状態遷移モデル20aおよび20bの当該状態遷移線のうちの1つが合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0081】
このように、状態遷移モデル20aおよび20b間で、遷移元の状態および遷移先の状態が同一で、記述内容が同一の状態遷移線が存在する場合がある。この場合には、合成状態遷移モデル30に、これらの状態遷移線のうちの1つが含まれるようにすることで、状態遷移線の合成を行うことができる。
【0082】
また、例えば、合成部12は、状態遷移モデル20aおよび20bのそれぞれの複数の状態遷移線のうち、遷移元の状態および遷移先の状態が同一となっている状態遷移線が、他の状態遷移モデルには含まれていない状態遷移線が合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0083】
例えば、状態遷移モデル20aにおける状態遷移線L12aは、遷移元の状態の状態名がA1であり、遷移先の状態の状態名がA2であり、他の状態遷移モデル20bには、遷移元の状態の状態名がA1であり、遷移先の状態の状態名がA2である状態遷移線は含まれていない。このため、状態遷移モデル20aにおける状態遷移線L12aは、状態遷移線L12aと遷移元の状態および遷移先の状態が同一となっている状態遷移線が他の状態遷移モデル20bには含まれていない固有の状態遷移線である。状態遷移モデル20aにおける状態遷移線L32a、ならびに、状態遷移モデル20bにおける状態遷移線L24bおよびL42bについても同様に固有の状態遷移線である。
【0084】
図7に示されるように、合成部12は、状態遷移モデル20aおよび20b間で固有の状態遷移線L12a、L32a、L24bおよびL42bが合成状態遷移モデル30に含まれるように、合成状態遷移モデル30を生成する。
【0085】
このように、状態遷移モデル20aおよび20b間で、遷移元の状態および遷移先の状態が同一となっている状態遷移線が他の状態遷移モデルに存在しない状態遷移線が存在する場合がある。この場合には、合成状態遷移モデル30に、当該状態遷移線がそのまま含まれるようにすることで、状態遷移線の合成を行うことができる。
【0086】
図5での説明に戻り、合成部12は、状態遷移モデル20aおよび20bに対応付けられた定義データを合成する(ステップS23)。定義データの合成について、
図8を用いて説明する。
【0087】
図8は、定義データの合成を説明するための図である。
図8には、合成された定義データが示されている。
【0088】
合成部12は、抽出された定義名が共通の定義データおよび定義名が固有の定義データが合成状態遷移モデル30に対応付けられるように、合成状態遷移モデル30を生成する。
【0089】
上述したように、抽出された定義名が共通の定義データは、定義名が「A2_A3」、「OutA」および「Common」となっている定義データである。また、抽出された定義名が固有の定義データは、定義名が「A1_A2」、「A3_A1」、「A2_A4」、「A4_A2」および「OutB」となっている定義データである。
【0090】
図8に示されるように、合成部12は、定義名が「A1_A2」、「A2_A3」、「A3_A1」、「OutA」、「Common」、「A2_A4」、「A4_A2」および「OutB」のこれらの定義データが合成状態遷移モデル30に対応付けられるように、合成状態遷移モデル30を生成する。
【0091】
このように、状態遷移モデル20aおよび20b間で、定義名が共通の定義データおよび固有の定義データを合成状態遷移モデル30に対応付けることで、定義データの合成を行うことができる。
【0092】
図9は、生成された合成状態遷移モデル30の一例を示す図である。
【0093】
合成部12は、ステップS21からステップS23までの処理を行うことで、
図9に示される合成状態遷移モデル30を生成することができる。なお、ステップS21からステップS23までの処理が行われる順序は、特に限定されない。
図9に示される合成状態遷移モデル30には、
図8に示される定義データが対応付けられているため、合成部12での合成が妥当であれば、合成状態遷移モデル30において状態遷移処理を行うことができる。
【0094】
図4での説明に戻り、解析部13は、合成部12での合成の妥当性を解析する(ステップS13)。例えば、解析部13は、合成状態遷移モデル30に対応付けられた定義名が共通の定義データと、状態遷移モデル20aおよび20bのそれぞれに対応付けられた定義名が共通の定義データとを比較することで、合成部12での合成の妥当性を解析する。
【0095】
状態遷移モデル20aおよび20b間で定義名が共通の定義データには、定義名が同じであっても、内容が異なるものが存在する。例えば、定義名が「Common」の定義データについて、状態遷移モデル20aに対応付けられた定義データでは、データ型が「int型」であり、最小値~最大値が「-127~128」であるが、状態遷移モデル20bに対応付けられた定義データでは、データ型が「double型」であり、最小値~最大値が「-65535~65536」となっている。
【0096】
このため、合成前の状態遷移モデル20aおよび20bのそれぞれに対応付けられた定義名が共通の定義データと、合成後の合成状態遷移モデル30に対応付けられた定義名が共通の定義データとを比較することで、合成状態遷移モデル30に対応付けられた定義データに矛盾があるか否かを判定することができる。上述したように、合成状態遷移モデル30に対応付けられた定義名が共通の定義データは、状態遷移モデル20aおよび20bのうちの1つ(例えば状態遷移モデル20a)に対応付けられた定義名が共通の定義データである。このため、状態遷移モデル20aおよび20b間で定義名が同じであっても、内容が異なる定義データが存在する場合には、合成状態遷移モデル30に対応付けられた定義名が共通の定義データと、状態遷移モデル20aおよび20bのうちのいずれかに対応付けられた定義名が共通の定義データとで差異が生じることになる。つまり、合成状態遷移モデル30に対応付けられた定義データに矛盾が生じる。したがって、矛盾がある場合には、合成が妥当でないと判定することができ、矛盾がない場合には、合成が妥当であると判定することができる。
【0097】
例えば、解析部13は、合成状態遷移モデル30に対応付けられた定義名が共通の定義データにおける変数の最大値または最小値と、状態遷移モデル20aおよび20bのそれぞれに対応付けられた定義名が共通の定義データにおける変数の最大値または最小値とが異なっているか否かに基づいて、合成部12での合成の妥当性を解析してもよい。
【0098】
また、例えば、解析部13は、合成状態遷移モデル30に対応付けられた定義名が共通の定義データにおける定数の定数値と、状態遷移モデル20aおよび20bのそれぞれに対応付けられた定義名が共通の定義データにおける定数の定数値とが異なっているか否かに基づいて、合成部12での合成の妥当性を解析してもよい。
【0099】
また、例えば、解析部13は、合成状態遷移モデル30に対応付けられた定義名が共通の定義データにおける変数または定数のデータ型と、状態遷移モデル20aおよび20bのそれぞれに対応付けられた定義名が共通の定義データにおける変数または定数のデータ型とが異なっているか否かに基づいて、合成部12での合成の妥当性を解析してもよい。
【0100】
このように、定義データにおける変数の最大値または最小値の比較によって、または、定義データにおける定数の定数値の比較によって、または、定義データにおける変数または定数のデータ型の比較によって、合成の妥当性を解析することができる。
【0101】
以上説明した通り、大規模な状態遷移モデルを開発する場合、人為的ミスが発生しやすく、また、不具合の発見が困難となっているため、大規模な状態遷移モデルを要件ごとに細分化し、細分化された複数の状態遷移モデルによって、制御ロジックの妥当性の確認および検証などを行うことが考えられる。ただし、モデルベース開発において状態遷移モデルからコードを生成する際には、細分化される前の大規模な状態遷移モデルからコードを生成する必要がある。そこで、本開示では、細分化された状態遷移モデル20aおよび20bのそれぞれの状態遷移に関する状態遷移情報を用いて状態遷移モデル20aおよび20bを合成するため、大規模な合成状態遷移モデル30を生成することができ、大規模な合成状態遷移モデル30からコードを生成することができる。なお、合成の妥当性も解析することができるため、細分化された状態遷移モデル20aおよび20bの妥当性のある合成によって、大規模な合成状態遷移モデル30を生成することができる。
【0102】
このように、人為的ミスが発生しにくく、また、不具合を発見しやすい細分化された状態遷移モデル20aおよび20bによって制御ロジックの妥当性の確認および検証などを行った上で、細分化された状態遷移モデル20aおよび20bを合成して、大規模な合成状態遷移モデル30を生成することができる。したがって、大規模な状態遷移モデルの開発における生産性を向上することができる。
【0103】
(その他の実施の形態)
以上、本開示の一つまたは複数の態様に係る状態遷移モデル合成システム10について、実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を各実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の一つまたは複数の態様の範囲内に含まれてもよい。
【0104】
例えば、本開示は、状態遷移モデル合成システム10として実現できるだけでなく、状態遷移モデル合成システム10を構成する構成要素が行うステップ(処理)を含む状態遷移モデル合成方法として実現できる。
【0105】
状態遷移モデル合成方法は、状態遷移モデル合成システム10により実行される状態遷移モデル合成方法であって、
図4に示されるように、複数の状態遷移モデルのそれぞれから状態遷移に関する状態遷移情報を抽出する抽出ステップ(ステップS11)と、抽出された状態遷移情報に基づいて複数の状態遷移モデルを合成することで、合成状態遷移モデルを生成する合成ステップ(ステップS12)と、合成ステップでの合成の妥当性を解析する解析ステップ(ステップS13)と、を含む。
【0106】
例えば、本開示は、状態遷移モデル合成方法に含まれるステップを、コンピュータ(プロセッサ)に実行させるためのプログラムとして実現できる。さらに、本開示は、そのプログラムを記録したCD-ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
【0107】
例えば、本開示が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリおよび入出力回路などのハードウェア資源を利用してプログラムが実行されることによって、各ステップが実行される。つまり、CPUがデータをメモリまたは入出力回路などから取得して演算したり、演算結果をメモリまたは入出力回路などに出力したりすることによって、各ステップが実行される。
【0108】
なお、上記実施の形態において、状態遷移モデル合成システム10に含まれる各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【0109】
上記実施の形態に係る状態遷移モデル合成システム10の機能の一部または全ては典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。また、集積回路化はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、またはLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0110】
さらに、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、状態遷移モデル合成システム10に含まれる各構成要素の集積回路化が行われてもよい。
【0111】
その他、実施の形態に対して当業者が思いつく各種変形を施して得られる形態、本開示の趣旨を逸脱しない範囲で各実施の形態における構成要素および機能を任意に組み合わせることで実現される形態も本開示に含まれる。
【0112】
(付記)
以上の実施の形態の記載により、下記の技術が開示される。
【0113】
(技術1)複数の状態遷移モデルのそれぞれから状態遷移に関する状態遷移情報を抽出する抽出部と、抽出された前記状態遷移情報に基づいて前記複数の状態遷移モデルを合成することで、合成状態遷移モデルを生成する合成部と、前記合成部での合成の妥当性を解析する解析部と、を備える、状態遷移モデル合成システム。
【0114】
大規模な状態遷移モデルを開発する場合、人為的ミスが発生しやすく、また、不具合の発見が困難となっているため、大規模な状態遷移モデルを要件ごとに細分化し、細分化された複数の状態遷移モデルによって、制御ロジックの妥当性の確認および検証などを行うことが考えられる。ただし、モデルベース開発において状態遷移モデルからコードを生成する際には、細分化される前の大規模な状態遷移モデルからコードを生成する必要がある。そこで、本開示では、細分化された複数の状態遷移モデルのそれぞれの状態遷移に関する状態遷移情報を用いて複数の状態遷移モデルを合成するため、大規模な合成状態遷移モデルを生成することができ、大規模な合成状態遷移モデルからコードを生成することができる。なお、合成の妥当性も解析することができるため、細分化された複数の状態遷移モデルの妥当性のある合成によって、大規模な合成状態遷移モデルを生成することができる。
【0115】
このように、人為的ミスが発生しにくく、また、不具合を発見しやすい細分化された複数の状態遷移モデルによって制御ロジックの妥当性の確認および検証などを行った上で、細分化された複数の状態遷移モデルを合成して、大規模な合成状態遷移モデルを生成することができる。したがって、大規模な状態遷移モデルの開発における生産性を向上することができる。
【0116】
(技術2)前記複数の状態遷移モデルのそれぞれには、複数の状態が含まれ、前記抽出部は、前記状態遷移情報として、前記複数の状態のそれぞれの識別子を抽出する、技術1に記載の状態遷移モデル合成システム。
【0117】
これによれば、複数の状態遷移モデルのそれぞれに含まれる複数の状態のそれぞれの識別子を用いて、状態遷移モデルにおける状態の合成を行うことができる。
【0118】
(技術3)前記抽出部は、前記状態遷移情報として、前記複数の状態遷移モデル間で前記識別子が同一となっている状態のそれぞれに記述された共通の記述内容および固有の記述内容を抽出し、前記合成部は、前記共通の記述内容および前記固有の記述内容が記述された、同一の前記識別子に対応する状態が前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、技術2に記載の状態遷移モデル合成システム。
【0119】
複数の状態遷移モデル間で識別子が同じであっても、共通の記述内容に加えて固有の記述内容が含まれている状態が存在する場合がある。この場合には、合成状態遷移モデルに、共通の記述内容に加えて固有の記述内容が記述された状態が含まれるようにすることで、状態の合成を行うことができる。
【0120】
(技術4)前記合成部は、前記複数の状態遷移モデルのそれぞれの前記複数の状態のうち、前記識別子が同一となっている状態が、他の状態遷移モデルには含まれていない固有の状態が前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、技術2または3に記載の状態遷移モデル合成システム。
【0121】
複数の状態遷移モデル間で1つしか存在しない識別子の状態が存在する場合がある。この場合には、合成状態遷移モデルに、当該状態がそのまま含まれるようにすることで、状態の合成を行うことができる。
【0122】
(技術5)前記複数の状態遷移モデルのそれぞれには、複数の状態、および、前記複数の状態間を結ぶ複数の状態遷移線が含まれ、前記抽出部は、前記状態遷移情報として、前記複数の状態遷移線の記述内容を抽出する、技術1~4のいずれかに記載の状態遷移モデル合成システム。
【0123】
これによれば、複数の状態遷移モデルのそれぞれに含まれる複数の状態遷移線のそれぞれの記述内容を用いて、状態遷移モデルにおける状態遷移線の合成を行うことができる。
【0124】
(技術6)前記合成部は、前記複数の状態遷移モデル間で、遷移元の状態および遷移先の状態が同一となっている状態遷移線のそれぞれの記述内容が同一である場合、当該状態遷移線のうちの1つが前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、技術5に記載の状態遷移モデル合成システム。
【0125】
複数の状態遷移モデル間で、遷移元の状態および遷移先の状態が同一で、記述内容が同一の状態遷移線が存在する場合がある。この場合には、合成状態遷移モデルに、これらの状態遷移線のうちの1つが含まれるようにすることで、状態遷移線の合成を行うことができる。
【0126】
(技術7)前記合成部は、前記複数の状態遷移モデル間で、遷移元の状態および遷移先の状態が同一となっている状態遷移線のそれぞれの記述内容が異なる場合、当該状態遷移線のそれぞれが前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、技術5または6に記載の状態遷移モデル合成システム。
【0127】
複数の状態遷移モデル間で、遷移元の状態および遷移先の状態が同一で、記述内容が異なる状態遷移線が存在する場合がある。この場合には、合成状態遷移モデルに、これらの状態遷移線のそれぞれが含まれるようにすることで、状態遷移線の合成を行うことができる。
【0128】
(技術8)前記合成部は、前記複数の状態遷移モデルのそれぞれの前記複数の状態遷移線のうち、遷移元の状態および遷移先の状態が同一となっている状態遷移線が、他の状態遷移モデルには含まれていない固有の状態遷移線が前記合成状態遷移モデルに含まれるように、前記合成状態遷移モデルを生成する、技術5~7のいずれかに記載の状態遷移モデル合成システム。
【0129】
複数の状態遷移モデル間で、遷移元の状態および遷移先の状態が同一となっている状態遷移線が他の状態遷移モデルに存在しない状態遷移線が存在する場合がある。この場合には、合成状態遷移モデルに、当該状態遷移線がそのまま含まれるようにすることで、状態遷移線の合成を行うことができる。
【0130】
(技術9)前記複数の状態遷移モデルのそれぞれには、状態遷移処理に必要な定義データが対応付けられており、前記抽出部は、前記状態遷移情報として、前記定義データを抽出する、技術1~8のいずれかに記載の状態遷移モデル合成システム。
【0131】
これによれば、複数の状態遷移モデルのそれぞれに含まれる定義データを抽出することで、状態遷移モデルにおける定義データの合成を行うことができる。
【0132】
(技術10)前記抽出部は、前記複数の状態遷移モデル間で、定義名が共通の前記定義データおよび定義名が固有の前記定義データを抽出し、前記合成部は、前記共通の前記定義データおよび前記固有の前記定義データが前記合成状態遷移モデルに対応付けられるように、前記合成状態遷移モデルを生成する、技術9に記載の状態遷移モデル合成システム。
【0133】
これによれば、複数の状態遷移モデル間で、定義名が共通の定義データおよび定義名が固有の定義データを合成状態遷移モデルに対応付けることで、定義データの合成を行うことができる。
【0134】
(技術11)前記解析部は、前記合成状態遷移モデルに対応付けられた前記共通の前記定義データと、前記複数の状態遷移モデルのそれぞれに対応付けられた前記共通の前記定義データとを比較することで、前記合成部での合成の妥当性を解析する、技術10に記載の状態遷移モデル合成システム。
【0135】
複数の状態遷移モデル間で共通の定義データには、定義名が同じであっても、内容が異なるものが存在する。このため、合成前の複数の状態遷移モデルのそれぞれに対応付けられた定義名が共通の定義データと、合成後の合成状態遷移モデルに対応付けられた定義名が共通の定義データとを比較することで、合成状態遷移モデルに対応付けられた定義データに矛盾があるか否かを判定することができる。矛盾がある場合には、合成が妥当でないと判定することができ、矛盾がない場合には、合成が妥当であると判定することができる。
【0136】
(技術12)前記解析部は、前記合成状態遷移モデルに対応付けられた前記共通の前記定義データにおける変数の最大値または最小値と、前記複数の状態遷移モデルのそれぞれに対応付けられた前記共通の前記定義データにおける変数の最大値または最小値とが異なっているか否かに基づいて、前記合成部での合成の妥当性を解析する、技術11に記載の状態遷移モデル合成システム。
【0137】
例えば、定義データにおける変数の最大値または最小値の比較によって、合成の妥当性を解析することができる。
【0138】
(技術13)前記解析部は、前記合成状態遷移モデルに対応付けられた前記共通の前記定義データにおける定数の定数値と、前記複数の状態遷移モデルのそれぞれに対応付けられた前記共通の前記定義データにおける定数の定数値とが異なっているか否かに基づいて、前記合成部での合成の妥当性を解析する、技術11または12に記載の状態遷移モデル合成システム。
【0139】
例えば、定義データにおける定数の定数値の比較によって、合成の妥当性を解析することができる。
【0140】
(技術14)前記解析部は、前記合成状態遷移モデルに対応付けられた前記共通の前記定義データにおける変数または定数のデータ型と、前記複数の状態遷移モデルのそれぞれに対応付けられた前記共通の前記定義データにおける変数または定数のデータ型とが異なっているか否かに基づいて、前記合成部での合成の妥当性を解析する、技術11~13のいずれかに記載の状態遷移モデル合成システム。
【0141】
例えば、定義データにおける変数または定数のデータ型の比較によって、合成の妥当性を解析することができる。
【0142】
(技術15)状態遷移モデル合成システムにより実行される状態遷移モデル合成方法であって、複数の状態遷移モデルのそれぞれから状態遷移に関する状態遷移情報を抽出する抽出ステップと、抽出された前記状態遷移情報に基づいて前記複数の状態遷移モデルを合成することで、合成状態遷移モデルを生成する合成ステップと、前記合成ステップでの合成の妥当性を解析する解析ステップと、を含む、状態遷移モデル合成方法。
【0143】
これによれば、大規模な状態遷移モデルの開発における生産性を向上することができる状態遷移モデル合成方法を提供することができる。
【0144】
(技術16)技術15に記載の状態遷移モデル合成方法をコンピュータに実行させるためのプログラム。
【0145】
これによれば、大規模な状態遷移モデルの開発における生産性を向上することができるプログラムを提供することができる。
【産業上の利用可能性】
【0146】
本開示は、モデルベース開発におけるモデルの動作挙動と、モデルから自動生成されたコードとの等価性の検証を行うためのシステムなどに適用できる。
【符号の説明】
【0147】
10 状態遷移モデル合成システム
11 抽出部
12 合成部
13 解析部
20a、20b、20n 状態遷移モデル
30 合成状態遷移モデル
S1a、S2a、S3a、S2b、S3b、S4b、S2c、S3c 状態
L12a、L23a、L32a、L23b、L24b、L42b 状態遷移線