JPH0778076A - プログラム自動生成装置 - Google Patents
プログラム自動生成装置Info
- Publication number
- JPH0778076A JPH0778076A JP5223511A JP22351193A JPH0778076A JP H0778076 A JPH0778076 A JP H0778076A JP 5223511 A JP5223511 A JP 5223511A JP 22351193 A JP22351193 A JP 22351193A JP H0778076 A JPH0778076 A JP H0778076A
- Authority
- JP
- Japan
- Prior art keywords
- state
- delay
- description
- program
- transition
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】 仕様記述を容易化でき、生成されるプログラ
ムの信頼性の向上に貢献できるような、優れたプログラ
ム自動生成装置を提供する。 【構成】 遅延記述付き状態遷移図記述部12によっ
て、遷移遅延およびアクション遅延という2種類の遅延
記述ができるように拡張された遅延記述付き状態遷移図
を用いてソフトウェアの仕様を記述する。記述した遅延
記述付き状態遷移図から、プログラム生成部14によっ
てプログラムを自動的に生成する。具体的には、遷移遅
延およびアクション遅延とともに、待ち状態21、カウ
ント実行状態22、および休止状態23という3つのタ
イマ状態を使用し、これらの状態間の遷移24〜27を
用いてプログラムを生成する。
ムの信頼性の向上に貢献できるような、優れたプログラ
ム自動生成装置を提供する。 【構成】 遅延記述付き状態遷移図記述部12によっ
て、遷移遅延およびアクション遅延という2種類の遅延
記述ができるように拡張された遅延記述付き状態遷移図
を用いてソフトウェアの仕様を記述する。記述した遅延
記述付き状態遷移図から、プログラム生成部14によっ
てプログラムを自動的に生成する。具体的には、遷移遅
延およびアクション遅延とともに、待ち状態21、カウ
ント実行状態22、および休止状態23という3つのタ
イマ状態を使用し、これらの状態間の遷移24〜27を
用いてプログラムを生成する。
Description
【0001】
【産業上の利用分野】本発明は、ソフトウェアの仕様を
状態遷移図をベースに記述し、記述した状態遷移図から
プログラムを自動的に生成する、プログラム自動生成装
置に係り、特に、遅延の制御を多く必要とする制御系シ
ステムのソフトウェア開発に使用するプログラム自動生
成装置に関する。
状態遷移図をベースに記述し、記述した状態遷移図から
プログラムを自動的に生成する、プログラム自動生成装
置に係り、特に、遅延の制御を多く必要とする制御系シ
ステムのソフトウェア開発に使用するプログラム自動生
成装置に関する。
【0002】
【従来の技術】近年の情報処理技術の応用分野の著しい
拡大に伴い、多種多様なソフトウェアの需要が急増して
いる。このようなソフトウェア需要の急増に応じて、ソ
フトウェアを効率良く設計するための各種の技術が開発
されている。例えば、制御系システムのソフトウェア開
発においては、ソフトウェアの仕様を、複数の状態と、
その状態間の遷移からなる状態遷移図をベースとして記
述し、記述された状態遷移図からプログラムを自動的に
生成する方法が開発されている。
拡大に伴い、多種多様なソフトウェアの需要が急増して
いる。このようなソフトウェア需要の急増に応じて、ソ
フトウェアを効率良く設計するための各種の技術が開発
されている。例えば、制御系システムのソフトウェア開
発においては、ソフトウェアの仕様を、複数の状態と、
その状態間の遷移からなる状態遷移図をベースとして記
述し、記述された状態遷移図からプログラムを自動的に
生成する方法が開発されている。
【0003】図16は、一般的な状態遷移図の記述例を
示している。この図16に示すように、状態遷移図は、
複数の状態、状態間の遷移、イベント、およびアクショ
ンという、4つの要素を含んでいる。このうち、イベン
トは、遷移記述の遷移元の状態においてシステム内に生
起する事象であり、アクションは、イベント生起後に実
行される行為である。そして、これらの要素を含む状態
遷移図を図表表記する場合には、状態は丸、遷移は矢印
でそれぞれ示す。また、イベントおよびアクションにつ
いては、遷移上に(遷移に付随して)記入したスラッシ
ュ(/)の左側にイベントを、スラッシュの右側にアク
ションを、それぞれ文字列として記述する。例えば、図
16において、文字列「SN1」および「SN2」をそ
れぞれ含む丸は2つの状態を表し、「SN1」から「S
N2」に向かう矢印は遷移を表し、スラッシュの左側の
「en1」はイベントを表し、スラッシュの右側の「a
n1」はアクションを表している。
示している。この図16に示すように、状態遷移図は、
複数の状態、状態間の遷移、イベント、およびアクショ
ンという、4つの要素を含んでいる。このうち、イベン
トは、遷移記述の遷移元の状態においてシステム内に生
起する事象であり、アクションは、イベント生起後に実
行される行為である。そして、これらの要素を含む状態
遷移図を図表表記する場合には、状態は丸、遷移は矢印
でそれぞれ示す。また、イベントおよびアクションにつ
いては、遷移上に(遷移に付随して)記入したスラッシ
ュ(/)の左側にイベントを、スラッシュの右側にアク
ションを、それぞれ文字列として記述する。例えば、図
16において、文字列「SN1」および「SN2」をそ
れぞれ含む丸は2つの状態を表し、「SN1」から「S
N2」に向かう矢印は遷移を表し、スラッシュの左側の
「en1」はイベントを表し、スラッシュの右側の「a
n1」はアクションを表している。
【0004】ところで、特に、遅延の制御を必要とする
制御系システムのソフトウェアにおいては、状態遷移図
をベースにしてソフトウェアの仕様を記述する場合に、
遅延の制御仕様を何等かの形で記述する必要がある。従
来、このような遅延の制御仕様を記述する場合には、タ
イマセットとタイムアウトチェックを、状態遷移図のア
クションおよびイベントとしてそれぞれ記述している。
制御系システムのソフトウェアにおいては、状態遷移図
をベースにしてソフトウェアの仕様を記述する場合に、
遅延の制御仕様を何等かの形で記述する必要がある。従
来、このような遅延の制御仕様を記述する場合には、タ
イマセットとタイムアウトチェックを、状態遷移図のア
クションおよびイベントとしてそれぞれ記述している。
【0005】図17は、このような遅延の制御仕様の記
述が必要な状態遷移図の記述例として、特に、1つの状
態「状態A」から別の状態「状態B」に遷移する際に、
遷移元の状態「状態A」において生起する3つのイベン
ト「e1」〜「e3」が存在し、そのうちの2つのイベ
ント「e1」、「e2」の生起に対して、2つの遅延時
間T1,T2による遷移の遅延が必要な場合の記述例を
示している。なお、図17において、アクションの記述
は省略している。
述が必要な状態遷移図の記述例として、特に、1つの状
態「状態A」から別の状態「状態B」に遷移する際に、
遷移元の状態「状態A」において生起する3つのイベン
ト「e1」〜「e3」が存在し、そのうちの2つのイベ
ント「e1」、「e2」の生起に対して、2つの遅延時
間T1,T2による遷移の遅延が必要な場合の記述例を
示している。なお、図17において、アクションの記述
は省略している。
【0006】この図17の状態「状態A」から状態「状
態B」への状態遷移は、ほぼ次のように解釈することが
できる。すなわち、「状態A」において、遅延に関連す
るイベント「e1」、「e2」が生起した場合には、生
起した時点で、それぞれのタイマの初期化(タイマセッ
ト)のアクション(図示していない)を実行して、「状
態1」および「状態2」にそれぞれ遷移する。また、
「状態1」において、さらにイベント「e2」が生起し
た場合、および、「状態2」において、さらにイベント
「e1」が生起した場合には、「状態12」に遷移す
る。そして、「状態12」において、イベント「!e
1」、「!e2」(!は否定を意味する)が生起した場
合には、生起した時点で、それぞれのタイマの初期化
(タイマセット)のアクションを実行して、「状態1」
または「状態2」に遷移する。
態B」への状態遷移は、ほぼ次のように解釈することが
できる。すなわち、「状態A」において、遅延に関連す
るイベント「e1」、「e2」が生起した場合には、生
起した時点で、それぞれのタイマの初期化(タイマセッ
ト)のアクション(図示していない)を実行して、「状
態1」および「状態2」にそれぞれ遷移する。また、
「状態1」において、さらにイベント「e2」が生起し
た場合、および、「状態2」において、さらにイベント
「e1」が生起した場合には、「状態12」に遷移す
る。そして、「状態12」において、イベント「!e
1」、「!e2」(!は否定を意味する)が生起した場
合には、生起した時点で、それぞれのタイマの初期化
(タイマセット)のアクションを実行して、「状態1」
または「状態2」に遷移する。
【0007】さらに、「状態1」において、イベント
「timeout(T1)」は、T1側のタイマを初期
化してからT1の時間が経過した時点で生起し、この生
起後、「状態B」に遷移する。同様に、「状態2」にお
いて、イベント「timeout(T2)」は、T2側
のタイマを初期化してからT2の時間が経過した時点で
生起し、この生起後、「状態B」に遷移する。また、
「状態12」において、イベント「timeout(T
12)」は、T1側とT2側のタイマのうち、残り時間
の少ない方の時間が経過したときに生起し、この生起
後、「状態B」に遷移する。
「timeout(T1)」は、T1側のタイマを初期
化してからT1の時間が経過した時点で生起し、この生
起後、「状態B」に遷移する。同様に、「状態2」にお
いて、イベント「timeout(T2)」は、T2側
のタイマを初期化してからT2の時間が経過した時点で
生起し、この生起後、「状態B」に遷移する。また、
「状態12」において、イベント「timeout(T
12)」は、T1側とT2側のタイマのうち、残り時間
の少ない方の時間が経過したときに生起し、この生起
後、「状態B」に遷移する。
【0008】一方、「状態A」において、遅延に関連し
ないイベント「e3」が生起した場合には、そのまま
「状態B」に遷移する。同様に、「状態1」、「状態
2」、あるいは「状態12」において、イベント「e
3」が生起した場合には、そのまま「状態B」に遷移す
る。
ないイベント「e3」が生起した場合には、そのまま
「状態B」に遷移する。同様に、「状態1」、「状態
2」、あるいは「状態12」において、イベント「e
3」が生起した場合には、そのまま「状態B」に遷移す
る。
【0009】
【発明が解決しようとする課題】ところで、以上のよう
な従来のプログラムの自動生成方法には、次のような欠
点がある。すなわち、制御システムの複雑化に伴い、状
態遷移図そのものが複雑化するため、特に、遅延の制御
仕様の記述が必要な場合には、タイマセットやタイムア
ウトチェックを大量にしかも矛盾なく行うことが困難と
なってきている。特に、図17に示すように、同一状態
から複数の遅延遷移がある場合には、これらの遅延遷移
を状態遷移図で記述しようとすると、状態、イベント、
および遷移の数が増大し、かなり複雑な状態遷移図にな
り、記述ミスなどのエラーを生じ易くなるという問題が
ある。
な従来のプログラムの自動生成方法には、次のような欠
点がある。すなわち、制御システムの複雑化に伴い、状
態遷移図そのものが複雑化するため、特に、遅延の制御
仕様の記述が必要な場合には、タイマセットやタイムア
ウトチェックを大量にしかも矛盾なく行うことが困難と
なってきている。特に、図17に示すように、同一状態
から複数の遅延遷移がある場合には、これらの遅延遷移
を状態遷移図で記述しようとすると、状態、イベント、
および遷移の数が増大し、かなり複雑な状態遷移図にな
り、記述ミスなどのエラーを生じ易くなるという問題が
ある。
【0010】本発明は、以上のような従来技術の問題点
を解決するために提案されたものであり、その目的は、
遷移やアクションの遅延記述ができるように状態遷移図
を拡張し、この状態遷移図によりソフトウェアの仕様を
記述できるようにすることにより、仕様記述を容易化で
き、生成されるプログラムの信頼性の向上に貢献できる
ような、優れたプログラム自動生成装置を提供すること
である。
を解決するために提案されたものであり、その目的は、
遷移やアクションの遅延記述ができるように状態遷移図
を拡張し、この状態遷移図によりソフトウェアの仕様を
記述できるようにすることにより、仕様記述を容易化で
き、生成されるプログラムの信頼性の向上に貢献できる
ような、優れたプログラム自動生成装置を提供すること
である。
【0011】
【課題を解決するための手段】本発明によるプログラム
自動生成装置は、複数の状態、状態間の遷移、遷移元の
状態において生起するイベント、およびイベント生起後
に実行されるアクションという4つの要素を含む状態遷
移図をベースとしてソフトウェアの仕様を記述し、記述
された状態遷移図からプログラムを自動的に生成する、
プログラム自動生成装置において、仕様記述手段と、プ
ログラム自動生成手段を有することを特徴としている。
自動生成装置は、複数の状態、状態間の遷移、遷移元の
状態において生起するイベント、およびイベント生起後
に実行されるアクションという4つの要素を含む状態遷
移図をベースとしてソフトウェアの仕様を記述し、記述
された状態遷移図からプログラムを自動的に生成する、
プログラム自動生成装置において、仕様記述手段と、プ
ログラム自動生成手段を有することを特徴としている。
【0012】このうち、仕様記述手段は、遷移の実行を
遅らせるための遅延時間を遷移に付随して記述する遷移
遅延記述、およびアクションの実行を遅らせるための遅
延時間をアクションに付随して記述するアクション遅延
記述という、2種類の遅延記述ができるように拡張され
た遅延記述付き状態遷移図を用いてソフトウェアの仕様
を記述する。また、プログラム自動生成手段は、遅延記
述付き状態遷移図記述手段によって記述された遅延記述
付き状態遷移図から、プログラムを自動的に生成する。
遅らせるための遅延時間を遷移に付随して記述する遷移
遅延記述、およびアクションの実行を遅らせるための遅
延時間をアクションに付随して記述するアクション遅延
記述という、2種類の遅延記述ができるように拡張され
た遅延記述付き状態遷移図を用いてソフトウェアの仕様
を記述する。また、プログラム自動生成手段は、遅延記
述付き状態遷移図記述手段によって記述された遅延記述
付き状態遷移図から、プログラムを自動的に生成する。
【0013】一方、具体的には、プログラム自動生成手
段は、遷移記述の遷移元の状態においてイベントの生起
を待つ待ち状態、イベント生起後に時間のカウントを開
始して経過時間をカウントするカウント実行状態、およ
び、カウントされた経過時間が記述された遅延時間を経
過した後、経過時間のカウントを休止する休止状態とい
う、3つのタイマ状態を用いてプログラムを生成するよ
うに構成される。
段は、遷移記述の遷移元の状態においてイベントの生起
を待つ待ち状態、イベント生起後に時間のカウントを開
始して経過時間をカウントするカウント実行状態、およ
び、カウントされた経過時間が記述された遅延時間を経
過した後、経過時間のカウントを休止する休止状態とい
う、3つのタイマ状態を用いてプログラムを生成するよ
うに構成される。
【0014】
【作用】以上のような構成を有する本発明のプログラム
自動生成装置の作用は、次の通りである。すなわち、本
発明においては、まず、仕様記述手段により、拡張され
た遅延記述付き状態遷移図を用いて、ソフトウェアの仕
様を記述する。次に、プログラム自動生成手段により、
遅延記述付き状態遷移図からプログラムを自動的に生成
する。
自動生成装置の作用は、次の通りである。すなわち、本
発明においては、まず、仕様記述手段により、拡張され
た遅延記述付き状態遷移図を用いて、ソフトウェアの仕
様を記述する。次に、プログラム自動生成手段により、
遅延記述付き状態遷移図からプログラムを自動的に生成
する。
【0015】そして、このように、遅延記述付き状態遷
移図から、プログラムを自動的に生成する場合には、具
体的には、遷移遅延およびアクション遅延ともに、待ち
状態、カウント実行状態、および休止状態という3つの
タイマ状態を使用する。このうち、遷移遅延の場合に
は、待ち状態からカウント実行状態への遷移、カウント
実行状態から待ち状態への遷移、カウント実行状態から
休止状態への遷移、および休止状態から待ち状態への遷
移という4つの遷移を用いてプログラム生成を行う。ま
た、アクション遅延の場合には、待ち状態からカウント
実行状態への遷移、カウント実行状態から休止状態への
遷移、および休止状態から待ち状態への遷移という3つ
の遷移を用いてプログラム生成を行う。
移図から、プログラムを自動的に生成する場合には、具
体的には、遷移遅延およびアクション遅延ともに、待ち
状態、カウント実行状態、および休止状態という3つの
タイマ状態を使用する。このうち、遷移遅延の場合に
は、待ち状態からカウント実行状態への遷移、カウント
実行状態から待ち状態への遷移、カウント実行状態から
休止状態への遷移、および休止状態から待ち状態への遷
移という4つの遷移を用いてプログラム生成を行う。ま
た、アクション遅延の場合には、待ち状態からカウント
実行状態への遷移、カウント実行状態から休止状態への
遷移、および休止状態から待ち状態への遷移という3つ
の遷移を用いてプログラム生成を行う。
【0016】したがって、本発明においては、遅延の制
御仕様の記述が必要な場合でも、拡張された遅延記述付
き状態遷移図を用いることにより、従来の一般的な状態
遷移図を用いた場合に比べて、ソフトウェアの仕様を簡
潔かつ容易に記述することができる。そして、このよう
に容易に記述した簡潔な遅延記述付き状態遷移図から、
所望のプログラムを自動的に容易に生成することができ
る。特に、待ち状態、カウント実行状態、および休止状
態という3つのタイマ状態を用いてプログラムを生成す
るように構成した場合には、プログラムをより容易に生
成することができる。
御仕様の記述が必要な場合でも、拡張された遅延記述付
き状態遷移図を用いることにより、従来の一般的な状態
遷移図を用いた場合に比べて、ソフトウェアの仕様を簡
潔かつ容易に記述することができる。そして、このよう
に容易に記述した簡潔な遅延記述付き状態遷移図から、
所望のプログラムを自動的に容易に生成することができ
る。特に、待ち状態、カウント実行状態、および休止状
態という3つのタイマ状態を用いてプログラムを生成す
るように構成した場合には、プログラムをより容易に生
成することができる。
【0017】
【実施例】以下には、本発明によるプログラム自動生成
装置の一実施例について、図1〜図15を参照して具体
的に説明する。
装置の一実施例について、図1〜図15を参照して具体
的に説明する。
【0018】(1)実施例の構成 まず、図1は、本発明によるプログラム自動生成装置の
一実施例の構成を示すブロック図である。この図1に示
すように、本実施例のプログラム自動生成装置は、入力
装置11、遅延記述付き状態遷移図記述部12、遅延記
述付き状態遷移図格納部13、プログラム生成部14、
プログラム格納部15、および出力装置16から構成さ
れている。
一実施例の構成を示すブロック図である。この図1に示
すように、本実施例のプログラム自動生成装置は、入力
装置11、遅延記述付き状態遷移図記述部12、遅延記
述付き状態遷移図格納部13、プログラム生成部14、
プログラム格納部15、および出力装置16から構成さ
れている。
【0019】そして、遅延記述付き状態遷移図記述部1
2および遅延記述付き状態遷移図格納部13によって、
仕様記述部(仕様記述手段)17が構成され、プログラ
ム生成部14およびプログラム格納部15によって、プ
ログラム自動生成部(プログラム自動生成手段)18が
構成されている。すなわち、遅延記述付き状態遷移図記
述部12は、遷移の実行を遅らせるための遅延時間を遷
移に付随して記述する遷移遅延記述、およびアクション
の実行を遅らせるための遅延時間をアクションに付随し
て記述するアクション遅延記述という、2種類の遅延記
述ができるように拡張された遅延記述付き状態遷移図を
用いてソフトウェアの仕様を記述する機能部である。そ
して、遅延記述付き状態遷移図格納部13は、記述され
た遅延記述付き状態遷移図を格納する。また、プログラ
ム生成部14は、遅延記述付き状態遷移図格納部13か
ら遅延記述付き状態遷移図を受け取り、この遅延記述付
き状態遷移図から、プログラムを自動的に生成する。そ
して、プログラム格納部15は、生成されたプログラム
を格納する。
2および遅延記述付き状態遷移図格納部13によって、
仕様記述部(仕様記述手段)17が構成され、プログラ
ム生成部14およびプログラム格納部15によって、プ
ログラム自動生成部(プログラム自動生成手段)18が
構成されている。すなわち、遅延記述付き状態遷移図記
述部12は、遷移の実行を遅らせるための遅延時間を遷
移に付随して記述する遷移遅延記述、およびアクション
の実行を遅らせるための遅延時間をアクションに付随し
て記述するアクション遅延記述という、2種類の遅延記
述ができるように拡張された遅延記述付き状態遷移図を
用いてソフトウェアの仕様を記述する機能部である。そ
して、遅延記述付き状態遷移図格納部13は、記述され
た遅延記述付き状態遷移図を格納する。また、プログラ
ム生成部14は、遅延記述付き状態遷移図格納部13か
ら遅延記述付き状態遷移図を受け取り、この遅延記述付
き状態遷移図から、プログラムを自動的に生成する。そ
して、プログラム格納部15は、生成されたプログラム
を格納する。
【0020】なお、このようなプログラム自動生成装置
は、コンピュータ上に実現される。そして、入力装置1
1としては、具体的には、キーボードやマウスなどが使
用され、出力装置16としては、CRTやプリンタなど
が使用される。また、遅延記述付き状態遷移図記述部1
2は、図式エディタとして実現され、プログラム生成部
14はコンパイラなどの公知の技術を使用して実現され
る。さらに、遅延記述付き状態遷移図格納部13やプロ
グラム格納部15は、公知のデータベースシステムなど
を使用して実現される。
は、コンピュータ上に実現される。そして、入力装置1
1としては、具体的には、キーボードやマウスなどが使
用され、出力装置16としては、CRTやプリンタなど
が使用される。また、遅延記述付き状態遷移図記述部1
2は、図式エディタとして実現され、プログラム生成部
14はコンパイラなどの公知の技術を使用して実現され
る。さらに、遅延記述付き状態遷移図格納部13やプロ
グラム格納部15は、公知のデータベースシステムなど
を使用して実現される。
【0021】次に、図2は、プログラム生成部14によ
って、遅延記述付き状態遷移図からプログラムを生成す
る際に用いるタイマの状態遷移図である。使用する状態
は、遷移遅延およびアクション遅延ともに、待ち状態2
1、カウント実行状態22、および休止状態23の各状
態である。このうち、待ち状態21は、遷移記述の遷移
元である状態においてイベントの生起を待つ状態であ
る。また、カウント実行状態22は、イベント生起後に
時間のカウントを開始して経過時間をカウントする状態
である。さらに、休止状態23は、カウントされた経過
時間が記述された遅延時間を経過した後、経過時間のカ
ウントを休止する状態である。
って、遅延記述付き状態遷移図からプログラムを生成す
る際に用いるタイマの状態遷移図である。使用する状態
は、遷移遅延およびアクション遅延ともに、待ち状態2
1、カウント実行状態22、および休止状態23の各状
態である。このうち、待ち状態21は、遷移記述の遷移
元である状態においてイベントの生起を待つ状態であ
る。また、カウント実行状態22は、イベント生起後に
時間のカウントを開始して経過時間をカウントする状態
である。さらに、休止状態23は、カウントされた経過
時間が記述された遅延時間を経過した後、経過時間のカ
ウントを休止する状態である。
【0022】そして、遷移遅延の場合には、図2中にお
ける、待ち状態21からカウント実行状態22への遷移
24、カウント実行状態22から待ち状態21への遷移
25、カウント実行状態22から休止状態23への遷移
26、および休止状態23から待ち状態21への遷移2
7という4つの遷移24〜27を用いてプログラム生成
を行う。また、アクション遅延の場合には、待ち状態2
1からカウント実行状態22への遷移、カウント実行状
態22から休止状態23への遷移、および休止状態23
から待ち状態21への遷移という3つの遷移24,2
6,27を用いてプログラム生成を行う。
ける、待ち状態21からカウント実行状態22への遷移
24、カウント実行状態22から待ち状態21への遷移
25、カウント実行状態22から休止状態23への遷移
26、および休止状態23から待ち状態21への遷移2
7という4つの遷移24〜27を用いてプログラム生成
を行う。また、アクション遅延の場合には、待ち状態2
1からカウント実行状態22への遷移、カウント実行状
態22から休止状態23への遷移、および休止状態23
から待ち状態21への遷移という3つの遷移24,2
6,27を用いてプログラム生成を行う。
【0023】(2)実施例の作用 以上のような構成を有する本実施例のプログラム自動生
成装置においては、遅延記述付き状態遷移図記述部12
によって、拡張された遅延記述付き状態遷移図を用い
て、ソフトウェアの仕様を記述する。続いて、プログラ
ム生成部14により、遅延記述付き状態遷移図からプロ
グラムを自動的に生成する。
成装置においては、遅延記述付き状態遷移図記述部12
によって、拡張された遅延記述付き状態遷移図を用い
て、ソフトウェアの仕様を記述する。続いて、プログラ
ム生成部14により、遅延記述付き状態遷移図からプロ
グラムを自動的に生成する。
【0024】(2−1)基本的な遅延記述付き状態遷移
図の記述 まず、図3は、図1の入力装置11により、遅延記述付
き状態遷移図記述部12を用いて記述した、遷移の遅延
記述付き状態遷移図の記述モデルを示している。この図
3においては、遷移(矢印)の途中を切断する形で記述
されている2本の縦線が、遷移の遅延を示しており、こ
の2本の縦線の間の文字列「Tt」が遅延時間を示して
いる。遷移(矢印)および遷移の遅延記述に付随して記
述してある文字列のうち、スラッシュ(/)の左側がイ
ベント、右側がアクションである。
図の記述 まず、図3は、図1の入力装置11により、遅延記述付
き状態遷移図記述部12を用いて記述した、遷移の遅延
記述付き状態遷移図の記述モデルを示している。この図
3においては、遷移(矢印)の途中を切断する形で記述
されている2本の縦線が、遷移の遅延を示しており、こ
の2本の縦線の間の文字列「Tt」が遅延時間を示して
いる。遷移(矢印)および遷移の遅延記述に付随して記
述してある文字列のうち、スラッシュ(/)の左側がイ
ベント、右側がアクションである。
【0025】そして、このような図3の状態「ST1」
から状態「ST2」への状態遷移は、次のように解釈す
ることができる。すなわち、状態「ST1」において、
イベント「et1」が生起し、遅延時間Ttの間成立し
続けた後、アクション「at1」を実行して状態「ST
2」に遷移する。なお、図4は、図3の遷移遅延記述を
タイムチャートで表現したものである。
から状態「ST2」への状態遷移は、次のように解釈す
ることができる。すなわち、状態「ST1」において、
イベント「et1」が生起し、遅延時間Ttの間成立し
続けた後、アクション「at1」を実行して状態「ST
2」に遷移する。なお、図4は、図3の遷移遅延記述を
タイムチャートで表現したものである。
【0026】次に、図5は、図1の入力装置11によ
り、遅延記述付き状態遷移図記述部12を用いて記述し
た、アクションの遅延記述付き状態遷移図の記述モデル
を示している。この図5においては、遷移(矢印)に付
随して記述してある文字列のうち、スラッシュ(/)の
左側がイベント、右側がアクションで、アクションの右
側の括弧[]が、アクションの遅延を示しており、この
括弧[]の中の文字列「Ta」が遅延時間を示してい
る。
り、遅延記述付き状態遷移図記述部12を用いて記述し
た、アクションの遅延記述付き状態遷移図の記述モデル
を示している。この図5においては、遷移(矢印)に付
随して記述してある文字列のうち、スラッシュ(/)の
左側がイベント、右側がアクションで、アクションの右
側の括弧[]が、アクションの遅延を示しており、この
括弧[]の中の文字列「Ta」が遅延時間を示してい
る。
【0027】そして、このような図5の状態「SA1」
から状態「SA2」への状態遷移は、次のように解釈す
ることができる。すなわち、状態「SA1」において、
イベント「ea1」が生起した時点で、状態「SA2」
に遷移する。そして、イベント「ea1」が生起してか
ら遅延時間Taの経過後、アクション「aa1」を実行
する。なお、図6は、図5のアクション遅延記述をタイ
ムチャートで表現したものである。
から状態「SA2」への状態遷移は、次のように解釈す
ることができる。すなわち、状態「SA1」において、
イベント「ea1」が生起した時点で、状態「SA2」
に遷移する。そして、イベント「ea1」が生起してか
ら遅延時間Taの経過後、アクション「aa1」を実行
する。なお、図6は、図5のアクション遅延記述をタイ
ムチャートで表現したものである。
【0028】さらに、図7は、図1の入力装置11によ
り、遅延記述付き状態遷移図記述部12を用いて記述し
た、遷移の遅延記述付き状態遷移図の応用例を示してい
る。この図7は、まず、状態「初期状態」においてイベ
ント「専用スイッチON」が生起した時点でアクション
「全呼びクリア」および「専用灯ON」を実行し、状態
「専用運転中」に遷移する、という内容を示している。
そして、状態「専用運転中」においてイベント「専用ス
イッチOFF」が生起し、遅延時間「TIND 」の間成立
し続けた後、状態「最終状態」に遷移することを示して
いる。なお、この例は、アクションを実行せずに遷移遅
延を行う場合を示している。
り、遅延記述付き状態遷移図記述部12を用いて記述し
た、遷移の遅延記述付き状態遷移図の応用例を示してい
る。この図7は、まず、状態「初期状態」においてイベ
ント「専用スイッチON」が生起した時点でアクション
「全呼びクリア」および「専用灯ON」を実行し、状態
「専用運転中」に遷移する、という内容を示している。
そして、状態「専用運転中」においてイベント「専用ス
イッチOFF」が生起し、遅延時間「TIND 」の間成立
し続けた後、状態「最終状態」に遷移することを示して
いる。なお、この例は、アクションを実行せずに遷移遅
延を行う場合を示している。
【0029】(2−2)遷移の遅延記述付き状態遷移図
からのプログラムの生成 図8および図9は、図1のプログラム生成部14によっ
て、図3の遷移の遅延記述付き状態遷移図から生成され
るプログラムの処理手順を示すフローチャートである。
このうち、図8は、生成されるプログラムの本体の処理
手続き部であり、図9は、本体の処理手続き部によって
使用されるタイマ処理に関する関数型のサブルーチンで
ある。この本体の処理手続きは、短い時間間隔で周期的
に実行されることを前提としたものである。以下、処理
の流れを追いながら、図2に示すタイマの各状態および
各遷移の具体的な使用法について説明する。
からのプログラムの生成 図8および図9は、図1のプログラム生成部14によっ
て、図3の遷移の遅延記述付き状態遷移図から生成され
るプログラムの処理手順を示すフローチャートである。
このうち、図8は、生成されるプログラムの本体の処理
手続き部であり、図9は、本体の処理手続き部によって
使用されるタイマ処理に関する関数型のサブルーチンで
ある。この本体の処理手続きは、短い時間間隔で周期的
に実行されることを前提としたものである。以下、処理
の流れを追いながら、図2に示すタイマの各状態および
各遷移の具体的な使用法について説明する。
【0030】まず、図8について説明する。この図8に
示すように、プログラムの本体の処理手続き部において
は、図3の「ST0」や「ST1」のような仕様記述に
表れる状態を変数として実現する。すなわち、状態が
「ST0」であり(801)、かつ、イベント「et
0」が生起している場合(802)には、アクション
「at0」を実行して、状態を「ST1」に設定し、タ
イマ状態を「待ち状態」に設定する(803)。なお、
この処理は、図2における「休止状態」から「待ち状
態」の遷移27に対応する。
示すように、プログラムの本体の処理手続き部において
は、図3の「ST0」や「ST1」のような仕様記述に
表れる状態を変数として実現する。すなわち、状態が
「ST0」であり(801)、かつ、イベント「et
0」が生起している場合(802)には、アクション
「at0」を実行して、状態を「ST1」に設定し、タ
イマ状態を「待ち状態」に設定する(803)。なお、
この処理は、図2における「休止状態」から「待ち状
態」の遷移27に対応する。
【0031】そして、状態が「ST1」である場合(8
04)には、図9で定義されるタイマ関数をコールし
(805)、リターン値である経過時間と遅延時間Tt
とを比較し、経過時間≧遅延時間Ttの場合に、タイム
アウトであると判断する(806)。タイムアウトであ
る場合には、アクション「at1」を実行して、状態を
「ST2」に設定し、タイマ状態を「休止状態」に設定
する(807)。なお、この処理は、図2における「カ
ウント実行状態」から「休止状態」の遷移26に対応す
る。
04)には、図9で定義されるタイマ関数をコールし
(805)、リターン値である経過時間と遅延時間Tt
とを比較し、経過時間≧遅延時間Ttの場合に、タイム
アウトであると判断する(806)。タイムアウトであ
る場合には、アクション「at1」を実行して、状態を
「ST2」に設定し、タイマ状態を「休止状態」に設定
する(807)。なお、この処理は、図2における「カ
ウント実行状態」から「休止状態」の遷移26に対応す
る。
【0032】次に、図9について説明する。まず、タイ
マの状態が「待ち状態」であり(901)、かつ、イベ
ント「et1」が生起している場合(902)には、ロ
ーカル変数tに現在時刻をセット(タイマセット)し、
タイマ状態を「カウント実行状態」に設定する(90
3)。なお、この処理は、図2における「待ち状態」か
ら「カウント実行状態」の遷移24に対応する。
マの状態が「待ち状態」であり(901)、かつ、イベ
ント「et1」が生起している場合(902)には、ロ
ーカル変数tに現在時刻をセット(タイマセット)し、
タイマ状態を「カウント実行状態」に設定する(90
3)。なお、この処理は、図2における「待ち状態」か
ら「カウント実行状態」の遷移24に対応する。
【0033】そして、タイマの状態が「カウント実行状
態」である場合(904)には、イベント「et1」が
生起していれば(905)、経過時間(現在時刻からt
を引いた値)をリターン値として返し(906)、イベ
ント「et1」が不生起の場合には、タイマ状態を「待
ち状態」に設定し(907)、0をリターン値として返
す。なお、この処理は、図2における「カウント実行状
態」から「待ち状態」の遷移25に相当する。
態」である場合(904)には、イベント「et1」が
生起していれば(905)、経過時間(現在時刻からt
を引いた値)をリターン値として返し(906)、イベ
ント「et1」が不生起の場合には、タイマ状態を「待
ち状態」に設定し(907)、0をリターン値として返
す。なお、この処理は、図2における「カウント実行状
態」から「待ち状態」の遷移25に相当する。
【0034】(2−3)アクションの遅延記述付き状態
遷移図からのプログラムの生成 図10および図11は、図1のプログラム生成部14に
よって、図4のアクションの遅延記述付き状態遷移図か
ら生成されるプログラムの処理手順を示すフローチャー
トである。このうち、図10は、生成されるプログラム
の本体の処理手続き部であり、図11は、本体の処理手
続き部によって使用されるタイマ処理に関する関数型の
サブルーチンである。この本体の処理手続きは、短い時
間間隔で周期的に実行されることを前提としたものであ
る。以下、処理の流れを追いながら、図2に示すタイマ
の各状態および各遷移の具体的な使用法について説明す
る。
遷移図からのプログラムの生成 図10および図11は、図1のプログラム生成部14に
よって、図4のアクションの遅延記述付き状態遷移図か
ら生成されるプログラムの処理手順を示すフローチャー
トである。このうち、図10は、生成されるプログラム
の本体の処理手続き部であり、図11は、本体の処理手
続き部によって使用されるタイマ処理に関する関数型の
サブルーチンである。この本体の処理手続きは、短い時
間間隔で周期的に実行されることを前提としたものであ
る。以下、処理の流れを追いながら、図2に示すタイマ
の各状態および各遷移の具体的な使用法について説明す
る。
【0035】まず、図10について説明する。この図1
0に示すように、プログラムの本体の処理手続き部にお
いては、図4の「SA1」や「SA2」のような仕様記
述に表れる状態を変数として実現する。すなわち、最初
に、図11で定義されるタイマ関数をコールし(100
1)、リターン値である経過時間と遅延時間Taとを比
較し、経過時間≧遅延時間Taの場合に、タイムアウト
であると判断する(1002)。タイムアウトである場
合には、アクション「aa1」を実行して、タイマ状態
を「休止状態」に設定する(1003)。なお、この処
理は、図2における「カウント実行状態」から「休止状
態」の遷移26に対応する。また、状態遷移図上に、ア
クションの遅延記述が複数個存在する場合には、100
2および1003をペアとした処理はアクションの遅延
記述の個数分、それぞれの遅延記述に対応して定義し、
1002の分岐処理の下に順次展開する。
0に示すように、プログラムの本体の処理手続き部にお
いては、図4の「SA1」や「SA2」のような仕様記
述に表れる状態を変数として実現する。すなわち、最初
に、図11で定義されるタイマ関数をコールし(100
1)、リターン値である経過時間と遅延時間Taとを比
較し、経過時間≧遅延時間Taの場合に、タイムアウト
であると判断する(1002)。タイムアウトである場
合には、アクション「aa1」を実行して、タイマ状態
を「休止状態」に設定する(1003)。なお、この処
理は、図2における「カウント実行状態」から「休止状
態」の遷移26に対応する。また、状態遷移図上に、ア
クションの遅延記述が複数個存在する場合には、100
2および1003をペアとした処理はアクションの遅延
記述の個数分、それぞれの遅延記述に対応して定義し、
1002の分岐処理の下に順次展開する。
【0036】そして、状態が「SA1」であり(100
4)、かつ、イベント「ea1」が生起している場合
(1005)には、状態を「SA2」に設定し、タイマ
状態を「待ち状態」に設定する(1006)。なお、こ
の処理は、図2における「休止状態」から「待ち状態」
の遷移27に対応する。
4)、かつ、イベント「ea1」が生起している場合
(1005)には、状態を「SA2」に設定し、タイマ
状態を「待ち状態」に設定する(1006)。なお、こ
の処理は、図2における「休止状態」から「待ち状態」
の遷移27に対応する。
【0037】次に、図11について説明する。まず、タ
イマの状態が「待ち状態」である場合(1101)に
は、ローカル変数tに現在時刻をセット(タイマセッ
ト)し、タイマ状態を「カウント実行状態」に設定する
(1102)。なお、この処理は、図2における「待ち
状態」から「カウント実行状態」の遷移24に対応す
る。そして、タイマ状態が「カウント実行状態」である
場合(1103)には、経過時間(現在時刻からtを引
いた値)をリターン値として返す(1104)。
イマの状態が「待ち状態」である場合(1101)に
は、ローカル変数tに現在時刻をセット(タイマセッ
ト)し、タイマ状態を「カウント実行状態」に設定する
(1102)。なお、この処理は、図2における「待ち
状態」から「カウント実行状態」の遷移24に対応す
る。そして、タイマ状態が「カウント実行状態」である
場合(1103)には、経過時間(現在時刻からtを引
いた値)をリターン値として返す(1104)。
【0038】(2−4)プログラムのC言語記述例 図12は、図1のプログラム生成部14によって、図3
の遷移の遅延記述付き状態遷移図から生成されるプログ
ラムを、C言語で記述した一例を示す説明図であり、図
8および図9に対応するものである。この図12におい
ては、イベントやアクションは、プログラム関数として
実現するものとしており、イベント名やアクション名の
後に括弧()を付けて示している。例えば、行番号15
0の「et1()」などである。
の遷移の遅延記述付き状態遷移図から生成されるプログ
ラムを、C言語で記述した一例を示す説明図であり、図
8および図9に対応するものである。この図12におい
ては、イベントやアクションは、プログラム関数として
実現するものとしており、イベント名やアクション名の
後に括弧()を付けて示している。例えば、行番号15
0の「et1()」などである。
【0039】この図12において、行番号10〜50
は、図2で示した待ち状態21、カウント実行状態2
2、休止状態23を列挙子とするタイマ状態を表す列挙
型である。行番号80〜310は、イベントが成立し続
けている時間を求めるタイマ関数(図9に対応する処
理)である。行番号340〜580は、状態遷移図から
生成される本体の処理手続き部(図8に対応する処理)
であり、タイマ状態の初期化(待ち状態への設定)およ
びタイムアウトチェックの処理を含む。なお、この生成
方法では、タイマ関数は、遅延記述の個数分の異なる実
体を生成する必要があり、また、本体関数は短い時間間
隔で周期的に実行される必要がある。
は、図2で示した待ち状態21、カウント実行状態2
2、休止状態23を列挙子とするタイマ状態を表す列挙
型である。行番号80〜310は、イベントが成立し続
けている時間を求めるタイマ関数(図9に対応する処
理)である。行番号340〜580は、状態遷移図から
生成される本体の処理手続き部(図8に対応する処理)
であり、タイマ状態の初期化(待ち状態への設定)およ
びタイムアウトチェックの処理を含む。なお、この生成
方法では、タイマ関数は、遅延記述の個数分の異なる実
体を生成する必要があり、また、本体関数は短い時間間
隔で周期的に実行される必要がある。
【0040】図13は、図1のプログラム生成部14に
よって、図4のアクションの遅延記述付き状態遷移図か
ら生成されるプログラムを、C言語で記述した一例を示
す説明図であり、図10および図11に対応するもので
ある。この図13においては、イベントやアクション
は、プログラム関数として実現するものとしており、イ
ベント名やアクション名の後に括弧()を付けて示して
いる。例えば、行番号320の「aa1()」などであ
る。
よって、図4のアクションの遅延記述付き状態遷移図か
ら生成されるプログラムを、C言語で記述した一例を示
す説明図であり、図10および図11に対応するもので
ある。この図13においては、イベントやアクション
は、プログラム関数として実現するものとしており、イ
ベント名やアクション名の後に括弧()を付けて示して
いる。例えば、行番号320の「aa1()」などであ
る。
【0041】この図13において、行番号10〜50
は、図2で示した待ち状態21、カウント実行状態2
2、休止状態23を列挙子とするタイマ状態を表す列挙
型である。行番号80〜260は、経過時間を計数する
ためのタイマ関数(図11に対応する処理)である。行
番号290〜470は、状態遷移図から生成される本体
の処理手続き部(図10に対応する処理)であり、この
うち、行番号310〜340は、タイムアウトチェック
&アクションの呼出し部を含み(アクションの遅延記述
が複数個ある場合は、その個数分この形式で順次展開す
る)、行番号370〜440は、タイマ状態の初期化
(待ち状態への設定)を含む状態遷移図のスケルトン展
開部である。なお、この生成方法では、タイマ関数は、
遅延記述の個数分の異なる実体を生成する必要があり、
また、本体関数は短い時間間隔で周期的に実行される必
要がある。
は、図2で示した待ち状態21、カウント実行状態2
2、休止状態23を列挙子とするタイマ状態を表す列挙
型である。行番号80〜260は、経過時間を計数する
ためのタイマ関数(図11に対応する処理)である。行
番号290〜470は、状態遷移図から生成される本体
の処理手続き部(図10に対応する処理)であり、この
うち、行番号310〜340は、タイムアウトチェック
&アクションの呼出し部を含み(アクションの遅延記述
が複数個ある場合は、その個数分この形式で順次展開す
る)、行番号370〜440は、タイマ状態の初期化
(待ち状態への設定)を含む状態遷移図のスケルトン展
開部である。なお、この生成方法では、タイマ関数は、
遅延記述の個数分の異なる実体を生成する必要があり、
また、本体関数は短い時間間隔で周期的に実行される必
要がある。
【0042】(2−5)遅延時間の実現方法 図3のTtや図5のTaとして示される遅延時間を決定
するための実現方法について説明する。遅延時間を決定
するための主な実現方法としては、「定数」「変数」
「関数」の3通りがある。まず、「定数」として実現す
る場合には、遅延記述付き状態遷移図により仕様を記述
する際、対応する遅延記述に対して固定値を与えること
で実現できる。これは、言い換えれば、仕様記述の時点
で遅延時間を決定する実現方法である。また、「変数」
として実現する場合には、遅延記述付き状態遷移図によ
り遅延記述する際に、所望の変数を対応付けることによ
り実現できる。この場合、変数への遅延時間の書き込み
は、イベントやアクションに対応するプログラム関数に
より実現でき、状態遷移の遷移系列により遅延時間を動
的に決定することができる。一方、「関数」として実現
する場合には、遅延記述付き状態遷移図により遅延記述
する際所望の関数(遅延時間を計算するための関数)を
対応付けることにより実現できる。この場合、遅延時間
は遅延記述を評価する時点で決定される(動的に決ま
る)。特に、「変数」および「関数」として実現する場
合には、同じ遅延記述であっても遅延時間をシステムの
振る舞い方に応じて異なるように実現することができ
る。
するための実現方法について説明する。遅延時間を決定
するための主な実現方法としては、「定数」「変数」
「関数」の3通りがある。まず、「定数」として実現す
る場合には、遅延記述付き状態遷移図により仕様を記述
する際、対応する遅延記述に対して固定値を与えること
で実現できる。これは、言い換えれば、仕様記述の時点
で遅延時間を決定する実現方法である。また、「変数」
として実現する場合には、遅延記述付き状態遷移図によ
り遅延記述する際に、所望の変数を対応付けることによ
り実現できる。この場合、変数への遅延時間の書き込み
は、イベントやアクションに対応するプログラム関数に
より実現でき、状態遷移の遷移系列により遅延時間を動
的に決定することができる。一方、「関数」として実現
する場合には、遅延記述付き状態遷移図により遅延記述
する際所望の関数(遅延時間を計算するための関数)を
対応付けることにより実現できる。この場合、遅延時間
は遅延記述を評価する時点で決定される(動的に決ま
る)。特に、「変数」および「関数」として実現する場
合には、同じ遅延記述であっても遅延時間をシステムの
振る舞い方に応じて異なるように実現することができ
る。
【0043】(2−6)遷移の遅延記述を2個含む遅延
記述付き状態遷移図の記述 図14は、図1の入力装置11により、遅延記述付き状
態遷移図記述部12を用いて記述した、遷移の遅延記述
を2個含む遅延記述付き状態遷移図の記述例を示してい
る。この図14においては、本実施例と従来技術との比
較を行うために、図17の従来例と等価な仕様を示して
いる。すなわち、1つの状態「状態A」から別の状態
「B」に遷移する際に、遷移元の状態「状態A」におい
て生起する3つのイベント「e1」〜「e3」が存在
し、そのうちの2つのイベント「e1」、「e2」の生
起に対して、2つの遅延時間T1,T2による遷移の遅
延が必要な場合の記述例を示している。また、図17の
従来例と同様に、アクションの記述は省略している。
記述付き状態遷移図の記述 図14は、図1の入力装置11により、遅延記述付き状
態遷移図記述部12を用いて記述した、遷移の遅延記述
を2個含む遅延記述付き状態遷移図の記述例を示してい
る。この図14においては、本実施例と従来技術との比
較を行うために、図17の従来例と等価な仕様を示して
いる。すなわち、1つの状態「状態A」から別の状態
「B」に遷移する際に、遷移元の状態「状態A」におい
て生起する3つのイベント「e1」〜「e3」が存在
し、そのうちの2つのイベント「e1」、「e2」の生
起に対して、2つの遅延時間T1,T2による遷移の遅
延が必要な場合の記述例を示している。また、図17の
従来例と同様に、アクションの記述は省略している。
【0044】このような図14の状態「状態A」から状
態「状態B」への状態遷移は、次のように解釈すること
ができる。すなわち、「状態A」において、イベント
「e1」が生起し、遅延時間T1の間成立し続けた後、
状態「状態B」に遷移する。あるいは、「状態A」にお
いて、イベント「e2」が生起し、遅延時間T2の間成
立し続けた後、状態「B」に遷移する。あるいはまた、
「状態A」において、イベント「e3」が生起した時点
で、「状態B」に遷移する。
態「状態B」への状態遷移は、次のように解釈すること
ができる。すなわち、「状態A」において、イベント
「e1」が生起し、遅延時間T1の間成立し続けた後、
状態「状態B」に遷移する。あるいは、「状態A」にお
いて、イベント「e2」が生起し、遅延時間T2の間成
立し続けた後、状態「B」に遷移する。あるいはまた、
「状態A」において、イベント「e3」が生起した時点
で、「状態B」に遷移する。
【0045】このような、本実施例による図14の遅延
記述付き状態遷移図と、従来技術による図17の状態遷
移図との複雑さの違いを、図15を参照して説明する。
遅延記述の数は、図14の遅延記述付き状態遷移図では
2個であるのに対し、図17の状態遷移図では0個であ
るが、その他の項目、すなわち、状態、イベント、およ
び遷移の数については、いずれも、図17の状態遷移図
の方が、約2.5倍〜4倍と多くなっており、構成がは
るかに複雑であることがわかる。このことは、図14お
よび図17を比較すれば、一目瞭然である。したがっ
て、遷移の遅延記述付き状態遷移図を用いることによ
り、従来の一般的な状態遷移図、すなわち、タイマセッ
トとタイムアウトチェックをアクションおよびイベント
として記述する必要のある状態遷移図を用いた場合に比
べて、ソフトウェアの仕様をはるかに簡潔に記述できる
ことは、明らかである。
記述付き状態遷移図と、従来技術による図17の状態遷
移図との複雑さの違いを、図15を参照して説明する。
遅延記述の数は、図14の遅延記述付き状態遷移図では
2個であるのに対し、図17の状態遷移図では0個であ
るが、その他の項目、すなわち、状態、イベント、およ
び遷移の数については、いずれも、図17の状態遷移図
の方が、約2.5倍〜4倍と多くなっており、構成がは
るかに複雑であることがわかる。このことは、図14お
よび図17を比較すれば、一目瞭然である。したがっ
て、遷移の遅延記述付き状態遷移図を用いることによ
り、従来の一般的な状態遷移図、すなわち、タイマセッ
トとタイムアウトチェックをアクションおよびイベント
として記述する必要のある状態遷移図を用いた場合に比
べて、ソフトウェアの仕様をはるかに簡潔に記述できる
ことは、明らかである。
【0046】(3)実施例の効果 以上説明したように、本実施例においては、遅延の制御
仕様の記述が必要な場合でも、遅延記述付き状態遷移図
記述部12で拡張された遅延記述付き状態遷移図を用い
ることにより、従来の一般的な状態遷移図を用いて記述
した場合に比べて、ソフトウェアの仕様を格段に簡潔か
つ容易に記述することができる。そして、このように容
易に記述した簡潔な遅延記述付き状態遷移図から、プロ
グラム生成部14によって、所望のプログラムを自動的
に容易に生成することができる。特に、本実施例におい
ては、待ち状態、カウント実行状態、および休止状態と
いう3つのタイマ状態を用いることにより、プログラム
をより容易に生成することができるという利点もある。
したがって、本実施例のプログラム自動生成装置によれ
ば、従来技術に比べて、ソフトウェアの仕様記述を格段
に容易化できる。また、このように仕様記述を容易化で
きることから、記述ミスなどのエラーを生じ難くなり、
その結果、生成されるプログラムの信頼性を向上できる
という利点もある。
仕様の記述が必要な場合でも、遅延記述付き状態遷移図
記述部12で拡張された遅延記述付き状態遷移図を用い
ることにより、従来の一般的な状態遷移図を用いて記述
した場合に比べて、ソフトウェアの仕様を格段に簡潔か
つ容易に記述することができる。そして、このように容
易に記述した簡潔な遅延記述付き状態遷移図から、プロ
グラム生成部14によって、所望のプログラムを自動的
に容易に生成することができる。特に、本実施例におい
ては、待ち状態、カウント実行状態、および休止状態と
いう3つのタイマ状態を用いることにより、プログラム
をより容易に生成することができるという利点もある。
したがって、本実施例のプログラム自動生成装置によれ
ば、従来技術に比べて、ソフトウェアの仕様記述を格段
に容易化できる。また、このように仕様記述を容易化で
きることから、記述ミスなどのエラーを生じ難くなり、
その結果、生成されるプログラムの信頼性を向上できる
という利点もある。
【0047】(4)他の実施例 なお、本発明は前記実施例に限定されるものではなく、
例えば、具体的な遅延記述の形式は適宜変更可能であ
る。また、仕様記述手段やプログラム自動生成手段など
の具体的な構成は自由に選択可能である。さらに、前記
実施例においては、C言語を使用したプログラムの生成
例を示したが、本発明は、各種の言語を使用した各種の
プログラムに同様に適用可能である。
例えば、具体的な遅延記述の形式は適宜変更可能であ
る。また、仕様記述手段やプログラム自動生成手段など
の具体的な構成は自由に選択可能である。さらに、前記
実施例においては、C言語を使用したプログラムの生成
例を示したが、本発明は、各種の言語を使用した各種の
プログラムに同様に適用可能である。
【0048】
【発明の効果】以上説明したように、本発明によれば、
仕様記述手段によって、遷移遅延およびアクション遅延
という2種類の遅延記述ができるように拡張された遅延
記述付き状態遷移図を用いてソフトウェアの仕様を記述
し、記述した遅延記述付き状態遷移図から、プログラム
自動生成手段によってプログラムを自動的に生成するこ
とにより、従来に比べて、仕様記述を容易化でき、生成
されるプログラムの信頼性の向上に貢献できるような、
優れたプログラム自動生成装置を提供することができ
る。
仕様記述手段によって、遷移遅延およびアクション遅延
という2種類の遅延記述ができるように拡張された遅延
記述付き状態遷移図を用いてソフトウェアの仕様を記述
し、記述した遅延記述付き状態遷移図から、プログラム
自動生成手段によってプログラムを自動的に生成するこ
とにより、従来に比べて、仕様記述を容易化でき、生成
されるプログラムの信頼性の向上に貢献できるような、
優れたプログラム自動生成装置を提供することができ
る。
【図1】本発明によるプログラム自動生成装置の一実施
例の構成を示すブロック図。
例の構成を示すブロック図。
【図2】図1のプログラム生成部によって、遅延記述付
き状態遷移図からプログラムを生成する際に用いるタイ
マの状態遷移図を示す説明図。
き状態遷移図からプログラムを生成する際に用いるタイ
マの状態遷移図を示す説明図。
【図3】図1の入力装置により、遅延記述付き状態遷移
図記述部を用いて記述した、遷移の遅延記述付き状態遷
移図の記述モデルを示す説明図。
図記述部を用いて記述した、遷移の遅延記述付き状態遷
移図の記述モデルを示す説明図。
【図4】図3の遷移遅延記述を示すタイムチャート。
【図5】図1の入力装置により、遅延記述付き状態遷移
図記述部を用いて記述した、アクションの遅延記述付き
状態遷移図の記述モデルを示す説明図。
図記述部を用いて記述した、アクションの遅延記述付き
状態遷移図の記述モデルを示す説明図。
【図6】図5のアクション遅延記述を示すタイムチャー
ト。
ト。
【図7】図1の入力装置により、遅延記述付き状態遷移
図記述部を用いて記述した、遷移の遅延記述付き状態遷
移図の応用例を示す説明図。
図記述部を用いて記述した、遷移の遅延記述付き状態遷
移図の応用例を示す説明図。
【図8】図1のプログラム生成部によって、図3の遷移
の遅延記述付き状態遷移図から生成されるプログラムの
処理手順を示すフローチャートであり、特に、生成され
るプログラムの本体の処理手続き部を示すフローチャー
ト。
の遅延記述付き状態遷移図から生成されるプログラムの
処理手順を示すフローチャートであり、特に、生成され
るプログラムの本体の処理手続き部を示すフローチャー
ト。
【図9】図1のプログラム生成部によって、図3の遷移
の遅延記述付き状態遷移図から生成されるプログラムの
処理手順を示すフローチャートであり、特に、本体の処
理手続き部によって使用されるタイマ処理に関する関数
型のサブルーチンを示すフローチャート。
の遅延記述付き状態遷移図から生成されるプログラムの
処理手順を示すフローチャートであり、特に、本体の処
理手続き部によって使用されるタイマ処理に関する関数
型のサブルーチンを示すフローチャート。
【図10】図1のプログラム生成部によって、図4のア
クションの遅延記述付き状態遷移図から生成されるプロ
グラムの処理手順を示すフローチャートであり、特に、
生成されるプログラムの本体の処理手続き部を示すフロ
ーチャート。
クションの遅延記述付き状態遷移図から生成されるプロ
グラムの処理手順を示すフローチャートであり、特に、
生成されるプログラムの本体の処理手続き部を示すフロ
ーチャート。
【図11】図1のプログラム生成部によって、図4のア
クションの遅延記述付き状態遷移図から生成されるプロ
グラムの処理手順を示すフローチャートであり、特に、
本体の処理手続き部によって使用されるタイマ処理に関
する関数型のサブルーチンを示すフローチャート。
クションの遅延記述付き状態遷移図から生成されるプロ
グラムの処理手順を示すフローチャートであり、特に、
本体の処理手続き部によって使用されるタイマ処理に関
する関数型のサブルーチンを示すフローチャート。
【図12】図1のプログラム生成部によって、図3の遷
移の遅延記述付き状態遷移図から生成されるプログラム
を、C言語で記述した一例を示す説明図であり、図8お
よび図9に対応する。
移の遅延記述付き状態遷移図から生成されるプログラム
を、C言語で記述した一例を示す説明図であり、図8お
よび図9に対応する。
【図13】図1のプログラム生成部によって、図4のア
クションの遅延記述付き状態遷移図から生成されるプロ
グラムを、C言語で記述した一例を示す説明図であり、
図10および図11に対応する。
クションの遅延記述付き状態遷移図から生成されるプロ
グラムを、C言語で記述した一例を示す説明図であり、
図10および図11に対応する。
【図14】図1の入力装置により、遅延記述付き状態遷
移図記述部を用いて記述した、遷移の遅延記述を2個含
む遅延記述付き状態遷移図の記述例として、特に、図1
7と等価な仕様を示す説明図。
移図記述部を用いて記述した、遷移の遅延記述を2個含
む遅延記述付き状態遷移図の記述例として、特に、図1
7と等価な仕様を示す説明図。
【図15】図14の遅延記述付き状態遷移図と図17の
状態遷移図との構成を比較して示す表。
状態遷移図との構成を比較して示す表。
【図16】一般的な状態遷移図の記述例を示す説明図。
【図17】図14と等価な仕様を、従来の記述方法で記
述した状態遷移図の記述例を示す説明図。
述した状態遷移図の記述例を示す説明図。
11…入力装置 12…遅延記述付き状態遷移図記述部 13…遅延記述付き状態遷移図格納部 14…プログラム生成部 15…プログラム格納部 16…出力装置 17…仕様記述部 18…プログラム自動生成部 21…待ち状態 22…カウント実行状態 23…休止状態 24〜27…遷移
Claims (2)
- 【請求項1】 複数の状態、状態間の遷移、遷移元の状
態において生起するイベント、およびイベント生起後に
実行されるアクションという4つの要素を含む状態遷移
図をベースとしてソフトウェアの仕様を記述し、記述さ
れた状態遷移図からプログラムを自動的に生成する、プ
ログラム自動生成装置において、 遷移の実行を遅らせるための遅延時間を遷移に付随して
記述する遷移遅延記述、およびアクションの実行を遅ら
せるための遅延時間をアクションに付随して記述するア
クション遅延記述という、2種類の遅延記述ができるよ
うに拡張された遅延記述付き状態遷移図を用いてソフト
ウェアの仕様を記述する、仕様記述手段と、 前記仕様記述手段によって記述された遅延記述付き状態
遷移図から、プログラムを自動的に生成するプログラム
自動生成手段と、 を有することを特徴とするプログラム自動生成装置。 - 【請求項2】 前記プログラム自動生成手段は、遷移記
述の遷移元の状態においてイベントの生起を待つ待ち状
態、イベント生起後に時間のカウントを開始して経過時
間をカウントするカウント実行状態、および、カウント
された経過時間が記述された遅延時間を経過した後、経
過時間のカウントを休止する休止状態という、3つのタ
イマ状態を用いてプログラムを生成するように構成され
たことを特徴とする請求項1記載のプログラム自動生成
装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5223511A JPH0778076A (ja) | 1993-09-08 | 1993-09-08 | プログラム自動生成装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5223511A JPH0778076A (ja) | 1993-09-08 | 1993-09-08 | プログラム自動生成装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0778076A true JPH0778076A (ja) | 1995-03-20 |
Family
ID=16799295
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5223511A Pending JPH0778076A (ja) | 1993-09-08 | 1993-09-08 | プログラム自動生成装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0778076A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007094922A (ja) * | 2005-09-30 | 2007-04-12 | Fuji Electric Holdings Co Ltd | プログラム自動生成装置、方法、およびプログラム |
| JP2008084262A (ja) * | 2006-09-29 | 2008-04-10 | Fuji Electric Holdings Co Ltd | プログラム自動生成装置、プログラム自動生成方法およびプログラム自動生成プログラム |
| JP2021057061A (ja) * | 2020-12-08 | 2021-04-08 | 三菱電機株式会社 | 状態遷移編集装置および状態遷移編集プログラム |
-
1993
- 1993-09-08 JP JP5223511A patent/JPH0778076A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007094922A (ja) * | 2005-09-30 | 2007-04-12 | Fuji Electric Holdings Co Ltd | プログラム自動生成装置、方法、およびプログラム |
| JP2008084262A (ja) * | 2006-09-29 | 2008-04-10 | Fuji Electric Holdings Co Ltd | プログラム自動生成装置、プログラム自動生成方法およびプログラム自動生成プログラム |
| JP2021057061A (ja) * | 2020-12-08 | 2021-04-08 | 三菱電機株式会社 | 状態遷移編集装置および状態遷移編集プログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6367068B1 (en) | Dynamic parsing | |
| CN111124379B (zh) | 页面生成方法、装置、电子设备及存储介质 | |
| JPH10283381A (ja) | ゲーテッドクロック設計支援方法、ゲーテッドクロック設計支援装置及びゲーテッドクロック設計支援プログラムを格納したコンピュータ読み取り可能な記録媒体 | |
| US8276165B2 (en) | Continuation-based runtime callback invocation | |
| JPH0778076A (ja) | プログラム自動生成装置 | |
| CN120994367A (zh) | 一种内容生成方法、装置、设备以及存储介质 | |
| TWI842427B (zh) | 軟體開發系統以及軟體開發方法 | |
| US20020143511A1 (en) | Method and computer program product for system design support | |
| Arts et al. | Verifying Generic Erlang Client—Server Implementations | |
| CN120688542B (zh) | 智能体的能力描述方法、任务执行方法、装置及智能体 | |
| JPH07114463A (ja) | オブジェクト指向分析設計支援装置 | |
| CN110875038A (zh) | 意图行为关系的定义方法及意图转换为行为的执行方法 | |
| JPH0438522A (ja) | ソフトウェアプログラムシミュレータ | |
| JPS59117660A (ja) | シミユレ−シヨン状態復元処理方式 | |
| JPH04274518A (ja) | Dspの画像信号処理用プログラム作成装置 | |
| Taibi et al. | Modeling of distributed objects computing pattern combinations using a formal specification language | |
| JPH02299023A (ja) | プログラム自動生成装置 | |
| JPH03282935A (ja) | コンパイル処理装置及びコンパイル処理方式 | |
| WO2025200595A1 (zh) | 用于管理工作流的数据输出的方法、装置、设备和介质 | |
| JPH0535816A (ja) | シミユレーシヨン方法 | |
| JPH0535817A (ja) | シミユレーシヨン方法 | |
| CN121957727A (zh) | 用于任务处理的方法、装置、设备、存储介质和程序产品 | |
| CN121277723A (zh) | 日志的处理方法、装置、电子设备及存储介质 | |
| JPH04340628A (ja) | ファジィ推論処理コンパイルシステム | |
| JPH11149368A (ja) | 図式編集プログラム開発方法および方式 |