JPH07129375A - システム状態遷移のプログラミング方法およびその装置 - Google Patents

システム状態遷移のプログラミング方法およびその装置

Info

Publication number
JPH07129375A
JPH07129375A JP5276482A JP27648293A JPH07129375A JP H07129375 A JPH07129375 A JP H07129375A JP 5276482 A JP5276482 A JP 5276482A JP 27648293 A JP27648293 A JP 27648293A JP H07129375 A JPH07129375 A JP H07129375A
Authority
JP
Japan
Prior art keywords
state
transition
state transition
event
machine
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.)
Pending
Application number
JP5276482A
Other languages
English (en)
Inventor
Ayako Ashida
綾子 芦田
Tomohiro Murata
智洋 村田
Kenzo Kurihara
謙三 栗原
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5276482A priority Critical patent/JPH07129375A/ja
Publication of JPH07129375A publication Critical patent/JPH07129375A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【構成】 システム状態が複数個の状態機械の組合せで
定義される制御システムについて、状態機械の構成を表
わすレイヤ構造を入力して、それぞれの状態機械の動作
仕様を入力して、入力した各々の状態機械の動作仕様を
レイヤ構造上の子ノードに対応する状態機械の動作仕様
の組合せにマッピングして、入力したマッピングの情報
を記憶して、イベントが発生すると、記憶したマッピン
グの情報をもとに、各レイヤの状態遷移を実行する。 【効果】 システム状態を定義する複数の状態機械の関
係と、それぞれの動作仕様を明らかにして、正しく動作
する制御ソフトウェア開発の全工程を支援する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、システム状態遷移を解
析して検証し、実行する方法および装置に関し、特に、
複数の要素状態が互いにインタラクションをとりなが
ら、組合わされてシステム状態を定義するような複雑な
システムを、複数の設計者が要素状態ごとに設計し、最
終的には1個のシステムとしてまとめる際に用いて、好
適なシステム状態遷移解析方法およびその装置に関す
る。
【0002】
【従来の技術】従来より、状態遷移グラフや状態遷移表
は、プログラムチェックなどのテストで利用されること
が多い。例えば、「野木、中所著:プログラミングツー
ル,ソフトウエア講座27,pp.156-157,昭晃堂(198
9)」では、設計開発したシステムの機能テストを自動化
するツールとして状態遷移図を用いる方法が記載されて
いる。また、状態遷移図をシステムの仕様設計段階で用
いて構造化仕様書を作成し、設計開発などに役立たせる
ことが、「E.Yourdon著,黒田 他 訳:構造化手法に
よるソフトウェア開発,pp.47-56,日経マグロウヒル社
(S.62)」に記載されている。
【0003】従来より提案されている状態モデルの記述
方法で、最も一般的なものに状態遷移表(デシジョンテ
ーブル、イベントステートマトリクスともいう)があ
る。これは、「ある状態で、あるイベントが入力される
と、ある状態に状態が遷移する。」という概念に基づい
て、システムの動作仕様を図的に記述するものである。
この記述方法は、ハードウェア論理設計や通信ソフトウ
ェア設計の分野を中心に有効に用いられていることが、
「田畑著:OSI−明日へのコンピュータネットワー
ク,pp63-66,日本規格協会(1987)」に記載されてい
る。しかし、状態遷移の記述がフラットであるため、状
態数が増えると状態遷移記述が組合せ的に複雑になり、
仕様記述が困難となる可能性がある。また、1枚のイベ
ントステートマトリクスを基に、プログラミングをしよ
うとすると、大きくて複雑なため大変である。
【0004】この問題に対して、ステートチャーツ;ア
ビジュアル フォーマリズム フォーコンプレックス シ
ステムズ(D.Harel著:Statecharts:a visual Formalis
m for Complex Systems),サイエンス オブ コンピュー
タ プログラミング 第8巻(Science of Computer Progr
amming 8 231-274),North-Hollnd(1987)」)では、状
態のグルーピングという概念にもとづき、状態遷移の記
述を簡略化した記述方法が提案されている。この記述方
法は、state chartと呼ばれ、(1)同一イベントにより同
一のターゲット状態に遷移する状態群をグルーピングし
グループからターゲット状態への遷移というフォーマッ
トで状態遷移記述を簡略化する、(2)並行して状態遷移
する状態群をグルーピングして独立に記述し、イベント
で同期をとりることにより、異なるグループの状態間の
状態遷移の記述を省略するというアイデアにより状態遷
移記述の組合せ的な増大を回避する。
【0005】
【発明が解決しようとする課題】しかし、従来の一般的
な状態遷移記述方法は、一次元的な状態機械の動作仕様
を記述するもので、並行に動作する複数の状態機械を組
み合わせることにより、新たな状態機械を階層的に記述
する概念はない。
【0006】また、state chartでは、並行動作する状
態機械の内部状態の組合せとしてどのような状態が存在
しうるかを陽に記述することができない。さらに、並行
動作する状態機械の遷移の記述に関して、同時に起こる
直交遷移を表現することはできるが、新たな意味を持つ
合成遷移を表現することができない。また、状態機械を
階層が上位になったときに、状態遷移を抽象化して構成
する仕様記述が難しい。
【0007】本発明の目的は、対象とするシステムの状
態遷移を、複数の要素状態機械の組合せとして階層化
し、レイヤ間における状態機械の状態値及び状態遷移の
関係、及び状態遷移のきっかけとなるイベントの関係を
明確にして、より複雑なシステム状態制御ソフトウェア
を、高信頼に容易に開発することを支援する、システム
状態遷移のプログラミング方法、および実行方法、およ
び装置を提供することにある。また、このように階層化
された状態遷移の修正変更を矛盾なく行う方法、および
装置を提供することにある。
【0008】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明は、複数個の状態機械を合成して得られる
組合せ状態を内部状態として有するシステムのシステム
状態遷移を制御する方法であって、システム状態を形成
する複数の要素状態機械の関係をレイヤ構造に関連付け
て入力し、格納するステップと、個々の状態機械につい
て、状態遷移を入力し、格納するステップと、レイヤ構
造上の任意のノードに対応する状態機械に関して、前記
ノードの子ノードに対応する複数の状態機械の状態遷移
を組み合わせ、状態遷移を合成するステップと、前記状
態機械に関して、前記入力した状態遷移を、前記合成し
た状態遷移にマッピングするステップと、前記マッピン
グをマッピングルールとして格納し、出力表示するステ
ップと、任意のイベントに対し、そのイベントにより状
態遷移が発生する状態機械を探し、前記状態機械の状態
を変化させ、前記格納したマッピングルールを用いて、
前記状態機械の状態を含んで合成された、上位ノードに
対応する全ての状態機械の状態遷移を実行するステップ
を備えたことを特徴とする。
【0009】また、各々の状態機械の状態遷移を入力
し、マッピングルールを加味して格納し、任意のイベン
トに対し全ての状態機械の状態遷移を実行する際に、レ
イヤ構造上の各ノードに対応する状態機械ごとに、取り
うる全ての状態を横軸に配し、発生する全てのイベント
を縦軸に配し、縦横軸の交わりには横軸の状態において
イベントが発生した後の状態を配したデシジョンテーブ
ル(イベントステートマトリクス)を生成し、出力する
とともに、任意のイベントが発生すると、そのイベント
が発生した状態機械を探し、その状態機械に対応するイ
ベントステートマトリクス上で状態を変化させ、前記格
納したイベントのマッピングを用いて、各レイヤのイベ
ントステートマトリクス間でイベントを伝搬させること
により、状態遷移を実行するステップを備えたことを特
徴とする。
【0010】さらに、本発明に係るマッピングの入力支
援方法は、レイヤ構造上の任意のノードに対応する状態
機械の状態遷移を、前記ノードの子ノードに対応する複
数の状態機械の状態遷移を合成した状態遷移にマッピン
グする際に、レイヤ構造上の任意のノードに対応する状
態機械で、マッピングが未定義である状態遷移を漏れな
く検索するステップと、合成した状態遷移で、マッピン
グされなかった状態遷移を漏れなく検索するステップ
と、前記検索した状態遷移を表示し、再定義を要求する
ステップを備えて、入力ミスを防止することを特徴とす
る。
【0011】さらに、入力し格納した状態機械の状態遷
移に関して、レイヤ構造の定義の変更、マッピングの定
義の変更、あるいは、ある状態機械の状態遷移に関わる
変更要求を入力するステップと、変更要求がレイヤ構造
の定義の変更であれば、レイヤ構造の定義を入力するス
テップに戻るステップと、変更要求がマッピングの定義
の変更であれば、マッピングの定義を入力するステップ
に戻るステップと、変更要求が状態遷移に関わる変更で
あれば、前記変更要求に影響されて修正すべき状態値や
イベント、あるいはそれらの組合せを、先に述べた状態
機械ごとの状態遷移を格納した内容をたどり、検索する
ステップと、その変更要求された状態機械とは異なる状
態機械の状態遷移に関して、格納した状態機械に関する
状態値と、イベントのマッピングに基づいて、変更要求
に影響されて修正すべき状態、イベント、それらの組合
せを検索するステップと、検索した複数の状態機械にお
ける修正すべき状態、イベント、それらの組合せを出力
表示し、各状態機械の状態遷移を定義するステップに戻
るステップと、変更に応じて該当するステップに戻り、
状態遷移の実行を再度繰り返すことを特徴とする。
【0012】さらに、本発明に係るシステム状態遷移の
テスト支援方法は、テストを施すために、任意選択した
該レイヤの状態機械の状態遷移を形成する状態値の組合
せと、それを発生させるイベントを、前記状態遷移を格
納した内容を検索するステップと、前記検索した前記レ
イヤの状態機械の取りうる状態値の組合せに対応する、
下位ノードに対応する状態機械における状態値の組合せ
を、検索することを繰り返して、最下層レイヤに対応す
る状態機械の取りうる状態値の組合せを検索するステッ
プと、検索した、状態値とイベントの組合せをリスト形
式で表示することを特徴とする。
【0013】さらに、本発明に係るソフトウェア開発方
法は、組込型ソフトウェア開発時に、本発明のプログラ
ミング方法、および実行方法を実現する手段を有するシ
ステムを、CASEツールとして用いることを特徴とす
る。
【0014】さらに、本発明に係るシステム状態遷移の
プログラミング装置、および実行装置は、複数個の状態
機械を合成して得られる組合せ状態を内部状態として有
するシステムのシステム状態遷移を制御する装置であっ
て、システム状態を形成する複数の要素状態機械の関係
をレイヤ構造に関連付けて入力し、格納する手段と、個
々の状態機械について、前記状態遷移を入力し、格納す
る手段と、レイヤ構造上の任意のノードに対応する状態
機械に関して、前記ノードの子ノードに対応する複数の
状態機械の状態遷移を組み合わせ、状態遷移を合成する
手段と、前記状態機械に関して、前記入力した状態遷移
を、前記合成した状態遷移にマッピングする手段と、そ
のマッピングをマッピングルールとして格納し、出力表
示する手段と、任意のイベントに対し、そのイベントに
より状態遷移が発生する状態機械を探し、前記状態機械
の状態を変化させ、前記格納したマッピングルールを用
いて、前記状態機械の状態を含んで合成された、上位ノ
ードに対応する全ての状態機械の状態遷移を実行する手
段とを備えたことを特徴とする。
【0015】
【作用】システム状態が複数個の状態機械の組合せで定
義される制御システムについて、状態機械の構成を表わ
すレイヤ構造を入力して、それぞれの状態機械の動作仕
様を入力して、入力した各々の状態機械の動作仕様をレ
イヤ構造上の子ノードに対応する状態機械の動作仕様の
組合せにマッピングして、入力したマッピングの情報を
記憶して、イベントが発生すると、記憶したマッピング
の情報をもとに、各レイヤの状態遷移を実行することが
できる。
【0016】また、上記のように、入力して格納した状
態機械の動作仕様をマッピングの情報を含めて表示し
た、デシジョンテーブル(イベントステートマトリク
ス)を生成し、出力することができる。
【0017】また、ある状態機械の動作仕様を、レイヤ
構造上の子ノードの状態機械の組合せにマッピングする
際に、下位の動作仕様うちで未使用の状態やイベントを
漏れなく検索することができて、入力ミスを防ぐことが
できる。
【0018】また、入力し格納したレイヤ構造の定義、
マッピングの定義に対して、変更要求があれば、再定義
するために当該する処理に戻ることができるし、また、
入力し格納した状態機械の状態遷移に関して、ある一つ
の状態機械の状態遷移上の遷移または状態値の追加や削
除の要求があれば、変更要求した状態機械と関係のある
状態機械に関する状態遷移上の、変更の影響を受ける範
囲を漏れなく検出し、再定義を指示することができる。
【0019】さらに、仕様を実現したソフトウェアが、
最上位のシステム状態遷移の動きに合うことを確認する
システムテストの際に、レイヤ構造の任意の状態機械を
選択すると、選択したレイヤの各状態遷移に対応した下
位レイヤの状態遷移のリストを生成し、出力することが
できる。
【0020】
【実施例】図1は、本発明の一実施例に係る階層化シス
テム状態遷移の実行支援方法の手順を示す処理フローチ
ャートである。図2は、本実施例を実現するための装置
構成図である。
【0021】まず図2を参照して、本実施例の装置構成
図について説明する。その装置構成は、グラフィック機
能を持った計算機201に、入力装置202、205、
記憶装置203および出力装置204を接続したもので
ある。図では、入力装置としてキーボード202、およ
びマウス205を示しているが、他の入力装置を用いて
もよいし、それらを組み合わせて用いても、またどれか
一つであってもよい。記憶装置203は、磁気記憶装置
に限らず、光ディスクや半導体メモリであってもよい。
要は、プログラムの実行やデータのファイルを格納する
ために十分な容量を備えていればよい。本発明を実施す
る装置構成は、一般に計算機または計算機システムと呼
ばれるものであればよい。当然のこととして、本発明を
実施するために、製作した専用装置であっても、上述の
ような周辺機器の機能が充足されればよい。
【0022】具体例を挙げて、図1の処理手順の各ステ
ップを詳しく説明する。併せて、各テーブルやファイル
の構成についても詳しく説明する。
【0023】あるシステム状態遷移の実行を、図2の装
置により図1の手順に従って支援する例を説明する。
【0024】まず、ステップ101で、状態遷移を実行
するシステム(制御システムと呼ぶ)のとりうるシステ
ム状態の階層構成を表現するレイヤ構造を入力する。レ
イヤ構造定義の例を図3に示す。レイヤ構造の要素は、
複数個の状態機械(図3の角丸の四角形で示す)であ
り、それらの関係がツリー構造によって表されている。
それぞれの状態機械は、固有の状態をもち、それぞれが
シーケンシャルに変化し、かつ必要に応じて異なる状態
機械の間で、相互に状態遷移の同期/排他(インタラク
ション)を取る。ツリーの親ノードに対応する状態機械
動作仕様は、子ノードに対応する2個又は3個の状態機
械の動作仕様を合成することによって得られる。動作仕
様の合成方法については後述する。
【0025】図3は、本実施例におけるシステム状態を
表現する、レイヤ構造を示す説明図である。
【0026】図3で、1個の角丸の四角形が1個の状態
機械を表し、中に状態機械名を記入している。ツリーの
最上位レイヤを第一層、次のレイヤを第二層というよう
に、上から順にレイヤ番号を付ける。横の同一列に並ん
だ状態機械が、同一レイヤの状態機械である。状態機械
をつなぐ線分は状態の構成を表し、ツリー上、1個のノ
ードの直下にあるノードの動作仕様の組合せが、直上の
ノードの動作仕様を定義していることを示している。
【0027】本実施例の図3では、システム状態SM
1.1が2個の状態機械{SM2.1,SM2.2}の
組合せで定義され、それらの2個の状態機械がそれぞ
れ、2個の状態機械{SM3.1,SM3.2}の組合
せ、{SM3.3,SM3.4}の組合せで定義される
システムの構成を示している。
【0028】レイヤ構造の定義は、トップダウンで上位
から行ってもよいし、ボトムアップで下位から行っても
よい。なお、状態機械の名称はどのようなものでもよく
ユーザが任意につけたもので良い。また、個数も上記の
例に限られず任意である。但し、表示の便宜上、最大3
個の状態機械が1個の状態機械を構成する。3個以上の
場合には、中間ノードを挿入してレイヤ構造を構成す
る。
【0029】ユーザは、状態機械名とそれらの関係を定
義するレイヤ構造を、ツリー形式で定義し、入力する。
各種の入力は、入力装置202、205を用いて行う。
【0030】図4は、入力されたレイヤ構造を格納する
記憶装置203上のレイヤ構造テーブル400の格納形
式を示す。レイヤ構造を構成する状態機械を、それぞれ
1個の構造体で表す。各々にレイヤ構造ノード番号40
1を付加し、レイヤ構造上、上位にある状態機械をポイ
ンタ405が指し、下位にある状態機械をポインタ41
0、415、420が指す。
【0031】次に、ステップ105で、上述したレイヤ
構造の最下層ノードの各状態機械に関して、以下のよう
に動作仕様を入力する。
【0032】各々の状態機械に関して、状態機械のとり
うる状態値と、各状態間の状態遷移仕様を定義する。
【0033】まず初めに、状態機械が取りうる状態値
は、1個以上の状態変数がとりうる変数の値の組み合わ
せを、状態変数間の従属関係に基づき、図5に示すよう
にツリー構造で入力する。
【0034】図5の例では、SM3.3が取りうる状態
値の入力例を示す。状態変数Xは{X1,X2}を値域
とし、状態変数Yは{Y1,Y2}を値域とする。さら
に、変数Yは、変数Xに従属し、XがX1であるときに
は、Yはどの値をとってもよいドントケア(don't car
e)であり、X2であるときには、Y1かY2のどちら
かの値をとる。この定義により、SM3.3のとりうる
状態値は{X1,X2/Y1,X2/Y2}の3個であ
る。
【0035】図6は、先に図5に示した1個の状態機械
がとりうる状態値の定義を、本実施例の状態機械SM
3.1に適用した例である。
【0036】図6に示すように、SM3.1は、{正
常、障害}の2個の状態を取る。このことは、SM3.
1が1個の状態変数で定義されることを示す。
【0037】2個の状態値に対して、以後、これらを認
識するための状態値番号601を付する。状態値番号
は、「s レイヤ番号.レイヤ内のノード番号.状態値
通し番号」の形式で付ける。図6では、正常=s3.
1.1、障害=s3.1.2である。
【0038】図7は、図6の構造で定義された状態機械
ごとの状態値名を格納する記憶装置203上の状態値格
納テーブル700の格納形式を示す。
【0039】状態値名には、識別するための状態値番号
が付されている。701の構造体は状態値番号を納める
もので、状態値名の数と同じだけ存在し、ポインタ70
5、710により他の状態値番号の構造体を指すので、
状態値の数が変化してもフレキシブルに対応して格納す
ることができる。さらにポインタ715によって、状態
値番号と実際の名称を結び付けられている。すなわち、
状態変数の変数値を納める構造体620、625をポイ
ンタによりつないで、任意個つなぐ。
【0040】図8に示すのは、図7の格納形式にしたが
って、図6で示したSM3.1の状態値を格納する例で
ある。この例では、状態変数が1個であるので、第一階
層の状態値名のみである。
【0041】次に、状態遷移仕様は、遷移前の状態値、
発火イベント、及び遷移後の状態値の組合せ(これを1
個の状態遷移と呼ぶ)の集合がを入力する。
【0042】図9は、SM3.1の状態遷移を表す図の
例である。図6で定義した、SM3.1のとりうる状態
値{s3.1.1,s3.1.2}の間の遷移が定義さ
れている。2個の状態値は四角形で表現し、その内部に
状態値番号を記入する。四角形を結ぶ矢印は遷移を表現
し、矢印の基が遷移前の状態値、先が遷移後の状態値で
ある。矢印付近に遷移番号とイベント番号を書く。
【0043】遷移番号は、「a レイヤ番号.レイヤ内
のノード番号.遷移通し番号」の形式で付ける。また、
イベント番号は、「e イベントが発火するレイヤの番
号.イベント通し番号」の形式で付ける。
【0044】図9に示すように、状態遷移の表現を従来
よりよく使われるN2チャートを応用したした表示にす
ると、規則性が明確であるし、状態値数や遷移数が増加
しても見易く、理解性も向上する。
【0045】図9のように定義した状態遷移は、図10
に示すイベント格納テーブル1000、図11に示す状
態遷移格納テーブル1100の形式で、記憶装置203
に格納する。
【0046】図10は、図9で定義したイベントを納め
たイベント格納テーブルの形式とその利用例を示す図で
ある。
【0047】これは、入力されたイベントを全て格納す
る形式である。イベントごとに構造体1101が対応
し、イベント番号と、イベント名、前後の構造体を指す
ポインタ1005、1010から成っている。状態機械
とは無関係に、入力されたイベントを順に、全てポイン
タによりつなぐ。
【0048】図11に、状態遷移を格納する状態遷移テ
ーブル1100を示す。構造体1101には、遷移前後
の状態値と、発火イベントの番号が納められている。ま
た、同じ状態機械に関する遷移のうちで、遷移前の状態
値が等しい遷移、遷移後の状態値が等しい遷移、発火イ
ベントが等しい遷移がポインタ1105、1110、1
115、1120、1125、1130によりつなげら
れている。また、1145の下位層における複数遷移同
時発生フラグと、1150のマッピング済みフラグに関
しては後述する。
【0049】図11の形式に従い、図9に示す状態遷移
を格納する例を図12に示す。この実施例では、遷移は
2個で、遷移前後の状態値の等しい遷移や、発火イベン
トが等しい遷移は存在しないので、ポインタがNULL
を指している。また、SM3.1は最下層ノードなの
で、下位層は存在しないので、下位層における複数遷移
同時発生フラグはデフォルトの0である。さらに、マッ
ピングの処理もまだ施していないので、マッピング済み
フラグもデフォルトの0である。
【0050】図13は、SM3.2の動作仕様である状
態遷移を、図9でSM3.1について定義したのと同様
にして定義した例である。状態値、イベント、遷移の格
納の方法も、SM3.1で例示したのと全く同じである
ので説明は省略する。
【0051】次に、ステップ106では、ステップ10
1で入力したレイヤ構造の中から、2個以上の最下層ノ
ード(子ノード)を持つノードを探し、もしあれば、ス
テップ110に進む。
【0052】ステップ110では、ステップ101で入
力したレイヤ構造の最下層ノードのうちで、ある1個の
ノードの子ノードに位置する複数の状態機械の動作仕様
を合成する。これは、ステップ105で入力された最下
層ノードの状態機械のとりうる状態値を組み合わせて新
たな状態とし、ステップ105で入力した遷移も新たに
組み合わせた状態に合わせて拡張することである。
【0053】動作仕様の合成処理を、先に図4のレイヤ
構造に基づき、入力したSM3.1とSM3.2の動作
仕様を合成し、SM2.1の動作仕様を表現する手順に
ついて、図16の動作仕様の合成処理フローを用いて、
詳細に説明する。
【0054】まずステップ1600で、SM3.1とS
M3.2がとりうる状態値を組合せたとき、新たな状態
として存在しないものを、「ドメイン制約がある」と指
定し、格納する。
【0055】図14が示すのは、ドメイン制約の指定方
法の例である。図14で、表1401の横軸(以後、第
一軸と呼ぶ)にSM3.1の状態値を全て配し、縦軸
(以後、第二軸と呼ぶ)にSM3.2のの状態値を全て
配する。第一、第二軸の交わりの領域(ドメイン)はそ
れぞれの状態値の直積を表し、そのドメインが表す新た
な状態が存在すれば○印が、ドメイン制約があり、状態
が存在しなければ×印が、それぞれ記入されている。
【0056】この例では、(s3.1.2,s3.2.
2)を組合せた状態は、ドメイン制約により存在しな
い。その他の組合せの3個の状態は、新たな状態として
存在する。
【0057】上述のようにして定義したドメイン制約
は、図15に示すドメイン制約テーブル1500の形式
で、記憶装置203に格納される。
【0058】ドメイン制約テーブルは、図14で定義し
た内容を格納し、さらに、ドメイン制約を受けずに存在
する新たな状態に、合成状態値番号を付加して格納す
る。
【0059】次にステップ1601で、1500の合成
状態値番号com1の状態をカレント合成状態とする。
【0060】次に、ステップ1605で、com1を構
成する第一軸状態値s3.1.1と、第二軸状態値s
3.2.1が遷移前の状態値であるような遷移を、11
00の形式で格納した状態遷移テーブルより検索する。
遷移が1個みつかれば、ポインタ1105、1110を
たどって、遷移前の状態値が等しい遷移を洗いだす。
【0061】具体的には、ステップ1605で、図12
のSM3.1の状態遷移テーブル1200から、s3.
1.1が遷移前の状態値である遷移は、 遷移番号 :a3.1.1、 遷移前の状態値:s3.1.1、 遷移後の状態値:s3.1.2、 発火イベント :e3.1 である遷移1個が検索される(検索遷移1と呼ぶ)。同
様にして、遷移前の状態値が、s3.2.1である遷移
は、 遷移番号 :a3.2.1、 遷移前の状態値:s3.2.1、 遷移後の状態値:s3.2.2、 発火イベント :e3.1 である遷移1個が検索される(検索遷移2と呼ぶ)。遷
移前の状態値が該当する遷移は、以上の2個である。
【0062】ステップ1610で、上記の検索遷移1、
2は、発火イベントが同じだから、まとめておく。
【0063】次に、ステップ1615で、検索遷移1、
2を、図17に示す合成状態遷移テーブル1700の形
式に合うように拡張する。
【0064】求める合成遷移の遷移前の合成状態値番号
1701は、com1である。イベントe3.1が発火
したとき場合は、検索遷移1、2が同時に起こることと
で、それぞれの遷移後の状態値s3.1.2とs3.
2.2を合成したcom3が遷移後の合成状態値170
5であることが、1500のドメイン制約テーブルから
わかる。自明であるが、発火イベント番号1710はe
3.1である。さらに、下位層における複数遷移同時発
生フラグ1715は、検索遷移1、2の2個の遷移が同
時に発生していることから、「1」である。下位層の発
生遷移番号は、a3.1.1と、a3.2.1である。
マッピング済みフラグはデフォルトの「0」である。
【0065】もしも、検索遷移のイベント名の異なる場
合には、第一軸方向、第二軸方向のいずれかの動きを表
すもので、検索遷移ごとに個別の合成状態遷移に拡張す
る。この場合には、1715の下位層における複数遷移
同時発生フラグは、デフォルトの「0」である。この場
合は、下位層の発生遷移1のみ、記入する。
【0066】次に、ステップ1620で、上記の求めた
合成状態遷移を、図17に示す合成状態遷移テーブルの
形式で、記憶装置203に格納する。
【0067】次に、ステップ1625において、カレン
ト合成状態を、1500のcom2の合成状態値に進め
る。
【0068】そして、ステップ1605〜1625を繰
り返して、合成状態遷移を生成し、格納する。生成の過
程で、合成状態遷移テーブル1700のポインタ172
5〜1750でつなぐことができる合成状態遷移が生成
されたときは、ポインタでつなぎながら格納する。
【0069】この処理を全ての合成状態値に関して行
い、合成状態遷移を生成する。
【0070】図18は、生成し1700の形式で格納し
た、合成状態遷移を出力するイメージの例である。表示
には、この例のように、マトリクス型でもよいし、他の
表現方法を用いてもよい。表示された内容をみて、シス
テムの制御仕様上、不要な遷移は削除することが出来
る。
【0071】次に、ステップ110で合成したノードに
対応する状態機械が実現すべき動作仕様(要求仕様状態
遷移)を入力する。これは、ステップ110で生成した
合成状態遷移とは無関係に定義する。従って、本ステッ
プ115は、ステップ105、110より前におこなっ
てもよい。
【0072】また、この動作仕様の定義は、部分的でよ
い。状態値の定義だけでもよいし、思いついた状態遷移
だけでもよい。このステップで定義した要求仕様は後述
するステップ120で状態マッピングを定義する際に、
合成状態遷移の生成とは独立に、トップダウンに定義さ
れた要求仕様との対応をとるための入力である。
【0073】この処理では、先にステップ105でレイ
ヤ構造の最下層に位置する状態機械に関する状態遷移を
定義したときと同様に、状態値名を定義入力し、記憶装
置203に状態値格納テーブル700の形式で格納し、
図9と同じ様式で状態遷移を定義し、記憶装置203に
状態遷移テーブル1100の形式で格納する。
【0074】図19に示すのは、SM2.1の状態遷移
の定義である。これは、先にステップ110で生成した
SM3.1とSM3.2の合成状態遷移にマッピングす
る、状態遷移である。
【0075】先に述べたように、この処理は、仕様設計
において、ボトムアップで状態遷移を定義するだけでな
く、制御に関する設計者の意志を状態遷移に反映させる
ために行うものである。
【0076】次に、ステップ120で、ステップ110
で合成し格納した状態値に、ステップ115で入力し格
納した要求仕様状態値をマッピングする。
【0077】本処理の目的は、マッピングすることによ
り、異なる階層間の状態遷移を関係づける(対応づけ
る)ことである。
【0078】まず、図18の合成状態遷移の表示と、図
19の要求状態遷移の定義を見比べて、マッピングする
状態値を決める。決定した状態マッピングの情報は、図
20に示す、状態マッピングの形式で格納する。この例
では、図19上の状態s2.1.1に、図18上のco
m1をマッピングし、同様に、s2.1.2にcom
3、s2.1.3にcom2を、マッピングしている。
図20は、その格納形式である。
【0079】このマッピングの例では、上位の要求仕様
状態と合成状態は一対一のマッピングとなっているが、
必ずしも、その限りではなく、一対nのマッピングでも
よい。その場合には、2000の状態マッピングテーブ
ルにおいて、マッピングする合成状態値番号がn個にな
る。
【0080】また、マッピングの漏れが無いように、全
ての状態値番号、全ての合成状態値番号が、状態マッピ
ングテーブルのどこかに格納されるようにする。
【0081】次に、ステップ125で、ステップ120
において2000の形式で格納した状態マッピングに基
づいて、ステップ110において1700の形式で格納
した合成状態遷移と、ステップ115において1100
の形式で格納した状態遷移(要求仕様)の過不足を検出
する。
【0082】この検出処理を図21に示すフローチャー
トを用いて、SM2.1の状態遷移と、SM3.1とS
M3.2の合成状態遷移の場合について、詳細に説明す
る。まず、ステップ2101で、カレント状態遷移を図
19上のa2.1.1にする。
【0083】次に、ステップ2105で、合成状態の中
から、カレント状態遷移と、遷移前の状態値が等しい遷
移を全て探す。
【0084】この例では、カレント状態遷移の遷移前の
状態値s2.1.1は、2000の状態マッピングテー
ブルからcom1であることがわかる。遷移前の合成状
態値番号がcom1である合成遷移を探すと、1個みつ
けることができる。見つけた遷移の遷移前の合成状態値
が等しい遷移を指すポインタ1725、1730をたど
ることにより、該当する合成遷移を全て洗いだすことが
出来る。この例では、ポインタはNULLを指している
ので、該当する合成遷移は1個である。
【0085】次に判断2106で検出した遷移があるの
で、ステップ2110に進み、見つけた合成遷移のうち
で、それの発火イベントが、カレント状態遷移の発火イ
ベントと等しい合成遷移を探す。
【0086】ステップ2105で見つけた合成遷移のポ
インタ1745、1750を辿り、イベント名も一致す
るものを洗い出す。この例では、先に見つけた1個の合
成遷移の発火イベントが合致する。
【0087】次に判断2111で検出した遷移があるの
で、ステップ2115に進み、ステップ2110で見つ
けた合成遷移のうちで、それの遷移後の合成状態値が、
カレント状態遷移の遷移後の状態値と対応する合成遷移
を探す。
【0088】この例では、カレント状態遷移の遷移後の
状態値はs2.1.2で、これに対応する合成状態値は
com3であることが、2000の状態マッピングテー
ブルからわかる。ステップ2110で見つけた遷移の遷
移後の合成状態値は、com3であるので、この合成遷
移は検索すべき遷移である。
【0089】次に判断2116で検索した遷移があるの
で、ステップ2120に進み、検索した合成遷移のマッ
ピング済みフラグを「1」とし、カレント状態遷移のマ
ッピング済みフラグも「1」とする。
【0090】さらに、図22に例示する、遷移マッピン
グテーブルの形式で、遷移のマッピングの定義を格納す
る。これは、カレント状態遷移の遷移番号を2201に
配し、マッピングした合成遷移の下位層の発生遷移番号
を2205に配している。
【0091】以上の探索において、いずれか1個の項目
に対して、マッピングの対象となる遷移を探索すること
が出来なければ、マッピングフラグは「0」のままであ
る。そして、カレント状態遷移のnextがNULLで
なければ、まだ、検索すべき状態遷移があるので、カレ
ント状態遷移を1個進めて(ステップ2125)、ステ
ップ2105〜2125を、全ての状態遷移に対して繰
り返す。
【0092】全ての状態遷移について検索を終えたら、
ステップ2130で、1100の形式で格納したSM
2.1の状態遷移テーブルと、1700の形式で格納し
た合成状態遷移テーブルで、マッピング済みフラグが
「0」である遷移を全て洗いだす。この例では、合成状
態遷移の、遷移前状態値com2、遷移後状態値com
3、発火イベントe3.1の遷移が検出される。これを
示したのが、図23の未マッピング遷移の表示例であ
る。
【0093】次に、ステップ130で、ステップ125
で検出した過不足の修正を入力することにより、上位の
状態機械の動作仕様を下位層の動作仕様と結び付けなが
ら、定義する。
【0094】この例では、図23に示すように、合成状
態遷移に未マッピングの遷移があるが、それは、過分で
あり、上位では起こらない遷移であるとの判断から、1
100の形式のSM2.1に関する状態遷移テーブルに
は追加しない。
【0095】ところで、ステップ115において、状態
遷移を定義しなかった場合には、2000の形式で格納
した状態マッピングの情報を基に、1700の合成状態
遷移を拡張して、その状態遷移に関して、制御上、不要
な遷移を削除したり、不足している遷移を追加したりし
て、上位の状態機械の動作仕様を確定することもでき
る。
【0096】また、ステップ115を省略した場合に
は、合成状態遷移に関して、状態、および遷移の削除、
追加を行い、上位の状態機械の動作仕様を確定する。さ
らに、この削除、追加を省略する場合には、上位の状態
機械の動作仕様は、合成状態遷移をそのまま用いること
にする。
【0097】ステップ110からステップ130まで
を、レイヤ構造上の全ての状態機械について繰り返し、
状態機械の動作仕様を定義する。
【0098】次に、ステップ135で、レイヤ構造上全
ての状態機械について定義した動作仕様を実行するため
の、デシジョンテーブルを生成する。
【0099】デシジョンテーブルとは、図25に示すよ
うに、横軸に遷移前の状態値、縦軸に発火イベントを配
して、縦と横の交わりに、イベントが発火し遷移した後
の状態値と出力イベント番号を配した図である。
【0100】出力イベントは、上位のデシジョンテーブ
ルに遷移を伝搬するためのイベントで、上位層における
入力となる。また、1個のテーブル上の全ての遷移を識
別するためのものでもある。また、出力イベント番号
は、その状態遷移の遷移番号の「a」を「O」に書き替
え、数字の部分はそのまま引用したものである。
【0101】デシジョンテーブルは、状態遷移表ともい
い、従来より広く使われる表示方法である。このテーブ
ルを入力として、状態遷移を実行するプログラムのコー
ドを出力するツールも存在する。
【0102】以下に、マッピングの内容を含めながら生
成する、デシジョンテーブルの生成の手順を、SM2.
1を例に、図24のデシジョンテーブル生成処理フロー
チャートに基づいて詳細に説明する。
【0103】まず、ステップ2401で、SM2.1の
取りうる状態値{s2.1.1,s.2.1.2,s
2.1.3}を横軸に配する。
【0104】次に、ステップ2405で、SM3.1と
SM3.2のデシジョンテーブルでの出力イベント{O
3.1.1,O3.2.1,O3.1.2,O3.2.
2}を縦軸に配し、そのときの発火イベント番号{e
3.1,e3.1,e3.2,e3.3}を、隣に配す
る。
【0105】次に、ステップ2410であるが、この例
では、SM2.1で発火するイベントはないので、何の
処理も行わない。
【0106】次に、ステップ2415で、遷移番号a
2.1.1の遷移をカレント状態遷移とする。
【0107】今、判断2420で、カレント状態遷移の
下位層における複数遷移同時発生フラグは、「1」が立
っているので、ステップ2425に進む。図22の遷移
マッピングテーブルから、カレント状態遷移は、下位層
のa3.1.1とa3.2.1の遷移とマッピングされ
ていることが分かる。
【0108】下位で2個の遷移が同時に発生している場
合には、デシジョンテーブルにおいて、下位からの入力
イベントは1個ずつしか受けられないので、途中にダミ
ー状態を挿入して、2個の遷移を1個にまとめて扱える
ようにする。
【0109】ステップ2430で、a3.1.1をまず
選ぶと、SM2.1のデシジョンテーブルにおける入力
イベントは、O3.1.1となる。従って、遷移前の状
態値s2.1.1と、入力イベントO3.1.1の交わ
りに、ダミー状態「d0」と、先に選ばなかった遷移の
遷移番号を引用した、出力イベントO3.2.1を配す
る。
【0110】次に、ステップ2435で、ダミー状態d
0と、入力イベントO3.2.1の交わりに、カレント
状態遷移の遷移後の状態値s2.1.2と、カレント状
態遷移の遷移番号a2.1.1を書き替えたO2.1.
1を配する。
【0111】判断2436で、階層における2個の遷移
の選択の順番の入替えがまだであると判断したら、下位
の遷移の選択の順序を替えて、ステップ2430と、ス
テップ2435を繰り返す。
【0112】判断2420で、カレント状態遷移の複数
遷移同時発生フラグが0であれば、入力イベントは一意
に決定するので、最下層ノードでのデシジョンテーブル
の生成時と同様に、遷移前の状態値と入力イベントの交
わりに、遷移後の状態値と、遷移番号のaをOに替え
た、出力イベントを配する。(ステップ2440、24
45) 判断2450で、まだデシジョンテーブルに記入されて
いない状態遷移があると判断されたら、ステップ245
5でカレント状態遷移を1個進めて、判断2420〜ス
テップ2445を、全ての状態遷移に関して行う。
【0113】この例のSM2.1上の全ての状態遷移に
関する、上述の処理の結果が、図25のデシジョンテー
ブルの例である。
【0114】このことを、レイヤ構造上の全ての状態機
械に関して繰り返して、状態機械ごとのデシジョンテー
ブルを生成する。
【0115】次にステップ136で、ステップ135で
生成した状態機械ごとのデシジョンテーブルを、イベン
トを伝搬させることにより、状態遷移を実行する。
【0116】システム状態がある初期状態を有するとき
に、任意のイベントを発火させると、そのイベントが初
めて発火するレイヤで、状態を遷移させ、出力イベント
を得る。出力イベントは、次の上位レイヤに対する入力
イベントになり、そのレイヤで、また状態を遷移させ、
出力イベントを得る。この処理を、最上位まで繰り返す
ことにより、状態遷移を実行する。
【0117】ユーザは、ステップ140で生成したデシ
ジョンテーブルを参考にして、システムの状態遷移が所
望のものになっているかを確認できる。また、システム
状態遷移の変更を要求することが出来る。変更要求があ
る場合はステップ140で変更要求を入力し、ない場合
は処理終了する。
【0118】判断137で変更要求がなければ、処理を
終了する。判断137で変更要求があれば、ステップ1
40に進む。
【0119】ステップ140で変更要求が入力される
と、変更の種類に応じて、再び処理すべき位置に戻る。
【0120】判断141で、レイヤ構造の変更であれ
ば、ステップ101に戻って、レイヤ構造の入力から処
理を繰り返す。
【0121】判断142で、マッピングの変更であれ
ば、ステップ120に戻って、再び状態マッピングの定
義から処理を繰り返す。
【0122】判断143で、状態遷移に関する変更であ
れば、ステップ145でその変更により影響を受ける範
囲を検出し、ステップ105に戻る。このとき、状態遷
移の変更とは、ある状態機械に関する、状態値、イベン
ト、および遷移の追加、あるいは削除の要求である。
【0123】影響範囲の検出処理は、状態遷移に関する
変更が入力されてとき、修正すべき状態値、イベント、
あるいは遷移を検出する処理である。この処理を、図2
6に示す影響範囲の検出処理フローチャートを用いて、
詳細に説明する。
【0124】判断2610で、入力された変更が状態値
の変更であれば、ステップ2615でその状態値が下位
の状態機械のどの状態値の組合せに当たるかを、200
0の形式で格納した状態マッピングテーブルと、150
0の形式で格納したドメイン制約テーブルの合成状態値
番号から求める。
【0125】判断2620で、最下層レイヤに対応する
状態機械の状態値まで検索されたと判断されるまで、ス
テップ2615を繰り返す。
【0126】次にステップ2625で、入力した変更す
べき状態値が、上位の状態機械のどの状態値の構成要素
となるかを、1500のテーブルから求まる合成状態値
番号の情報と、2000の形式で格納した状態マッピン
グテーブルから求める。
【0127】これらの上下の階層をたどる処理を繰返し
て、関係のある状態値を全て漏れなく検出する。
【0128】判断2630で、最上位層レイヤに対応す
る状態機械の状態値まで検索されたと判断されるまで、
ステップ2625を繰り返す。
【0129】判断2640で、入力された変更がイベン
トの変更であれば、ステップ2645で、1000の形
式で格納したイベント格納リストから変更するイベント
を検出し、そのイベントが初めて発火する階層を見つけ
る。
【0130】次にステップ2650で、その階層の状態
機械に関して、1100の形式で格納した状態遷移テー
ブルで、イベントが該当する遷移を検出し、ポインタ1
125、1130を辿って、同一イベントが発火する遷
移を検出する。
【0131】判断2655で、この状態遷移の検出を、
上述のイベントが初めて発火する階層より上位層に位置
する全ての状態機械に関して行ったと判断されるまで、
ステップ2650を繰り返す。
【0132】こうして、同一イベントの発火による全て
の遷移を漏れなく検出することができ、イベント変更に
よる影響範囲が検出できる。
【0133】判断2660で、入力された変更が遷移の
変更の場合には、ステップ2665で、2200の形式
で格納した遷移マッピングテーブルの情報から、遷移が
下位レイヤのマッピングされている遷移を検索する。
【0134】判断2670で、最下層レイヤに対応する
状態機械の遷移まで、検索したと判断されるまで、ステ
ップ2665を繰り返す。
【0135】次にステップ2675で、2200の形式
で格納した遷移マッピングテーブルの情報から、この遷
移が上位レイヤのマッピングされている遷移を検索す
る。
【0136】判断2680で、最上位層レイヤに対応す
る状態機械の遷移まで、検索したと判断されるまで、ス
テップ2675を繰り返す。
【0137】こうして、1個の遷移に関係する、異なる
状態機械における遷移を漏れなく検出することができ
る。
【0138】ステップ2635で、場合に応じて検索し
た、検索結果を出力表示して、処理を終了する。
【0139】なお、判断2610、2640、2660
のいずれにも当てはまらない場合には、ステップ268
5でエラーを返して終了する。
【0140】とくに、ステップ2635の検索結果の出
力表示に際して、図19に示すような状態遷移の表示上
で、あるいは図18に示すような合成状態遷移の表示上
で、あるいは図25に示すようなデシジョンテーブル上
で、表示色を変えたり、反転表示したり、またはブリン
クさせるなど他とは異なる態樣で表示することが、操作
性の上で望ましい。このために、状態遷移テーブル11
10には、変更の直前に記憶していた状態遷移をも保存
するようにしている。その結果、上述のような表示が可
能となる。しかし表示の方式は限定せず、変更の影響範
囲をリスト形式で出力表示してもよい。
【0141】上述した方法により、変更の影響範囲を検
出したら、変更前の状態遷移を参考にしながら、ステッ
プ105からの処理を繰返し、格納しているデータを更
新する。
【0142】最終的には、変更要求がなくなるまで処理
を繰返し、ユーザの所望するシステム状態遷移を実行す
る。
【0143】さらに、上述した方法により、支援した状
態遷移の実行が、設計者の所望したシステム状態遷移を
本当にプログラムで実現していることを確認するため
の、プログラムチェックリスト2800を生成する。
【0144】図28に示す例は、図25のデシジョンテ
ーブルで示した状態遷移を確認するためのチェックリス
トの例である。この例をもとに、チェックリストの生成
の手順を、図27のプログラムチェックリスト(PC
L)の生成処理フローチャート図を用いて、詳細に説明
する。
【0145】まずステップ2701で、チェックの対象
となる状態機械に関する状態遷移テーブル1100か
ら、カレント状態遷移を決める。
【0146】次にステップ2705で、上記決定したカ
レント 状態遷移の遷移前の状態値を、設定する状態の欄280
1に、発火イベントを、入力するイベントの欄2810
に、遷移後の状態値を、出力されるべき状態の欄281
5にそれぞれ配する。
【0147】次にステップ2710で、カレント状態遷
移の遷移前の状態値、遷移後の状態値が、どの合成状態
にマッピングされているかを、2000の状態マッピン
グテーブルから検出する。
【0148】次にステップ2715で、検出した合成状
態が、1階層下位のどの状態値の組合せに当たるかを、
1500のドメイン制約テーブルの合成状態値番号から
求める。
【0149】判断2720で、検索した状態値の組合せ
が、最下層の状態機械における状態値でなければ、ステ
ップ2725で、最下層の状態値の組合せが検索される
まで、ステップ2710、2715と同じ処理を繰り返
して、最下層の状態値の組合せを検索する。検索され
た、最下層の状態機械における状態値の組合せは、それ
ぞれPCL上の対応する、最下層の状態値名の欄280
5、2820に書き込む。
【0150】次に判断2730で、1100の全ての状
態遷移に関して検索処理を終了したと判断されるまで、
ステップ2735で、カレント状態遷移を1個進めて、
処理2705に戻って、検索処理を繰り返す。
【0151】さらに、上述のようにして生成したプログ
ラムチェックリストに基づいて、テストを行い、テスト
の完了を入力すると、そのテストの進捗状況を管理し、
もしも抜けがあれば、テストを指示するようなテストの
進捗管理を行う。
【0152】以上、本実施例によれば、設計者であるユ
ーザが、複数の状態機械がインタラクションを取りなが
らも独自の動作仕様を持つような、システム状態遷移の
全貌を把握しづらいシステムでも、異なる状態機械の関
係を局所的に定義するだけで、全てのシステム状態遷移
を生成することができる。
【0153】このことは、複数の状態機械を、それを実
現するソフトウェア開発におけるレイヤ構造に合わせて
関係付け、状態機械ごとに動作仕様を定義し、それをマ
ッピングによりつなぐことで、システム状態の動作仕様
を生成し、明らかにすることができる。
【0154】また、状態機械ごとの動作仕様を検証し、
それをドキュメントとして出力し、レビューに用いるこ
とも出来る。さらに、検討した仕様に基づいて、状態遷
移を実行することも出来る。
【0155】その上、動作仕様の検討時、状態遷移の実
行時に、変更要求があったとき、影響が及ぶ全ての状態
遷移を漏れなく出力表示することができる。このよう
に、ソフトウェアを設計する際に、設計者の考え漏れを
防ぐという効果がある。また、入力や表示に際して、高
い操作性が得られる。
【0156】また、状態遷移の実行の際には、動作仕様
を従来から利用されているデシジョンテーブルの形式で
出力するため、デシジョンテーブルから、プログラムの
ソースを生成する既成のツールを利用することも可能で
ある。
【0157】さらに、プログラムチェックリストを生成
し、テストの進捗管理まで行うため、ソフトウェア開発
の全工程において効果をあげることができる。
【0158】
【発明の効果】本発明によれば、システム状態を定義す
る複数の状態機械の関係と、それぞれの動作仕様を明ら
かにして、正しく動作する制御ソフトウェア開発の全工
程を支援する方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るシステム状態遷移の実
行支援方法の手順を示す処理フローチャート。
【図2】本実施例の方法を実現するためのブロック図。
【図3】レイヤ構造を表すイメージの説明図。
【図4】レイヤ構造テーブルの例を示す説明図。
【図5】1個の状態機械の取りうる状態値の定義のツリ
ー形式の表現の説明図。
【図6】状態値名を定義する説明図。
【図7】状態値格納テーブルの例を示すブロック図。
【図8】状態値格納テーブルの具体例を示すブロック
図。
【図9】SM3.1の状態遷移を定義するイメージの例
の説明図。
【図10】イベント格納テーブルの例を示すの説明図。
【図11】状態遷移テーブルの例を示す説明図。
【図12】状態遷移テーブルの具体的な格納例を示す説
明図。
【図13】SM3.2の状態遷移を定義するイメージの
説明図。
【図14】ドメイン制約を定義するイメージの説明図。
【図15】ドメイン制約を格納するドメイン制約テーブ
ルの例を示す説明図。
【図16】動作仕様の合成処理の手順を表すフローチャ
ート。
【図17】合成状態遷移テーブルの例を示す説明図。
【図18】合成状態遷移を表示するイメージの説明図。
【図19】SM2.1の状態遷移を定義するイメージの
説明図。
【図20】状態マッピングテーブルの例を示す説明図。
【図21】マッピングの過不足検出処理の手順を表すフ
ローチャート。
【図22】遷移マッピングテーブルの例を示す説明図。
【図23】未マッピング遷移を表示する説明図。
【図24】デシジョンテーブル生成処理の手順を表すフ
ローチャート。
【図25】デシジョンテーブルの例を示す説明図。
【図26】変更要求の影響範囲の検出処理の手順を表す
フローチャート。
【図27】プログラムチェックリストの生成処理の手順
を表すフローチャート。
【図28】プログラムチェックリストの例を示す説明
図。
【符号の説明】
201…計算機、202、205…入力装置、203…
記憶装置、204…出力装置。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】複数個の状態機械を合成して得られる組合
    せ状態を内部状態として有するシステムの状態遷移を制
    御する方法において、 システム状態を形成する複数の要素状態機械の関係をレ
    イヤ構造に関連付けて入力し、格納し、個々の状態機械
    について、前記状態遷移を入力して、格納し、レイヤ構
    造上の任意のノードに対応する状態機械に関して、ノー
    ドの子ノードに対応する複数の状態機械の状態遷移を組
    み合わせ、状態遷移を合成し、前記状態機械に関して、
    前記入力した状態遷移を、前記合成した状態遷移にマッ
    ピングし、前記マッピングをマッピングルールとして格
    納し、出力表示し、任意のイベントに対し、前記イベン
    トにより状態遷移が発生する状態機械を探し、前記状態
    機械の状態を変化させ、格納したマッピングルールを用
    いて、前記状態機械の状態を含んで合成された、上位ノ
    ードに対応する全ての状態機械の状態遷移を実行するこ
    とを特徴とするシステム状態遷移のプログラミング方
    法。
  2. 【請求項2】請求項1に記載の前記各々の状態機械の状
    態遷移を入力し、マッピングを定義して格納し、任意の
    イベントに対し全ての状態機械の状態遷移を実行する際
    に、 前記レイヤ構造上の各ノードに対応する状態機械ごと
    に、取りうる全ての状態を横軸に配し、発生する全ての
    イベントを縦軸に配し、縦横軸の交わりには横軸の状態
    においてイベントが発生した後の状態を配したデシジョ
    ンテーブルを生成し、出力するとともに、 任意のイベントが発生すると、前記イベントが発生した
    状態機械を探し、前記状態機械に対応する上で状態を変
    化させ、前記格納したイベントのマッピングを用いて、
    各レイヤの前記デシジョンテーブル間でイベントを伝搬
    させることにより、状態遷移を実行する、システム状態
    遷移のプログラミング方法。
  3. 【請求項3】請求項1または2において、前記レイヤ構
    造上の任意のノードに対応する状態機械の状態遷移を、
    前記ノードの子ノードに対応する複数の状態機械の状態
    遷移を合成した状態遷移にマッピングするステップにお
    いて、 前記レイヤ構造上の任意のノードに対応する状態機械
    で、マッピングが未定義である状態遷移を漏れなく検索
    し、 前記合成した状態遷移で、マッピングされなかった状態
    遷移を漏れなく検索し、 前記検索した状態遷移を表示し、再定義を要求する、入
    力支援方法。
  4. 【請求項4】請求項1または2に記載の前記入力し格納
    した状態機械の状態遷移に関して、レイヤ構造の定義の
    変更、マッピングの定義の変更、あるいは、ある状態機
    械の状態遷移に関わる変更要求を入力し、変更要求がレ
    イヤ構造の定義の変更であれば、前記レイヤ構造の定義
    を入力し、変更要求がマッピングの定義の変更であれ
    ば、前記マッピングの定義を入力し、変更要求が状態遷
    移に関わる変更であれば、前記変更要求に影響されて修
    正すべき状態やイベント、あるいはそれらの組合せを、
    前記状態機械ごとの状態遷移を格納した内容をたどり、
    検索し、その変更要求された状態機械とは異なる状態機
    械の状態遷移に関して、前記格納した状態機械に関する
    状態と、イベントのマッピングに基づいて、前記変更要
    求に影響されて修正すべき状態、イベント、それらの組
    合せを検索し、前記検索した複数の状態機械における修
    正すべき状態、イベント、それらの組合せを出力表示
    し、前記各状態機械の状態遷移を定義し、変更に応じ
    て、該当するステップに戻り、前記状態遷移の実行を再
    度繰り返すシステム状態遷移のプログラミング方法。
  5. 【請求項5】請求項1に記載の方法により実行したシス
    テム状態遷移に関して、任意に選択したレイヤの状態遷
    移のテストの支援方法において、 テストを施すために、前記選択したレイヤの状態機械に
    おける状態遷移前後の状態値と遷移を発生させるイベン
    トの組合せを、前記状態遷移を格納した内容から検索
    し、 前記検索した状態値と対応する、下位レイヤに位置する
    状態機械の状態値の組合せを検索することを繰り返し
    て、最下層レイヤに位置する状態機械の取りうる状態値
    の組合せを検索し、前記検索した、状態値とイベントの
    組合せをリスト形式で表示するステップを備えたシステ
    ム状態遷移仕様のテスト支援方法。
  6. 【請求項6】組込型制御ソフトウェアの開発時に、請求
    項1あるいは4に記載のプログラミング方法を実現する
    手段を有し、請求項3に記載の入力支援方法、請求項5
    に記載のテスト支援方法のいずれか一方、あるいは両方
    を実現する手段を有するシステムを、ソフトウェア開発
    支援ツールとして用いるソフトウェア開発方法。
  7. 【請求項7】複数個の状態機械を合成して得られる組合
    せ状態を内部状態として有するシステムのシステム状態
    遷移を制御する装置において、 システム状態を形成する複数の要素状態機械の関係をレ
    イヤ構造に関連付けて入力し、格納する手段と、個々の
    状態機械について、前記状態遷移を入力し、格納する手
    段と、レイヤ構造上の任意のノードに対応する状態機械
    に関して、前記ノードの子ノードに対応する複数の状態
    機械の状態遷移を組み合わせ、状態遷移を合成する手段
    と、前記状態機械に関して、前記入力した状態遷移を、
    前記合成した状態遷移にマッピングする手段と、前記マ
    ッピングをマッピングルールとして格納し、出力表示す
    る手段と、任意のイベントに対し、そのイベントにより
    状態遷移が発生する状態機械を探し、前記状態機械の状
    態を変化させ、前記格納したマッピングルールを用い
    て、前記状態機械の状態を含んで合成された、上位ノー
    ドに対応する全ての状態機械の状態遷移を実行する手段
    とを備えたことを特徴とするシステム状態遷移のプログ
    ラミング装置。
