(57)【特許請求の範囲】
【請求項１】
システム記述言語で記述され、実行順序制約が規定されたシステム仕様を、実行順序制約を有する複数のシステム仕様部品を用いて実現するための仕様交換装置であって、
前記システム仕様の第１の問合わせ仕様の一部を満たす第１のシステム仕様部品の宣伝を前記複数の仕様部品から検索する手段と、
検索された前記第１のシステム仕様部品の宣伝を前記第１の問合わせ仕様から減じると共に、この減じた結果に対し、前記第１のシステム仕様部品の宣伝において第１の問合わせ仕様では充足されない実行順序制約を加えることにより、第２の問合わせ仕様を生成する手段と、
前記第２の問合わせ仕様を満たす第２のシステム仕様部品の宣伝を前記複数の仕様部品のなかから検索する手段と、
検索されたそれぞれの宣伝に対応する前記第１のシステム仕様部品と前記第２のシステム仕様部品とを、前記システム仕様に規定された前記実行順序制約を満たすように統合する手段と、
前記システム仕様を、統合された前記第１のシステム仕様部品及び前記第２のシステム仕様部品で置き換える手段と、を具備することを特徴とする仕様交換装置。
【請求項２】
前記検索手段は、前記第１のシステム仕様の第１の問合わせ仕様の一部に関する実行順序制約と、前記第１のシステム仕様部品の宣伝の実行順序制約との和を計算する手段と、計算された前記和に実行制約上に矛盾があるか否かを判断する手段と、を具備する請求項１に記載の仕様交換装置。
【請求項３】
前記和の計算は、集合演算を利用した計算を含む請求項２に記載の仕様交換装置。
【請求項４】
前記和の計算は、グラフ理論を利用した計算を含む請求項２に記載の仕様交換装置。
【請求項５】
前記統合手段は、前記第１のシステム仕様部品の第１のチャネルを生成する手段と、前記第２のシステム仕様部品の第２のチャネルを生成する手段と、前記第１及び第２のチャネルを用いる通信プロトコルを生成する手段と、を具備する請求項１に記載の仕様交換装置。
【請求項６】
システム記述言語で記述され、実行順序制約が規定されたシステム仕様を、実行順序制約を有する複数のシステム仕様部品を用いて実現するための仕様交換プログラムであって、
コンピュータを、
前記システム仕様の第１の問合わせ仕様の一部を満たす第１のシステム仕様部品の宣伝を前記複数の仕様部品から検索する手段、
検索された前記第１のシステム仕様部品の宣伝を前記第１の問合わせ仕様から減じると共に、この減じた結果に対し、前記第１のシステム仕様部品の宣伝において第１の問合わせ仕様では充足されない実行順序制約を加えることにより、第２の問合わせ仕様を生成する手段、
前記第２の問合わせ仕様を満たす第２のシステム仕様部品の宣伝を前記複数の仕様部品のなかから検索する手段、
検索されたそれぞれの宣伝に対応する前記第１のシステム仕様部品と前記第２のシステム仕様部品とを、前記システム仕様に規定された前記実行順序制約を満たすように統合する手段、
前記システム仕様を、統合された前記第１のシステム仕様部品及び前記第２のシステム仕様部品で置き換える手段として機能させるための仕様交換プログラム。
【請求項７】
前記検索手段は、前記第１のシステム仕様の第１の問合わせ仕様の一部に関する実行順序制約と、前記第１のシステム仕様部品の宣伝の実行順序制約との和を計算する手段と、計算された前記和に実行制約上に矛盾があるか否かを判断する手段と、を具備する請求項６に記載の仕様交換プログラム。
【請求項８】
前記和の計算は、集合演算を利用した計算を含む請求項７に記載の仕様交換プログラム。
【請求項９】
前記和の計算は、グラフ理論を利用した計算を含む請求項７に記載の仕様交換プログラム。
【請求項１０】
前記統合手段は、前記第１のシステム仕様部品の第１のチャネルを生成する手段と、前記第２のシステム仕様部品の第２のチャネルを生成する手段と、前記第１及び第２のチャネルを用いる通信プロトコルを生成する手段と、を具備する請求項６に記載の仕様交換プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機や電子機器等のハードウエア、ソフトウエア、及びその組み合わせを含むシステムの設計支援に関する。
【０００２】
【従来の技術】
近年、ハードウエアとソフトウエアとを区別しない、システムレベルでの仕様記述のためのシステム仕様記述言語が開発され、これによりシステムレベルでの仕様から具体的なソフトウエアまたはハードウエアに分割された仕様へ、同一の仕様の書式に基づいて一貫して仕様記述を行う環境が整いつつある。システム設計の上流段階において、システム仕様を確かめながらの設計環境を提供するラピッドプロトタイピングツール（ＲａｐｉｄやＢｅｔｔｅｒＳｔａｔｅ）が知られている。Ｒａｐｉｄの参考文献：「Rapid-plus, White Paper」,http://www.e-sim.com/pdf/whtpaper.pdf）。
【０００３】
これらラピッドプロトタイピングツールは、階層的な状態遷移図を利用してシステム分析と設計をシームレスに、かつ迅速に行えることを特徴としており、仕様の実装方法が明らかでないシステムレベルでの仕様設計の観点からすると割込み実行、逐次実行、並列実行を階層的に組み合わせることで効率的な設計が行える利点がある。
【０００４】
設計の上流段階、すなわちアーキテクチャが決まっていない段階においてシステム設計を効率的に行うためには、システムレベルでの仕様を部品化し、再利用するための技術が必須である。システム仕様記述言語では、自然言語ではなく形式的な仕様記述規則に従ってシステムの内容（動作）を記述できる。しかし、システムレベルの仕様記述に基づいて仕様部品の内容を検索し、再利用するための仕組みはこれまで提供されていない。
【０００５】
これまでのソフトウエア工学におけるソフトウエアの部品化は、詳細に設計された部品、いわゆる実装レベルの部品を提供するものであり、部品のＡＰＩ（Application Programming Interface）の関数仕様を利用者に提供するというものであった。再利用を考慮した部品化においても、予め決められたアーキテクチャでのみの利用が可能となっている。例えば、Ｊａｖａ言語で記述されたプログラムにおけるJavaBeansは、Ｊａｖａ実行環境における部品化のための仕様を規定しており、この規定された部品化仕様の範囲でのみ部品を再利用できる。JavaBeansの参考文献（「JavaプログラミングJavaBeans−コンポーネント・フレームワーク」，サイエンス社，(1997/12/01)，ISBN:4781908624）。
【０００６】
このようなソフトウエアの部品化に関する従来技術は、自然言語による部品の説明や分類指標（インデクス）を付与しておき、これを検索することで部品検索および再利用を実現するものであり、自然言語以外のソフトウエアの内容にまで踏み込んで部品の検索、再利用を実現するものではない。
【０００７】
つまり、上述したようにシステム仕様記述言語に沿って作成されたシステムレベルの仕様を部品化し、再利用する仕組みはこれまで存在しなかった。
【０００８】
【発明が解決しようとする課題】
本発明は、システム仕様記述言語に沿って作成された仕様を部品化しておき、詳細化前のシステムレベルの設計段階において適切な部品を検索し、仕様に組み込んで有効に再利用するための仕様交換方法、設計支援システム、仕様交換プログラム、ならびに設計支援プログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明に係る仕様交換方法は、システム記述言語で記述され、実行順序制約が規定されたシステム仕様を、複数のシステム仕様部品を用いて実現するための仕様交換方法であって、前記システム仕様の一部を満たす第１のシステム仕様部品を前記複数の仕様部品から検索するステップと、検索された前記第１のシステム仕様部品を考慮して、前記システム仕様の他部に相当するシステム仕様を生成するステップと、前記システム仕様の他部を満たす第２のシステム仕様部品を前記複数の仕様部品のなかから検索するステップと、前記第１のシステム仕様部品と前記第２のシステム仕様部品とを、前記システム仕様に規定された前記実行順序制約を満たすように統合するステップと、前記システム仕様を、統合された前記第１のシステム仕様部品及び前記第２のシステム仕様部品で置き換えるステップと、を具備することを特徴とする仕様交換方法である。
【００１０】
また、本発明に係る設計支援システムは、システムレベルの計算の仕様および通信の仕様からなる仕様モデルを作成するステップと、前記仕様モデルの部分構造を分割して所定のアーキテクチャの部分要素に分配し、アーキテクチャモデルを作成するステップと、前記アーキテクチャの部分要素間の通信手順を前記通信の仕様に基づいて合成し、コミュニケーションモデルを作成するステップと、前記仕様モデル、前記アーキテクチャモデル、前記コミュニケーションモデルを相互に関連付けてシステム仕様として記録するステップと、前記システム仕様からハードウエア仕様を生成するステップと、前記システム仕様からソフトウエア仕様を生成するステップと、システム記述言語で記述され、実行順序制約が規定されたシステム仕様を、複数のシステム仕様部品を用いて実現する仕様交換ステップであって、前記システム仕様の一部を満たす第１のシステム仕様部品を前記複数の仕様部品から検索するステップと、検索された前記第１のシステム仕様部品を考慮して、前記システム仕様の他部に相当するシステム仕様を生成するステップと、前記システム仕様の他部を満たす第２のシステム仕様部品を前記複数の仕様部品のなかから検索するステップと、前記第１のシステム仕様部品と前記第２のシステム仕様部品とを、前記システム仕様に規定された前記実行順序制約を満たすように統合するステップと、前記システム仕様を、統合された前記第１のシステム仕様部品及び前記第２のシステム仕様部品で置き換えるステップと、を具備する仕様交換ステップと、を具備することを特徴とする設計支援システムである。
【００１１】
また、本発明に係る仕様交換プログラムは、システム記述言語で記述され、実行順序制約が規定されたシステム仕様を、複数のシステム仕様部品を用いて実現するための仕様交換プログラムであって、コンピュータを、前記システム仕様の一部を満たす第１のシステム仕様部品を前記複数の仕様部品から検索する手段、検索された前記第１のシステム仕様部品を考慮して、前記システム仕様の他部に相当するシステム仕様を生成する手段、前記システム仕様の他部を満たす第２のシステム仕様部品を前記複数の仕様部品のなかから検索する手段、前記第１のシステム仕様部品と前記第２のシステム仕様部品とを、前記システム仕様に規定された前記実行順序制約を満たすように統合する手段、前記システム仕様を、統合された前記第１のシステム仕様部品及び前記第２のシステム仕様部品で置き換える手段として機能させるための仕様交換プログラムである。
【００１２】
また、本発明に係る設計支援プログラムは、コンピュータを、システムレベルの計算の仕様および通信の仕様からなる仕様モデルを作成する手段、前記仕様モデルの部分構造を分割して所定のアーキテクチャの部分要素に分配し、アーキテクチャモデルを作成する手段、前記アーキテクチャの部分要素間の通信手順を前記通信の仕様に基づいて合成し、コミュニケーションモデルを作成する手段、前記仕様モデル、前記アーキテクチャモデル、前記コミュニケーションモデルを相互に関連付けてシステム仕様として記録する手段、前記システム仕様からハードウエア仕様を生成する手段、前記システム仕様からソフトウエア仕様を生成する手段、として機能させるとともに、システム記述言語で記述され、実行順序制約が規定されたシステム仕様の一部を満たす第１のシステム仕様部品を複数の仕様部品から検索する手段、検索された前記第１のシステム仕様部品を考慮して、前記システム仕様の他部に相当するシステム仕様を生成する手段、前記システム仕様の他部を満たす第２のシステム仕様部品を前記複数の仕様部品のなかから検索する手段、前記第１のシステム仕様部品と前記第２のシステム仕様部品とを、前記システム仕様に規定された前記実行順序制約を満たすように統合する手段、前記システム仕様を、統合された前記第１のシステム仕様部品及び前記第２のシステム仕様部品で置き換える手段、を具備する仕様交換手段として機能させるための設計支援プログラムである。
【００１３】
また、本発明に係る第２の仕様交換方法は、システム記述言語で記述され、実行順序制約が規定されたシステム仕様を、複数のシステム仕様部品を用いて実現するための仕様交換方法であって、前記システム仕様の一部を満たす第１のシステム仕様部品を前記複数のシステム仕様部品から検索するステップと、検索された前記第１のシステム仕様部品を考慮して、前記システム仕様の他部に相当するシステム仕様を生成するステップと、前記システム仕様の他部を満たすシステム仕様部品が前記複数のシステム仕様部品のなかに存在するか否かを判定するステップと、前記システム仕様の他部を満たすシステム仕様部品が前記複数のシステム仕様部品のなかに存在しないと判定された場合に、該システム仕様の他部を満たす第２のシステム仕様部品を生成するステップと、前記第１のシステム仕様部品と前記第２のシステム仕様部品とを、前記システム仕様に規定された前記実行順序制約を満たすように統合するステップと、前記システム仕様を、統合された前記第１のシステム仕様部品及び前記第２のシステム仕様部品で置き換えるステップと、を具備することを特徴とする仕様交換方法である。
【００１４】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【００１５】
図１は、本発明の一実施形態に係る仕様交換装置が適用されたシステム設計支援装置の全体構成を示すブロック図である。
【００１６】
図１に示すシステム設計支援装置１は、仕様モデル記述部２、システム仕様記録部３、アーキテクチャ探索部４、コミュニケーション合成部６、ハードウエア仕様生成部８、部品再利用部１０、およびソフトウエア仕様生成部１２から構成されている。
【００１７】
本実施形態のシステム設計支援装置１は、計算機で実行されるソフトウエアの仕様、半導体素子等を組み合わせたハードウエアの仕様、ソフトウエアとハードウエアとを組み合わせた組み込みシステムの仕様、ワークフロー等のビジネスプロセスの仕様などについての、システムレベルでの仕様を扱う。
【００１８】
このようなシステムレベルでの仕様における計算の仕様および通信の仕様からなる仕様モデルを設計するための仕様モデル記述部２は、設計者による仕様記述を支援する部分である。予め定められた仕様記述形式に従って、計算内容の仕様、通信内容の仕様を設計者が記述した結果、仕様記述モデルが生成される。この仕様記述モデルは、後述する仕様構造を含んでいる。仕様記述形式の例としては、構造化プログラミング言語に代表される構造化テキスト形式、グラフを利用する構造図形式、テーブルを利用する表形式などがある。
【００１９】
アーキテクチャ探索部４は、与えられた仕様記述モデルを元に、アーキテクチャ（ハードウエアとソフトウエア実行環境の構成）に対し、仕様の内容を保存したまま仕様記述モデルの部分構造を分割してアーキテクチャ要素に分配する。具体的な実施形態では、仕様モデル記述部２で設計された計算内容の仕様や通信内容の仕様を構成する部品（仕様記述モデルの構成要素）をアーキテクチャ要素に割り当てる（アーキテクチャモデル作成）。
【００２０】
コミュニケーション合成部６は、アーキテクチャ上の仕様要素間の通信手順を合成する。具体的には、アーキテクチャ探索部４で分配された通信仕様要素間に対して通信手順（プロトコル）を挿入し、通信内容の仕様が挿入された通信手順と整合性を保つためのプロトコル変換（通信手順の組替え）を行う（コミュニケーションモデル作成）。
【００２１】
システム仕様記録部３は、仕様モデル記述部２により作成された仕様モデル、アーキテクチャ探索部４により作成されたアーキテクチャモデル、コミュニケーション合成部６により作成されたコミュニケーションモデルを相互に関連付け、これをシステム仕様として記録する。
【００２２】
ハードウエア仕様生成部８は、システム仕様記録部３に記録されているシステム仕様からハードウエア仕様を生成する。一方、ソフトウエア仕様生成部１２は、システム仕様記録部３に記録されているシステム仕様からソフトウエア仕様を生成する。
【００２３】
部品化再利用部１０は、システム仕様記録部３に記録されているシステム仕様を部品化し、これを仕様モデル記述部２、アーキテクチャ探索部４、およびコミュニケーション合成部６のそれぞれの設計における再利用に供する。
【００２４】
本実施形態のシステム設計支援装置１は、少なくとも、「逐次実行」、「繰り返し」、「割込み終了」、「割込み一次停止」、「並列実行」の仕様を記述するための記述要素を具備しており、これらの記述要素を階層的に組み合わせることによってシステム全体の仕様を記述することができる。
【００２５】
システム仕様記述方式には、図形的に仕様を記述するステートチャート（ＳｔａｔｅＣｈａｒｔ）や、構造的な言語として文字により仕様を表現するＳｐｅｃＣ(Specification description language based on C)言語等がある。ＳｐｅｃＣについては、例えば"SpecC: Specification Language and Methodology", Daniel D.Gajski, Kluwer Academic Publishers, Dordrecht, ISBN0-7923-7822-9に詳しい。
以下、本実施形態ではシステム仕様記述方式として、ＳｐｅｃＣ言語の記述形式に沿った説明を行うが、本発明はＳｐｅｃＣ言語に限定されない。
【００２６】
＜仕様の構造＞
当該実施形態において、仕様は、複数の「ビヘイビア」と呼ぶ基本単位で構成されるものとする。ビヘイビアは、階層構造を持つことができる。すなわち、ひとつのビヘイビアは、複数の他のビヘイビアを下階層として持つことができる。ビヘイビアは、ソフトウエアの仕様の場合は、関数やクラスに相当し、ハードウエアの場合は、ＬＳＩブロックに相当し、ビジネスプロセスの場合は、ジョブやタスクに相当する。
【００２７】
「仕様の構造」とは、ビヘイビアで構成される仕様の構造を規定し、ビヘイビアの実行の順番に関する階層構造と、ビヘイビア間でのデータの通信路に関する階層構造とによって構成される。実行の順番に関する構造と通信路に関する構造は、階層としては同じ構造を持つ。すなわち、ビヘイビアＡが実行の順番に関してビヘイビアＢの上位階層にあるならば、ビヘイビアＡは通信路に関してもビヘイビアＢの上位階層である。
【００２８】
仕様の構造により、アーキテクチャに対する仕様分割の方法も定義できる。例えば、組み込みシステムならば、ハードウエアとソフトウエアのそれぞれに対応する部分に、仕様がどのように分割されるかを、仕様として構造化して記述する。
【００２９】
＜仕様の書式＞
仕様の構造のうち、実行の順番に関係する構造は、少なくとも「逐次実行および繰返し実行」（ｆｓｍ）、「並列実行」（ｐａｒ）、「同期実行」（ｆｏｒｋ，ｊｏｉｎ，ｓｔａｒｔ，ｅｎｄ）、「割込み実行」（ｔｒｙ，ｔｒａｐ，ｉｔｒｐ）という４分類の文法的要素を用いた階層構造として表現される。ｆｓｍは有限状態機械（finite state machine）の略である。
【００３０】
例えば、
ｆｓｍ｛ａ，ｂ｝は、
“ａを実行し終了の後にｂを実行する”
という仕様を表現し、
ｐａｒ｛ａ，ｂ｝は、
“ａとｂを並列に実行する”
という仕様を表現し、
階層的な仕様である、ｆｓｍ｛ａ，ｐａｒ｛ｂ，ｃ｝，ｄ｝は、
“ａを実行した後にｂ，ｃを並列に実行し、
そしてｂ，ｃが両方終了したらｄを実行する”
という仕様を表現している。
【００３１】
また、「割込み実行」に関する仕様である、ｔｒｙ｛ａ｝ｔｒａｐ（ｅ）｛ｂ｝は、
“最初にａを実行する。ａの実行中にイベントｅが発生したら、
ａの実行を強制終了し、ｂの実行を開始する”
という仕様を示す。
【００３２】
「逐次実行および繰り返し実行」、「並列実行」、「同期実行」、「割込み実行」は、ソフトウエア、ハードウエア、そしてビジネスプロセスの仕様を記述するために用いられる実行制御方法規定のための手段として必要最小限の要素であり、これらを階層的に組み合わせることにより、いわゆるシステムの仕様を記述する。
【００３３】
一方、通信路に関する構造は、ビヘイビア間のデータのやりとりを規定する。ここでは、変数およびチャネルと呼ばれる部品により、通信路が実現されるものとする。変数やチャネルは仕様の階層関係の上位階層のビヘイビアの直属の部品として定義され、これと下位階層のビヘイビアとがポートと呼ばれる接続口を介して接続することにより、下位階層同士のビヘイビアが通信路を介して互いに通信することを可能にしている。
【００３４】
通信路は、ソフトウエアの場合は変数や通信用の関数に相当し、ハードウエアの場合はＬＳＩを結ぶ結線に相当する。ポートは、通信のための入出力口であり、ソフトウエアの場合は引数に相当し、ハードウエアの場合は部品同士を結線で結ぶための端子に相当する。チャンネルは、データを送受信するために特別に用意されたコマンドを受け付ける部品である。例えば、“ｐｕｔ（データ）”，“ｇｅｔ（）”といったコマンドが考えられる。変数は、書き込み“ｗｒｉｔｅ（データ）”コマンドと読み込み“ｒｅａｄ（）”コマンドとを備えたチャンネルの一種であるとみなすことができる。
【００３５】
ＳｐｅｃＣ言語の、簡便な文法要素および規則を説明する。
0003889633.tif 000002
｝において、ｉ，ｊ，ｋはローカル変数であり、Ａ，Ｂ，Ｃは下位階層のビヘイビアで、それぞれポートを持ち、ポートがローカル変数と接続していることを示している。
0003889633.tif 000003
のいずれかで構成され、特に指定が無い場合は、左から順に逐次実行される。すなわち、遷移ラベルの項目が無い場合、｛ラベル，処理内容｝は、処理内容が終了すると、次のｆｓｍ要素を実行することになる。また、ラベルが１のｆｓｍ要素又は最左のｆｓｍ要素が最初に実行されるものとする。遷移は、「ｇｏｔｏ（Ｘ）：Ｘはラベル番号」にて表す。例えば、ｇｏｔｏ（１）は、最初のｆｓｍ要素に戻ることを表している。
上記の処理内容例では、Ａが実行され、終了すれば、Ｂが実行され、Ｂが終了したとき、変数ｆｌｇの値が３ならばＡを、１ならばＢを実行することを表している。
【００３６】
次に例示するように、ラベルの無い要素は、ラベルを用いた或る実行制御の簡略形であるといえる。
fsm｛A,B,C｝＝fsm｛｛1,A,goto(2)｝,｛2,B,goto(3)｝,｛3,C,…｝,…｝
・ｔｒｙ｛Ａ｝ｔｒａｐ（ｅｖ１）｛Ｂ｝ｉｔｒｐ（ｅｖ２）｛Ｃ｝…
この処理内容例では、まず、Ａを実行する。そして、Ａの実行中にイベントｅｖ１が発生すれば、Ａを強制終了して、Ｂを実行する。また、Ａの実行中にイベントｅｖ２が発生すれば、Ａを一時停止して、Ｃを実行し、Ｃが終了したとき、Ａの処理を再開する。
なお、ｔｒａｐ（ｅ）｛Ｘ｝，ｉｔｒｐ（ｅ２）｛Ｙ｝は、複数あってもよい。
・ｗａｉｔ（ｅｖ）
これは、イベントｅｖの発生を待つ同期処理である。
・ｎｏｔｉｆｙ（ｅｖ）
これは、イベントｅｖを発生させる同期処理である。
・ｆｌｇ＝Ｘ
これは、変数ｆｌｇへの値の代入である。
・ｆｌｇ＝＝Ｘ
これは、条件判断である。
・ｓｔａｒｔ（ＩＤ）；
ｆｏｒｋ（ＩＤ）；
これは、同期処理Ｉであり、ｓｔａｒｔとｆｏｒｋは同期して実行される。
・ｅｎｄ（ＩＤ）；
ｊｏｉｎ（ＩＤ）；
これは、同期処理ＩＩであり、ｅｎｄとｊｏｉｎは同期して実行される。
【００３７】
上記に列挙した書式に従った、階層構造を持つ仕様の例を以下に挙げる。
（例：ｅｘ０）
Ａ：＝｛ｉ，par｛Ｂ（ｉ），ｇ（ｉ）｝｝
Ｂ（ｉ）：＝｛ｊ，ｋ，fsm｛ａ（ｊ），ｂ（ｋ，ｉ），Ｃ（ｋ）｝＞｝
Ｃ（ｋ）：＝｛par｛ｄ，ｅ，ｆ（ｋ）｝｝
これは、以下の仕様を表現している。
「ビヘイビアＡはＢ，Ｃ，ｇ，ａ，ｂ，ｄ，ｅ，ｆという子ビヘイビアから構成され、ビヘイビアＡは下位階層Ｂ，ｇより構成され、Ｂとｇは並列実行であり、Ａの下位階層であるＢは下位要素ａ，ｂ，Ｃより構成され、逐次実行され、さらにＢの下位階層であるＣは下位要素ｄ，ｅ，ｆより構成され、並列実効される。また、Ａは通信路ｉを持ち、ｉを介してＢのポートｉとｇのポートｉが接続しており、またＢは通信路ｊ，ｋを持ち下位要素ａのポートｊと通信路ｊが接続し、ｂのポートｋと通信路ｋが、ｂのポートｉとＢのポートｉが、Ｃのポートｋと通信路ｋがそれぞれ接続し、Ｃのポートｋとｆのポートｋが接続していることを示している。すなわち、階層を渡ってビヘイビアｆとｂ、ｇとｂがそれぞれ通信線により接続し互いにデータをやり取りする。」
以下では、説明のために実行の順番に着目して通信路と階層関係を簡略化する場合がある。例えば、上記の仕様例（ｅｘ０）を実行の順番に着目して簡略化すると以下のように記述できる。
Ａ：＝ｐａｒ｛ｆｓｍ｛ａ，ｂ，ｐａｒ｛ｄ，ｅ，ｆ｝｝，ｇ｝
また、説明のために通信路と接続関係に着目して、実行の順番を簡略化する場合がある。上記の仕様例（ｅｘ０）を通信路と接続関係に着目して簡略化すると以下のように記述できる。
Ａ：＝｛ｉ，bh｛Ｂ（ｉ），ｇ（ｉ）｝｝
Ｂ（ｋ）：＝｛ｉ，ｊ，bh｛ａ（ｉ），ｂ（ｉ，ｊ），Ｃ（ｊ）｝＞｝
Ｃ（ｊ）：＝｛bh｛ｄ，ｅ，ｆ（ｊ）｝｝
ｆｏｒｋ（ｘ）とｓｔａｒｔ（ｘ）、およびｅｎｄ（ｘ）とｊｏｉｎ（ｘ）は、それぞれ対となって、同期制約を表し、これらの２つが常に同期して実行されることを規定している（ここで、ｘはｉｄ番号であり同じｉｄ番号をもつペアが同期して実行されることとする）。
例えば、
0003889633.tif 000004
という仕様は、１から３および２から４の逐次実行（ｆｓｍ）を並列実行（ｐａｒ）することを階層的に示しているが、ｆｏｒｋ，ｊｏｉｎ，ｓｔａｒｔ，ｅｎｄの同期関係より１と３の間に２が実行されることがわかる。
通信路の構造に関しては、上記の仕様例（ｅｘ０）においては、ｆとｂがＢの通信路ｊを介して互いにデータをやり取りし、Ａの通信路ｉを介してａ，ｂ，ｇが互いにデータをやり取りできることを示している。
【００３８】
さて、本実施形態の仕様交換装置は、システム仕様の部品化・再利用のために部品化再利用部１０に設けられている。
【００３９】
図２は、本実施形態に係る部品化・再利用の概略を示すブロック図である。  本実施形態の仕様交換装置２０は、システム仕様記述形式で記述された問合わせ仕様３１と部品のデータベース（ＤＢ）３０に格納されている部品の宣伝３２とを照合し、該照合結果に基づいて新たな問合わせ生成して検索を行うとともに、通信合成を行うことで実行順序制約を満足する通信手順３３を合成し、これを問合わせ仕様３１に組み込むことで統合された仕様を得る。これにより仕様部品の再利用を実現する。
【００４０】
図３は、このような本実施形態の仕様交換装置の概略構成を示すブロック図、図４は、該仕様交換装置により実行される部品再利用の概略手順を示すフローチャートである。
【００４１】
図３に示すように、本実施形態の仕様交換装置２０は、検索部２１、照合部２２、問合わせ生成部２３、通信合成部２４、および組込み部２５を備えている。
【００４２】
検索部２１は、与えられた問合せに対しこれを満たすシステム仕様記述を部品のデータベース３０から検索する（ステップＳ１）。検索の結果に基づいて照合が行われる（ステップＳ２）。問い合わせの一部が満たされる場合は、該当する部分を元々の問合せから引き算して新しい問合せが生成され（ステップＳ５）、検索部２１はさらに検索を行って、当初の問合せ仕様が最終的に満たされるまで（ステップＳ４＝＝ＹＥＳとなるまで）、検索・照合・問合せの生成を順次に繰り返す制御を行う。
【００４３】
照合部２２は、システム仕様Ａとシステム仕様Ｂとが与えられたとき、一方の仕様に対して他方の仕様が充足するかどうかを計算する部分である（ステップＳ２）。問合せ生成部２３は、仕様Ａと仕様Ｂとが与えられ、かつ仕様Ｂが仕様Ａの一部を充足する場合に、仕様Ａから仕様Ｂに該当する部分を取り除いた仕様Ａ’を問合わせとして生成する（ステップＳ５）。通信合成部２４は、問合せに対して、これを充足する１つ以上のシステム仕様部品の組合わせが存在するとき、これらの部品と、元々の問合せとの間を結合するための通信手順を生成する。これを本実施形態では「通信合成」という（ステップＳ６）。
【００４４】
組込み部２５は、通信合成を行った後（ステップＳ７）、検索により得られた仕様の部品と、通信合成部２４が生成した通信手順とを合成し、当初与えられた問合わせの仕様における置き換えを行う（ステップＳ８）。
また、本実施形態の仕様交換装置２０は、図２に示した既存の仕様（システム仕様記録部３）に基づくシステムレベルの仕様の「問合せ」３１を記録保持する部分と、データベース３０から提供されるシステムレベルでの部品の「宣伝」３２（の記述）を部品ごとに記録保持する部分も備えている。
【００４５】
＜システム仕様＞
本明細書において、「（システム）仕様」とは、設計の上流段階でまだ実装方法が決定されていない段階でシステムの動作を決めるための仕様記述を意味する。また、システム設計において既存の設計成果物の部品が、該部品に対するシステム設計段階での仕様と共に記録保存されており、これらを利用して部品を検索し、問い合わせ仕様に組み込みながらシステム設計を進める場合を想定する。
【００４６】
＜ＳｐｅｃＣ言語の仕様から実行順序を抽出＞
ＳｐｅｃＣ言語に従い仕様が構造的に記述されると、該仕様に含まれる情報から、２つの任意の仕様に対して、判断基準に従い同等かどうかを計算することができる。この判断基準は用途に応じて様々であるが、例えば、仕様に含まれるタスクの実行順序制約を満たしているかどうかを判断基準の一例として挙げることができる。
【００４７】
ＳｐｅｃＣ言語においては、実行順序に関する明確な順序制約が言語セマンティクスとして規定されており、これをもとに仕様全体の実行順序制約をタスクをノード、順序制約をエッジとして表現したグラフとして抽出することができる。このグラフをＥＴＧ(Extended Task Graph)と呼ぶ。
【００４８】
ＥＴＧにおいては、順序制約に関するエッジの他に並行動作に関しする特別なエッジ（ｆｏｒｋ／ｊｏｉｎ）を用意して並行動作を表現する。ＥＴＧにおける並行動作とは、並列に動くべきものとして仕様が記述されるのではなく、どちらが先に動いても構わないということを示しているものとする。
【００４９】
ＳｐｅｃＣ言語で記述された仕様からＥＴＧを一意に抽出できる。並行動作（ｐａｒ）が「どちらが先に動いても構わない」という意味であるので、ｆｏｒｋ／ｊｏｉｎに関する制約は実行順序を規定しないことに鑑み、以下の実施形態では、半順序関係“＜”（ａ＜ｂ：ａはｂの後に実行される）をもって実行順序制約を表現するものとする。図５に、ＳｐｅｃＣ言語で記述されたシステム仕様記述、ＥＴＧの記述、および実行順序制約の関係を示す。
【００５０】
＜実行順序上の充足関係＞
一般的に工学的な設計においては、設計工程が進むにつれて、仕様は詳細化される。システムレベルの設計では並行動作で仕様記述されたものは、詳細設計においては、並行動作がスケジューリングされ、実装に最適な順序で逐次実行されるように詳細化が施される。システムレベルの段階で並行動作として記述された仕様Ａと、これを逐次化した仕様Ｂとがある場合を仮定する、この仕様Ｂは仕様Ａに対して実行順序において強制約になっており、これを「仕様Ｂは仕様Ａを充足している」と定義する。すなわち、「仕様Ｂが仕様Ａを充足する」ということは「仕様Ａに含まれる全てのタスクに対する実行順序制約が、仕様Ｂにおける実行順序にも含まれることである」と定義する。
【００５１】
例えば、実行順序制約を半順序関係“＜”にて記述すると、
仕様Ａ＝ｐａｒ｛ａ，ｆｓｍ｛ｂ，ｃ｝｝、
仕様Ｂ＝ｆｓｍ｛ａ，ｂ，ｃ｝
について、仕様Ａの実行順序制約は、
Ａ＿ｓｅｉｙａｋｕ  ＝  “ｂ＜ｃ”
である。一方、仕様Ｂの実行順序制約は、
Ｂ＿ｓｅｉｙａｋｕ  ＝  “ａ＜ｂ，ｂ＜ｃ”
である。ここで、
“ａ＜ｂ，ｂ＜ｃ”は“ｂ＜ｃ”を含んでいるので仕様Ｂは仕様Ａを充足している。
同様に、ｆｓｍ｛ｂ，ａ，ｃ｝，  ｆｓｍ｛ｂ，ｃ，ａ｝も  仕様Ａを充足している。
【００５２】
＜部分充足＞
また、「仕様Ａに含まれるタスクに対する実行順序制約の部分集合が、仕様Ｂにおける実行順序に含まれること」を、「仕様Ｂが仕様Ａを部分充足する」と定義する。例えば、
仕様Ａ＝ｐａｒ｛ａ，ｆｓｍ｛ｂ，ｃ｝｝
に対して、
仕様Ｂ＝ｆｓｍ｛ａ，ｃ｝は仕様Ａを部分充足している。
【００５３】
＜「宣伝」と「問合せ」＞
ＳｐｅｃＣ言語に従ったシステム仕様記述は、仕様の部品の内容の記述のみならず検索にも活用される。詳細設計まで終了した過去の設計実績に対して、システムレベルでの仕様を記録保存しデータベース化（部品化）する。このデータベースにおける個々の部品に対する検索用指標（インデクス）としての仕様を「宣伝」と呼ぶことにする。宣伝記録部は、システム仕様レベルでの「宣伝」の記述を部品ごとに記録保持する。
【００５４】
また、システム仕様の設計段階において、詳細設計までは至らないがある程度の仕様が設計済みであるとき、この設計中途の仕様を部品検索のための検索式として利用する。この仕様を「問合せ」と呼ぶ。問合せ記録部は、システム仕様レベルでの「問合せ」を記録保存する。
【００５５】
これら「問合せ」および「宣伝」は、タスク間の実行順序制約に基づいて記述される。それぞれのタスクは実現性に関する属性を有し、そのタスクを実現するための手段の有無が記録される。
【００５６】
以降、本実施形態では、実現手段が有るタスクを「a」と表現し、実現手段が無いタスクに記号「~」を付与して「a~」と表現する。また図面においては、点線により囲まれたタスクは、実現手段が無いタスクを示す。
【００５７】
典型的な「問合せ」の記述は、含まれる全てのタスクに対する実現手段が無いタスクにより構成され、典型的な「宣伝」の記述は、含まれる全てのタスクに対する実現手段が有るタスクにより構成される。しかし、全ての場合がこれに当てはまるわけではない。問合せにおいて一部が実現されていたり、宣伝においても一部が実現されていないものを含むことも可能である。
【００５８】
＜照合＞
照合部２２は、仕様ＡとＢとが与えられたとき、仕様ＡとＢを共に部分充足する仕様Ｃがある場合に、仕様Ａ，Ｂが交換可能であると判断する。逆に仕様ＡとＢを共に部分充足する仕様Ｃがない場合は「交換可能でない」と判断する。
【００５９】
例えば、
仕様Ａ＝ｆｓｍ｛ｐａｒ｛ｅ，ｂ｝，ｄ｝
仕様Ｂ＝ｆｓｍ｛ｂ，ｐａｒ｛ｄ，ｅ｝｝
が与えられたとき、仕様Ａ，Ｂを共に充足する仕様Ｃは、
仕様Ｃ＝ｆｓｍ｛ｂ，ｅ，ｄ｝
が存在するので、仕様ＡとＢは交換可能である。
【００６０】
照合部２２において、与えられた２つの仕様を両方充足する仕様を計算する方法としては、例えば２つの仕様に含まれる順序制約の和を取る方法がある。
例えば上記の例では、
仕様Ａが含む実行順序制約は、
｛ｅ＜ｄ，  ｂ＜ｄ｝
であり、
仕様Ｂが含む実行順序制約は、
｛ｂ＜ｄ，ｂ＜ｅ｝
であり、これらの和をとると、
｛ｅ＜ｄ，  ｂ＜ｄ，ｂ＜ｅ｝
になる。ここで、半順序関係＜の性質により、次の推移律、
“ｂ＜ｅかつｅ＜ｄならばｂ＜ｄ”
が成り立つので、｛ｅ＜ｄ，  ｂ＜ｄ，ｂ＜ｅ｝は、｛ｂ＜ｅ，ｅ＜ｄ｝と簡略化できる。
【００６１】
これをＳｐｅｃＣ記述で表現すると、仕様Ｃ＝ｆｓｍ｛ｂ，ｅ，ｄ｝となる。
【００６２】
順序制約の和を取ったときに、該制約上の矛盾が生じる場合がすなわち交換不可能な場合である。なお、本実施形態では順序制約を利用した集合演算を利用して計算を行う場合を説明したが、本発明はこれに限定されない。例えばグラフ理論を用いて同様な計算を行ってもよい。
【００６３】
＜実行順序制約の引き算＞
問合せ生成部２３は、例えば、仕様ＡとＢが与えられ、仕様Ａに実現されていないタスクが含まれており、この仕様Ａに基づく問い合わせを生成する場合、仕様Ｂから実現されているタスクを取り除き、仕様Ａに含まれずかつ仕様Ｂに含まれており、かつ、仕様Ｂにおいて実現されていないタスクを追加することによって、新しい問合せの仕様Ａ’を生成する。
【００６４】
このような問合せ生成の例として、例えば次のような問合せ仕様Ａ、
Ａ=fsm{par{a~,fsm{b~,c~}},d~}
に対して、宣伝仕様Ｂ、
Ｂ=fsm{c,a}
があるとき、問合せ生成部２３は、問合わせ仕様Ａから宣伝仕様Ｂを減算し、新しい問合せ仕様Ｃ、
Ｃ=fsm{b~,d~}
を生成する。
【００６５】
問合せ生成における仕様の減算は、順序制約における集合演算を利用して実現可能である。
【００６６】
上記の例において、実行順序制約を半順序関係「<」にて表現すると、
A_seiyaku = {a~<d~, c~<d~, b~<c~}
B_seiyaku = {c<a}
と記述できる。
【００６７】
宣伝仕様Ｂには、タスクa~,c~に対するタスクa,cが含まれるので、問合わせ仕様Ａからタスクc~,a~が削除される。
【００６８】
問合わせ仕様Ａの中での実行順序が保存されるように注意し、「c~<d~, b~<c~」から「c~」を減ずると、「b~<d~」となる。
【００６９】
したがって、最終的には仕様Ｃの制約、すなわち、
C_seiyaku{b~<d~}
が得られる。
【００７０】
＜検索アルゴリズム＞
検索部２１は、与えられた問合せ仕様に対しこれを満たす仕様記述を検索する。検索結果が問い合わせ仕様の一部を満足する場合、該当する部分を元々の問合せ仕様から引き算し、問合わせ生成部２３により新しい問合せが生成される。そして検索部２１はさらなる検索を行い、問合せが最終的に満たされるまで、「検索」、「照合」、「問合せの生成」が順次に繰り返して行われるような制御を行う。
【００７１】
＜通信の合成＞
通信合成部２４は、「問合せ」に対して、これを充足する１つ以上のシステム仕様の部品の組合わせが存在するとき、これらの部品と、元々の問合せの間を結合する際に必要な通信手順（プロトコル）を生成する。具体的には、検索部２１及び照合部２２における部品検索および照合計算の結果履歴に基づいて通信手順を組み立てる。
【００７２】
通信手順の組み立て方は、上述した順序制約における集合演算を利用して実現される。
例えば、問合せ仕様Ａ、
Ａ=fsm{par{a~,fsm{b~,c~}},d~}
に対して、宣伝仕様Ｂ、
Ｂ=fsm{e~,c,a}
が存在し、これが検索部２１により検索されたとき、問合せ生成部２３は問合せ仕様Ａから宣伝仕様Ｂを減算し、
Ｃ=fsm{par{e~,b~},d~}
という新しい問合せが生成されたとき、通信合成部２４は、２つの仕様Ａ，Ｂの順序制約、
A_seiyaku= {a~<d~, c~<d~, b~<c~}
B_seiyaku= {e~<c, c<a}
より、仕様Ａにおけるタスク「a~,c~」を「a,c」に換えて２つを加算し、
{a<d~, c<d~, b~<c, e~<c, c<a}
を得る。
上記「c<d~」は{c<a,a<d~}より推移律で計算でき、不必要であるから、これを削除し、
{a<d~, b~<c, c<a, e~<c}
を得る。
【００７３】
この順序制約が実行手順に相当する。すなわち、問合せ仕様Ａを実現するためには仕様の宣伝部品Ｂと、未だ検索されていないe,b,dを実現する部品Ｘを準備した上で、「最初に部品Ｘにおけるタスクb,eを実行した後に、仕様Ｂにおけるタスクcとaをc<aの順番で実行して最後に部品Ｘにおけるタスクdを実行する。」という通信手順が生成されることを表している。この例では部品Ｘがまだ検索されていないので、この部品Ｘを検索し、通信合成部２４は上記通信手順を修正する。
【００７４】
＜通信手順の組込み＞
組込み部２５は、問合せに対しての最終的な検索が終了した際、通信合成部２４により生成された通信手順を用い、検索部２１により検索された各部品と元々の問合せとの間を該通信手順を介して結合するとともに、該結合体を用いて元の問合せの仕様の置き換えを行う。
【００７５】
以下、図６〜図１０を参照して、問い合わせに基づく仕様部品の再利用の実施形態を具体例に基づいて説明する。
【００７６】
図６に示すように、
問合せ仕様１=fsm{par{a~,fsm{b~, c~}},d~}
に対して、宣伝として以下の２つの部品が準備されているとする。
部品１の宣伝=fsm{e~,c,a}
部品２の宣伝=fsm{b,par{d,e}}
検索部２１は、問合せ仕様１について、これを満たす仕様を宣伝記録部から検索する（図４のステップＳ１）。そして、照合部２１により、部品１の宣伝が部分充足するものと判断される（ステップＳ２）。
ここで、問合せ生成部２３は、図８に示すように、問合せ仕様１から部品１の宣伝を減算し、次に示す新たな問合せ仕様２を生成する（ステップＳ５）。
問合せ仕様２=fsm{par{e~,b~},d~}
生成された問合せ仕様２を図７に示す。
【００７７】
このとき、通信合成部２４は、問合せ仕様１に対して部品１を組み込むための、通信手順１、すなわち、
通信手順１={a<d~, b~<c, c<a, e~<c}
を得る（ステップＳ６）。
【００７８】
さらに、検索部２１が検索を行なうと、照合部２２により問合せ仕様２に対して部品２の宣伝が充足することが判断される（図７の下部参照）。結果として、問合せ仕様１に含まれる全てのタスクが充足されることになり、検索部２１は検索を終了する（ステップＳ４＝＝ＹＥＳ）。
【００７９】
通信合成部２４は、通信手順１を更新し、問合せ仕様１に対して部品１と部品２とを部品として組み込むための、通信手順２、すなわち、
通信手順２={b<e, e<c, c<a, a<d}
を生成する（ステップＳ７）（図９参照）。この通信手順２が意味するところは、「問合せ１を実現するためには、部品１、部品２を準備し、部品２のb、部品２のe、部品１のc、部品１のa、部品２のdの順番で部品１，２の機能を呼ぶことにより実現される」という部品１、２を組み込むための通信手順（プロトコル）である。この通信手順は、図１０に示すチャネルとして実装される。チャネルは、プロトコルに従い、部品の構成要素を順序立てて呼び出す手段である（プロトコルを実行する部品）。このようなチャネルは、階層構造を有していてもよい。つまり、あるチャネルが、その構成要素としてチャネルを含み、部品として再利用に供されても良い。
【００８０】
最後に、組込み部２５が通信手順２のチャネルを利用して部品１と部品２を問合せ仕様１に置き換える（ステップＳ８）。以上の手順により部品の再利用が実現される。
【００８１】
以上説明したように、本実施形態の仕様交換装置によれば、システム仕様記述言語に沿って作成されたシステム仕様を部品化しておき、詳細化前のシステムレベルの設計段階において適切な部品を部品データベース（ＤＢ）３０から検索し、仕様に組み込んで有効に再利用することができるようになる。
【００８２】
なお、問合わせに応じうる部品の全てを、部品データベース（ＤＢ）３０が提供し得ない場合も考えられる。この場合、不足の部品を作成するための環境を仕様交換装置２０が提供するよう実施形態を構成しても良い。
【００８３】
不足の部品は、例えば、生成された新たな問合わせを満たすシステム仕様部品である。このシステム仕様部品は、新たな問合わせの実行順序制約を満足する。システム仕様部品の作成は、宣伝に対する問合わせ（検索）の結果、不足が判明した時点で行われてよい。あるいは、宣伝に対する検索を行わないで、最初から相当する部品を作成するようにしても良い。
【００８４】
このようにすれば、既存のシステム仕様を利用し、いわゆるボトムアップの形態でシステム仕様を構築することができるようになる。
【００８５】
以下、不足の仕様部品を仕様交換装置内で生成するよう構成した他の実施形態を、図１１乃至図１３を参照して説明する。図１１は、他の実施形態に係る仕様交換装置の概略構成を示すブロック図である。図１１に示すように、この仕様交換装置２０は検索部２１、照合部２２、問合わせ生成部２３、通信合成部２４、組込み部２５に加えて部品生成部２６を備える構成である。部品生成部２６以外の各構成要素は図３に示したものと同様である。部品生成部２６は、図２に示した部品データベース３０に対して問合わせを行った結果、該当する仕様部品が見つからなかった場合に、問合わせを行った側で部品を生成するための機能を提供する。ここで、部品の生成とは、問合わせ仕様を詳細化すると共に、これを再利用に供するため必要な情報を生成することを意味する。詳細化とは、エディタ等を用いてユーザがコーディングを行うことであり、必要な情報の生成とは、上述した「宣伝」に相当する情報や、部品としての識別情報等を生成することである。生成された部品は部品化再利用部１０において再利用可能になる。
【００８６】
図１２は、このような部品生成の処理を含めた他の実施形態に係る仕様交換装置の概略手順を示すフローチャートである。
【００８７】
ステップＳ１において部品データベース３０に対し部品の検索を行ったのち、かかる検索の結果、該当する部品が見つかったか否かを判断する（ステップＳ２）。ここで、問合わせに応じる部品が部品データベース３０に存在し、検索にヒットしたときはステップＳ２に進み、照合が行われる。以降の動作は図４にて説明したものと同様である。
【００８８】
一方、ステップＳ２において、問合わせに応じる部品が部品データベース３０に存在せず、検索において見つからない（ｎｏｔ ｆｏｕｎｄ）場合は、ステップＳ７に進む。ステップＳ７においては、部品の生成を行うか否かをユーザに問いわせる。ユーザに部品生成を行う意志がない場合はここで処理を終了する。
【００８９】
続くステップＳ８においては、部品生成部２６が起動される。ユーザは、同部品生成部２６を利用して問合わせ仕様を詳細化する。
【００９０】
例えば図１３に示すように、問合わせ生成部２３により生成された問合わせ仕様２を満足する仕様部品が部品データベース３０に存在しないような場合、部品生成部２６を介してユーザが部品２’を生成する。
【００９１】
ステップＳ８において生成された部品は、ステップＳ９において、部品データベース３０或いは部品化再利用部１０内の他のデータベースに登録、保存され、再利用に供することができるようになる。
【００９２】
なお、この実施形態は次のように変形することができる。すなわち、図１２における部品検索処理（ステップＳ１）及びその結果判定処理（ステップＳ３）を省略することができる。
【００９３】
以上説明した他の実施形態によると、問合わせ仕様２に照合可能な図７の部品２がデータベース３０に存在しない場合に、図１３に示したように部品２’を生成するのであるが、この部品２’は、生成することが最低限必要な部品である。すなわち、他の実施形態では少なくとも部品１を利用して所要の仕様を実現することができ、同図に示す問合わせ仕様１の全てを一から生成するよりも負担を軽減できる利点がある。
【００９４】
＜割り込み＞
なお、以上の例では、仕様の構造に割り込みに関する記述（ｔｒｙ／ｔｒａｐ／ｉｔｒｐ）が含まれる場合については述べなかった。これは割り込みに関する記述は事前に局所化して、局所化された部分構造を単独ビヘイビアとして取り扱うことができるので、全体としては割り込みの構造を排除してｐａｒ，ｆｓｍのみで構成される階層構造とすることができるからである。
【００９５】
例えば、
ｔｒｙ｛ｆｓｍ｛ａ，ｂ，ｃ｝｝ｔｒａｐ（ｅ）｛ｆｓｍ｛ｄ｝｝
というビヘイビアは、「ａ，ｂ，ｃを逐次実行している間にイベントｅが発生したらａ，ｂ，ｃの実行を中止してｄを実行する。ｅが発生しなかったらｃが終了した時点で終了する。」という仕様を示しているが、これは、ｔｒｙ／ｔｒａｐ構造を下階層へ移動することにより、次に示すような等価な仕様の構造に変換することができる。
0003889633.tif 000005
ここでは、同期機構とｆｌｇフラグの値で元々の順序制約を保っている。
【００９６】
さらに、マクロ化を行うことで構造上ｔｒｙ／ｔｒａｐを隠蔽することもできる。
【００９７】
なお、以上の各機能は、ソフトウエアとして実現可能である。
また、本実施形態は、コンピュータを所定の手段として機能させるためのプログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【００９８】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、関連を持つ２以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【００９９】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１００】
【発明の効果】
以上説明したように、本発明によれば、システム仕様記述言語に沿って作成された仕様を部品化しておき、詳細化前のシステムレベルの設計段階において適切な部品を検索し、仕様に組み込んで有効に再利用することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る仕様交換装置が適用されたシステム設計支援装置の全体構成を示すブロック図
【図２】上記実施形態に係る部品化・再利用の概略を示すブロック図
【図３】上記実施形態に係る仕様交換装置の概略構成を示すブロック図
【図４】上記仕様交換装置により実行される部品再利用の概略手順を示すフローチャート
【図５】ＳｐｅｃＣ言語で記述されたシステム仕様記述、ＥＴＧの記述、および実行順序制約の関係を示す図
【図６】ある問合せ仕様に対応する２つの宣伝部品を示す図
【図７】照合結果に基づく新たな問合わせの生成を示す図
【図８】問合せ仕様の生成時における減算の様子を示す図
【図９】新たな問合わせと宣伝部品とにより生成された通信手順を示す図
【図１０】生成された通信手順の詳細を示す図
【図１１】本発明の他の実施形態に係る仕様交換装置の概略構成を示すブロック図
【図１２】部品生成の処理を含む上記他の実施形態に係る仕様交換装置の概略手順を示すフローチャート
【図１３】他の実施形態に係り、ユーザによる部品生成の一例を示す図
【符号の説明】
１…システム設計支援装置
２…仕様モデル記述部
３…システム仕様記録部
４…アーキテクチャ探索部
６…コミュニケーション合成部
８…ハードウエア仕様生成部
１０…部品化再利用部
１２…ソフトウエア仕様生成部
３０…仕様交換装置
３１…仕様の問合わせ
３２…部品の宣伝
３３…通信手順
【図１】
0003889633.tif 000006
【図２】
0003889633.tif 000007
【図３】
0003889633.tif 000008
【図４】
0003889633.tif 000009
【図５】
0003889633.tif 000010
【図６】
0003889633.tif 000011
【図７】
0003889633.tif 000012
【図８】
0003889633.tif 000013
【図９】
0003889633.tif 000014
【図１０】
0003889633.tif 000015
【図１１】
0003889633.tif 000016
【図１２】
0003889633.tif 000017
【図１３】
0003889633.tif 000018