(57)【要約】【課題】煩雑な手間や時間をかけることなく、シミュレーション用インターフェースモデルと動作合成用インターフェースモデルとを等価性を保ったまま相互に変換することが可能なモデル変換装置、モデル変換方法、およびプログラムを提供する。【解決手段】固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、処理部は、代数的に等価性を保つ以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、ｃ：プロセスリマッピング操作。【選択図】図１
2013045350.tif 000002
【特許請求の範囲】
【請求項１】
固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用され、
上記処理部は、
代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
ｃ：プロセスリマッピング操作、
モデル変換装置。
【請求項２】
上記処理部は、
シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う
請求項１記載のモデル変換装置。
【請求項３】
上記処理部は、
動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う
請求項１記載のモデル変換装置。
【請求項４】
上記代数定義として、次の４つの代数的意味定義ｅ，ｆ，ｇ，ｈを持つ
ｅ：クラスが交換可能であることを意味するクラス等価、
ｆ：クラスが条件付きで交換可能であることを意味する条件付きクラス等価、
ｇ：クラスがあるクラスの派生であることを意味する派生クラス、
ｈ：ある関数があるクラスに属する関数であることを意味するメンバ関数、
請求項１記載のモデル変換装置。
【請求項５】
上記代数定義として、ＳｙｓｔｅｍＣ言語を設計記述言語とする場合には、次の７つの代数的意味定義ｉ，ｊ，ｋ，ｌ，ｍ，ｎ，ｏを持つ
ｉ：sc_channelとsc_moduleがクラス等価であること、
ｊ：すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
ｋ：すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
ｌ：ポートクラスがチャネルクラスをバインドすること、
ｍ：Ｍという条件、
ｎ：あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
ｎ１：あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
ｎ２：あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
ｏ：あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価
請求項１記載のモデル変換装置。
【請求項６】
固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形ステップと、
変形後の代数表現の双方が一致するか否かを判定する判定ステップと、
変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う変換ステップと、を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、
上記変換ステップにおいては、
代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
ｃ：プロセスリマッピング操作、
モデル変換方法。
【請求項７】
上記変換ステップにおいて、
シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う
請求項６記載のモデル変換方法。
【請求項８】
上記変換ステップにおいて、
動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う
請求項６記載のモデル変換方法。
【請求項９】
上記代数定義として、次の４つの代数的意味定義ｅ，ｆ，ｇ，ｈを持つ
ｅ：クラスが交換可能であることを意味するクラス等価、
ｆ：クラスが条件付きで交換可能であることを意味する条件付きクラス等価、
ｇ：クラスがあるクラスの派生であることを意味する派生クラス、
ｈ：ある関数があるクラスに属する関数であることを意味するメンバ関数、
請求項６記載のモデル変換方法。
【請求項１０】
上記代数定義として、ＳｙｓｔｅｍＣ言語を設計記述言語とする場合には、次の４つの代数的意味定義ｉ，ｊ，ｋ，ｌ，ｍ，ｎ，ｏを持つ
ｉ：sc_channelとsc_moduleがクラス等価であること、
ｊ：すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
ｋ：すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
ｌ：ポートクラスがチャネルクラスをバインドすること、
ｍ：Ｍという条件、
ｎ：あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
ｎ１：あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
ｎ２：あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
ｏ：あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価
請求項６記載のモデル変換方法。
【請求項１１】
固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、
変形後の代数表現の双方が一致するか否かを判定する判定処理と、
変形後の代数表現の双方が一致すれば（数学的に）モデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、
上記変換処理においては、
代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
ｃ：プロセスリマッピング操作、
を含むモデル変換処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、いわゆるシミュレーション用インターフェースモデルと動作合成用インターフェースモデルを相互に変換するモデル変換装置、モデル変換方法、およびプログラムに関するものである。
【背景技術】
【０００２】
ＳｙｓｔｅｍＣで記述したシミュレーション用インターフェースモデルと動作合成用インターフェースモデルとでは記述スタイル、抽象レベルが異なっている。
シミュレーション用インターフェースモデルではチャネルでモジュールのポートを接続する。
また、動作合成用モデルはハードウェア的にワイヤ（ｓｃ ｓｉｇｎａｌチャネル）でモジュールのピン端子を接続する。
【０００３】
一般的に、このようなシミュレーション用インターフェースモデルから動作合成用インターフェースモデルに変換する方法としては、次の２つの方法が採用されている。
【０００４】
第１の方法は、手動でモデルを書き直す方法である。
なお、第１の方法については、非特許文献１の記載が参照される。非特許文献１の１５頁、図１５において、ＳｙｓＣ/Ｃ++/Ｃ ｍｏｄｕｌｅとＳｙｎｔｈｅｓｉｚａｂｌｅ ＳｙｓＣ/Ｃ++/Ｃモデル間には手動によるリファインメントとなっている。
これは、まさに手動でモデルを書き直すことに他ならない。なお、ＳｙｓＣは非特許文献１においてＳｙｓｔｅｍＣの略記である。
【０００５】
第２の方法は、事前に２通りの記述スタイルでモデルを構築・ライブラリ化し、ライブラリ使用の度に与えられた入力条件下でのシミュレーションによる期待値一致を確認する方法である。
第２の方法は、当業者なら容易になしえるであろう、第１の方法の運用面での派生である。
【０００６】
また、ＵＭＬ（Unified Modeling Language）クラス図の形式化については非特許文献２に詳細に記載されている。
そして、ＵＭＬクラス図の意味論的整合性判定については非特許文献３〜５に記載されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】：SystemC Synthesizable Subset Draft 1.3 (http://www.systemc.org/downloads/drafts_reviewからダウンロード可能)
【非特許文献２】：Berardi, Calvanese, De Giacomo, "Reasoning on UML class diagrams", Artificial Intelligence Vol. 168, Issue 1
【非特許文献３】：遠城秀和, 田名部元成, 飯島淳一. クラス図間の意味論的整合性判定におけるクラス図代数への一考察, 経営情報学会2008年度春季全国研究発表大会, 経営情報学会2008年度秋季全国研究発表大会予稿集, pp. E3-3, Nov. 2008.
【非特許文献４】：遠城秀和, 飯島淳一. クラス図間の整合性判定におけるクラス図代数への一考察, 経営情報学会2008年度春季全国研究発表大会, 経営情報学会2008年度春季全国研究発表大会予稿集, pp. H4-2, Jun. 2008.
【非特許文献５】：遠城秀和, 飯島淳一. クラス図間の整合性判定におけるクラス図代数への一考察, 経営情報学会2008年度春季全国研究発表大会, 経営情報学会2008年度春季全国研究発表大会予稿集, pp. H4-2, Jun. 2008.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、第１の方法によれば、設計の度にＳｙｓｔｅｍＣで記述したインターフェースモデルと動作合成用可能なインターフェースモデルとの２つのモデルに対するダブルメンテナンスを継続する必要がある。
あるいは、第１の方法によれば、動作合成可能なインターフェースモデルを次の設計フェーズである論理合成フェーズ以降の参照モデルとして使用しＳｙｓｔｅｍＣで記述したインターフェースモデルの保守を諦めるかしかない。
【０００９】
第２の方法のライブラリ化手法を使用すると、十分に実績を積むことによりライブラリとして使用された２つのモデルの与えられた入力条件下でのシミュレーションによる期待値一致の確度を高めることは可能ではある。
しかし、第２の方法は実績値のみで判断していることから、設計の度に入力条件が実績のある入力条件の範疇にあるかを確認するか、あるいは改めてシミュレーションによる期待値一致検証を実行する必要がある。
また万一問題が生じた場合には、使用したインターフェースライブラリの入力条件下での妥当性の再検討、あるいはインターフェースライブラリを使用した箇所のユーザー記述の誤りを疑う必要があり、膨大なデバッグ時間を必要とする。
【００１０】
また、ＵＭＬクラス図の形式化については上述したように非特許文献２に詳細に記載されている。
しかし、この記載はあくまでクラスの数学的な意味づけを対象としており、クラスのインスタンス、およびそのインスタンス間の接続構造を含むＵＭＬコンポーネント図の形式化については全く言及されておらず、示唆もされていない。
【００１１】
また、ＵＭＬクラス図の意味論的整合性判定については上述したように、非特許文献３〜５の記載されている。
しかし、ここでも上述のクラスのインスタンス、およびそのインスタンス間の接続構造を含むＵＭＬコンポーネント図の整合性判定については、全く言及されておらず、示唆もされていない。
さらに、数学的整合性に基づいた操作によるモデルの変換手順を開示するものではなく、単に任意操作後の整合性を判定するのみである。
【００１２】
本技術は、煩雑な手間や時間をかけることなく、シミュレーション用インターフェースモデルと動作合成用インターフェースモデルとを等価性を保ったまま相互に変換することが可能なモデル変換装置、モデル変換方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本技術の第１の観点のモデル変換装置は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用され、上記処理部は、代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、ｃ：プロセスリマッピング操作。
【００１４】
本技術の第２の観点のモデル変換方法は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形ステップと、変形後の代数表現の双方が一致するか否かを判定する判定ステップと、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う変換ステップと、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換ステップにおいては、代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、ｃ：プロセスリマッピング操作。
【００１５】
本技術の第３の観点は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、変形後の代数表現の双方が一致するか否かを判定する判定処理と、変形後の代数表現の双方が一致すれば（数学的に）モデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換処理においては、代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う、ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、ｃ：プロセスリマッピング操作、を含むモデル変換処理をコンピュータに実行させるプログラムである。
【発明の効果】
【００１６】
本技術によれば、煩雑な手間や時間をかけることなく、シミュレーション用インターフェースモデルと動作合成用インターフェースモデルとを等価性を保ったまま相互に変換することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本第１の実施形態に係るモデル変換装置の構成例を示す図である。
【図２】本実施形態に係るモデル変換プログラムの演算処理の概要を示すフローチャートである。
【図３】本実施形態に係るモデル変換プログラムの演算処における具体的なモード変換処理の概要を示すフローチャートである。
【図４】本第２の実施形態に係るモデル変換装置の構成例を示す図である。
【図５】本第３の実施形態に係るモデル変換装置の構成例を示す図である。
【図６】本第４の実施形態に係るモデル変換装置の構成例を示す図である。
【図７】ＳｙｓｔｅｍＣで記述したインターフェースモデルシステムのＵＭＬコンポーネント図である。
【図８】階層チャネルのクラス図である。
【図９】モデル変換後の動作合成可能なインターフェースモデルシステムのＵＭＬコンポーネント図である。
【図１０】モデル変換後のインターフェース部分のクラス図である。
【図１１】第１実施例を説明するための図である。
【図１２】第２実施例を説明するための図である。
【図１３】ハードウェア側のみチャネル分解を行った設計事例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本技術の実施形態を図面に関連付けて説明する。
なお、説明は以下の順序で行う。
１．第１の実施形態（モデル変換装置の第１の構成例）
２．第２の実施形態（モデル変換装置の第２の構成例）
３．第３の実施形態（モデル変換装置の第３の構成例）
４．第４の実施形態（モデル変換装置の第４の構成例）
５．モデル変換処理のより具体的処理例
６．第１実施例
７．第２実施例
８．第３実施例
９．第４実施例
１０．第５実施例
【００１９】
＜１、第１の実施形態＞
図１は、本第１の実施形態に係るモデル変換装置の構成例を示す図である。
【００２０】
図１のモデル変換装置１０は、中央処理装置１１、入出力処理装置１２、クラス解析装置１３、変換モード切替装置１４、ペイロード処理装置１５、インターフェース装置１６、およびプロセスリマッピング処理装置１７を有する。
モデル変換装置１０は、入出力処理装置１２により情報の入出力を制御されるキーボード１８、ＬＣＤ等のディスプレイ１９、および外部記憶装置２０を有する。
このモデル変換装置１０は、後述する第１実施例に適用される。
【００２１】
そして、中央処理装置１１、入出力処理装置１２、クラス解析装置１３、変換モード切替装置１４、ペイロード処理装置１５、インターフェース装置１６、およびプロセスリマッピング処理装置１７により処理部が構成される。
なお、クラス解析装置１３、変換モード切替装置１４、ペイロード処理装置１５、インターフェース装置１６、およびプロセスリマッピング処理装置１７の各処理はプログラムにより処理を実行可能である。
【００２２】
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、そのデータを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用される。
本実施形態の処理部は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する。
処理部は、変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う。
そして、処理部は、代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。
ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
ｃ：プロセスリマッピング操作。
【００２３】
処理部は、シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モード（階層チャネル検索）の際には、チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びにプロセスリマッピングを行う。
このシミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モード（階層チャネル検索）を第１の変換モードとする。
【００２４】
処理部は、動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モード（集約チャネル検索）の際には、チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う。
この動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モード（集約チャネル検索）を第２の変換モードとする。
【００２５】
本実施形態において、上述した代数定義として、次の４つの代数的意味定義ｅ，ｆ，ｇ，ｈを持つ。
ｅ：クラスが交換可能であることを意味するクラス等価、
ｆ：クラスが条件付きで交換可能であることを意味する条件付きクラス等価、
ｇ：クラスがあるクラスの派生であることを意味する派生クラス、
ｈ：ある関数があるクラスに属する関数であることを意味するメンバ関数
【００２６】
本実施形態において、上述した代数定義として、ＳｙｓｔｅｍＣ言語を設計記述言語とする場合には、次の７つの代数的意味定義ｉ，ｊ，ｋ，ｌ，ｍ，ｎ，ｏを持つ。
ｉ：sc_channelとsc_moduleがクラス等価であること、
ｊ：すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
ｋ：すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
ｌ：ポートクラスがチャネルクラスをバインドすること、
ｍ：Ｍという条件、
ｎ：あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
ｎ１：あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
ｎ２：あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
ｏ：あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価。
【００２７】
このような処理部において、中央処理装置１１は、モデル変換装置１０の全体を統合的に制御する。
中央処理装置１１は、入出力処理装置１２を介しキーボード１８や外部記憶装置２０により入力される固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの情報を入力する。
中央処理装置１１は、入出力処理装置１２から入力したモデル情報をクラス解析装置１３に供給する。
中央処理装置１１は、変換モード切替装置１４の切替情報に応じた処理をペイロード処理装置１５、インターフェース装置１６、およびプロセスリマッピング処理装置１７に行わせる。
【００２８】
クラス解析装置１３は、入力したモデル情報から得られた構造情報を基にクラス解析処理を行い、データベースを作成する。このデータベース情報は入出力処理装置１２を通して、ディスプレイ１９に表示され、また、外部記憶装置２０に格納される。
【００２９】
変換モード切替装置１４は、第１の変換モードまたは第２の変換モードに応じた処理を行うように、中央処理装置１１、ペイロード処理装置１５、インターフェース装置１６、およびプロセスリマッピング処理装置１７に報知する。
【００３０】
ペイロード処理装置１５は、第１の変換モード時は、チャネルの束ねを解くペイロード公開処理を行う。
ペイロード処理装置１５は、第２の変換モード時は、チャネルの束ねるペイロード隠蔽処理を行う。
【００３１】
インターフェース装置１６は、第１の変換モード時は、インターフェースおよびチャネル分解（ＡＰＩ分解）処理を行う。
インターフェース装置１６は、第２の変換モード時は、インターフェースおよびチャネル集約（ＡＰＩ集約）処理を行う。
【００３２】
プロセスリマッピング処理装置１７は、第１の変換モードまたは第２の変換モードに応じたプロセスリマッピング処理を行う。
【００３３】
図２および図３は、本実施形態に係るモデル変換プログラムの演算処理を示すフローチャートである。
図２（Ａ）はモデル変換プログラムの全体の処理概要を示し、図２（Ｂ）は入出力処理を示し、図２（Ｃ）はクラス解析処理を示している。
また、図３（Ａ）は具体的なモデル変換処理の概要を、図３（Ｂ）は第１の変換モード処理を、図３（Ｃ）は第２の変換モード処理を示している。
【００３４】
本実施形態のモデル変換プログラムは、全体として図２（Ａ）に示すステップＳＴ１〜ＳＴ７の処理を含んで実行される。
ステップＳＴ１〜ＳＴ７のうち、ステップＳＴ３の入出力処理、ステップＳＴ５のモデル変換処理、ステップＳＴ６の入出力処理が主処理として実行される。
【００３５】
ステップＳＴ３、ＳＴ６の入出力処理は、図２（Ｂ）に示すように実行される。
ステップＳＴ３１において、入出力処理装置１２を介して入力されるシミュレーション用インターフェースモデルおよび動作合成用インターフェースモデルの情報から中央処理装置１１によりシステムの構造が読み取られる。
次に、ステップＳＴ３２において、クラス解析装置１３にてクラス解析が行われる。
ステップＳＴ３３において、入出力処理装置１２を介してファイルの出力が行われる。
そして、ステップＳＴ３４において、ディスプレイ１９にファイルが表示される。
【００３６】
ステップＳＴ３２のクラス解析処理は、図２（Ｃ）に示すステップＳＴ３２１〜ＳＴ３２５の処理を含んで実行される。
ステップＳＴ３２１〜ＳＴ３２５のうち、ステップＳＴ３２２のプリプロセッサパーサ、ステップＳＴ３２３のＣ++パーサ、およびデータベース作成処理が主処理として実行される。
【００３７】
ステップＳＴ５のモデル変換処理は、具体的には、図３（Ａ）〜（Ｃ）に示す処理を含んで実行される。
このモデル変換処理は、主として、中央処理装置１１、変換モード切替装置１４、ペイロード処理装置１５、インターフェース処理装置１６、およびプロセスリマッピング処理装置１７により実行される。
【００３８】
まず、全体として、図３（Ａ）に示すように、ステップＳＴ５１において、変換モードが第１の変換モードか第２の変換モードかが判定される。
そして、第１の変換モードのときはステップＳＴ５２の処理が実行され、第２の変換モードのときはステップＳＴ５３の処理が実行される。
【００３９】
ステップＳＴ５２の第１の変換モードの処理は、図３（Ｂ）に示すステップＳＴ５２１〜ＳＴ５２７の処理を含んで実行される。
ステップＳＴ５２１〜ＳＴ５２７のうち、ステップＳＴ５２１で階層チャネルの検索が開始される。
そして、ステップＳＴ５２３のペイロード公開処理、ステップＳＴ５２４のインターフェースおよびチャネル分解（ＡＰＩ分解）処理、およびステップＳＴ５２５のプロセスリマッピング処理が主処理として実行される。
【００４０】
ステップＳＴ５３の第２の変換モードの処理は、図３（Ｃ）に示すステップＳＴ５３１〜ＳＴ５３７の処理を含んで実行される。
ステップＳＴ５３１〜ＳＴ５３７のうち、ステップＳＴ５３１で集約チャネルの検索が開始される。
そして、ステップＳＴ５３３のペイロード隠蔽処理、ステップＳＴ５３４のインターフェースおよびチャネル集約（ＡＰＩ集約）処理、およびステップＳＴ５３５のプロセスリマッピング処理が主処理として実行される。
【００４１】
＜２．第２の実施形態＞
図４は、本第２の実施形態に係るモデル変換装置の構成例を示す図である。
【００４２】
図４のモデル変換装置１０Ａが図１のモデル変換装置１０と異なる点は、ＵＭＬ作図装置２１、コード生成装置２２を有していることにある。
そして、中央処理装置１１はＵＭＬ作図装置２１を介して変換モード切替装置１４と通信を行う。
その他の構成は図１のモデル変換装置１０と同様である。
【００４３】
なお、ＵＭＬ作図装置２１、コード生成装置２２の各処理はプログラムにより処理を実行可能である。
このモデル変換装置１０Ａは、後述する第２実施例に適用される。
【００４４】
＜３．第３の実施形態＞
図５は、本第３の実施形態に係るモデル変換装置の構成例を示す図である。
【００４５】
図５のモデル変換装置１０Ｂが図４のモデル変換装置１０Ａと異なる点は、中央処理装置１１はＵＭＬ作図装置２１を介さずに、変換モード切替装置１４と直接的に通信を行うことにある。
その他の構成は図４のモデル変換装置１０Ａと同様である。
【００４６】
＜４．第４の実施形態＞
図６は、本第４の実施形態に係るモデル変換装置の構成例を示す図である。
【００４７】
図６のモデル変換装置１０Ｃが図５のモデル変換装置１０Ｂと異なる点は、ＵＭＬ作図装置２１にＨＷ（ハードウェア）・ＳＷ（ソフトウェア）インターフェース回路生成装置２３が接続されていることにある。
その他の構成は図５のモデル変換装置１０Ｂと同様である。
ＨＷ・ＳＷインターフェース回路は、アドレスデコーダ、割り込みコントローラ、チップイネーブラー等の装置である。
【００４８】
なお、ＨＷ・ＳＷインターフェース回路生成装置２３の処理はプログラムにより処理を実行可能である。
【００４９】
以上、本実施形態に係るモデル変換装置１０の機能ブロックの構成例および機能について説明した。
次に、ＵＭＬコンポーネント図、クラス図等に関連付けて本実施形態に係るモデル変換処理をより具体的に説明する。
【００５０】
＜５．モデル変換処理のより具体的処理例＞
図７は、ＳｙｓｔｅｍＣで記述したインターフェースモデルシステムのＵＭＬコンポーネント図である。
【００５１】
このＵＭＬコンポーネントにおいて、ソースモジュールＳＭとデスティネーションモジュールＤＭとの間に階層チャネルＨＣＨが配置されている。
ソースモジュールＳＭのポートＰＴ１と階層チャネルＨＣＨのポートＰＴ２がインターフェースＩＦ１を介して情報の授受が可能に構成されている。
階層チャネルＨＣＨのポートＰＴ３とデスティネーションモジュールＤＭのポートＰＴ４がインターフェースＩＦ２を介して情報の授受が可能に構成されている。
インターフェースＩＦ１はプット関数ｐｕｔ（Ｔ）を含み、インターフェースＩＦ２はゲット関数ｇｅｔ（）を含む。プットは送信機能を含み、ゲットは受信機能を含む。
また、ペイロードＰＹＬはレディｒｄｙ、バリッドｖｌｄ、データｄａｔを含んで構成される。
【００５２】
このように、ＳｙｓｔｅｍＣによるインターフェース記述には階層チャネルＨＣＨが使用される。
前述したように、階層チャネルＨＣＨとは、内部にプロセスＰＲＣを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、そのデータを転送するための通信に必要な信号をまとめたペイロードＰＹＬと呼ばれるデータクラスから構成される。
【００５３】
図８は、階層チャネルのクラス図である。
これに対して、図９は、モデル変換後の動作合成可能なインターフェースモデルシステムのＵＭＬコンポーネント図である。
また、図１０は、モデル変換後のインターフェース部分のクラス図である。
以下、図７〜図１０に関連付けて、本実施形態に係るモデル変換装置１０が相互変換が可能であることを証明する。
【００５４】
［相互変換が可能であることの証明］
相互変換が可能であることの証明には、クラスの等価、条件付き等価、および派生に代数定義を導入する。
【００５５】
［クラス定義］
クラスの定義は、基本的に以下の通りである。
【００５６】
［等価］
記法：class A = class B
意味：クラスＡとクラスＢは等価で、交換可能である。
【００５７】
［条件付き等価］
記法：＄COND｛M｝classA =$COND(N)classB
意味：Ｍが真の場合のクラスＡとＮが真の場合のクラスＢは等価で、交換可能である。
【００５８】
［派生クラス］
記法：class B: classA
意味：クラスＢはクラスＡの派生クラスである。
【００５９】
［メンバ関数］
記法：classA::Func
意味：クラスＡのメンバ関数Ｆｕｎｃである。
【００６０】
また、ＳｙｓｔｅｍＣ前提からも代数定義を導入する。
【００６１】
［ＳｙｓｔｅｍＣ前提からの定義］
sc_channel = sc_module
意味：sc_channelは sc_moduleと等価である。
【００６２】
∀IF: sc_interface
意味：すべてのインターフェースクラスは、sc_intefaceクラスの派生クラスである。
【００６３】
∀Port:sc_port<IF>
意味：すべてのポートクラスは、インターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスである。
【００６４】
∀CH:sc_channel, Port
意味：すべてのチャネルクラスは、sc_channelとポートクラスの派生クラスである。
【００６５】
Port $BIND CH
意味：PortポートクラスはCHチャネルクラスをバインドする。
【００６６】
$COND{M}
意味：Ｍという条件である。
【００６７】
Port $BIND CH ∧ ∃1Func⇒ $COND{Port:IF}Port::Func = $COND{Port:sc_port<IF>∧CH:IF}CH::Func
意味：あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば次の意味を持つ。
すなわち、あるポートがあるポートインターフェースの派生クラスである場合のポートクラスのメンバ関数Funcと、あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスである。かつ、あるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数Funcは等価である。
【００６８】
例：
$COND{Port : put_if} Port::put() = $COND{Port : sc_port<put_if> ∧ CH : put_if}CH::put()}
$COND{Port : get_if}Port::get() = #COND{Port : sc_port<get_if> ∧ CH : get_if}CH::get()}
＄COND{Port $BIND CH} = $COND{∀{Port::PrimitivePort∈Port $BIND CH::PrimitiveCH∈CH}} 
意味：あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価である。
【００６９】
［定式化］
図７および図８から階層チャネルの接続を定式化すると下記５式（１）〜（５）を得る。
【００７０】
（１）wait_hs : sc_channel, put_if, get_if
意味：wait_hsクラスはsc_channel, put_if, get_ifクラスの派生クラスである。
【００７１】
（２）wait_out : sc_port<put_if>
意味：wait_outクラスはput_ifクラスをテンプレートパラメータとするsc_portの派生クラスである。
【００７２】
（３）wait_in : sc_port<get_if>
意味：wait_inクラスはget_ifクラスをテンプレートパラメータとするsc_portの派生クラスである。
【００７３】
（４）wait_out $BIND wait_hs
意味：wait_outクラスはwait_hsクラスをバインドする。
【００７４】
（５）wait_in $BIND wait_hs
意味：wait_inクラスはwait_hsクラスをバインドする。
【００７５】
図８および図１０からモデル変換後の接続を定式化すると下記９式＜１＞〜＜９＞を得る。
【００７６】
＜１＞wait_hs : sc_channel
意味：wait_hsはsc_channelの派生クラスである。
【００７７】
＜２＞wait_out : sc_module, put_if
意味：wait_outクラスはsc_module, put_ifクラスの派生クラスである。
【００７８】
＜３＞wait_in : sc_module, get_if
意味：wait_inクラスはsc_module, get_ifクラスの派生クラスである。
【００７９】
＜４＞wait_out::vld $BIND wait_hs::vld
意味：wait_out::vldはwait_hs::vldをバインドする。
【００８０】
＜５＞wait_out::rdy $BIND wait_hs::rdy
意味：wait_out::rdyはwait_hs::rdyをバインドする。
【００８１】
＜６＞wait_out::dat $BIND wait_hs::dat
意味：wait_out::datはwait_hs::datをバインドする。
【００８２】
＜７＞wait_in::vld $BIND wait_hs::vld
意味：wait_in::vldはwait_hs::vldをバインドする。
【００８３】
＜８＞wait_in::rdy $BIND wait_hs::rdy
意味：wait_in::vldはwait_hs::vldをバインドする。
【００８４】
＜９＞wait_in::dat $BIND wait_hs::dat
意味：wait_in::vldはwait_hs::vldをバインドする。
【００８５】
［図８に示された階層チャネルのクラス図と図１０に示されたモデル変換後のインターフェースクラス図が等価であることの証明］
図８に示された階層チャネルのクラス図と図１０に示されたモデル変換後のインターフェースクラス図が等価であることの証明は次の通りである。
【００８６】
［バインド条件］
モデル変換後の接続式から次の関係が得られる。
【００８７】
wait_out::vld $BIND wait_hs::vld
wait_out::rdy $BIND wait_hs::rdy
wait_out::dat $BIND wait_hs::dat
wait_in::vld $BIND wait_hs::vld
wait_in::rdy $BIND wait_hs::rdy
wait_in::dat $BIND wait_hs::dat
【００８８】
定義＄COND{Port $BIND CH} = $COND{∀{Port::PrimitivePort∈Port $BIND CH::PrimitiveCH∈CH}} から次の関係が得られる。
【００８９】
wait_out $BIND wait_hs
wait_in $BIND wait_hs
【００９０】
これは、階層チャネル接続のバインド条件に等しい。
よって、双方のバインド条件は等価である。
【００９１】
モデル変換後のクラス代数より次に関係が得られる。
【００９２】
wait_hs : sc_channel
wait_out : sc_module, put_if
wait_in : sc_module, get_if
【００９３】
バインド条件が等価∧put()およびget()はそれぞれ唯一であることから、次の関係が得られる。
【００９４】
定義PORT $BIND CH ∧ ∃1FUNC⇒ $COND{PORT:IF}∧PORT::FUNC = $COND{PORT:sc_port<IF>∧CH:IF}∧CH::FUNC
にPORT= wait_out, FUNC=put(), IF=put_if, CH=wait_hsを適用し
wait_out $BIND wait_hs ∧∃1put() ⇒
$COND{wait_out:put_if}∧wait_out:put()=$COND{wait_out:sc_port<put_if>∧wait_hs:put_if}∧wait_hs::put()
【００９５】
すなわち、次の関係が得られる。
wait_out:sc_port<put_if>
wait_hs:put_if}
【００９６】
同様に、次の関係が得られる。
wait_in:sc_port<get_if>
wait_hs:get_if}
【００９７】
まとめると次のようになる。
wait_out:sc_port<put_if>
wait_in:sc_port<get_if>
wait_hs:get_if}、put_if}
これは、階層チャネルのクラス代数と等価である。
【００９８】
＜６．第１実施例＞
図１１（Ａ）〜（Ｃ）は、第１実施例を説明するための図である。
【００９９】
図１１（Ａ）が、階層チャネル接続が入力システムのＵＭＬコンポーネント図である。  システムのＳｙｓｔｅｍＣ記述を本装置に入力すると、図２および図３の処理フローに従って、クラスの派生クラスである、図１１（Ｂ）に示すようなモデルに変形される。
モジュール内プロセスのインライニングを進めると、図１１（Ｃ）に示すようなモデルに変換されるが、sc_methodから呼び出される場合にはインライニングできない。
【０１００】
第１実施例はＣ++言語を解析し、継承関係、メンバ関数の場所を組み替えるインターフェースおよびＡＰＩ分解（チャネル分解）あるいは集約（チャネル集約）とプロセスリマッピング技術を使用して、モデル変換後のＣ++言語クラスを新たに出力する。
【０１０１】
＜７．第２実施例＞
図１２は、第２実施例を説明するための図である。
【０１０２】
本モデル変換装置はシステム構造の変換装置として実施すると解析対象を抽象化することができる。
すなわち、図１１で示したＵＭＬコンポーネントダイアグラムを直接書き直すことにより実施する。
本第２実施例は前述の第１実施例と比較し遥かに高速にモデルを構築することができる。
具体的な操作手順は次のとおりである。
【０１０３】
［チャネル分解手順］
チャネル分解手順は次の通りである。ディスプレイ上でマウス等を用いて行う。
階層チャネルを選択する。
右クリックによりドロップダウンメニューを開く。
分解を選択する。
この操作でＵＭＬドローツールがチャネルをチャネル内部のパラメータ群に分解し、各々ソース・デスティネーションモジュールにポートを生成する
【０１０４】
［チャネル集約手順］
集約するチャネル群の選択
右クリックによりドロップダウンメニューを開く
集約を選択
【０１０５】
この操作で、ＵＭＬドローツールが階層チャネルを生成する。本階層チャネルは集約されたポートと集約された内部パラメータを内包する。
部分的な分解と集約を使用することもある。
【０１０６】
図１３は、ハードウェア側のみチャネル分解を行った設計事例を示す図である。
【０１０７】
［チャネル・ポート（部分）分解手順］
チャネル・ポート（部分）分解手順は次の通りである。
階層チャネルのポートを選択する。
右クリックによりドロップダウンメニューを開く。
分解を選択する。
【０１０８】
この操作でＵＭＬドローツールがチャネルの選択されたポートのみチャネル内部のパラメータ群に分解される。接続されたモジュールとチャネル間に新たにポートが生成される。
【０１０９】
［チャネル・ポート集約手順］
チャネル・ポート集約手順は次の通りである。
階層チャネルに接続したいモジュールのポート群を選択する。
右クリックによりドロップダウンメニューを開く。
集約を選択。
【０１１０】
この操作で、ＵＭＬドローツールが階層チャネルを生成する。本階層チャネルは集約されたポートと集約されたパラメータを内包する。ただし、選択されなかったポート側は集約されない。
【０１１１】
＜８．第３実施例＞
次に、第３実施例としてクラス簡略化について説明する。
［クラス簡略化］
第３実施例では、クラスの再利用・バージョンアップを繰り返すと冗長な実行されない記述部分が発生する可能性がある。この整理にクラス変換を使用する。
【０１１２】
＜９．第４実施例＞
第４実施例としてクラス再構築について説明する。
［クラス再構築］
第４実施例では、クラスの派生クラスでインプリしたものを基底クラスに移動させて整理したり、逆に基底クラスでインプリしていたものを派生クラスに移動させて基底クラスの責務を整理したりすることができる。
【０１１３】
＜１０．第５実施例＞
第５実施例としてクラス等価性検証について説明する。
［クラス等価性検証］
等価なクラスには構造的な変換パターンがある。この構造的変換パターンはプログラム言語を見てもその意味は良くわからないが、ＵＭＬダイアグラムで見ると物理的意味が理解できてくる。
たとえばＣ++の純粋仮想関数、オーバーライド、派生クラスに関しては言語的意味と同時にそれぞれ次のような物理的意味が存在する。
すなわち、それぞれ「派生クラスで必ずインスタンシエーションが必要」、「基底クラスのメソッドは無効になり派生クラスのメソッドが実行される」、「基底クラスのメソッドにアクセスできる可能性がある」との物理的意味が存在する。
各変換を図示することにより等価な構造的変換パターンを準備し、等価な構造的変換パターンのみを変換に利用すれば返還後のクラスが等価であることを保証できる。
【０１１４】
［等価変換に使用するルール例］：
次に、等価変換に使用するルール例を示す。
・外部に公開されたメソッドの種類
・publicなメソッド
・friend function：関数毎の公開
・friend class：クラス毎の公開
・inheritanceによるderived classからのbase class内protectedメンバアクセス
・virtualによるbase classからのderived class内メンバアクセス
上記のルールをすべて定式化し、定理を整理する。
【０１１５】
以上説明したように、本実施形態によれば、ＳｙｓｔｅｍＣあるいはＵＭＬで記述したインターフェースモデルと動作合成可能なインターフェースモデルとを等価性を保ったまま相互に変形することが可能となり、効果的なハードウェア開発が可能となる。
【０１１６】
なお、本技術は以下のような構成をとることができる。
（１）固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し、変形後の代数表現の双方が一致すれば（数学的に）モデルに等価性があるとして、モデルの相互変換を行う処理部を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用され、
上記処理部は、
代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
ｃ：プロセスリマッピング操作、
モデル変換装置。
（２）上記処理部は、
シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う
上記（１）記載のモデル変換装置。
（３）上記処理部は、
動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う
上記（１）または（２）記載のモデル変換装置。
（４）上記代数定義として、次の４つの代数的意味定義ｅ，ｆ，ｇ，ｈを持つ
ｅ：クラスが交換可能であることを意味するクラス等価、
ｆ：クラスが条件付きで交換可能であることを意味する条件付きクラス等価、
ｇ：クラスがあるクラスの派生であることを意味する派生クラス、
ｈ：ある関数があるクラスに属する関数であることを意味するメンバ関数、
上記（１）から（３）のいずれか一に記載のモデル変換装置。
（５）上記代数定義として、ＳｙｓｔｅｍＣ言語を設計記述言語とする場合には、次の７つの代数的意味定義ｉ，ｊ，ｋ，ｌ，ｍ，ｎ，ｏを持つ
ｉ：sc_channelとsc_moduleがクラス等価であること、
ｊ：すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
ｋ：すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
ｌ：ポートクラスがチャネルクラスをバインドすること、
ｍ：Ｍという条件、
ｎ：あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
ｎ１：あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
ｎ２：あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
ｏ：あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価
上記（１）から（３）のいずれか一に記載のモデル変換装置。
（６）固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形ステップと、
変形後の代数表現の双方が一致するか否かを判定する判定ステップと、
変形後の代数表現の双方が一致すれば（数学的に）モデルに等価性があるとして、モデルの相互変換を行う変換ステップと、を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、
上記変換ステップにおいては、
代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
ｃ：プロセスリマッピング操作、
モデル変換方法。
（７）上記変換ステップにおいて、
シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う
上記（６）記載のモデル変換方法。
（８）上記変換ステップにおいて、
動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う
上記（６）または（７）記載のモデル変換方法。
（９）上記代数定義として、次の４つの代数的意味定義ｅ，ｆ，ｇ，ｈを持つ
ｅ：クラスが交換可能であることを意味するクラス等価、
ｆ：クラスが条件付きで交換可能であることを意味する条件付きクラス等価、
ｇ：クラスがあるクラスの派生であることを意味する派生クラス、
ｈ：ある関数があるクラスに属する関数であることを意味するメンバ関数、
上記（６）から（１０）のいずれか一に記載のモデル変換方法。
（１０）上記代数定義として、ＳｙｓｔｅｍＣ言語を設計記述言語とする場合には、次の４つの代数的意味定義ｉ，ｊ，ｋ，ｌ，ｍ，ｎ，ｏを持つ
ｉ：sc_channelとsc_moduleがクラス等価であること、
ｊ：すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
ｋ：すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
ｌ：ポートクラスがチャネルクラスをバインドすること、
ｍ：Ｍという条件、
ｎ：あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
ｎ１：あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
ｎ２：あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
ｏ：あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価
上記（６）から（８）のいずれか一に記載のモデル変換方法。
（１１）固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、
変形後の代数表現の双方が一致するか否かを判定する判定処理と、
変形後の代数表現の双方が一致すれば（数学的に）モデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、
上記変換処理においては、
代数的に等価性を保つ、以下の３つの操作ａ，ｂ，ｃによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
ａ：ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
ｂ：インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
ｃ：プロセスリマッピング操作、
を含むモデル変換処理をコンピュータに実行させるプログラム。
【符号の説明】
【０１１７】
１０，１０Ａ〜１０Ｃ・・・モデル変換装置、１１・・・中央処理装置、１２・・・入出力処理装置、１３・・・クラス解析装置、１４・・・変換モード切替装置、１５・・・ペイロード処理装置、１６・・・インターフェース装置、１７・・・プロセスリマッピング処理装置、１８・・・キーボード、１９・・・ディスプレイ、２０・・・外部記憶装置、２１・・・ＵＭＬ作図装置、２２・・・コード生成装置、２３・・・ＨＷ・ＳＷインターフェース回路生成装置、ＨＣＨ・・・階層チャネル、ＳＭ・・・ソースモジュール、ＤＭ，ＤＭ−Ａ，ＭＤ−Ｂ，ＤＭ−Ｃ・・・デスティネーションモジュール、ＰＴ・・・ポート、ＩＦ・・・インターフェース、ＰＲＣ・・・プロセス、ＰＹＬ・・・ペイロード。
【図１】
2013045350.tif 000003
【図２】
2013045350.tif 000004
【図３】
2013045350.tif 000005
【図４】
2013045350.tif 000006
【図５】
2013045350.tif 000007
【図６】
2013045350.tif 000008
【図７】
2013045350.tif 000009
【図８】
2013045350.tif 000010
【図９】
2013045350.tif 000011
【図１０】
2013045350.tif 000012
【図１１】
2013045350.tif 000013
【図１２】
2013045350.tif 000014
【図１３】
2013045350.tif 000015