JP5276482A 1993-11-05 1993-11-05 システム状態遷移のプログラミング方法およびその装置 Pending JPH07129375A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5276482A JPH07129375A (ja) 1993-11-05 1993-11-05 システム状態遷移のプログラミング方法およびその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5276482A JPH07129375A (ja) 1993-11-05 1993-11-05 システム状態遷移のプログラミング方法およびその装置

Publications (1)

Publication Number Publication Date
JPH07129375A true JPH07129375A (ja) 1995-05-19

Family

ID=17570073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5276482A Pending JPH07129375A (ja) 1993-11-05 1993-11-05 システム状態遷移のプログラミング方法およびその装置

Country Status (1)

Country Link
JP (1) JPH07129375A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006109558A1 (ja) * 2005-04-06 2006-10-19 Fukuoka Industry, Science & Technology Foundation 検証支援装置、検証支援方法、プログラム及び記録媒体
US9311730B2 (en) 2013-03-29 2016-04-12 International Business Machines Corporation Aggregating graph structures
CN111290783A (zh) * 2020-03-07 2020-06-16 上海交通大学 基于SysML模型的级联失效致因图形化系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006109558A1 (ja) * 2005-04-06 2006-10-19 Fukuoka Industry, Science & Technology Foundation 検証支援装置、検証支援方法、プログラム及び記録媒体
US9311730B2 (en) 2013-03-29 2016-04-12 International Business Machines Corporation Aggregating graph structures
US9563974B2 (en) 2013-03-29 2017-02-07 International Business Machines Corporation Aggregating graph structures
CN111290783A (zh) * 2020-03-07 2020-06-16 上海交通大学 基于SysML模型的级联失效致因图形化系统
CN111290783B (zh) * 2020-03-07 2023-04-28 上海交通大学 基于SysML模型的级联失效致因图形化系统

