JP3895934B2 - 仕様操作装置 - Google Patents

仕様操作装置 Download PDF

Info

Publication number
JP3895934B2
JP3895934B2 JP2001024478A JP2001024478A JP3895934B2 JP 3895934 B2 JP3895934 B2 JP 3895934B2 JP 2001024478 A JP2001024478 A JP 2001024478A JP 2001024478 A JP2001024478 A JP 2001024478A JP 3895934 B2 JP3895934 B2 JP 3895934B2
Authority
JP
Japan
Prior art keywords
behavior
hierarchy
moved
move
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001024478A
Other languages
English (en)
Other versions
JP2002229784A (ja
Inventor
幹人 岩政
忠俊 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001024478A priority Critical patent/JP3895934B2/ja
Priority to US10/059,227 priority patent/US7464365B2/en
Publication of JP2002229784A publication Critical patent/JP2002229784A/ja
Application granted granted Critical
Publication of JP3895934B2 publication Critical patent/JP3895934B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Description

【0001】
【発明の属する技術分野】
本発明は、計算機や電子情報機器における、ハードウエア、ソフトウエア、及びこれら両方を含むシステムの設計において、仕様の操作を行うための仕様操作装置に関する。
【0002】
【従来の技術】
従来、仕様の構造や書式は設計分析手法毎にあらかじめ固定化されており、対象、目的が異なれば、適切な別々の構造でシステムの分析および設計を行ってきた。例えば、UMLに代表されるオブジェクト指向のソフトウエア設計方法論では、設計のための統一書式を規定しているが、ドメイン毎に利用する分析・設計の実際の手順や方法は異なり、仕様の構造や個々の書式の要素の意味が異なるので、ドメイン相互に設計資産を利用できない。なお、UMLは例えば「UMLガイドブック」,Hans-Eriksson/Magnus Penker著,杉本宣男/落合修/武田多美子 監訳,ISBN4-8101-8987-2に詳しい。
また、外部環境の変更等により仕様に頻繁に変更が必要な場合は、仕様の一部を修正しても、その波及範囲が見積もれないので、最初から作り直す手間がある。これは単一の製品の設計開発プロセスにも当てはまり、例えば、一つの製品でラピッドプロトタイピング技術を利用してプロトタイプの仕様を作成する場合も、詳細設計においては実装上の制約や構成にあわせて作り直すという手間があった。例えば、ラピッドプロトタイピングツール(Rapid)では、作成したプロトタイプからC言語のコード生成を行うが、組み込み向けには最適化されないので、作成し直す必要がある。なお、Rapidは例えば“Rapid-plus, White Paper”,http://www.e-sim.com/pdf/whtpaper.pdfに詳しい。
仕様の作り直しの別の例として、ハードウエア(LSI)とソフトウエアが対となって全体のシステムとして動作する組込みシステムの場合は、システム全体として一旦作成した仕様を、ハードウエア、ソフトウエアの役割分担が決定した後に、これに従いハードウエア向け、ソフトウエア向けの独立した仕様として作成し直すことをしていた。
【0003】
近年、ハードウエア、ソフトウエアを区別しないシステムレベルでの仕様記述の言語が開発され、システムレベルでの仕様からソフト・ハードに分割された仕様へ同一の仕様の書式で仕様記述ができる環境が整いつつある。これらの言語に伴い設計方法論も提唱されているが、これらはトップダウンにシステムレベルの仕様からソフト・ハードの設計仕様を導き出す過程を示しているが、外部からの要求はリソース制約の変更による仕様変更要求に対して、仕様の内容を保ったまま仕様の構造を変更する仕様操作はカバーできない。
【0004】
また、gccに代表されるソフトウエアの言語コンパイラや言語変換ツールにおいては、ある仕様の書式から別の仕様の書式への変換はできるが、これは同一の内容、同一の構造の仕様を異なる書式に変換しているだけで、仕様の変更に対しては、その都度変換し直さなくてはならない。なお、gccは例えば“GNU’s not Unix”, http://www.gnu.org/に詳しい。
【0005】
【発明が解決しようとする課題】
以上説明してきたように、従来、仕様の内容を保持したまま、リソース制約や性能、信頼性等の外的な要求に合わせて構造を変更することを容易に行える仕組みがなかった。また、仕様変更の自動化では、対象や分野に応じて仕様の内部構造の組み合わせは無限にあるので、すべての仕様変更に対応するコマンドを予め作成することができないという問題があった。
【0006】
本発明は、上記事情を考慮してなされたもので、仕様の設計において、目的やリソース制約あるいは外部からの要求などに合わせて、容易に、仕様の内容を保持しながら、仕様の構造を変更できる仕様操作装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
本発明は、処理単位であるビヘイビアー(例えば、ソフトウエアにおける関数やクラス、ハードウエアにおけるLSIブロック、ビジネスプロセスにおけるジョブやタスクなど)を複数用いて構成される所定の仕様(例えば、計算機で実行されるソフトウェアの仕様、半導体を組み合わせたハードウェアの仕様、ソフトウェアとハードウェアを組み合わせた組み込みシステムの仕様、ワークフロー等のビジネスプロセスの仕様など)における該複数のビヘイビアー間の実行順序に対する制約を規定するために、予め定めた順番で逐次的に実行する1又は複数のビヘイビアーを要素として含む第1の種類の構造と、実行する順序に制約のない(並列に実行しても任意の順番で逐次的に実行してもよい)1又は複数のビヘイビアーを要素として含む第2の種類の構造とを記述することが可能な所定のシステム記述言語により、前記複数のビヘイビアーを要素として記述された、前記所定の仕様の構造を対象として、該構造中の或ビヘイビアーを移動させる操作を行って該構造を変更するための仕様操作装置であって、前記所定の仕様の持つ構造として、その構造中に、前記第1又は第2の種類の構造に相当する上位層の構造がその要素として前記第1又は第2の種類の構造に相当する下位層の構造を含む階層的な構造部分が存在するものを記憶するための構造記憶手段と、前記所定の仕様の持つ構造により規定される前記複数のビヘイビアー間の実行順序に対する制約を示す制約情報を記憶するための制約情報記憶手段と、移動すべきビヘイビアーを示す情報を含み、該ビヘイビアーを、前記所定の仕様の持つ構造中において該ビヘイビアーを要素として含む構造からその上位層又は下位層の構造へ移動させる旨を指示する移動コマンド(POPコマンド、PUSHコマンド)の入力を受け付ける手段と、前記制約情報が示す前記複数のビヘイビアー間の実行順序に対する制約を完全に維持するか、又は、この制約に対して、高々、前記複数のビヘイビアーのうち、実行する順番に制約のない特定の複数のビヘイビアーについてそれらが逐次的に実行される順序を特定した新たな制約が加わることを許容する条件の下で、前記移動コマンドが示すビヘイビアーを、前記移動コマンドの指示に応じて、該ビヘイビアーを要素として含む構造からその上位層又は下位層の構造へ移動させる処理手段とを備え、前記処理手段は、前記移動コマンドが上位層の構造と下位層の構造とのいずれへの移動を指示するものであるか、及び前記移動コマンドが示すビヘイビアーを要素とする階層の構造と該ビヘイビアーの移動先となる階層の構造とがそれぞれ前記第1の種類の構造と前記第2の種類の構造とのいずれに該当するか、並びに該ビヘイビアーがこれを要素とする階層の構造中で特定の個所にあるか否かを判断基準とする移動可能性判定ルールに基づいて、前記条件の下で、該ビヘイビアーの移動が可能か否かを判定する移動可能性判定手段と、前記ビヘイビアーの移動が可能であると判定された場合に、前記移動コマンドが上位層の構造と下位層の構造とのいずれへの移動を指示するものであるか、及び前記移動コマンドが示すビヘイビアーを要素とする階層の構造と該ビヘイビアーの移動先となる階層の構造とがそれぞれ前記第1の種類の構造と前記第2の種類の構造のいずれに該当するかを判断基準とする移動可能個所計算ルールに基づいて、前記条件の下で、該ビヘイビアーの移動先となる階層の構造において該ビヘイビアーを移動できる個所を特定するための移動可能性個所特定手段と、前記ビヘイビアーの移動が可能であると判定された場合に、前記構造記憶手段に記憶された前記構造を、前記移動コマンドが示すビヘイビアーを前記移動可能性個所特定手段により特定された個所へ移動させたものに修正する仕様修正手段とを含むことを特徴とする。
【0015】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【0016】
本発明によれば、仕様を移動する際に移動が可能かどうかを判定し、移動できる個所を特定し、移動操作の前準備・後処理として仕様を一部修正して、仕様の任意の部分を任意の場所に内容を保存しながら移動することができ、これによって、仕様の設計において、目的やリソース制約あるいは外部からの要求などに合わせて、容易に、仕様の内容を保持しながら、仕様の構造を変更できるようになる。
【0017】
また、本発明によれば、移動コマンド定義手段により基本移動コマンドを組み合わせて任意の移動コマンドを作成することが可能なので、すべての仕様の組み合わせに対して予め移動コマンドを準備する必要がないという効果が得られる。
【0018】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0019】
図6に、本発明の実施の形態に係るシステム設計支援装置100の構成例を示す。図6に示されるように、システム設計支援装置100は、仕様モデル記述部101、アーキテクチャ探索部102、コミュニケーション合成部103、ハードウェア仕様生成部104、部品化・再利用部105、ソフトウェア仕様生成部106、システム仕様記録部107を備えている。システム設計支援装置100は、例えば、コンピュータを用いて構成可能であり、この場合、各処理部分はプログラムによって実施できる。
【0020】
システム仕様記録部107は、入力データや各処理部の処理結果の全部又は一部、例えば、計算機で実行されるソフトウェアの仕様や、半導体を組み合わせたハードウェアの仕様や、ソフトウェアとハードウェアを組み合わせた組み込みシステムの仕様や、ワークフロー等のビジネスプロセスの仕様に対しシステムレベルでの仕様等や、その他の必要なデータを記録するためのものである。
【0021】
仕様モデル記述部101は、設計者が予め定められた仕様記述形式に従って計算内容の仕様、通信内容の仕様を記述することを支援するためのものである。仕様モデル記述部101の支援の結果、仕様モデルが生成される。仕様記述形式には、例えば、構造化プログラミング言語に代表される構造化テキスト形式や、グラフを利用する構造図形式や、テーブルを利用する表形式が有る。
【0022】
アーキテクチャ探索部102は、与えられた仕様記述モデルと、アーキテクチャ(例えば、ハードウェア実行環境とソフトウェア実行環境の構成)に対し、仕様の内容を保存したまま仕様モデルの部分構造を分割しアーキテクチャ要素に分配する。すなわち、仕様モデル記述部101で設計された計算内容の仕様や通信内容の仕様を構成する部品をアーキテクチャ要素に割り当てる。
【0023】
コミュニケーション合成部103は、アーキテクチャ探索部102で分配された通信仕様要素間に対して通信手順(プロトコル)を挿入し、通信内容の仕様が挿入された通信手順と整合性を保つためのプロトコル変換(通信手順の組替え)を行う。
【0024】
なお、アーキテクチャ探索部102が処理対象とする仕様記述モデルは、仕様モデル記述部101を利用して記述されたものに限定されず、他のツール等で記述されたものでもよい。また、コミュニケーション合成部103が処理対象とする仕様記述モデルは、アーキテクチャ探索部102の出力結果(またはこの結果に修正を加えたもの)に限定されず、他のツール等で記述されたものでもよい。
【0025】
ハードウェア仕様生成部104は、システム仕様からハードウェア記述言語などによるハードウェア仕様を生成する。
【0026】
ソフトウェア仕様生成部106は、システム仕様からソフトウェア記述言語などによるソフトウェア仕様を生成する。
【0027】
ハードウェア仕様生成部104やソフトウェア仕様生成部106は、仕様モデル記述部101の出力結果(またはこの結果に修正を加えたもの)、アーキテクチャ探索部102の出力結果(またはこの結果に修正を加えたもの)、コミュニケーション合成部103の出力結果(またはこの結果に修正を加えたもの)、あるいは他のツール等で記述されたものなどを処理対象とすることができる。
【0028】
部品化・再利用部105は、仕様モデル記述部101、アーキテクチャ探索部102、コミュニケーション合成部103の全部または一部の設計段階において、仕様を部品化し、これを設計に再利用するためのものである。
【0029】
以下詳述する仕様操作装置は、図6のシステム設計支援装置のアーキテクチャ探索部102に用いられるもので、仕様の内容を保持しつつ、構造を変換して、仕様分割を行うことを可能にするものである。
【0030】
図1に、本発明の一実施形態に係る仕様操作装置の構成例を示す。
【0031】
図1に示されるように、本仕様操作装置は、仕様構造記録部11、仕様制約記録部12、仕様移動部13を含む仕様操作部1、外部とデータや指示のやり取りを行うための入出力部2、仕様移動ルール(移動可能性判定ルール、移動可能箇所計算ルール、仕様修正ルール)など必要なデータを記憶するための記憶部(図示せず)を備えている。また、必要に応じて、通信部3やプログラム実行部4などを更に備えることができる。
【0032】
仕様構造記録部11は、仕様に関連する情報を仕様の部分部分間の関連性を含めた構造情報(21)として記録保存する。
【0033】
仕様制約記録部12は、仕様にかかわる制約(22)を記録保存する。
【0034】
仕様移動部13は、内容を保持したままでの仕様の移動が可能かどうかの判定、移動可能な場合における移動先の個所の表示、仕様の移動すなわち仕様の一部の修正などを行うためのものである。
【0035】
図2に、仕様移動部13の内部構成例を示す。
【0036】
仕様移動部13は、移動可能性判定部131、移動可能場所表示部132、仕様修正部133、移動コマンド部134を含む。
【0037】
移動可能性判定部131は、仕様制約を参照して仕様の一部が移動できるかどうかを判断する。
【0038】
移動可能箇所表示部132は、仕様が移動できる場合に、他のどの個所に移動できるかを計算し、移動先の候補を表示する。
【0039】
仕様修正部133は、仕様の移動コマンド実行前に移動のための準備を行い、移動後に同期を確保するためのビヘイビアの挿入を行い、また移動後に実行順序制約を満たす範囲内での構造の簡略化を行う。
【0040】
移動コマンド部134は、移動を行うためのコマンドを実行する。
【0041】
図3に、移動コマンド部134の内部構成例を示す。
【0042】
移動コマンド部134は、基本移動コマンド部1341、移動コマンド定義部1342、移動コマンド解釈実行部1343を含む。
【0043】
基本移動コマンド部1341は、移動のために必要な基本移動コマンドを実行するためのものであり、基本移動コマンドによって、階層構造に渡って仕様の一部を移動する。
【0044】
基本移動コマンド部1341は、実行順序に関連して仕様を階層に渡り移動させるための実行順序移動コマンドを実行する実行順序移動コマンド部13411と、通信に関して仕様を階層に渡り移動させるための通信路移動コマンドを実行する通信路移動コマンド部13412とを含む。
【0045】
移動コマンド定義部1342は、基本移動コマンドを組み合わせて任意の移動コマンドを定義するためのものである。
【0046】
移動コマンド解釈実行部1343は、移動コマンド定義を解釈し移動を実行する(移動コマンド定義部1342が定義するコマンド定義に従い移動コマンドを実行する)ためのものである。
【0047】
本仕様操作装置は、例えば、コンピュータ上で本発明を実施したプログラム(システム設計支援ソフト)を実行することによって、実現可能である。
【0048】
<仕様の構造>
以下では、仕様は複数の「ビヘイビア」と呼ぶ基本単位で構成されるものとする。ビヘイビアは、階層構造を持つことができる。すなわち、ひとつのビヘイビアは、複数の他のビヘイビアを下階層として持つことができる。ビヘイビアは、ソフトウエアの仕様の場合は、関数やクラスに相当し、ハードウエアの場合は、LSIブロックに相当し、ビジネスプロセスの場合は、ジョブやタスクに相当する。
【0049】
「仕様の構造」とは、ビヘイビアで構成される仕様の構造を規定し、ビヘイビアの実行の順番に関する階層構造と、ビヘイビア間でのデータの通信路に関する階層構造とによって構成される。実行の順番に関する構造と通信路に関する構造は、階層としては同じ構造を持つ。すなわち、ビヘイビアAが実行の順番に関してビヘイビアBの上位階層にあるならば、Aは通信路に関してもBの上位階層である。
【0050】
仕様の構造により、アーキテクチャに対する仕様分割の方法も定義できる。例えば、組み込みシステムならば、ハードウエアとソフトウエアのそれぞれに対応する部分に、仕様がどのように分割されるかを、仕様として構造化して記述する。
【0051】
<仕様の書式>
仕様の構造(図1の21参照)のうち、実行の順番に関係する構造は、少なくとも「逐次実行および繰返し実行」(fsm)、「並列実行」(par)、「同期実行」(fork,join,start,end)、「割込み実行」(try,trap,itrp)という4分類の文法的要素を用いた階層構造として表現される。
【0052】
例えば、
fsm{a,b}は、
“aを実行し終了の後にbを実行する”
という仕様を表現し、
par{a,b}は、
“aとbを並列に実行する”
という仕様を表現し、
階層的な仕様である、fsm{a,par{b,c},d}は、
“aを実行した後にb,cを並列に実行し、
そしてb,cが両方終了したらdを実行する”
という仕様を表現している。
【0053】
また、「割込み実行」に関する仕様である、try{a}trap(e){b}は、
“最初にaを実行する。aの実行中にイベントeが発生したら、
aの実行を強制終了し、bの実行を開始する”
という仕様を示す。
【0054】
「逐次実行および繰り返し実行」、「並列実行」、「同期実行」、「割込み実行」は、ソフトウエア、ハードウエア、そしてビジネスプロセスの仕様を記述するために用いられる実行制御方法の規定のための手段として必要最小限の要素であり、これらを階層的に組み合わせることにより、いわゆるシステムの仕様を記述する。
【0055】
一方、通信路に関する構造は、ビヘイビア間のデータのやりとりを規定する。ここでは、変数およびチャネルと呼ばれる部品により、通信路が実現されるものとする。変数やチャネルは仕様の階層関係の上位階層のビヘイビアの直属の部品として定義され、これと下位階層のビヘイビアとがポートと呼ばれる接続口を介して接続することにより、下位階層同士のビヘイビアが通信路を介して互いに通信することを可能にしている。
【0056】
通信路は、ソフトウエアの場合は変数や通信用の関数に相当し、ハードウエアの場合はLSIを結ぶ結線に相当する。ポートは、通信のための入出力口であり、ソフトウエアの場合は引数に相当し、ハードウエアの場合は部品同士を結線で結ぶための端子に相当する。チャンネルは、データを送受信するために特別に用意されたコマンドを受け付ける部品である。例えば、“put(データ)”,“get()”といったコマンドが考えられる。変数は、書き込み“write(データ)”コマンドと読み込み“read()”コマンドとを備えたチャンネルの一種であるとみなすことができる。
【0057】
このような仕様記述の構造を持つ言語の例としては、システム仕様記述言語SpecCがある。なお、SpecCについては例えば“SpecC:Specification Language and Methodology”,Daniel D.Gajski,Kluwer Academic Publishers,Dordrecht,ISBN0-7923-7822-9に詳しい。
以下では、pecCの言語仕様を簡略化した下記に規定する表現形式に準拠して仕様の構造が記述されるものとする場合を例にとって説明する。
【0058】
・システム記述:=“ビヘイビア記述”の集合
・ビヘイビア記述:={通信要素,…,処理内容}
Figure 0003895934
ビヘイビア記述例{i,j,k,fsm{A(i),B(i,j),C(k)}において、i,j,kはローカル変数であり、A,B,Cは下位階層のビヘイビアで、それぞれポートを持ち、ポートがローカル変数と接続していることを示している。
【0059】
・par{A,B,C}
この処理内容例は、A,B,Cを並列実行するものである。
【0060】
Figure 0003895934
ここで、fsmの各要素は、
{ラベル,処理内容,{条件:条件成立時の遷移},…}、あるいは、
{ラベル,処理内容,処理終了時の遷移,…}、あるいは、
{ラベル,処理内容}、あるいは、
処理内容
のいずれかで構成され、特に指定が無い場合は、左から順に逐次実行される。すなわち、遷移ラベルの項目が無い場合、{ラベル,処理内容}は、処理内容が終了すると、次のfms要素を実行することになる。また、ラベル=1あるいは最左のfms要素が最初に実行されるものとする。遷移は、「goto(X):Xはラベル番号」にて表す。例えば、goto(1)は、最初のfms要素に戻ることを表している。
上記の処理内容例では、Aが実行され、終了すれば、Bが実行され、Bが終了したとき、変数flgの値が3ならばAを、1ならばBを実行することを表している。
次に例示するように、ラベルの無い要素は、ラベルを用いた或る実行制御の簡略形であるといえる。
fsm{A,B,C}=fsm{{1,A,goto(2)},{2,B,goto(3)},{3,C,…},…}
・try{A}trap(ev1){B}itrp(ev2){C}…
この処理内容例では、まず、Aを実行する。そして、Aの実行中にイベントev1が発生すれば、Aを強制終了して、Bを実行する。また、Aの実行中にイベントev2が発生すれば、Aを一時停止して、Cを実行し、Cが終了したとき、Aの処理を再開する。
なお、trap(e){X},itrp(e2){Y}は、複数あってもよい。
【0061】
・wait(ev)
これは、イベントevの発生を待つ同期処理である。
【0062】
・notify(ev)
これは、イベントevを発生させる同期処理である。
【0063】
・flg=X
これは、変数flgへの値の代入である。
【0064】
・flg==X
これは、条件判断である。
【0065】
・start(ID);
fork(ID);
これは、同期処理Iであり、startとforkは同期して実行される。
【0066】
・end(ID);
join(ID);
これは、同期処理IIであり、endとjoinは同期して実行される。
【0067】
上記に列挙した書式に従った、階層構造を持つ仕様の例を以下に挙げる。
【0068】
(例:ex0)
A:={i,par{B(i),g(i)}}
B(i):={j,k,fsm{a(j),b(k,i),C(k)}>}
C(k):={par{d,e,f(k)}}
これは、以下の仕様を表現している。
「ビヘイビアAはB,C,g,a,b,d,e,fという子ビヘイビアから構成され、ビヘイビアAは下位階層B,gより構成され、Bとgは並列実行であり、Aの下位階層であるBは下位要素a,b,Cより構成され、逐次実行され、さらにBの下位階層であるCは下位要素d,e,fより構成され、並列実行される。
また、Aは通信路iを持ち、iを介してBのポートiとgのポートiが接続しており、またBは通信路j,kを持ち下位要素aのポートjと通信路jが接続し、bのポートkと通信路kが、bのポートiとBのポートiが、Cのポートkと通信路kがそれぞれ接続し、Cのポートkとfのポートkが接続していることを示している。すなわち、階層を渡ってビヘイビアfとb、gとbがそれぞれ通信線により接続し互いにデータをやり取りする。」
以下では、説明のために実行の順番に着目して通信路と階層関係を簡略化する場合がある。例えば、上記の仕様例(ex0)を実行の順番に着目して簡略化すると以下のように記述できる。
A:=par{fsm{a,b,par{d,e,f}},g}
また、説明のために通信路と接続関係に着目して、実行の順番を簡略化する場合がある。上記の仕様例(ex0)を通信路と接続関係に着目して簡略化すると以下のように記述できる。
A:={i,bh{B(i),g(i)}}
B(k):={i,j,bh{a(i),b(i,j),C(j)}>}
C(j):={ bh{d,e,f(j)}}
fork(x)とstart(x)、およびend(x)とjoin(x)は、それぞれ対となって、同期制約を表し、これらの2つが常に同期して実行されることを規定している(ここで、xはid番号であり同じid番号をもつペアが同期して実行されることとする)。
例えば、
Figure 0003895934
という仕様は、1から3および2から4の逐次実行(fsm)を並列実行(par)することを階層的に示しているが、fork,join,start,endの同期関係より1と3の間に2が実行されることがわかる。
【0069】
通信路の構造に関しては、上記の仕様例(ex0)においては、fとbがBの通信路jを介して互いにデータをやり取りし、Aの通信路iを介してa,b,gが互いにデータをやり取りできることを示している。
【0070】
<仕様の制約>
仕様制約記録部12には、仕様記述に関する制約を記録する。仕様制約に基づき、仕様の内容が保持されることを判断することができるものとする。以下では、実行順序制約という仕様制約の一例を挙げ、仕様の制約に従った仕様操作の例を示す。
【0071】
<実行順序制約>
実行順序制約とは、各ビヘイビアが実行されるにあたってのビヘイビア間の実行順序に関する制約である。実行順序関係は、順序関係(>)により表すことができる。例えば、(A>B)とは、Bの実行はAの実行の終了後であるという制約を示している。順序関係であるから、A>BかつB>CならばA>Cである(順序の推移性)。
【0072】
仕様を構成するビヘイビアの集合に対する実行順序制約は、ビヘイビア間の順序関係(>)の集合として表現できる。この実行順序制約は、必ずしも全てのビヘイビアの組み合わせに対して順序関係が規定されていなくてもよいという意味で、半順序集合である。例えば、A,Bが並列実行であるという仕様は、A,Bどちらが先に実行されるかを規定していないが、仕様としては有功である。
【0073】
「与えられた任意の半順序集合に対して互いに矛盾しない順序関係を漸次、加えて行くことにより、最後には全順序集合とすることができる。」という仕様記述における順序関係の性質を利用して、実行順序制約の間で、強弱の関係を定義することができる。すなわち、半順序集合Aに順序制約xを加え半順序集合Bを得たとき、「BはAより強い」、「AはBより弱い」、と定義する。
【0074】
<「実行の順番」と「実行順序制約」の関係>
与えられた「仕様の構造」から、実行順序制約を唯一つ決めることができる。
【0075】
例えば、fsm{1,2}は、1の後に2を実行するという順番を規定し、これに対応する実行順序制約は、{1>2}のみである。
【0076】
また、par{1,2}は、1と2の順番に対しては特に制約がないことを示し、並列で行われようが、どちらかが先に行われようが、構わないことを示す。これに対応する実行順序制約は、{}である。このとき、par{1,2}に関して{}よりも強い実行順序制約は、{1<2}と{2<1}の2つのみである。
【0077】
仕様の構造(甲)に対応する実行順序制約(乙)を、
「甲が乙をimplyする」
と呼ぶことにする。仕様の構造(甲)に対し、実行順序制約(乙)に含まれるすべての半順序関係が矛盾が無いとき、
「甲は乙を充足する」
と呼ぶことにする。
【0078】
甲が乙をimplyするとき、甲は乙を充足するが、甲が乙を充足するとき必ずしも甲が乙をimplyするとは限らない。
【0079】
例えば、
甲1: fsm{1,fsm{2,3},4}
甲2: fsm{1,par{2,3},4}
乙1: {1<2,2<3,3<4}
乙2: {1<2,1<3,2<4,3<4}
という例においては、甲1は乙1を、甲2は乙2をそれぞれimplyしているまた、甲1,甲2は共に乙1、乙2を充足するが、甲2は乙1をimplyしてはいない(2と3の順序はわからない)。甲1も乙2をimplyしていない(2<3が乙2から導き出せない)。
【0080】
与えられた任意の実行順序制約の集合に対して複数の充足可能な仕様の構造があり得る。構造は階層的であるから、与えられた実行順序制約の集合に対する充足可能な仕様の構造は無限に存在し、これらは数え上げることはできない。
【0081】
一方、与えられた仕様の構造Aに対して、これがimplyする実行順序制約Bは一つである。このとき仕様の構造Aに関して、実行順序制約Bよりも強い実行順序制約を全て数えることができる。例えば、
fsm{1,2,par{3,fsm{4,5},6},7}
という仕様の構造に対して、implyされる実行順序制約は、
R0={1<2,2<3,2<4,2<6,4<5,6<7,3<7,5<7}
である。parの部分に順序関係を加えて行くことにより、上記構造fsm{1,2,par{3,fsm{4,5},6},7}に関してR0よりも強い全ての実行順序制約を求めることができる。この例の場合、
R1=R0 ∪ {3<4, 5<6}
R2=R0 ∪ {5<6, 6<3}
R3=R0 ∪ {3<6, 6<4}
になり、R0を含めると、4通りである(なお、∪は集合和の演算を表している)。
【0082】
<通信路と接続関係の制約>
通信路の所属するビヘイビアの階層に関する制約を下記に示す。
“通信路は、それを介して互いに接続するビヘイビアのいずれよりも
上位階層のビヘイビアにて定義されなければならない。”
次に示す仕様例(ex1)は、ビヘイビアB,AがDに所属する通信路cを介して互いに接続している仕様を示している。cが属するDはB,Aよりも上位階層であるから、制約を満たす。
(例:ex1)
E:={bh{D)}
D:={c,bh{B(c),A(c)}}
一方、以下の仕様例(ex2)は、仕様例(ex1)においてcの所属をDの上位階層のEに移動したものである。
(例:ex2)
E:={c,bh{D(c)}}
D(p):={bh{{bh{B(p),A(p)}}}}
仕様例(ex2)でも、B,Aの接続関係は仕様例(ex1)と同様に保たれており、かつ、通信路の所属に関する制約も守られている。従って、通信路の所属は仕様例(ex1)と仕様例(ex2)のどちらでも可能であり、2つの仕様は相互に変換可能であることがわかる。この例では、通信路の所属をB,Aに移動することは、制約に違反するので不可能である。
【0083】
<仕様の構造の等価性と強制約>
2つの「仕様の構造」A,Bが与えられているとき、それぞれの仕様の構造がimplyする実行順序制約が同一であるとき、
「AとBは実行順序制約上は等価である」
と呼び、また片方の仕様の構造Aがimplyする実行順序制約がもう片方Bのそれよりも強い場合を、
「Aは実行順序制約の上ではBより強制約である」
と呼ぶことにする。
【0084】
実行順序制約上で等価な「仕様の構造」の例を示す。
【0085】
例えば、下記の仕様の例において、
(例:ex1a)
par{fsm{1,2},fsm{3,4,fsm{5,6}}}
(例:ex2a)
par{fsm{1,2},fsm{3,fsm{4,5,6}}}
(例:ex3a)
par{fsm{1,2},fsm{3,4,5,6}}
仕様例(ex1a)に対し、仕様例(ex2a)および仕様例(ex3a)は、互いに同一の実行順序制約{1<2,3<4,4<5,5<6}をimplyしているので、等価である。
【0086】
また、同期を利用した下記の仕様例(ex4a)も、上記の仕様例(ex1a),(ex2a),(ex3a)と等価な仕様の構造の例である。
(例:ex4a)
par{fsm{1,fsm{start(4),4,end(4)},2},
fsm{3,fsm{fork(4),join(4)},5,6}}
次に、強制約な仕様の構造の例を示す。
【0087】
例えば、
(例:ex1b)
fsm{1,par{2,3},4}
という仕様の例に関して、(ex1b)がimplyする実行順序制約は、次の(ecs1b)に示す通りである。
{1<2,1<3,2<4,3<4} …(ecs1b)
一方、
(例:ex2b)
fsm{1,2,par{3},4}
という仕様の例に関して、(ex2b)がimplyする実行順序制約は、次の(ecs2b)に示す通りである。
{1<2,2<3,3<4} …(ecs2b)
上記の実行順序制約(ecs2b)は、実行順序制約(ecs1b)を半順序集合として包含する(1<3は{1<2,2<3}に含まれてしまう)ので、実行順序制約(ex2b)は、実行順序制約(ex1b)に対して強制約である。
【0088】
同様に、次に示す仕様例(ex3b),(ex4b)も、仕様例(ex1b)に対して強制約な仕様の構造の例である。
fsm{1,3,par{2},4} …(ex3b)
fsm{1,par{2},3,4} …(ex4b)
<仕様の構造の変換>
仕様の構造が与えられたとき、これと等価な実行順序制約を持つ別の仕様の構造に変換するか、または、元の仕様の構造に対する実行順序制約に対し強制約の実行順序制約を持つ別の仕様の構造に変換することを、「仕様の内容を保ったまま構造を変換する」と定義する。
【0089】
<移動コマンドの例>
以下では、「実行順序制約」の仕様制約に基づき、「仕様の内容を保ったまま」仕様の一部を他の部分に移動する移動コマンドの例を示す。もちろん、本発明は、以下の例に限定されるものではない。すなわち、本発明において他の仕様制約を利用する場合には、適宜、別の「仕様の内容を保つ」定義や、移動コマンドの種類を用いることができる。
【0090】
<通信路を移動するコマンド>
<<通信路移動コマンド部>>
通信路に関する移動コマンドは、通信路移動コマンド部13412により実行され、チャネルや変数の所属(どのビヘイビアに所属するか)に関して、ビヘイビアの階層に沿って、所属を上下に移動するコマンドであるところのpop/pushの2種類のコマンドで構成される。
pop(移動する変数/チャネル)
push(移動する変数/チャネル)
いま、ビヘイビアEの下階層にビヘイビアD、Dの下階層が2つの互いに通信しあっているビヘイビアA,Bで構成され、さらにDに所属するチャネルcによりA,Bが互いに接続しているとする。そのような仕様の構造の例(ex1c)は下記の通りである。
(例:ex1c)
E:={bh{D)}
D:={c,bh{B(c),A(c)}}
pop移動コマンドは、チャネルあるいは変数の所属をひとつ上位の階層のビヘイビアに移動する。例(ex1c)において、pop(c)移動コマンドを適用した結果が、下記の例(ex2c)である。
(例:ex2c)
E:={c,bh{D(c)}}
D(p):={bh{{bh{B(p),A(p)}}}}
例(ex2c)では、チャネルcの所属がDからEへ変更になる。また、このとき、A,B間での通信路を確保するためにビヘイビアDに新たにポートpが定義され、DとB,Aとの接続関係が追加されている。
【0091】
pushは逆にチャネル・変数の所属をひとつ下位の階層に移動する。上記の例では、(ex2c)においてpush(c)コマンドを実行すると(ex1c)になる。(ex1c)は、A,Bの通信路cの取り得る最下層のビヘイビア所属を表している。すなわち、(ex1c)に対してpush(c)コマンドは無効である。このように、popに関しては制限が無いが、pushに関しては下限が存在し、所属の下限は通信に参加するビヘイビアのうち最上位階層のものと同じ階層である。
【0092】
<実行の順序に関する仕様の基本移動コマンド>
<<実行順序移動コマンド部>>
実行の順序に関する移動は、実行順序移動コマンド部13411により行う。実行順序移動コマンド部13411は、基本移動コマンドとして、下階層から上階層へのビヘイビアの移動であるpopと、上階層から下階層へのビヘイビアの移動であるpushの4種類で構成される。
pop(移動するビヘイビア)
pop(移動するビヘイビア,移動場所)
push(移動するビヘイビア,移動場所)
push(移動するビヘイビア)
どちらも移動する場所が唯一特定される場合には、1引数のコマンドにより、そうでない場合には、2引数のコマンドにより、それぞれ移動可能性判定部131に移動場所を指定して移動を行う。
【0093】
<移動の手順>
以下では、仕様移動部13における仕様の移動の処理について説明する。
【0094】
図4に、仕様移動部13における仕様の移動の手順の一例を示す。
【0095】
まず、移動可能性判定部131により仕様の移動が可能かどうかを調べる(ステップS1)。
【0096】
移動が可能な場合(ステップS2でYesの場合)、移動可能箇所表示部132により、移動する場所候補を計算し、候補が複数あるかどうか調べる(ステップS3)。そして、候補が複数ある場合(ステップS4でYesの場合)には、場所を限定して移動場所を特定する(ステップS5)。
【0097】
次に、移動の前準備として、移動後においても、通信路の階層に関する制約が満たされているために、通信路を上位階層に予め移動する必要がある場合には、前述の通信路移動コマンドにより、該当する通信路を制約が満たされる上位階層に予め移動する(ステップS6)。そして、実行順序移動コマンドにより、ビヘイビアを階層に渡って上下に移動する(ステップS7)。続いて、実行順序制約に違反しないように仕様の修正を行う(ステップS8)。
【0098】
なお、移動が可能でない場合(ステップS2でNoの場合)には、例えばエラー表示などの処理を行う(ステップS9)。
【0099】
ビヘイビアの移動においては、上下の階層の種類(fsmかpar)の組み合わせの場合わけにより、push/pop移動コマンドの振る舞いが異なるので、以下では、場合分けして説明する。
【0100】
以下の例では、移動可能性の判定を移動可能性判定ルールに基づいて行い、移動箇所の計算を移動可能箇所計算ルールに基づいて行い、仕様の修正を仕様修正ルールに基づいて行うこととする。
【0101】
仕様移動ルールを以下に例示する。
【0102】
(1)上位=fsm/下位=fsmの場合
[移動可能性判定ルール]
・階層で近接するビヘイビアのみが上位/下位階層に移動できる。
[移動可能箇所計算ルール]
・移動可能な場所は階層を挟んで隣接する部分である。
【0103】
ここで、階層で近接するビヘイビアとは、上位階層へ移動する場合は、fsmの開始と終了のビヘイビアであり、下位階層へ移動する場合は、下位階層に近接するビヘイビアである。例えば、
fsm{1,2,fsm{3,4,5},6,7}
では、1,3,5,7が上位階層へ移動でき、2,6が下位階層へ移動できる。2が移動できるのは3の直前、5が移動できるのは6の直前、3が移動できるのは3の直後である。
[仕様修正ルール]
・移動後に順序制約を保持すべく適切な同期処理を仕様に付与する。
・移動後に冗長な階層や同期処理を、順序制約を保持する範囲で削除する。
【0104】
(2)上位=par/下位=parの場合
[移動可能性判定ルール]
・任意のビヘイビアが移動可能である。
[移動可能箇所計算ルール]
・移動場所も任意の場所に移動できる。
[仕様修正ルール]
・移動後に順序制約を保持すべく適切な同期処理を仕様に付与する。
・移動後に冗長な階層や同期処理を、順序制約を保持する範囲で削除する。
【0105】
(3)上位=fsm/下位=parの場合
[移動可能性判定ルール]
・下層(par)から上層(fsm)への移動は下層の任意のビヘイビアが可能である。
・上層から下層への移動は下層に近接するビヘイビアのみ可能である。
[移動可能箇所計算ルール]
・下層(par)から上層(fsm)への移動は下層に近接するビヘイビアの直前後にのみ移動可能である。
・上層(fsm)から下層(par)への移動は下層の任意の場所に移動可能である。
[仕様修正ルール]
・移動後に順序制約を保持すべく適切な同期処理を仕様に付与する。
・移動後に冗長な階層や同期処理を、順序制約を保持する範囲で削除する。
【0106】
(4)上位=par/下位=fsmの場合
[移動可能性判定ルール]
・上層から下層への移動の場合、任意の上層のビヘイビアが移動可能である。
・下層から上層への移動の場合、下層の任意のビヘイビアが移動可能である。
【0107】
[移動可能箇所計算ルール]
・上層から下層への移動の場合、移動場所は下層の任意の場所が可能である。
・下層から上層への移動の場合、上層の任意の場所へ移動可能である。
[仕様修正ルール]
・移動後に順序制約を保持すべく適切な同期処理を仕様に付与する。
・移動後に冗長な階層や同期処理を、順序制約を保持する範囲で削除する。
【0108】
以下では、上記に例示した移動のためのルールを整理したものを示す。
【0109】
<ケース1:上位階層=FSM,下位階層=FSMの場合>
<<popコマンド>>
下記の仕様(1)が与えられたとき、
fsm{1,2,fsm{3,4,5}} …(1)
仕様(1)の構造がimplyする実行順序制約は、次の(2)に示す通りである。
{1<2,2<3,3<4,4<5} …(2)
ここで、仕様(1)に対してビヘイビア3をひとつ上の階層に移動する“pop(3)”移動コマンドを実行するものとする。移動可能性判定部131により、移動可能性判定ルールに照らし合わせると、3は上位階層に近接するビヘイビアなので、移動が可能であることがわかる。さらに、移動可能箇所については、ルールによると、3に階層を渡って上位階層で隣接するビヘイビアが2なので、2の直後にこれを挿入することができることがわかる。
【0110】
仕様(1)に対してビヘイビア3をひとつ上の階層に移動する“pop(3)”移動コマンドを実行すると、その結果として、次に示すような等価な仕様の構造(3)を得る。
fsm{1,2,3,fsm{4,5}} …(3)
一方、仕様(1)に対してpop(5)コマンドを実行すると、下のfsm階層の直後に移動でき、結果として、次に示すような仕様の構造(4)を得る。
fsm{1,2,fsm{3,4},5} …(4)
また、仕様(1)に対してpop(4)コマンドを実行することは、移動可能性判定ルールによると実行順序制約を破るので、移動できないことがわかる。
【0111】
例えば、ビヘイビア2の直後にpop(4)を実行すると、次に示すような仕様(5)を得るが、
fsm{1,2,4,fsm{3,5}} …(5)
仕様(5)は仕様(1)がimplyする“{3<4}”という実行制約と矛盾する。
【0112】
逆に、仕様(1)においてfsmの最後にpop(4)を実行すると、次の仕様(6)を得るが、
fsm{1,2,fsm{3,5},4} …(6)
仕様(6)も仕様(1)がimplyする“{4<5}”という制約と矛盾する。
【0113】
<<pushコマンド>>
下記の仕様(7)が与えられたとき、
fsm{1,fsm{2,3},4,5} …(7)
仕様(7)は、次に示す実行順序制約(8)をimplyしている。
{1<2,2<3,3<4,4<5} …(8)
ここで、仕様(7)に対し、“push(1)”移動コマンドを実行するものとする。移動可能性判定部131により、移動可能性判定ルールを参照すると、1は階層に隣接するので、下位階層に移動でき、移動可能箇所計算ルールによると移動できる場所は2の直前であることがわかる。
【0114】
“push(1,2の直前)”コマンド実行の結果、1がひとつ下の階層に移動して、次に示すような仕様(9)を得る。
fsm{fsm{1,2,3},4,5} …(9)
移動可能性判定ルールによると、fsm/fsmの場合は下の階層へ隣接したビヘイビアしかpushできないので、仕様(7)に対する“push(5)”コマンドは実行不可能である。
【0115】
<ケース2:上位階層=PAR、下位階層=PARの場合>
<<popコマンド>>
次に示す仕様の構造(1a)が与えられたとき、
par{1,par{2,3},4} …(1a)
仕様(1a)は、下記の実行順序制約(2a)をimplyしている(なにも順序は規定していないということ)。
{} …(2a)
仕様(1a)に対し“pop(2)”移動コマンドを実行するものとすると、移動可能性判定部131により、移動可能性判定ルールを参照し、ビヘイビア2が移動可能であることがわかり、さらに移動可能箇所表示部132は、移動可能箇所計算ルールを参照し、任意の場所に移動可能であることがわかり、移動可能な場所「1の直前および直後、4の直前および直後」を表示するので、設計者は「1の直後」を選択し“push(2,1の直後)”移動コマンドを実行すると、構造が変更され、次に示す新たな仕様(3a)を得る。
par{1,2,par{3},4} …(3a)
<<pushコマンド>>
移動可能性判定ルールによると、“par/parの場合”は、pushもpopと同じく任意の上位階層の要素を下位階層の任意の場所に移動できることがわかる。
【0116】
例えば、仕様(1a)に対し、push(4)移動コマンドを移動可能性判定部131により実行すると、次に挙げる3通りの可能な仕様を得る。
par{1,par{2,4,3}}
par{1,par{2,3,4}}
par{1,par{4,2,3}} …(4a)
これらは実行順序制約の上では同一の(等価な)仕様である。
【0117】
<ケース3:上位階層=FSM、下位階層=PAR>
<<popコマンド>>
与えられた以下の仕様(1b)に対して、
fsm{1,par{2,3},4} …(1b)
“pop(2)”移動コマンドを実行するものとすると、移動可能性判定部131により、移動可能性判定ルールを参照すると、移動可能であり、近接するビヘイビアが1,4なので、さらに移動可能箇所表示部132によると、「1の直後または4の直前」が移動可能な場所であることがわかる。
【0118】
“pop(2,1の直後)”移動コマンドを実行した場合は、
fsm{1,2,par{3},4} …(2b)
“pop(2,4の直前)”移動コマンドを実行した場合は、
fsm{1,par{3},2,4} …(3b)
という仕様の構造をそれぞれ得ることができる。
【0119】
“pop(3)”移動コマンドについても同様である。
【0120】
<<pushコマンド>>
次の仕様の構造(4b)に対して、
fsm{1,par{2,3},4} …(4b)
“push(1)”移動コマンドを実行するものとすると、移動可能性判定部131により、移動可能性判定ルールを参照して、上層から下層へ移動(push)するためには近接するビヘイビアのみが可能であり、1は下層に近接するビヘイビアなので移動可能であることがわかり、また仕様修正ルールにより移動に際しては適切な同期用の処理を付与する必要があるので、次に示すように、実行順序{1<2,1<3}を保持すべく同期処理とそれに関連する仕様の構造の変更を行う。
fsm{par{fsm{1,end(1)},fsm{join(1),2},fsm{join(1),3}},4}
…(5b)
ここでは、1,2,3はparの中で並列実行されるが、同期機構により1が終了したあとに2,3が起動することを示している。
【0121】
“push(4)”移動コマンドに対しても同様の処理を行う。この場合、順序制約{2<4,3<4}により4が開始するには、2,3両方が終了している必要があるので、同期は2つのjoinをparで括った階層を用意して、2と3が両方終わったときの同期タイミングを4の開始のタイミングとしている。
Figure 0003895934
<ケース4:上位階層=PAR,下位階層=FSM>
<<popコマンド>>
次に示す仕様(1c)に対し、
par{1,2,fsm{3,4,5}} …(1c)
“pop(4)”移動コマンドを実行するものとすると、移動可能性判定部131により、移動可能性ルールを参照して、下層fsmから上層parへの移動できるのは任意のビヘイビアなので、ビヘイビア4は移動できることがわかり、また移動可能場所ルールにより、移動の場所は任意の場所が許されることがわかり、さらに仕様修正ルールにより、移動の場合は適切な同期の処理を付与しなくてはならないことがわかるので、これに基づいて移動コマンドを実行し、同期の処理を付与して最終的に得られた結果が、次の仕様(2c)である。
par{1,2,fsm{start(4),4,end(4)},fsm{3,fork(4),join(4),5}}
…(2c)
仕様(2c)によると、4と3,5はparにより並列実行されるが、同期処理(start,end,fork,join)により3が終了したあとに4が4が終了した後に5が実行されることになり、これは初期の実行順序制約{3<4,4<5}を保っていることを示している。
【0122】
pop(3),pop(5)コマンドに関しても同様である。
【0123】
<<pushコマンド>>
仕様(1c)に対し“push(2)”移動コマンドを実行するものとすると、移動可能性判定部131により、上層(par)から下層(fsm)への移動は、任意の要素を、任意の場所に移動できることがわかる。そこで、移動個所を指定する移動コマンド“push(2,3と4の間)”を実行し、次の仕様(3c)を得る。
par{1,fsm{3,2,4,5}} …(3c)
<ケース5:基本移動コマンドの組み合わせ>
基本移動コマンドを組み合わせることにより任意の移動コマンドを実現することができる。コマンドを組み合わせる方法を指示する手段としては、手続き型の高級言語にて、これを行う。高級言語としては、例えば、スクリプト言語(javascript)やUNIXのシェル(sh,bash,csh)が考えられる。
【0124】
例えば、parの下階層のfsmに含まれる要素を隣接するfsm間で移動するrelocate_cncコマンドを、
relocate_cnc(移動対象,移動場所)=
“pop(移動対象)を実行してからpush(移動対象,移動場所)を実行する”
と(移動コマンド定義部1342にて)定義する。
【0125】
下記の仕様(1d)に対し、
par{fsm{1,2},fsm{3,4,5}} …(1d)
relocate_cnc(2,4と5の間)を実行すると、移動コマンド解釈実行部1343が、コマンド定義に従ってrelocate_cncの内容を実行する。
【0126】
まず、“pop(2)”を実行し、次の仕様(2d)を得、
par{fsm{join(1),2},fsm{1,end(1)},fsm{3,4,5}}
…(2d)
さらに、“push(2,4と5の間)”を実行し、仕様(3d)を得る。
par{fsm{1,end(1)},fsm{3,4,fsm{join(1),2},5}}
…(3d)
を得て、仕様修正ルールに従い、冗長なfsm階層を削除すると、
par{fsm{1,end(1)},fsm{3,4,join(1),2,5}}
…(4d)
を最終的に得る。
【0127】
別の例としては、fsmの下階層のfsmに含まれる要素をfsm間で移動するrelocate_seqコマンドを、
relocate_seq(移動対象,移動場所)=
“pop(移動対象)を実行してからpush(移動対象,移動場所)を実行する”
と(移動コマンド部134にて)定義する。
【0128】
次の仕様(5d)に対して、
fsm{fsm{1,2},fsm{3,4,5}} …(5d)
“relocate_seq(2,3の直前)”コマンドを実行すると、同様に、移動コマンド実行部134が移動コマンド定義を参照してpush/popコマンドを順次実行し、次の仕様(6d)を得る。
fsm{fsm{1},fsm{2,3,4,5}} …(6d)
このとき移動可能性判定部131もこの移動コマンド定義と個々の基本コマンドの移動判定ルールを参照して、これらを組み合わせることにより移動可能性を判定する。先の例の場合relocate_seq(2,3の直前),relocate_seq(3,2の直後)のみが可能であることがわかる。
【0129】
<仕様制約記録部について>
仕様制約記録部12は、例えば、仕様の構造に対応する実行順序制約を記録保持する。ただし、実行順序制約と仕様の構造とは、関連があるが独立である。
【0130】
例えば、仕様(1e)、
par{1,2,fsm{3,4,5}} …(1e)
がimplyする実行順序制約は、
{3<4,4<5} …(2e)
であり、これを仕様制約記録部12に記録して一連の移動コマンドを実行する。
【0131】
例えば、仕様(1e)に“push(2,3と4の間)”を実行すると仕様(3e)を得る。
par{1,fsm{3,2,4,5}} …(3e)
この仕様(3e)に対して“pop(2)”コマンドを実行すると、仕様(4e)を得るが、
par{1,fsm{join(3),2,end(2)},fsm{3,end(3),join(2),4,5}}
…(4e)
仕様制約記録部12を参照して元々の仕様(1e)の実行順序制約(2e)={3<4,4<5}を参照すると、同期処理が無駄であるのでこれを削除し、元の仕様(1e)と同じ構造を得る。
【0132】
さらに、“push(2,4と5の間)”コマンドを実行すると、次の仕様(5e)を得る。
par{1,fsm{3,4,2,5}} …(5e)
このように、元々の順序制約は仕様(1e)から抽出し、これに基づいて移動コマンド操作を行う場合(基本移動コマンドを組み合わせて任意の移動コマンドを作成する場合に相当)には、中間結果である仕様の構造がimplyする順序制約は、移動の際考慮すべき順序制約ではなく、仕様制約記録部12に記録された元々の仕様の構造のimplyする順序制約を参照する。仕様(3e)から仕様(5e)への変換のように、順序制約に照らし合わせると制約違反であるような移動が変換の中間状態には含まれることになる。
【0133】
<割り込み>
以上の例では、仕様の構造に割り込みに関する記述(try/trap/itrp)が含まれる場合については述べなかった。これは割り込みに関する記述は事前に局所化して、局所化された部分構造を単独ビヘイビアとして取り扱うことができるので、全体としては割り込みの構造を排除してpar,fsmのみで構成される階層構造とすることができるからである。
【0134】
例えば、
try{fsm{a,b,c}}trap(e){fsm{d}}
というビヘイビアは、「a,b,cを逐次実行している間にイベントeが発生したらa,b,cの実行を中止してdを実行する。eが発生しなかったらcが終了した時点で終了する。」という仕様を示しているが、これは、try/trap構造を下階層へ移動することにより、次に示すような等価な仕様の構造に変換することができる。
Figure 0003895934
ここでは、同期機構とflgフラグの値で元々の順序制約を保っている。
【0135】
さらに、図5に示すようなマクロ化を行うことにより、構造上try/trapを隠蔽することができる。
【0136】
なお、以上の各機能は、ソフトウェアとして実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0137】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【0138】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0139】
【発明の効果】
本発明によれば、仕様の設計において、目的やリソース制約あるいは外部からの要求などに合わせて、容易に、仕様の内容を保持しながら、仕様の構造を変更できるようになる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る仕様操作装置の構成例を示す図
【図2】同実施形態に係る仕様操作装置の仕様移動部の内部構成例を示す図
【図3】同実施形態に係る仕様操作装置の仕様移動部の移動コマンド部の内部構成例を示す図
【図4】図4に、仕様移動部13における仕様の移動の手順の一例を示す。
【図5】システム記述言語形式の仕様の一例を示す図
【図6】同実施形態に係るシステム設計支援装置の構成例を示す
【符号の説明】
1…仕様操作部
2…入出力部
3…通信部
4…プログラム実行部
11…仕様構造記録部
12…仕様制約記録部
13…仕様移動部
131…移動可能性判定部
132…移動可能場所表示部
133…仕様修正部
134…移動コマンド部
1341…基本移動コマンド部
1342…移動コマンド定義部
1343…移動コマンド解釈実行部
13411…実行順序移動コマンド部
13412…通信路移動コマンド部
100…システム設計支援装置
101…仕様モデル記述部
102…アーキテクチャ探索部
103…コミュニケーション合成部
104…ハードウェア仕様生成部
105…部品化・再利用部
106…ソフトウェア仕様生成部
107…システム仕様記録部

Claims (20)

  1. 処理単位であるビヘイビアーを複数用いて構成される所定の仕様における該複数のビヘイビアー間の実行順序に対する制約を規定するために、予め定めた順番で逐次的に実行する1又は複数のビヘイビアーを要素として含む第 1 の種類の構造と、実行する順序に制約のない1又は複数のビヘイビアーを要素として含む第2の種類の構造とを記述することが可能な所定のシステム記述言語により、前記複数のビヘイビアーを要素として記述された、前記所定の仕様の構造を対象として、該構造中の或ビヘイビアーを移動させる操作を行って該構造を変更するための仕様操作装置であって、
    前記所定の仕様の持つ構造として、その構造中に、前記第 1 又は第2の種類の構造に相当する上位層の構造がその要素として前記第 1 又は第2の種類の構造に相当する下位層の構造を含む階層的な構造部分が存在するものを記憶するための構造記憶手段と、
    前記所定の仕様の持つ構造により規定される前記複数のビヘイビアー間の実行順序に対する制約を示す制約情報を記憶するための制約情報記憶手段と、
    移動すべきビヘイビアーを示す情報を含み、該ビヘイビアーを、前記所定の仕様の持つ構造中において該ビヘイビアーを要素として含む構造からその上位層又は下位層の構造へ移動させる旨を指示する移動コマンドの入力を受け付ける手段と、
    前記制約情報が示す前記複数のビヘイビアー間の実行順序に対する制約を完全に維持するか、又は、この制約に対して、高々、前記複数のビヘイビアーのうち、実行する順番に制約のない特定の複数のビヘイビアーについてそれらが逐次的に実行される順序を特定した新たな制約が加わることを許容する条件の下で、前記移動コマンドが示すビヘイビアーを、前記移動コマンドの指示に応じて、該ビヘイビアーを要素として含む構造からその上位層又は下位層の構造へ移動させる処理手段とを備え、
    前記処理手段は、
    前記移動コマンドが上位層の構造と下位層の構造とのいずれへの移動を指示するものであるか、及び前記移動コマンドが示すビヘイビアーを要素とする階層の構造と該ビヘイビアーの移動先となる階層の構造とがそれぞれ前記第 1 の種類の構造と前記第2の種類の構造とのいずれに該当するか、並びに該ビヘイビアーがこれを要素とする階層の構造中で特定の個所にあるか否かを判断基準とする移動可能性判定ルールに基づいて、前記条件の下で、該ビヘイビアーの移動が可能か否かを判定する移動可能性判定手段と、
    前記ビヘイビアーの移動が可能であると判定された場合に、前記移動コマンドが上位層の構造と下位層の構造とのいずれへの移動を指示するものであるか、及び前記移動コマンドが示すビヘイビアーを要素とする階層の構造と該ビヘイビアーの移動先となる階層の構造とがそれぞれ前記第 1 の種類の構造と前記第2の種類の構造のいずれに該当するかを判断基準とする移動可能個所計算ルールに基づいて、前記条件の下で、該ビヘイビアーの移動先となる階層の構造において該ビヘイビアーを移動できる個所を特定するための移動可能性個所特定手段と、
    前記ビヘイビアーの移動が可能であると判定された場合に、前記構造記憶手段に記憶された前記構造を、前記移動コマンドが示すビヘイビアーを前記移動可能性個所特定手段により特定された個所へ移動させたものに修正する仕様修正手段とを含むことを特徴とする仕様操作装置。
  2. 前記移動可能性判定ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がいずれも前記第 1 の種類の構造に該当するものであり、前記移動コマンドが下位層の構造への移動を指示するものであり、該ビヘイビアーがこれを要素とする階層の構造中で該下位層の構造に隣接する個所にあるビヘイビアーである場合に、該ビヘイビアーの移動が可能であると判定するものであることを特徴とする請求項1に記載の仕様操作装置。
  3. 前記移動可能個所計算ルールは、前記移動コマンドが示すビヘイビアーを要素とする階 層の構造及び該ビヘイビアーの移動先となる階層の構造がいずれも前記第 1 の種類の構造に該当するものであり、前記移動コマンドが下位層の構造への移動を指示するものである場合には、該下位層の構造において該ビヘイビアーが階層を挟んで隣接する個所を、該ビヘイビアーを移動できる個所として特定するものであることを特徴とする請求項2に記載の仕様操作装置。
  4. 前記移動可能性判定ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がいずれも前記第 1 の種類の構造に該当するものであり、前記移動コマンドが上位層の構造への移動を指示するものであり、該ビヘイビアーがこれを要素とする階層の構造中で開始又は終了の個所にあるビヘイビアーである場合に、該ビヘイビアーの移動が可能であると判定するものであることを特徴とする請求項1に記載の仕様操作装置。
  5. 前記移動可能個所計算ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がいずれも前記第 1 の種類の構造に該当するものであり、前記移動コマンドが上位層の構造への移動を指示するものである場合には、該上位層の構造において該ビヘイビアーが階層を挟んで隣接する個所を、該ビヘイビアーを移動できる個所として特定するものであることを特徴とする請求項4に記載の仕様操作装置。
  6. 前記移動可能性判定ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がいずれも前記第2の種類の構造に該当するものであり、前記移動コマンドが下位層の構造への移動を指示するものである場合には、該ビヘイビアーがこれを要素とする階層の構造中でどのような個所にあるかにかかわらず、該ビヘイビアーの移動が可能であると判定するものであることを特徴とする請求項1に記載の仕様操作装置。
  7. 前記移動可能個所計算ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がいずれも前記第2の種類の構造に該当するものであり、前記移動コマンドが下位層の構造への移動を指示するものである場合には、該下位層の構造における全ての箇所を、該ビヘイビアーを移動できる個所として特定するものであることを特徴とする請求項6に記載の仕様操作装置。
  8. 前記移動可能性判定ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がいずれも前記第2の種類の構造に該当するものであり、前記移動コマンドが上位層の構造への移動を指示するものである場合には、該ビヘイビアーがこれを要素とする階層の構造中でどのような個所にあるかにかかわらず、該ビヘイビアーの移動が可能であると判定するものであることを特徴とする請求項1に記載の仕様操作装置。
  9. 前記移動可能個所計算ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がいずれも前記第2の種類の構造に該当するものであり、前記移動コマンドが上位層の構造への移動を指示するものである場合には、該上位層の構造における全ての箇所を、該ビヘイビアーを移動できる個所として特定するものであることを特徴とする請求項8に記載の仕様操作装置。
  10. 前記移動可能性判定ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がそれぞれ前記第 1 の種類の構造及び前記第2の種類の構造に該当するものであり、前記移動コマンドが下位層の構造への移動を指示するものであり、該ビヘイビアーがこれを要素とする階層の構造中で該下位層の 構造に隣接する個所にあるビヘイビアーである場合に、該ビヘイビアーの移動が可能であると判定するものであることを特徴とする請求項1に記載の仕様操作装置。
  11. 前記移動可能個所計算ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がそれぞれ前記第 1 の種類の構造及び前記第2の種類の構造に該当するものであり、前記移動コマンドが下位層の構造への移動を指示するものである場合には、該下位層の構造における全ての箇所を、該ビヘイビアーを移動できる個所として特定するものであることを特徴とする請求項10に記載の仕様操作装置。
  12. 前記移動可能性判定ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がそれぞれ前記第2の種類の構造及び前記第1の種類の構造に該当するものであり、前記移動コマンドが上位層の構造への移動を指示するものである場合には、該ビヘイビアーがこれを要素とする階層の構造中でどのような個所にあるかにかかわらず、該ビヘイビアーの移動が可能であると判定するものであることを特徴とする請求項1に記載の仕様操作装置。
  13. 前記移動可能個所計算ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がそれぞれ前記第2の種類の構造及び前記第1の種類の構造に該当するものであり、前記移動コマンドが上位層の構造への移動を指示するものである場合には、該上位層の構造における該下位層の構造の直前又は直後の個所を、該ビヘイビアーを移動できる個所として特定するものであることを特徴とする請求項12に記載の仕様操作装置。
  14. 前記移動可能性判定ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がそれぞれ前記第2の種類の構造及び前記第1の種類の構造に該当するものであり、前記移動コマンドが下位層の構造への移動を指示するものである場合には、該ビヘイビアーがこれを要素とする階層の構造中でどのような個所にあるかにかかわらず、該ビヘイビアーの移動が可能であると判定するものであることを特徴とする請求項1に記載の仕様操作装置。
  15. 前記移動可能個所計算ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がそれぞれ前記第2の種類の構造及び前記第1の種類の構造に該当するものであり、前記移動コマンドが下位層の構造への移動を指示するものである場合には、該下位層の構造における全ての箇所を、該ビヘイビアーを移動できる個所として特定するものであることを特徴とする請求項14に記載の仕様操作装置。
  16. 前記移動可能性判定ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がそれぞれ前記第1の種類の構造及び前記第2の種類の構造に該当するものであり、前記移動コマンドが上位層の構造への移動を指示するものである場合には、該ビヘイビアーがこれを要素とする階層の構造中でどのような個所にあるかにかかわらず、該ビヘイビアーの移動が可能であると判定するものであることを特徴とする請求項1に記載の仕様操作装置。
  17. 前記移動可能個所計算ルールは、前記移動コマンドが示すビヘイビアーを要素とする階層の構造及び該ビヘイビアーの移動先となる階層の構造がそれぞれ前記第1の種類の構造及び前記第2の種類の構造に該当するものであり、前記移動コマンドが上位層の構造への移動を指示するものである場合には、該上位層の構造における全ての箇所を、該ビヘイビアーを移動できる個所として特定するものであることを特徴とする請求項16に記載の仕 様操作装置。
  18. 前記所定のシステム記述言語は、前記第2の種類の構造に含まれる特定の複数のビヘイビアーの実行を同期させるための記述が可能なものであり、
    前記仕様修正手段は、前記移動コマンドが示すビヘイビアーを要素とする階層の構造が第1の種類の構造に該当し、且つ、該ビヘイビアーの移動先である階層の構造が第2の種類の構造に該当するものである場合に、該ビヘイビアーを移動させても前記条件が満たされるように、前記同期させるための記述を追加することを特徴とする請求項1,10,11,16,17に記載の仕様操作装置。
  19. 前記移動可能性個所特定手段は、前記ビヘイビアーを移動できる箇所として複数の候補が得られた場合には、該複数の候補を表示し選択の指示を受け付けることによって、前記ビヘイビアーを移動できる個所を特定することを特徴とする請求項1ないし18のいずれか1項に記載の仕様操作装置。
  20. 前記処理手段は、
    前記上位層又は下位層の構造へ移動させる旨を指示する基本的な移動コマンドを複数組み合わせた所望の移動コマンドを定義するための手段を含み、
    前記受け付ける手段が、定義された前記所望の移動コマンドを受け付けた場合には、定義された前記所望の移動コマンドを解釈し、この解釈結果に従って、定義の基となった基本的な移動コマンドを順次実行することを特徴とする請求項1ないし8のいずれか1項に記載の仕様操作装置。
JP2001024478A 2001-01-31 2001-01-31 仕様操作装置 Expired - Fee Related JP3895934B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001024478A JP3895934B2 (ja) 2001-01-31 2001-01-31 仕様操作装置
US10/059,227 US7464365B2 (en) 2001-01-31 2002-01-31 Method and computer program product for operating a specification of a system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001024478A JP3895934B2 (ja) 2001-01-31 2001-01-31 仕様操作装置

Publications (2)

Publication Number Publication Date
JP2002229784A JP2002229784A (ja) 2002-08-16
JP3895934B2 true JP3895934B2 (ja) 2007-03-22

Family

ID=18889614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001024478A Expired - Fee Related JP3895934B2 (ja) 2001-01-31 2001-01-31 仕様操作装置

Country Status (2)

Country Link
US (1) US7464365B2 (ja)
JP (1) JP3895934B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255869B2 (en) * 2008-06-30 2012-08-28 Rockwell Automation Technologies, Inc. Industry template customization and transclusion for use in industrial automation and information solutions
US8677310B2 (en) * 2008-06-30 2014-03-18 Rockwell Automation Technologies, Inc. Industry template abstracting and creation for use in industrial automation and information solutions
US8499305B2 (en) * 2010-10-15 2013-07-30 Via Technologies, Inc. Systems and methods for performing multi-program general purpose shader kickoff

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800521A (en) * 1982-09-21 1989-01-24 Xerox Corporation Task control manager
JP2837815B2 (ja) * 1994-02-03 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション 対話型ルール・ベース・コンピュータ・システム
DE19515020A1 (de) * 1994-07-01 1996-01-04 Hewlett Packard Co Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren
US5758032A (en) * 1995-04-13 1998-05-26 Sterling Software, Inc. Method and system for automated transformation of declarative language process specification
GB2317245A (en) * 1996-09-12 1998-03-18 Sharp Kk Re-timing compiler integrated circuit design
JPH10124325A (ja) * 1996-10-25 1998-05-15 Toshiba Corp 変数の最適配置方法、変数の最適配置装置及び変数の最適配置プログラムを格納したコンピュータ読み取り可能な記録媒体
US6152612A (en) * 1997-06-09 2000-11-28 Synopsys, Inc. System and method for system level and circuit level modeling and design simulation using C++
US6266764B1 (en) * 1998-03-17 2001-07-24 Matsushita Electric Industrial Co., Ltd. Program controller for switching between first program and second program
US6490545B1 (en) * 2000-03-06 2002-12-03 Sony Corporation Method and apparatus for adaptive co-verification of software and hardware designs
US6651163B1 (en) * 2000-03-08 2003-11-18 Advanced Micro Devices, Inc. Exception handling with reduced overhead in a multithreaded multiprocessing system
US6980941B2 (en) * 2001-01-31 2005-12-27 Kabushiki Kaisha Toshiba Method and computer program product for realizing a system specification which is described in a system description language
US7051317B2 (en) * 2001-06-29 2006-05-23 National Instruments Corporation System and method for specifying a computer-implemented process using different programming methodologies
US8719819B2 (en) * 2005-06-30 2014-05-06 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers

Also Published As

Publication number Publication date
US7464365B2 (en) 2008-12-09
JP2002229784A (ja) 2002-08-16
US20040015826A1 (en) 2004-01-22

Similar Documents

Publication Publication Date Title
US10713608B2 (en) Systems and methods for a real-time workflow platform
KR100916745B1 (ko) 컴퓨터 시스템, 컴퓨터 실행 방법, 기록 매체
CN101777004B (zh) 面向服务环境中基于模板实现bpel子流程复用的方法及系统
US10748103B2 (en) System and method for transforming a component business model
JP2007179165A (ja) Uml設計モデルから、確率的な性能評価モデルを導出するコンピュータ・プログラムおよび確率的な性能評価モデルを導出する方法
JP2010503934A (ja) モジュラ有限状態トランスデューサの変換
Syriani et al. Modeling a model transformation language
JP2002334194A (ja) ワークフロー管理システムにおいて選択的コマンド制御を提供する方法、システム、プログラム
JP3895934B2 (ja) 仕様操作装置
CN103377076A (zh) 一种运行时调整任务执行计划的方法和系统
Kramer et al. Extending the Palladio component model using profiles and stereotypes
Archibald et al. Probabilistic BDI agents: actions, plans, and intentions
US8464280B2 (en) Execution context control
Lugato et al. Validation and automatic test generation on UML models: the AGATHA approach
André A unified formalism for monoprocessor schedulability analysis under uncertainty
US10545729B2 (en) Computer program interface
US7086037B2 (en) Method and computer program product for localizing an interruption structure included in a hierarchical structure of a specification
KR101085114B1 (ko) 피엘씨 소프트웨어 개발환경 제공 시스템
Pereira et al. Development of self-diagnosis tests system using a DSL for creating new test suites for integration in a cyber-physical system
Gawron et al. Semi-automated synthesis of control system software through graph search
JPH0896018A (ja) Cadツール管理方法および回路の自動設計システム
JP3889633B2 (ja) 仕様交換装置及び仕様交換プログラム
JP3901530B2 (ja) ソフトウェア・ハードウェア言語モデル変換装置及びプログラム
Yoong et al. Formal Model for IEC 61499 Function Blocks
Mirtalebi et al. Requirements Model

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061215

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121222

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121222

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131222

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees