(57)【要約】【課題】二つのモデルにおける実質的な相違点を提示することができる装置を提供する。【解決手段】開発支援装置は、原モデルと、原モデルを改変した変更モデルの比較を行う。これらのモデルの各構成要素（ブロック，結線）には一意的な識別子が設定されており、開発支援装置は、識別子に基づき、原モデルから削除された構成要素や、新たに追加された構成要素を検出する（Ｓ３２５，Ｓ３３５，Ｓ３４５）。また、同一の識別子が設定された構成要素のパラメータを比較すると共に（Ｓ３６５）、該構成要素が結線である場合には、サブシステム化やサブシステムの解消がなされた場合を考慮し、サブシステムにおけるインポートブロック或いはエクスポートブロックを介して間接的に接続されるブロックを参照して、該結線の実質的な接続先を比較する。【選択図】図３
2014026389.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた処理手順を示すブロックと、前記ブロック同士を繋ぐことでこれらのブロック間のデータの入出力を表す結線とを構成要素とし、これらの構成要素を用いてプログラムを記述していると共に、それぞれの前記構成要素に一意的な識別子が設定されているモデルである原モデルと、該原モデルに変更を加えたものであって、該原モデルから流用された前記構成要素には同一の前記識別子が設定されている変更モデルとを読み込む読込手段（Ｓ３０５，Ｓ９０５）と、
前記原モデルに含まれる前記構成要素と、前記変更モデルに含まれる前記構成要素との中から同一の前記識別子が設定された二つの前記構成要素を検出し、これらの構成要素において設定されているパラメータを比較する比較手段（Ｓ３６５，Ｓ３８０，Ｓ９５５，Ｓ９７０）と、
前記原モデルと前記変更モデルとに関して、これらのモデルの前記構成要素に設定された前記識別子に基づき、これらのモデルの一方にのみ用いられている前記構成要素を検出する検出手段（Ｓ３２５，Ｓ３３５，Ｓ３４５，Ｓ９２０，Ｓ９３０，Ｓ９４０）と、
前記比較手段による比較結果と、前記検出手段による検出結果とを提示する提示手段（Ｓ３３０，Ｓ９２５）と、
を備えることを特徴とするモデル比較装置（１）。
【請求項２】
請求項１に記載のモデル比較装置において、
前記結線により直接的或いは間接的に繋がれた複数の前記ブロックをブロック群とし、前記モデルは、１または複数の前記ブロック群から構成されていること、
を特徴とするモデル比較装置。
【請求項３】
請求項１または請求項２に記載のモデル比較装置において、
前記ブロックとして、前記構成要素により記述された前記処理手順を実行するサブシステムを用いることができ、
前記サブシステム、及び、前記結線により該サブシステムに繋がる他の前記ブロックにより記述される前記処理手順と、該サブシステムにおいて記述された前記処理手順とにより、それぞれ、固有の階層が形成され、
前記検出手段は、さらに、前記原モデルと前記変更モデルにおいて、同一の前記識別子が設定された前記構成要素が、異なる前記階層を形成する前記処理手順の記述に用いられていることを検出すること（Ｓ３４５）、
を備えることを特徴とするモデル比較装置。
【請求項４】
請求項１から請求項３のうちのいずれか１項に記載のモデル比較装置において、
前記ブロックとして、前記構成要素により記述された前記処理手順を実行するサブシステムを用いることができ、
前記サブシステムでの前記処理手順の記述に用いられ、該サブシステム以外の他の前記ブロックとの間でデータの入出力を行う前記ブロックを内部ブロックとすると共に、該内部ブロックとの間でデータの入出力を行う該サブシステム以外の他の前記ブロックを外部ブロックとし、
前記外部ブロックと前記内部ブロックとの間のデータの入出力は、前記外部ブロックと前記サブシステムとに繋がる前記結線と、該サブシステムにて用いられる前記ブロックである通信用ブロックと該内部ブロックとに繋がる前記結線とにより表され、
前記結線の前記パラメータとして、該結線に繋がる前記ブロックを示す接続先パラメータが設けられており、
前記比較手段は、前記結線の前記接続先パラメータが前記通信用ブロックを示している場合には、該接続先パラメータが、該通信用ブロックに係る前記サブシステムに繋がるいずれかの前記ブロックを示すものとみなして、該接続先パラメータの比較を行うと共に、該接続先パラメータが前記サブシステムを示している場合には、該接続先パラメータが、該サブシステムにて用いられる前記通信用ブロックに繋がるいずれかの前記ブロックを示すものとみなして、該接続先パラメータの比較を行うこと（Ｓ３８０，Ｓ９７０）、
を特徴とするモデル比較装置。
【請求項５】
請求項４に記載のモデル比較装置において、
前記提示手段は、前記検出手段により、前記原モデルと前記変更モデルとのうちの一方にのみ用いられている前記構成要素として前記通信用ブロックが検出された場合には、該通信用ブロックを前記検出結果として提示しないこと、
を特徴とするモデル比較装置。
【請求項６】
請求項３から請求項５のうちのいずれか１項に記載のモデル比較装置において、
前記サブシステムとして、予め定められた前記処理手順が記述された共通サブシステムが用いられること、
を特徴とするモデル比較装置。
【請求項７】
請求項１から請求項６のうちのいずれか１項に記載のモデル比較装置（１）において用いられるモデルを作成するための複数のモデル作成装置（１）からの要求に応じて、これらのモデル作成装置にて作成されるそれぞれの前記モデルの前記構成要素に設定される識別子を、これらのモデルにおいて一意的となるように生成する識別子生成手段（２１０）と、
前記識別子生成手段により生成された前記識別子を、該識別子を生成する前記要求を発した前記モデル作成装置に付与する付与手段（２２０）と、
を備えることを特徴とする識別子生成装置（２）。
【請求項８】
請求項７に記載の識別子生成装置において、
前記識別子生成手段は、前記モデル作成装置に関する情報、或いは、該モデル作成装置を使用するユーザに関する情報に基づき生成された固有情報を生成すると共に、該モデル作成装置にて作成された前記モデルの前記構成要素に対し、該固有情報を含む前記識別子を生成すること、
を特徴とする識別子生成装置。
【請求項９】
請求項８に記載の識別子生成装置において、
前記識別子には、さらに番号が含まれており、
前記識別子生成手段は、いずれかの前記モデル作成装置にて作成された前記モデルの前記構成要素に対応する前記識別子を、連続して生成されるこれらの識別子に含まれる前記番号が順番に並ぶように生成し、
前記モデル作成装置にて作成された前記モデルにおいて用いられている前記識別子を示す識別子情報を取得する取得手段（２２０）と、
前記識別子情報が示す前記識別子に含まれる前記番号の範囲を特定し、さらに、該範囲内で順番に並ぶ前記番号を含む複数の前記識別子を再度生成すると共に、再度生成した前記識別子を該順番に従い順次選択し、該識別子情報が示すそれぞれの前記識別子を、選択した前記識別子に置き換える置換手段（２１０）と、
前記識別子情報が示すそれぞれの前記識別子と、該識別子を置き換えた前記識別子とを示す更新情報を、該識別子が用いられている前記モデルを作成した前記モデル作成装置に提供する提供手段（２２０）と、
を備えることを特徴とする識別子生成装置。
【請求項１０】
予め定められた処理手順を示すブロックと、前記ブロック同士を繋ぐことでこれらのブロック間のデータの入出力を表す結線とを構成要素とし、これらの構成要素を用いてプログラムを記述しているモデルを、ユーザからの指示に従い生成するモデル生成手段（１１０）と、
前記構成要素に一意的な識別子を設定する設定手段（１２０）と、
を備えることを特徴とするモデル作成装置（１）。
【請求項１１】
請求項１０に記載のモデル作成装置において、
前記設定手段は、前記結線の前記識別子を、該結線に繋がる前記ブロックに設定された前記識別子に基づき生成し、生成した該識別子を該結線に設定すること、
を特徴とするモデル作成装置。
【請求項１２】
請求項１０または請求項１１に記載のモデル作成装置において、
前記設定手段は、請求項７から請求項９のうちのいずれか１項に記載の識別子生成装置から取得した前記識別子を、前記構成要素に設定すること、
を特徴とするモデル作成装置。
【請求項１３】
予め定められた処理手順を示すブロックと、前記ブロック同士を繋ぐことでこれらのブロック間のデータの入出力を表す結線とを構成要素とし、これらの構成要素を用いてプログラムを記述していると共に、それぞれの前記構成要素に一意的な識別子が設定されているモデルである原モデルと、該原モデルに変更を加えたものであって、該原モデルから流用された前記構成要素には同一の前記識別子が設定されている変更モデルとを読み込む読込手段（Ｓ３０５，Ｓ９０５）と、
前記原モデルに含まれる前記構成要素と、前記変更モデルに含まれる前記構成要素との中から同一の前記識別子が設定された二つの前記構成要素を検出し、これらの構成要素において設定されているパラメータを比較する比較手段（Ｓ３６５，Ｓ３８０，Ｓ９５５，Ｓ９７０）と、
前記原モデルと前記変更モデルとに関して、これらのモデルの前記構成要素に設定された前記識別子に基づき、これらのモデルの一方にのみ用いられている前記構成要素を検出する検出手段（Ｓ３２５，Ｓ３３５，Ｓ３４５，Ｓ９２０，Ｓ９３０，Ｓ９４０）と、
前記比較手段による比較結果と、前記検出手段による検出結果とを提示する提示手段（Ｓ３３０，Ｓ９２５）と
してコンピュータを動作させることを特徴とするモデル比較ツール（１００）。
【請求項１４】
請求項１から請求項６のうちのいずれか１項に記載のモデル比較装置（１）において用いられるモデルを作成するための複数のモデル作成装置（１）からの要求に応じて、これらのモデル作成装置にて作成されるそれぞれの前記モデルの前記構成要素に設定される識別子を、これらのモデルにおいて一意的となるように生成する識別子生成手段（２１０）と、
前記識別子生成手段により生成された前記識別子を、該識別子を生成する前記要求を発した前記モデル作成装置に付与する付与手段（２２０）と
してコンピュータを動作させることを特徴とする識別子生成ツール（２００）。
【請求項１５】
予め定められた処理手順を示すブロックと、前記ブロック同士を繋ぐことでこれらのブロック間のデータの入出力を表す結線とを構成要素とし、これらの構成要素を用いてプログラムを記述しているモデルを、ユーザからの指示に従い生成するモデル生成手段（１１０）と、
前記構成要素に一意的な識別子を設定する設定手段（１２０）と
してコンピュータを動作させることを特徴とするモデル作成ツール（１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコードを自動生成するためのモデルを用いたプログラム開発に用いられるモデル比較装置等に関する。
【背景技術】
【０００２】
従来、例えば車両のエンジンＥＣＵのプログラムの開発においては、開発者が直接ソースコードを記述せず、目的とするプログラムの機能を、より作成が簡易で視認性の良いモデルという形態で記述する場合がある。このモデルは、各種演算等を行う機能単位であるブロックや、ブロック間のデータの入出力を示す結線等の組合せにより処理を表しており、このようなモデルに基づきソースコードを自動生成するプログラム開発は、モデルベース開発と呼ばれている。
【０００３】
ここで、特許文献１には、モデルにおける特定の演算処理を実現するブロックを、該演算処理を実行すると共に、該演算処理の途中結果を出力可能な検査ブロックに置換するプログラム検査装置について記載されている。このプログラム検査装置によれば、置換前のモデルから生成されたプログラムの実行により得られた該演算処理の途中結果と、置換後のモデルの模擬実行により得られた該演算処理の途中結果とを比較することができる。このため、モデルやプログラムの異常を精度良く検出することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３１０５１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、二つのモデルを比較し、相違点を検出する比較ツールが知られている。このような比較ツールを用いることで、既存のモデルに変更を加えて新たなモデルが作成された場合に、これらのモデル間の変更箇所を容易に把握することができるため、モデルの検証等を行い易くなる。
【０００６】
これに対し、モデルの大規模化に伴い、既存のモデルに対し、例えば、複数のブロックとこれらの繋ぐ結線を一つのブロック（サブシステム）にまとめる変更（サブシステム化）が行われる場合がある。また、これ以外にも、例えば、サブシステムが解消される場合や、一つのブロック群（直接的，間接的に結線により繋がれた複数のブロック）が分割される場合や、複数のブロック群が一つに統合される場合もある。
【０００７】
しかしながら、従来の比較ツールは、二つのモデルを構成するブロックの種類，数や、同一種類のブロックのパラメータや、結線の接続先等を単純に比較するのみであった。このため、例えば、サブシステム化がなされた場合には、サブシステムを構成するブロックの種類や、ブロックや結線のパラメータ等に変更がなくても、該サブシステムや、該サブシステムを構成するブロックや結線が新たに追加されたものとして誤検出されていた。
【０００８】
すなわち、従来の比較ツールでは、二つのモデルを精度良く比較することができず、サブシステム化等が行われた場合には、比較結果を参照しても、これらのモデルにより実現される処理がどのように変化したのかを把握することができなかった。
【０００９】
本願発明は上記課題に鑑みてなされたものであり、二つのモデルにおける実質的な相違点を提示することができるモデル比較装置等を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題に鑑みてなされた請求項１に係るモデル比較装置は、予め定められた処理手順を示すブロックと、ブロック同士を繋ぐことでこれらのブロック間のデータの入出力を表す結線とを構成要素とし、これらの構成要素を用いてプログラムを記述していると共に、それぞれの構成要素に一意的な識別子が設定されているモデルである原モデルと、該原モデルに変更を加えたものであって、該原モデルから流用された構成要素には同一の識別子が設定されている変更モデルとを読み込む読込手段を備える。
【００１１】
また、原モデルに含まれる構成要素と、変更モデルに含まれる構成要素との中から同一の識別子が設定された二つの構成要素を検出し、これらの構成要素において設定されているパラメータを比較する比較手段を備える。また、原モデルと変更モデルとに関して、これらのモデルの構成要素に設定された識別子に基づき、これらのモデルの一方にのみ用いられている構成要素を検出する検出手段と、比較手段による比較結果と、検出手段による検出結果とを提示する提示手段を備える。
【００１２】
このような構成によれば、原モデルから変更モデルに流用された構成要素や、変更モデルにおいて新たに追加された構成要素や、原モデルから削除された構成要素を正確に特定することができる。
【００１３】
そして、流用された構成要素については、原モデルにおけるパラメータと変更モデルにおけるパラメータの比較結果が提示されると共に、変更モデルにおいて新たに追加された構成要素や、原モデルから削除された構成要素が提示される。
【００１４】
このため、サブシステム化や、サブシステムの解消や、ブロック群の分割，統合等が行われた場合であっても、提示内容から、変更モデルにおける、原モデルと実質的に同一の処理が行われる部分や、実質的に異なる処理が行われる部分を容易に判別することができる。
【００１５】
したがって、請求項１に係るモデル比較装置によれば、原モデルと変更モデルとの間の実質的な相違点を把握することが可能となる。
また、このようなモデル比較装置に用いられるモデルを作成するモデル作成装置を複数用い、これらのモデル作成装置により作成されたモデルを統合して一つのモデルを作成するという場合が考えられる。
【００１６】
また、請求項７に係る識別子生成装置は、請求項１から請求項６のうちのいずれか１項に記載のモデル比較装置において用いられるモデルを作成するための複数のモデル作成装置からの要求に応じて、これらのモデル作成装置にて作成されるそれぞれのモデルの構成要素に設定される識別子を、これらのモデルにおいて一意的となるように生成する識別子生成手段と、識別子生成手段により生成された識別子を、該識別子を生成する要求を発したモデル作成装置に付与する付与手段と、備える。
【００１７】
このような識別子生成装置を用いることで、複数のモデル作成装置にて作成されるモデルにおいて、構成要素に設定された識別子が重複してしまうことを防ぐことができる。このため、複数のモデル作成装置により作成された複数のモデルを統合して一つのモデル作成した場合であっても、該モデルの構成要素に対し同一の識別子が重複して設定されてしまうことを防ぐことができる。したがって、統合されたモデルに変更が加えられた際には、上述したモデル比較装置を用いて、変更前と変更後における実質的な相違点を把握することが可能となる。
【００１８】
また、請求項１０に係るモデル作成装置は、予め定められた処理手順を示すブロックと、ブロック同士を繋ぐことでこれらのブロック間のデータの入出力を表す結線とを構成要素とし、これらの構成要素を用いてプログラムを記述しているモデルを、ユーザからの指示に従い生成するモデル生成手段と、構成要素に一意的な識別子を設定する設定手段とを備える。
【００１９】
このようなモデル作成装置を用いてモデルを作成した場合には、一旦作成したモデルに変更が加えられた際に、上述したモデル比較装置を用いて、変更前と変更後における実質的な相違点を把握することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】開発支援装置として稼動するＰＣや、識別子生成装置として稼動するサーバについてのブロック図である。
【図２】開発支援ツールと識別子生成ツールについてのブロック図である。
【図３】第一実施形態における差分検出処理のフローチャートである。
【図４】第一実施形態における差分検出処理のフローチャートである。
【図５】第一実施形態における識別子際設定処理のフローチャートと、識別子更新処理のフローチャートである。
【図６】第一実施形態における原モデルの一例を示すブロック図と、原モデルにおける結線のパラメータ情報の一例である。
【図７】第一実施形態における変更モデルの一例を示すブロック図である。
【図８】第一実施形態における原モデルと変更モデルの比較結果の一例である。
【図９】第二実施形態における差分検出処理のフローチャートである。
【図１０】第二実施形態における差分検出処理のフローチャートである。
【図１１】第二実施形態における原モデルと変更モデルの比較結果の一例である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【００２２】
［構成の説明］
図１（ａ）は、ネットワーク５に接続されたパーソナルコンピュータ（Ａ〜ＣＰＣ）１ａ〜１ｃとサーバ２とを示している。このＰＣ１は、モデルベース開発における開発支援装置として稼動し、ディスプレイ１０，ＨＤＤ２０，ＣＰＵ３０，ＲＯＭ４０，ＲＡＭ５０，入力装置６０等を備える（図１（ｂ）参照）。
【００２３】
ディスプレイ１０は、ＣＰＵ３０から受けた映像信号を、ユーザに対して映像として表示する。
入力装置６０は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をＣＰＵ３０に出力する。
【００２４】
ＲＡＭ５０は読み出し、書き込み可能な揮発性メモリであり、ＲＯＭ４０は読み出し専用の不揮発性メモリであり、ＨＤＤ２０は読み出し、書き込み可能な不揮発性メモリである。ＲＯＭ４０、ＨＤＤ２０には、ＣＰＵ３０が読み出して実行するプログラム等が予め記憶されている。
【００２５】
ＲＡＭ５０は、ＣＰＵ３０がＲＯＭ４０，ＨＤＤ２０に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域、及び作業用のデータを一時的に保存するための記憶領域として用いられる。
【００２６】
ＣＰＵ３０は、ＯＳをＨＤＤ２０から読み出して実行し、ＨＤＤ２０に記録されている各種プログラムをＯＳ上のプロセスとして実行する。また、このプロセスにおいて、ＣＰＵ３０は必要に応じて入力装置６０から信号の入力を受け付け、ディスプレイ１０に映像信号を出力し、ＲＡＭ５０，ＨＤＤ２０に対してデータの読み出し／書き込みの制御を行う。
【００２７】
一方、サーバ２は、ネットワーク５を介して当該サーバ２に接続されている開発支援装置にて用いられる識別子（詳細は後述する）を生成する識別子生成装置として稼動し、ＰＣ１と同様の構成を有している。
【００２８】
次に、ＰＣ１にインストールされている開発支援ツール１００について、図２（ａ）に記載のブロック図を用いて説明する。開発支援ツール１００は、ＨＤＤ２０に保存され、ＯＳ上のプロセスとして実行されるアプリケーションの１つであり、ＰＣ１は、開発支援ツール１００を動作させることで、モデルの作成や比較を行う開発支援装置として稼動する。なお、この開発支援装置は、車載装置等といった組み込みシステム向けのプログラム開発に用いられることが考えられるが、これに限定されることは無く、あらゆる用途のプログラム開発に用いることができる。
【００２９】
開発支援ツール１００は、モデル作成部１１０と、識別子設定部１２０と、モデル比較部１３０とを備え、入力装置６０の操作によって起動される。
モデル作成部１１０は、入力装置６０に対する操作に従いモデルを作成すると共に、モデルからソースコードを生成する。
【００３０】
ここで、モデルとは、ソースコードよりも記述が簡易になり、かつ人による可読性を高くする目的で定められたモデル言語仕様に基づいて作成されるプログラムの一表現形態である。
【００３１】
なお、モデルの一例として、Ｓｉｍｕｌｉｎｋ（登録商標）によって作成されるＳｉｍｕｌｉｎｋモデルを挙げることができる。Ｓｉｍｕｌｉｎｋ（登録商標）モデルを、Ｍａｔｌａｂ（登録商標）上で動作するＲｅａｌ  Ｔｉｍｅ  Ｗｏｒｋｓｈｏｐ（登録商標）に入力することにより、該モデルに対応するソースコードが生成される。
【００３２】
本実施形態におけるモデルは、特定の処理手順を示すブロックと呼ばれる機能単位の組合せとして記述され、モデルを構成するブロックは、ブロック間のデータの入出力、及び、対応する処理手順の順序を示す結線により繋ぎ合わされている。
【００３３】
そして、モデルを構成するブロックや結線等の構成要素はパラメータを有している。具体例を挙げると、ブロックは、処理手順に用いられる初期値や閾値等の各種設定値を示すパラメータを有しており、結線は、データの出力元のブロックやデータの入力先のブロックを示す接続先パラメータ等を有している。
【００３４】
また、複数のブロックと結線の集合体を、サブシステムというブロックの一種として定義することもできる。このサブシステムは、プログラミングにおける関数に相当し、ブロックの中にサブシステムが含まれるような入れ子構造のサブシステムの作成も許されており、サブシステムを設けることで、ブロック等により表わされる処理手順の階層構造が形成される。なお、サブシステムを有するモデルから生成されたソースコードでは、サブシステムでの処理はサブルーチンとして記述される。
【００３５】
また、サブシステムを構成するブロック（内部ブロック）と、サブシステム外に配置された他のブロック（外部ブロック）との間のデータの入出力は、サブシステム内に配置されたインポートブロック或いはエクスポートブロックを介して記述される。なお、インポートブロックとエクスポートブロックをまとめてポートブロックとも記載する。
【００３６】
すなわち、外部ブロックから内部ブロックへのデータの出力を記述する場合には、外部ブロックと、内部ブロックが配置されたサブシステムとが結線により繋がれると共に、インポートブロックと内部ブロックとが結線により繋がれる。
【００３７】
また、内部ブロックから外部ブロックへのデータの出力を記述する場合には、外部ブロックと、内部ブロックが配置されたサブシステムとが結線により繋がれると共に、エクスポートブロックと内部ブロックとが結線により繋がれる。
【００３８】
なお、インポートブロックやエクスポートブロック等のパラメータにより、これらが、サブシステムに繋がるどの結線に対してデータの入出力を行うかを特定可能となっている。
【００３９】
また、識別子設定部１２０は、モデル作成部１１０により生成されたモデルにおける構成要素（ブロックや結線等）に対し識別子を設定する。この識別子は、当該モデル作成部１１０や、他の開発支援装置にて作成されたモデルに用いられる識別子と重複しない一意的なものとなっており、識別子生成装置（サーバ２）にて生成される。
【００４０】
具体的には、モデル作成部１１０により新たな構成要素が生成されると、識別子設定部１２０は、ネットワーク５を介して識別子生成装置に対し、識別子の生成を要求する生成要求を発する。そして、該生成要求に応じて識別子生成装置にて生成された識別子を、ネットワーク５を介して取得し、該識別子を構成要素に設定する。
【００４１】
なお、識別子設定部１２０は、ブロックに対する識別子として識別子生成装置にて生成されたものを設定すると共に、結線に対する識別子として、該結線に繋がるブロックに設定された識別子から生成されたもの設定しても良い。具体的には、例えば、識別子Ａが設定されたブロックと、識別子Ｂが設定されたブロックを繋ぐ結線に対し、“Ａ−Ｂ”等の識別子を設定しても良い。
【００４２】
こうすることにより、結線に設定される識別子をより簡易的に生成することができると共に、規模の大きいモデルが作成された場合等に、識別子が枯渇してしまうことを防ぐことができる。
【００４３】
各構成要素に設定された識別子は、作成されたモデルの構成を示す情報と共に、識別子情報として同一のファイルに保存され、該ファイルが読み出された場合には、モデルと、該モデルの各構成要素に設定された識別子が再現される。そして、モデル作成部１１０は、入力装置６０に対する操作に従い再現されたモデルの改変を行うと共に、識別子設定部１２０は、新たに追加された構成要素に対し、サーバ２から取得した一意的な識別子を設定する。
【００４４】
また、モデル作成部１１０は、ユーザに対し、予め定められた演算処理等を行うためのサブシステムであるライブラリサブシステムや、ユーザにより作成されたカスタムサブシステムを提供可能となっている。そして、入力装置６０に対する操作に応じて、ライブラリサブシステムやカスタムサブシステムがモデルの作成に用いられる。
【００４５】
また、モデル比較部１３０は、モデル作成部１１０により作成された二つのモデルを比較し、各構成要素に設定された識別子に基づきこれらのモデルの相違点を検出する差分検出処理（詳細は後述する）を実行する。なお、差分検出処理では、原モデルと、原モデルに対し改変を加えることで生成された変更モデルとを比較対象とすることが考えられる。
【００４６】
次に、サーバ２にインストールされている識別子生成ツール２００について、図２（ｂ）に記載のブロック図を用いて説明する。識別子生成ツール２００は、ＨＤＤに保存され、ＯＳ上のプロセスとして実行されるアプリケーションの１つであり、サーバ２は、識別子生成ツール２００を動作させることで、識別子生成装置として稼動する。
【００４７】
識別子生成ツール２００は、識別子生成部２１０と、送受信部２２０とを備え、入力装置の操作によって起動される。
識別子生成部２１０は、自装置に接続された開発支援装置からの生成要求に応じて、これらの開発支援装置にて既に用いられた識別子と重複しないように、モデルの構成要素の一意的な識別子を生成する。
【００４８】
具体的には、例えば、固有情報と番号を組み合わせたものを識別子として生成しても良い。この固有情報とは、例えば、開発支援装置の固有の情報（例えば、開発支援装置のＩＰアドレス等）や、開発支援装置を使用するユーザの固有の情報（例えば、ユーザ名等）に基づき生成されたものであっても良い。
【００４９】
すなわち、例えば、ＩＰアドレスがＸである開発支援装置にて作成されたモデルの構成要素に対し、Ｘを固有情報として、“Ｘ１”，“Ｘ２”，“Ｘ３”，・・・といった具合に、番号順に識別子を生成しても良い。また、例えば、名前がＹであるユーザがいずれかの開発支援装置にて作成したモデルの構成要素に対し、Ｙを固有情報として、“Ｙ１”，“Ｙ２”，“Ｙ３”，・・・といった具合に、番号順に識別子を生成しても良い。無論、開発支援装置の固有の情報とユーザの固有の情報を組み合わせたものを固有情報としても良い。
【００５０】
こうすることにより、複数の開発支援装置にて作成されるモデルに用いられる一意的な識別子を、容易に生成することができる。
また、これ以外にも、識別子生成部２１０は、開発支援装置からの更新要求に応じて、モデルの構成要素に設定されている識別子を再設定する識別子更新処理（詳細は後述する）を行う。
【００５１】
一方、送受信部２２０は、ネットワーク５を介して、開発支援装置から識別子の生成要求を受け取ると共に、識別子生成部２１０にて生成された識別子を、ネットワーク５を介して、該生成要求を発した開発支援装置に提供する。
【００５２】
［第一実施形態］
［動作の説明］
次に、第一実施形態における開発支援装置と識別子生成装置の動作について詳しく説明する。
【００５３】
（１）差分検出処理について
まず、開発支援ツール１００のモデル比較部１３０により実行される差分検出処理について、図３，４に記載のフローチャートを用いて説明する。なお、本処理は、入力装置６０に対する操作に応じて実行される。
【００５４】
なお、以下の説明では、開発支援ツール１００や識別子生成ツール２００を構成する特定の部位により処理が実行されるといった記載がなされるが、これは、該部位に従い動作するＣＰＵにより処理が実行されることを意味する。
【００５５】
Ｓ３０５では、モデル比較部１３０は、ＨＤＤ２０から比較対象となる二つのモデル（原モデルと変更モデル）を読み込み、Ｓ３１０に処理を移行する。
なお、原モデルや変更モデルは、１または複数のブロック群（結線により直接的或いは間接的に繋がれた複数のブロックの集まり）として構成されていても良い。また、原モデルや変更モデルには、ライブラリサブシステムやカスタムサブシステムが含まれていても良い。こうすることにより、様々なモデルの相違点を検出することができる。
【００５６】
Ｓ３１０では、モデル比較部１３０は、原モデルの構成要素のうち、変更モデルの構成要素との比較がなされていないいずれかの構成要素を比較対象として特定し、Ｓ３１５に処理を移行する。なお、特定した比較対象を、対象構成要素とも記載する。
【００５７】
Ｓ３１５では、モデル比較部１３０は、対象構成要素と、変更モデルにおける対象構成要素と同一の識別子が設定された構成要素（対応構成要素とも記載）が、各モデルの異なる階層に配置されていることを示す変更フラグをクリアし、Ｓ３２０に処理を移行する。
【００５８】
既に述べたように、モデルでは、サブシステムを設けることで処理手順の階層構造が形成され、原モデルから変更モデルへの改変においてサブシステム化がなされた場合や、サブシステムが解消された場合には階層構造が変化する。変更フラグは、サブシステム化やサブシステムの解消により、対象構成要素が異なる階層に配置されるようになった場合にセットされる。
【００５９】
なお、サブシステムの解消とは、サブシステムが配置されている階層に、該サブシステムに替えて、該サブシステムを構成するブロックや結線を直接配置することを意味する。
Ｓ３２０では、モデル比較部１３０は、原モデルにおける全ての構成要素を対象として比較が行われたか否かを判定する。そして、肯定判定が得られた場合には（Ｓ３２０：Ｙｅｓ）、Ｓ３２５に処理を移行し、否定判定が得られた場合には（Ｓ３２０：Ｎｏ）、Ｓ３３５に処理を移行する。
【００６０】
Ｓ３２５では、モデル比較部１３０は、比較がなされていない構成要素を変更モデルの中から特定すると共に、特定した構成要素の比較結果として「追加」を設定し、Ｓ３３０に処理を移行する。
【００６１】
Ｓ３３０では、モデル比較部１３０は、原モデルと変更モデルにおける各構成要素についての比較結果をファイルとしてＨＤＤ２０に保存すると共に、ディスプレイ１０に表示し、本処理を終了する。
【００６２】
なお、原モデルと変更モデルの一方に存在するポートブロックや、これらのモデルの一方に存在するポートブロック或いはサブシステムに繋がる結線であって、これらのモデルの一方に存在するものについては、比較結果として表示しなくても良い。
【００６３】
このような構成要素は、原モデルと変更モデルの実質的な相違点をなすものではないため、このような構成要素についての比較結果の表示を省略することで、ユーザに対し、原モデルと変更モデルの実質的な相違点を提示することが可能となる。
【００６４】
一方、Ｓ３３５では、モデル比較部１３０は、変更モデルを解析し、原モデルにおいて対象構成要素が配置されている階層と同一の階層を特定すると共に、該階層から対応構成要素をサーチし、Ｓ３４０に処理を移行する。
【００６５】
Ｓ３４０では、モデル比較部１３０は、対応構成要素が検出されたか否かを判定する。そして、肯定判定が得られた場合には（Ｓ３４０：Ｙｅｓ）、Ｓ３６５に処理を移行し、否定判定が得られた場合には（Ｓ３４０：Ｎｏ）、Ｓ３４５に処理を移行する。
【００６６】
Ｓ３４５では、モデル比較部１３０は、変更モデルにおける上記同一の階層以外の他の階層から対応構成要素をサーチし、Ｓ３５０に処理を移行する。
Ｓ３５０では、モデル比較部１３０は、対応構成要素が検出されたか否かを判定する。そして、肯定判定が得られた場合には（Ｓ３５０：Ｙｅｓ）、Ｓ３６０に処理を移行し、否定判定が得られた場合には（Ｓ３５０：Ｎｏ）、Ｓ３５５に処理を移行する。
【００６７】
Ｓ３５５では、モデル比較部１３０は、対象構成要素の比較結果として「削除」を設定し、Ｓ３１０に処理を移行する。
Ｓ３６０では、モデル比較部１３０は、変更フラグをセットし、Ｓ３６５に処理を移行する。
【００６８】
Ｓ３６５では、モデル比較部１３０は、対象構成要素と対応構成要素との間のパラメータを比較する。そして、Ｓ３７０において相違点の有無を判定し、パラメータが相違する場合には（Ｓ３７０：Ｙｅｓ）、Ｓ３７５に処理を移行し、相違しない場合には（Ｓ３７０：Ｎｏ）、Ｓ４２０に処理を移行する。
【００６９】
Ｓ３７５〜Ｓ４１５では、結線である対象構成要素及び対応構成要素の接続先が実質的に相違しているのか、或いは、サブシステム化やサブシステムの解消により見た目上相違しているのみであるのかを考慮して、比較結果を設定する。
【００７０】
すなわち、Ｓ３７５では、モデル比較部１３０は、対象構成要素と対応構成要素が結線であるか否かを判定する。さらに、接続先パラメータに基づき、結線であるこれらの構成要素の一方の接続先のみが相違しており、且つ、相違する接続先が、一方の構成要素ではサブシステム或いはポートブロックであるが、他方の構成要素では通常のブロックであるか否かを判定する。なお、通常のブロックとは、サブシステムやポートブロック以外のブロックを意味する。
【００７１】
そして、双方の判定で肯定判定が得られた場合には（Ｓ３７５：Ｙｅｓ）、Ｓ３８０に処理を移行し、いずれか一方の判定で否定判定が得られた場合には（Ｓ３７５：Ｎｏ）、Ｓ４０５に処理を移行する。
【００７２】
なお、結線である対象構成要素と対応構成要素のうち、相違する接続先がサブシステム或いはポートブロックであるものを、間接結線とすると共に、間接結線ではないものを、直接結線とする。また、直接結線に繋がる相違する接続先となる通常のブロックを、相違ブロックとする。
【００７３】
Ｓ３８０では、モデル比較部１３０は、ポートブロックやサブシステムに繋がる他のブロックを考慮して対象構成要素と対応構成要素のパラメータを比較する。
すなわち、間接結線における相違する接続先がポートブロックである場合には、ポートブロックのパラメータ等に基づき、ポートブロックが配されたサブシステムに繋がる結線のうち、ポートブロックとデータの入出力を行う結線を特定する。
【００７４】
そして、該結線の接続先のブロックを特定すると共に、該ブロックとして相違ブロックが特定された場合には、間接結線は、ポートブロックではなく相違ブロックに接続されているものとみなし、接続先パラメータの比較を行う。
【００７５】
また、間接結線における相違する接続先がサブシステムである場合には、サブシステムに配されたポートブロックのパラメータ等に基づき、サブシステムに配された結線のうち、間接結線とデータの入出力を行う結線を特定する。
【００７６】
そして、該結線の接続先のブロックを特定すると共に、該ブロックとして相違ブロックが特定された場合には、間接結線は、サブシステムに替えて同一ブロックに接続されているものとみなし、接続先パラメータの比較を行う。
【００７７】
Ｓ３８５では、モデル比較部１３０は、パラメータが同一か否かを判定すると共に、肯定判定が得られた場合には（Ｓ３８５：Ｙｅｓ）、Ｓ３９０に処理を移行し、否定判定が得られた場合には（Ｓ３８５：Ｎｏ）、Ｓ４０５に処理を移行する。
【００７８】
Ｓ３９０では、モデル比較部１３０は、変更フラグがセットされているか否かを判定する。そして、肯定判定が得られた場合には（Ｓ３９０：Ｙｅｓ）、Ｓ３９５に処理を移行し、否定判定が得られた場合には（Ｓ３９０：Ｎｏ）、Ｓ４００に処理を移行する。
【００７９】
Ｓ３９５では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「サブシステム変更有り、変更無し」を設定し、Ｓ３１０に処理を移行する。
Ｓ４００では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「変更無し」を設定し、Ｓ３１０に処理を移行する。
【００８０】
一方、Ｓ４０５では、モデル比較部１３０は、変更フラグがセットされているか否かを判定する。そして、肯定判定が得られた場合には（Ｓ４０５：Ｙｅｓ）、Ｓ４１０に処理を移行し、否定判定が得られた場合には（Ｓ４０５：Ｎｏ）、Ｓ４１５に処理を移行する。
【００８１】
Ｓ４１０では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「サブシステム変更有り、変更有り」を設定し、Ｓ３１０に処理を移行する。
Ｓ４１５では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「変更有り」を設定し、Ｓ３１０に処理を移行する。
【００８２】
一方、対象構成要素と対応構成要素のパラメータが一致する場合に移行するＳ４２０では、モデル比較部１３０は、変更フラグがセットされているか否かを判定する。そして、肯定判定が得られた場合には（Ｓ４２０：Ｙｅｓ）、Ｓ４２５に処理を移行し、否定判定が得られた場合には（Ｓ４２０：Ｎｏ）、Ｓ４３０に処理を移行する。
【００８３】
Ｓ４２５では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「サブシステム変更有り、変更無し」を設定し、Ｓ３１０に処理を移行する。
Ｓ４３０では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「変更無し」を設定し、Ｓ３１０に処理を移行する。
【００８４】
（２）識別子再設定処理について
次に、モデルの各構成要素に設定されている識別子を再設定する識別子再設定処理について、図５（ａ）に記載のフローチャートを用いて説明する。なお、本処理は、開発支援ツール１００における識別子設定部１２０にて、入力装置６０に対する操作に応じて実行される。
【００８５】
Ｓ５０５では、識別子設定部１２０は、モデルが保存されているファイルから、該モデルの各構成要素に設定されている識別子を示す識別子情報を読み出す。そして、ネットワーク５を介して、サーバ２に対し、該識別子情報と、該識別子情報が示す識別子の更新要求を送信し、Ｓ５１０に処理を移行する。
【００８６】
Ｓ５１０では、識別子設定部１２０は、サーバ２から、更新前の識別子と更新後の識別子の対応関係を示す更新情報を取得する。そして、更新情報に基づき、更新前の識別子が設定された各構成要素に対し再生成された識別子を設定し、本処理を終了する。
【００８７】
（３）識別子更新処理について
次に、モデルの各構成要素に設定されている識別子を更新する識別子更新処理について、図５（ｂ）に記載のフローチャートを用いて説明する。なお、本処理は、開発支援装置から受け取った更新要求に応じて、識別子生成ツール２００における識別子生成部２１０にて実行される。
【００８８】
Ｓ６０５では、識別子生成部２１０は、送受信部２２０を介して、開発支援装置から、更新要求と共に、モデルの各構成要素に設定されている識別子を示す識別子情報を取得する。
【００８９】
続くＳ６１０では、識別子生成部２１０は、取得した識別子情報が示す各識別子を更新する。
より詳しくは、例えば、番号と予め定められた固有情報とを組み合わせたものが識別子として用いられている場合であれば、これらの番号のうち、空きとなっている番号をつめるようにして（空きとなっている番号が無くなるように）、該番号を更新しても良い。
【００９０】
すなわち、識別子情報が示す各識別子に含まれる番号の範囲を特定すると共に、該範囲内のいずれかの番号（例えば、該範囲の先頭をなす番号）を起点として順番に並ぶ番号を含む複数の識別子を再生成しても良い。そして、識別子情報が示す各識別子を、再生成した識別子に置き換えても良い。
【００９１】
より具体的には、例えば、仮に、識別子情報が、Ｘを固有情報とした“Ｘ１”，“Ｘ１０”，“Ｘ２５”，・・・という識別子を示している場合であれば、“Ｘ１”，“Ｘ２”，“Ｘ３”，・・・という識別子を再生成しても良い。そして、“Ｘ１”を“Ｘ１”に、“Ｘ１０”を“Ｘ２”に、“Ｘ２５”を“Ｘ３”に置き換えるといった具合に、番号順に、元の識別子を再生成した識別子に置き換えても良い。
【００９２】
また、結線の識別子が、該結線の接続先のブロックの識別子に基づき生成されたものである場合には、接続先のブロックの識別子の再生成に伴い、該結線のブロックの識別子を再生成しても良い。
【００９３】
具体的には、例えば、“Ｘ１０”，“Ｘ２０”という識別子が設定された二つのブロックを繋ぐ結線に、“Ｘ１０−−＞Ｘ２０”という識別子が設定されており、“Ｘ１０”が“Ｘ５”に、“Ｘ２０”が“Ｘ７”に置き換えられたとする。このような場合には、該結線の識別子として“Ｘ５−−＞Ｘ７”を再生成し、“Ｘ１０−−＞Ｘ２０”を“Ｘ５−−＞Ｘ７”に置き換えても良い。
【００９４】
こうすることにより、識別子の一意性を保ちつつ、識別子の枯渇を防ぐことができる。
そして、更新前の識別子と、該識別子を置き換える再生成された識別子を示す更新情報を生成し、Ｓ６１５に処理を移行する。
【００９５】
Ｓ６１５では、識別子生成部２１０は、送受信部２２０を介して、更新要求を発した開発支援装置に対し更新情報を送信し、本処理を終了する。
［具体例について］
次に、第一実施形態における原モデルと変更モデルの比較結果の具体例について説明する。なお、以下の説明におけるモデルは、Ｓｉｍｕｌｉｎｋ（登録商標）モデルに準じたものとなっている。
【００９６】
図６（ａ）には、第一実施形態の開発支援装置を用いて作成された原モデル７００の一例が記載されている。この原モデル７００は、パルスを生成するパルス生成ブロック７１０（Discrete Pulse Generator1）と、加減算を行う加減算ブロック７３０（Sum1）を有する。また、信号を遅延させるホールドブロック７５０（Unit Delay1）と、信号を表示する信号表示ブロック７７０（Scope1）を有する（なお、括弧書きは、各ブロックに設定された識別子を示している）。
【００９７】
また、この原モデル７００は、パルス生成ブロック７１０から、加減算ブロック７３０及び信号表示ブロック７７０にデータを出力する結線７２０と、加減算ブロック７３０からホールドブロック７５０にデータを出力する結線７４０を有する。また、ホールドブロック７５０から、加減算ブロック７３０及び信号表示ブロック７７０にデータを出力する結線７６０を有する。なお、これらの結線には、接続先となるブロックに基づく識別子が設定されている（例えば、結線７２０の識別子はDiscrete Pulse Generator1-->Sum1+Scope1、結線７４０の識別子は、Sum1-->Unit Delay1となっている）。
【００９８】
また、図６（ｂ）は、結線７２０に設定された各パラメータを示すパラメータ情報７２１を示している。このパラメータ情報７２１は、結線７２０を介して出力されるデータの出力元となる接続先パラメータや、該データの出力先となる接続先パラメータ等を示している。
【００９９】
また、図７には、原モデル７００を変更して作成された変更モデル８００が記載されている。この変更モデル８００は、原モデル７００における加減算ブロック７３０，ホールドブロック７５０，結線７４０，７６０をサブシステム化すると共に、原モデル７００における信号表示ブロック７７０にデータを出力する複数のブロックを追加したものである。さらに、原モデル７００におけるホールドブロック７５０の初期条件を設定する初期パラメータを変更したものである。
【０１００】
すなわち、変更モデル８００は、原モデル７００から流用されたパルス生成ブロック８１０（Discrete Pulse Generator1）及び信号表示ブロック８３０（Scope1）を有する。また、サブシステム８２０（Subsystem1）と、固定値を生成して出力する固定値ブロック８４０（Constant1）と、加減算ブロック８５０（Sum2）と、ホールドブロック８６０（Unit Delay2）を有する。
【０１０１】
このサブシステム８２０は、上記サブシステム化により新たに加わったものであり、固定値ブロック８４０，加減算ブロック８５０，ホールドブロック８６０は、新たに追加されたものである。
【０１０２】
また、変更モデル８００は、パルス生成ブロック８１０から、サブシステム８２０及び信号表示ブロック８３０にデータを出力する結線８１１と、サブシステム８２０から信号表示ブロック８３０にデータを出力する結線８３１とを有する。また、固定値ブロック８４０から加減算ブロック８５０にデータを出力する結線８４１と、加減算ブロック８５０からホールドブロック８６０にデータを出力する結線８５１とを有する。また、ホールドブロック８６０から、加減算ブロック８５０及び信号表示ブロック８３０にデータを出力する結線８６１を有する。
【０１０３】
また、サブシステム８２０は、パルス生成ブロック８１０から当該サブシステム８２０に入力されたデータを受け取るインポートブロック８２１（In1）を有する。また、原モデル７００から流用された加減算ブロック８２３（Sum1），ホールドブロック８２５（Unit Delay1）と、当該サブシステム８２０から信号表示ブロック８３０にデータを出力するエクスポートブロック８２７（Out1）を有する。
【０１０４】
また、サブシステム８２０は、インポートブロック８２１から加減算ブロック８２３にデータを出力する結線８２２と、加減算ブロック８２３からホールドブロック８２５にデータを出力する結線８２４を有する。また、ホールドブロック８２５から、加減算ブロック８２３及びエクスポートブロック８２７にデータを出力する結線８２６を有する。
【０１０５】
無論、これらの結線には、原モデル７００と同様に、接続先となるブロックに基づく識別子が設定されている。また、これらの結線のうち、結線８１１，８２４，８２６は、原モデル７００から流用されたものとなっており、原モデルと同様の識別子が設定されている。
【０１０６】
そして、図８には、差分検出処理による原モデル７００と変更モデル８００の比較結果を示す表が記載されている。なお、該表では、識別子により各構成要素を示しており、また、変更無しに設定された構成要素については、比較結果が省略されている。
【０１０７】
該表が示すように、新たに追加されたサブシステム８２０（Subsystem1）等の比較結果が「追加」となる。また、サブシステム化のみがなされた加減算ブロック８２３（Sum1）は、「サブシステム変更有り、変更無し」となり、サブシステム化と共に初期パラメータが変更されたホールドブロック８２５（Unit Delay1）は、「サブシステム変更有り、変更有り」となる。
【０１０８】
また、追加されたブロックを繋ぐ結線の比較結果が「追加」となる。また、結線８１１（Discrete Pulse Generator1-->Sum1+Scope1）は、「変更無し」となるため、該表に記載されていない。また、サブシステム化されたブロックを繋ぐ結線８２４，８２６（Sum1-->Unit Delay1，Unit Delay1-->Sum1+Scope1）は、「サブシステム変更有り、変更無し」となる。
【０１０９】
なお、この原モデル７００や変更モデル８００は、一つのブロック群から構成されているが、言うまでもなく、複数のブロック群から構成されていても良い。
［第二実施形態］
［動作の説明］
次に、第二実施形態における開発支援装置の動作について詳しく説明する。第二実施形態では、差分検出処理の内容が第一実施形態と相違しており、サブシステム化やサブシステムの解消を考慮すること無く、原モデルと変更モデルの比較がなされる。以下では、第二実施形態の差分検出処理について、図９，１０に記載のフローチャートを用いて説明する。なお、本処理は、入力装置６０に対する操作に応じて実行される。
【０１１０】
Ｓ９０５〜Ｓ９５５は、第一実施形態の差分検出処理におけるＳ３０５，Ｓ３１０，Ｓ３２０〜Ｓ３５５，Ｓ３６５と同様であるため、説明を省略する。
Ｓ９６０では、モデル比較部１３０は、対象構成要素と対応構成要素との間のパラメータの相違の有無を判定する。そして、パラメータが相違する場合には（Ｓ９６０：Ｙｅｓ）、Ｓ９６５に処理を移行し、相違しない場合には（Ｓ９６０：Ｎｏ）、Ｓ９９０に処理を移行する。
【０１１１】
Ｓ９６５〜Ｓ９８５では、第一実施形態の差分検出処理におけるＳ３７５〜Ｓ４１５と同様、サブシステム化やサブシステムの解消を考慮して比較結果を設定する。
すなわち、Ｓ９６５では、モデル比較部１３０は、第一実施形態の差分検出処理におけるＳ３７５と同様の判定を行う。そして、肯定判定が得られた場合には（Ｓ９６５：Ｙｅｓ）、Ｓ９７０に処理を移行し、否定判定が得られた場合には（Ｓ９６５：Ｎｏ）、Ｓ９８５に処理を移行する。
【０１１２】
Ｓ９７０では、モデル比較部１３０は、第一実施形態の差分検出処理におけるＳ３８０と同様にして、ポートブロックやサブシステムに繋がる他のブロックを考慮して対象構成要素と対応構成要素のパラメータを比較する。そして、これらのパラメータが同一である場合には（Ｓ９７５：Ｙｅｓ）、Ｓ９８０に処理を移行し、同一でない場合には（Ｓ９７５：Ｎｏ）、Ｓ９８５に処理を移行する。
【０１１３】
Ｓ９８０では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「変更無し」を設定し、Ｓ９１０に処理を移行する。
Ｓ９８５では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「変更有り」を設定し、Ｓ９１０に処理を移行する。
【０１１４】
Ｓ９９０では、モデル比較部１３０は、対象構成要素と対応構成要素の比較結果として「変更無し」を設定し、Ｓ９１０に処理を移行する。
［具体例について］
次に、第二実施形態における差分検出処理による原モデルと変更モデルの比較結果の具体例について説明する。
【０１１５】
図１１には、上述した原モデル７００と変更モデル８００の比較結果を示す表が記載されている。なお、該表では、識別子により各構成要素を示しており、また、変更無しに設定された構成要素については比較結果の記載を省略している。
【０１１６】
また、これらのモデルの一方に存在するポートブロックや、これらのモデルの一方に存在するポートブロック或いはサブシステムに繋がる結線であって、これらのモデルの一方に存在するものについても、比較結果の記載を省略している。
【０１１７】
該表が示すように、新たに追加されたサブシステム８２０（Subsystem）等の比較結果が「追加」となる。また、サブシステム化のみがなされた加減算ブロック８２３（Sum1）は、「変更無し」となるため該表に記載されていないが、サブシステム化と共に初期パラメータが変更されたホールドブロック８２５（Unit Delay1）は、「変更有り」となる。
【０１１８】
また、追加されたブロックを繋ぐ結線の比較結果が「追加」となる。また、サブシステム、或いはサブシステム化されたブロックを繋ぐ結線８１１，８２４，８２６（Discrete Pulse Generator1-->Sum1+Scope1，Sum1-->Unit Delay1，Unit Delay1-->  Sum1+Scope1）は、「変更無し」となるため、該表に記載されていない。
【０１１９】
［効果］
第一，第二実施形態の開発支援装置によれば、サブシステム化やサブシステムの解消により接続先のブロックが変更された結線に関しては、ポートブロックを介して接続されるブロックを考慮して接続先パラメータの比較が行われる。そして、接続先のブロックが実質的に変わったかどうかが判定される。
【０１２０】
このため、処理内容を維持したままサブシステム化やサブシステムの解消がなされ、単に見た目上の結線の接続先が変更された場合に、このような変更点が相違点としてユーザに提示されることは無い。一方、処理内容の変更を伴ってサブシステム化等がなされ、結線の接続先が実質的に変更された場合には、このような変更点がユーザに提示される。
【０１２１】
したがって、サブシステム化やサブシステムの解消に伴い生じた実質的な相違点のみを、ユーザに提示することができる。
また、第一実施形態の開発支援装置では、サブシステム化やサブシステムの解消により異なる階層に配置されるようになったブロックや結線は、「サブシステム変更有り」としてユーザに提示される。このため、実質的な相違の有無とは別に、サブシステム化等がなされた構成要素を提示することができ、ユーザは、原モデルと変更モデルの相違点をより正確に把握することができる。
【０１２２】
また、第一，第二実施形態の開発支援装置で作成されたモデルの構成要素には、識別子生成装置にて生成された識別子が設定されるため、複数の開発支援装置により作成された各モデルにおける各構成要素の識別子が重複してしまうことを防ぐことができる。このため、各開発支援装置により作成されたモデルを組み合わせて一の原モデルが作成され、さらに、該原モデルに変更を加えて変更モデルが作成された場合には、これらのモデルにおける実質的な相違点をユーザに提示することが可能となる。
【０１２３】
［他の実施形態］
（１）第一，第二実施形態では、サーバ２にインストールされた識別子生成ツール２００により識別子が生成される。しかしながら、開発支援ツール１００がインストールされたＰＣ１に識別子生成ツール２００をインストールし、該ＰＣ１で作成されたモデルの識別子を、該ＰＣ１にインストールされた識別子生成ツール２００により生成しても良い。
【０１２４】
さらに、該ＰＣ１にインストールされた識別子生成ツール２００により、識別子更新処理と同様にして、該ＰＣ１にインストールされた開発支援ツール１００にて作成されたモデルの構成要素に設定された識別子を更新しても良い。
【０１２５】
このような場合であっても、同様の効果を得ることができる。
（２）また、第一，第二実施形態では、モデル作成部１１０及び識別子設定部１２０と、モデル比較部１３０は、単一のアプリケーションである開発支援ツール１００として構成されている。このようなアプリケーションの一例として、Ｍａｔｌａｂ（登録商標）を挙げることができる。
【０１２６】
しかし、これ以外にも、モデル比較部１３０を、モデル作成部１１０及び識別子設定部１２０を備える開発支援ツール１００のアドオンとしても良い。また、モデル比較部１３０を単一のアプリケーションとして構成し、該開発支援ツール１００から外部ツールとして起動する構成としても良い。
【０１２７】
また、モデル比較部１３０と、モデル作成部１１０及び識別子設定部１２０を、それぞれ、モデルベース開発を行うためのアプリケーションである開発支援ツール１００のアドオンとしても良い。また、モデル比較部１３０と、モデル作成部１１０及び識別子設定部１２０を、それぞれ、単一のアプリケーションとして構成し、該開発支援ツール１００から外部ツールとして起動する構成としても良い。
【０１２８】
このような場合であっても、同様の効果を得ることができる。
［特許請求の範囲との対応］
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
【０１２９】
開発支援装置がモデル比較装置，モデル作成装置に相当し、開発支援ツール１００が、モデル比較ツール，モデル作成ツールに相当する。
また、開発支援ツール１００のモデル作成部１１０がモデル生成手段に、識別子設定部１２０が設定手段に相当する。
【０１３０】
また、識別子生成ツール２００の識別子生成部２１０が識別子生成手段，置換手段に、送受信部２２０が付与手段，取得手段，提供手段に相当する。
また、ポートブロックが通信用ブロックに相当し、ライブラリサブシステム，カスタムサブシステムが、共通サブシステムに相当する。
【０１３１】
また、第一実施形態の差分検出処理のＳ３０５が読込手段に、Ｓ３２５，Ｓ３３５，Ｓ３４５が検出手段に、Ｓ３３０が提示手段に、Ｓ３６５，Ｓ３８０が比較手段に相当する。また、第二実施形態の差分検出処理のＳ９０５が読込手段に、Ｓ９２０，Ｓ９３０，Ｓ９４０が検出手段に、Ｓ９２５が提示手段に、Ｓ９５５，Ｓ９７０が比較手段に相当する。
【符号の説明】
【０１３２】
１…ＰＣ、２…サーバ、５…ネットワーク、１０…ディスプレイ、２０…ＨＤＤ、３０…ＣＰＵ、４０…ＲＯＭ、５０…ＲＡＭ、６０…入力装置、１００…開発支援ツール、１１０…モデル作成部、１２０…識別子設定部、１３０…モデル比較部、２００…識別子生成ツール、２１０…識別子生成部、２２０…送受信部。
【図１】
2014026389.tif 000003
【図２】
2014026389.tif 000004
【図３】
2014026389.tif 000005
【図４】
2014026389.tif 000006
【図５】
2014026389.tif 000007
【図６】
2014026389.tif 000008
【図７】
2014026389.tif 000009
【図８】
2014026389.tif 000010
【図９】
2014026389.tif 000011
【図１０】
2014026389.tif 000012
【図１１】
2014026389.tif 000013