Similar Documents

Publication Publication Date Title
US7644370B2 (en) Method of componentisation of a graphically defined formula
US7587302B2 (en) Graphic interactive method to reorder sequential data values on graphic objects
US7290182B2 (en) Software tool for monitoring faults in an automation device
US9600792B2 (en) Method and apparatus for generating an engineering workflow
US5469539A (en) Method for abstracting/detailing structuring elements of system specification information
US8056040B2 (en) Method and system for visual implementation of layout structures for an integrated circuit
US8140465B2 (en) Apparatus and method for monitoring and controlling a device under test
JPH07129375A (ja) システム状態遷移のプログラミング方法およびその装置
JP4139249B2 (ja) Cadデータ同一性検証装置、cadデータ同一性検証方法、及びcadデータ同一性検証プログラム
JP4629183B2 (ja) 要求仕様記述支援装置およびその方法、記録媒体
JP2007114881A (ja) 回路図作成装置、回路図作成エディタプログラム及び回路図作成方法
JP2002288245A (ja) データ演算装置およびそれを用いる電子制御機器の調整方法
JPH1078890A (ja) レビューチェック項目管理装置及びレビューチェック項目管理方法
US20080281549A1 (en) Test Apparatus for Control Unit, Pattern Signal Creating Apparatus, and Test Program Generating Apparatus
Li et al. Composite feature and variational design concepts in a feature-based design system
JPH06161759A (ja) システム状態遷移ルールの検証支援方法および装置
JPS60237539A (ja) ル−ル構造解析システム
JPH087685B2 (ja) ル−ル動作モニタシステム
JPH06141029A (ja) 通信網障害表示方式
JP3335213B2 (ja) 情報を図的に表示する情報機器、情報表示方法
JP2636472B2 (ja) 階層データ配置装置
JP2941278B2 (ja) 図面管理装置
JPS5858673A (ja) 階層構造図作成支援方法
JP3722854B2 (ja) データ編集装置
JPH10232886A (ja) 回路設計支援システム