(57)【要約】【課題】  データの入出力を表現する複数のモデルの入出力の結合において、ユーザがモデル間の入出力データの整合性を確認する手間を低減する。【解決手段】  パーソナルコンピュータが、入出力を結合する対象のモデルおよびそれらモデル中のインタフェースブロックに含まれる入出力インタフェース情報を読み出す（ステップ２０３）。そして、これら読み出したモデル間のインタフェースブロックで、互いに名称が一致する部分を、当該モデル間の入力を結合する部分の候補と特定する（ステップ２０４）。そして、特定した候補の組のそれぞれについて、読み出した入出力インタフェース情報が互いに整合するかを、入出力インタフェース情報に基づいて判定し（ステップ２０５〜２０８）、整合する場合、当該インタフェースブロックの部分でモデルの入出力を結合し（ステップ２０８）、整合しない場合、結合不能の通知を行う（ステップ２０９）。【選択図】         図１２
2005338996.tif 000002
【特許請求の範囲】
【請求項１】
入出力を結合する対象である２つのモデルのそれぞれについての入出力インタフェース情報を記憶媒体から読み出す読み出し手段、
前記読み出し手段が読み出した前記２つのモデルのそれぞれについての入出力インタフェース情報が互いに整合するか否かを判定する判定手段、および
前記判定手段が整合すると判定した場合、前記入出力インタフェース情報に基づいて前記２つのモデルの入出力を結合する結合手段として、コンピュータを機能させるモデル自動結合プログラム。
【請求項２】
前記入出力インタフェース情報は、当該モデルの出力データ名および入力データ名のいずれかを有し、
前記判定手段は、前記２つのモデルのうち一方のモデルの入出力インタフェース情報中の出力データ名と他方のモデルの入出力インタフェース情報中の入力データ名とが対応することを、互いの入出力インタフェース情報が整合すると判定するための条件の１つとすることを特徴とする請求項１に記載のモデル自動結合プログラム。
【請求項３】
前記入出力インタフェース情報は、当該モデルの出力先として許可するモデルを限定する出力先限定情報を有し、
前記判定手段は、前記２つのモデルのうちデータ出力側のモデルの入出力インタフェース情報中の出力先限定情報によって限定されたモデルにデータ入力側のモデルが含まれることを、互いの入出力インタフェース情報が整合すると判定するための条件の１つとすることを特徴とする請求項１または２に記載のモデル自動結合プログラム。
【請求項４】
前記入出力インタフェース情報は、モデルの入力元として許可するモデルを限定する入力元限定情報を有し、
前記判定手段は、前記２つのモデルのうちデータ入力側のモデルの入出力インタフェース情報中の入力元限定情報によって限定されたモデルにデータ出力側のモデルが含まれることを、互いの入出力インタフェース情報が整合すると判定するための条件の１つとすることを特徴とする請求項１ないし３のいずれか１つに記載のモデル自動結合プログラム。
【請求項５】
前記モデルの入出力インタフェース情報は、当該モデルの一部として記憶媒体に記憶されることを特徴とする請求項１ないし４のいずれか１つに記載のモデル自動結合プログラム。
【請求項６】
モデルの入出力インタフェース情報は、当該モデルの他のモデルへの出力または他のモデルからの入力を表現するインタフェースブロックの付加情報として記憶媒体に記憶されることを特徴とする請求項５に記載のモデル自動結合プログラム。
【請求項７】
入出力を結合する対象の２つのモデルのどの部分の入力と出力とを結合するかを、これら２つのモデル間のインタフェースブロックの名称の対応関係に基づいて特定する特定手段を有することを特徴とする請求項６に記載のモデル自動結合プログラム。
【請求項８】
入出力を結合する対象である２つのモデルのそれぞれについての入出力インタフェース情報を記憶媒体から読み出す読み出し手段と、
前記読み出し手段が読み出した前記２つのモデルのそれぞれについての入出力インタフェース情報が互いに整合するか否かを判定する判定手段と、および
前記判定手段が整合すると判定した場合、前記入出力インタフェース情報に基づいて前記２つのモデルの入出力を結合する結合手段と、を備えたモデル自動結合装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ演算、データ入力およびデータ出力のうち少なくともいずれか１つの機能を実現する機能単位としてのブロック、およびブロック間の入出力関係を示すリンクの組み合わせとして記述されるモデルの複数について、それらの入出力を結合する技術に関する。
【背景技術】
【０００２】
従来より、例えば車両のエンジンＥＣＵの作動等、信号入出力制御のためのプログラムにおいては、開発者が直接そのプログラムのソースコードを記述せず、目的とするプログラムの機能を、より作成が簡易で視認性の良い「モデル」という形態で記述する場合がある（例えば特許文献１参照）。
【０００３】
開発者は、このモデルに対応したプログラム開発環境がインストールされたワークステーション、パーソナルコンピュータ等を用い、このモデルによって定義されたデータの入出力のシミュレーションを行い、また、モデルから自動的にソースコードを生成する。モデルからソースコードを生成する機能を実現するためのプログラムは、コード生成ツールと呼ばれる。コード生成ツールは、モデル開発環境に組み込まれている場合が多い。モデルからソースコードを生成するようなプログラム開発は、モデルベース開発と呼ばれる。
【０００４】
モデルベース開発に対応したプログラム開発環境としては、例えば、Ｍｏｔｈｗｏｒｋｓ（登録商標）社のＭａｔｌａｂ（登録商標）がある。Ｍａｔｌａｂ（登録商標）においては、開発者はＭａｔｌａｂ（登録商標）に対する付加機能を提供するソフトウェアであるＳｉｍｕｌｉｎｋ（登録商標）を用いて、目的とするデータ入出力を表現するモデルを記述する。
【０００５】
モデルは、データ演算、データ入力およびデータ出力のうち少なくともいずれか１つの機能を実現する機能単位としてのブロック、およびブロック間の入出力関係を示すリンクの組み合わせとして記述される。すなわち、複数のブロックがリンクによって繋ぎ合わされることにより、車両制御等のデータ入出力を表現する集合体がモデルである。
【０００６】
ブロックの具体例としては、データの入力（インポート）および出力の一方または両方を表現する。データの入力や出力の内容は、そのブロックに割り当てられた所定の規則に基づいたものとなっている。ブロックとしては、例えば入力したデータを変数とするサイン関数の値を出力することを表現するブロック、ファイルからデータを読み出すことを表現するブロック、入力したデータに対する特定の四則演算を行った結果を出力することを表現するブロック、複数のブロックおよびリンクがグループ化された上位のブロックとしてのサブシステム等がある。
【０００７】
リンクは、あるブロックの出力と他のブロックの入力との繋がりを表現する。具体的には、サイン関数を表現するブロックの出力および階段関数を表現するブロックの出力のそれぞれから、積演算ブロックのそれぞれの入力へリングが繋がっている場合、サイン関数の値と階段関数の値とが積演算の対象の項となることが表されている。
【０００８】
このようなモデルベース開発では、開発者がモデルを作成し、このモデルに基づいた入出力のシミュレーションを実行し、また、モデルからコード生成ツールを用いてソースコードを自動生成する。
【特許文献１】特開平２０００−２０２９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このようなモデル開発環境においては、あらかじめ複数のモデルを異なる作成者が作成し、後にその複数のモデルの入出力を結合することにより、これら複数のモデルを１つのモデルにまとめることが考えられる。
【００１０】
このような場合、例えば、Ｓｉｍｕｌｉｎｋ（登録商標）を用いて、後に結合するための複数のモデルを作成するとき、それぞれのモデルにおいて、結合する入出力のためのデータを、Ｄａｔａ  Ｓｔｏｒｅ  Ｒｅａｄブロック、Ｄａｔａ  Ｓｔｏｒｅ  Ｗｒｉｔｅブロックとして作成しておくことが考えられる。このような、モデル間の結合のために作成された上記ブロックをインタフェースと呼ぶ。
【００１１】
また、このようにして作成したインタフェースについての入出力データ名等の入出力インタフェース情報は、別途インタフェース仕様書として紙またはコンピュータ上で文書化することが考えられる。
【００１２】
このようにした場合、開発者の手による実際のモデル間の結合手順は以下の（１）〜（３）のようになると考えられる。
（１）結合対象の各モデルのインタフェースとインタフェース仕様書の記述内容が等しいことを確認する。
（２）インタフェース仕様書に基づいて各モデル中の出力側のインタフェースと対応する入力側のインタフェースとが互いに整合しているかを検証する。
（３）インタフェース間で整合していれば、それらインタフェースの入出力を結合する。整合していなければ、いずれかのブロックを、インタフェースが整合するよう修正する。
【００１３】
しかし、このようなモデル結合の方法では、結合時に人間がインタフェース仕様書を用いてインタフェース間の整合性を目視で検証する必要があり、煩雑である。
【００１４】
本発明は上記点に鑑み、データの入出力を表現する複数のモデルの入出力の結合において、ユーザがモデル間の入出力データの整合性を確認する手間を低減することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するための本発明の特徴は、モデル自動結合プログラムを実行させることで、コンピュータを、入出力を結合する対象である２つのモデルのそれぞれについての入出力インタフェース情報を記憶媒体から読み出し、読み出した２つのモデルのそれぞれについての入出力インタフェース情報が互いに整合するか否かを判定し、整合すると判定した場合、入出力インタフェース情報に基づいて２つのモデルの入出力を結合するように機能させることである。
【００１６】
このようにすることで、データの入出力を表現する複数のモデルの入出力の結合において、コンピュータが記憶媒体から読みだした入出力インタフェース情報の整合性あることを判定し、その判定に基づいて対象となる２つのモデルを結合するので、ユーザがモデル間の入出力データの整合性を確認する手間を低減することができる。
【００１７】
また、入出力インタフェース情報は、当該モデルの出力データ名および入力データ名のいずれかを有し、モデル自動結合プログラムは、コンピュータを、２つのモデルのうち一方のモデルの入出力インタフェース情報中の出力データ名と他方のモデルの入出力インタフェース情報中の入力データ名とが対応することを、互いの入出力インタフェース情報が整合すると判定するための条件の１つとするよう機能させてもよい。このようにすることで、入出力データ名の対応に基づいた入出力データの整合性の判定が可能となる。
【００１８】
なお、データ名が対応するとは、一致する場合、あらかじめ定められた一致以外の対応関係を満たす場合の両方を含む概念である。
【００１９】
また、入出力インタフェース情報は、当該モデルの出力先として許可するモデルを限定する出力先限定情報を有し、モデル自動結合プログラムは、コンピュータを、２つのモデルのうちデータ出力側のモデルの入出力インタフェース情報中の出力先限定情報によって限定されたモデルにデータ入力側のモデルが含まれることを、互いの入出力インタフェース情報が整合すると判定するための条件の１つとするよう機能させてもよい。このようにすることで、結合対象のモデルが出力データの出力先として許可されているか否かに基づいた入出力データの整合性の判定が可能となる。
【００２０】
なお、限定とは、特定の対象のみを選ぶこと、および特定の対象以外のすべてを選ぶことを含む概念である。
【００２１】
また、入出力インタフェース情報は、モデルの入力元として許可するモデルを限定する入力元限定情報を有し、モデル自動結合プログラムは、コンピュータを、２つのモデルのうちデータ入力側のモデルの入出力インタフェース情報中の入力元限定情報によって限定されたモデルにデータ出力側のモデルが含まれることを、互いの入出力インタフェース情報が整合すると判定するための条件の１つとするよう機能させてもよい。このようにすることで、結合対象のモデルが入力データの入力元として許可されているか否かに基づいた入出力データの整合性の判定が可能となる。
【００２２】
また、モデル自動結合プログラムを実行することによってコンピュータが読み出すモデルの入出力インタフェース情報は、当該モデルの一部として記憶媒体に記憶されるようになっていてもよい。このようになっていることで、モデルと当該モデルに対応する入出力インタフェース情報との一体性が向上し、モデルの入出力データと入出力インタフェース情報との同一性が保たれる可能性が向上する。
【００２３】
また、モデル自動結合プログラムを実行することによって、コンピュータが読み出すモデルの入出力インタフェース情報は、当該モデルの他のモデルへの出力または他のモデルへの入力を表現するインタフェースブロックの付加情報として記憶媒体に記憶されるようになっていてもよい。
【００２４】
また、モデル自動結合プログラムを実行することによって、コンピュータが、入出力を結合する対象の２つのモデルのどの部分の入力と出力とを結合するかを、これら２つのモデル間のインタフェースブロックの名称の対応関係に基づいて特定するようになっていてもよい。このようになっていることで、結合する２つのモデルのどの部分の入出力を結合するかを自動的に特定することが可能となる。
【００２５】
また、上記したモデル自動結合プログラムの発明の特徴は、モデル自動結合装置としても実現可能である。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の一実施形態について説明する。図１に、本実施形態に係るモデル自動結合装置としてのパーソナルコンピュータ１の構成を示す。このパーソナルコンピュータ１は、ディスプレイ１１、入力装置１２、ＲＡＭ１３、ＲＯＭ１４、ＨＤＤ（ハードディスクドライブ）１５、ＣＰＵ（演算装置に相当する）１６等から構成される。
【００２７】
ディスプレイ１１は、ＣＰＵ１６（コンピュータに相当する）から受けた映像信号を、ユーザ（開発者）に対して映像として表示する。
【００２８】
入力装置１２は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をＣＰＵ１６に出力する。
【００２９】
ＲＡＭ１３は読み出し、書き込み可能な揮発性メモリであり、ＲＯＭ１４は読み出し専用の不揮発性メモリであり、ＨＤＤ１５は読み出し、書き込み可能な不揮発性メモリである。ＲＯＭ１４、ＨＤＤ１５には、ＣＰＵ１６が読み出して実行するプログラム等があらかじめ記憶されている。またＨＤＤ１５には、後述するモデルが記憶されている。
【００３０】
ＲＡＭ１３は、ＣＰＵ１６がＲＯＭ１４、ＨＤＤ１５に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域、および作業用のデータを一時的に保存するための記憶領域として用いられる。
【００３１】
ＣＰＵ１６は、パーソナルコンピュータ１に電源が投入されることによって起動すると、ＲＯＭ１４から所定のブートプログラムを読み出して実行し、このブートプログラムに規定されるオペレーティングシステム（以下ＯＳと記す）その他のプログラムをＨＤＤ１５から読み出して実行することにより、起動処理を行う。起動処理以後、電源が遮断されるまで、ＣＰＵ１６は、入力装置１２からの信号、ＯＳによって予め定められたスケジュール等に基づいて、ＨＤＤ１５に記録されている各種プログラムを当該ＯＳ上のプロセスとして実行する。また、上記した起動処理およびプロセスにおいて、ＣＰＵ１６は必要に応じて入力装置１２から信号の入力を受け付け、またディスプレイ１１に映像信号を出力し、またＲＡＭ１３、ＨＤＤ１５に対してデータの読み出し／書き込みの制御を行う。
【００３２】
次に、図２に、ＣＰＵ１６が所定のプログラムを実行することによりこのパーソナルコンピュータ１が実現する機能を示す。パーソナルコンピュータ１は、モデル記憶機能２１、インタフェース整合確認機能２２、自動結合機能２３等を実現するようになっている。
【００３３】
モデル記憶機能２１は、ユーザによる入力装置１２の操作等に基づいて、結合のための部品としてのモデル２５、２６、２７をＨＤＤ１５に記憶する。この機能は、例えばＳｉｍｕｌｉｎｋ（登録商標）のモデル作成機能を用いることで実現可能である。なお、ここでＨＤＤ１５に記憶されるモデルには、後述するように、ベース部品としてのモデルと、置き換え部品としてのモデルがある。
【００３４】
インタフェース整合確認機能２２は、ユーザによる入力装置１２の操作等に基づいて、結合する対象のモデルの指定の情報が含まれた結合モデルリスト２４を読み取り、これら結合対象のモデルに関する入出力インタフェース情報を、モデル記憶機能２１によって記憶されたＨＤＤ１５中のモデルから読み取り、結合対象のモデルのどの出力部分とどの入力部分とを結合するかを検索し、さらに、この検索結果の入出力部分において、これらモデル間の入出力インタフェースが整合するか否かを判定する。このとき、整合しないと判定した場合は、インタフェース不整合の通知２８をディスプレイ１１等に出力する。なお、本実施形態においては、ベース部品としてのモデルの一部を別の置き換え部品としてのモデルで置き換えることで、モデル同士の結合を実現する。
【００３５】
自動結合機能２３は、インタフェース整合確認機能２２の結果、これら間の入出力インタフェースが整合するとなった場合、入出力インタフェース情報に基づいて前記２つのモデルの入出力を結合し、結合結果の結合モデル２８をＨＤＤ１５に出力する。
【００３６】
以下、このパーソナルコンピュータ１の上記した機能について詳述する。
【００３７】
図３に、モデル記憶機能２１によってＨＤＤ１５に記憶されるベース部品としてのモデルの一例が表示されたウインドウを示す。なお、ウインドウとは、ディスプレイ１１に表示される周知の表示図形である。ユーザは、入力装置１２を用いてインタラクティブにこのウインドウ内に表示されたモデルの編集をすることができる。なお、このモデルの名称はｐａｔであり、モデルの名称の情報は当該モデルと共にＨＤＤ１５に記憶されている。
【００３８】
図３のウインドウ中に示されたモデルは、定数ブロック３１、定数ブロック３２、インタフェースブロック３３、ＦＢＣｔｒｌサブシステム３４、インタフェースブロック３５、スコープブロック３６、およびそれらを繋ぐリンクを有している。
【００３９】
図中に長方形または円形で表されたものがブロックである。ブロックは、入力端および出力端のいずれかまたは両方を有し、所定のデータ処理を行う。そのデータ処理は、当該ブロックが入力端を有していればその入力端から受けたデータに基づいたものとなる。また、当該ブロックが出力端を有していれば、当該データ処理の結果を出力端から出力する。
【００４０】
また、ブロック間を繋ぐ矢印線がリンクを表している。リンクは、ブロックの出力端を始点とし、ブロックの入力端を終点とするようになっている。なお、リンクの始点および終点とは、それぞれ当該リンクを表す矢印線の矢印のない端点および矢印のある端点をいう。
【００４１】
そして、あるブロックＡの出力端とあるブロックＢの入力端とのリンクによる繋がりは、当該ブロックＡの当該出力端からの出力を当該ブロックＢの当該入力端において入力することを表す。すなわち、リンクは、ブロック間の入出力の関係を表すものである。
【００４２】
図３のモデルでは、定数ブロック３１および定数ブロック３２は、それぞれＴａｒｇｅｔＶａｌｕｅおよびＩｎｉｔＳｗｉｔｃｈという名称のデータを出力する。そして、インタフェースブロック３３がそれらデータを入力して出力する。そして、ＦＢＣｔｒｌサブシステム３４がインタフェースブロック３３から出力されたデータを入力し、これらデータを加工した結果のデータを出力する。そして、インタフェースブロック３５は、ＦＢＣｔｒｌサブシステム３４から出力されたデータを入力して出力する。そしてスコープブロック３６は、インタフェースブロック３５から出力されたデータを入力し、当該データの値の表示をディスプレイ１１に行わせる。
【００４３】
なお、サブシステムは、複数のブロックおよびリンクがグループ化されたブロックである。図４に、ＦＢＣｔｒｌサブシステム３４の内部構成が表されたウインドウを示す。
【００４４】
ＦＢＣｔｒｌサブシステム３４は、インタフェースブロック３４１、減算ブロック３４２、増幅ブロック３４３、遅延ブロック３４４、スイッチブロック３４５、定数ブロック３４６、インタフェースブロック３４７、およびそれらを繋ぐリンクを有している。
【００４５】
インタフェースブロック３４１は、外部からの２つのデータ、すなわちインタフェースブロック３３の出力データを入力して出力する。そして、減算ブロック３４２は、インタフェースブロック３３の出力のうち、ＴａｒｇｅｔＶａｌｕｅという名称を有するデータと、遅延ブロック３４４からの出力とを入力し、ＴａｒｇｅｔＶａｌｕｅから遅延ブロック３４４の出力データの値を減算し、その結果を出力する。
【００４６】
増幅ブロック３４３は、減算ブロック３４２の出力データの値を増幅して出力する。そして遅延ブロック３４４は、増幅ブロック３４３の出力を所定時間分遅延させて出力する。スイッチブロック３４５は、インタフェースブロック３３の出力のうち、ＩｎｉｔＳｗｉｔｃｈという名称を有するデータの値が１と０のいずれを示しているかに基づいて、増幅ブロック３４３の出力と定数ブロック３４６の出力であるゼロ値とのいずれかを出力する。インタフェースブロック３４７は、スイッチブロック３４５の出力を入力し、出力する。この出力がＦＢＣｔｒｌサブシステム３４の出力に相当する。
【００４７】
ここで例示したブロックのうち、インタフェースブロック３３、３５、は、データの入出力としては、入力した信号をそのまま出力するのみである。しかし、これらインタフェースブロックは、他のモデルへの出力または他のモデルからの入力を複数まとめ、これら入出力（「入力のみ」、「出力のみ」、および「入力および出力」のすべてを含む概念をいう）のインタフェース情報を付加情報として有している。
【００４８】
図５および図６に、それぞれインタフェースブロック３３およびインタフェースブロック３４１の付加情報が表されたウインドウ表示を示す。これら付加情報のウインドウ表示は、図３および図４のようなモデルのウインドウ表示において、マウスによるインタフェースブロック３３およびインタフェースブロック３４１のダブルクリックを行う等、入力装置１２を用いた所定の操作に基づく信号をＣＰＵ１６が入力装置１２から受けることに基づいて、ＣＰＵ１６がディスプレイ１１を制御することで実現する。
【００４９】
この付加情報のウインドウには、付加情報として、インタフェース名、公開・参照情報設定、インタフェース数、変数毎の変数名、アクセス管理情報等が表示される。
【００５０】
インタフェース名とは、インタフェースブロックの名称である。図５、図６に示す付加情報においては、インタフェース名は、共にＩＦＢＣｔｒｌＩｎである。
【００５１】
公開・参照設定とは、当該インタフェースブロックが、自己が含まれるモデルと結合する他のモデルからデータを入力するか、あるいはデータを当該他のモデルに出力するかを示す情報である。データを入力する場合、公開・参照設定の値は参照となり、データを出力する場合、公開・参照設定の値は公開となる。図５、図６に示す付加情報においては、公開・参照設定は、それぞれ公開、参照である。
【００５２】
インタフェース数とは、当該インタフェースブロックと当該他のモデルとの間で何種類のデータの入出力があるかを示す情報である。図５、図６に示す付加情報においては、インタフェース数は、共に２である。
【００５３】
変数毎の変数名とは、当該インタフェースブロックと当該他のモデルとの間で入出力を行うデータの、種類毎の名称を示す情報である。変数名は、公開変数名および参照変数名の２つに分類される。そして、当該インタフェースブロックが出力を行うデータの名称は公開変数名として、当該インタフェースブロックが入力を行うデータの名称は参照変数名として記述される。図５に示す付加情報においては、１番目の参照変数名がＴａｒｇｅｔＶａｌｕｅ、２番目の参照変数名がＩｎｉｔＳｗｉｔｃｈとなっている。また、図６に示す付加情報においては、１番目の公開変数名がＴａｒｇｅｔＶａｌｕｅ、２番目の公開変数名がＩｎｉｔＳｗｉｔｃｈとなっている。
【００５４】
アクセス管理情報とは、データの出力先として許可するモデルを限定する出力先限定情報、およびデータの入力元として許可するモデルを限定する入力元限定情報のうち、少なくとも１つを含む情報である。図５、図６においては、入力元限定情報としての参照可能部品名は共にｐａｔであり、出力先限定情報としての公開可能部品名は共にＦＢＣｔｒｌ  ＳｕｂｓｙｓｔｅｍおよびＦＢＣｔｒｌ２Ｓｕｂｓｙｓｔｅｍである。  
【００５５】
なお、この付加情報ウインドウが表示されている状態において、ユーザがマウスやキーボードを用いて当該表示されている付加情報の変更を行うための操作を行うと、ＣＰＵ１６はその操作を検出して、操作に基づいた付加情報の変更を行い、その変更をウインドウ表示に反映させる。このようになっているので、モデルの開発者は、モデルを編集して入出力データ数や入出力データ種類の変更を行ったとき、当該モデルのインタフェースブロックの付加情報を入力装置１２を操作して変更することができる。
【００５６】
また、ユーザが付加情報を変更したときには、ＣＰＵ１６は、当該インタフェースブロックのバージョンを改変するようにしてもよい。例えば、インターフェース名称が変更された場合は、バージョンを初期値（例えば１．００）に初期化し、入出力データ名称が変更された場合は、それまでのバージョンから固定量だけバージョンを進める（例えば１．０２から１．０３へ）ようになっていてもよい。なお、このバージョンの情報は、付加情報の一部として記憶される。
【００５７】
図３〜図６に示す通り、インタフェースブロック３３はＴａｒｇｅｔＶａｕｅおよびＩｎｉｔＳｗｉｔｃｈという名称の２種類のデータを出力するようになっており、インタフェースブロック３４１については、入力する２種類のデータ名称がＴａｒｇｅｔＶａｌｕｅおよびＩｎｉｔＳｗｉｔｃｈであると付加情報中に規定されている。そして、アクセス管理情報によれば、インタフェースブロック３３はデータをＦＢＣｔｒｌサブシステム３４に出力することが許可されており、インタフェースブロック３４１はデータをｐａｔから入力することが許可されている。
【００５８】
したがって、インタフェースブロック３３の出力データをインタフェースブロック３４１が入力することができる。すなわち、モデルとしてのｐａｔとモデルとしてのＦＢＣｔｒｌサブシステム３４との入出力インタフェース情報が互いに整合しており、インタフェースブロック３３とインタフェースブロック３４１とは結合可能である。
【００５９】
次に、図７に、モデル記憶機能２１によってＨＤＤ１５に記憶される置き換え部品としてのモデルを複数含む、ｐａｔ２という名称のモデルが表されたウインドウを示す。
【００６０】
モデルｐａｔ２は、ＦＢＣｔｒｌ２サブシステム４１およびＦＢＣｔｒｌ３サブシステム４２を有している。これらサブシステムが、置き換え部品としてのモデルである。
【００６１】
図８にＦＢＣｔｒｌ２サブシステム４１の内部構成を表すウインドウ表示を、図９にＦＢＣｔｒｌ３サブシステム４２の内部構成を示すウインドウ表示を、それぞれ示す。
【００６２】
図８に示す通り、ＦＢＣｔｒｌ２サブシステム４１は、インタフェースブロック４１１、スイッチブロック４１２、定数ブロック４１３、インタフェースブロック４１４、およびそれらを繋ぐリンクを有している。このような構成により、ＦＢＣｔｒｌ２サブシステム４１は、２系統のデータをインタフェースブロック４１１が外部から入力して出力し、スイッチブロック４１２は、当該出力のうちＩｎｉｔＳｗｉｃｈという名称のデータの値が１か０かに基づいて、インタフェースブロック４１１の出力のうちＴａｒｇｅｔＶａｌｕｅと、定数ブロック４１３の出力である定数ゼロとのいずれかを出力し、インタフェースブロック４２７はスイッチブロック４２５の出力を入力して外部に出力する。
【００６３】
また、ＦＢＣｔｒｌ３サブシステム４２の内部構成は、図４に示したＦＢＣｔｒｌサブシステム３４において、インタフェースブロック３４１をインタフェースブロック４２１に、減算ブロック３４２を減算ブロック４２２に、増幅ブロック３４３を増幅ブロック４２３に、遅延ブロック３４４を遅延ブロック４２４に、スイッチブロック３４５をスイッチブロック４２５に、定数ブロック３４６を定数ブロック４２６に、インタフェースブロック３４７をインタフェースブロック４２７に、それぞれ置き換えたものと同等である。      
【００６４】
ただし、インタフェースブロック４２１および４２７の付加情報の内容は、それぞれインタフェースブロック３４１および３４７の付加情報の内容とは異なる。
【００６５】
図１０および図１１に、それぞれインタフェースブロック４１１の入出力インタフェース情報およびインタフェースブロック４２１の出力インタフェース情報のウインドウ表示を示す。
【００６６】
これによれば、インタフェースブロック４１１の名称はＩＦＢＣｔｒｌＩｎであり、公開・参照設定は参照であり、入力データ数は２であり、入力データ名はＴａｒｇｅｔＶａｌｕｅおよびＩｎｉｔＳｗｉｔｃｈであり、モデルｐａｔの出力のみからデータを入力することが許可されている。
【００６７】
また、インタフェースブロック４２１の名称はＩＦＢＣｔｒｌＩｎであり、公開・参照設定は参照であり、入力データ数は２であり、入力データ名はＭｏｋｕｈｙｏｕおよびＳｗであり、モデルｐａｔの出力のみからデータを入力することが許可されている。
【００６８】
次に、インタフェース整合確認機能２２および自動結合機能２３の機能を実現するモデル自動結合プログラム２００について説明する。図１２に、このモデル自動結合プログラム２００のフローチャートを示す。ＣＰＵ１６は、ユーザによるモデル自動結合プログラム２００の実行のための入力装置１２の所定の操作を検出することで、モデル自動結合プログラム２００の実行を開始する。
【００６９】
まずステップ２０１では、構成要求の取り込み、すなわち結合モデルリスト２４の読み込みを行う。結合モデルリスト２４の読み込みは、ユーザによる入力装置１２を用いた操作に基づいて、そのリストそのものまたはそのリストのＨＤＤ１５中の所在の情報をＣＰＵ１６が検知することに基づいて行われる。
【００７０】
図１３に結合モデルリスト２４の一例を表形式で示す。この結合モデルリスト２４は、車両のエンジン制御のためのモデルを、どの組み合わせで結合するかを指定するための情報である。この結合モデルリスト２４は、複数のモデルの結合後のモデル名称と、複数の選択項目毎にある、複数の部品の選択肢のうち、どれに対応したモデルを結合対象として選ぶかについての指定の情報を含んでいる。
【００７１】
図１３中、最上部の右欄５１に含まれる文字列ｅｆｉｍｄｌが、結合後のモデル名称である。また、複数の選択項目とは、表中の一列目に表す区分であり、具体的には仕向け、エンジン気筒数、噴射方式、空燃費フィードバック（図中ではＦ／Ｂと記す）制御、トランスミッションの５つである。また、選択項目毎の部品の選択肢とは、表中の２列目に示す各選択項目毎の区分であり、例えば、エンジン気筒数については、６気筒であるか８気筒であるかを示している。また、これら選択肢にはそれぞれ１つのモデルが対応している。図１３においては、表中の２列目の各選択肢には、表中の３列目における右隣に記載されたモデル名称が、当該選択肢に対応するモデルを示している。
【００７２】
また、どの選択肢が選ばれたかの情報は、表中の５列目おいて丸印または２重丸印が付された行についての選択肢が選択されたことになる。なお、２重丸印が付された行のモデルはベース部品であり、丸印が付された行のモデルは置き換え部品である。
【００７３】
図１３の場合、日本向けの仕向けのベース部品であるモデルｅｆｉｍｄｌ＿ｕｓｅ＿ｊｐ、エンジン気筒数が６気筒用の置き換え部品であるモデルｃｙｌｉｎｄｅｒ＿６、燃料噴射方式が独立噴射となる置き換え部品であるモデルｉｎｊ＿ｉｎｄｅｐｅｎｄｅｎｃｅ、空燃比フィードバック制御有り用の置き換え部品であるモデルａｂｆ＿ｆｂｃｔｒｌ、およびトランスミッション方式がＣＶＴ用の置き換え部品であるモデルｔｒａｎｓ＿ｃｖｔの５つのモデルが、結合対象のモデルであることが、ＣＰＵ１６によって認識されるようになっている。
【００７４】
続いてステップ２０２では、ステップ２０１で結合対象として指定された構成部品としての複数のモデルをＨＤＤ１５から読み込む。
【００７５】
続いてステップ２０３では、構成部品内のインタフェースブロックの検索を行う。具体的には、ステップ２０２で読み込んだモデルのうち、置き換え部品に含まれるインタフェースブロックをＲＡＭ１３上の所定の領域にインタフェースリストとしてリストアップする。
【００７６】
続いてステップ２０４では、当該インタフェースリスト中のインタフェースブロックのうちの少なくとも１つの名称に対応する名称のインタフェースブロックがベース部品としてのモデル中に存在するか否かを判定する。なお、本実施形態においては、「名称に対応する名称」とは「名称と一致する名称」をいう。なお、この判定は、各インタフェースブロック中の付加情報に基づいて行う。
【００７７】
ただし、ここでは、インタフェースリスト中のインタフェースブロックとベース部品中のインタフェースブロックとの間で、名称同士が対応し、さらに公開、参照設定同士が対応するインタフェースブロックがあるか否かを判定するようになっていてもよい。なお、「公開、参照設定同士が対応する」とは、一方が公開の設定ならもう一方が参照になっているというように、公開、参照設定が対の関係になっていることをいう。
【００７８】
そのようなインタフェースブロックがインタフェースリスト中に１つもない場合、続いてステップ２１０の処理を実行し、そのようなインタフェースブロックがインタフェースリストにある場合、続いてステップ２０５の処理を実行する。
【００７９】
ステップ２１０では、結合可能な部品はすべて結合されたことを、ディスプレイ１１にその旨の表示をすることでユーザに通知し、モデル自動結合プログラム２００の実行を終了する。
【００８０】
ステップ２０５では、ステップ２０４でベース部品中のインタフェースブロックと名称等が対応したインタフェースリスト中のインタフェースブロックを１つ抽出し、その抽出したインタフェースブロックをインタフェースリストから削除する。そして、それら対応する２つのインタフェースブロックの付加情報に基づいて、それらのインタフェース数が一致するか否かを判定する。すべて一致する場合は続いてステップ２０６の処理を実行し、１つでも一致しないものがある
場合は続いてステップ２０９の処理を実行する。
【００８１】
ステップ２０６では、これら対応する２つのインタフェースブロックの付加情報に基づいて、公開参照変数名のすべてが一致するか否かを判定する。一致する場合続いてステップ２０７の処理を実行し、一致しない場合続いてステップ２０９の処理を実行する
ステップ２０７では、これら対応する２つのインタフェースブロックが互いにアクセス制限を満たすか否かを判定する。互いにアクセス制限を満たすとは、出力側のモデルにおいて入力側のモデルへの出力が許可されており、入力側のモデルにおいて、出力側のモデルからの入力が許可されていることをいう。具体的には、出力側のインタフェースブロックの付加情報中の公開可能部品名に、入力側のインタフェースブロックを有する部品名称が記載されており、かつ、入力側のインタフェースブロックの付加情報中の参照可能部品名に、出力側のインタフェースブロックを有する部品名称が記載されていることをいう。
【００８２】
アクセス制限を満たす場合、続いてステップ２０８の処理を実行し、満たさない場合続いてステップ２０９の処理を実行する。
【００８３】
ステップ２０８では、当該２つのインタフェースブロック間をリンクで結線することで、当該２つのインタフェースブロックを含む部品の結合を実現する。ステップ２０８の後、再びステップ２０４の実行に戻る。
【００８４】
ステップ２０９では、インタフェース不整合の通知２８をディスプレイ１１に出力し、モデル自動結合プログラム２００の実行を終了する。
【００８５】
以下、このようなモデル自動結合プログラム２００のＣＰＵ１６による実行例を示す。この例においては、図１３に例示したような結合モデルリスト２４によって選択されたベース部品は、図３に示したモデルｐａｔであり、選択された置き換え部品は、図８に示したＦＢＣｔｒｌ２サブシステム４１、または図９に示したＦＢＣｔｒｌ３サブシステム４２であるとする。
【００８６】
まず、ベース部品のモデルｐａｔにＦＢＣｔｒｌ２サブシステム４１を結合することが結合モデルリスト２４によって指定された場合、ＣＰＵ１６は、ステップ２０３で、ＦＢＣｔｒｌ２サブシステム４１中のインタフェースブロックを検索することで、インタフェースブロック４１１およびインタフェースブロック４１４をインタフェースリストとしてリストアップする。
【００８７】
そして、ステップ２０４で、まずインタフェースブロック４１１とモデルｐａｔ中のインタフェースブロック３３との名称が一致し、かつ公開・参照が一致していると判定し（図５および図１０参照）、これら２つのインタフェースブロックについて、当該ブロックの付加情報に基づいてステップ２０５、２０６、２０７の判定を行う。ここでは、インタフェースブロック３３とインタフェースブロック４１１とでは、データ数、各入出力データの名称が一致する。そして、アクセス制限情報において、インタフェースブロック４１１はモデルｐａｔを入力元とすることが許可されており、かつ、インタフェースブロック３３はＦＢＣｔｒｌ２サブシステム４１を出力先とすることが許可されている。
【００８８】
したがって、ステップ２０４〜２０６の判定はすべて肯定となり、ステップ２０８で、ＣＰＵ１６は、これらインタフェースブロック３３の出力部分を、インタフェースブロック４１１の同じ名称の入力部分に結合する。
【００８９】
そして、続いてステップ２０４に戻り、インタフェースリストに残ったインタフェースブロック４１４とモデルｐａｔ中のインタフェースブロック３５との名称（ＩＦＢＣｔｒｌＯｕｔ）が一致し、かつ公開・参照が対の関係になっていると判定した場合、これら２つのインタフェースブロックについて、当該ブロックの付加情報に基づいてステップ２０５、２０６、２０７の判定を行う。そして、ステップ２０４〜２０６の判定がすべて肯定なら、ステップ２０８でインタフェースブロック３５の入力とインタフェースブロック４１４との出力とを結合する。
【００９０】
そして、インタフェースリスト中にはもうインタフェースブロックが残っていないので、ステップ２０４の判定が否定となり、ステップ２１０で、結合可能な部品はすべて結合された旨の通知が行われ、モデル自動結合プログラム２００の実行が終了する。
【００９１】
また、ベース部品のモデルｐａｔにＦＢＣｔｒｌ３サブシステム４２を結合することが結合モデルリスト２４によって指定された場合、ＣＰＵ１６は、ステップ２０３で、ＦＢＣｔｒｌ３サブシステム４２中のインタフェースブロックを検索することで、インタフェースブロック４２１およびインタフェースブロック４２７をインタフェースリストとしてリストアップする。
【００９２】
そして、ステップ２０４で、まずインタフェースブロック４２１とモデルｐａｔ中のインタフェースブロック３３との名称が一致し、かつ公開・参照が対の関係になっていると判定し（図５および図１１参照）、これら２つのインタフェースブロックについて、当該ブロックの付加情報に基づいてステップ２０５、２０６、の判定を行う。ここでは、インタフェースブロック３３とインタフェースブロック４２１とでは、入出力データ数が一致する。しかし、入出力データの名称が異なる。したがって、ＣＰＵ１６は、ステップ２０６で否定と判定し、ステップ２０９で結合が不可能である通知を行い、モデル自動結合プログラム２００の実行を終了する。
【００９３】
ＣＰＵ１６が以上のようなモデル自動結合プログラム２００を実行することで、パーソナルコンピュータ１は、ユーザの指定による結合モデルリスト２４に基づいて（ステップ２０１参照）、入出力を結合する対象のモデルを読み出し（ステップ２０２参照）、さらにそれらモデル中のインタフェースブロックに含まれる入出力インタフェース情報をＨＤＤ１５から読み出す（ステップ２０３参照）。
【００９４】
これら読み出したモデル間のインタフェースブロックで、互いに名称が一致する（または名称が一致し、かつ公開・参照設定が対応する）部分において、当該モデル間の入力と出力を結合する部分の候補であると特定する（ステップ２０４参照）。
【００９５】
そして、上記特定した候補の組のそれぞれについて、読み出した入出力インタフェース情報が互いに整合するか否かを、当該インタフェースブロック間の入出力データ数（ステップ２０５参照）、データ名（ステップ２０６参照）、アクセス制限情報（ステップ２０７）等に基づいて判定し、整合する場合、当該インタフェースブロックの部分でモデルの入出力を結合する（ステップ２０８参照）。そして、整合しない場合、結合不能メッセージを出力する（ステップ２０９参照）。
【００９６】
このように、パーソナルコンピュータ１が、データの入出力を表現する複数のモデルの入出力の結合において、ＨＤＤ１５から読みだした入出力インタフェース情報の整合性あることを判定し、その判定に基づいて対象となる２つのモデルを結合するので、ユーザがモデル間の入出力データの整合性を確認する手間を低減することができる。
【００９７】
また、入出力インタフェース情報は、当該モデルのインタフェースブロックの付加情報が記憶されていることで、モデルと当該モデルに対応する入出力インタフェース情報との一体性が向上し、モデルの入出力データと入出力インタフェース情報との同一性が保たれる可能性が向上する。
【００９８】
また、入出力を結合する対象の２つのモデルのどの部分の入力と出力とを結合するかを、これら２つのモデル間のインタフェースブロックの名称の対応関係に基づいて特定するようになっていることで、結合する２つのモデルのどの部分の入出力を結合するかを自動的に特定することが可能となる。
【００９９】
なお、本実施形態においては、ＨＤＤ１５が記憶媒体に相当する。
【０１００】
また、ＣＰＵ１６が、モデル自動結合プログラム２００のステップ２０１および２０２の処理を実行することで、読み出し手段として機能する。
【０１０１】
また、ＣＰＵ１６が、モデル自動結合プログラム２００のステップ２０５、２０６、および２０７の処理を実行することで、判定手段として機能する。
【０１０２】
また、ＣＰＵ１６が、モデル自動結合プログラム２００のステップ２０８を実行することで、結合手段として機能する。
【０１０３】
また、ＣＰＵ１６が、モデル自動結合プログラム２００のステップ２０３、２０４を実行することで、特定手段として機能する。
【０１０４】
なお、上記した実施形態においては、モデル自動結合プログラム２００のステップ２０６で、各入出力データ名が完全に一致している場合に、インタフェースの整合性がある条件の１つを満たすようになっているが、必ずしも入出力データ名は完全一致していなくてもよい。例えば、あらかじめそのように対応関係を規定していれば、先頭の５文字のみが一致しているだけでもよい。すなわち、入出力データ名は、あらかじめ定められた対応関係を満たしていれば、入出力インタフェース情報の整合性の条件の１つを満たすようになっていれば足りる。
【０１０５】
また、上記した実施形態においては、アクセス管理情報には、入力元として許可する対象のモデル名のリスト、または、出力先として許可する対象のモデル名のリストが含まれているが、逆に、入力元となることを禁止するモデル名、または出力先となることを禁止するモデル名を含むようになっていてもよい。すなわち、アクセス管理情報は、入出力相手を限定する情報を有していれば足りる。
【０１０６】
また、上記した実施形態においては、モデル間の入出力の結合を、ベース部品のモデルの一部を置き換え部品のモデルに置き換えることで実現しているが、必ずしもこのようになっていなくともよい。例えば、置き換えを行わずに単に２つのモデルの入出力を結合するだけでもよい。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態に係るパーソナルコンピュータ１のハードウェア構成を示す図である。
【図２】パーソナルコンピュータ１が実現する機能構成の一部を示す図である。
【図３】モデル記憶機能２１がＨＤＤ１５に記憶するモデルを表示するウインドウを示す図である。
【図４】ＦＢＣｔｒｌサブシステム３４の内部構成が表されたウインドウを示す図である。
【図５】インタフェースブロック３３の入出力インタフェース情報が表されたウインドウを示す図である。
【図６】インタフェースブロック３４１の入出力インタフェースが表されたウインドウを示す図である。
【図７】モデルｐａｔ２が表されたウインドウを示す図である。
【図８】ＦＢＣｔｒｌ２サブシステム４１の内部構成を表すウインドウ表示を示す図である。
【図９】ＦＢＣｔｒｌ３サブシステム４２の内部構成を示すウインドウ表示を示す図である。
【図１０】インタフェースブロック４１１の入出力インタフェースが表されたウインドウを示す図である。
【図１１】インタフェースブロック４２１の入出力インタフェースが表されたウインドウを示す図である。
【図１２】モデル自動結合プログラム２００を示すフローチャートである。
【図１３】結合モデルリスト２４の一例を示す図表である。
【符号の説明】
【０１０８】
１…パーソナルコンピュータ、１１…ディスプレイ、１２…入力装置、１３…ＲＡＭ、
１４…ＲＯＭ、１５…ＨＤＤ、１６…ＣＰＵ、２１…モデル記憶機能、
２２…インタフェース整合確認機能、２３…自動結合機能、２４…結合モデルリスト、
２５〜２７…モデル、２８…インタフェース不整合の通知、２９…結合モデル、
３１…定数ブロック、３２…定数ブロック、３３…インタフェースブロック、
３４…ＦＢＣｔｒｌサブシステム、３５…インタフェースブロック、
３６…スコープブロック、４１…ＦＢＣｔｒｌ２サブシステム、
４２…ＦＢＣｔｒｌ３サブシステム、２００…モデル自動結合プログラム、
３４１…インタフェースブロック、３４２…減算ブロック、３４３…増幅ブロック、
３４４…遅延ブロック、３４５…スイッチブロック、３４６…定数ブロック、
３４７…インタフェースブロック、４１１…インタフェースブロック、
４１２…スイッチブロック、４１３…定数ブロック、
４１４…インタフェースブロック、４２１…インタフェースブロック、
４２２…減算ブロック、４２３…増幅ブロック、４２４…遅延ブロック、
４２５…スイッチブロック、４２６…定数ブロック、
４２７…インタフェースブロック。
【図１】
2005338996.tif 000003
【図２】
2005338996.tif 000004
【図３】
2005338996.tif 000005
【図４】
2005338996.tif 000006
【図５】
2005338996.tif 000007
【図６】
2005338996.tif 000008
【図７】
2005338996.tif 000009
【図８】
2005338996.tif 000010
【図９】
2005338996.tif 000011
【図１０】
2005338996.tif 000012
【図１１】
2005338996.tif 000013
【図１２】
2005338996.tif 000014
【図１３】
2005338996.tif 000015