(57)【要約】【課題】複数のオブジェクトを利用するソフトウェアを開発する場合において、簡潔に整理されたモデルを入力し、ソフトウェアの仕様を出力する。【解決手段】オブジェクトが定義されたオブジェクトモデル、オブジェクト間の関係が定義された関係モデル、及びオブジェクトの属性に基づいて演算する規則が定義されたロジックモデルの入力を受け付け、関係モデルに基づいてオブジェクトを関連付け、関連付けられたオブジェクトの属性に基づいて演算する規則を含むロジックモデルをオブジェクトに関連付けることによって、オブジェクトモデル、関係モデル及びロジックモデルを結合した結合モデルを生成し、生成された結合モデルをソフトウェアの仕様として出力する。【選択図】図１
2010250655.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトを利用するソフトウェアの開発支援装置において、前記ソフトウェアの開発を支援する方法であって、
前記開発支援装置は、プロセッサ、及び前記プロセッサに接続されるメモリを備え、
前記オブジェクトには、当該オブジェクトの属性が定義され、
前記開発支援方法は、
前記プロセッサが、前記オブジェクトが定義されたオブジェクトモデル、前記オブジェクト間の関係が定義された関係モデル、及び前記オブジェクトの属性に基づいて演算する規則が定義されたロジックモデルの入力を受け付け、
前記プロセッサが、前記関係モデルに基づいて前記オブジェクトを他のオブジェクトと関連付け、前記関連付けられた他のオブジェクトの属性に基づいて演算する規則を含むロジックモデルを前記オブジェクトに関連付けることによって、前記オブジェクトモデル、前記関係モデル及び前記ロジックモデルが結合された結合モデルを生成し、
前記プロセッサが、前記生成された結合モデルを、前記ソフトウェアの仕様として出力することを特徴とする開発支援方法。
【請求項２】
前記開発支援方法は、さらに、
前記プロセッサが、前記オブジェクトモデル及び前記関係モデルに基づいて、前記関連付けられた他のオブジェクトへの参照を含むオブジェクトを生成するオブジェクト定義プログラムを生成し、
前記プロセッサが、前記ロジックモデルに基づいて、前記オブジェクトの属性を演算するロジックプログラム、及び前記ロジックモデルと前記ロジックプログラムの対応を含むロジックプログラム生成情報を生成し、
前記プロセッサが、前記ロジックモデルに基づいて、前記ロジックモデル間の参照関係を含むロジックモデル依存情報を抽出し、
前記プロセッサが、前記ロジックプログラム生成情報及び前記ロジックモデル依存情報に基づいて、前記ロジックプログラムの実行を管理するロジック実行管理プログラムを生成することを特徴とする請求項１に記載の開発支援方法。
【請求項３】
前記開発支援方法は、さらに、
前記プロセッサが、前記ロジックモデル依存情報に基づいて、前記ロジックモデルに含まれる各ロジックに階層を設定し、
前記プロセッサが、前記各ロジックに設定された階層を含むロジックモデル階層情報を生成し、
前記プロセッサが、前記ロジックプログラム生成情報及び前記ロジックモデル階層情報に基づいて、前記ロジックプログラムの実行を管理するロジック実行管理プログラムを生成することを特徴とする請求項２に記載の開発支援方法。
【請求項４】
前記関係モデルは、前記オブジェクト間の関係に付与された識別子を含み、
前記ロジックモデルは、前記識別子によって、前記オブジェクトからの前記関連する他のオブジェクトに対する参照が定義されていることを特徴とする請求項１に記載の開発支援方法。
【請求項５】
前記オブジェクトは、定義済みのオブジェクトの属性を継承して定義することが可能であることを特徴とする請求項１に記載の開発支援方法。
【請求項６】
前記開発支援方法は、さらに、
前記プロセッサが、前記オブジェクトモデル、前記関係モデル、及び前記ロジックモデルの少なくとも一つの変更を受け付け、
前記プロセッサが、前記オブジェクトモデル、前記関係モデル、及び前記ロジックモデルの変更を、前記結合モデルに反映して出力することを特徴とする請求項１に記載の開発支援方法。
【請求項７】
前記開発支援方法は、さらに、
前記プロセッサが、前記結合モデルの変更の入力を受け付け、
前記プロセッサが、前記結合モデルの変更を、前記オブジェクトモデル、前記関係モデル、及び前記ロジックモデルの変更に反映して出力することを特徴とする請求項１に記載の開発支援方法。
【請求項８】
複数のオブジェクトを利用するソフトウェアの開発を支援する開発支援装置であって、
プロセッサ及び前記プロセッサに接続されるメモリを備え、
前記オブジェクトには、当該オブジェクトの属性が定義され、
前記プロセッサは、
前記オブジェクトが定義されたオブジェクトモデル、前記オブジェクト間の関係が定義された関係モデル、及び前記オブジェクトの属性に基づいて演算する規則が定義されたロジックモデルの入力を受け付け、
前記関係モデルに基づいて前記オブジェクトを他のオブジェクトと関連付け、前記関連付けられた他のオブジェクトの属性に基づいて演算する規則を含むロジックモデルを前記オブジェクトに関連付けることによって、前記オブジェクトモデル、前記関係モデル及び前記ロジックモデルが結合された結合モデルを生成し、
前記生成された結合モデルを、前記ソフトウェアの仕様として出力することを特徴とする開発支援装置。
【請求項９】
前記プロセッサは、
前記オブジェクトモデル及び前記関係モデルに基づいて、前記関連付けられた他のオブジェクトへの参照を含むオブジェクトを生成するオブジェクト定義プログラムを生成し、
前記ロジックモデルに基づいて、前記オブジェクトの属性を演算するロジックプログラム、及び前記ロジックモデルと前記ロジックプログラムの対応を含むロジックプログラム生成情報を生成し、
前記ロジックモデルに基づいて、前記ロジックモデル間の参照関係を含むロジックモデル依存情報を抽出し、
前記ロジックプログラム生成情報及び前記ロジックモデル依存情報に基づいて、前記ロジックプログラムの実行を管理するロジック実行管理プログラムを生成することを特徴とする請求項８に記載の開発支援装置。
【請求項１０】
前記プロセッサは、
前記ロジックモデル依存情報に基づいて、前記ロジックモデルに含まれる各ロジックに階層を設定し、
前記各ロジックに設定された階層を含むロジックモデル階層情報を生成し、
前記ロジックプログラム生成情報及び前記ロジックモデル階層情報に基づいて、前記ロジックプログラムの実行を管理するロジック実行管理プログラムを生成することを特徴とする請求項９に記載の開発支援装置。
【請求項１１】
前記関係モデルは、前記オブジェクト間の関係に付与された識別子を含み、
前記ロジックモデルは、前記識別子によって、前記オブジェクトからの前記関連する他のオブジェクトに対する参照が定義されていることを特徴とする請求項８に記載の開発支援装置。
【請求項１２】
前記オブジェクトは、定義済みのオブジェクトの属性を継承して定義することが可能であることを特徴とする請求項８に記載の開発支援装置。
【請求項１３】
前記プロセッサは、
前記オブジェクトモデル、前記関係モデル、及び前記ロジックモデルの少なくとも一つの変更を受け付け、
前記オブジェクトモデル、前記関係モデル、及び前記ロジックモデルの変更を、前記結合モデルに反映して出力することを特徴とする請求項８に記載の開発支援装置。
【請求項１４】
前記プロセッサは、
前記結合モデルの変更の入力を受け付け、
前記結合モデルの変更を、前記オブジェクトモデル、前記関係モデル、及び前記ロジックモデルの変更に反映して出力することを特徴とする請求項８に記載の開発支援装置。
【請求項１５】
複数のオブジェクトを利用するソフトウェアの開発を支援する開発支援装置に実行させるプログラムであって、
前記オブジェクトには、当該オブジェクトの属性が定義され、
前記プログラムは、
前記オブジェクトが定義されたオブジェクトモデル、前記オブジェクト間の関係が定義された関係モデル、及び前記オブジェクトの属性に基づいて演算する規則が定義されたロジックモデルの入力を受け付ける手順と、
前記関係モデルに基づいて前記オブジェクトを他のオブジェクトと関連付け、前記関連付けられた他のオブジェクトの属性に基づいて演算する規則を含むロジックモデルを前記オブジェクトに関連付けることによって、前記オブジェクトモデル、前記関係モデル及び前記ロジックモデルが結合された結合モデルを生成する手順と、
前記生成された結合モデルを、前記ソフトウェアの仕様として出力する手順と、を含むことを特徴とする開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発を支援する技術に関し、特に、情報制御システムの開発を支援する技術に関する。
【背景技術】
【０００２】
一般に、システム開発の工程は、システムによって達成すべき要求を分析する工程（要求分析工程）と、システムの仕様を表す情報を設計する工程（設計工程）と、システムの詳細な実行を示すプログラムを開発する工程（実装工程）とからなる。
【０００３】
設計工程では、システムの理解を深め、システムの特徴を端的に表すために、モデリング言語を用いてシステムを抽象化して記述する技術が開発されている。モデリング言語の例としては、ＵＭＬ（Unified Modeling Language）が特に有名である。
【０００４】
さらに、実装工程を省略して、システム開発コストを削減するために、設計工程において記述されたモデルを、予め決めた変換規則に基づいてプログラムに変換する技術が開発されている。このような技術は、ＭＤＡ（Model Driven Architecture）技術と総称されている。
【０００５】
近年、列車運行管理システムなどに代表される情報制御システムに対しても、前述したＭＤＡ技術の適用が検討されている。情報制御システムとは、制御対象現場に設置された「設備」と呼ばれるハードウェアから受け取ったデータを、設備固有の制御ロジックに従って演算し、当該演算結果を画面又は設備に出力する。演算結果は、設備の「状態」と呼ばれたり、より抽象的に設備の「属性」と呼ばれたりする。情報制御システムでは、周期的に設備の状態を演算するが、毎周期すべての設備の状態を演算するのではなく、変化のあった設備など一部分のみを演算する。
【０００６】
情報制御システムに適用可能なＭＤＡ技術としては、例えば、静的なインスタンス仕様のモデル化方法と、インスタンス仕様が記述されたプログラムをモデルに基づいて生成する方法が開示されている（特許文献１参照）。特許文献１に開示された技術によれば、静的なインスタンスである設備をモデル化し、さらに設備の仕様を記述したプログラムを得ることができる。
【０００７】
また、特許文献２には、制御ロジックのモデリング言語と、当該モデリング言語に基づいてプログラムを生成する技術が開示されている。特許文献２に開示された技術によれば、複雑な制御ロジックであってもモデル化することが可能となり、さらに、制御ロジックが記述されたプログラムを得ることができる。
【０００８】
さらに、特許文献３には、モデルから抽出されたモデル間の依存関係に基づいて、モデルの追従動作を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−２８７６９５号公報
【特許文献２】特開２００３−２０８３０７号公報
【特許文献３】特開平９−２５８８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１及び特許文献２に開示された技術を用いることによって、情報制御システムを構成する設備及び当該設備の制御ロジックを、設備モデル及びロジックモデルとしてモデル化し、各モデルに基づいて対応するプログラムを生成することができる。
【００１１】
情報制御システムには、設備の状態などのデータだけでなく、制御ロジックも設備ごとに異なるという特徴がある。特に、制御ロジックは他の設備の状態（あるいは自設備の他の状態）に依存する場合が多く、制御ロジックの依存先の設備は設備ごとに異なる。
【００１２】
そこで、前述した従来技術を情報制御システムに適用する場合には、以下に示すような問題が生じる場合がある。
【００１３】
従来技術によるモデリングでは、設備のクラスを定義し、定義されたクラスをインスタンス化することによって、設備のインスタンスを定義する。しかし、このような方法では、設備インスタンスごとに制御ロジックを変更することはできない。そのため、従来技術によるモデリングの場合、ロジックモデルは、設備のインスタンスごとにそれぞれ記述する必要があり、ロジックモデルの記述に多くの工数を要するという問題が生じる。特に、情報制御システムでは、前述したように、依存先設備のみが異なり、その他については他の制御ロジックと同様である場合が多い。そのため、依存先設備のみが異なる制御ロジックを重複して記述しなければならなくなり、開発コストが増大してしまう。
【００１４】
さらに、従来技術によるモデリングの場合、設備モデル及びロジックモデルに加え、設備モデルとロジックモデルとの対応関係も記述する必要がある。その結果、２種類のモデルとそれらのモデル間の関係が、１つの表記上に混在することになるため、モデルの作成及び把握が困難になるという問題も生じる。
【００１５】
また、前述したように、設備の状態を演算する制御ロジックは、他の設備の状態を参照する場合が多い。この場合、被参照側の設備の状態は、参照側の設備の状態よりも先に決定しなければならない。つまり、ロジックモデルから制御ロジックのプログラムを生成した場合は、被参照側の設備状態を演算するプログラムを、参照側の設備状態を演算するプログラムよりも先に実行しなければならない。
【００１６】
したがって、ロジックモデルで定義された制御ロジックに従った正しい演算結果を取得するためには、ロジックモデル間の依存関係を考慮してプログラムの実行を管理する必要がある。
【００１７】
特許文献３には、モデルから抽出したモデル間の依存関係に基づいて、モデルの追従動作を実現するモデルシミュレーション・システムが開示されている。特許文献３に開示された技術によれば、モデルの動作順序を管理することは可能であるが、モデルに基づいて生成したプログラムの実行を管理することはできない。
【００１８】
本発明の目的は、情報制御システムの仕様が定義されたモデルをより簡潔に、整理して記述可能とするとともに、定義されたモデルに基づいてプログラムを生成した場合に、生成されたプログラムの実行を管理する技術を提供することにある。
【課題を解決するための手段】
【００１９】
本発明の代表的な一形態では、複数のオブジェクトを利用するソフトウェアの開発支援装置において、前記ソフトウェアの開発を支援する方法であって、前記開発支援装置は、プロセッサ、及び前記プロセッサに接続されるメモリを備え、前記オブジェクトには、当該オブジェクトの属性が定義され、前記開発支援方法は、前記プロセッサが、前記オブジェクトが定義されたオブジェクトモデル、前記オブジェクト間の関係が定義された関係モデル、及び前記オブジェクトの属性に基づいて演算する規則が定義されたロジックモデルの入力を受け付け、前記プロセッサが、前記関係モデルに基づいて前記オブジェクトを関連付け、前記関連付けられたオブジェクトの属性に基づいて演算する規則を含むロジックモデルを前記オブジェクトに関連付けることによって、前記オブジェクトモデル、前記関係モデル及び前記ロジックモデルが結合された結合モデルを生成し、前記プロセッサが、前記生成された結合モデルを、前記ソフトウェアの仕様として出力する。
【発明の効果】
【００２０】
本発明の一形態によれば、オブジェクト、オブジェクト間の関係、及びオブジェクトの属性を演算する規則（ロジック）を個別に仕様を記述することによってソフトウェアの仕様の作成を容易にし、さらに、各仕様を統合して出力することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態のモデル駆動型開発支援装置の構成を示すブロック図である。
【図２】本発明の実施の形態のモデル駆動型開発支援装置のハードウェア構成を示す図である。
【図３】本発明の実施の形態の設備関連モデルの表示例を示す図である。
【図４】本発明の実施の形態の設備関連モデルのデータの例を示す図である。
【図５】本発明の実施の形態のロジックモデルの表示例を示す図である。
【図６】本発明の実施の形態のロジックモデルのデータの例を示す図である。
【図７】本発明の実施の形態の設備モデルの第１の表示例を示す図である。
【図８Ａ】本発明の実施の形態の設備モデルの第２の表示例の信号機の設備クラスを示す図である。
【図８Ｂ】本発明の実施の形態の設備モデルの第２の表示例の軌道回路の設備クラスを示す図である。
【図８Ｃ】本発明の実施の形態の設備モデルの第２の表示例の設備定義表を示す図である。
【図９】本発明の実施の形態の設備モデルのデータの例を示す図である。
【図１０】本発明の実施の形態の結合モデルの表示例を示す図である。
【図１１】本発明の実施の形態のモデル結合部によって作成される中間データ１のデータの例を表す図である。
【図１２】本発明の実施の形態の結合モデルのデータの例を示す図である。
【図１３】本発明の実施の形態の結合モデル表示部によって作成される中間データ２のデータの例を表す図である。
【図１４】本発明の実施の形態のモデル駆動型開発支援装置の表示装置によって表示された画面の例を示す図である。
【図１５】本発明の実施の形態のモデル結合部及び結合モデル表示部によって、結合モデルを生成し、生成された結合モデルを表示する手順を示すフローチャートである。
【図１６】本発明の実施の形態のロジックプログラム生成情報の例を示す図である。
【図１７】本発明の実施の形態のロジックモデル依存情報の例を示す図である。
【図１８】本発明の実施の形態のロジックモデル階層情報の例を示す図である。
【図１９】本発明の実施の形態のロジックプログラム依存情報の例を示す図である。
【図２０】本発明の実施の形態のロジックプログラム階層情報の例を示す図である。
【図２１】本発明の実施の形態のロジック実行管理プログラム生成部によって、ロジック実行管理プログラムを生成する手順を示すフローチャートである。
【図２２】本発明の実施の形態の依存情報定義プログラムモジュールの一例を示す図である。
【図２３】本発明の実施の形態の階層情報定義プログラムモジュールの一例を示す図である。
【図２４】本発明の実施の形態のロジック実行プログラムモジュールの一例を示す図である。
【図２５】本発明の実施の形態の設備インスタンス定義プログラム生成部によって生成された設備インスタンス定義プログラムの一例を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
【００２３】
本発明の実施の形態では、列車運行管理システムに本発明を適用する。列車運行管理システムは、列車運行管理の効率化及び旅客サービス向上のために導入されているシステムである。本発明の実施の形態では、信号機及び軌道回路などの設備から情報を取得し、所定のロジックに基づいて演算した結果を出力するシステムを対象としている。
【００２４】
図１は、本発明の実施の形態のモデル駆動型開発支援装置２０１の構成を示すブロック図である。
【００２５】
モデル駆動型開発支援装置２０１は、出力部１０１、入力部１０２、モデル作成部１０３、及びプログラム生成部１０４を備える。
【００２６】
モデル作成部１０３及びプログラム生成部１０４は、ＣＰＵによって実行されるプログラムである。モデル作成部１０３は、図形、表、文などによって構成される仕様（モデル）を作成するためのテンプレートを提示し、利用者からの入力を受け付けてモデルを作成する。
【００２７】
このようにして利用者に作成されるモデルには、設備モデル、設備関連モデル、及びロジックモデルの３種類がある。さらに、モデル作成部１０３は、設備モデル、設備関連モデル、及びロジックモデルを、結合モデルに変換する。
【００２８】
設備モデルには、制御対象の設備であるオブジェクトが定義される。設備モデルは、制御対象のオブジェクトが定義されるオブジェクトモデルである。例えば、オブジェクトは、あらかじめ定義された設備に対応するクラスがインスタンス化された設備インスタンスに、実際の設備に対応する状態（属性）を設定したものである。この場合には、ＵＭＬなどによって設備モデルを表すことができる。ただし、前述したように、情報制御システムでは、関連する他のオブジェクトによってオブジェクトのふるまいが相違する場合があるため、あらかじめ定義することができるとは限らない。設備モデルの例については、図７から図９を参照しながらさらに説明する。
【００２９】
設備関連モデルには、設備に対応するオブジェクト間の関連情報が定義される。設備関連モデルは、オブジェクト間の関係が定義された関係モデルである。設備関連モデルには、少なくとも設備名などの設備の識別情報と関連する設備との組が含まれている。設備関連モデルの例については、図３及び図４を参照しながらさらに説明する。
【００３０】
ロジックモデルには、各オブジェクトの状態を制御するための制御ロジックが定義される。具体的には、制御対象のオブジェクトの状態を、当該オブジェクトに関連するオブジェクトの状態に基づいて演算するロジック（条件）が定義されている。ロジックモデルの例については、図５及び図６を参照しながらさらに説明する。
【００３１】
プログラム生成部１０４は、作成された設備モデル、設備関連モデル及びロジックモデルに基づいて、システムに必要なプログラムを生成する。
【００３２】
モデル作成部１０３は、モデル編集部１１２、モデル格納部１１１、モデル結合部１０６、結合モデル格納部１０７、及び結合モデル表示部１０５を含む。
【００３３】
モデル編集部１１２は、設備モデル、設備関連モデル及びロジックモデルを作成及び編集する。また、出力部１０１を介して各モデルのテンプレートを提示し、入力部１０２を介して利用者からの入力を受け付けてモデルを作成する。さらに、作成されたモデルをモデル格納部１１１に登録する。
【００３４】
モデル格納部１１１は、設備関連モデル格納部１０８、設備モデル格納部１０９、及びロジックモデル格納部１１０を含む。設備関連モデル格納部１０８は、設備関連モデルを保持する。設備モデル格納部１０９は、設備モデルを保持する。ロジックモデル格納部１１０は、ロジックモデルを保持する。
【００３５】
モデル結合部１０６は、設備モデル、設備関連モデル及びロジックモデルを、モデル格納部１１１から取得し、結合モデルを作成する。さらに、モデル結合部１０６は、作成された結合モデルを、結合モデル格納部１０７に登録する。
【００３６】
結合モデルは、例えば、設備関連モデルに基づいて設備モデルに含まれる各設備を関連付け、さらに、各設備の状態と当該状態に対応するロジックモデルとを関連付けることによって生成される。
【００３７】
結合モデル表示部１０５は、結合モデル格納部１０７から結合モデルを取得し、出力部１０１を介して結合モデルを提示する。結合モデルは、モデル編集部１１２によって編集可能であり、結合モデル格納部１０７に更新登録することも可能である。
【００３８】
プログラム生成部１０４は、設備インスタンス定義プログラム生成部１２１、ロジックプログラム生成部１１３、ロジックプログラム生成情報格納部１１５、ロジックモデル依存情報抽出部１１４、ロジックモデル依存情報格納部１１６、ロジックモデル階層情報作成部１１８、ロジックモデル階層情報格納部１２０、ロジック実行管理プログラム生成部１１９、及び生成プログラム格納部１１７を含む。
【００３９】
設備インスタンス定義プログラム生成部１２１は、設備関連モデル格納部１０８及び設備モデル格納部１０９から、設備関連モデル及び設備モデルを取得し、取得された設備関連モデル及び設備モデルに基づいて、設備インスタンス定義プログラムを生成する。また、設備インスタンス定義プログラム生成部１２１は、生成した設備インスタンス定義プログラムを、生成プログラム格納部１１７に登録する。
【００４０】
ロジックプログラム生成部１１３は、ロジックモデル格納部１１０からロジックモデルを取得し、取得されたロジックモデルに基づいて、ロジックプログラムを生成する。このとき、ロジックプログラム生成部１１３は、ロジックプログラム生成情報を作成する。なお、ロジックプログラム単体は、ロジックモデルが入力された時点で作成可能であり、後述するロジック実行管理プログラムを作成するためにはロジックプログラム生成情報が必要となる。したがって、遅くともロジック実行管理プログラムを作成する処理の実行前にロジックプログラムを作成する必要がある。例えば、ロジック実行管理プログラムを作成する処理の直前にロジックプログラムを作成するようにしてもよいし、ロジックモデルが入力された時点でロジックプログラムを作成するようにしてもよい。
【００４１】
なお、ロジックプログラムの処理は、基本的には、関連する設備の状態に基づいて、対象の設備の状態を設定する処理であるため、ロジックモデルに規定された条件に基づいて、比較的容易に作成可能である。複雑なロジックをロジックプログラムに組み込む場合には、あらかじめロジックの雛形を定義しておき、定義された雛形に必要な情報を設定するようにしてもよい。
【００４２】
また、ロジックプログラム生成部１１３は、生成されたロジックプログラムを生成プログラム格納部１１７に登録し、さらに、ロジックプログラム生成情報をロジックプログラム生成情報格納部１１５に登録する。ロジックプログラム生成情報については、図１６にて説明する。
【００４３】
ロジックモデル依存情報抽出部１１４は、ロジックモデル格納部１１０からロジックモデルを取得し、取得されたロジックモデル間の依存関係を基づいて、ロジックモデル依存情報を作成する。本発明の実施の形態では、ロジックモデル間の依存関係とは、主として、あるロジックモデルが他のロジックモデルによって決定される設備の状態を参照する関係を意味する。また、ロジックモデル依存情報抽出部１１４は、生成されたロジックモデル依存情報を、ロジックモデル依存情報格納部１１６に登録する。ロジックモデル依存情報については、図１７にて説明する。
【００４４】
ロジックモデル階層情報作成部１１８は、ロジックモデル依存情報格納部１１６からロジックモデル依存情報を取得し、取得されたロジックモデル依存情報に基づいて、ロジックモデル階層情報を作成する。ロジックモデル階層情報作成部１１８は、生成されたロジックモデル階層情報を、ロジックモデル階層情報格納部１２０に登録する。ロジックモデル階層情報については、図１８にて説明する。
【００４５】
階層についてさらに説明すると、本発明の実施の形態では、ロジックモデル依存情報によって、あるロジックモデルＡが別のロジックモデルＢによって決定される設備の状態を参照するという関係が与えられた場合には、ロジックモデルＡをロジックモデルＢよりも上層に位置するようにロジックモデル階層情報を定義する。したがって、階層が下層のロジックから実行することによって、ロジックモデル間の依存関係を考慮してプログラムを実行させることができる。
【００４６】
ロジック実行管理プログラム生成部１１９は、ロジックプログラム生成情報格納部１１５、ロジックモデル依存情報格納部１１６及びロジックモデル階層情報格納部１２０から、それぞれロジックプログラム生成情報、ロジックモデル依存情報、及びロジックモデル階層情報を取得し、ロジック実行管理プログラムを生成する。ロジック実行管理プログラムを生成する詳細手順については図２１にて後述する。また、ロジック実行管理プログラム生成部１１９は、生成されたロジック実行管理プログラムを、生成プログラム格納部１１７に登録する。
【００４７】
図２は、本発明の実施の形態のモデル駆動型開発支援装置２０１のハードウェア構成を示す図である。
【００４８】
モデル駆動型開発支援装置２０１は、ＣＰＵ２０２、メモリ２０３、外部記憶装置２０４、表示装置２０５、入力装置２０６、及び外部媒体出力装置２０７を備える。
【００４９】
ＣＰＵ２０２は、メモリ２０３に記憶されたプログラムを実行することによって、各種処理を実行する。メモリ２０３は、ＣＰＵ２０２のワークエリアとして機能し、プログラム及びプログラムの実行に必要なデータを記憶する。具体的には、モデル作成部１０３及びプログラム生成部１０４を構成するプログラムが記憶される。
【００５０】
外部記憶装置２０４は、各種データを格納する。外部記憶装置２０４は、例えば、ハードディスク装置などである。具体的には、モデル格納部１１１、結合モデル格納部１０７、ロジックプログラム生成情報格納部１１５、ロジックモデル依存情報格納部１１６、ロジックモデル階層情報格納部１２０、及び生成プログラム格納部１１７が格納される。
【００５１】
表示装置２０５は、プログラムの処理結果などを表示する。表示装置２０５は、例えば、ディスプレイなどである。入力装置２０６は、処理の実行指示及び処理に必要な情報の入力などを利用者から受け付ける。入力装置２０６は、例えば、キーボード及びマウスなどである。
【００５２】
外部媒体出力装置２０７は、外部記憶装置２０４に格納されているデータを外部媒体に出力する。外部媒体は、例えば、フレキシブルディスク、書き込み可能なコンパクトディスク（ＣＤ−Ｒ）などであり、外部媒体出力装置２０７は、例えば、フレキシブルディスクドライブ、ＣＤ−Ｒドライブなどである。
【００５３】
図３は、本発明の実施の形態の設備関連モデルの表示例を示す図である。
【００５４】
図３に示す設備関連モデルは、設備インスタンス３０１、３０３、３０５、３０７及び３０９と、設備インスタンス間の関係名称３０２、３０４、３０６及び３０８によって表される。設備インスタンスを接続する関係の矢印は、関係の向きを表す。例えば、設備インスタンス３０１からみて関係名称３０２に対応する設備インスタンスは、設備インスタンス３０３となる。一方、設備インスタンス３０３からみて関係名称３０２に対応する設備は、図３に示す設備関連モデルおいては未定義となっている。
【００５５】
設備インスタンス３０１は、設備クラス名称３１０及び設備名称３１１を含む。設備クラスは、例えば、設備の種類ごとに定義され、各設備の状態の種類などが定義される。設備クラス名称３１０は、設備クラスの名称である。
【００５６】
設備インスタンス３０１は、設備クラスに基づいて生成（インスタンス化）される。設備インスタンス３０１は、実際に設置された設備に対応する。設備名称３１１は、実際に設置された設備の名称を示す。
【００５７】
図４は、本発明の実施の形態の設備関連モデルのデータの例を示す図である。
【００５８】
設備関連モデルのデータ４０１は、設備クラス名称４０２、設備名称４０３、関係名称４０４、及び関係設備名称４０５を含む。
【００５９】
設備クラス名称４０２は、設備名称４０３によって特定される設備インスタンスに対応するクラスの名称である。設備クラス名称４０２は、図３の設備クラス名称３１０に対応する。設備名称４０３は、設備インスタンスを一意に識別する名称である。設備名称４０３は、図３の設備名称３１１に対応する。
【００６０】
関係名称４０４は、設備インスタンス間の関係を一意に識別する名称である。関係名称４０４は、図３の関係名称３０２、３０４、３０６、３０８に対応する。関係設備名称４０５は、設備名称４０３に対応する設備インスタンスからみて、関係名称４０４の関係にある設備インスタンスの設備名称である。関係設備名称４０５に保持される設備名称は、単一とは限らず、複数であってもよい。
【００６１】
図５は、本発明の実施の形態のロジックモデルの表示例を示す図である。
【００６２】
ロジックモデル５０１、５１２、５１３、５１４では、設備の状態の演算規則を表す手順（ロジック）を表形式で表している。ロジック種別５１５及び５１６は、ロジックモデル５０１、５１２、５１３、５１４のロジック種別を表す。例えば、ロジック種別５１５は、標準のロジック種別であり、特に指定がない設備に対しては、標準のロジックを用いて演算する。一方、ロジック種別５１６は、特殊なロジックを適用するためのロジック種別であり、特定の設備対してのみ適用される。
【００６３】
ロジックモデル５０１は、ロジック名称５１１、設備クラス名称５０２、状態名称５０３、状態値５０４、及び条件５０５を含む。ロジック名称５１１は、ロジックモデル５０１の名称である。設備クラス名称５０２は、ロジックモデル５０１に対応する制御ロジックの演算対象となる設備のクラス名称である。
【００６４】
状態名称５０３は、ロジックモデル５０１に対応する制御ロジックによって演算される設備の状態名称である。状態値５０４は、状態名称５０３が取り得る値である。条件５０５は、状態名称５０３の値に状態値５０４を設定するための条件である。例えば、条件５０６が成立した場合には、“信号機”の“表示状態”に“表示有”を設定する。一方、条件５０７が成立した場合は、“信号機”の“表示状態”に“表示無”を設定する。
【００６５】
条件５０７は、関係名称５１０、状態名称５０８及び状態値５０９を含む。関係名称５１０は、条件の対象となる設備を表しており、当該の設備と関係名称５１０の関係にある設備が条件の対象となる。状態名称５０８は、条件の対象となる設備の状態名称である。状態値５０９は、状態名称５０８が取り得る状態値である。つまり、条件５０７は、「当該設備から関係名称５１０の関係にある設備の状態名称５０８の値が、状態値５０９ならば」という条件を表している。条件は、縦及び横方向に複数記述することが可能であり、横方向に並べた条件はＡＮＤ条件、縦方向に並べた条件はＯＲ条件を表す。
【００６６】
図６は、本発明の実施の形態のロジックモデルのデータの例を示す図である。
【００６７】
ロジックモデルのデータ６０１は、ロジック種別６０２、ロジック名称６０３、設備クラス名称６０４、状態名称６０５、状態値６０６、及び条件６０７を含む。
【００６８】
ロジック種別６０２は、ロジックモデルの種別を表すデータで、図５のロジック種別５１５又は５１６に対応する。ロジック名称６０３は、ロジックモデルの名称であり、図５のロジック名称５１１に対応する。設備クラス名称６０４は、ロジックモデルの演算対象となる設備のクラス名称であり、図５の設備クラス名称５０２に対応する。
【００６９】
状態名称６０５は、ロジックモデルで演算する設備の状態名称であり、図５の状態名称５０３に対応する。状態値６０６は、状態名称６０５が取り得る値であり、図５の状態値５０４に対応する。条件６０７は、状態名称６０５に状態値６０６を設定する場合の条件であり、図５の条件５０５に対応する。
【００７０】
図７は、本発明の実施の形態の設備モデルの第１の表示例を示す図である。
【００７１】
図７に示す設備モデルの表示例は、設備インスタンスと対応するロジック名称とが関連付けられて表示されている。具体的には、設備インスタンス７０１、７０２、７０３、７０６、７０７、及びロジック名称７０４、７０５、７０８、７０９で構成される。
【００７２】
設備インスタンス７０１は、設備名称７１０及び状態名称７１１を含む。ロジック名称７０４は、状態名称７１１の演算規則であり、状態名称７１１とロジック名称７０４とを関連付けて表示している。
【００７３】
図８Ａ、図８Ｂ及び図８Ｃは、本発明の実施の形態の設備モデルの第２の表示例を示す図である。図８Ａは、設備が信号機の場合の設備クラス８０１を示す図である。図８Ｂは、設備が軌道回路の場合の設備クラス８０２を示す図である。図８Ｃは、設備インスタンス（設備名称）に対応するロジック種別を設備クラスごとに定義する設備定義表８０３を示す図である。
【００７４】
設備クラス８０１及び８０２は、設備クラスの構造を表している。また、設備クラスは、他の設備クラスを継承して定義するようにしてもよい。共通の状態（属性）が定義されたクラスを他のクラスに継承することによって、管理を容易にすることができる。例えば、新たな設備クラスを定義する場合には、他の設備クラスを継承し、差分のみを実装すればよい。また、設備インスタンスに対応するオブジェクトを直接定義し、オブジェクトの属性を他のオブジェクトに直接継承するように構成してもよい。
【００７５】
図８Ａに示す信号機に対応する設備クラス８０１は、設備クラス名称８０７と、当該設備クラスに属する状態の名称である状態名称８０８、８０９及び８１０を含む。具体的には、状態名称８０８は表示状態、状態名称８０９は現示状態、状態名称８１０は現示ビットを示している。現示状態とは、信号機によって進行又は停止などが指示されていることを示している。表示状態とは、例えば、警報などが表示されているか否かを示している。
【００７６】
同じく、図８Ｂに示す軌道回路に対応する設備クラス８０２には、状態名称として、落下ビット及び現示状態が含まれている。
【００７７】
ここで、軌道回路について簡単に説明し、さらに「落下」について説明する。軌道回路の基本原理は、列車の車輪と車軸が２本のレールを短絡して電気回路を構成することである。二本のレールに電流を流し、この区間に列車が在線していると、列車の車輪と車軸によってレールが短絡されるため、電流が流れなくなる。このことを落下という。一方、列車が在線しておらず、電流が流れていることを扛上という。落下ビットは、落下しているか否かを「０」又は「１」で表す。
【００７８】
図８Ｃに示す設備定義表８０３は、図８Ａ及び図８Ｂに示した設備クラスがインスタンス化された場合に、設定される設備名称及び適用されるロジックの種別が格納される。設備定義表８０３は、設備クラス名称８０４、設備名称８０５、及びロジック種別８０６を含む。
【００７９】
設備クラス名称８０４は、設備定義表８０３によって定義される設備クラスの名称である。設備名称８０５は、設備定義表８０３で定義される設備の名称である。ロジック種別８０６は、設備名称８０５に対応する設備の状態を演算するためのロジックの種別である。
【００８０】
図９は、本発明の実施の形態の設備モデルのデータの例を示す図である。
【００８１】
設備モデルのデータ９０１は、設備クラス名称９０２、設備名称９０３、状態名称９０４、ロジック種別９０５、及びロジック名称９０６を含む。設備クラス名称９０２は、設備名称９０３に対応する設備のクラス名称である。設備名称９０３は、設備の名称である。状態名称９０４は、設備名称９０３に対応する設備の状態名称である。ロジック種別９０５は、ロジック名称９０６に対応するロジックのロジック種別である。ロジック名称９０６は、状態名称９０４を演算するロジックの名称である。
【００８２】
図１０は、本発明の実施の形態の結合モデルの表示例を示す図である。
【００８３】
結合モデルは、設備インスタンス１００１、１００３、１００５、１００７、１００９と、ロジックインスタンス１００２、１００４、１００６、１００８を含む。
【００８４】
ロジックインスタンスは、ロジックモデルの条件に含まれる関係名称を、特定の設備名称に置き換えて、ロジックモデルを特定の設備インスタンスのためにインスタンス化したものである。
【００８５】
図１０に示した結合モデルについてさらに説明すると、設備インスタンス１００１は、信号機１Ｒの設備インスタンスを表している。信号機１Ｒは、属性として表示状態を有している。また、信号機１Ｒの表示状態は、ロジックインスタンス１００２によって演算される。ロジックインスタンス１００２では、軌道回路１Ｔの属性である落下ビットを参照しているため、信号機１Ｒの表示状態は、軌道回路１Ｔの落下ビットに依存する。
【００８６】
図１１は、本発明の実施の形態のモデル結合部１０６によって作成される中間データ１のデータの例を表す図である。
【００８７】
中間データ１は、結合モデルを作成するために一時的に生成されるデータである。中間データ１のデータ１１０１は、設備名称１１０２、状態名称１１０３、ロジック名称１１０４、関係名称１１０５、及び関係設備名称１１０６を含む。中間データ１は、設備関連モデルのデータ４０１と設備モデルのデータ９０１とを、設備名称４０３及び設備名称９０３をキーとして結合することによって生成される。
【００８８】
図１２は、本発明の実施の形態の結合モデルのデータの例を示す図である。
【００８９】
結合モデルのデータ１２０１は、設備名称１２０２、状態名称１２０３、ロジック名称１２０４、状態値１２０５、条件１２０６、関係名称１２０７、及び関係設備名称１２０８を含む。結合モデルのデータ１１０１は、中間データ１のデータ１１０１とロジックモデルのデータ６０１とを、ロジック名称６０３及びロジック名称１１０４をキーとして関連付けることによって生成される。
【００９０】
図１３は、本発明の実施の形態の結合モデル表示部１０５によって作成される中間データ２のデータの例を表す図である。
【００９１】
中間データ２は、生成された結合モデルを表示するために一時的に作成されるデータである。中間データ２のデータ１３０１は、設備名称１３０２、状態名称１３０３、ロジック名称１３０４、状態値１３０５、及び条件１３０６を含む。
【００９２】
中間データ２のデータ１３０１は、結合モデルのデータ１２０１の条件１２０６に含まれる関係名称１２０７に対応する情報を、関係設備名称１２０８に置き換えることによって作成される。すなわち、条件を具体的な設備名称などに置換することによって、利用者が理解しやすいように結合モデルを提示することができる。
【００９３】
図１４は、本発明の実施の形態のモデル駆動型開発支援装置２０１の表示装置２０５によって表示された画面の例を示す図である。
【００９４】
画面には、システム名称１４０１が表示され、対応する設備モデル、ロジックモデル及び設備関連モデルが表示される。設備モデル、ロジックモデル及び設備関連モデルは、前述のように、利用者によって入力される情報である。さらに、画面下部には、設備モデル、ロジックモデル及び設備関連モデルに基づいて生成された結合モデルが表示される。
【００９５】
システム名称１４０１は、画面に表示するシステムの名称を表している。システム名称１４０１は、プルダウン選択によって、表示対象のシステムを切り替えることが可能である。
【００９６】
設備モデルの表示領域には、設備名称１４０２及び設備モデル表示領域１４０５が含まれている。設備名称１４０２には、設備モデル表示領域１４０５に表示されている設備モデルの設備名称が表示される。設備名称１４０２は、プルダウン選択が可能となっており、設備モデル表示領域１４０５に表示する設備モデルを切り替えることができる。なお、設備モデルを表示する形式については、図７又は図８Ａから図８Ｃに示した図形式としてもよいし、図８に示した表形式であってもよい。
【００９７】
ロジックモデルの表示領域には、ロジック名称１４０３及びロジックモデル表示領域１４０６が含まれている。ロジック名称１４０３には、ロジックモデル表示領域１４０６に表示されているロジックモデルのロジック名称が表示される。ロジック名称１４０３は、プルダウン選択が可能となっており、ロジックモデル表示領域１４０６に表示するロジックモデルを切り替えることができる。なお、ロジックモデルを表示する形式については、図５に示したような図形式としてもよいし、図６に示したような表形式であってもよい。
【００９８】
設備関連モデルの表示領域には、関係名称１４０４及び設備関連モデル表示領域１４０７が含まれている。関係名称１４０４には、設備関連モデル表示領域１４０７に表示されている設備関連モデルの関連名称が表示される。関係名称１４０４は、プルダウン選択が可能となっており、設備関連モデル表示領域１４０７に表示する設備関連モデルを切り替えることができる。また、設備関連モデル表示領域１４０７には、図３に示したように、関係名称１４０４で指定した関係によって関連付けられる設備インスタンスも同時に表示される。また、図４に示したように表形式で設備関連モデルを表示してもよい。
【００９９】
設備モデル表示領域１４０５、ロジックモデル表示領域１４０６、及び設備関連モデル表示領域１４０７では、各モデルの編集が可能である。モデルの編集が終了した後、更新ボタン１４０８を操作することによって、変更後のモデルがモデル格納部１１１に更新登録される。また、モデルに制約条件がある場合には、モデル格納部１１１に更新登録する前に制約条件を満たすかを検査する。制約条件を満たす場合には、そのままモデル格納部１１１に更新登録する。制約条件を満たさない場合には、個別モデル用メッセージ表示部１４０９にエラーメッセージを表示し、更新登録を中止することも可能である。さらに、モデル結合部１０６を実行することによって、モデルの更新結果に基づいて、結合モデル格納部１０７の内容を更新する。
【０１００】
結合モデル表示領域１４１０には、結合モデル格納部１０７に格納された結合モデルデータに基づいて、設備名称１４０２で選択された設備名称の設備インスタンスを中心に、関連する設備インスタンス及びロジックインスタンスを表示する。
【０１０１】
結合モデル表示領域１４１０では、結合モデルを編集することも可能であり、モデルの編集後、更新ボタン１４１２を操作することによって、変更後の結合モデルが結合モデル格納部１０７に更新登録される。その後、モデル結合部１０６が結合モデル格納部１０７を参照し、モデル結合の逆の手順で、モデル格納部１１１の内容を更新し、各モデルに結合モデルの更新内容を反映させることができる。
【０１０２】
結合モデルに制約条件がある場合には、結合モデル格納部１０７に更新登録する前に制約条件を満たすか否かを検査し、制約条件を満たさない場合には、結合モデル用メッセージ表示部１４１１にエラーメッセージを表示し、更新登録を中止することも可能である。
【０１０３】
図１５は、本発明の実施の形態のモデル結合部１０６及び結合モデル表示部１０５によって、結合モデルを生成し、生成された結合モデルを表示する手順を示すフローチャートである。
【０１０４】
ＣＰＵ２０２は、モデル結合部１０６を実行することによって、モデル格納部１１１から設備関連モデル、設備モデル及びロジックモデルを取得する（ステップ１５０１）。
【０１０５】
ＣＰＵ２０２は、取得された設備モデル及び設備関連モデルを、設備名称に基づいて結合し、中間データ１を作成する（ステップ１５０２）。中間データ１は、図１１にて説明したように、結合モデルを作成するために一時的に生成されるデータである。
【０１０６】
ＣＰＵ２０２は、ステップ１５０２の処理で生成された中間データ１とロジックモデルとを、ロジック名称に基づいて結合し、結合モデルのデータを作成する（ステップ１５０３）。結合モデルのデータは、図１２に示したとおりである。
【０１０７】
ＣＰＵ２０２は、結合モデル格納部１０７に、作成した結合モデルのデータを保存する（ステップ１５０４）。
【０１０８】
ＣＰＵ２０２は、結合モデル表示部１０５を実行し、結合モデル格納部１０７から結合モデルのデータを取得する（ステップ１５０５）。
【０１０９】
ＣＰＵ２０２は、ステップ１５０５の処理で取得された結合モデルのデータの条件に含まれる関連名称を、関連設備名称に置き換えることによって、中間データ２を作成する（ステップ１５０６）。中間データ２は、図１３にて説明したように、結合モデルを表示するために一時的に作成されるデータである。
【０１１０】
ＣＰＵ２０２は、ステップ１５０６の処理で生成された中間データ２に基づいて、結合モデル表示領域１４１０に結合モデルを表示する（ステップ１５０７）。
【０１１１】
以上、入力された設備モデル、設備関連モデル及びロジックモデルに基づいて結合モデルを生成する手順について説明した。続いて、入力された設備モデル、設備関連モデル及びロジックモデルに基づいてプログラムを生成し、さらに、生成されたプログラムの実行を管理するためのロジック実行管理プログラムを生成する手順について説明する。
【０１１２】
まず、図１６から図２０を参照しながら各プログラムを生成するために必要な情報について説明し、図２１を参照して各プログラムを生成する手順について説明する。さらに、図２３から図２５に生成されたプログラムの一例を示す。
【０１１３】
図１６は、本発明の実施の形態のロジックプログラム生成情報の例を示す図である。
【０１１４】
ロジックプログラム生成情報１６０１は、ロジックプログラム生成部１１３によって作成され、ロジックプログラム生成情報格納部１１５に格納される。
【０１１５】
ロジックプログラム生成情報１６０１は、ロジック名称１６０２及びプログラム名称１６０３を含む。ロジック名称１６０２は、プログラムの生成元となったロジックの名称である。プログラム名称１６０３は、ロジック名称１６０２に対応するロジックに基づいて生成されたプログラムを識別する情報である。本発明の実施の形態では、ロジックに基づいて関数プログラムを生成するため、関数名をプログラム名称としている。
【０１１６】
図１７は、本発明の実施の形態のロジックモデル依存情報の例を示す図である。
【０１１７】
ロジックモデル依存情報１７０１は、ロジックモデル依存情報抽出部１１４によって作成され、ロジックモデル依存情報格納部１１６に格納される。ロジックモデル依存情報１７０１は、被参照側ロジック名称１７０２、参照側ロジック名称１７０３、及び関係名称１７０４を含む。
【０１１８】
被参照側ロジック名称１７０２及び参照側ロジック名称１７０３は、依存関係にあるロジック名称を表しており、参照側ロジック名称１７０３の条件において、被参照側ロジック名称１７０２に定義されている属性を参照するという関係にある。関係名称１７０４は、参照側ロジック名称１７０３の条件において、対象となる設備インスタンスを特定するための名称であり、関係名称５１０に対応する。
【０１１９】
図１８は、本発明の実施の形態のロジックモデル階層情報の例を示す図である。
【０１２０】
ロジックモデル階層情報１８０１は、ロジックモデル階層情報作成部１１８によって作成され、ロジックモデル階層情報格納部１２０に格納される。ロジックモデル階層情報１８０１は、ロジック名称１８０２及び階層番号１８０３を含む。階層番号１８０３は、ロジック名称１８０２のロジックモデルの階層番号を保持する。本発明の実施の形態では、参照側のロジックを、被参照側のロジックよりも番号の大きい層に設定している。
【０１２１】
図１９は、本発明の実施の形態のロジックプログラム依存情報の例を示す図である。
【０１２２】
ロジックプログラム依存情報１９０１は、ロジック実行管理プログラム生成部１１９によって作成される。ロジックプログラム依存情報１９０１は、被参照側ロジックプログラム名称１９０２、参照側ロジックプログラム名称１９０３及び関係名称１９０４を含む。ロジックプログラム依存情報１９０１は、ロジックモデル依存情報１７０１に含まれる被参照側ロジック名称１７０２及び参照側ロジック名称１７０３を、ロジックプログラム生成情報１６０１のロジック名称１６０２からプログラム名称１６０３への置き換え規則に基づいて、プログラム名称に置き換えることによって得られる。
【０１２３】
図２０は、本発明の実施の形態のロジックプログラム階層情報の例を示す図である。
【０１２４】
ロジックプログラム階層情報２００１は、ロジック実行管理プログラム生成部１１９によって作成される。ロジックプログラム階層情報２００１は、ロジックプログラム名称２００２及び階層番号２００３を含む。ロジックプログラム階層情報２００１は、ロジックモデル階層情報１８０１のロジック名称１８０２を、ロジックプログラム生成情報１６０１のロジック名称１６０２からプログラム名称１６０３への置き換え規則に基づいて、プログラム名称に置き換えることによって得られる。
【０１２５】
以下、図１６から図２０に示した各種情報に基づいて、ロジックの依存関係を考慮してプログラムを実行するロジック実行管理プログラムを生成する手順について説明する。
【０１２６】
図２１は、本発明の実施の形態のロジック実行管理プログラム生成部１１９によって、ロジック実行管理プログラムを生成する手順を示すフローチャートである。
【０１２７】
ＣＰＵ２０２は、ロジック実行管理プログラム生成部１１９を実行することによって、ロジックプログラム生成情報格納部１１５から、ロジックプログラム生成情報１６０１を取得する（ステップ２１０１）。
【０１２８】
さらに、ＣＰＵ２０２は、ロジックモデル依存情報格納部１１６から、ロジックモデル依存情報１７０１を取得する（ステップ２１０２）。
【０１２９】
ＣＰＵ２０２は、ロジックモデル依存情報１７０１の被参照側ロジック名称１７０２及び参照側ロジック名称１７０３を、ロジックプログラム生成情報１６０１のロジック名称１６０２からプログラム名称１６０３への置き換え規則に基づいて置き換えることによって、ロジックプログラム依存情報１９０１を作成する（ステップ２１０３）。
【０１３０】
ＣＰＵ２０２は、ロジックプログラム依存情報１９０１に基づいて、ロジックプログラムの依存情報のデータを定義するプログラムである依存情報定義プログラムモジュールを生成する（ステップ２１０４）。例えば、基本的なロジックプログラムが記述された雛形をあらかじめ用意しておき、被参照側ロジックプログラム名称１９０２、参照側ロジックプログラム名称１９０３及び関係名称１９０４を雛形に設定することによって、依存情報定義プログラムモジュールを生成する。図２２に依存情報定義プログラムモジュールの一例を示す。
【０１３１】
ＣＰＵ２０２は、ロジックモデル階層情報格納部１２０から、ロジックモデル階層情報１８０１を取得する（ステップ２１０５）。
【０１３２】
ＣＰＵ２０２は、ロジックモデル階層情報１８０１のロジック名称１８０２を、ロジックプログラム生成情報１６０１のロジック名称１６０２からプログラム名称１６０３への置き換え規則に基づいて置き換えることによって、ロジックプログラム階層情報２００１を作成する（ステップ２１０６）。
【０１３３】
ＣＰＵ２０２は、ロジックプログラム階層情報２００１に基づいてロジックプログラムの階層情報のデータを定義するプログラムである階層情報定義プログラムモジュールを生成する（ステップ２１０７）。階層情報定義プログラムモジュールについては、図２３に一例を示す。
【０１３４】
ＣＰＵ２０２は、依存情報定義プログラムモジュール及び階層情報定義プログラムモジュールによって定義されるデータに基づいてロジックプログラムを実行するためのロジック実行プログラムモジュールを生成する（ステップ２１０８）。なお、本発明の実施の携帯では、ロジック実行プログラムモジュールは、常に固定の処理を実行し、設備モデル又はロジックモデルの内容に基づいて生成されるものではない。ロジック実行プログラムモジュールについては、図２４に一例を示す。
【０１３５】
ＣＰＵ２０２は、依存情報定義プログラムモジュール、階層情報定義プログラムモジュール及びロジック実行プログラムモジュールを結合することによって、ロジック実行管理プログラムを作成し、生成プログラム格納部１１７に登録する（ステップ２１０９）。
【０１３６】
図２２は、本発明の実施の形態の依存情報定義プログラムモジュール２２０１の一例を示す図である。
【０１３７】
図２２に示す依存情報定義プログラムモジュール２２０１は、図１９に示したロジックプログラム依存情報１９０１に基づいている。
【０１３８】
依存情報定義プログラムモジュール２２０１には、最初に、別の場所に格納されている各ロジックに対応するプログラムが宣言されている。さらに、依存情報を示す構造体（FuncRelation）などが定義されている。最後に、依存情報を生成する処理が定義された関数makeDependencyDataが記述されている。
【０１３９】
図２３は、本発明の実施の形態の階層情報定義プログラムモジュール２３０１の一例を示す図である。
【０１４０】
図２３に示す階層情報定義プログラムモジュール２３０１は、図２０に示したロジックプログラム階層情報２００１に基づいている。
【０１４１】
階層情報定義プログラムモジュール２３０１には、まず、依存情報定義プログラムモジュール２２０１と同様に、各ロジックに対応するプログラムが宣言されている。続いて、階層情報を格納する変数（layer）が定義されている。
【０１４２】
さらに、階層情報を生成する処理が定義された関数makeLayerDataが記述されており、具体的には、各ロジックプログラムに対応する関数を示す変数を階層とともに変数layerに格納している。
【０１４３】
図２４は、本発明の実施の形態のロジック実行プログラムモジュールの一例を示す図である。
【０１４４】
図２４に示すロジック実行プログラムモジュール２４０１は、前述のように、モデルの内容に依存しないプログラムであって、依存関係を考慮しながら各ロジックを実行する。
【０１４５】
図２５は、本発明の実施の形態の設備インスタンス定義プログラム生成部１２１によって生成された設備インスタンス定義プログラムの一例を示す図である。
【０１４６】
図２５に示す設備インスタンス定義プログラムは、図４に示した設備関連モデルのデータ４０１に基づいている。本発明の実施の形態では、設備関連モデルのデータに基づいて、設備インスタンス（オブジェクト）を定型的に作成している。
【０１４７】
例えば、信号機１Ｒに対応する設備インスタンスer1_1とし、属性idに設備名称である“信号機１Ｒ”、属性relationNameに関係名称である“進路構成軌道回路”を設定している。そして、関係設備名称と関連付けて変数equRelationに格納している。同様に、他の設備インスタンスを生成する処理を記述することができる。
【０１４８】
以上のようにして、対象となるオブジェクトが定義されたオブジェクトモデル（設備モデル）、ロジックが定義されたロジックモデル、及び各オブジェクトの関係が定義された関連モデル（設備関連モデル）を入力することによって、結合モデルを作成することができる。さらに、入力されたモデルに基づいて、入力されたロジックに基づくプログラム、及び定義されたオブジェクトを生成するプログラムを自動的に作成することができる。
【０１４９】
本発明の実施の形態によれば、情報制御システムの仕様を記述する場合に、設備のインスタンス情報、設備間の関係、及び設備の制御ロジックをそれぞれ異なるモデルで記述することが可能となるため、より簡潔に仕様を記述することができる。また、仕様の内容を容易に読み取ることができる。特に、設備の制御ロジックを設備インスタンスごとに定義する必要がないため、より効率的に仕様を記述できるようになる。
【０１５０】
また、本発明の実施の形態によれば、ロジックモデル間の依存関係を考慮して、ロジックモデルに基づいて生成されたロジックプログラムの実行を管理するため、他の設備の状態に依存する設備の状態についても、ロジックモデルの定義に従って、正しい演算結果を取得することができる。
【符号の説明】
【０１５１】
１０１    出力部
１０２    入力部
１０３    モデル作成部
１０４    プログラム生成部
１０５    結合モデル表示部
１０６    モデル結合部
１０７    結合モデル格納部
１０８    設備関連モデル格納部
１０９    設備モデル格納部
１１０    ロジックモデル格納部
１１１    モデル格納部
１１２    モデル編集部
１１３    ロジックプログラム生成部
１１４    ロジックモデル依存情報抽出部
１１５    ロジックプログラム生成情報格納部
１１６    ロジックモデル依存情報格納部
１１７    生成プログラム格納部
１１８    ロジックモデル階層情報作成部
１１９    ロジック実行管理プログラム生成部
１２０    ロジックモデル階層情報格納部
【図１】
2010250655.tif 000003
【図２】
2010250655.tif 000004
【図３】
2010250655.tif 000005
【図４】
2010250655.tif 000006
【図５】
2010250655.tif 000007
【図６】
2010250655.tif 000008
【図７】
2010250655.tif 000009
【図８Ａ】
2010250655.tif 000010
【図８Ｂ】
2010250655.tif 000011
【図８Ｃ】
2010250655.tif 000012
【図９】
2010250655.tif 000013
【図１０】
2010250655.tif 000014
【図１１】
2010250655.tif 000015
【図１２】
2010250655.tif 000016
【図１３】
2010250655.tif 000017
【図１４】
2010250655.tif 000018
【図１５】
2010250655.tif 000019
【図１６】
2010250655.tif 000020
【図１７】
2010250655.tif 000021
【図１８】
2010250655.tif 000022
【図１９】
2010250655.tif 000023
【図２０】
2010250655.tif 000024
【図２１】
2010250655.tif 000025
【図２２】
2010250655.tif 000026
【図２３】
2010250655.tif 000027
【図２４】
2010250655.tif 000028
【図２５】
2010250655.tif 000029