JPH0944358A - プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置 - Google Patents
プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置Info
- Publication number
- JPH0944358A JPH0944358A JP19720495A JP19720495A JPH0944358A JP H0944358 A JPH0944358 A JP H0944358A JP 19720495 A JP19720495 A JP 19720495A JP 19720495 A JP19720495 A JP 19720495A JP H0944358 A JPH0944358 A JP H0944358A
- Authority
- JP
- Japan
- Prior art keywords
- information
- intermediate product
- methods
- function
- program
- 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
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】 本発明は、プログラム(オブジェクト)を構
成する機能(メソッド)の実行順序を踏まえた検証を可
能とすることを目的とする。 【構成】 本発明は、与えられた仕様を機能展開し、詳
細化された仕様(機能あるいはメソッド)に付随した変
換知識(設計プロセス)から個々のメソッドを生成し、
該メソッド間の機能を検証して、機能検証を追えたメソ
ッドを統合してオブジェクトを生成するものである。
成する機能(メソッド)の実行順序を踏まえた検証を可
能とすることを目的とする。 【構成】 本発明は、与えられた仕様を機能展開し、詳
細化された仕様(機能あるいはメソッド)に付随した変
換知識(設計プロセス)から個々のメソッドを生成し、
該メソッド間の機能を検証して、機能検証を追えたメソ
ッドを統合してオブジェクトを生成するものである。
Description
【0001】
【発明の属する技術分野】本発明は、プログラム生成方
法又はプログラム生成装置に関し、特に、オブジェクト
指向モデルに基づくオブジェクトの生成に関する。
法又はプログラム生成装置に関し、特に、オブジェクト
指向モデルに基づくオブジェクトの生成に関する。
【0002】
【従来の技術】オブジェクト指向モデルは、近年、産業
界においてもソフトウェア開発におけるソフトウェア生
産性/信頼性を飛躍的に向上させる手段として期待され
ている。オブジェクト指向モデルに基づくオブジェクト
(以下、単に「オブジェクト」という)は、対象の自然
なモデル化を可能とし、しかも計算機の世界にも自然に
写像できることが大きな特徴としてあげられている。こ
のオブジェクトの検証/生成方法として従来より様々な
方法が提案されてきている。これらの方法は次の2つの
方法に分類できる。
界においてもソフトウェア開発におけるソフトウェア生
産性/信頼性を飛躍的に向上させる手段として期待され
ている。オブジェクト指向モデルに基づくオブジェクト
(以下、単に「オブジェクト」という)は、対象の自然
なモデル化を可能とし、しかも計算機の世界にも自然に
写像できることが大きな特徴としてあげられている。こ
のオブジェクトの検証/生成方法として従来より様々な
方法が提案されてきている。これらの方法は次の2つの
方法に分類できる。
【0003】(1) オブジェクトを構成するメソッド単位
での機能の検証/生成方法としての代数的仕様記述方法
や述語論理方法。ここで、「メソッド」は、手続き型言
語の世界では個々の内部手続きに相当する。以下、本出
願においては、メソッドという用語を使用する。また、
通常オブジェクトは複数のメソッドから構成される。
での機能の検証/生成方法としての代数的仕様記述方法
や述語論理方法。ここで、「メソッド」は、手続き型言
語の世界では個々の内部手続きに相当する。以下、本出
願においては、メソッドという用語を使用する。また、
通常オブジェクトは複数のメソッドから構成される。
【0004】(2) オブジェクトを構成するメソッドの実
行順序に対する検証/生成方法としての状態遷移系の検
証/生成方法。しかし、オブジェクト全体としての検証
(すなわち、オブジェクトを構成する複数のメソッドに
またがった機能)について、それらの実行順序も踏まえ
た検証は特にオブジェクト内のメソッドが並行に処理を
実行するような並行プログラムでは必要であるが、この
ような複数のメソッドにまたがった機能に関する検証方
法が確立していないのが現状である。この点を解決しな
い限り、正しいオブジェクトを生成したことにはならな
いのは明かである。
行順序に対する検証/生成方法としての状態遷移系の検
証/生成方法。しかし、オブジェクト全体としての検証
(すなわち、オブジェクトを構成する複数のメソッドに
またがった機能)について、それらの実行順序も踏まえ
た検証は特にオブジェクト内のメソッドが並行に処理を
実行するような並行プログラムでは必要であるが、この
ような複数のメソッドにまたがった機能に関する検証方
法が確立していないのが現状である。この点を解決しな
い限り、正しいオブジェクトを生成したことにはならな
いのは明かである。
【0005】
【発明が解決しようとする課題】本発明は、オブジェク
トを構成するメソッドの実行順序を踏まえた検証を可能
とすることを目的とする。本発明の骨子は、複数のメソ
ッドの機能に関する記述とそれらのメソッドの実行順次
に関する情報を統合化し、その統合化された情報を検証
することである。
トを構成するメソッドの実行順序を踏まえた検証を可能
とすることを目的とする。本発明の骨子は、複数のメソ
ッドの機能に関する記述とそれらのメソッドの実行順次
に関する情報を統合化し、その統合化された情報を検証
することである。
【0006】プログラムが並行に処理される場合におい
て、オブジェクト指向モデルにおけるオブジェクトに
は、そのオブジェクトの外部からランダムにメッセージ
が到着することがあり、これらのメッセージに対する処
理が正しく実施される必要があることは言うまでもな
い。1つのメッセージを処理するのはメソッドと呼ば
れ、オブジェクトは、通常、複数のメソッドから構成さ
れる。
て、オブジェクト指向モデルにおけるオブジェクトに
は、そのオブジェクトの外部からランダムにメッセージ
が到着することがあり、これらのメッセージに対する処
理が正しく実施される必要があることは言うまでもな
い。1つのメッセージを処理するのはメソッドと呼ば
れ、オブジェクトは、通常、複数のメソッドから構成さ
れる。
【0007】1つのオブジェクトを例にとる。あるオブ
ジェクトに様々なメッセージが到着すると、そのメッセ
ージの種類に応じて該当するメソッドが起動して到着し
たメッセージを処理する。
ジェクトに様々なメッセージが到着すると、そのメッセ
ージの種類に応じて該当するメソッドが起動して到着し
たメッセージを処理する。
【0008】また、オブジェクトは内部変数を有し、こ
れらの内部変数はそれぞれ値を持っている。オブジェク
トに含まれる各メソッドは、同じオブジェクトに含まれ
る内部変数を自由にアクセスする。
れらの内部変数はそれぞれ値を持っている。オブジェク
トに含まれる各メソッドは、同じオブジェクトに含まれ
る内部変数を自由にアクセスする。
【0009】オブジェクトの動作は、例えば、あるメソ
ッドがある内部変数の値を更新し、次に起動されたメソ
ッドがその同じ内部変数をさらに更新する、という手順
で、ランダムに到着するメッセージに対して行われる。
オブジェクトの検証は、このような動作が正しいかどう
かを吟味することである。この場合において、「正し
い」とは、オブジェクトの作成者や利用者が意図するオ
ブジェクトの動作イメージに合致するかどうかを意味す
る。オブジェクトの正しさを検証する際の検証対象は、 (1) 個々のメソッド (2) メソッドにまたがった振る舞い の2種類の対象がある。第1番目の検証である個々のメ
ソッドの検証とは、あるひとつのメソッドを取り上げた
場合に、そのメソッドの機能が正しいかどうかを検証を
することを意味する。第2番目の検証であるメソッドに
またがった振る舞いの検証とは、複数のメソッドが実行
される際(特に複数のメソッドが並列に実行される際)
に、共通にアクセスする内部変数の値をメソッドが互い
に持ちながら、オブジェクトの動作が正しいかどうかを
検証することを意味する。
ッドがある内部変数の値を更新し、次に起動されたメソ
ッドがその同じ内部変数をさらに更新する、という手順
で、ランダムに到着するメッセージに対して行われる。
オブジェクトの検証は、このような動作が正しいかどう
かを吟味することである。この場合において、「正し
い」とは、オブジェクトの作成者や利用者が意図するオ
ブジェクトの動作イメージに合致するかどうかを意味す
る。オブジェクトの正しさを検証する際の検証対象は、 (1) 個々のメソッド (2) メソッドにまたがった振る舞い の2種類の対象がある。第1番目の検証である個々のメ
ソッドの検証とは、あるひとつのメソッドを取り上げた
場合に、そのメソッドの機能が正しいかどうかを検証を
することを意味する。第2番目の検証であるメソッドに
またがった振る舞いの検証とは、複数のメソッドが実行
される際(特に複数のメソッドが並列に実行される際)
に、共通にアクセスする内部変数の値をメソッドが互い
に持ちながら、オブジェクトの動作が正しいかどうかを
検証することを意味する。
【0010】ここで、第1番目の検証については、従来
技術を活用することができる。しかし、第2番目の検証
については、現在までのところ有効なものは提案されて
いない。そこで、本発明は、第2番目の検証であるメソ
ッドにまたがった振る舞いの検証方法及び装置を開示す
ることを目的とする。
技術を活用することができる。しかし、第2番目の検証
については、現在までのところ有効なものは提案されて
いない。そこで、本発明は、第2番目の検証であるメソ
ッドにまたがった振る舞いの検証方法及び装置を開示す
ることを目的とする。
【0011】
【課題を解決するための手段】本発明の構成は、オブジ
ェクト生成手段に関し、オブジェクト生成手段は更に3
つの手段に分割できる。その3つの手段とは、個別に検
証がなされた複数のメソッドを生成する手段と、メソッ
ド間の機能を検証する機能検証手段と、メソッド間の機
能検証を終えたメソッドを統合してオブジェクトを生成
する生成手段の3つである。本構成において、メソッド
の生成手段と、オブジェクトの生成手段は、関連技術を
適用できるので、本発明は、機能検証手段に特徴を有す
る。
ェクト生成手段に関し、オブジェクト生成手段は更に3
つの手段に分割できる。その3つの手段とは、個別に検
証がなされた複数のメソッドを生成する手段と、メソッ
ド間の機能を検証する機能検証手段と、メソッド間の機
能検証を終えたメソッドを統合してオブジェクトを生成
する生成手段の3つである。本構成において、メソッド
の生成手段と、オブジェクトの生成手段は、関連技術を
適用できるので、本発明は、機能検証手段に特徴を有す
る。
【0012】具体的には、請求項1に係る発明は、与え
られた所定の仕様を詳細化し、前記仕様と類似する中間
生成物及び前記中間生成物から次の中間生成物への変換
知識を検索するステップであって、前記仕様と類似する
中間生成物が見つからない場合に、前記中間生成物を最
小単位の機能まで展開するサブステップを含む第1ステ
ップと、前記第1ステップにより検索された変換知識の
設計プロセス間の整合性を判定する第2ステップと、新
たな機能の追加に対して、複数の設計プロセスを融合す
る第3ステップと、新たに生成された設計プロセスに基
づいてオブジェクトを生成するステップであって、前記
複数の設計プロセスと、前記設計プロセスの実行順序に
関する情報とを統合化するサブステップと、前記統合化
された情報を用いてプログラムを生成するサブステップ
とを含む第4ステップとからなることを特徴とするプロ
グラム生成方法である。
られた所定の仕様を詳細化し、前記仕様と類似する中間
生成物及び前記中間生成物から次の中間生成物への変換
知識を検索するステップであって、前記仕様と類似する
中間生成物が見つからない場合に、前記中間生成物を最
小単位の機能まで展開するサブステップを含む第1ステ
ップと、前記第1ステップにより検索された変換知識の
設計プロセス間の整合性を判定する第2ステップと、新
たな機能の追加に対して、複数の設計プロセスを融合す
る第3ステップと、新たに生成された設計プロセスに基
づいてオブジェクトを生成するステップであって、前記
複数の設計プロセスと、前記設計プロセスの実行順序に
関する情報とを統合化するサブステップと、前記統合化
された情報を用いてプログラムを生成するサブステップ
とを含む第4ステップとからなることを特徴とするプロ
グラム生成方法である。
【0013】また、請求項2に係る発明は、前記第4ス
テップは、前記プログラムを並行化するステップを含む
ことを特徴とする。一方、請求項3に係る発明は、上記
請求項1に係る発明を装置の観点から構成したものであ
り、与えられた所定の仕様を詳細化し、前記仕様と類似
する中間生成物及び前記中間生成物から次の中間生成物
への変換知識を検索する検索手段と、前記検索手段によ
り検索された変換知識の設計プロセス間の整合性を判断
する判定手段と、新たな機能の追加に対して、複数の設
計プロセスを融合するプロセス融合手段と、新たに生成
された設計プロセスに基づいてオブジェクトを生成する
オブジェクト生成手段とからなるプログラム生成装置で
あって、前記検索手段は、前記仕様と類似する中間生成
物が見つからない場合は、前記中間生成物を最小単位の
機能まで展開する手段を含み、前記オブジェクト生成手
段は、前記複数の設計プロセスと、前記設計プロセスの
実行順序に関する情報とを統合化する手段と、前記統合
化された情報を用いてプログラムを生成する手段とを含
むことを特徴とするプログラム生成装置である。
テップは、前記プログラムを並行化するステップを含む
ことを特徴とする。一方、請求項3に係る発明は、上記
請求項1に係る発明を装置の観点から構成したものであ
り、与えられた所定の仕様を詳細化し、前記仕様と類似
する中間生成物及び前記中間生成物から次の中間生成物
への変換知識を検索する検索手段と、前記検索手段によ
り検索された変換知識の設計プロセス間の整合性を判断
する判定手段と、新たな機能の追加に対して、複数の設
計プロセスを融合するプロセス融合手段と、新たに生成
された設計プロセスに基づいてオブジェクトを生成する
オブジェクト生成手段とからなるプログラム生成装置で
あって、前記検索手段は、前記仕様と類似する中間生成
物が見つからない場合は、前記中間生成物を最小単位の
機能まで展開する手段を含み、前記オブジェクト生成手
段は、前記複数の設計プロセスと、前記設計プロセスの
実行順序に関する情報とを統合化する手段と、前記統合
化された情報を用いてプログラムを生成する手段とを含
むことを特徴とするプログラム生成装置である。
【0014】また、請求項4に係る発明は、前記オブジ
ェクト生成手段は、前記プログラムを並行化する手段を
含むことを特徴とする。さらに、請求項5に係る発明
は、オブジェクト指向モデルに基づくオブジェクトを構
成する複数のメソッドから所望のオブジェクトを生成す
るオブジェクト生成方法であって、前記複数のメソッド
に関する情報と、前記複数のメソッドの実行順序に関す
る情報とを統合するステップと、前記統合化された情報
を用いて、前記メソッド間にまたがった機能の検証を行
うステップとからなることを特徴とするオブジェクト生
成方法である。
ェクト生成手段は、前記プログラムを並行化する手段を
含むことを特徴とする。さらに、請求項5に係る発明
は、オブジェクト指向モデルに基づくオブジェクトを構
成する複数のメソッドから所望のオブジェクトを生成す
るオブジェクト生成方法であって、前記複数のメソッド
に関する情報と、前記複数のメソッドの実行順序に関す
る情報とを統合するステップと、前記統合化された情報
を用いて、前記メソッド間にまたがった機能の検証を行
うステップとからなることを特徴とするオブジェクト生
成方法である。
【0015】また、請求項6に係る発明は、請求項5に
係るオブジェクト生成方法であって、前記統合ステップ
は、前記メソッドにノード変数を付加するサブステップ
と、前記ノード変数を付加されたメソッドと、前記モデ
ルの状態遷移を示す状態遷移図とに基づいて遷移情報を
作成するサブステップとを含むことを特徴とする。
係るオブジェクト生成方法であって、前記統合ステップ
は、前記メソッドにノード変数を付加するサブステップ
と、前記ノード変数を付加されたメソッドと、前記モデ
ルの状態遷移を示す状態遷移図とに基づいて遷移情報を
作成するサブステップとを含むことを特徴とする。
【0016】また、請求項7に係る発明は、上記請求項
5に係る発明を装置の観点から構成したものであり、す
なわち、オブジェクト指向モデルに基づくオブジェクト
を構成する複数のメソッドから所望のオブジェクトを生
成するオブジェクト生成装置であって、前記複数のメソ
ッドに関する情報と、前記複数のメソッドの実行順序に
関する情報とを統合する変換手段と、前記変換手段によ
って統合化された情報を用いて、前記メソッド間にまた
がった機能の検証を行う検証手段とを具備したことを特
徴とするオブジェクト生成装置である。
5に係る発明を装置の観点から構成したものであり、す
なわち、オブジェクト指向モデルに基づくオブジェクト
を構成する複数のメソッドから所望のオブジェクトを生
成するオブジェクト生成装置であって、前記複数のメソ
ッドに関する情報と、前記複数のメソッドの実行順序に
関する情報とを統合する変換手段と、前記変換手段によ
って統合化された情報を用いて、前記メソッド間にまた
がった機能の検証を行う検証手段とを具備したことを特
徴とするオブジェクト生成装置である。
【0017】さらに、請求項8に係る発明は、前記変換
手段は、前記メソッドにノード変数を付加するノード変
数付加手段と、前記ノード変数を付加されたメソッド
と、前記モデルの状態遷移を示す状態遷移図とに基づい
て遷移情報を作成する遷移情報作成手段とを含むことを
特徴としている。
手段は、前記メソッドにノード変数を付加するノード変
数付加手段と、前記ノード変数を付加されたメソッド
と、前記モデルの状態遷移を示す状態遷移図とに基づい
て遷移情報を作成する遷移情報作成手段とを含むことを
特徴としている。
【0018】そして、請求項9に係る発明は、前記検証
手段は、前記検証手段で検証する機能の検証のための規
則が登録された検証規則を用いることを特徴とする。上
記のような構成により、オブジェクト全体としての検証
が可能となり、結果として正しいオブジェクトを生成す
ることができることになり、ソフトウェア生産性の向上
に大きく寄与できる。
手段は、前記検証手段で検証する機能の検証のための規
則が登録された検証規則を用いることを特徴とする。上
記のような構成により、オブジェクト全体としての検証
が可能となり、結果として正しいオブジェクトを生成す
ることができることになり、ソフトウェア生産性の向上
に大きく寄与できる。
【0019】従って、本発明によれば、オブジェクトを
構成するメソッドの実行順序を踏まえた検証が可能にな
るので、オブジェクト全体としての検証が可能となり、
その結果として正しいオブジェクトを生成することがで
き、ソフトウェア生産性の向上に大きく寄与できる。
構成するメソッドの実行順序を踏まえた検証が可能にな
るので、オブジェクト全体としての検証が可能となり、
その結果として正しいオブジェクトを生成することがで
き、ソフトウェア生産性の向上に大きく寄与できる。
【0020】
【発明の実施の形態】以下、本発明をその実施例を示す
図面に基づき詳述する。図1は、本発明の一実施例に係
る概略的な機能構成を示すブロック図である。本発明の
プログラム自動生成装置は、基本的に、機能展開部1、
類似性判定部2、設計プロセス融合部3、整合性判定部
4(設計プロセス融合部3に含まれる)、オブジェクト
生成部5を具備し、更に、設計プロセス中間生成物知識
ベース6、及び、設計プロセス変換知識ベース7を具備
する。更に、データ処理用の一時記憶部8を有する。
図面に基づき詳述する。図1は、本発明の一実施例に係
る概略的な機能構成を示すブロック図である。本発明の
プログラム自動生成装置は、基本的に、機能展開部1、
類似性判定部2、設計プロセス融合部3、整合性判定部
4(設計プロセス融合部3に含まれる)、オブジェクト
生成部5を具備し、更に、設計プロセス中間生成物知識
ベース6、及び、設計プロセス変換知識ベース7を具備
する。更に、データ処理用の一時記憶部8を有する。
【0021】機能展開部1は、所定の仕様の機能を詳細
化するために、該仕様の機能展開を行う。類似性判定部
2は、前記機能展開部1によって詳細化された前記仕様
に類似する中間生成物を検索する。
化するために、該仕様の機能展開を行う。類似性判定部
2は、前記機能展開部1によって詳細化された前記仕様
に類似する中間生成物を検索する。
【0022】設計プロセス融合部3は、新たな機能の追
加に対して複数の設計プロセスを融合する。整合性判定
部4は、前記設計プロセス融合部3に含まれ、前記類似
性判定部2によって判定された類似性の高い設計プロセ
ス間の整合性を判断する。
加に対して複数の設計プロセスを融合する。整合性判定
部4は、前記設計プロセス融合部3に含まれ、前記類似
性判定部2によって判定された類似性の高い設計プロセ
ス間の整合性を判断する。
【0023】オブジェクト生成部5は、前記設計プロセ
ス融合部によって新たに生成された設計プロセスに基づ
いて、オブジェクトを生成する。設計プロセス中間生成
物知識ベース6は、前記機能展開部1によって詳細化さ
れた前記仕様と類似する中間生成物を検索するための中
間生成物を格納する。
ス融合部によって新たに生成された設計プロセスに基づ
いて、オブジェクトを生成する。設計プロセス中間生成
物知識ベース6は、前記機能展開部1によって詳細化さ
れた前記仕様と類似する中間生成物を検索するための中
間生成物を格納する。
【0024】設計プロセス変換知識ベース7は、前記仕
様の詳細化を行うための変換知識、前記中間生成物の変
換知識及び処理を行うための最小単位の知識を格納す
る。上記の構成により、オブジェクト指向言語で記述さ
れたオブジェクトを協調させて新しい仕様や仕様の変更
に対応する新しいオブジェクトが生成される。
様の詳細化を行うための変換知識、前記中間生成物の変
換知識及び処理を行うための最小単位の知識を格納す
る。上記の構成により、オブジェクト指向言語で記述さ
れたオブジェクトを協調させて新しい仕様や仕様の変更
に対応する新しいオブジェクトが生成される。
【0025】図2は、図1に示すオブジェクト生成部5
の具体的な構成例を示す図である。オブジェクト生成部
5は、メソッド生成部51と、機能検証部52と、プロ
グラム生成部53(オブジェクト生成部5と区別するた
めに「プログラム生成部」とする)とを有する。
の具体的な構成例を示す図である。オブジェクト生成部
5は、メソッド生成部51と、機能検証部52と、プロ
グラム生成部53(オブジェクト生成部5と区別するた
めに「プログラム生成部」とする)とを有する。
【0026】メソッド生成部51は、機能展開部1によ
って詳細化された仕様(すなわち機能或いはメソッド)
に付随した変換知識(設計プロセス)を入力として、個
々の新たなメソッドを生成する。
って詳細化された仕様(すなわち機能或いはメソッド)
に付随した変換知識(設計プロセス)を入力として、個
々の新たなメソッドを生成する。
【0027】機能検証部52は、メソッド生成部51で
生成された各メソッドに対してメソッドの順序関係を仕
様化した状態遷移図と実際のメソッド列の集合とを入力
して、メソッド間にまたがった機能を検証する。
生成された各メソッドに対してメソッドの順序関係を仕
様化した状態遷移図と実際のメソッド列の集合とを入力
して、メソッド間にまたがった機能を検証する。
【0028】プログラム生成部53は、機能検証部52
で検証された複数のメソッドを用いてオブジェクトを生
成する。上記の構成において、本発明は、機能検証部5
2が特徴を有するので、以下の説明においては、機能検
証部52について特に詳細に説明する。
で検証された複数のメソッドを用いてオブジェクトを生
成する。上記の構成において、本発明は、機能検証部5
2が特徴を有するので、以下の説明においては、機能検
証部52について特に詳細に説明する。
【0029】図3は、図2における機能検証部52の具
体的な構成例を示すブロック図である。図3は、オブジ
ェクト生成部5の具体的な構成例を示す。機能検証部5
2は、変換部521と検証部522を有する。
体的な構成例を示すブロック図である。図3は、オブジ
ェクト生成部5の具体的な構成例を示す。機能検証部5
2は、変換部521と検証部522を有する。
【0030】変換部521は、メソッドにまたがった検
証が可能なように、メソッドに関する情報と、メソッド
の振る舞いに関する情報を融合する。変換部521は、
具体的には、後述するノード変数付加部523と遷移情
報作成部524を有する。
証が可能なように、メソッドに関する情報と、メソッド
の振る舞いに関する情報を融合する。変換部521は、
具体的には、後述するノード変数付加部523と遷移情
報作成部524を有する。
【0031】検証部522は、検証規則525を用い
て、与えられたメソッド列の集合による振る舞いを検証
する。変換部521は、メソッド記述情報I3と状態遷
移図情報I4とを入力する。メソッド記述情報I3は、
メソッド生成部51からの各メソッドの情報である。状
態遷移図情報I4は、ユーザが新たに入力する情報であ
って、オブジェクトの状態遷移を示す情報である。変換
部521は、メソッド記述が検証可能な形式に変換され
た情報I6と、状態遷移図情報I4に、メソッドに関す
るメソッド記述情報I3を融合した情報I9を検証部5
22に出力する。
て、与えられたメソッド列の集合による振る舞いを検証
する。変換部521は、メソッド記述情報I3と状態遷
移図情報I4とを入力する。メソッド記述情報I3は、
メソッド生成部51からの各メソッドの情報である。状
態遷移図情報I4は、ユーザが新たに入力する情報であ
って、オブジェクトの状態遷移を示す情報である。変換
部521は、メソッド記述が検証可能な形式に変換され
た情報I6と、状態遷移図情報I4に、メソッドに関す
るメソッド記述情報I3を融合した情報I9を検証部5
22に出力する。
【0032】検証部522は、変換部521からの入力
と、検証規則525とを用いて、ユーザが新たに入力し
たメソッド列の集合に基づいてメソッド間にまたがった
機能を検証し、その検証結果をユーザに返す。結果はオ
ブジェクトが有する内部変数とその値を列挙する形でユ
ーザに返される。この場合のメソッド列の入力は、ユー
ザに限らず、状態遷移図の解析から自動的に求めたもの
を入力するようにしても良い。
と、検証規則525とを用いて、ユーザが新たに入力し
たメソッド列の集合に基づいてメソッド間にまたがった
機能を検証し、その検証結果をユーザに返す。結果はオ
ブジェクトが有する内部変数とその値を列挙する形でユ
ーザに返される。この場合のメソッド列の入力は、ユー
ザに限らず、状態遷移図の解析から自動的に求めたもの
を入力するようにしても良い。
【0033】図4は、図3の変換部521に対する入力
データと出力データに関する文法規則を示す図である。
各情報の有する情報の詳細を説明する。情報I1はメソ
ッドの記述(<verified method in equational formula
> )及び実行順序を示す状態遷移図(<state transitio
n diagram>)を示し、変換部521に対する入力データ
である。ここで、メソッドとは、従来言語での内部プロ
シージャに相当し、メッセージの処理を記述したもので
ある。一方、状態遷移図は状態の集合及び状態遷移から
構成される。状態遷移図において状態は実行可能なメソ
ッドを表し、状態繊維はメソッドの実行を示す。従っ
て、状態遷移図はメソッドの実行順序を記述したもので
あり、いいかえればランダムに到着するメッセージの処
理順序を規定したものである。
データと出力データに関する文法規則を示す図である。
各情報の有する情報の詳細を説明する。情報I1はメソ
ッドの記述(<verified method in equational formula
> )及び実行順序を示す状態遷移図(<state transitio
n diagram>)を示し、変換部521に対する入力データ
である。ここで、メソッドとは、従来言語での内部プロ
シージャに相当し、メッセージの処理を記述したもので
ある。一方、状態遷移図は状態の集合及び状態遷移から
構成される。状態遷移図において状態は実行可能なメソ
ッドを表し、状態繊維はメソッドの実行を示す。従っ
て、状態遷移図はメソッドの実行順序を記述したもので
あり、いいかえればランダムに到着するメッセージの処
理順序を規定したものである。
【0034】情報I2は、変換部521からの出力デー
タであり、修正されたメソッド (<modified method i
n equational formula> )と遷移情報(<transistion>
)を示す。
タであり、修正されたメソッド (<modified method i
n equational formula> )と遷移情報(<transistion>
)を示す。
【0035】情報I3は、情報I1のメソッド記述の詳
細を示す。すなわち、メソッドは、等式の形式で与えら
れ、メソッドの名前<method name> (メッセージ列<mes
sagelist>、属性名列<attribute list>)、右辺はメソ
ッドの本体<method body> を示す。メソッドの本体は、
以下のようにメッセージ名列と属性名列を入力として、
属性名列<attribute list>を返す。ここで、属性名はオ
ブジェクトの持つひとつの内部状態変数であり、属性名
列は属性名の集合である。等式の形式のため、返す値は
一つである。また、出力となる属性名は入力となる属性
名列に含まれている必要はない。なお、ここで”[”
と”]”はリスト形式を表現したものである(以下同
じ)。
細を示す。すなわち、メソッドは、等式の形式で与えら
れ、メソッドの名前<method name> (メッセージ列<mes
sagelist>、属性名列<attribute list>)、右辺はメソ
ッドの本体<method body> を示す。メソッドの本体は、
以下のようにメッセージ名列と属性名列を入力として、
属性名列<attribute list>を返す。ここで、属性名はオ
ブジェクトの持つひとつの内部状態変数であり、属性名
列は属性名の集合である。等式の形式のため、返す値は
一つである。また、出力となる属性名は入力となる属性
名列に含まれている必要はない。なお、ここで”[”
と”]”はリスト形式を表現したものである(以下同
じ)。
【0036】<method body> :メッセージ名列、属性名
列 −> [属性名列] 情報I4は、情報I1の状態遷移図の形式として、初期
値の与え方(<STD init>)と状態とメソッドの関係(st
(<node number>、<method name> )=<node number>)を
示す。<node number> は、状態遷移図の一つの状態を示
すノード番号である。状態とメソッドの関係は、現在の
ノード番号とそれに対する実行可能なメソッド名と、そ
れによって遷移する先のノード番号とによって表現され
る。ここでの“=”の持つ意味とは、関数形式の左辺の
値として、右辺の値を返すことを示している。すなわ
ち、左辺のノード番号の示す状態の時、左辺のメソッド
が実行可能であり、そのメソッドの実行結果として、右
辺のノード番号の示す状態に遷移することを示す。
列 −> [属性名列] 情報I4は、情報I1の状態遷移図の形式として、初期
値の与え方(<STD init>)と状態とメソッドの関係(st
(<node number>、<method name> )=<node number>)を
示す。<node number> は、状態遷移図の一つの状態を示
すノード番号である。状態とメソッドの関係は、現在の
ノード番号とそれに対する実行可能なメソッド名と、そ
れによって遷移する先のノード番号とによって表現され
る。ここでの“=”の持つ意味とは、関数形式の左辺の
値として、右辺の値を返すことを示している。すなわ
ち、左辺のノード番号の示す状態の時、左辺のメソッド
が実行可能であり、そのメソッドの実行結果として、右
辺のノード番号の示す状態に遷移することを示す。
【0037】情報I5は、情報I4における初期値の記
述方法を示す情報である。情報I6は、情報I2の修正
されたメソッドの詳細表現形式を示し、情報I7と情報
I8はそれぞれ情報I6の補足記述を示す情報である。
述方法を示す情報である。情報I6は、情報I2の修正
されたメソッドの詳細表現形式を示し、情報I7と情報
I8はそれぞれ情報I6の補足記述を示す情報である。
【0038】情報I6の左辺はメソッド名(メッセージ
名列、属性名列、ノード変数)であり、右辺は修正され
たメソッド本体<modified method body>である。ここ
で、ノード変数は、その値としてノード番号をとる。修
正されたメソッド本体は、等式表現されており、以下の
ように、メソッドの実行結果として、[属性名列、ノー
ド番号]の形式で値を返す。
名列、属性名列、ノード変数)であり、右辺は修正され
たメソッド本体<modified method body>である。ここ
で、ノード変数は、その値としてノード番号をとる。修
正されたメソッド本体は、等式表現されており、以下の
ように、メソッドの実行結果として、[属性名列、ノー
ド番号]の形式で値を返す。
【0039】<modified method body>:メッセージ名
列、属性名列、ノード変数 −>[属性名列、ノード番
号] 左辺の属性名列、ノード変数と右辺の[属性名列、ノー
ド番号]の関係については、左辺の属性名列、ノード変
数の内容がメソッドの実行によって更新され、その結果
が右辺の形式で表される。
列、属性名列、ノード変数 −>[属性名列、ノード番
号] 左辺の属性名列、ノード変数と右辺の[属性名列、ノー
ド番号]の関係については、左辺の属性名列、ノード変
数の内容がメソッドの実行によって更新され、その結果
が右辺の形式で表される。
【0040】情報I3の右辺のメソッド本体<method bo
dy> と情報I6の<modified methodbody>との相違点
は、ノード変数が加わっていることである。情報I10
で示されるように、ノード変数はNで表され、その変数
値としてはノード番号が入る。
dy> と情報I6の<modified methodbody>との相違点
は、ノード変数が加わっていることである。情報I10
で示されるように、ノード変数はNで表され、その変数
値としてはノード番号が入る。
【0041】情報I9は情報I2の遷移情報の詳細表現
形式であり、情報I10は情報I9に対する補足記述で
ある。情報I9において、等式の左辺はeval(ノー
ド番号、メソッド名(メッセージ名列)、属性名列)で
あり、右辺は情報I6の左辺となる(ここで、ノード変
数にはノード番号が割り付けられる)。情報I9は、左
辺の示すような、あるノード番号で表される状態におい
て、メソッド名で表されるメッセージが入ってきたら、
現在の内部状態を渡しながら、該当のメソッド(右辺で
表されている)を起動することを示す。情報I9は図5
に示す検証規則525に直接用いられる。情報I9を実
行すると情報I9は[メッセージ列、属性名列、ノード
番号]を値として返す。
形式であり、情報I10は情報I9に対する補足記述で
ある。情報I9において、等式の左辺はeval(ノー
ド番号、メソッド名(メッセージ名列)、属性名列)で
あり、右辺は情報I6の左辺となる(ここで、ノード変
数にはノード番号が割り付けられる)。情報I9は、左
辺の示すような、あるノード番号で表される状態におい
て、メソッド名で表されるメッセージが入ってきたら、
現在の内部状態を渡しながら、該当のメソッド(右辺で
表されている)を起動することを示す。情報I9は図5
に示す検証規則525に直接用いられる。情報I9を実
行すると情報I9は[メッセージ列、属性名列、ノード
番号]を値として返す。
【0042】図5は、図3の検証部522が有している
検証規則525(<validation rule> )の例を示す図で
ある。検証規則525は3つの式(e1、e2、e3)
から構成され、述語としてexeとexelがある。e
xeは、exe(ノード変数、メソッド名リスト、属性
名列)で表現される。ノード変数は、ある状態遷移図に
おける現在の状態(ノード番号が与えられている)を示
す。メソッド名リストは、そのオブジェクトに入ってき
たメッセージの順序づけられた集合を示す。属性名列
は、オブジェクトの属性名の集合を示す。オブジェクト
とノード番号の関係は、次の通りである。オブジェクト
は複数のメソッドから構成され、それらのメソッドの順
序関係を示す一つの状態遷移図を有している。状態遷移
図は複数の状態から構成され、それぞれの状態にはノー
ド番号が付加されている。
検証規則525(<validation rule> )の例を示す図で
ある。検証規則525は3つの式(e1、e2、e3)
から構成され、述語としてexeとexelがある。e
xeは、exe(ノード変数、メソッド名リスト、属性
名列)で表現される。ノード変数は、ある状態遷移図に
おける現在の状態(ノード番号が与えられている)を示
す。メソッド名リストは、そのオブジェクトに入ってき
たメッセージの順序づけられた集合を示す。属性名列
は、オブジェクトの属性名の集合を示す。オブジェクト
とノード番号の関係は、次の通りである。オブジェクト
は複数のメソッドから構成され、それらのメソッドの順
序関係を示す一つの状態遷移図を有している。状態遷移
図は複数の状態から構成され、それぞれの状態にはノー
ド番号が付加されている。
【0043】図5に現れる述語の意味は以下の通りであ
る。 exe:ノード変数、メソッド名リスト、属性名列 −
>[属性名列、ノード変数] exel:[属性名列、ノード変数]、メソッド名リス
ト −>[属性名列、ノード変数] eval:ノード変数、メソッド名リスト、属性名列
−>[属性名列、ノード変数] 例えば、1番目の式において、述語名exeは、関数で
あり、3つの変数、すなわち、ノード変数、メソッド名
リスト、属性名列を入力して演算を行い、結果として、
関数の値として[属性名列、ノード変数]を返すことを
意味する。関数は一つの値を出力として返す。exel
も関数であり、[属性名列、ノード変数]、メソッド名
リストを入力して演算を行い、その結果、[属性名列、
ノード変数]を返す。evalも同様に関数であり、ノ
ード変数、メソッド名リスト、属性名列を入力として演
算を行い、その結果、[属性名列、ノード変数]を返
す。
る。 exe:ノード変数、メソッド名リスト、属性名列 −
>[属性名列、ノード変数] exel:[属性名列、ノード変数]、メソッド名リス
ト −>[属性名列、ノード変数] eval:ノード変数、メソッド名リスト、属性名列
−>[属性名列、ノード変数] 例えば、1番目の式において、述語名exeは、関数で
あり、3つの変数、すなわち、ノード変数、メソッド名
リスト、属性名列を入力して演算を行い、結果として、
関数の値として[属性名列、ノード変数]を返すことを
意味する。関数は一つの値を出力として返す。exel
も関数であり、[属性名列、ノード変数]、メソッド名
リストを入力して演算を行い、その結果、[属性名列、
ノード変数]を返す。evalも同様に関数であり、ノ
ード変数、メソッド名リスト、属性名列を入力として演
算を行い、その結果、[属性名列、ノード変数]を返
す。
【0044】検証規則525の各式の意味は次の通りで
ある。式e1は、リスト形式で与えられたメソッド名の
集合の要素がなくなったら(オブジェクトに対する外部
からのメッセージが一回りしたら)、検証を終了するこ
とを意味する条件式である。式e2は、式e1が失敗し
たとき(すなわち、メソッド名の集合の要素が残ってい
る時)に実行する。式e2は、集合の要素の先頭のメソ
ッド名を用いて、述語evalを呼び出す。式e3は、
メソッドの実行結果をもらい、次のメソッド名を呼び出
す(e1或いはe2を呼び出す)。
ある。式e1は、リスト形式で与えられたメソッド名の
集合の要素がなくなったら(オブジェクトに対する外部
からのメッセージが一回りしたら)、検証を終了するこ
とを意味する条件式である。式e2は、式e1が失敗し
たとき(すなわち、メソッド名の集合の要素が残ってい
る時)に実行する。式e2は、集合の要素の先頭のメソ
ッド名を用いて、述語evalを呼び出す。式e3は、
メソッドの実行結果をもらい、次のメソッド名を呼び出
す(e1或いはe2を呼び出す)。
【0045】図3に従って、図4も参照しながら変換部
521の動作を説明する。変換部521は情報I1を入
力とし、情報I2を出力とする。入力である情報I1は
情報I3と情報I4から構成され、出力である情報I2
は情報I6と情報I9から構成される。
521の動作を説明する。変換部521は情報I1を入
力とし、情報I2を出力とする。入力である情報I1は
情報I3と情報I4から構成され、出力である情報I2
は情報I6と情報I9から構成される。
【0046】変換部521は、ノード変数付加部523
及び遷移情報作成部524を有する。ノード変数付加部
523は情報I3を入力して、情報I6を出力する。遷
移情報作成部524は情報I4及び情報I6を入力し
て、情報I9を出力する。
及び遷移情報作成部524を有する。ノード変数付加部
523は情報I3を入力して、情報I6を出力する。遷
移情報作成部524は情報I4及び情報I6を入力し
て、情報I9を出力する。
【0047】ノード変数付加部523は、情報I3であ
るメソッドの記述(<verified method in equational f
ormula> )において、情報I3の左辺にノード変数を加
えて置き換え、更に情報I3の右辺<method body> を<m
odified method body>で置き換えることによって、出力
のひとつである情報I6の修正されたメソッド(<modif
ied method in equational formula> )を生成する。こ
の時、情報I3の右辺のメソッド本体<method body> と
情報I6の右辺の<modified method body>の相違点は、
ノード変数を加えている点と、返す値を属性変数とノー
ド番号の組からなるリスト形式で置き換えている点であ
る。式e1、e2、e3の検証規則525を用いて、情
報I3から情報I6に変換することによって、オブジェ
クトが実行可能形式になり、また、オブジェクトの実行
において、複数のメソッドにまたがった属性名列に属す
属性値の受け渡しが可能になり、状態遷移図に従ったメ
ソッドの実行が可能になる。
るメソッドの記述(<verified method in equational f
ormula> )において、情報I3の左辺にノード変数を加
えて置き換え、更に情報I3の右辺<method body> を<m
odified method body>で置き換えることによって、出力
のひとつである情報I6の修正されたメソッド(<modif
ied method in equational formula> )を生成する。こ
の時、情報I3の右辺のメソッド本体<method body> と
情報I6の右辺の<modified method body>の相違点は、
ノード変数を加えている点と、返す値を属性変数とノー
ド番号の組からなるリスト形式で置き換えている点であ
る。式e1、e2、e3の検証規則525を用いて、情
報I3から情報I6に変換することによって、オブジェ
クトが実行可能形式になり、また、オブジェクトの実行
において、複数のメソッドにまたがった属性名列に属す
属性値の受け渡しが可能になり、状態遷移図に従ったメ
ソッドの実行が可能になる。
【0048】遷移情報作成部524は、情報I6の修正
されたメソッド(<modified methodin equational form
ula> )と情報I4の実行順序を示す状態遷移図(<stat
e transition diagram>)をマージすることによって、
変換部521のもう一つの出力である情報I9である遷
移情報(<transition>)を作成する。具体的には、遷移
情報作成部524は、情報I4を基礎として以下の手順
でマージする。 (1) 情報I4におけるstを情報I9のevalで
置き換える。 (2) 情報I4におけるstの第1引数であるノード
番号を情報I9のevalの第1引数とする。 (3) 情報I4におけるstの第2引数であるメソッ
ド名を、情報I9のevalの第2引数と、更にその引
数としてメッセージ列を追加する。 (4) 情報I9のevalの第3引数として属性名列
を示すSを付加する。 (5) evalは等式表現とし、その右辺はまず、左
辺のメソッド名を書く。 (6) メソッド名の引数として、左辺と同じメッセー
ジ列を追加する。 (7) メソッド名の最後の引数として、属性名列を示
すSと、情報I4の右辺のノード番号を組として追加す
る。
されたメソッド(<modified methodin equational form
ula> )と情報I4の実行順序を示す状態遷移図(<stat
e transition diagram>)をマージすることによって、
変換部521のもう一つの出力である情報I9である遷
移情報(<transition>)を作成する。具体的には、遷移
情報作成部524は、情報I4を基礎として以下の手順
でマージする。 (1) 情報I4におけるstを情報I9のevalで
置き換える。 (2) 情報I4におけるstの第1引数であるノード
番号を情報I9のevalの第1引数とする。 (3) 情報I4におけるstの第2引数であるメソッ
ド名を、情報I9のevalの第2引数と、更にその引
数としてメッセージ列を追加する。 (4) 情報I9のevalの第3引数として属性名列
を示すSを付加する。 (5) evalは等式表現とし、その右辺はまず、左
辺のメソッド名を書く。 (6) メソッド名の引数として、左辺と同じメッセー
ジ列を追加する。 (7) メソッド名の最後の引数として、属性名列を示
すSと、情報I4の右辺のノード番号を組として追加す
る。
【0049】上記のように情報I6と情報I4とをマー
ジすることによって、式e1、e2、e3の検証規則5
25によって実行可能な情報I9になり、更に、ノード
番号とそのノードの状態において実行可能なメソッド名
との関係付けが可能となる。
ジすることによって、式e1、e2、e3の検証規則5
25によって実行可能な情報I9になり、更に、ノード
番号とそのノードの状態において実行可能なメソッド名
との関係付けが可能となる。
【0050】図3の検証部522は、ユーザからメソッ
ド名の集合をリスト形式で与えられた時、変換部521
の出力である情報I6と情報I9を用いて検証規則52
5(<validation rule> )に基づいてオブジェクトを実
行し、その結果として内部変数とその値を列挙する。
ド名の集合をリスト形式で与えられた時、変換部521
の出力である情報I6と情報I9を用いて検証規則52
5(<validation rule> )に基づいてオブジェクトを実
行し、その結果として内部変数とその値を列挙する。
【0051】以上の動作を具体例を用いて説明する。図
6はあるオブジェクトにおける複数のメッセージの実行
順序を表現した状態遷移図である。このオブジェクトは
エレベータ制御システムを実現するひとつのオブジェク
トであり、リフト状態を保持する。リフト状態オブジェ
クトに対しては外部から図4に示すように4つのメッセ
ージが到着する。図6の状態遷移図において、アークの
ラベルがメソッド名を示す。ノード番号1が初期状態で
あり、ノード番号が1の時には、メソッドの中でメソッ
ド setLIFTstop(このメソッドはエレベータのかごか
ら、希望行き先を示すメッセージを処理する)或いはメ
ソッドsetFloorstop(このメソッドはフロアから、ボタ
ンが押された時にそのメッセージを処理する)だけが実
行可能である。この時に、例えば、メソッドsetLIFTsto
p が実行されれば、状態遷移が発生し、ノード番号2に
遷移する。
6はあるオブジェクトにおける複数のメッセージの実行
順序を表現した状態遷移図である。このオブジェクトは
エレベータ制御システムを実現するひとつのオブジェク
トであり、リフト状態を保持する。リフト状態オブジェ
クトに対しては外部から図4に示すように4つのメッセ
ージが到着する。図6の状態遷移図において、アークの
ラベルがメソッド名を示す。ノード番号1が初期状態で
あり、ノード番号が1の時には、メソッドの中でメソッ
ド setLIFTstop(このメソッドはエレベータのかごか
ら、希望行き先を示すメッセージを処理する)或いはメ
ソッドsetFloorstop(このメソッドはフロアから、ボタ
ンが押された時にそのメッセージを処理する)だけが実
行可能である。この時に、例えば、メソッドsetLIFTsto
p が実行されれば、状態遷移が発生し、ノード番号2に
遷移する。
【0052】図7は、メソッドの一つの表現例を示し、
図4の情報I3に相当する。メソッド setLIFTstopは、
リフト番号(LN)、ボタン番号(BN)、リフト状態
(LS)を入力とし、その演算の結果として現在のリフ
ト状態を値として返す。リフト番号LNは、メッセージ
を送ったエレベータの番号を示す。ボタン番号BNは希
望行き先階を示す。リフト状態LSには、エレベータの
予定停止階が格納されている。演算結果として、新たな
希望行き先階をエレベータの予定停止階として追加す
る。ここで、リフト番号LNとボタン番号BNはメッセ
ージであり、リスト状態LSは属性名(すなわち内部状
態変数)である。具体的な演算は次のように行われる。
関数 getLIFTが、リフト番号LNとリフト状態LSを入
力とし、その結果の値としてリフト番号状態を返し、関
数writeStopFloorは、関数getLIFTが返したリフト番号
状態とボタン番号BNとを入力して、リフト番号状態を
返し、最後に、関数setLIFT が、関数writeStopFloorの
返したリフト番号状態、リフト番号、リフト状態を入力
し、リフト状態を返す。
図4の情報I3に相当する。メソッド setLIFTstopは、
リフト番号(LN)、ボタン番号(BN)、リフト状態
(LS)を入力とし、その演算の結果として現在のリフ
ト状態を値として返す。リフト番号LNは、メッセージ
を送ったエレベータの番号を示す。ボタン番号BNは希
望行き先階を示す。リフト状態LSには、エレベータの
予定停止階が格納されている。演算結果として、新たな
希望行き先階をエレベータの予定停止階として追加す
る。ここで、リフト番号LNとボタン番号BNはメッセ
ージであり、リスト状態LSは属性名(すなわち内部状
態変数)である。具体的な演算は次のように行われる。
関数 getLIFTが、リフト番号LNとリフト状態LSを入
力とし、その結果の値としてリフト番号状態を返し、関
数writeStopFloorは、関数getLIFTが返したリフト番号
状態とボタン番号BNとを入力して、リフト番号状態を
返し、最後に、関数setLIFT が、関数writeStopFloorの
返したリフト番号状態、リフト番号、リフト状態を入力
し、リフト状態を返す。
【0053】図8は、図6の状態遷移図をテキスト表現
形式で示す図である。図8のテキスト形式で表現された
情報は、図4の情報I4に相当する。図8において、1
番目の式は初期状態の宣言であり、2番目の式はノード
番号1の時に実行可能なメソッドは setLIFTstopであ
り、その結果ノード番号2に状態遷移することを示す。
3番目以降の式は、2番目と同様に解釈されるので、説
明は省略する。3番目の式はノード番号1の時に実行可
能なメソッドは setFloorstop であり、その結果ノード
番号3に状態遷移することを示す。4番目以降の式は、
2番目及び3番目の動作と同様であるので、説明は省略
する。
形式で示す図である。図8のテキスト形式で表現された
情報は、図4の情報I4に相当する。図8において、1
番目の式は初期状態の宣言であり、2番目の式はノード
番号1の時に実行可能なメソッドは setLIFTstopであ
り、その結果ノード番号2に状態遷移することを示す。
3番目以降の式は、2番目と同様に解釈されるので、説
明は省略する。3番目の式はノード番号1の時に実行可
能なメソッドは setFloorstop であり、その結果ノード
番号3に状態遷移することを示す。4番目以降の式は、
2番目及び3番目の動作と同様であるので、説明は省略
する。
【0054】図9は、修正されたメソッドの一つの表現
例であり、図4の情報I6に相当する。図9では、図7
のLSをS,Nに置き換えている(SはLSを一つの要
素とするリストである)。
例であり、図4の情報I6に相当する。図9では、図7
のLSをS,Nに置き換えている(SはLSを一つの要
素とするリストである)。
【0055】図10は、図4の情報I9に相当する情報
を示す例である。つまり、これらの情報は、状態遷移図
を拡張したものといえる。図10において、1番目の式
はノード番号1の時、メソッド setLIFTstopを呼び出す
と共にノード番号2に状態遷移することを示す。2番目
以降の式も1番目の式と同様な動作を行うので、説明は
省略する。
を示す例である。つまり、これらの情報は、状態遷移図
を拡張したものといえる。図10において、1番目の式
はノード番号1の時、メソッド setLIFTstopを呼び出す
と共にノード番号2に状態遷移することを示す。2番目
以降の式も1番目の式と同様な動作を行うので、説明は
省略する。
【0056】上記の個々の動作をまとめると次のように
なる。図7及び図8に示されるメソッドが変換部521
へ入力され、ノード変数付加部523は、図7に示すメ
ソッドを入力し、図9に示すメソッドを出力する。遷移
情報作成部524は、図8に示すメソッドと図9に示す
メソッドから図10に示すメソッドを作成する。そし
て、図9と図10に示されたメソッドが変換部521か
ら出力される。
なる。図7及び図8に示されるメソッドが変換部521
へ入力され、ノード変数付加部523は、図7に示すメ
ソッドを入力し、図9に示すメソッドを出力する。遷移
情報作成部524は、図8に示すメソッドと図9に示す
メソッドから図10に示すメソッドを作成する。そし
て、図9と図10に示されたメソッドが変換部521か
ら出力される。
【0057】入力と出力の機能的な差は、次のようにな
っている。入力においては、機能に関する情報と、振る
舞いに関する情報が互いに独立であるのに対して、出力
は、これらのふたつの情報が融合されている点が異な
る。その結果、本発明では、オブジェクトを構成するメ
ソッド(個々の機能に関する情報)の実行順序(メソッ
ド間の振る舞いに関する情報)を踏まえた検証が可能で
ある。
っている。入力においては、機能に関する情報と、振る
舞いに関する情報が互いに独立であるのに対して、出力
は、これらのふたつの情報が融合されている点が異な
る。その結果、本発明では、オブジェクトを構成するメ
ソッド(個々の機能に関する情報)の実行順序(メソッ
ド間の振る舞いに関する情報)を踏まえた検証が可能で
ある。
【図1】 本発明の一実施例に係る概略的な機能構成を
示すブロック図。
示すブロック図。
【図2】 図1に示すオブジェクト生成部5の具体的な
構成例を示す図。
構成例を示す図。
【図3】 図2における機能検証部52の具体的な構成
例を示すブロック図。
例を示すブロック図。
【図4】 図3の変換部に対する入力データと出力デー
タに関する文法規則を示す図。
タに関する文法規則を示す図。
【図5】 検証規則の例を示す図。
【図6】 あるオブジェクトにおける複数のメソッドの
実行順序を表現した状態遷移図。
実行順序を表現した状態遷移図。
【図7】 メソッドの一つの表現例を示す図。
【図8】 図6の状態遷移図をテキスト表現形式で示す
図。
図。
【図9】 修正されたメソッドの一つの表現例を示す
図。
図。
【図10】 図4の情報I9に相当する情報を示す例を
示す図。
示す図。
1…機能展開部 2…類似性判定部 3…設計プロセス融合部 4…整合性判定部 5…オブジェクト生成部 6…設計プロセス中間生成物知識ベース 7…設計プロセス変換知識ベース 8…一時記憶部 51…メソッド生成部 52…機能検証部 53…プログラム生成部 521…変換部 522…検証部 523…ノード変数付加部 524…遷移情報作成部 525…検証規則
Claims (9)
- 【請求項1】与えられた所定の仕様を詳細化し、前記仕
様と類似する中間生成物及び前記中間生成物から次の中
間生成物への変換知識を検索するステップであって、前
記仕様と類似する中間生成物が見つからない場合に、前
記中間生成物を最小単位の機能まで展開するサブステッ
プを含む第1ステップと、 前記第1ステップにより検索された変換知識の設計プロ
セス間の整合性を判定する第2ステップと、 新たな機能の追加に対して、複数の設計プロセスを融合
する第3ステップと、 新たに生成された設計プロセスに基づいてオブジェクト
を生成するステップであって、前記複数の設計プロセス
と、前記設計プロセスの実行順序に関する情報とを統合
化するサブステップと、前記統合化された情報を用いて
プログラムを生成するサブステップとを含む第4ステッ
プとからなることを特徴とするプログラム生成方法。 - 【請求項2】 前記第4ステップは、前記プログラムを
並行化するステップを含むことを特徴とする請求項1記
載のプログラム作成方法。 - 【請求項3】与えられた所定の仕様を詳細化し、前記仕
様と類似する中間生成物及び前記中間生成物から次の中
間生成物への変換知識を検索する検索手段と、 前記検索手段により検索された変換知識の設計プロセス
間の整合性を判断する判定手段と、 新たな機能の追加に対して、複数の設計プロセスを融合
するプロセス融合手段と、 新たに生成された設計プロセスに基づいてオブジェクト
を生成するオブジェクト生成手段とからなるプログラム
生成装置であって、 前記検索手段は、前記仕様と類似する中間生成物が見つ
からない場合は、前記中間生成物を最小単位の機能まで
展開する手段を含み、 前記オブジェクト生成手段は、前記複数の設計プロセス
と、前記設計プロセスの実行順序に関する情報とを統合
化する手段と、前記統合化された情報を用いてプログラ
ムを生成する手段とを含むことを特徴とするプログラム
生成装置。 - 【請求項4】 前記オブジェクト生成手段は、前記プロ
グラムを並行化する手段を含むことを特徴とする請求項
3記載のプログラム生成装置。 - 【請求項5】オブジェクト指向モデルに基づくオブジェ
クトを構成する複数のメソッドから所望のオブジェクト
を生成するオブジェクト生成方法であって、 前記複数のメソッドに関する情報と、前記複数のメソッ
ドの実行順序に関する情報とを統合するステップと、 前記統合化された情報を用いて、前記メソッド間にまた
がった機能の検証を行うステップと、からなることを特
徴とするオブジェクト生成方法。 - 【請求項6】前記統合ステップは、 前記メソッドにノード変数を付加するサブステップと、 前記ノード変数を付加されたメソッドと、前記モデルの
状態遷移を示す状態遷移図とに基づいて遷移情報を作成
するサブステップと、を含むことを特徴とする請求項5
記載のオブジェクト生成方法。 - 【請求項7】オブジェクト指向モデルに基づくオブジェ
クトを構成する複数のメソッドから所望のオブジェクト
を生成するオブジェクト生成装置であって、 前記複数のメソッドに関する情報と、 前記複数のメソッドの実行順序に関する情報とを統合す
る変換手段と、 前記変換手段によって統合化された情報を用いて、前記
メソッド間にまたがった機能の検証を行う検証手段と、
を具備したことを特徴とするオブジェクト生成装置。 - 【請求項8】前記変換手段は、 前記メソッドにノード変数を付加するノード変数付加手
段と、 前記ノード変数を付加されたメソッドと、前記モデルの
状態遷移を示す状態遷移図とに基づいて遷移情報を作成
する遷移情報作成手段と、を含むことを特徴とする請求
項7記載のオブジェクト生成装置。 - 【請求項9】前記検証手段は、 前記検証手段で検証する機能の検証のための規則が登録
された検証規則を用いることを特徴とする請求項7又は
8記載のオブジェクト生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19720495A JPH0944358A (ja) | 1995-08-02 | 1995-08-02 | プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19720495A JPH0944358A (ja) | 1995-08-02 | 1995-08-02 | プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0944358A true JPH0944358A (ja) | 1997-02-14 |
Family
ID=16370559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19720495A Pending JPH0944358A (ja) | 1995-08-02 | 1995-08-02 | プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0944358A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198494A (ja) * | 2009-02-26 | 2010-09-09 | Panasonic Corp | ソフトウェア開発支援ツール |
WO2011055417A1 (ja) * | 2009-11-09 | 2011-05-12 | 三菱電機株式会社 | ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置 |
-
1995
- 1995-08-02 JP JP19720495A patent/JPH0944358A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198494A (ja) * | 2009-02-26 | 2010-09-09 | Panasonic Corp | ソフトウェア開発支援ツール |
WO2011055417A1 (ja) * | 2009-11-09 | 2011-05-12 | 三菱電機株式会社 | ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置 |
JP4964352B2 (ja) * | 2009-11-09 | 2012-06-27 | 三菱電機株式会社 | ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100470480C (zh) | 分析程序加速器装置以及更新其的方法 | |
Casati et al. | Workflow evolution | |
Bardohl et al. | Integrating meta-modelling aspects with graph transformation for efficient visual language definition and model manipulation | |
US8370808B2 (en) | Apparatus and a method for generating a test case | |
CN106919434A (zh) | 一种代码生成方法及装置 | |
Bozzano et al. | COMPASS 3.0 | |
CN113050938A (zh) | 视觉软件开发系统、方法、装置及计算机存储介质 | |
US7703058B2 (en) | Method and system for changing a description for a state transition function of a state machine engine | |
CN101060396B (zh) | 一种事件的检测方法及装置 | |
WO1999049387A1 (fr) | Dispositif et procede servant a produire un logiciel | |
Alshareef et al. | Activity-based DEVS modeling | |
US6868297B1 (en) | Method and system for designing objects using functional modeling | |
Jurack et al. | Sufficient criteria for consistent behavior modeling with refined activity diagrams | |
JPH0944358A (ja) | プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置 | |
Feng et al. | Designing communicating transaction processes by supervisory control theory | |
RU2002101131A (ru) | Метод определения программного обеспечения, метод использования программного обеспечения, записывающая среда, обрабатывающие устройства, метод защиты программного обеспечения, метод пересадки программного обеспечения в другую среду, метод контроля над программным обеспечением, метод создания графиков обработки, метод создания функций палеты, метод определения области палеты, метод создания вектора однородности, метод создания функции палеты, метод создания фазового элемента, метод создания логического элемента, метод создания элемента действия, метод установки программного обеспечения, метод усовершенствования программного обеспечения, метод замены структуры данных, метод замены значения данных, метод анализа программного обеспечения прошлого поколения, контроль процесса разработки программного обеспечения, контроль процесса использования программного обеспечения, метод параллельных компьютеров, вспомогательное устройство суждения, метод приема заказов на разработку программного обеспечения, метод определения файлов, операции по разработке программного обеспечения, метод определения уникального программного обеспечения, метод проектирования модели сознания, метод проектирования алгоритмов, программная продукция, волны передачи и программы основанной на примерах | |
CN114791865A (zh) | 一种基于关系图的配置项自洽性检测方法、系统和介质 | |
JP5229223B2 (ja) | ワークフロー定義変更プログラムおよびワークフロー定義変更方法 | |
US7650260B1 (en) | Method and system for designing objects using functional object representation | |
Kong et al. | Defining a formal coalgebraic semantics for the Rosetta Specification Language | |
JP2606658B2 (ja) | 論理シミュレータおよび制御方法 | |
Lambers | Sufficient Criteria for Consistent Behavior Modeling with Refined Activity Diagrams: Long Version | |
Camilleri | Reasoning in CSP via the HOL Theorem Prover | |
JP2002269157A (ja) | 最適化処理システム | |
JPH0721013A (ja) | システム生成方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050726 |
|
A521 | Written amendment |
Effective date: 20050921 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A131 | Notification of reasons for refusal |
Effective date: 20051018 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060307 |