"固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用され、上記処理部は、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行うa:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作、モデル変換装置。上記処理部は、シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う請求項1記載のモデル変換装置。上記処理部は、動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う請求項1記載のモデル変換装置。上記代数定義として、次の4つの代数的意味定義e,f,g,hを持つe:クラスが交換可能であることを意味するクラス等価、f:クラスが条件付きで交換可能であることを意味する条件付きクラス等価、g:クラスがあるクラスの派生であることを意味する派生クラス、h:ある関数があるクラスに属する関数であることを意味するメンバ関数、請求項1記載のモデル変換装置。上記代数定義として、SystemC言語を設計記述言語とする場合には、次の7つの代数的意味定義i,j,k,l,m,n,oを持つi:scchannelとscmoduleがクラス等価であること、j:すべてのインターフェースクラスはscinterfaceクラスの派生クラスであること、k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするscportクラスの派生クラスであること、l:ポートクラスがチャネルクラスをバインドすること、m:Mという条件、n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならばn1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするscportの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価請求項1記載のモデル変換装置。固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形ステップと、変形後の代数表現の双方が一致するか否かを判定する判定ステップと、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う変換ステップと、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換ステップにおいては、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行うa:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作、モデル変換方法。上記変換ステップにおいて、シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う請求項6記載のモデル変換方法。上記変換ステップにおいて、動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う請求項6記載のモデル変換方法。上記代数定義として、次の4つの代数的意味定義e,f,g,hを持つe:クラスが交換可能であることを意味するクラス等価、f:クラスが条件付きで交換可能であることを意味する条件付きクラス等価、g:クラスがあるクラスの派生であることを意味する派生クラス、h:ある関数があるクラスに属する関数であることを意味するメンバ関数、請求項6記載のモデル変換方法。上記代数定義として、SystemC言語を設計記述言語とする場合には、次の4つの代数的意味定義i,j,k,l,m,n,oを持つi:scchannelとscmoduleがクラス等価であること、j:すべてのインターフェースクラスはscinterfaceクラスの派生クラスであること、k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするscportクラスの派生クラスであること、l:ポートクラスがチャネルクラスをバインドすること、m:Mという条件、n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならばn1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするscportの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価請求項6記載のモデル変換方法。固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、変形後の代数表現の双方が一致するか否かを判定する判定処理と、変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換処理においては、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行うa:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作、を含むモデル変換処理をコンピュータに実行させるプログラム。しかしながら、第1の方法によれば、設計の度にSystemCで記述したインターフェースモデルと動作合成用可能なインターフェースモデルとの2つのモデルに対するダブルメンテナンスを継続する必要がある。あるいは、第1の方法によれば、動作合成可能なインターフェースモデルを次の設計フェーズである論理合成フェーズ以降の参照モデルとして使用しSystemCで記述したインターフェースモデルの保守を諦めるかしかない。第2の方法のライブラリ化手法を使用すると、十分に実績を積むことによりライブラリとして使用された2つのモデルの与えられた入力条件下でのシミュレーションによる期待値一致の確度を高めることは可能ではある。しかし、第2の方法は実績値のみで判断していることから、設計の度に入力条件が実績のある入力条件の範疇にあるかを確認するか、あるいは改めてシミュレーションによる期待値一致検証を実行する必要がある。また万一問題が生じた場合には、使用したインターフェースライブラリの入力条件下での妥当性の再検討、あるいはインターフェースライブラリを使用した箇所のユーザー記述の誤りを疑う必要があり、膨大なデバッグ時間を必要とする。また、UMLクラス図の形式化については上述したように非特許文献2に詳細に記載されている。しかし、この記載はあくまでクラスの数学的な意味づけを対象としており、クラスのインスタンス、およびそのインスタンス間の接続構造を含むUMLコンポーネント図の形式化については全く言及されておらず、示唆もされていない。また、UMLクラス図の意味論的整合性判定については上述したように、非特許文献3~5の記載されている。しかし、ここでも上述のクラスのインスタンス、およびそのインスタンス間の接続構造を含むUMLコンポーネント図の整合性判定については、全く言及されておらず、示唆もされていない。さらに、数学的整合性に基づいた操作によるモデルの変換手順を開示するものではなく、単に任意操作後の整合性を判定するのみである。本技術は、煩雑な手間や時間をかけることなく、シミュレーション用インターフェースモデルと動作合成用インターフェースモデルとを等価性を保ったまま相互に変換することが可能なモデル変換装置、モデル変換方法、およびプログラムを提供することにある。本技術の第1の観点のモデル変換装置は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用され、上記処理部は、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作。本技術の第2の観点のモデル変換方法は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形ステップと、変形後の代数表現の双方が一致するか否かを判定する判定ステップと、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う変換ステップと、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換ステップにおいては、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作。本技術の第3の観点は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、変形後の代数表現の双方が一致するか否かを判定する判定処理と、変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換処理においては、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う、a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作、を含むモデル変換処理をコンピュータに実行させるプログラムである。本技術によれば、煩雑な手間や時間をかけることなく、シミュレーション用インターフェースモデルと動作合成用インターフェースモデルとを等価性を保ったまま相互に変換することが可能となる。以下、本技術の実施形態を図面に関連付けて説明する。なお、説明は以下の順序で行う。1.第1の実施形態モデル変換装置の第1の構成例2.第2の実施形態モデル変換装置の第2の構成例3.第3の実施形態モデル変換装置の第3の構成例4.第4の実施形態モデル変換装置の第4の構成例5.モデル変換処理のより具体的処理例6.第1実施例7.第2実施例8.第3実施例9.第4実施例10.第5実施例<1、第1の実施形態>図1は、本第1の実施形態に係るモデル変換装置の構成例を示す図である。図1のモデル変換装置10は、中央処理装置11、入出力処理装置12、クラス解析装置13、変換モード切替装置14、ペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17を有する。モデル変換装置10は、入出力処理装置12により情報の入出力を制御されるキーボード18、LCD等のディスプレイ19、および外部記憶装置20を有する。このモデル変換装置10は、後述する第1実施例に適用される。そして、中央処理装置11、入出力処理装置12、クラス解析装置13、変換モード切替装置14、ペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17により処理部が構成される。なお、クラス解析装置13、変換モード切替装置14、ペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17の各処理はプログラムにより処理を実行可能である。インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、そのデータを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用される。本実施形態の処理部は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する。処理部は、変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う。そして、処理部は、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作。処理部は、シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モード階層チャネル検索の際には、チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びにプロセスリマッピングを行う。このシミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モード階層チャネル検索を第1の変換モードとする。処理部は、動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モード集約チャネル検索の際には、チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う。この動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モード集約チャネル検索を第2の変換モードとする。本実施形態において、上述した代数定義として、次の4つの代数的意味定義e,f,g,hを持つ。e:クラスが交換可能であることを意味するクラス等価、f:クラスが条件付きで交換可能であることを意味する条件付きクラス等価、g:クラスがあるクラスの派生であることを意味する派生クラス、h:ある関数があるクラスに属する関数であることを意味するメンバ関数本実施形態において、上述した代数定義として、SystemC言語を設計記述言語とする場合には、次の7つの代数的意味定義i,j,k,l,m,n,oを持つ。i:scchannelとscmoduleがクラス等価であること、j:すべてのインターフェースクラスはscinterfaceクラスの派生クラスであること、k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするscportクラスの派生クラスであること、l:ポートクラスがチャネルクラスをバインドすること、m:Mという条件、n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならばn1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするscportの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価。このような処理部において、中央処理装置11は、モデル変換装置10の全体を統合的に制御する。中央処理装置11は、入出力処理装置12を介しキーボード18や外部記憶装置20により入力される固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの情報を入力する。中央処理装置11は、入出力処理装置12から入力したモデル情報をクラス解析装置13に供給する。中央処理装置11は、変換モード切替装置14の切替情報に応じた処理をペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17に行わせる。クラス解析装置13は、入力したモデル情報から得られた構造情報を基にクラス解析処理を行い、データベースを作成する。このデータベース情報は入出力処理装置12を通して、ディスプレイ19に表示され、また、外部記憶装置20に格納される。変換モード切替装置14は、第1の変換モードまたは第2の変換モードに応じた処理を行うように、中央処理装置11、ペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17に報知する。ペイロード処理装置15は、第1の変換モード時は、チャネルの束ねを解くペイロード公開処理を行う。ペイロード処理装置15は、第2の変換モード時は、チャネルの束ねるペイロード隠蔽処理を行う。インターフェース装置16は、第1の変換モード時は、インターフェースおよびチャネル分解API分解処理を行う。インターフェース装置16は、第2の変換モード時は、インターフェースおよびチャネル集約API集約処理を行う。プロセスリマッピング処理装置17は、第1の変換モードまたは第2の変換モードに応じたプロセスリマッピング処理を行う。図2および図3は、本実施形態に係るモデル変換プログラムの演算処理を示すフローチャートである。図2Aはモデル変換プログラムの全体の処理概要を示し、図2Bは入出力処理を示し、図2Cはクラス解析処理を示している。また、図3Aは具体的なモデル変換処理の概要を、図3Bは第1の変換モード処理を、図3Cは第2の変換モード処理を示している。本実施形態のモデル変換プログラムは、全体として図2Aに示すステップST1~ST7の処理を含んで実行される。ステップST1~ST7のうち、ステップST3の入出力処理、ステップST5のモデル変換処理、ステップST6の入出力処理が主処理として実行される。ステップST3、ST6の入出力処理は、図2Bに示すように実行される。ステップST31において、入出力処理装置12を介して入力されるシミュレーション用インターフェースモデルおよび動作合成用インターフェースモデルの情報から中央処理装置11によりシステムの構造が読み取られる。次に、ステップST32において、クラス解析装置13にてクラス解析が行われる。ステップST33において、入出力処理装置12を介してファイルの出力が行われる。そして、ステップST34において、ディスプレイ19にファイルが表示される。ステップST32のクラス解析処理は、図2Cに示すステップST321~ST325の処理を含んで実行される。ステップST321~ST325のうち、ステップST322のプリプロセッサパーサ、ステップST323のCパーサ、およびデータベース作成処理が主処理として実行される。ステップST5のモデル変換処理は、具体的には、図3A~Cに示す処理を含んで実行される。このモデル変換処理は、主として、中央処理装置11、変換モード切替装置14、ペイロード処理装置15、インターフェース処理装置16、およびプロセスリマッピング処理装置17により実行される。まず、全体として、図3Aに示すように、ステップST51において、変換モードが第1の変換モードか第2の変換モードかが判定される。そして、第1の変換モードのときはステップST52の処理が実行され、第2の変換モードのときはステップST53の処理が実行される。ステップST52の第1の変換モードの処理は、図3Bに示すステップST521~ST527の処理を含んで実行される。ステップST521~ST527のうち、ステップST521で階層チャネルの検索が開始される。そして、ステップST523のペイロード公開処理、ステップST524のインターフェースおよびチャネル分解API分解処理、およびステップST525のプロセスリマッピング処理が主処理として実行される。ステップST53の第2の変換モードの処理は、図3Cに示すステップST531~ST537の処理を含んで実行される。ステップST531~ST537のうち、ステップST531で集約チャネルの検索が開始される。そして、ステップST533のペイロード隠蔽処理、ステップST534のインターフェースおよびチャネル集約API集約処理、およびステップST535のプロセスリマッピング処理が主処理として実行される。<2.第2の実施形態>図4は、本第2の実施形態に係るモデル変換装置の構成例を示す図である。図4のモデル変換装置10Aが図1のモデル変換装置10と異なる点は、UML作図装置21、コード生成装置22を有していることにある。そして、中央処理装置11はUML作図装置21を介して変換モード切替装置14と通信を行う。その他の構成は図1のモデル変換装置10と同様である。なお、UML作図装置21、コード生成装置22の各処理はプログラムにより処理を実行可能である。このモデル変換装置10Aは、後述する第2実施例に適用される。<3.第3の実施形態>図5は、本第3の実施形態に係るモデル変換装置の構成例を示す図である。図5のモデル変換装置10Bが図4のモデル変換装置10Aと異なる点は、中央処理装置11はUML作図装置21を介さずに、変換モード切替装置14と直接的に通信を行うことにある。その他の構成は図4のモデル変換装置10Aと同様である。<4.第4の実施形態>図6は、本第4の実施形態に係るモデル変換装置の構成例を示す図である。図6のモデル変換装置10Cが図5のモデル変換装置10Bと異なる点は、UML作図装置21にHWハードウェアSWソフトウェアインターフェース回路生成装置23が接続されていることにある。その他の構成は図5のモデル変換装置10Bと同様である。HWSWインターフェース回路は、アドレスデコーダ、割り込みコントローラ、チップイネーブラー等の装置である。なお、HWSWインターフェース回路生成装置23の処理はプログラムにより処理を実行可能である。以上、本実施形態に係るモデル変換装置10の機能ブロックの構成例および機能について説明した。次に、UMLコンポーネント図、クラス図等に関連付けて本実施形態に係るモデル変換処理をより具体的に説明する。<5.モデル変換処理のより具体的処理例>図7は、SystemCで記述したインターフェースモデルシステムのUMLコンポーネント図である。このUMLコンポーネントにおいて、ソースモジュールSMとデスティネーションモジュールDMとの間に階層チャネルHCHが配置されている。ソースモジュールSMのポートPT1と階層チャネルHCHのポートPT2がインターフェースIF1を介して情報の授受が可能に構成されている。階層チャネルHCHのポートPT3とデスティネーションモジュールDMのポートPT4がインターフェースIF2を介して情報の授受が可能に構成されている。インターフェースIF1はプット関数putTを含み、インターフェースIF2はゲット関数getを含む。プットは送信機能を含み、ゲットは受信機能を含む。また、ペイロードPYLはレディrdy、バリッドvld、データdatを含んで構成される。このように、SystemCによるインターフェース記述には階層チャネルHCHが使用される。前述したように、階層チャネルHCHとは、内部にプロセスPRCを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、そのデータを転送するための通信に必要な信号をまとめたペイロードPYLと呼ばれるデータクラスから構成される。図8は、階層チャネルのクラス図である。これに対して、図9は、モデル変換後の動作合成可能なインターフェースモデルシステムのUMLコンポーネント図である。また、図10は、モデル変換後のインターフェース部分のクラス図である。以下、図7~図10に関連付けて、本実施形態に係るモデル変換装置10が相互変換が可能であることを証明する。[相互変換が可能であることの証明]相互変換が可能であることの証明には、クラスの等価、条件付き等価、および派生に代数定義を導入する。[クラス定義]クラスの定義は、基本的に以下の通りである。[等価]記法:classAclassB意味:クラスAとクラスBは等価で、交換可能である。[条件付き等価]記法:COND{M}classACONDclassB意味:Mが真の場合のクラスAとNが真の場合のクラスBは等価で、交換可能である。[派生クラス]記法:classBclassA意味:クラスBはクラスAの派生クラスである。[メンバ関数]記法:classAFunc意味:クラスAのメンバ関数Funcである。また、SystemC前提からも代数定義を導入する。[SystemC前提からの定義]scchannelscmodule意味:scchannelはscmoduleと等価である。∀IFscinterface意味:すべてのインターフェースクラスは、scintefaceクラスの派生クラスである。∀Portscport意味:すべてのポートクラスは、インターフェースクラスをテンプレートパラメータとするscportクラスの派生クラスである。∀CHscchannelPort意味:すべてのチャネルクラスは、scchannelとポートクラスの派生クラスである。PortBINDCH意味:PortポートクラスはCHチャネルクラスをバインドする。CONDM意味:Mという条件である。PortBINDCH∧∃1Func⇒CONDPortIFPortFuncCONDPortscport∧CHIFCHFunc意味:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば次の意味を持つ。すなわち、あるポートがあるポートインターフェースの派生クラスである場合のポートクラスのメンバ関数Funcと、あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするscportの派生クラスである。かつ、あるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数Funcは等価である。例:CONDPortputifPortputCONDPortscport∧CHputifCHputCONDPortgetifPortgetCONDPortscport∧CHgetifCHgetCONDPortBINDCHCOND∀PortPrimitivePort∈PortBINDCHPrimitiveCH∈CH意味:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価である。[定式化]図7および図8から階層チャネルの接続を定式化すると下記5式1~5を得る。1waithsscchannelputifgetif意味:waithsクラスはscchannelputifgetifクラスの派生クラスである。2waitoutscport意味:waitoutクラスはputifクラスをテンプレートパラメータとするscportの派生クラスである。3waitinscport意味:waitinクラスはgetifクラスをテンプレートパラメータとするscportの派生クラスである。4waitoutBINDwaiths意味:waitoutクラスはwaithsクラスをバインドする。5waitinBINDwaiths意味:waitinクラスはwaithsクラスをバインドする。図8および図10からモデル変換後の接続を定式化すると下記9式<1>~<9>を得る。<1>waithsscchannel意味:waithsはscchannelの派生クラスである。<2>waitoutscmoduleputif意味:waitoutクラスはscmoduleputifクラスの派生クラスである。<3>waitinscmodulegetif意味:waitinクラスはscmodulegetifクラスの派生クラスである。<4>waitoutvldBINDwaithsvld意味:waitoutvldはwaithsvldをバインドする。<5>waitoutrdyBINDwaithsrdy意味:waitoutrdyはwaithsrdyをバインドする。<6>waitoutdatBINDwaithsdat意味:waitoutdatはwaithsdatをバインドする。<7>waitinvldBINDwaithsvld意味:waitinvldはwaithsvldをバインドする。<8>waitinrdyBINDwaithsrdy意味:waitinvldはwaithsvldをバインドする。<9>waitindatBINDwaithsdat意味:waitinvldはwaithsvldをバインドする。[図8に示された階層チャネルのクラス図と図10に示されたモデル変換後のインターフェースクラス図が等価であることの証明]図8に示された階層チャネルのクラス図と図10に示されたモデル変換後のインターフェースクラス図が等価であることの証明は次の通りである。[バインド条件]モデル変換後の接続式から次の関係が得られる。waitoutvldBINDwaithsvldwaitoutrdyBINDwaithsrdywaitoutdatBINDwaithsdatwaitinvldBINDwaithsvldwaitinrdyBINDwaithsrdywaitindatBINDwaithsdat定義CONDPortBINDCHCOND∀PortPrimitivePort∈PortBINDCHPrimitiveCH∈CHから次の関係が得られる。waitoutBINDwaithswaitinBINDwaithsこれは、階層チャネル接続のバインド条件に等しい。よって、双方のバインド条件は等価である。モデル変換後のクラス代数より次に関係が得られる。waithsscchannelwaitoutscmoduleputifwaitinscmodulegetifバインド条件が等価∧putおよびgetはそれぞれ唯一であることから、次の関係が得られる。定義PORTBINDCH∧∃1FUNC⇒CONDPORTIF∧PORTFUNCCONDPORTscport∧CHIF∧CHFUNCにPORTwaitoutFUNCputIFputifCHwaithsを適用しwaitoutBINDwaiths∧∃1put⇒CONDwaitoutputif∧waitoutputCONDwaitoutscport∧waithsputif∧waithsputすなわち、次の関係が得られる。waitoutscportwaithsputif同様に、次の関係が得られる。waitinscportwaithsgetifまとめると次のようになる。waitoutscportwaitinscportwaithsgetif、putifこれは、階層チャネルのクラス代数と等価である。<6.第1実施例>図11A~Cは、第1実施例を説明するための図である。図11Aが、階層チャネル接続が入力システムのUMLコンポーネント図である。システムのSystemC記述を本装置に入力すると、図2および図3の処理フローに従って、クラスの派生クラスである、図11Bに示すようなモデルに変形される。モジュール内プロセスのインライニングを進めると、図11Cに示すようなモデルに変換されるが、scmethodから呼び出される場合にはインライニングできない。第1実施例はC言語を解析し、継承関係、メンバ関数の場所を組み替えるインターフェースおよびAPI分解チャネル分解あるいは集約チャネル集約とプロセスリマッピング技術を使用して、モデル変換後のC言語クラスを新たに出力する。<7.第2実施例>図12は、第2実施例を説明するための図である。本モデル変換装置はシステム構造の変換装置として実施すると解析対象を抽象化することができる。すなわち、図11で示したUMLコンポーネントダイアグラムを直接書き直すことにより実施する。本第2実施例は前述の第1実施例と比較し遥かに高速にモデルを構築することができる。具体的な操作手順は次のとおりである。[チャネル分解手順]チャネル分解手順は次の通りである。ディスプレイ上でマウス等を用いて行う。階層チャネルを選択する。右クリックによりドロップダウンメニューを開く。分解を選択する。この操作でUMLドローツールがチャネルをチャネル内部のパラメータ群に分解し、各々ソースデスティネーションモジュールにポートを生成する[チャネル集約手順]集約するチャネル群の選択右クリックによりドロップダウンメニューを開く集約を選択この操作で、UMLドローツールが階層チャネルを生成する。本階層チャネルは集約されたポートと集約された内部パラメータを内包する。部分的な分解と集約を使用することもある。図13は、ハードウェア側のみチャネル分解を行った設計事例を示す図である。[チャネルポート部分分解手順]チャネルポート部分分解手順は次の通りである。階層チャネルのポートを選択する。右クリックによりドロップダウンメニューを開く。分解を選択する。この操作でUMLドローツールがチャネルの選択されたポートのみチャネル内部のパラメータ群に分解される。接続されたモジュールとチャネル間に新たにポートが生成される。[チャネルポート集約手順]チャネルポート集約手順は次の通りである。階層チャネルに接続したいモジュールのポート群を選択する。右クリックによりドロップダウンメニューを開く。集約を選択。この操作で、UMLドローツールが階層チャネルを生成する。本階層チャネルは集約されたポートと集約されたパラメータを内包する。ただし、選択されなかったポート側は集約されない。<8.第3実施例>次に、第3実施例としてクラス簡略化について説明する。[クラス簡略化]第3実施例では、クラスの再利用バージョンアップを繰り返すと冗長な実行されない記述部分が発生する可能性がある。この整理にクラス変換を使用する。<9.第4実施例>第4実施例としてクラス再構築について説明する。[クラス再構築]第4実施例では、クラスの派生クラスでインプリしたものを基底クラスに移動させて整理したり、逆に基底クラスでインプリしていたものを派生クラスに移動させて基底クラスの責務を整理したりすることができる。<10.第5実施例>第5実施例としてクラス等価性検証について説明する。[クラス等価性検証]等価なクラスには構造的な変換パターンがある。この構造的変換パターンはプログラム言語を見てもその意味は良くわからないが、UMLダイアグラムで見ると物理的意味が理解できてくる。たとえばCの純粋仮想関数、オーバーライド、派生クラスに関しては言語的意味と同時にそれぞれ次のような物理的意味が存在する。すなわち、それぞれ派生クラスで必ずインスタンシエーションが必要、基底クラスのメソッドは無効になり派生クラスのメソッドが実行される、基底クラスのメソッドにアクセスできる可能性があるとの物理的意味が存在する。各変換を図示することにより等価な構造的変換パターンを準備し、等価な構造的変換パターンのみを変換に利用すれば返還後のクラスが等価であることを保証できる。[等価変換に使用するルール例]:次に、等価変換に使用するルール例を示す。外部に公開されたメソッドの種類publicなメソッドfriendfunction:関数毎の公開friendclass:クラス毎の公開inheritanceによるderivedclassからのbaseclass内protectedメンバアクセスvirtualによるbaseclassからのderivedclass内メンバアクセス上記のルールをすべて定式化し、定理を整理する。以上説明したように、本実施形態によれば、SystemCあるいはUMLで記述したインターフェースモデルと動作合成可能なインターフェースモデルとを等価性を保ったまま相互に変形することが可能となり、効果的なハードウェア開発が可能となる。なお、本技術は以下のような構成をとることができる。1固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し、変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用され、上記処理部は、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行うa:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作、モデル変換装置。2上記処理部は、シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う上記1記載のモデル変換装置。3上記処理部は、動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う上記1または2記載のモデル変換装置。4上記代数定義として、次の4つの代数的意味定義e,f,g,hを持つe:クラスが交換可能であることを意味するクラス等価、f:クラスが条件付きで交換可能であることを意味する条件付きクラス等価、g:クラスがあるクラスの派生であることを意味する派生クラス、h:ある関数があるクラスに属する関数であることを意味するメンバ関数、上記1から3のいずれか一に記載のモデル変換装置。5上記代数定義として、SystemC言語を設計記述言語とする場合には、次の7つの代数的意味定義i,j,k,l,m,n,oを持つi:scchannelとscmoduleがクラス等価であること、j:すべてのインターフェースクラスはscinterfaceクラスの派生クラスであること、k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするscportクラスの派生クラスであること、l:ポートクラスがチャネルクラスをバインドすること、m:Mという条件、n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならばn1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするscportの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価上記1から3のいずれか一に記載のモデル変換装置。6固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形ステップと、変形後の代数表現の双方が一致するか否かを判定する判定ステップと、変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う変換ステップと、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換ステップにおいては、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行うa:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作、モデル変換方法。7上記変換ステップにおいて、シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う上記6記載のモデル変換方法。8上記変換ステップにおいて、動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う上記6または7記載のモデル変換方法。9上記代数定義として、次の4つの代数的意味定義e,f,g,hを持つe:クラスが交換可能であることを意味するクラス等価、f:クラスが条件付きで交換可能であることを意味する条件付きクラス等価、g:クラスがあるクラスの派生であることを意味する派生クラス、h:ある関数があるクラスに属する関数であることを意味するメンバ関数、上記6から10のいずれか一に記載のモデル変換方法。10上記代数定義として、SystemC言語を設計記述言語とする場合には、次の4つの代数的意味定義i,j,k,l,m,n,oを持つi:scchannelとscmoduleがクラス等価であること、j:すべてのインターフェースクラスはscinterfaceクラスの派生クラスであること、k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするscportクラスの派生クラスであること、l:ポートクラスがチャネルクラスをバインドすること、m:Mという条件、n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならばn1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするscportの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価上記6から8のいずれか一に記載のモデル変換方法。11固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、変形後の代数表現の双方が一致するか否かを判定する判定処理と、変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換処理においては、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行うa:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作、を含むモデル変換処理をコンピュータに実行させるプログラム。"