説明

モデル変換装置、モデル変換方法、およびプログラム

【課題】煩雑な手間や時間をかけることなく、シミュレーション用インターフェースモデルと動作合成用インターフェースモデルとを等価性を保ったまま相互に変換することが可能なモデル変換装置、モデル変換方法、およびプログラムを提供する。
【解決手段】固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、処理部は、代数的に等価性を保つ以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、いわゆるシミュレーション用インターフェースモデルと動作合成用インターフェースモデルを相互に変換するモデル変換装置、モデル変換方法、およびプログラムに関するものである。
【背景技術】
【0002】
SystemCで記述したシミュレーション用インターフェースモデルと動作合成用インターフェースモデルとでは記述スタイル、抽象レベルが異なっている。
シミュレーション用インターフェースモデルではチャネルでモジュールのポートを接続する。
また、動作合成用モデルはハードウェア的にワイヤ(sc signalチャネル)でモジュールのピン端子を接続する。
【0003】
一般的に、このようなシミュレーション用インターフェースモデルから動作合成用インターフェースモデルに変換する方法としては、次の2つの方法が採用されている。
【0004】
第1の方法は、手動でモデルを書き直す方法である。
なお、第1の方法については、非特許文献1の記載が参照される。非特許文献1の15頁、図15において、SysC/C++/C moduleとSynthesizable SysC/C++/Cモデル間には手動によるリファインメントとなっている。
これは、まさに手動でモデルを書き直すことに他ならない。なお、SysCは非特許文献1においてSystemCの略記である。
【0005】
第2の方法は、事前に2通りの記述スタイルでモデルを構築・ライブラリ化し、ライブラリ使用の度に与えられた入力条件下でのシミュレーションによる期待値一致を確認する方法である。
第2の方法は、当業者なら容易になしえるであろう、第1の方法の運用面での派生である。
【0006】
また、UML(Unified Modeling Language)クラス図の形式化については非特許文献2に詳細に記載されている。
そして、UMLクラス図の意味論的整合性判定については非特許文献3〜5に記載されている。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】:SystemC Synthesizable Subset Draft 1.3 (http://www.systemc.org/downloads/drafts_reviewからダウンロード可能)
【非特許文献2】:Berardi, Calvanese, De Giacomo, "Reasoning on UML class diagrams", Artificial Intelligence Vol. 168, Issue 1
【非特許文献3】:遠城秀和, 田名部元成, 飯島淳一. クラス図間の意味論的整合性判定におけるクラス図代数への一考察, 経営情報学会2008年度春季全国研究発表大会, 経営情報学会2008年度秋季全国研究発表大会予稿集, pp. E3-3, Nov. 2008.
【非特許文献4】:遠城秀和, 飯島淳一. クラス図間の整合性判定におけるクラス図代数への一考察, 経営情報学会2008年度春季全国研究発表大会, 経営情報学会2008年度春季全国研究発表大会予稿集, pp. H4-2, Jun. 2008.
【非特許文献5】:遠城秀和, 飯島淳一. クラス図間の整合性判定におけるクラス図代数への一考察, 経営情報学会2008年度春季全国研究発表大会, 経営情報学会2008年度春季全国研究発表大会予稿集, pp. H4-2, Jun. 2008.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、第1の方法によれば、設計の度にSystemCで記述したインターフェースモデルと動作合成用可能なインターフェースモデルとの2つのモデルに対するダブルメンテナンスを継続する必要がある。
あるいは、第1の方法によれば、動作合成可能なインターフェースモデルを次の設計フェーズである論理合成フェーズ以降の参照モデルとして使用しSystemCで記述したインターフェースモデルの保守を諦めるかしかない。
【0009】
第2の方法のライブラリ化手法を使用すると、十分に実績を積むことによりライブラリとして使用された2つのモデルの与えられた入力条件下でのシミュレーションによる期待値一致の確度を高めることは可能ではある。
しかし、第2の方法は実績値のみで判断していることから、設計の度に入力条件が実績のある入力条件の範疇にあるかを確認するか、あるいは改めてシミュレーションによる期待値一致検証を実行する必要がある。
また万一問題が生じた場合には、使用したインターフェースライブラリの入力条件下での妥当性の再検討、あるいはインターフェースライブラリを使用した箇所のユーザー記述の誤りを疑う必要があり、膨大なデバッグ時間を必要とする。
【0010】
また、UMLクラス図の形式化については上述したように非特許文献2に詳細に記載されている。
しかし、この記載はあくまでクラスの数学的な意味づけを対象としており、クラスのインスタンス、およびそのインスタンス間の接続構造を含むUMLコンポーネント図の形式化については全く言及されておらず、示唆もされていない。
【0011】
また、UMLクラス図の意味論的整合性判定については上述したように、非特許文献3〜5の記載されている。
しかし、ここでも上述のクラスのインスタンス、およびそのインスタンス間の接続構造を含むUMLコンポーネント図の整合性判定については、全く言及されておらず、示唆もされていない。
さらに、数学的整合性に基づいた操作によるモデルの変換手順を開示するものではなく、単に任意操作後の整合性を判定するのみである。
【0012】
本技術は、煩雑な手間や時間をかけることなく、シミュレーション用インターフェースモデルと動作合成用インターフェースモデルとを等価性を保ったまま相互に変換することが可能なモデル変換装置、モデル変換方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【0013】
本技術の第1の観点のモデル変換装置は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用され、上記処理部は、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作。
【0014】
本技術の第2の観点のモデル変換方法は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形ステップと、変形後の代数表現の双方が一致するか否かを判定する判定ステップと、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う変換ステップと、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換ステップにおいては、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作。
【0015】
本技術の第3の観点は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、変形後の代数表現の双方が一致するか否かを判定する判定処理と、変形後の代数表現の双方が一致すれば(数学的に)モデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、上記変換処理においては、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う、a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、c:プロセスリマッピング操作、を含むモデル変換処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0016】
本技術によれば、煩雑な手間や時間をかけることなく、シミュレーション用インターフェースモデルと動作合成用インターフェースモデルとを等価性を保ったまま相互に変換することが可能となる。
【図面の簡単な説明】
【0017】
【図1】本第1の実施形態に係るモデル変換装置の構成例を示す図である。
【図2】本実施形態に係るモデル変換プログラムの演算処理の概要を示すフローチャートである。
【図3】本実施形態に係るモデル変換プログラムの演算処における具体的なモード変換処理の概要を示すフローチャートである。
【図4】本第2の実施形態に係るモデル変換装置の構成例を示す図である。
【図5】本第3の実施形態に係るモデル変換装置の構成例を示す図である。
【図6】本第4の実施形態に係るモデル変換装置の構成例を示す図である。
【図7】SystemCで記述したインターフェースモデルシステムのUMLコンポーネント図である。
【図8】階層チャネルのクラス図である。
【図9】モデル変換後の動作合成可能なインターフェースモデルシステムのUMLコンポーネント図である。
【図10】モデル変換後のインターフェース部分のクラス図である。
【図11】第1実施例を説明するための図である。
【図12】第2実施例を説明するための図である。
【図13】ハードウェア側のみチャネル分解を行った設計事例を示す図である。
【発明を実施するための形態】
【0018】
以下、本技術の実施形態を図面に関連付けて説明する。
なお、説明は以下の順序で行う。
1.第1の実施形態(モデル変換装置の第1の構成例)
2.第2の実施形態(モデル変換装置の第2の構成例)
3.第3の実施形態(モデル変換装置の第3の構成例)
4.第4の実施形態(モデル変換装置の第4の構成例)
5.モデル変換処理のより具体的処理例
6.第1実施例
7.第2実施例
8.第3実施例
9.第4実施例
10.第5実施例
【0019】
<1、第1の実施形態>
図1は、本第1の実施形態に係るモデル変換装置の構成例を示す図である。
【0020】
図1のモデル変換装置10は、中央処理装置11、入出力処理装置12、クラス解析装置13、変換モード切替装置14、ペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17を有する。
モデル変換装置10は、入出力処理装置12により情報の入出力を制御されるキーボード18、LCD等のディスプレイ19、および外部記憶装置20を有する。
このモデル変換装置10は、後述する第1実施例に適用される。
【0021】
そして、中央処理装置11、入出力処理装置12、クラス解析装置13、変換モード切替装置14、ペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17により処理部が構成される。
なお、クラス解析装置13、変換モード切替装置14、ペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17の各処理はプログラムにより処理を実行可能である。
【0022】
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、そのデータを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用される。
本実施形態の処理部は、固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する。
処理部は、変形後の代数表現の双方が一致すれば数学的にモデルに等価性があるとして、モデルの相互変換を行う。
そして、処理部は、代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う。
a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
c:プロセスリマッピング操作。
【0023】
処理部は、シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モード(階層チャネル検索)の際には、チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びにプロセスリマッピングを行う。
このシミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モード(階層チャネル検索)を第1の変換モードとする。
【0024】
処理部は、動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モード(集約チャネル検索)の際には、チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う。
この動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モード(集約チャネル検索)を第2の変換モードとする。
【0025】
本実施形態において、上述した代数定義として、次の4つの代数的意味定義e,f,g,hを持つ。
e:クラスが交換可能であることを意味するクラス等価、
f:クラスが条件付きで交換可能であることを意味する条件付きクラス等価、
g:クラスがあるクラスの派生であることを意味する派生クラス、
h:ある関数があるクラスに属する関数であることを意味するメンバ関数
【0026】
本実施形態において、上述した代数定義として、SystemC言語を設計記述言語とする場合には、次の7つの代数的意味定義i,j,k,l,m,n,oを持つ。
i:sc_channelとsc_moduleがクラス等価であること、
j:すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
l:ポートクラスがチャネルクラスをバインドすること、
m:Mという条件、
n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
n1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価。
【0027】
このような処理部において、中央処理装置11は、モデル変換装置10の全体を統合的に制御する。
中央処理装置11は、入出力処理装置12を介しキーボード18や外部記憶装置20により入力される固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの情報を入力する。
中央処理装置11は、入出力処理装置12から入力したモデル情報をクラス解析装置13に供給する。
中央処理装置11は、変換モード切替装置14の切替情報に応じた処理をペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17に行わせる。
【0028】
クラス解析装置13は、入力したモデル情報から得られた構造情報を基にクラス解析処理を行い、データベースを作成する。このデータベース情報は入出力処理装置12を通して、ディスプレイ19に表示され、また、外部記憶装置20に格納される。
【0029】
変換モード切替装置14は、第1の変換モードまたは第2の変換モードに応じた処理を行うように、中央処理装置11、ペイロード処理装置15、インターフェース装置16、およびプロセスリマッピング処理装置17に報知する。
【0030】
ペイロード処理装置15は、第1の変換モード時は、チャネルの束ねを解くペイロード公開処理を行う。
ペイロード処理装置15は、第2の変換モード時は、チャネルの束ねるペイロード隠蔽処理を行う。
【0031】
インターフェース装置16は、第1の変換モード時は、インターフェースおよびチャネル分解(API分解)処理を行う。
インターフェース装置16は、第2の変換モード時は、インターフェースおよびチャネル集約(API集約)処理を行う。
【0032】
プロセスリマッピング処理装置17は、第1の変換モードまたは第2の変換モードに応じたプロセスリマッピング処理を行う。
【0033】
図2および図3は、本実施形態に係るモデル変換プログラムの演算処理を示すフローチャートである。
図2(A)はモデル変換プログラムの全体の処理概要を示し、図2(B)は入出力処理を示し、図2(C)はクラス解析処理を示している。
また、図3(A)は具体的なモデル変換処理の概要を、図3(B)は第1の変換モード処理を、図3(C)は第2の変換モード処理を示している。
【0034】
本実施形態のモデル変換プログラムは、全体として図2(A)に示すステップST1〜ST7の処理を含んで実行される。
ステップST1〜ST7のうち、ステップST3の入出力処理、ステップST5のモデル変換処理、ステップST6の入出力処理が主処理として実行される。
【0035】
ステップST3、ST6の入出力処理は、図2(B)に示すように実行される。
ステップST31において、入出力処理装置12を介して入力されるシミュレーション用インターフェースモデルおよび動作合成用インターフェースモデルの情報から中央処理装置11によりシステムの構造が読み取られる。
次に、ステップST32において、クラス解析装置13にてクラス解析が行われる。
ステップST33において、入出力処理装置12を介してファイルの出力が行われる。
そして、ステップST34において、ディスプレイ19にファイルが表示される。
【0036】
ステップST32のクラス解析処理は、図2(C)に示すステップST321〜ST325の処理を含んで実行される。
ステップST321〜ST325のうち、ステップST322のプリプロセッサパーサ、ステップST323のC++パーサ、およびデータベース作成処理が主処理として実行される。
【0037】
ステップST5のモデル変換処理は、具体的には、図3(A)〜(C)に示す処理を含んで実行される。
このモデル変換処理は、主として、中央処理装置11、変換モード切替装置14、ペイロード処理装置15、インターフェース処理装置16、およびプロセスリマッピング処理装置17により実行される。
【0038】
まず、全体として、図3(A)に示すように、ステップST51において、変換モードが第1の変換モードか第2の変換モードかが判定される。
そして、第1の変換モードのときはステップST52の処理が実行され、第2の変換モードのときはステップST53の処理が実行される。
【0039】
ステップST52の第1の変換モードの処理は、図3(B)に示すステップST521〜ST527の処理を含んで実行される。
ステップST521〜ST527のうち、ステップST521で階層チャネルの検索が開始される。
そして、ステップST523のペイロード公開処理、ステップST524のインターフェースおよびチャネル分解(API分解)処理、およびステップST525のプロセスリマッピング処理が主処理として実行される。
【0040】
ステップST53の第2の変換モードの処理は、図3(C)に示すステップST531〜ST537の処理を含んで実行される。
ステップST531〜ST537のうち、ステップST531で集約チャネルの検索が開始される。
そして、ステップST533のペイロード隠蔽処理、ステップST534のインターフェースおよびチャネル集約(API集約)処理、およびステップST535のプロセスリマッピング処理が主処理として実行される。
【0041】
<2.第2の実施形態>
図4は、本第2の実施形態に係るモデル変換装置の構成例を示す図である。
【0042】
図4のモデル変換装置10Aが図1のモデル変換装置10と異なる点は、UML作図装置21、コード生成装置22を有していることにある。
そして、中央処理装置11はUML作図装置21を介して変換モード切替装置14と通信を行う。
その他の構成は図1のモデル変換装置10と同様である。
【0043】
なお、UML作図装置21、コード生成装置22の各処理はプログラムにより処理を実行可能である。
このモデル変換装置10Aは、後述する第2実施例に適用される。
【0044】
<3.第3の実施形態>
図5は、本第3の実施形態に係るモデル変換装置の構成例を示す図である。
【0045】
図5のモデル変換装置10Bが図4のモデル変換装置10Aと異なる点は、中央処理装置11はUML作図装置21を介さずに、変換モード切替装置14と直接的に通信を行うことにある。
その他の構成は図4のモデル変換装置10Aと同様である。
【0046】
<4.第4の実施形態>
図6は、本第4の実施形態に係るモデル変換装置の構成例を示す図である。
【0047】
図6のモデル変換装置10Cが図5のモデル変換装置10Bと異なる点は、UML作図装置21にHW(ハードウェア)・SW(ソフトウェア)インターフェース回路生成装置23が接続されていることにある。
その他の構成は図5のモデル変換装置10Bと同様である。
HW・SWインターフェース回路は、アドレスデコーダ、割り込みコントローラ、チップイネーブラー等の装置である。
【0048】
なお、HW・SWインターフェース回路生成装置23の処理はプログラムにより処理を実行可能である。
【0049】
以上、本実施形態に係るモデル変換装置10の機能ブロックの構成例および機能について説明した。
次に、UMLコンポーネント図、クラス図等に関連付けて本実施形態に係るモデル変換処理をより具体的に説明する。
【0050】
<5.モデル変換処理のより具体的処理例>
図7は、SystemCで記述したインターフェースモデルシステムのUMLコンポーネント図である。
【0051】
このUMLコンポーネントにおいて、ソースモジュールSMとデスティネーションモジュールDMとの間に階層チャネルHCHが配置されている。
ソースモジュールSMのポートPT1と階層チャネルHCHのポートPT2がインターフェースIF1を介して情報の授受が可能に構成されている。
階層チャネルHCHのポートPT3とデスティネーションモジュールDMのポートPT4がインターフェースIF2を介して情報の授受が可能に構成されている。
インターフェースIF1はプット関数put(T)を含み、インターフェースIF2はゲット関数get()を含む。プットは送信機能を含み、ゲットは受信機能を含む。
また、ペイロードPYLはレディrdy、バリッドvld、データdatを含んで構成される。
【0052】
このように、SystemCによるインターフェース記述には階層チャネルHCHが使用される。
前述したように、階層チャネルHCHとは、内部にプロセスPRCを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、そのデータを転送するための通信に必要な信号をまとめたペイロードPYLと呼ばれるデータクラスから構成される。
【0053】
図8は、階層チャネルのクラス図である。
これに対して、図9は、モデル変換後の動作合成可能なインターフェースモデルシステムのUMLコンポーネント図である。
また、図10は、モデル変換後のインターフェース部分のクラス図である。
以下、図7〜図10に関連付けて、本実施形態に係るモデル変換装置10が相互変換が可能であることを証明する。
【0054】
[相互変換が可能であることの証明]
相互変換が可能であることの証明には、クラスの等価、条件付き等価、および派生に代数定義を導入する。
【0055】
[クラス定義]
クラスの定義は、基本的に以下の通りである。
【0056】
[等価]
記法:class A = class B
意味:クラスAとクラスBは等価で、交換可能である。
【0057】
[条件付き等価]
記法:$COND{M}classA =$COND(N)classB
意味:Mが真の場合のクラスAとNが真の場合のクラスBは等価で、交換可能である。
【0058】
[派生クラス]
記法:class B: classA
意味:クラスBはクラスAの派生クラスである。
【0059】
[メンバ関数]
記法:classA::Func
意味:クラスAのメンバ関数Funcである。
【0060】
また、SystemC前提からも代数定義を導入する。
【0061】
[SystemC前提からの定義]
sc_channel = sc_module
意味:sc_channelは sc_moduleと等価である。
【0062】
∀IF: sc_interface
意味:すべてのインターフェースクラスは、sc_intefaceクラスの派生クラスである。
【0063】
∀Port:sc_port<IF>
意味:すべてのポートクラスは、インターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスである。
【0064】
∀CH:sc_channel, Port
意味:すべてのチャネルクラスは、sc_channelとポートクラスの派生クラスである。
【0065】
Port $BIND CH
意味:PortポートクラスはCHチャネルクラスをバインドする。
【0066】
$COND{M}
意味:Mという条件である。
【0067】
Port $BIND CH ∧ ∃1Func⇒ $COND{Port:IF}Port::Func = $COND{Port:sc_port<IF>∧CH:IF}CH::Func
意味:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば次の意味を持つ。
すなわち、あるポートがあるポートインターフェースの派生クラスである場合のポートクラスのメンバ関数Funcと、あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスである。かつ、あるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数Funcは等価である。
【0068】
例:
$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}}
意味:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価である。
【0069】
[定式化]
図7および図8から階層チャネルの接続を定式化すると下記5式(1)〜(5)を得る。
【0070】
(1)wait_hs : sc_channel, put_if, get_if
意味:wait_hsクラスはsc_channel, put_if, get_ifクラスの派生クラスである。
【0071】
(2)wait_out : sc_port<put_if>
意味:wait_outクラスはput_ifクラスをテンプレートパラメータとするsc_portの派生クラスである。
【0072】
(3)wait_in : sc_port<get_if>
意味:wait_inクラスはget_ifクラスをテンプレートパラメータとするsc_portの派生クラスである。
【0073】
(4)wait_out $BIND wait_hs
意味:wait_outクラスはwait_hsクラスをバインドする。
【0074】
(5)wait_in $BIND wait_hs
意味:wait_inクラスはwait_hsクラスをバインドする。
【0075】
図8および図10からモデル変換後の接続を定式化すると下記9式<1>〜<9>を得る。
【0076】
<1>wait_hs : sc_channel
意味:wait_hsはsc_channelの派生クラスである。
【0077】
<2>wait_out : sc_module, put_if
意味:wait_outクラスはsc_module, put_ifクラスの派生クラスである。
【0078】
<3>wait_in : sc_module, get_if
意味:wait_inクラスはsc_module, get_ifクラスの派生クラスである。
【0079】
<4>wait_out::vld $BIND wait_hs::vld
意味:wait_out::vldはwait_hs::vldをバインドする。
【0080】
<5>wait_out::rdy $BIND wait_hs::rdy
意味:wait_out::rdyはwait_hs::rdyをバインドする。
【0081】
<6>wait_out::dat $BIND wait_hs::dat
意味:wait_out::datはwait_hs::datをバインドする。
【0082】
<7>wait_in::vld $BIND wait_hs::vld
意味:wait_in::vldはwait_hs::vldをバインドする。
【0083】
<8>wait_in::rdy $BIND wait_hs::rdy
意味:wait_in::vldはwait_hs::vldをバインドする。
【0084】
<9>wait_in::dat $BIND wait_hs::dat
意味:wait_in::vldはwait_hs::vldをバインドする。
【0085】
[図8に示された階層チャネルのクラス図と図10に示されたモデル変換後のインターフェースクラス図が等価であることの証明]
図8に示された階層チャネルのクラス図と図10に示されたモデル変換後のインターフェースクラス図が等価であることの証明は次の通りである。
【0086】
[バインド条件]
モデル変換後の接続式から次の関係が得られる。
【0087】
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
【0088】
定義$COND{Port $BIND CH} = $COND{∀{Port::PrimitivePort∈Port $BIND CH::PrimitiveCH∈CH}} から次の関係が得られる。
【0089】
wait_out $BIND wait_hs
wait_in $BIND wait_hs
【0090】
これは、階層チャネル接続のバインド条件に等しい。
よって、双方のバインド条件は等価である。
【0091】
モデル変換後のクラス代数より次に関係が得られる。
【0092】
wait_hs : sc_channel
wait_out : sc_module, put_if
wait_in : sc_module, get_if
【0093】
バインド条件が等価∧put()およびget()はそれぞれ唯一であることから、次の関係が得られる。
【0094】
定義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()
【0095】
すなわち、次の関係が得られる。
wait_out:sc_port<put_if>
wait_hs:put_if}
【0096】
同様に、次の関係が得られる。
wait_in:sc_port<get_if>
wait_hs:get_if}
【0097】
まとめると次のようになる。
wait_out:sc_port<put_if>
wait_in:sc_port<get_if>
wait_hs:get_if}、put_if}
これは、階層チャネルのクラス代数と等価である。
【0098】
<6.第1実施例>
図11(A)〜(C)は、第1実施例を説明するための図である。
【0099】
図11(A)が、階層チャネル接続が入力システムのUMLコンポーネント図である。 システムのSystemC記述を本装置に入力すると、図2および図3の処理フローに従って、クラスの派生クラスである、図11(B)に示すようなモデルに変形される。
モジュール内プロセスのインライニングを進めると、図11(C)に示すようなモデルに変換されるが、sc_methodから呼び出される場合にはインライニングできない。
【0100】
第1実施例はC++言語を解析し、継承関係、メンバ関数の場所を組み替えるインターフェースおよびAPI分解(チャネル分解)あるいは集約(チャネル集約)とプロセスリマッピング技術を使用して、モデル変換後のC++言語クラスを新たに出力する。
【0101】
<7.第2実施例>
図12は、第2実施例を説明するための図である。
【0102】
本モデル変換装置はシステム構造の変換装置として実施すると解析対象を抽象化することができる。
すなわち、図11で示したUMLコンポーネントダイアグラムを直接書き直すことにより実施する。
本第2実施例は前述の第1実施例と比較し遥かに高速にモデルを構築することができる。
具体的な操作手順は次のとおりである。
【0103】
[チャネル分解手順]
チャネル分解手順は次の通りである。ディスプレイ上でマウス等を用いて行う。
階層チャネルを選択する。
右クリックによりドロップダウンメニューを開く。
分解を選択する。
この操作でUMLドローツールがチャネルをチャネル内部のパラメータ群に分解し、各々ソース・デスティネーションモジュールにポートを生成する
【0104】
[チャネル集約手順]
集約するチャネル群の選択
右クリックによりドロップダウンメニューを開く
集約を選択
【0105】
この操作で、UMLドローツールが階層チャネルを生成する。本階層チャネルは集約されたポートと集約された内部パラメータを内包する。
部分的な分解と集約を使用することもある。
【0106】
図13は、ハードウェア側のみチャネル分解を行った設計事例を示す図である。
【0107】
[チャネル・ポート(部分)分解手順]
チャネル・ポート(部分)分解手順は次の通りである。
階層チャネルのポートを選択する。
右クリックによりドロップダウンメニューを開く。
分解を選択する。
【0108】
この操作でUMLドローツールがチャネルの選択されたポートのみチャネル内部のパラメータ群に分解される。接続されたモジュールとチャネル間に新たにポートが生成される。
【0109】
[チャネル・ポート集約手順]
チャネル・ポート集約手順は次の通りである。
階層チャネルに接続したいモジュールのポート群を選択する。
右クリックによりドロップダウンメニューを開く。
集約を選択。
【0110】
この操作で、UMLドローツールが階層チャネルを生成する。本階層チャネルは集約されたポートと集約されたパラメータを内包する。ただし、選択されなかったポート側は集約されない。
【0111】
<8.第3実施例>
次に、第3実施例としてクラス簡略化について説明する。
[クラス簡略化]
第3実施例では、クラスの再利用・バージョンアップを繰り返すと冗長な実行されない記述部分が発生する可能性がある。この整理にクラス変換を使用する。
【0112】
<9.第4実施例>
第4実施例としてクラス再構築について説明する。
[クラス再構築]
第4実施例では、クラスの派生クラスでインプリしたものを基底クラスに移動させて整理したり、逆に基底クラスでインプリしていたものを派生クラスに移動させて基底クラスの責務を整理したりすることができる。
【0113】
<10.第5実施例>
第5実施例としてクラス等価性検証について説明する。
[クラス等価性検証]
等価なクラスには構造的な変換パターンがある。この構造的変換パターンはプログラム言語を見てもその意味は良くわからないが、UMLダイアグラムで見ると物理的意味が理解できてくる。
たとえばC++の純粋仮想関数、オーバーライド、派生クラスに関しては言語的意味と同時にそれぞれ次のような物理的意味が存在する。
すなわち、それぞれ「派生クラスで必ずインスタンシエーションが必要」、「基底クラスのメソッドは無効になり派生クラスのメソッドが実行される」、「基底クラスのメソッドにアクセスできる可能性がある」との物理的意味が存在する。
各変換を図示することにより等価な構造的変換パターンを準備し、等価な構造的変換パターンのみを変換に利用すれば返還後のクラスが等価であることを保証できる。
【0114】
[等価変換に使用するルール例]:
次に、等価変換に使用するルール例を示す。
・外部に公開されたメソッドの種類
・publicなメソッド
・friend function:関数毎の公開
・friend class:クラス毎の公開
・inheritanceによるderived classからのbase class内protectedメンバアクセス
・virtualによるbase classからのderived class内メンバアクセス
上記のルールをすべて定式化し、定理を整理する。
【0115】
以上説明したように、本実施形態によれば、SystemCあるいはUMLで記述したインターフェースモデルと動作合成可能なインターフェースモデルとを等価性を保ったまま相互に変形することが可能となり、効果的なハードウェア開発が可能となる。
【0116】
なお、本技術は以下のような構成をとることができる。
(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:sc_channelとsc_moduleがクラス等価であること、
j:すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
l:ポートクラスがチャネルクラスをバインドすること、
m:Mという条件、
n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
n1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
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:sc_channelとsc_moduleがクラス等価であること、
j:すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
l:ポートクラスがチャネルクラスをバインドすること、
m:Mという条件、
n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
n1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価
上記(6)から(8)のいずれか一に記載のモデル変換方法。
(11)固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、
変形後の代数表現の双方が一致するか否かを判定する判定処理と、
変形後の代数表現の双方が一致すれば(数学的に)モデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、
上記変換処理においては、
代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
c:プロセスリマッピング操作、
を含むモデル変換処理をコンピュータに実行させるプログラム。
【符号の説明】
【0117】
10,10A〜10C・・・モデル変換装置、11・・・中央処理装置、12・・・入出力処理装置、13・・・クラス解析装置、14・・・変換モード切替装置、15・・・ペイロード処理装置、16・・・インターフェース装置、17・・・プロセスリマッピング処理装置、18・・・キーボード、19・・・ディスプレイ、20・・・外部記憶装置、21・・・UML作図装置、22・・・コード生成装置、23・・・HW・SWインターフェース回路生成装置、HCH・・・階層チャネル、SM・・・ソースモジュール、DM,DM−A,MD−B,DM−C・・・デスティネーションモジュール、PT・・・ポート、IF・・・インターフェース、PRC・・・プロセス、PYL・・・ペイロード。

【特許請求の範囲】
【請求項1】
固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形し、変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う処理部を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルが使用され、
上記処理部は、
代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
c:プロセスリマッピング操作、
モデル変換装置。
【請求項2】
上記処理部は、
シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う
請求項1記載のモデル変換装置。
【請求項3】
上記処理部は、
動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う
請求項1記載のモデル変換装置。
【請求項4】
上記代数定義として、次の4つの代数的意味定義e,f,g,hを持つ
e:クラスが交換可能であることを意味するクラス等価、
f:クラスが条件付きで交換可能であることを意味する条件付きクラス等価、
g:クラスがあるクラスの派生であることを意味する派生クラス、
h:ある関数があるクラスに属する関数であることを意味するメンバ関数、
請求項1記載のモデル変換装置。
【請求項5】
上記代数定義として、SystemC言語を設計記述言語とする場合には、次の7つの代数的意味定義i,j,k,l,m,n,oを持つ
i:sc_channelとsc_moduleがクラス等価であること、
j:すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
l:ポートクラスがチャネルクラスをバインドすること、
m:Mという条件、
n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
n1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価
請求項1記載のモデル変換装置。
【請求項6】
固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形ステップと、
変形後の代数表現の双方が一致するか否かを判定する判定ステップと、
変形後の代数表現の双方が一致すればモデルに等価性があるとして、モデルの相互変換を行う変換ステップと、を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、
上記変換ステップにおいては、
代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
c:プロセスリマッピング操作、
モデル変換方法。
【請求項7】
上記変換ステップにおいて、
シミュレーション用インターフェースモデルを動作合成用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねを解くペイロード公開、インターフェースおよびチャネル分解、並びに、プロセスリマッピングを行う
請求項6記載のモデル変換方法。
【請求項8】
上記変換ステップにおいて、
動作合成用インターフェースモデルをシミュレーション用インターフェースモデルに変換する変換モードの際には、
チャネルの束ねるペイロード隠蔽、インターフェースおよびチャネル集約、並びに、プロセスリマッピングを行う
請求項6記載のモデル変換方法。
【請求項9】
上記代数定義として、次の4つの代数的意味定義e,f,g,hを持つ
e:クラスが交換可能であることを意味するクラス等価、
f:クラスが条件付きで交換可能であることを意味する条件付きクラス等価、
g:クラスがあるクラスの派生であることを意味する派生クラス、
h:ある関数があるクラスに属する関数であることを意味するメンバ関数、
請求項6記載のモデル変換方法。
【請求項10】
上記代数定義として、SystemC言語を設計記述言語とする場合には、次の4つの代数的意味定義i,j,k,l,m,n,oを持つ
i:sc_channelとsc_moduleがクラス等価であること、
j:すべてのインターフェースクラスはsc_interfaceクラスの派生クラスであること、
k:すべてのポートクラスはインターフェースクラスをテンプレートパラメータとするsc_portクラスの派生クラスであること、
l:ポートクラスがチャネルクラスをバインドすること、
m:Mという条件、
n:あるポートクラスがあるチャネルクラスをバインドし、かつある関数が唯一存在するならば
n1:あるポートクラスがあるインターフェースクラスの派生クラスである場合のポートクラスのメンバ関数と、
n2:あるポートクラスがあるインターフェースクラスをテンプレートパラメータとするsc_portの派生クラスであり、かつあるチャネルがあるインターフェースクラスの派生クラスである場合のチャネルクラスのメンバ関数とは等価であること、
o:あるポートクラスがあるチャネルクラスをバインドする条件は、ポートクラスに属するすべてのプリミティブポートをチャネルに属するすべてのプリミティブチャネルにバインドする条件と等価
請求項6記載のモデル変換方法。
【請求項11】
固定された記述スタイルのシミュレーション用インターフェースモデルおよび固定された記述スタイルの動作合成用インターフェースモデルの各代数表現を変形する変形処理と、
変形後の代数表現の双方が一致するか否かを判定する判定処理と、
変形後の代数表現の双方が一致すれば(数学的に)モデルに等価性があるとして、モデルの相互変換を行う変換処理と、を有し、
インターフェース記述には、内部にプロセスを持つことが可能なチャネルクラスであり、転送の対象であるデータそのものと、当該データを転送するための通信に必要な信号をまとめたペイロードと呼ばれるデータクラスから形成される階層チャネルを使用し、
上記変換処理においては、
代数的に等価性を保つ、以下の3つの操作a,b,cによる階層チャネルおよび集約チャネルモデル変換の相互等価変換を行う
a:ペイロード公開、およびペイロード隠蔽操作の相互等価変換、
b:インターフェースおよびチャネル分解、およびインターフェースおよびチャネル集約、
c:プロセスリマッピング操作、
を含むモデル変換処理をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−45350(P2013−45350A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−183827(P2011−183827)
【出願日】平成23年8月25日(2011.8.25)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】