JPH0313779B2 - - Google Patents
Info
- Publication number
- JPH0313779B2 JPH0313779B2 JP59271938A JP27193884A JPH0313779B2 JP H0313779 B2 JPH0313779 B2 JP H0313779B2 JP 59271938 A JP59271938 A JP 59271938A JP 27193884 A JP27193884 A JP 27193884A JP H0313779 B2 JPH0313779 B2 JP H0313779B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- transition
- protocol
- stable
- transitions
- 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 - Lifetime
Links
- 230000007704 transition Effects 0.000 claims description 159
- 238000000034 method Methods 0.000 claims description 149
- 230000008569 process Effects 0.000 claims description 129
- 238000012795 verification Methods 0.000 claims description 16
- 238000002620 method output Methods 0.000 claims 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 52
- 230000005540 biological transmission Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 33
- 238000011161 development Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、通信プロトコルの仕様を入力し、そ
れに含まれる内部矛盾を仕様誤りとして検出する
とともに仕様誤りを訂正するためのデータを出力
するプロトコルの論理検証方式に関する。
れに含まれる内部矛盾を仕様誤りとして検出する
とともに仕様誤りを訂正するためのデータを出力
するプロトコルの論理検証方式に関する。
(従来の技術)
プロトコルとは、交換機、端末等の複数の各種
通信装置あるいは装置内の複数の論理モジユール
間の通信規約をいう。近年の情報通信システムの
高度化・多様化に伴いプロトコル仕様は大規模
化・複雑化してきた。又、大規模ソフトウエアの
生産にあたつて、プログラムをいくつかのモジユ
ールに分割して作成し、これを組合せて全体とし
て所期の動作を達成するよう構成することが多
い。この場合、モジユール間のプロトコルに論理
的矛盾が無いように設計する必要がある。このよ
うに、いくつかの装置、あるいはプロセスが各々
連絡をとり合つて動作し全体として所定の目的を
達成するようなシステムの設計がますます重要と
なつている。
通信装置あるいは装置内の複数の論理モジユール
間の通信規約をいう。近年の情報通信システムの
高度化・多様化に伴いプロトコル仕様は大規模
化・複雑化してきた。又、大規模ソフトウエアの
生産にあたつて、プログラムをいくつかのモジユ
ールに分割して作成し、これを組合せて全体とし
て所期の動作を達成するよう構成することが多
い。この場合、モジユール間のプロトコルに論理
的矛盾が無いように設計する必要がある。このよ
うに、いくつかの装置、あるいはプロセスが各々
連絡をとり合つて動作し全体として所定の目的を
達成するようなシステムの設計がますます重要と
なつている。
このようなシステムの設計法を確立するために
は、プロトコル仕様の要求仕様を明確に記述し、
かつ論理的矛盾がないことを事前に検証できるこ
とが必要である。プロトコル仕様への非形式的要
求を分析して形式的に要求仕様を記述することに
より、曖味性を削除できるので、プロトコル仕様
を明確化するとともに自動的検証が可能となる。
プロトコル仕様段階でエラーを発見できれば、ソ
フトウエアの開発保守段階から仕様設計段階への
フイードバツクをなくすことができるので、ソフ
トウエアの生産性を向上させることができる。
は、プロトコル仕様の要求仕様を明確に記述し、
かつ論理的矛盾がないことを事前に検証できるこ
とが必要である。プロトコル仕様への非形式的要
求を分析して形式的に要求仕様を記述することに
より、曖味性を削除できるので、プロトコル仕様
を明確化するとともに自動的検証が可能となる。
プロトコル仕様段階でエラーを発見できれば、ソ
フトウエアの開発保守段階から仕様設計段階への
フイードバツクをなくすことができるので、ソフ
トウエアの生産性を向上させることができる。
従来、一般的に複数のプロセスをもつプロトコ
ルに対し、システム状態を各プロセスの状態とプ
ロセス間の各チヤネルの状態で定義し、初期状態
から到達可能なシステム状態を全て列挙するこ
と、あるいは、検証項目を検出するために必要な
部分集合を列挙する方式が数多く報告されてい
る。例えば、シー・エツチ・ウエスト(C.H.
West):「通信プロトコル検証のための一般的技
術(General technique for communications
protocol validation)」アイビーエム(IBM)ジ
エー・レス(J.Res),デベル(Devel),1978年
7月) これに対し、前述のシステム状態を列挙する方
法と異なり、各プロセスの状態でメツセージが送
信・受信可能であるための条件に従い、各プロセ
スの状態遷移を木状に展開する方式が最近報告さ
れた。(例えば、デ.ブランド(D.Brand)とピ
ー,ザフイロプロ(P.Zafiropulo):「有限状態機
械の通信(On communicating finite−state−
machine)」アイビーエム(IBM)レス(Res).
レツプ(Rep).RZ1053,1981年) 本願は後者のプロセス単位で検証する方式に係
るので、この従来技術を第1図,第2図を用いて
説明する。第1図は、検証しようとするプロトコ
ルの一例であつて、プロセス1,2および3から
なる通信システムのプロトコル仕様を図示したも
のである。ここで、通信システムとは、例えば、
プロセス1および3が端末装置、プロセス3が交
換機であるシステムであつてもよいし、また、プ
ロセス1,2,3がともにCPU内にあつてもよ
い。すなわち、他の機能と信号の送受信(送信ま
たは受信だけであつてもよい)を行う処理単位を
プロセスと呼ぶ、互いに信号の授受を行う複数の
プロセスを総称して通信システムと呼ぶ。第1図
はプロセス数3の場合のプロトコルの一例であ
る。
ルに対し、システム状態を各プロセスの状態とプ
ロセス間の各チヤネルの状態で定義し、初期状態
から到達可能なシステム状態を全て列挙するこ
と、あるいは、検証項目を検出するために必要な
部分集合を列挙する方式が数多く報告されてい
る。例えば、シー・エツチ・ウエスト(C.H.
West):「通信プロトコル検証のための一般的技
術(General technique for communications
protocol validation)」アイビーエム(IBM)ジ
エー・レス(J.Res),デベル(Devel),1978年
7月) これに対し、前述のシステム状態を列挙する方
法と異なり、各プロセスの状態でメツセージが送
信・受信可能であるための条件に従い、各プロセ
スの状態遷移を木状に展開する方式が最近報告さ
れた。(例えば、デ.ブランド(D.Brand)とピ
ー,ザフイロプロ(P.Zafiropulo):「有限状態機
械の通信(On communicating finite−state−
machine)」アイビーエム(IBM)レス(Res).
レツプ(Rep).RZ1053,1981年) 本願は後者のプロセス単位で検証する方式に係
るので、この従来技術を第1図,第2図を用いて
説明する。第1図は、検証しようとするプロトコ
ルの一例であつて、プロセス1,2および3から
なる通信システムのプロトコル仕様を図示したも
のである。ここで、通信システムとは、例えば、
プロセス1および3が端末装置、プロセス3が交
換機であるシステムであつてもよいし、また、プ
ロセス1,2,3がともにCPU内にあつてもよ
い。すなわち、他の機能と信号の送受信(送信ま
たは受信だけであつてもよい)を行う処理単位を
プロセスと呼ぶ、互いに信号の授受を行う複数の
プロセスを総称して通信システムと呼ぶ。第1図
はプロセス数3の場合のプロトコルの一例であ
る。
第1図において、丸印はプロセスの状態、矢印
は状態遷移、矢印上のラベル−x及び+xはそれ
ぞれ信号xの送信及び受信を表す。各プロセスの
初期状態は1とする。従つて、プロセス1は1を
初期状態として、プロセス2に対し信号1を送信
すれば状態2に遷移し、プロセス3から信号3を
受信すれば状態3に遷移する等、動作しているこ
とがわかる。このように、各プロセスの動作は比
較的容易に理解できるが、プロセス1,2,3の
相互間に論理矛盾があるか否かを判定することは
容易でない。
は状態遷移、矢印上のラベル−x及び+xはそれ
ぞれ信号xの送信及び受信を表す。各プロセスの
初期状態は1とする。従つて、プロセス1は1を
初期状態として、プロセス2に対し信号1を送信
すれば状態2に遷移し、プロセス3から信号3を
受信すれば状態3に遷移する等、動作しているこ
とがわかる。このように、各プロセスの動作は比
較的容易に理解できるが、プロセス1,2,3の
相互間に論理矛盾があるか否かを判定することは
容易でない。
前述したプロトコル検証の従来技術とは、一つ
の信号の送信及び受信による実行可能な状態遷移
を初期状態から実行することにより各プロセスの
状態遷移を木状に展開し、その過過程で論理矛
盾、すなわち仕様誤りを検出していた。第1図の
プロトコル例に、この従来技術を適用した結果を
第2図に示す。この第2図は各プロセスの状態遷
移を展開したものであるので状態遷移展開図と呼
ぶ。また、システム状態はプロセスの状態にその
状態に到達するために必ず到着しているはずの他
のプロセスの状態を付けることで把握している。
このプロセス対応の状態対を各状態のL値とよ
ぶ。
の信号の送信及び受信による実行可能な状態遷移
を初期状態から実行することにより各プロセスの
状態遷移を木状に展開し、その過過程で論理矛
盾、すなわち仕様誤りを検出していた。第1図の
プロトコル例に、この従来技術を適用した結果を
第2図に示す。この第2図は各プロセスの状態遷
移を展開したものであるので状態遷移展開図と呼
ぶ。また、システム状態はプロセスの状態にその
状態に到達するために必ず到着しているはずの他
のプロセスの状態を付けることで把握している。
このプロセス対応の状態対を各状態のL値とよ
ぶ。
以降、第1図のプロトコル例に対する状態遷移
展開図の描き方及び各状態のL値の計算法を説明
する。先ず、各プロセスの初期状態は1であるの
で、各プロセスに対しを描き、1のL値をそれ
ぞれ(1,1,1)と初期設定する。例えば、プ
ロセス1の状態1のL値(1,1,1)におい
て、第1要素はプロセス1は自身のプロセスの状
態が1であることを示し、第2,3要素はプロセ
ス1はプロセス2,3の状態がそれぞれ1,1で
あることを知つていることを示している。この時
点で実行可能な送信遷移はプロセス1の−1,プ
ロセス2の−3である。プロセス1の送信遷移−
1の実行に対し、ラベル−1のついた矢印とを
描く。−1の送信によりプロセス1はプロセス2,
3状態の変化を知らないのでプロセス1の状態2
のL値を(2,1,1)とする。第1要素2はプ
ロセス1自身の状態が2であることを示してい
る。プロセス1の送信遷移−1に対応してプロセ
ス2の受信遷移+1を実行する。この実行に対
し、ラベル+1のついた矢印とを描く。+1の
受信によりプロセス2はプロセス1の状態が2で
あることを知ることができる。しかし、3の状態
の変化を知らないので、プロセス2の状態2のL
値を(2,2,1)とする。第2要素2はプロセ
ス2自身の状態が2であることを示している。
展開図の描き方及び各状態のL値の計算法を説明
する。先ず、各プロセスの初期状態は1であるの
で、各プロセスに対しを描き、1のL値をそれ
ぞれ(1,1,1)と初期設定する。例えば、プ
ロセス1の状態1のL値(1,1,1)におい
て、第1要素はプロセス1は自身のプロセスの状
態が1であることを示し、第2,3要素はプロセ
ス1はプロセス2,3の状態がそれぞれ1,1で
あることを知つていることを示している。この時
点で実行可能な送信遷移はプロセス1の−1,プ
ロセス2の−3である。プロセス1の送信遷移−
1の実行に対し、ラベル−1のついた矢印とを
描く。−1の送信によりプロセス1はプロセス2,
3状態の変化を知らないのでプロセス1の状態2
のL値を(2,1,1)とする。第1要素2はプ
ロセス1自身の状態が2であることを示してい
る。プロセス1の送信遷移−1に対応してプロセ
ス2の受信遷移+1を実行する。この実行に対
し、ラベル+1のついた矢印とを描く。+1の
受信によりプロセス2はプロセス1の状態が2で
あることを知ることができる。しかし、3の状態
の変化を知らないので、プロセス2の状態2のL
値を(2,2,1)とする。第2要素2はプロセ
ス2自身の状態が2であることを示している。
プロセス2の送信遷移−3の実行に対し、ラベ
ル−3のついた矢印とを描く。−3の送信によ
りプロセス2はプロセス1,3の状態の変化を知
らないのでプロセス2の状態3のL値(1,3,
1)とする。又、この送信−3の実行により、プ
ロセス2の状態3でプロセス1の状態を1と認識
しているので、プロセス1の送信遷移−1の実行
が可能であり、プロセス2には信号1の受信遷移
+1があるべきと判定できる。このため、ラベル
+1にの矢印を描こうとする。しかし、第1図の
プロトコル例ではプロセス2の状態3で受信遷移
+1が定義されていないため、未定義実行可能遷
移と判定する。これを表現するために、便宜上、
ラベル+1の点線矢印を描く。プロセス2の送信
遷移−3に対応してプロセス1の受信遷移+3を
実行する。この実行に対し、ラベル+3のついた
矢印とを描く。+3の受信によりプロセス1は
プロセス2の状態が3であることを知ることがで
きる。しかし、プロセス3の状態の変化を知らな
いので、プロセス1の状態3のL値を(3,3,
1)とする。第1要素3はプロセス1自身の状態
が1であることを示している。又、このときプロ
セス1の状態1から2への送信遷移が既に存在す
るので、プロセス1の状態2で信号3の受信が可
能であることがわかる。このため、ラベル+3の
矢印を描こうとする。しかし、第1図のプロトコ
ル例ではプロセス1の状態2で受信遷移+3が定
義されていないため、上述と同様未定義実行可能
遷移と判定し、便宜上、ラベル+3の点線矢印を
描く。この時点で、実行可能な送信遷移はプロセ
ス1の−2,−5及びプロセス2の−4である。
プロセス1の送信遷移−5の実行に対しラベル−
5のついた矢印とを描く。この状態4のL値を
(4,1,1)とする。プロセス1の送信遷移−
5に対応してプロセス3の受信遷移+5を実行す
る。この実行に対し、ラベル+5のついた矢印と
を描く。この状態2のL値を(4,1,2)と
する。ここで、プロセス3の−6が実行可能とな
る。この実行に対し、ラベル−6のついた矢印と
を描く。この状態1のL値を(4,1,1)と
する。プロセス3の送信遷移−6に対応してプロ
セス1の受信遷移+6を実行する。この実行に対
し、ラベル+6のついた矢印とを描く。この状
態4のL値を(4,1,1)とする。このとき、
プロセス1,2,3のそれぞれの状態4,2,1
ではチヤネル上に信号が残つていず、実行可能な
送信遷移及び受信遷移が存在しない。この状態を
デツドロツクと判定する。送信遷移−6を実行し
なければ受信遷移+6は実行できない。以上の説
明のような状態遷移の展開を行うと、プロセス1
の状態1からの送信遷移+6が実行可能でない
(実行されることがない)ことがわかる。これを
実行不能状態遷移と判定する。なお、説明の便宜
上、展開されたときの状態名、信号名はプロトコ
ル例のそれと同じものを使つているが、2度以上
現れる状態名、信号名を区別するため、“.”以下
に、最初に現れたとき0、2度目に現れたとき
1,…とつける。以上の規則に従つて、第1図の
プロトコル例を展開したものを第2図に示してい
る。
ル−3のついた矢印とを描く。−3の送信によ
りプロセス2はプロセス1,3の状態の変化を知
らないのでプロセス2の状態3のL値(1,3,
1)とする。又、この送信−3の実行により、プ
ロセス2の状態3でプロセス1の状態を1と認識
しているので、プロセス1の送信遷移−1の実行
が可能であり、プロセス2には信号1の受信遷移
+1があるべきと判定できる。このため、ラベル
+1にの矢印を描こうとする。しかし、第1図の
プロトコル例ではプロセス2の状態3で受信遷移
+1が定義されていないため、未定義実行可能遷
移と判定する。これを表現するために、便宜上、
ラベル+1の点線矢印を描く。プロセス2の送信
遷移−3に対応してプロセス1の受信遷移+3を
実行する。この実行に対し、ラベル+3のついた
矢印とを描く。+3の受信によりプロセス1は
プロセス2の状態が3であることを知ることがで
きる。しかし、プロセス3の状態の変化を知らな
いので、プロセス1の状態3のL値を(3,3,
1)とする。第1要素3はプロセス1自身の状態
が1であることを示している。又、このときプロ
セス1の状態1から2への送信遷移が既に存在す
るので、プロセス1の状態2で信号3の受信が可
能であることがわかる。このため、ラベル+3の
矢印を描こうとする。しかし、第1図のプロトコ
ル例ではプロセス1の状態2で受信遷移+3が定
義されていないため、上述と同様未定義実行可能
遷移と判定し、便宜上、ラベル+3の点線矢印を
描く。この時点で、実行可能な送信遷移はプロセ
ス1の−2,−5及びプロセス2の−4である。
プロセス1の送信遷移−5の実行に対しラベル−
5のついた矢印とを描く。この状態4のL値を
(4,1,1)とする。プロセス1の送信遷移−
5に対応してプロセス3の受信遷移+5を実行す
る。この実行に対し、ラベル+5のついた矢印と
を描く。この状態2のL値を(4,1,2)と
する。ここで、プロセス3の−6が実行可能とな
る。この実行に対し、ラベル−6のついた矢印と
を描く。この状態1のL値を(4,1,1)と
する。プロセス3の送信遷移−6に対応してプロ
セス1の受信遷移+6を実行する。この実行に対
し、ラベル+6のついた矢印とを描く。この状
態4のL値を(4,1,1)とする。このとき、
プロセス1,2,3のそれぞれの状態4,2,1
ではチヤネル上に信号が残つていず、実行可能な
送信遷移及び受信遷移が存在しない。この状態を
デツドロツクと判定する。送信遷移−6を実行し
なければ受信遷移+6は実行できない。以上の説
明のような状態遷移の展開を行うと、プロセス1
の状態1からの送信遷移+6が実行可能でない
(実行されることがない)ことがわかる。これを
実行不能状態遷移と判定する。なお、説明の便宜
上、展開されたときの状態名、信号名はプロトコ
ル例のそれと同じものを使つているが、2度以上
現れる状態名、信号名を区別するため、“.”以下
に、最初に現れたとき0、2度目に現れたとき
1,…とつける。以上の規則に従つて、第1図の
プロトコル例を展開したものを第2図に示してい
る。
次に、展開の停止法を上の例を用いて説明す
る。プロセス1の2.1で表されている状態2のL
値は(2,2,1)であり、2.4で表される状態
2のL値は(2,2,1)であるため、2.1と2.4
の間の−2.1及び+4.2で表された状態遷移−2,
+4が2.4以降反復される。従つて、2.4で停止さ
れる。同様の理由で、プロセス1の2.6,4.1,
4.3,4.5,4.7,4.8プロセス2の3.4及び3.6で停止
される。プロセス1の3.4はプロセス2の3.4から
送信された信号4のみ受信可能だが、プロセス2
の3.4は既に停止されているので、プロセス1の
3.4は停止される。同様の理由で、プロセス2の
2.4は停止される。プロセス3の1.1は、プロセス
1の4.1、プロセス2の2.0、プロセス3の1.1でデ
ツドロツクとなるため停止される。同様の理由
で、プロセス3の1.2,1.3,1.4,1.5は停止され
る。
る。プロセス1の2.1で表されている状態2のL
値は(2,2,1)であり、2.4で表される状態
2のL値は(2,2,1)であるため、2.1と2.4
の間の−2.1及び+4.2で表された状態遷移−2,
+4が2.4以降反復される。従つて、2.4で停止さ
れる。同様の理由で、プロセス1の2.6,4.1,
4.3,4.5,4.7,4.8プロセス2の3.4及び3.6で停止
される。プロセス1の3.4はプロセス2の3.4から
送信された信号4のみ受信可能だが、プロセス2
の3.4は既に停止されているので、プロセス1の
3.4は停止される。同様の理由で、プロセス2の
2.4は停止される。プロセス3の1.1は、プロセス
1の4.1、プロセス2の2.0、プロセス3の1.1でデ
ツドロツクとなるため停止される。同様の理由
で、プロセス3の1.2,1.3,1.4,1.5は停止され
る。
(発明が解決しようとする問題点)
上述した従来の技術によつては、プロセス対応
の状態遷移系列を全て列挙していること及び展開
を停止する条件がゆるいことの2つの理由のた
め、プロトコルが大規模化、複雑化した場合、展
開された状態数や状態遷移数が膨大となり処理量
すなわち処理時間の増大となり実質的に検証が困
難となつていた。また、ハードウエア化の点から
展開図を記録するための膨大なメモリが必要とな
り、今だハードウエアの実現をみていない。又、
従来技術では未定義実行可能遷移、定義済実行不
能遷移、デツドロツクの3項のみを検証項目とし
ていたが、物理的にチヤネル容量、バツフア容量
が制限されているのでオーバフローを新たな検証
項目として追加している。
の状態遷移系列を全て列挙していること及び展開
を停止する条件がゆるいことの2つの理由のた
め、プロトコルが大規模化、複雑化した場合、展
開された状態数や状態遷移数が膨大となり処理量
すなわち処理時間の増大となり実質的に検証が困
難となつていた。また、ハードウエア化の点から
展開図を記録するための膨大なメモリが必要とな
り、今だハードウエアの実現をみていない。又、
従来技術では未定義実行可能遷移、定義済実行不
能遷移、デツドロツクの3項のみを検証項目とし
ていたが、物理的にチヤネル容量、バツフア容量
が制限されているのでオーバフローを新たな検証
項目として追加している。
(問題点を解決するための手段)
本発明は、上述した従来技術の欠点に鑑みなさ
れたもので、処理量の少ないプロトコル検証方式
を提供することを目的とし、その特徴は、オーバ
フローを含めた仕様誤りを検出するのに支障ない
範囲で展開すべき状態数及び状態遷移数を削減
し、必要最小限の展開で検査することにある。
れたもので、処理量の少ないプロトコル検証方式
を提供することを目的とし、その特徴は、オーバ
フローを含めた仕様誤りを検出するのに支障ない
範囲で展開すべき状態数及び状態遷移数を削減
し、必要最小限の展開で検査することにある。
(作用)
本発明によつては、プロセス単位で状態の遷移
を行いながら、到達した遷移状態が以前に出現し
た遷移状態と同じであるときは、その以降の状態
遷移の展開は、以前に出現した遷移状態以降の状
態遷移の展開と同一とみなして、展開動作を停止
することにより、展開されるべき状態数及び状態
遷移数を削減しつつ、この展開過程で未定義実行
可能遷移、定義済実行不能遷移、デツドロツクお
よびオーバフローを検出する。
を行いながら、到達した遷移状態が以前に出現し
た遷移状態と同じであるときは、その以降の状態
遷移の展開は、以前に出現した遷移状態以降の状
態遷移の展開と同一とみなして、展開動作を停止
することにより、展開されるべき状態数及び状態
遷移数を削減しつつ、この展開過程で未定義実行
可能遷移、定義済実行不能遷移、デツドロツクお
よびオーバフローを検出する。
(実施例)
本実施例が検証の対象とするプロトコルは、従
来技術と同様第1図に示したプロトコルの例とす
る。
来技術と同様第1図に示したプロトコルの例とす
る。
ここで、プロトコル仕様と仮定および説明のた
めの用語について整理しておく。本実施例では検
証対象とするプロトコルの仕様は、以下に示す4
項組P=(Q,o1,M,succ)で表される。但し、
Q=(Q1,…QN),o=(o1,…,oN),M=11,
…,MNN),succはQiX(MijUMji)→Qiの関数で
ある。ここで、Nはプロセス数、Qiはプロセスi
の状態集合、oiはプロセスiの初期状態、Mijは
プロセスiからjにチヤネル(i,j)を通して
送信する信号の集合、succ(si,x)=tiはxが送
信信号であれば、状態siでxを送信すると状態ti
になることを表す。又、xが受信信号であれば、
状態Siでxを受信すると状態tiになることを表
す。すなわち、succは状態遷移である。検証対象
とするプロトコルに対し、以下の仮定を設ける。
めの用語について整理しておく。本実施例では検
証対象とするプロトコルの仕様は、以下に示す4
項組P=(Q,o1,M,succ)で表される。但し、
Q=(Q1,…QN),o=(o1,…,oN),M=11,
…,MNN),succはQiX(MijUMji)→Qiの関数で
ある。ここで、Nはプロセス数、Qiはプロセスi
の状態集合、oiはプロセスiの初期状態、Mijは
プロセスiからjにチヤネル(i,j)を通して
送信する信号の集合、succ(si,x)=tiはxが送
信信号であれば、状態siでxを送信すると状態ti
になることを表す。又、xが受信信号であれば、
状態Siでxを受信すると状態tiになることを表
す。すなわち、succは状態遷移である。検証対象
とするプロトコルに対し、以下の仮定を設ける。
プロセス間のメツセージ伝送に要する時間は
有限な非負数値とする。
有限な非負数値とする。
プロセス内の状態遷移は決定的であり、それ
に要する時間は零とする。
に要する時間は零とする。
プロセス相互間で送受されるメツセージの受
信順序は送信順序と同じである。
信順序は送信順序と同じである。
プロトコルPのグローバル状態(上述したシス
テム状態と同意義でありGで表す)は、次に示す
2項組G=(S,C)とする。但し、S=(s1,…
sN),C=(c11,…cNN)である。siはプロセスi
の状態、cijはプロセスiからjへのチヤネル上の
信号系列を表す。従つて、前述の各プロセスsiの
L値(s1,…,sN)はSに対応し、各初期状態oj
からsiまでの状態遷移系列はCに対応する。つま
り、各プロセスが独立にグローバル状態を把握し
ている。
テム状態と同意義でありGで表す)は、次に示す
2項組G=(S,C)とする。但し、S=(s1,…
sN),C=(c11,…cNN)である。siはプロセスi
の状態、cijはプロセスiからjへのチヤネル上の
信号系列を表す。従つて、前述の各プロセスsiの
L値(s1,…,sN)はSに対応し、各初期状態oj
からsiまでの状態遷移系列はCに対応する。つま
り、各プロセスが独立にグローバル状態を把握し
ている。
G|―G′は信号1つの送信あるいは受信による
グローバル状態の変化を表す。Gp|* ― Gは初期グ
ローバル状態Gpから幾つかの状態遷移の実行に
よりグローバル状態Gに到達可能であることを表
す。G=(S,C)が到達可能であり、S上の状
態に送信遷移xが定義されていればxは実行可能
という。G=(S,C)が到達可能であり、S上
の状態に受信遷移xが定義されていて、更に、そ
の状態を含むプロセスへのC上のチヤネルの先頭
に信号xがあれば、xは実行可能という。G=
(S,C)が到達可能であり、C上に信号が初期
状態または以前の遷移によつて信号が処理された
ために、全くなければ、Gは安定グローバル状態
であるという。
グローバル状態の変化を表す。Gp|* ― Gは初期グ
ローバル状態Gpから幾つかの状態遷移の実行に
よりグローバル状態Gに到達可能であることを表
す。G=(S,C)が到達可能であり、S上の状
態に送信遷移xが定義されていればxは実行可能
という。G=(S,C)が到達可能であり、S上
の状態に受信遷移xが定義されていて、更に、そ
の状態を含むプロセスへのC上のチヤネルの先頭
に信号xがあれば、xは実行可能という。G=
(S,C)が到達可能であり、C上に信号が初期
状態または以前の遷移によつて信号が処理された
ために、全くなければ、Gは安定グローバル状態
であるという。
以上の準備に基づいて本発明が検出するプロト
コル仕様の誤りは以下の通りである。
コル仕様の誤りは以下の通りである。
未定義実行の可能遷移:プロトコル仕様で定
義されていないが、実行可能な状態遷移。
義されていないが、実行可能な状態遷移。
定義済実行不能遷移:プロトコル仕様で定義
されているにもかかわらず実行可能でない状
態・遷移。
されているにもかかわらず実行可能でない状
態・遷移。
デツドロツク:全てのプロセスの状態遷移が
実行可能でなく、チヤネル上に全く信号のない
安定グローバル状態。
実行可能でなく、チヤネル上に全く信号のない
安定グローバル状態。
オーバフロー:個々のチヤネルに残つている
信号の総数が所定のチヤネル容量および受信バ
ツフア容量を越える状態。
信号の総数が所定のチヤネル容量および受信バ
ツフア容量を越える状態。
第3図は、本発明の一実施例を示すブロツク図
である。第3図で、1は外部から与えられるプロ
トコル仕様を蓄積するメモリ、2は検証処理に使
用する各種の変数の初期値を設定する初期設定ブ
ロツク、3は展開された状態において実行可能な
送信遷移を抽出するブロツク、4は送信遷移の実
行により新たに状態及び送信遷移を展開図に追加
し、その状態のL値を計算するとともにこの状態
で展開が停止できるか否かを判定するブロツク、
5は4の送信遷移に対応する受信遷移の実行によ
り新たに状態及び受信遷移を展開図に追加し、そ
の状態のL値を計算するとともにこの状態で展開
が停止できるか否かを判定するブロツク、6は送
信遷移の遷移元の状態で実行可能な受信遷移系列
を遷移先の状態に移し、新たな状態及び受信遷移
を展開図に追加し、それらの状態のL値を計算す
るとともにこの状態で展開が停止できるか否かを
判定するブロツク、7は5,6の処理中に未定義
実行可能遷移を検出するブロツク、8は安定グロ
ーバル状態で実行可能な送信遷移がないものを検
出するブロツク、9は展開完了後、プロトコル仕
様に定義されているのに展開図には1度もでてこ
ない状態遷移を検出するブロツク、11はオーバ
フローを検出するブロツクである。10は検証結
果である展開図等及び各種の変数を蓄積するメモ
リである。
である。第3図で、1は外部から与えられるプロ
トコル仕様を蓄積するメモリ、2は検証処理に使
用する各種の変数の初期値を設定する初期設定ブ
ロツク、3は展開された状態において実行可能な
送信遷移を抽出するブロツク、4は送信遷移の実
行により新たに状態及び送信遷移を展開図に追加
し、その状態のL値を計算するとともにこの状態
で展開が停止できるか否かを判定するブロツク、
5は4の送信遷移に対応する受信遷移の実行によ
り新たに状態及び受信遷移を展開図に追加し、そ
の状態のL値を計算するとともにこの状態で展開
が停止できるか否かを判定するブロツク、6は送
信遷移の遷移元の状態で実行可能な受信遷移系列
を遷移先の状態に移し、新たな状態及び受信遷移
を展開図に追加し、それらの状態のL値を計算す
るとともにこの状態で展開が停止できるか否かを
判定するブロツク、7は5,6の処理中に未定義
実行可能遷移を検出するブロツク、8は安定グロ
ーバル状態で実行可能な送信遷移がないものを検
出するブロツク、9は展開完了後、プロトコル仕
様に定義されているのに展開図には1度もでてこ
ない状態遷移を検出するブロツク、11はオーバ
フローを検出するブロツクである。10は検証結
果である展開図等及び各種の変数を蓄積するメモ
リである。
第4図はプロトコル仕様をメモリ1に蓄積する
場合の一蓄積形式を示す。また、第5図は展開図
および仕様誤りを表形式でメモリ10に蓄積する
場合の一蓄積形式を示す。
場合の一蓄積形式を示す。また、第5図は展開図
および仕様誤りを表形式でメモリ10に蓄積する
場合の一蓄積形式を示す。
第6図は第1図のプロトコル例を第3図の実施
例に適用した結果得られた展開図を示す。以下、
第1〜6図の例を用いて、第3図の実施例の動作
を説明するがプロトコル仕様は第4図の形式で既
にメモリ1に蓄えられているものとする。第3図
のブロツク図では、最切に初期設定ブロツク2が
動作する。初期設定ブロツク2はメモリ1にアク
セスし、プロトコル仕様に含まれる各プロセスの
初期状態を入力して初期状態及びそれらのL値に
よる展開図を作る。第6図では各プロセスごとに
状態1.0とL値(1.0 1.0 1.0)を設定する。又、
初期状態からなる安定グローバル状態を安定グロ
ーバル状態集合Vに入れる。第6図ではV=
{(1.0 1.0 1.0)}となる。以降、ブロツク3,4,
5を反復し処理を行なう。ブロツク4,5におい
て、ブロツク6をよぶ。ブロツク3,4,5,6
の状態遷移の展開中に未定義実行可能遷移及びデ
ツドロツクを検出する。ブロツク7はブロツク
5,6からよばれ、ブロツク8はブロツク3から
よばれる。展開が完了したのちブロツク9に制御
が移り定義済不能遷移を検出する。
例に適用した結果得られた展開図を示す。以下、
第1〜6図の例を用いて、第3図の実施例の動作
を説明するがプロトコル仕様は第4図の形式で既
にメモリ1に蓄えられているものとする。第3図
のブロツク図では、最切に初期設定ブロツク2が
動作する。初期設定ブロツク2はメモリ1にアク
セスし、プロトコル仕様に含まれる各プロセスの
初期状態を入力して初期状態及びそれらのL値に
よる展開図を作る。第6図では各プロセスごとに
状態1.0とL値(1.0 1.0 1.0)を設定する。又、
初期状態からなる安定グローバル状態を安定グロ
ーバル状態集合Vに入れる。第6図ではV=
{(1.0 1.0 1.0)}となる。以降、ブロツク3,4,
5を反復し処理を行なう。ブロツク4,5におい
て、ブロツク6をよぶ。ブロツク3,4,5,6
の状態遷移の展開中に未定義実行可能遷移及びデ
ツドロツクを検出する。ブロツク7はブロツク
5,6からよばれ、ブロツク8はブロツク3から
よばれる。展開が完了したのちブロツク9に制御
が移り定義済不能遷移を検出する。
先ず、各プロセスの初期状態で実行可能な送信
遷移をブロツク1にアクセスして抽出する。第1
図のプロトコル例では、プロセス1の送信遷移−
1とプロセス2の送信遷移−3が抽出される。そ
のうち、−1が選択されたとする。次にブロツク
4に移行する。ここでは、プロセス1の状態2.0
と送信遷移−1が展開される。又、2.0のL値を
(2.0 1.0 1.0)と計算する。
遷移をブロツク1にアクセスして抽出する。第1
図のプロトコル例では、プロセス1の送信遷移−
1とプロセス2の送信遷移−3が抽出される。そ
のうち、−1が選択されたとする。次にブロツク
4に移行する。ここでは、プロセス1の状態2.0
と送信遷移−1が展開される。又、2.0のL値を
(2.0 1.0 1.0)と計算する。
プロセスiの送信遷移による展開で新たに加わ
つた状態のL値の計算法は次の通りである。送信
遷移元の状態をsi,送信遷移先の状態をtiとする。
sのL値を(so,…si,…sN)とする。すると、
tiのL値は(so,…ti,…sN)と計算される。プ
ロセスiがtiに到達した時点では他のプロセスの
必ず到達しておかなくてはならない状態はかわら
ないからである。
つた状態のL値の計算法は次の通りである。送信
遷移元の状態をsi,送信遷移先の状態をtiとする。
sのL値を(so,…si,…sN)とする。すると、
tiのL値は(so,…ti,…sN)と計算される。プ
ロセスiがtiに到達した時点では他のプロセスの
必ず到達しておかなくてはならない状態はかわら
ないからである。
次にブロツク5に移行する。ここでは、まずプ
ロセス1の送信遷移−1を受信可能な受信遷移を
求める。
ロセス1の送信遷移−1を受信可能な受信遷移を
求める。
実行可能な受信遷移の求め方は次の通りであ
る。
る。
展開状態図においてプロセスkの状態sKでプロ
セスiが状態tiで送信信号xを受信することがで
きるための必要な十分条件は次の(1)〜(3)である。
セスiが状態tiで送信信号xを受信することがで
きるための必要な十分条件は次の(1)〜(3)である。
(1) プロセスiから受信したプロセスkの最後の
信号はプロセスkへ送信したプロセスiの最後
の信号と同じである。
信号はプロセスkへ送信したプロセスiの最後
の信号と同じである。
(2) 送信遷移−xの遷移後の状態をti′とする。状
態ti′のL値で表わされる第1要素の状態と状態
sKのL値で表わされる第1要素の状態は一方か
ら他方へ到達可能な関係にある。但し、L値の
第k要素の状態については除外する。
態ti′のL値で表わされる第1要素の状態と状態
sKのL値で表わされる第1要素の状態は一方か
ら他方へ到達可能な関係にある。但し、L値の
第k要素の状態については除外する。
(3) 状態tiのL値の第k容素である状態から状態
sKへ到達可能である。
sKへ到達可能である。
プロセス1の送信遷移−1に対応する受信遷移
+1はプロセス2の状態1.0で実行可能である。
理由を示す。上述の条件のうち(1)についてはその
ような信号がないので条件を満たす。(2)について
はプロセス1の状態2.0のL値(2.0 1.0 1.0)と
プロセス2の状態0.0のL値(1.0 1.0 1.0)をみ
て第1,3要素は条件を満たす。(3)についてはそ
の第2要素は条件を満たす。そして、プロセス2
の状態2.0と受信遷移+1.0が展開される。又、20
のL値を(2.0 2.0 1.0)と計算する。プロセスk
の受信遷移による展開で新たに加わつた状態のL
値の計算法は次の通りである。受信遷移に対応す
るプロセスiの送信遷移の遷移先の状態のL値を
(s1,…,sN)とする。受信遷移の遷移元の状態
L値を(t1,…,tN)とする。以上の準備の元、
受信遷移の遷移後の状態のL値の第i要素は、2
つの状態si,tiのうち状態遷移のより進んだもの
とする。例えば、プロセス1の2.0のL値の第1
要素2.0はプロセス2の1.0のL値の第1要素1.0よ
りも進んでいるのでプロセス2の2.0のL値の第
1要素は2.0となつている。
+1はプロセス2の状態1.0で実行可能である。
理由を示す。上述の条件のうち(1)についてはその
ような信号がないので条件を満たす。(2)について
はプロセス1の状態2.0のL値(2.0 1.0 1.0)と
プロセス2の状態0.0のL値(1.0 1.0 1.0)をみ
て第1,3要素は条件を満たす。(3)についてはそ
の第2要素は条件を満たす。そして、プロセス2
の状態2.0と受信遷移+1.0が展開される。又、20
のL値を(2.0 2.0 1.0)と計算する。プロセスk
の受信遷移による展開で新たに加わつた状態のL
値の計算法は次の通りである。受信遷移に対応す
るプロセスiの送信遷移の遷移先の状態のL値を
(s1,…,sN)とする。受信遷移の遷移元の状態
L値を(t1,…,tN)とする。以上の準備の元、
受信遷移の遷移後の状態のL値の第i要素は、2
つの状態si,tiのうち状態遷移のより進んだもの
とする。例えば、プロセス1の2.0のL値の第1
要素2.0はプロセス2の1.0のL値の第1要素1.0よ
りも進んでいるのでプロセス2の2.0のL値の第
1要素は2.0となつている。
送信遷移−1と受信遷移+1による展開終了後
V={(1.0 1.0 1.0),(2.0 2.0 1.0)}とし、再び
ブロツク3に戻る。次に、送信遷移−3を選択し
たとする。次にブロツク4に移行する。ここで
は、プロセス2の状態3.0と送信遷移−3が展開
される。又、3.0のL値を(1.0 3.0 1.0)とする。
このとき、ブロツク6がよばれる。プロセス2の
送信遷移−3.0による受信遷移+1.0の伝播、つま
り状態3.0で+1.0が実行可能となる。ところがメ
モリ1に蓄積されているプロトコル仕様をアクセ
スして、定義されていることがわかり、ブロツク
7で未定義実行可能遷移と検出される。第6図で
は太い点線で示す。その後、ブロツク5に移行す
る。−3.0に対応する受信遷移+3がプロセス1の
状態1.0で実行可能であることを求め、新たに態
3.0と受信遷移+3.0が展開される。また、3.0のL
値が(3.0 3.0 1.0)と計算される。このL値は安
定グローバル状態集合に新たに登録されV=
{(1.0 1.0 1.0),(2.0 2.0 1.0),(3.0 3.0 1.0
)}と
する。このとき、送信遷移−1.0による受信遷移
+3.0の伝播が可能であるため、ブロツク6に移
行する。しかし、プロトコル仕様ではプロセス1
の2.0で受信遷移+3.0が実行可能でないため、ブ
ロツク7で未定義実行可能遷移と判定する。
V={(1.0 1.0 1.0),(2.0 2.0 1.0)}とし、再び
ブロツク3に戻る。次に、送信遷移−3を選択し
たとする。次にブロツク4に移行する。ここで
は、プロセス2の状態3.0と送信遷移−3が展開
される。又、3.0のL値を(1.0 3.0 1.0)とする。
このとき、ブロツク6がよばれる。プロセス2の
送信遷移−3.0による受信遷移+1.0の伝播、つま
り状態3.0で+1.0が実行可能となる。ところがメ
モリ1に蓄積されているプロトコル仕様をアクセ
スして、定義されていることがわかり、ブロツク
7で未定義実行可能遷移と検出される。第6図で
は太い点線で示す。その後、ブロツク5に移行す
る。−3.0に対応する受信遷移+3がプロセス1の
状態1.0で実行可能であることを求め、新たに態
3.0と受信遷移+3.0が展開される。また、3.0のL
値が(3.0 3.0 1.0)と計算される。このL値は安
定グローバル状態集合に新たに登録されV=
{(1.0 1.0 1.0),(2.0 2.0 1.0),(3.0 3.0 1.0
)}と
する。このとき、送信遷移−1.0による受信遷移
+3.0の伝播が可能であるため、ブロツク6に移
行する。しかし、プロトコル仕様ではプロセス1
の2.0で受信遷移+3.0が実行可能でないため、ブ
ロツク7で未定義実行可能遷移と判定する。
以上の処理を反復すると第6図のようになる。
冗長な状態遷移系列の展開を防ぐため、安定グロ
ーバル状態集合Vを利用して次のような処理を行
つている。6図においてV={…,(3.0 3,0
1.0)(3.1 3.1 1.0)…}とする。3.0及び3.1に*
をつけている。これは2つの安定グローバル状態
が等しいことを表している。従つて、プロセス
1,2の3.0と3.1は等しい状態と考えてよく、3.0
と3.1からの状態遷移の展開で一致するものがあ
ればどちらかを省略して冗長的な展開を避けてい
る。これをアサイクリツク展開と呼ぶ。例えば、
3.1から実行可能な受信遷移のうち細い点線で示
したものは3.0から実行可能な受信遷移+4.0と一
致するので省略している。この関係を→で示して
いる。
冗長な状態遷移系列の展開を防ぐため、安定グロ
ーバル状態集合Vを利用して次のような処理を行
つている。6図においてV={…,(3.0 3,0
1.0)(3.1 3.1 1.0)…}とする。3.0及び3.1に*
をつけている。これは2つの安定グローバル状態
が等しいことを表している。従つて、プロセス
1,2の3.0と3.1は等しい状態と考えてよく、3.0
と3.1からの状態遷移の展開で一致するものがあ
ればどちらかを省略して冗長的な展開を避けてい
る。これをアサイクリツク展開と呼ぶ。例えば、
3.1から実行可能な受信遷移のうち細い点線で示
したものは3.0から実行可能な受信遷移+4.0と一
致するので省略している。この関係を→で示して
いる。
最後に、展開の停止法について説明する。従来
の技術では次の停止条件を与えている。次の条件
(1)〜(3)を満たすプロセスiの状態tiが出現したと
きタイプ0で停止する。
の技術では次の停止条件を与えている。次の条件
(1)〜(3)を満たすプロセスiの状態tiが出現したと
きタイプ0で停止する。
(1) 状態遷移展開図のプロセスiにおいて状態ti
は状態siから到達可能である。
は状態siから到達可能である。
(2) siのL値はtiのL値と“.”以下を除いて一致
する。
する。
(3) 初期状態oiからsiの状態遷移系列上の信号の
送信及び受信後のチヤネルに残つている信号初
期状態oiからsiの状態遷移系列上の信号の送信
及び受信後のそれと一致する。例えば、第2図
のプロセス1の状態2.4は状態2.1と上述の関係
があるため停止されている。プロセス1の状態
2.6は状態2.5と同様の関係にある。
送信及び受信後のチヤネルに残つている信号初
期状態oiからsiの状態遷移系列上の信号の送信
及び受信後のそれと一致する。例えば、第2図
のプロセス1の状態2.4は状態2.1と上述の関係
があるため停止されている。プロセス1の状態
2.6は状態2.5と同様の関係にある。
しかし、上述の停止法では冗長の状態遷移の
展開を行なうため、以降に説明する停止条件を
新たに設ける。次の条件(4)(5)を満たすプロセス
iの状態tiが出現したときタイプ2で停止す
る。
展開を行なうため、以降に説明する停止条件を
新たに設ける。次の条件(4)(5)を満たすプロセス
iの状態tiが出現したときタイプ2で停止す
る。
(4) 状態遷移展開図のプロセスiにおいて状態ti
は状態siから到達可能である。
は状態siから到達可能である。
(5) siを含む安定グローバル状態とtiを含む安定
グローバル状態は“.”以下を除いて一致する。
グローバル状態は“.”以下を除いて一致する。
例えば、第6図のプロセス1の2.3は2.2と上述
の関係にあるため展開を停止する。2.3を含む安
定グローバル状態(2.3 3.3 1.0)と2.2を含む安
定グローバル状態(2.2 3.2 1.0)は“.”以下を
除けば一致する。
の関係にあるため展開を停止する。2.3を含む安
定グローバル状態(2.3 3.3 1.0)と2.2を含む安
定グローバル状態(2.2 3.2 1.0)は“.”以下を
除けば一致する。
ブロツク3において実行可能送信遷移が全くな
い状態で停止条件を満たさない状態があればブロ
ツク8に移行してデツドロツクと判定する。例え
ば第6図の安定グローバル状態(4.1 2.0 1.1)及
び(4.3 3.2 1.2)はデツドロツクと判定される。
い状態で停止条件を満たさない状態があればブロ
ツク8に移行してデツドロツクと判定する。例え
ば第6図の安定グローバル状態(4.1 2.0 1.1)及
び(4.3 3.2 1.2)はデツドロツクと判定される。
展開が全て完了した後、メモリ1のプロトコル
仕様にアクセスし、展開図に現れなかつた状態遷
移をブロツク9で定義済実行不能遷移と判定す
る。メモリ10には展開図及び検証結果を出力す
る。
仕様にアクセスし、展開図に現れなかつた状態遷
移をブロツク9で定義済実行不能遷移と判定す
る。メモリ10には展開図及び検証結果を出力す
る。
オーバフローの検出法について第1図のプロト
コル例を展開した第6図及び第7図を用いて説明
する。特にプロセス1から2へのチヤネルc12と
プロセス2から1へのチヤネルC21のオーバフロ
ーに着目する。他のチヤネルのついても同様の処
理を行えばよい。|c12|及び|c21|はそれぞれ
c12及びc21の信号数を表す。プロセス1の状態1.0
及びプロセス2の状態1.0にそれぞれ|12|=0
及び|c21|=0をつける。ブロツク3で送信遷
移−1.0の展開でプロセス1の状態2.0に|c12|=
1をつける。これは1.0のL値の第2要素1.0,2.0
のL値の第2要素1.0より、プロセス2は、信号
1.0を受信していると解釈し、チヤネルC12に信号
が1つ残つていることを表す。ブロツク4で受信
遷移+1.0の展開でプロセス2の状態2.0に|c21|
=0をつける。これは1.0のL値の第1要素1.0,
2.0のL値の第1要素2.0よりプロセス1から送信
された信号1.0をプロセス2が受信したにすぎず
チヤネルC21に信号の送受がなかつたと解釈し、
チヤネルc21に信号が全くないことを表す。
コル例を展開した第6図及び第7図を用いて説明
する。特にプロセス1から2へのチヤネルc12と
プロセス2から1へのチヤネルC21のオーバフロ
ーに着目する。他のチヤネルのついても同様の処
理を行えばよい。|c12|及び|c21|はそれぞれ
c12及びc21の信号数を表す。プロセス1の状態1.0
及びプロセス2の状態1.0にそれぞれ|12|=0
及び|c21|=0をつける。ブロツク3で送信遷
移−1.0の展開でプロセス1の状態2.0に|c12|=
1をつける。これは1.0のL値の第2要素1.0,2.0
のL値の第2要素1.0より、プロセス2は、信号
1.0を受信していると解釈し、チヤネルC12に信号
が1つ残つていることを表す。ブロツク4で受信
遷移+1.0の展開でプロセス2の状態2.0に|c21|
=0をつける。これは1.0のL値の第1要素1.0,
2.0のL値の第1要素2.0よりプロセス1から送信
された信号1.0をプロセス2が受信したにすぎず
チヤネルC21に信号の送受がなかつたと解釈し、
チヤネルc21に信号が全くないことを表す。
プロセスiの状態siにつける|Cij|の計算法は
次の通りである。siを遷移先とする状態遷移xの
遷移元をtiとする。tiには|cij|=mと計算され
ているとする。xがプロセスjへの送信遷移であ
れば|cij|=m+1とする。j以外の送信遷移で
あれば次の処理を行う。tiのL値の第j要素及び
siのL値の第j要素を調査する。今、それぞれの
状態をtj,sjとする。このときtjからsjまでの状態
遷移系列上にプロセスiからjへの信号の受信遷
移を実行した、つまりチヤネルcij上の信号を受信
したとして|cij|を計算する。
次の通りである。siを遷移先とする状態遷移xの
遷移元をtiとする。tiには|cij|=mと計算され
ているとする。xがプロセスjへの送信遷移であ
れば|cij|=m+1とする。j以外の送信遷移で
あれば次の処理を行う。tiのL値の第j要素及び
siのL値の第j要素を調査する。今、それぞれの
状態をtj,sjとする。このときtjからsjまでの状態
遷移系列上にプロセスiからjへの信号の受信遷
移を実行した、つまりチヤネルcij上の信号を受信
したとして|cij|を計算する。
例えば、プロセス1の状態3.3の|c12|の計算
は−2.1がプロセス2への送信遷移のため状態2.2
につけられた|cij|=2に1を加えたものとな
る。又、プロセス1の状態2.3の|c12|の計算は
次のとおりである。状態3.3のL値(3.3 2.1 1.0)
の第2要素である第2プロセス2状態2.1状態2.3
のL値(2.3 2.3 1.0)の第2要素である第2プロ
セスの状態2.3をとりだす。状態2.1から2.3までに
プロセス1からの受信遷移+1.0と+2.0が含まれ
ている。従つて状態3.3につけられた|c12|から
2つとり除いて状態2.3につける|c12|=1とす
る。
は−2.1がプロセス2への送信遷移のため状態2.2
につけられた|cij|=2に1を加えたものとな
る。又、プロセス1の状態2.3の|c12|の計算は
次のとおりである。状態3.3のL値(3.3 2.1 1.0)
の第2要素である第2プロセス2状態2.1状態2.3
のL値(2.3 2.3 1.0)の第2要素である第2プロ
セスの状態2.3をとりだす。状態2.1から2.3までに
プロセス1からの受信遷移+1.0と+2.0が含まれ
ている。従つて状態3.3につけられた|c12|から
2つとり除いて状態2.3につける|c12|=1とす
る。
チヤネルc12及びc21の容量が2であればブロツ
ク11で、プロセス1の状態3.3及びプロセス2
の状態2.3でオーバフローと判定される。
ク11で、プロセス1の状態3.3及びプロセス2
の状態2.3でオーバフローと判定される。
以上の処理の正当性は展開の停止が状態遷移系
列の反復となる状態で行なわれていること及び送
信を優先的に実行することで保証される。
列の反復となる状態で行なわれていること及び送
信を優先的に実行することで保証される。
最後に、この状態遷移展開によるプロトコル検
証がプロトコル設計の支援となることを図1のプ
ロトコル例及び図6の展開図を用いて説明する。
証がプロトコル設計の支援となることを図1のプ
ロトコル例及び図6の展開図を用いて説明する。
この検証で得られる状態遷移展開図はプロセス
対応の状態遷移系列を与えてくれる。そのため、
プロトコル仕様の誤りに導くプロセス対応の状態
遷移系列をプロトコル仕様設計者に提供すること
ができる。
対応の状態遷移系列を与えてくれる。そのため、
プロトコル仕様の誤りに導くプロセス対応の状態
遷移系列をプロトコル仕様設計者に提供すること
ができる。
例えば、図6のプロセス1の状態2.0から4.1へ
の状態遷移系列はデツドロツクに導く。この系列
はプロセス3の状態1.0から1.1への状態遷移系列
に対応している。従つて、プロトコル設計者はプ
ロセス1とプロセス3のこれらの状態遷移系列の
みを修正すればよい。
の状態遷移系列はデツドロツクに導く。この系列
はプロセス3の状態1.0から1.1への状態遷移系列
に対応している。従つて、プロトコル設計者はプ
ロセス1とプロセス3のこれらの状態遷移系列の
みを修正すればよい。
(発明の効果)
以上詳細に説明したように本発明による方式は
従来方式に比較すると仕様誤りの検出に支障ない
範囲で冗長な状態遷移系列を削除し、状態遷移展
開図を作成する。このため、従来方式と比較する
と、展開図に含まれる状態及び状態遷移とともに
大幅に減少する。例えば、第1図のプロトコル例
に対するそれらの値の比較を第8図に示す。この
ため従来方式に比較され本発明による方式は検証
処理に必要となる処理量が大幅に減少するととも
に、状態遷移展開図等を蓄積するために必要とな
るメモリの容量を大幅に削減することができると
いう利点がある。
従来方式に比較すると仕様誤りの検出に支障ない
範囲で冗長な状態遷移系列を削除し、状態遷移展
開図を作成する。このため、従来方式と比較する
と、展開図に含まれる状態及び状態遷移とともに
大幅に減少する。例えば、第1図のプロトコル例
に対するそれらの値の比較を第8図に示す。この
ため従来方式に比較され本発明による方式は検証
処理に必要となる処理量が大幅に減少するととも
に、状態遷移展開図等を蓄積するために必要とな
るメモリの容量を大幅に削減することができると
いう利点がある。
第1図はプロトコルの1例を示す図、第2図は
従来の状態遷移展開図、第3図は本発明の1実施
例のブロツク図、第4図はメモリ1の蓄積形式例
を示す図、第5図eは状態遷移展開図、第5図b
は未定義実行可能遷移を示す図、第5図cはデツ
ドロツク及び安定状態の出力例、第5図dは定義
済実行不可能遷移の例、第5図eはオーバフロー
検出出力例、第6図は本発明による状態遷移展開
図、第7図はオーバフローの検証を示す図、第8
図は本発明の効果を示す図である。
従来の状態遷移展開図、第3図は本発明の1実施
例のブロツク図、第4図はメモリ1の蓄積形式例
を示す図、第5図eは状態遷移展開図、第5図b
は未定義実行可能遷移を示す図、第5図cはデツ
ドロツク及び安定状態の出力例、第5図dは定義
済実行不可能遷移の例、第5図eはオーバフロー
検出出力例、第6図は本発明による状態遷移展開
図、第7図はオーバフローの検証を示す図、第8
図は本発明の効果を示す図である。
Claims (1)
- 【特許請求の範囲】 1 電気信号により表現されたプロトコル仕様を
入力として、該プロトコル仕様の有する遷移情報
に従つて各プロセスの状態を遷移しつつ該プロト
コル仕様を検証するプロトコル論理検証方式にお
いて、 各プロセスごとに送信遷移と受信遷移とを対応
させながら状態遷移の展開を実行し、実行中にチ
ヤネル上に信号が全くない状態が検出されたら該
状態を安定状態として判定するとともに安定状態
の集合を記憶するメモリの内容を参照しながら該
安定状態が既に出現したものか新たに出現したも
のであるかを判定し、既に出現した安定状態でか
つ2つの安定状態が異なる状態遷移系列上に存在
する状態であれば該2つの安定状態以降の展開は
互いに等しくなるものとして一方の安定状態につ
いてのみ展開を実行することとし、既に出現した
安定状態で2つの安定状態が同じ遷移系列上の状
態であれば既に出現した安定状態から該安定状態
までの遷移が以降反復するものとして該遷移系列
の展開を停止し、新たに出現した安定状態であれ
ば前記メモリにこれを登録しながら展開を継続し
て実行し、検証結果の展開された状態遷移と、当
該状態遷移及び前記プロトコル仕様から検出され
たプロトコル仕様誤りを出力をあらわす電気信号
を出力することを特徴とするプロトコルの論理検
証方式。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59271938A JPS61150547A (ja) | 1984-12-25 | 1984-12-25 | プロトコルの論理検証方式 |
CA000484679A CA1224880A (en) | 1984-12-25 | 1985-06-20 | Protocol validation system |
US06/749,591 US4694422A (en) | 1984-12-25 | 1985-06-24 | Protocol validation system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59271938A JPS61150547A (ja) | 1984-12-25 | 1984-12-25 | プロトコルの論理検証方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61150547A JPS61150547A (ja) | 1986-07-09 |
JPH0313779B2 true JPH0313779B2 (ja) | 1991-02-25 |
Family
ID=17506927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59271938A Granted JPS61150547A (ja) | 1984-12-25 | 1984-12-25 | プロトコルの論理検証方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61150547A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9038403B2 (en) | 2012-04-02 | 2015-05-26 | Whirlpool Corporation | Vacuum insulated door structure and method for the creation thereof |
US9689604B2 (en) | 2014-02-24 | 2017-06-27 | Whirlpool Corporation | Multi-section core vacuum insulation panels with hybrid barrier film envelope |
-
1984
- 1984-12-25 JP JP59271938A patent/JPS61150547A/ja active Granted
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9038403B2 (en) | 2012-04-02 | 2015-05-26 | Whirlpool Corporation | Vacuum insulated door structure and method for the creation thereof |
US9689604B2 (en) | 2014-02-24 | 2017-06-27 | Whirlpool Corporation | Multi-section core vacuum insulation panels with hybrid barrier film envelope |
Also Published As
Publication number | Publication date |
---|---|
JPS61150547A (ja) | 1986-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Devillers et al. | Verification of a leader election protocol: Formal methods applied to IEEE 1394 | |
US7080087B2 (en) | Automatic aggregation method, automatic aggregation apparatus, and recording medium having automatic aggregation program | |
CN112597153B (zh) | 一种基于区块链的数据存储方法、装置及存储介质 | |
CN113656227B (zh) | 一种芯片验证方法、装置、电子设备及存储介质 | |
CN110290166B (zh) | 跨集群数据交互方法、***、装置及可读存储介质 | |
US5491639A (en) | Procedure for verifying data-processing systems | |
WO2024001024A1 (zh) | 在区块链***中执行交易的方法、区块链***和节点 | |
CN115562629A (zh) | 一种rpa流程表示方法、***、装置及存储介质 | |
CN115237444A (zh) | 基于版本号的并发控制方法、装置、设备及存储介质 | |
CN113326026B (zh) | 一种微服务业务流程接口的生成方法与终端 | |
CN112148713B (zh) | 异构数据库之间数据迁移方法及装置 | |
JPH0458743B2 (ja) | ||
JPH0313779B2 (ja) | ||
WO2024036829A1 (zh) | 一种数据融合方法、装置、设备及存储介质 | |
CN116560629A (zh) | 一种数据传输对象的序列化方法、装置、介质和设备 | |
CN110851178B (zh) | 一种基于分布式图可达计算的过程间程序静态分析方法 | |
US6381606B1 (en) | Application programming interface for creating authorized connections to a database management system | |
US7487405B1 (en) | Method and mechanism for dynamically configuring logical paths of state machines | |
CN111611684B (zh) | 干涉区逻辑块的生成方法、***、装置和存储介质 | |
Bruno et al. | Rapid prototyping of control systems using high level Petri nets | |
WO2024146415A1 (zh) | 任务检索方法、装置及电子设备 | |
CN117255031B (zh) | 一种基于多重映射的网络通信认证方法 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、***及电子设备 | |
CN113449477B (zh) | 数字电路的连接方法、装置、电子设备和存储介质 | |
CN117111539B (zh) | 以太网物理层芯片的控制方法及装置 |