JP2771951B2 - Program creation device for reactive system - Google Patents
Program creation device for reactive systemInfo
- Publication number
- JP2771951B2 JP2771951B2 JP6276429A JP27642994A JP2771951B2 JP 2771951 B2 JP2771951 B2 JP 2771951B2 JP 6276429 A JP6276429 A JP 6276429A JP 27642994 A JP27642994 A JP 27642994A JP 2771951 B2 JP2771951 B2 JP 2771951B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- executable
- class
- child
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、プログラム作成装置及
び方法に関し、特にリアクティブ・システムにおけるオ
ブジェクト指向のプログラムを作成する方法及び装置に
関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus and a method for creating a program, and more particularly to a method and an apparatus for creating an object-oriented program in a reactive system.
【0002】[0002]
【従来の技術】ATM(Automatic teller machine)、P
OS端末といったリアクティブ・システムは、通常、一
連のパネルを表示する表示装置と、ボタン、キーパッ
ド、磁気ストライプ・リーダ等の入力装置を有し、様々
なプロンプトを表示して、ユーザに適当な動作を選択さ
せるようにする。すなわち、ユーザは適当なボタンやキ
ーを押すことにより入力イベントを生成し、パネルから
情報のフィードバックを受けることにより、リアクティ
ブ・システムとやりとりを行う。2. Description of the Related Art ATM (Automatic teller machine), P
A reactive system such as an OS terminal usually has a display device for displaying a series of panels and input devices such as buttons, a keypad, a magnetic stripe reader, etc., and displays various prompts to display appropriate prompts to the user. Let the user select an action. That is, the user generates an input event by pressing an appropriate button or key, and interacts with the reactive system by receiving information feedback from the panel.
【0003】このリアクティブ・システムの操作フロー
(Operational Flow)は、取り扱うべき入力イベントのシ
ーケンス及びその入力イベントに関連する動作ルーチン
を示すものである。ここで、図14の例を考える。P1
はP1ボタンを押すこと、P2はP2ボタンを押すこと
により生じる入力イベントを指す。この操作フローで期
待されている入力イベントのシーケンスは、P1及びP
2が連続して押され、そしてこの押下動作が1回又はそ
れ以上繰り返されることである。この操作中、ループ・
カウンタとバリュー・カウンタの2つのカウンタが動作
する。どちらのカウンタもループの入口で0にリセット
される。そしてループ・カウンタは、繰り返しを行うご
とに1インクリメントされ、バリュー・カウンタは、P
1が押されると2インクリメントされ、P2が押される
と1デクリメントされる。N回ループを回ってループか
ら出る時には、どちらのカウンタもNとなっているはず
である。The operation flow of this reactive system
(Operational Flow) indicates a sequence of input events to be handled and an operation routine related to the input event. Here, consider the example of FIG. P1
Denotes an input event caused by pressing the P1 button, and P2 denotes an input event generated by pressing the P2 button. The sequence of input events expected in this operation flow is P1 and P1.
2 are continuously pressed, and this pressing operation is repeated one or more times. During this operation, the loop
Two counters, a counter and a value counter, operate. Both counters are reset to zero at the entry of the loop. The loop counter is incremented by one each time the iteration is performed, and the value counter is set to P
When 1 is pressed, 2 is incremented, and when P2 is pressed, 1 is decremented. When going out of the loop N times, both counters should be N.
【0004】この操作フローは、入れ子式の且つ階層的
な論理構造を有している。最低のレベルは入力イベント
に対応した操作であり、より高いレベルは最低レベルの
操作をシーケンシャル、選択(selection)、繰り返し(ル
ープ)といった方法で組み合わせた複合操作となる。This operation flow has a nested and hierarchical logical structure. The lowest level is an operation corresponding to an input event, and the higher level is a composite operation in which the lowest level operations are combined in a sequential, selection, or repetition (loop) manner.
【0005】操作フローの制御は、入力イベントが操作
フローのスペックに一致しているかを検証し、入力イベ
ントを取り扱う、指定された動作ルーチンを実行するメ
カニズムである。この操作フローの制御を実施するため
に、通常有限状態マシンが用いられる。有限状態マシン
は、状態とイベントで状態遷移のダイアグラムを定義す
る。ある状態において、あるイベントが生ずると、新た
な状態に遷移し、その状態遷移に関連する動作ルーチン
が実行される。The control of the operation flow is a mechanism for verifying whether an input event matches the specification of the operation flow, and executing a specified operation routine for handling the input event. A finite state machine is usually used to control this operation flow. A finite state machine defines a state transition diagram with states and events. When a certain event occurs in a certain state, the state transits to a new state, and an operation routine related to the state transition is executed.
【0006】図15は、図14の操作フローを有限状態
マシンの形式で示したものである。この有限状態マシン
には、3つの状態(s0,s1,s2)と2つのイベント
(P1,P2)、3つの状態遷移に関連する動作が示さ
れている。ここで注意しなければならないのは、イベン
トP1が2か所に示されている点である。1つはs0か
らs1への遷移で、リセット動作と、ループ・カウンタ
及びバリュー・カウンタに関する動作である。もう1つ
はs2からs1への遷移であり、リセット動作がない他
は同じ動作である。FIG. 15 shows the operation flow of FIG. 14 in the form of a finite state machine. This finite state machine shows three states (s0, s1, s2), two events (P1, P2), and operations related to three state transitions. It should be noted here that the event P1 is shown in two places. One is a transition from s0 to s1, which is a reset operation and an operation relating to a loop counter and a value counter. The other is a transition from s2 to s1, which is the same operation except that there is no reset operation.
【0007】この有限状態マシンを用いる方法は、有用
であり、今まで用いられてきた方法ではあるが、図15
に示すような例でもわかるような、幾つかの問題を有し
ている。有限状態マシンを実施する際の一般的な問題は
以下のとおりである。Although the method using the finite state machine is useful and has been used so far, FIG.
There are several problems as can be seen from the example shown in FIG. The general problems in implementing a finite state machine are as follows.
【0008】1.入力イベントの数が増加したり、操作
フローが複雑になると、状態の数が指数関数的に増加す
る。この対策には幾つかの試みがなされているが、ここ
では触れない。[0008] 1. As the number of input events increases or the operation flow becomes more complex, the number of states increases exponentially. Several attempts have been made to address this, but we will not mention it here.
【0009】2.動作ルーチンがデータのやり取りをな
し得るようにするには、グローバル・データ・エリアが
必要となる。[0009] 2. In order for the operation routine to be able to exchange data, a global data area is required.
【0010】3.操作フローが有限状態マシンに変換さ
れると、操作フローの論理的構造は失われてしまう。入
力イベントに対する動作ルーチンは、イベントの処理だ
けでなく、操作フローのより高いレベルの論理構造に対
する処理をも含んでしまう。例えば、図15のP1を押
することによるs0からs1への遷移に関する動作は、
論理的にループ処理に属する「リセット」動作を含む。
また、操作フローには1度しか現れなかったイベントが
有限状態マシンでは複数回登場することもある。さら
に、複数回登場するイベントに対する動作は、操作フロ
ーの論理構造内のそれぞれの役割に依存して、それぞれ
少しずつ異なっている。[0010] 3. When the operation flow is transformed into a finite state machine, the logical structure of the operation flow is lost. The operation routine for an input event includes not only processing of the event but also processing of a higher-level logical structure of the operation flow. For example, the operation related to the transition from s0 to s1 by pressing P1 in FIG.
Includes a "reset" operation that logically belongs to the loop process.
Also, an event that appears only once in the operation flow may appear multiple times in the finite state machine. Furthermore, the actions for the events that appear multiple times are slightly different depending on the respective roles in the logical structure of the operation flow.
【0011】これらの困難な問題は以下の好ましくない
結果を生ずる。 1.入力イベントの数が大きくなったり、操作フローが
複雑になると、実施化が難しくなる。パーサー生成器の
ような、コンパイラ構築で用いられるツールは、状態及
び各状態に対するイベントのリストを生成する助けには
なるかもしれない。しかし、その生成器により一般的に
仮定される見通しは、イベントが起きるとすぐに実行し
なければならないようなリアクティブ・システムにおい
て、生成されたパーサーを使いものにならなくする。[0011] These difficult problems have the following undesirable consequences. 1. When the number of input events increases or the operation flow becomes complicated, implementation becomes difficult. Tools used in compiler construction, such as parser generators, may help generate a list of states and events for each state. However, the perspective generally assumed by the generator renders the generated parser useless in reactive systems that must execute as soon as an event occurs.
【0012】2.プログラムのカスタム化には、操作フ
ローの暗に含まれた論理構造及び論理構造により維持さ
れているデータを含む有限状態マシン全体の完全な理解
が必要となる。例えば、1のイベントの移動又は除去と
いった、一見小さな変更が、イベントが何か所にも登場
するのでそのすべてを変更しなければならなくしたり、
より高い論理構造内の役割が偶然変更されると、他のイ
ベントに対する対応が必要とされるようになる場合があ
る。この役割には、ループに入る時に幾つかのデータを
初期化することを含む。すべてのデータがグローバル
で、スコーピング・メカニズムが使用可能でないので、
動作ルーチンのどの部分が、操作フローのどの論理構造
に属するかを知るのは困難である。2. Program customization requires a thorough understanding of the entire finite state machine, including the logical structure implicit in the operational flow and the data maintained by the logical structure. For example, seemingly small changes, such as moving or removing one event, may cause the event to appear in several places and all of them must be changed,
If a role in a higher logical structure is accidentally changed, it may become necessary to respond to other events. This role includes initializing some data when entering the loop. Since all data is global and no scoping mechanism is available,
It is difficult to know which part of the operation routine belongs to which logical structure of the operation flow.
【0013】新規のボタンP3を導入する、カスタム化
の例を考えてみる。このボタンP3は、どのカウンタの
値をも変更するものではない。新たな操作フローを図1
6に示すように、ボタンP3はボタンP1の代わりに押
されるような構成となっている。Consider an example of customization that introduces a new button P3. This button P3 does not change the value of any counter. Figure 1 shows the new operation flow
As shown in FIG. 6, the button P3 is configured to be pressed instead of the button P1.
【0014】図17は図16を有限状態マシンで表現し
た場合を示している。ここでP3は、関連する遷移が2
つある。P3はどのカウンタの値をも変更するものでは
ないにもかかわらず、P3が関連する遷移に対するアク
ションは、どちらもカウンタの値を変更するようになっ
ている。このことは、操作フローをカスタム化しようと
する人は、操作フロー全体の構造、及び操作フロー全体
における、イベントに関連する動作の役割等についての
グローバルな知識を有していなければならない、という
ことを示すものである。言いかえれば、ボタンP3を導
入するためには、P3がどのカウンタの値をも変更しな
いということを知っているだけでは十分ではないという
ことである。FIG. 17 shows a case where FIG. 16 is represented by a finite state machine. Here, P3 indicates that the associated transition is 2
There are two. Even though P3 does not change the value of any counter, any action on the transition to which P3 is related will change the value of the counter. This means that the person trying to customize the operation flow must have global knowledge of the structure of the entire operation flow and the role of the operation related to the event in the entire operation flow. It shows. In other words, knowing that P3 does not change the value of any counter is not enough to introduce button P3.
【0015】また、構造化されたプログラムを作成する
ための手順についての指針には、構造化プログラミング
(structured programming)というものがある。これは、
抽象度の高いプログラムの流れを記述するために木構造
を用いる場合はあるが、抽象度を下げていく段階におい
ては、通常のプログラミングの形態と変わらない。この
ような構造化プログラミングを用いた例としては、特開
昭61ー67135号などがある。[0015] In addition, guidelines for the procedure for creating a structured program include structured programming.
(structured programming). this is,
In some cases, a tree structure is used to describe the flow of a program with a high degree of abstraction. However, at the stage of lowering the degree of abstraction, it does not differ from a normal programming form. Japanese Patent Application Laid-Open No. 61-67135 discloses an example using such structured programming.
【0016】さらに、Jackson System Development(以
下JSDという)というソフトウエア開発の方法もあ
る。JSDは、ソフトウエア開発のモデリング(Modelin
g)フェーズ、ネットワーク(Network)フェーズ、インプ
リメンテーション(Implementation)フェーズをサポート
している。このモデリング・フェーズにおいては、イベ
ントの概念が重要で、どのようなイベントがどのような
順序で起こるかをシーケンス、ループ、選択の組み合わ
せで表現する。例えば、図18に示すイベント木構造
は、イベントAの後にイベントB又はCが0回以上続
き、最後にイベントDが続くことを示している。A,
B,B,C,B,C,C,B,Dは、イベント列のひと
つの例である。一般に、イベントの木構造は、プロセス
に対するイベントの順序に関する制限を表している。プ
ロセスは内部にデータを有し、そのデータはイベントに
より変更される。There is also a software development method called Jackson System Development (hereinafter referred to as JSD). JSD is a model for software development (Modelin
g) Supports phase, network phase, and implementation phase. In this modeling phase, the concept of events is important, and what events occur in what order is expressed by a combination of sequence, loop, and selection. For example, the event tree structure shown in FIG. 18 indicates that event A or event B or C continues 0 or more times, and event D lasts. A,
B, B, C, B, C, C, B, and D are one example of an event sequence. In general, the tree of events represents a restriction on the order of events for a process. A process has data inside, and the data is changed by an event.
【0017】このような木構造のシーケンス、ループ、
選択を表すノードは、イベントが中心の概念であるた
め、何等の動作と結び付いているわけではない。データ
は、イベントのプロセスにより保持、変更される。よっ
て、中間ノードとなるシーケンス、ループ、選択を表す
ノードは、単なるイベントのグループを指し示すための
みにあり、何等の処理、データの受渡しを行うものでは
ない。Such a tree-structured sequence, loop,
The node representing the selection is not tied to any action because the event is the central concept. Data is held and changed by the event process. Therefore, nodes representing sequences, loops, and selections serving as intermediate nodes are merely for indicating a group of events, and do not perform any processing or data transfer.
【0018】JSDのネットワーク・フェーズで、別々
のイベントの木構造で表現された複数のプロセスの入出
力等の相互関係を表す。インプリメンテーション・フェ
ーズでは、複数のプロセスをひとつのメインプログラム
とサブルーチン階層で実現するなど、通常のコンピュー
タ・システムでの効率的なインプリメントを考える。[0018] In the network phase of the JSD, the mutual relationship such as the input / output of a plurality of processes represented by a tree structure of separate events is represented. In the implementation phase, we consider efficient implementation in ordinary computer systems, such as implementing multiple processes in one main program and subroutine hierarchy.
【0019】このように上述した従来例でも、操作フロ
ーを有限状態マシン形式でインプリメントした時の欠点
を何等解決するものではない。As described above, even the conventional example described above does not solve any drawbacks when the operation flow is implemented in the finite state machine format.
【0020】[0020]
【発明が解決しようとする課題】よって、本発明の目的
は従来技術の欠点を解決するものであって、実際にコー
ディング(プログラミング)を行う際の複雑性を回避
し、プログラムの再利用や、ボトムアップ設計・実施と
いう点を実現する方法及び装置を提供することである。SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to solve the drawbacks of the prior art, avoiding the complexity of actually coding (programming), reusing programs, It is an object of the present invention to provide a method and an apparatus for realizing a bottom-up design and implementation.
【0021】具体的には、操作フローのより高いレベル
の論理構造に対する処理が、イベントの処理そのものか
ら分離することを目的とする。また、データに対するア
クセスがアクセスする必要がある操作(オペレーション)
を除き禁止されるようにして、データを分散することも
目的である。Specifically, it is an object of the present invention to separate the processing for the higher-level logical structure of the operation flow from the processing of the event itself. Also, operations that require access to data (operations)
The purpose is to disperse data in such a way that it is prohibited except for.
【0022】さらに、そのような方法を実施することの
できる装置により、プログラミングの容易化、簡素化を
図ることも目的である。It is another object of the present invention to facilitate and simplify programming by using an apparatus capable of performing such a method.
【0023】[0023]
【課題を解決するための手段】本発明は上述の目的を達
成するためのものであって、オペレーションとして共通
する動作を規定するメソッドと、複合オペレーションと
して共通する動作を規定するメソッドと、ループ複合オ
ペレーション固有の動作を規定するメソッドと、シーケ
ンス複合オペレーション固有の動作を規定するメソッド
と、選択複合オペレーション固有の動作を規定するメソ
ッドと、プリミティブ・オペレーション固有の動作を規
定するメソッドとを格納する部品格納装置と、表示手段
と、入力手段と、入力手段からの信号に応答して、ルー
プ複合オペレーションのオブジェクト、シーケンス複合
オペレーションのオブジェクト、選択複合オペレーショ
ンのオブジェクト、及びプリミティブ・オペレーション
のオブジェクトを組み合わせてプログラムの操作フロー
に対応する木構造を作成及び変更するフロー・エディタ
手段と、木構造を入力手段からの信号に応答して任意の
階層で表示装置に表示させるフロー・ブラウザ手段と、
各オペレーションにつき、固有の動作を規定するメソッ
ドと、そのオペレーションが取り扱うデータを入力手段
によりユーザに入力させ、そのオペレーションに必要な
メソッドを部品格納装置から取り出し且つ結合する動作
エディタ手段とを有するリアクティブ・システムのため
のプログラム作成装置である。According to the present invention, there is provided a method for defining a common operation as an operation, a method for defining a common operation as a composite operation, and a loop composite. Component storage for storing methods that define operations specific to operations, methods that define operations specific to sequence composite operations, methods that define operations specific to selection composite operations, and methods that define operations specific to primitive operations In response to signals from the apparatus, the display means, the input means, and a signal from the input means, the object of the loop compound operation, the object of the sequence compound operation, the object of the selection compound operation, and the object of the primitive operation are provided. And flow editor means to create and modify a tree structure corresponding to the operation flow of the observed combined program, and flow browser means for displaying on the display device in an arbitrary hierarchy in response to a signal from the input means a tree structure,
A reactive method having a method for defining an operation specific to each operation, and operation editor means for allowing a user to input data handled by the operation by an input means, and extracting and combining a method required for the operation from a component storage device. -A program creation device for the system.
【0024】ここで、各メソッドは、メッセージを発し
て互いに通信することにより、動作フロー及びデータ処
理を制御する。これにより、各オペレーションが部品と
なり、より効率的且つ簡単にプログラミングを行うこと
ができる。Here, each method controls an operation flow and data processing by issuing a message and communicating with each other. Thereby, each operation becomes a part, and programming can be performed more efficiently and easily.
【0025】また、オペレーションとして共通する動作
を規定するメソッドが、データを取り扱うオペレーショ
ンを探索するためのレスポンダ・メッセージを親オペレ
ーションに転送するレスポンダ・メソッドを含み、複合
オペレーションとして共通する動作を規定するメソッド
が、親オペレーションからのスタート・メッセージに応
答して、初期動作メッセージ、子制御メッセージ、及び
終了動作メッセージを発するスタート・メソッドと、親
オペレーションに自己よりも後に実行すべきオペレーシ
ョンが実行可能かを問うように依頼するための可続行メ
ッセージを転送する可続行メソッドを含むようにする
と、各オペレーションがクラス階層に分けることがで
き、オペレーション内でも部品化がなされることとな
る。ここで、可続行メソッド又はメッセージは、canCon
tinueメソッド又はメッセージを意味する。Further, the method for defining the common operation as the operation includes a responder method for transferring a responder message for searching for an operation that handles data to the parent operation, and the method for defining the common operation as a composite operation. In response to a start message from the parent operation, issues a start method that issues an initial operation message, a child control message, and an end operation message, and asks the parent operation whether the operation to be executed after itself can be executed. Includes a continuation method for transferring a continuation message for requesting each operation, so that each operation can be divided into class hierarchies, and components are formed within the operation. Here, the continuation method or message is canCon
Means tinue method or message.
【0026】さらに、ループ複合オペレーション固有の
メソッドが、子制御メッセージに応答して、子オペレー
ションが実行可能かを問う可実行メッセージを発し、実
行可能であればスタート・メッセージを発し、子オペレ
ーションが何等の動作を行わないものである場合には可
続行メッセージを自己に発する子制御メソッドと、親オ
ペレーションからの可実行メッセージに応答して、子オ
ペレーションが実行可能かを問うための可実行メッセー
ジを発する可実行メソッドとを含むようにすることも考
えられる。ここで、可実行メソッド又はメッセージは、
canStartメソッド又はメッセージを意味する。Further, a method unique to the loop composite operation issues an executable message asking whether the child operation can be executed in response to the child control message, and if so, emits a start message. If it does not perform the above operation, it issues a self-executable message to itself, and issues an executable message to ask whether the child operation can be executed in response to the executable message from the parent operation. It is also conceivable to include an executable method. Here, the executable method or message is
means canStart method or message.
【0027】また、シーケンス複合オペレーション固有
のメソッドが、子制御メッセージに応答して、順次子オ
ペレーションにスタート・メッセージを発する子制御メ
ソッドと、親オペレーションからの可実行メッセージに
応答して、子オペレーションが実行可能かを問うための
可実行メッセージを発する可実行メソッドと、子オペレ
ーションからの可続行メッセージに応答して、その子オ
ペレーションの後に実行すべきオペレーションが実行可
能かを問い合わせる第2の可続行メソッドとを含むよう
にすることも考えられる。In addition, a method unique to the sequence compound operation includes a child control method for sequentially issuing a start message to the child operation in response to the child control message, and a child operation in response to the executable message from the parent operation. An executable method for issuing an executable message for asking whether the operation is executable, and a second executable method for responding to the executable message from the child operation and inquiring whether an operation to be executed after the child operation is executable. It is also conceivable to include
【0028】上述の選択複合オペレーション固有のメソ
ッドが、子制御メッセージに応答して、子オペレーショ
ンが実行可能かを問う可実行メッセージを発し、実行可
能であればスタート・メッセージを発し、子オペレーシ
ョンが何等の動作を行わないものである場合には可続行
メッセージを自己に発する子制御メソッドと、親オペレ
ーションからの可実行メッセージに応答して、子オペレ
ーションが実行可能かを問うための可実行メッセージを
発する可実行メソッドとを含むようにすることも考えら
れる。In response to the child control message, the above-described method specific to the selection compound operation issues an executable message asking whether the child operation can be executed, and if so, emits a start message. If it does not perform the above operation, it issues a self-executable message to itself, and issues an executable message to ask whether the child operation can be executed in response to the executable message from the parent operation. It is also conceivable to include an executable method.
【0029】さらに、オペレーションとして共通する動
作を規定するメソッドが、データを取り扱うオペレーシ
ョンを探索するためのレスポンダ・メッセージを親オペ
レーションに転送するレスポンダ・メソッドを含み、プ
リミティブ・オペレーション固有のメソッドが、親オペ
レーションからのスタート・メッセージに応答して、プ
リミティブ・オペレーションとしてイベントを取り扱う
イベント取扱いメソッドを呼び出すイベント取扱いメッ
セージを発するスタート・メソッドと、期待されたイベ
ントと入力されたイベントを比較して実行可能かどうか
を親オペレーションに返す可実行メソッドとを含むよう
にすることも考えられる。ここで、レスポンダ・メッセ
ージ又はメソッドは、responderメッセージ又はメソッ
ドを意味する。また、イベント取扱いメソッド又はメッ
セージは、handleEventメッセージを意味する。Further, the method that defines the common operation as an operation includes a responder method for transferring a responder message for searching for an operation that handles data to the parent operation, and the method specific to the primitive operation is the parent operation. In response to the start message from, the start method that issues an event handling message that calls the event handling method that handles the event as a primitive operation, and compares the expected event with the input event to determine whether it is executable. It is also conceivable to include an executable method that returns to the parent operation. Here, the responder message or method means a responder message or method. The event handling method or message means a handleEvent message.
【0030】動作エディタが、ループ複合オペレーショ
ンについての入力の場合には、初期動作メッセージに対
する初期動作と、終了動作メッセージに終了動作と、各
繰り返しごとに行われる動作とを規定するメソッドと、
ループ複合オペレーションにおいて扱われるデータがあ
ればそのデータと、その場合にはそのデータの管理を行
うレスポンダ・メソッドを入力するように促すことも考
えられる。When the action editor is an input for a loop compound operation, a method for defining an initial action for the initial action message, an end action in the end action message, and an action to be performed for each iteration,
If there is data to be handled in the loop compound operation, the user may be prompted to input the data and, in that case, a responder method that manages the data.
【0031】また、動作エディタが、シーケンス複合オ
ペレーション及び選択複合オペレーションについての入
力の場合には、初期動作メッセージに対する初期動作
と、終了動作メッセージに終了動作とを規定するメソッ
ドと、シーケンス複合オペレーション及び選択複合オペ
レーションで扱われるデータがあればそのデータと、そ
の場合にはそのデータの管理を行うレスポンダ・メソッ
ドを入力するように促すことも考えられる。In the case where the operation editor is an input for a sequence compound operation and a selection compound operation, a method for defining an initial operation for the initial operation message and an end operation in the end operation message, a sequence compound operation and a selection operation If there is data to be handled by the compound operation, it is conceivable to prompt the user to input the data and, in that case, a responder method for managing the data.
【0032】さらに、動作エディタが、プリミティブ・
オペレーションについての入力の場合には,取り扱うイ
ベントと、それに対する動作を規定するメソッドを入力
するように促すようにすることも考えられる。Further, the operation editor includes a primitive
When inputting an operation, it is conceivable to prompt the user to input an event to be handled and a method that defines an operation corresponding to the event.
【0033】また、本発明の他の態様として、操作フロ
ーに対応する木構造及びその木構造のノードに対応する
オペレーション・オブジェクトを含む、作成されたプロ
グラムを格納するプログラム格納手段をさらに有し、フ
ロー・ブラウザ手段が、プログラム格納手段から既存の
プログラムを取り出して表示装置に表示させることがで
き、フロー・エディタ手段は、既存のプログラムの変更
を指示することができるようにしてもよい。このように
すると、既存のプログラムを再利用することができ、プ
ログラミングがより効率的になる。According to another aspect of the present invention, there is further provided program storage means for storing a created program including a tree structure corresponding to an operation flow and an operation object corresponding to a node of the tree structure, The flow browser means may retrieve the existing program from the program storage means and display it on the display device, and the flow editor means may be capable of instructing a change of the existing program. In this way, existing programs can be reused and programming becomes more efficient.
【0034】さらに本発明の他の態様として、作成され
たプログラムを実行するリアクティブ・システムをシミ
ュレーションする手段と、作成されたプログラムのどの
部分を実行しているかを表示装置に示すトレーサ手段と
をさらに有することも考えられる。これにより、作成し
たプログラムのテストまで行うことができる。As still another aspect of the present invention, there are provided means for simulating a reactive system for executing the created program, and tracer means for indicating on the display device which part of the created program is being executed. It is also conceivable to have. As a result, it is possible to perform a test of the created program.
【0035】[0035]
【実施例】ユーザがリアクティブ・システムの要求に従
って行う操作(オペレーション)という観点からシステム
を解析することから始める。そのオペレーションをプリ
ミティブと複合オペレーションに分類する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS We begin by analyzing the system in terms of the operations that the user performs in accordance with the requirements of the reactive system. Classify the operation into primitive and composite operations.
【0036】このプリミテイブ・オペレーションは、入
力装置(ボタン、キーパッド)を用いたユーザによる単純
動作を表す。例えば、図1に示すようにボタンP1、P
2を押すことが、プリミティブ・オペレーションであ
る。This primitive operation represents a simple operation by a user using an input device (button, keypad). For example, as shown in FIG.
Pressing 2 is a primitive operation.
【0037】システムの仕様の中で通常明示的に述べら
れているプリミティブ・オペレーションとは対照的に、
複合オペレーションはプリミティブ又は他の複合オペレ
ーションの論理的集合である。例えば、図1に示すよう
に連続してボタンP1及びP2を押すことは複合オペレ
ーションであり、これは2つのプリミティブ・オペレー
ションがシーケンシャルに組み合わされたものである。
P1及びP2を押す動作は、その複合オペレーションの
メンバ・オペレーションと呼ばれ、図ではCS1と記載
されている。図1はまた、ループ複合オペレーション
(CL1)をも示している。このCL1はメンバ・オペ
レーションCS1を繰り返し実行する。図2に示すよう
にさまざまな種類の複合オペレーションがある。In contrast to the primitive operations which are usually explicitly stated in the system specification,
A compound operation is a logical collection of primitives or other compound operations. For example, pressing the buttons P1 and P2 sequentially as shown in FIG. 1 is a compound operation, which is a sequential combination of two primitive operations.
The operation of pressing P1 and P2 is called a member operation of the composite operation, and is described as CS1 in the figure. FIG. 1 also shows a loop compound operation (CL1). This CL1 repeatedly executes the member operation CS1. There are various types of compound operations as shown in FIG.
【0038】図14の例を考えてみることにより、動作
とデータをオペレーションに関連付けてみる。プリミテ
ィブ・オペレーションP1及びP2は、バリュー・カウ
ンタをそれぞれ2、−1インクリメントする。ループ複
合オペレーションCL1は2つのカウンタ、ループとバ
リューを含む。一般に、複合オペレーションは2つの動
作、初期、及び終了動作を有している。この動作は、そ
れぞれオペレーションの入口で、及びオペレーションか
らの出口で実行される。例えば、ループ複合オペレーシ
ョンCL1は、2つのカウンタを初期化するという初期
動作を有し、終了動作は空である。加えて、CL1はル
ープ・カウンタを1ずつインクリメントする「各繰り返
し」動作を有する。図3は、入れ子式のボックス型にし
た例である。Considering the example of FIG. 14, let's associate operations and data with operations. Primitive operations P1 and P2 increment the value counter by 2, -1 respectively. The loop compound operation CL1 includes two counters, a loop and a value. In general, a compound operation has two operations, an initial operation and an end operation. This operation is performed at the entry of the operation and at the exit from the operation, respectively. For example, the loop composite operation CL1 has an initial operation of initializing two counters, and the end operation is empty. In addition, CL1 has a "each iteration" operation that increments the loop counter by one. FIG. 3 shows an example of a nested box type.
【0039】図4に図16で示したカスタム化したシス
テムを簡単にしたものを示す。ボタンP3を表すプリミ
ティブ・オペレーションと、プリミティブ・オペレーシ
ョンP1及びP3を含む選択オペレーションが付加され
ている。選択オペレーションは、操作フローの元のプリ
ミティブ・オペレーションを置換するものである。FIG. 4 shows a simplified version of the customized system shown in FIG. A primitive operation representing the button P3 and a selection operation including the primitive operations P1 and P3 are added. The select operation replaces the original primitive operation in the operation flow.
【0040】このようにして認識されたオペレーション
は、オペレーション・オブジェクトとしてモデル化し、
「オペレーション(Operation)」クラスのインスタンス
(正確には、その派生クラス(derived class)の1つ)
として実施される。複合オペレーションのオブジェクト
は、そのメンバ・オペレーションを表すオペレーション
・オブジェクトに対する参照を含む。このように全シス
テムの操作フローは、オペレーション・オブジェクトの
ツリーとして表され、ツリーの葉はプリミティブ・オペ
レーションを示す。図5に図14のシステムのツリー表
現が示される。The operation thus recognized is modeled as an operation object,
An instance of the "Operation" class (to be precise, one of its derived classes)
Will be implemented as The compound operation object contains a reference to the operation object representing its member operation. In this way, the operation flow of the entire system is represented as a tree of operation objects, and the leaves of the tree indicate primitive operations. FIG. 5 shows a tree representation of the system of FIG.
【0041】本発明においては、上述したオペレーショ
ンのモデル化において、図6に示すようなクラス階層を
提案する。すなわち、オペレーション(Operation)クラ
スは、イベント・ソース(eventSources)というデータを
有し、initialize(初期化)メソッド、start(開始)メソ
ッド、canStart(キャンスタート,可実行)メソッド、re
sponder(レスポンダ)メソッド、computeES(イベントソ
ース計算)メソッドを有する。このオペレーション・ク
ラスは、基底クラスと呼ばれる。このオペレーション・
クラスの派生クラスにはプリミティブ(Primitive)クラ
スと複合(Composite)クラスがある。プリミティブ・ク
ラスは、initializeメソッド、startメソッド、canStar
tメソッド、handleEvent(イベント取扱い)メソッド、及
びcomputeES(イベントソース計算)メソッドを有する。
これに対し、複合クラスは、initializeメソッド、star
tメソッド、canContinue(キャンコンティニュ,可続行)
メソッド、initialAction(初期動作メソッド)、control
Children(子制御)メソッド、及びfinalAction(終了動
作)メソッドを有する。In the present invention, a class hierarchy as shown in FIG. 6 is proposed in the above-described operation modeling. That is, an operation (Operation) class has data called event sources (eventSources), and includes an initialize method, a start method, a canStart (can start) method, a re
It has a sponder (responder) method and a computeES (event source calculation) method. This operation class is called a base class. This operation
There are primitive classes and composite classes as derived classes. Primitive classes are initialize method, start method, canStar
It has a t method, a handleEvent (event handling) method, and a computeES (event source calculation) method.
In contrast, the composite class uses the initialize method, star
t method, canContinue (can continue, can continue)
Method, initialAction (initial action method), control
It has a Children (child control) method and a finalAction (end operation) method.
【0042】複合クラスには、シーケンス(Sequence)ク
ラス、選択(Selection)クラス、ループ(Loop)クラスと
いう派生クラスをさらに有する。シーケンス・クラス、
選択クラス、ループ・クラスともに、initializeメソッ
ド、canStartメソッド、controlChildrenメソッド、com
puteESメソッドを有するが、シーケンス・クラスはcanC
ontinueメソッドをさらに有し、ループ・クラスは、eac
hRepeat(各繰り返し)メソッドをさらに有する。The composite class further has derived classes called a Sequence class, a Selection class, and a Loop class. Sequence class,
Initialize method, canStart method, controlChildren method, com for both selection class and loop class
Has puteES method, but the sequence class is canC
It also has an ontinue method, and the loop class
It further has an hRepeat (each iteration) method.
【0043】このプリミティブ・クラスとシーケンス・
クラス、選択クラス、ループ・クラスは、その派生クラ
スを設定し、それぞれに特有のメソッドを定義してその
オペレーションに必要な機能を果たすよう規定すること
ができる。This primitive class and sequence
Classes, selection classes, and loop classes can set their derived classes and define their own methods to perform the functions required for their operations.
【0044】この他のクラスとしては、ExpectedEvent
(期待されたイベント)クラスがある。これはプリミティ
ブ・クラスから接続されているが、プリミティブ・クラ
スがExpectedEventクラスにより特定されるイベントを
扱うことを期待されていることを示す。ExpectedEvent
クラスは、isReadyメソッドを有する。また、ExpectedE
ventクラスは2つの派生クラス、この場合にはリアクテ
ィブ・システムにおいて必要なボタン操作及びタイムア
ウト操作に対応するButtom(ボタン)クラス及びTimeOut
(タイムアウト)クラスがある。どのようなイベントを扱
うかということを記憶する必要があるので、キー・コー
ド(Keycode)やタイム(time)といったデータを保持して
いる。また、ExpectedEventクラスの派生クラスとし
て、isReadyメソッドを有している。As another class, ExpectedEvent
There is a (expected event) class. This indicates that the primitive class is connected but is expected to handle the event specified by the ExpectedEvent class. ExpectedEvent
The class has an isReady method. Also, ExpectedE
The vent class has two derived classes, in this case, a Buttom class and a TimeOut that correspond to the button and timeout operations required in the reactive system.
There is a (timeout) class. Since it is necessary to memorize what kind of event is handled, data such as a key code and a time are stored. Further, it has an isReady method as a derived class of the ExpectedEvent class.
【0045】以下、オブジェクト指向のシステムについ
て基本的な事項を説明し、その後このようなクラス階層
を有するオブジェクトを用いたシステムの例を説明する
ことにより、どのようにシステムが動作するかを示す。The basic operation of an object-oriented system will be described below, and then an example of a system using objects having such a class hierarchy will be described to show how the system operates.
【0046】オブジェクト指向のシステムにおいては、
複数のオブジェクトが互いにメッセ−ジを送りあい、各
オブジェクトがそれらのメッセ−ジに対して適当な動作
をすることによりシステムとしての機能を遂行してい
く。オブジェクトはあるクラスのインスタンスであり、
内部にメッセ−ジを処理するためのメソッド (method)
をクラスの階層構造に従ってグループ分けして持ってい
る。メッセ−ジを受け取るとオブジェクトは、対応する
メソッドを派生クラスに対応するグループから基底クラ
スに対応するグループまで順次探して、最初に見つけた
メソッドを実行する(インヘリタンス・継承機能)。例
えば図7のループ・オブジェクトの場合、オペレーショ
ン・クラスから最派生クラスであるCL1クラスまであ
るが、CL1クラスが最優先され、CL1クラスで規定
されていないメソッドに関してはループ・クラスのメソ
ッドが用いられる。図7では、右側の列のカッコのつい
たメソッドは、派生クラスの方が用いられる。同様にし
て見ていくと、オペレーション・クラスにおいて直接用
いられるのはreponderメソッドのみとなる。このよう
に、基底クラスで定義されているメソッドで派生クラス
で再定義されたメソッドは、基底クラスのメソッドをオ
ーバーライド(override)するといい、外部から基底クラ
スのメソッドを見えなくするが、派生クラスのメソッド
から基底クラスのメソッドを呼ぶことはできる。In an object-oriented system,
A plurality of objects send messages to each other, and each object performs a function as a system by performing an appropriate operation on the messages. An object is an instance of a class,
Internal method for processing messages
Are grouped according to the class hierarchy. Upon receiving the message, the object sequentially searches for the corresponding method from the group corresponding to the derived class to the group corresponding to the base class, and executes the first method found (inheritance / inheritance function). For example, in the case of the loop object in FIG. 7, there is a CL1 class which is the most derived class from the operation class, but the CL1 class has the highest priority, and a method of the loop class is used for a method not defined by the CL1 class. . In FIG. 7, the parenthesized method in the right column is used by the derived class. Looking similarly, only the responder method is used directly in the operation class. In this way, the method defined in the base class and redefined in the derived class is said to override the method of the base class, and makes the method of the base class invisible from the outside. You can call base class methods from methods.
【0047】図5をカスタム化した例である図8に示す
システムについてその動作を示す。このシステムは、図
9に示すような階層構造を有するオブジェクトが組み合
わされたものとなる。実際の動作は、同じメソッドであ
っても異なるクラスであれば機能が異なるので、以下の
説明でも注意されたい。The operation of the system shown in FIG. 8, which is a customized example of FIG. 5, will be described. In this system, objects having a hierarchical structure as shown in FIG. 9 are combined. The actual operation is different even for the same method in different classes, so note the following description.
【0048】システムの動作は操作フローを表す操作木
の根 (Root)に以下のメッセージを順次送ることに開始
される。 1) initialize メッセージ 2) computeES メッセージ 3) start メッセージ そこで、initializeメッセージから説明していく。The operation of the system starts by sequentially sending the following messages to the root of the operation tree representing the operation flow. 1) initialize message 2) computeES message 3) start message So we will start with the initialize message.
【0049】1.1 initialize メッセージ initializeメッセージは、システムの開始時に操作フロ
ーを表す操作木の根(Root)から、順次木構造に沿ってす
べての木の葉(Leaf)まで送られ、必要な初期設定を行
う。1.1 Initialize Message The initialize message is sent from the root of the operation tree representing the operation flow (Root) at the start of the system to all the leaves (Leaf) of the tree along the tree structure, and performs necessary initialization.
【0050】1.1.1 ループ11に送られるinitialize
メッセージ initializeメッセージが、オブジェクト(ループ11)に
送られた場合は、 1) initializeメソッドがループ11内で探索されLoop
クラスで見つかる。 2) そのinitializeメソッド(Loopクラス)が実行され、
実行中に a)Compositeクラスのinitializeメソッドを呼ぶと、ini
tializeメッセージがループ11の子オペレーションで
あるシーケンス13に再帰的に送られる。 b)CL1クラス特有の初期設定の処理を行う。(もし、CL1
クラス特有の初期設定の処理を行う必要がなければ、CL
1クラスでinitializeメソッドのオーバーライド(overri
de)をしない。この時は、Compositeクラスのinitialize
メソッドが実行される。この図9では必要ないので省略
されている。)1.1.1 initialize sent to loop 11
Message When the initialize message is sent to the object (Loop 11), 1) The initialize method is searched in Loop 11 and Loop
Found in class. 2) The initialize method (Loop class) is executed,
During execution a) Calling the initialize method of the Composite class will cause ini
A tialize message is recursively sent to sequence 13 which is a child operation of loop 11. b) Perform CL1 class specific initialization processing. (If, CL1
CL if you don't need to do class-specific initialization
Override the initialize method in one class (overri
do not do de). In this case, initialize the Composite class
The method is executed. In FIG. 9, it is omitted because it is not necessary. )
【0051】1.1.1.1 Compositeクラスのinitializeメ
ソッド Compositeクラスで定義されているinitializeメソッド
は、すべての子オペレーションにinitializeメッセージ
を再帰的に送る。1.1.1.1 Initialize Method of Composite Class The initialize method defined in the Composite class recursively sends an initialize message to all child operations.
【0052】1.1.2 シーケンス13に送られるinitial
izeメッセージ initializeメッセージがオブジェクト(シーケンス13)
に送られた場合は、 1) initializeメソッドがシーケンス13内で探索され
Sequenceクラスで見つかる。 2) そのinitializeメソッド(Sequenceクラス)が実行さ
れ、実行中に a)Compositeクラスのinitializeメソッドを呼ぶと、ini
tializeメッセージがシーケンス13の子オペレーショ
ンである選択15とP2(17)に再帰的に送られる。 b)CS1クラス特有の初期設定の処理を行う。1.1.2 initial sent to sequence 13
ize message initialize message is an object (sequence 13)
1) the initialize method is searched in sequence 13
Found in the Sequence class. 2) The initialize method (Sequence class) is executed, and during execution a) Calling the initialize method of the Composite class
The tialize message is sent recursively to the selection 13 and P2 (17), which are the child operations of sequence 13. b) Perform the initial setting process specific to the CS1 class.
【0053】1.1.3 選択15に送られるinitializeメ
ッセージ initializeメッセージがオブジェクト(選択15)に送ら
れた場合は、 1) initializeメソッドが選択15内で探索され、Sele
ctionクラスで見つかる。 2) そのinitializeメソッド(Selectionクラス)が実行
され、実行中に a)Compositeクラスのinitializeメソッドを呼ぶと、ini
tializeメッセージが選択15の子オペレーションであ
るP1(19)とP3(21)に再帰的に送られる。 b)SL1クラス特有の初期設定の処理を行う。1.1.3 Initialize Message Sent to Selection 15 If an initialize message is sent to the object (selection 15), 1) the initialize method is searched in selection 15 and Sele
Found in the ction class. 2) The initialize method (Selection class) is executed, and during execution a) Calling the initialize method of the Composite class
The tialize message is sent recursively to the selection 15 child operations P1 (19) and P3 (21). b) Perform the initialization process specific to the SL1 class.
【0054】1.1.4 P1(19), P2(17)とP
3(21)に送られるinitializeメッセージ 原子的操作であるため、この操作に関する初期設定の処
理を行う。特に何も行わないのであれば、P1,P2とP3ク
ラスでinitializeメソッドのオーバーライド(override)
をする必要がない。1.1.4 P1 (19), P2 (17) and P
Initialize message sent to 3 (21) Since this is an atomic operation, an initial setting process for this operation is performed. Unless you do nothing, override the initialize method in P1, P2 and P3 classes
You don't have to.
【0055】1.2 computeES メッセージ イベント・ソース計算(computeES)は、あるオブジェク
トが実行される可能性を予め知っておくために行われ
る。イベント・ソースとは、例えば操作を開始させるこ
とができるイベントを生成する入力デバイスなどであっ
て、キーボード、キーパッド等である。1.2 computeES Message The event source calculation (computeES) is performed in order to know in advance the possibility that an object will be executed. The event source is, for example, an input device that generates an event that can start an operation, such as a keyboard and a keypad.
【0056】まず、ESEXITを導入する。このESEXIT
は、図10(a)に示すように、あるオペレーションが
終了し、他のオペレーションを開始させることができる
ようなイベントを生成するイベント・ソースである。こ
れに対し、ESENTRYはオペレーションを開始させるこ
とができるようなイベントを生成するイベント・ソース
である。例えば、図10(a)のオペレーションがプリ
ミティブ・オペレーションであれば、当然ES
ENTRYは、プリミティブ・オペレーションで予期してい
るイベント・ソース(例えば、ボタンP1)である。First, ES EXIT is introduced. This ES EXIT
As shown in FIG. 10A, is an event source that generates an event such that an operation is completed and another operation can be started. ES ENTRY , on the other hand, is an event source that generates events that can initiate operations. For example, if the operation in FIG. 10A is a primitive operation,
ENTRY is the event source (eg, button P1) expected by the primitive operation.
【0057】ESEXIT及びESENTRYは、C1・・・Cn
で構成されるシーケンス・オペレーションの場合、次の
連立方程式で与えられる。ES EXIT and ES ENTRY are C 1 ... C n
Is given by the following simultaneous equations:
【0058】[0058]
【数1】 (Equation 1)
【0059】[0059]
【数2】 (Equation 2)
【0060】[0060]
【数3】 (Equation 3)
【0061】また、C1・・・Cnで構成される選択オペ
レーションのESEXIT及びESENTRYは、次の連立方程
式で与えられる。Further, ES EXIT and ES ENTRY of the selection operation composed of C 1 ... C n are given by the following simultaneous equations.
【0062】[0062]
【数4】 (Equation 4)
【0063】[0063]
【数5】 (Equation 5)
【0064】さらに、Cという子オペレーションを有す
るループ・オペレーションは、次のようになる。Further, a loop operation having a child operation C is as follows.
【0065】[0065]
【数6】 (Equation 6)
【0066】[0066]
【数7】 (Equation 7)
【0067】これらの連立方程式は、ボトムアップで
(プリミティブ・オペレーションから、操作木のルート
・オペレーションへ)、且つ後方から先頭へ(いかなる
オペレーション・オブジェクトに対してもESEXITから
ESENTRYへ、またシーケンス・オペレーションの場合
には最後の子オペレーションから最初の子オペレーショ
ンへ)計算していく。すなわち、イベント・ソースの計
算を命じるcomputeESメッセージにはESEXITのイベン
ト・ソースが含まれている。但し、境界条件である、ル
ートにおけるESEXITは空である。These simultaneous equations are bottom-up (from primitive operations to the root operation of the operation tree) and from back to top (from ES EXIT to ES ENTRY for any operation object, and the sequence In the case of an operation, calculation is performed from the last child operation to the first child operation. That is, the computeES message instructing the calculation of the event source includes the event source of ES EXIT . However, ES EXIT in the route, which is a boundary condition, is empty.
【0068】上述したように、computeESメッセージは
操作フローを表す操作木のルートから、順次木構造に沿
ってすべての木の葉 (Leaf)まで送られイベント・ソー
スの計算を行わせる。イベント・ソースの計算は各複合
オペレーション・クラスに依って異なるが、以下の説明
で分かるように、各複合オペレーション・クラスに適し
たcomputeESメソッドが実行されている。As described above, the computeES message is sent from the root of the operation tree representing the operation flow to all the leaves (Leaf) of the tree along the tree structure to calculate the event source. Although the calculation of the event source is different for each composite operation class, as will be understood from the following description, a computeES method suitable for each composite operation class is executed.
【0069】1.2.1 ループ11に送られるcomputeESメ
ッセージ computeESメッセージがオブジェクト(ループ11)に送
られた場合は、 1) computeESメソッドがループ11内で探索されloop
クラスで見つかる。 2) そのcomputeESメソッド(Loopクラス)が実行され、
実行中に a)computeESメッセージがループ11の子オペレーショ
ンであるシーケンス13に再帰的・反復的に送られ、シ
ーケンス13のイベント・ソースの計算が行われる。 b)ループ13のイベント・ソースの計算が行われる。数
6及び数7を参照のこと。1.2.1 ComputeES Message Sent to Loop 11 When the computeES message is sent to the object (loop 11), 1) the computeES method is searched in loop 11 and loop
Found in class. 2) The computeES method (Loop class) is executed,
During execution: a) The computeES message is recursively and repetitively sent to the sequence 13 which is a child operation of the loop 11, and the event source of the sequence 13 is calculated. b) The calculation of the event source of the loop 13 is performed. See Equations 6 and 7.
【0070】1.2.2 シーケンス13に送られるcompute
ESメッセージ computeESメッセージがオブジェクト(シーケンス13)
に送られた場合は、 1) computeESメソッドがシーケンス13内で探索されS
equenceクラスで見つかる。 2) そのcomputeESメソッド(Sequenceクラス)が実行さ
れ、実行中に a)computeESメッセージがシーケンスの子オペレーショ
ンである選択15とP2(17)に再帰的に送られ、選
択15とP2(17)のイベント・ソースの計算が行わ
れる。 b)シーケンス13のイベント・ソースの計算が行われ
る。数1、数2、及び数3参照のこと。1.2.2 compute sent to sequence 13
ES message computeES message is an object (sequence 13)
1) The computeES method is searched in sequence 13 and S
Found in the equence class. 2) The computeES method (Sequence class) is executed, and during execution a) the computeES message is recursively sent to the selection 15 and P2 (17), which are child operations of the sequence, and the events of selection 15 and P2 (17) -Source calculation is performed. b) Calculation of the event source of sequence 13 is performed. See Equations 1, 2, and 3.
【0071】1.2.3 選択15に送られるcomputeESメッ
セージ computeESメッセージがオブジェクト(選択15)に送ら
れた場合は、 1) computeESメソッドが選択15内で探索され、Selec
tionクラスで見つかる。 2) そのcomputeESメソッド(Selectionクラス)が実行さ
れ、実行中に a)computeESメッセージが選択15の子オペレーション
であるP1(19)とP3(21)に再帰的に送られ、
P1(19)とP3(21)のイベント・ソースの計算
が行われる。 b)選択15のイベント・ソースの計算が行われる。1.2.3 ComputeES Message Sent to Selection 15 If the computeES message is sent to the object (selection 15), 1) the computeES method is searched in selection 15 and
found in the tion class. 2) The computeES method (Selection class) is executed and during execution: a) The computeES message is recursively sent to the child operations P1 (19) and P3 (21) of the selection 15,
The calculation of the event sources of P1 (19) and P3 (21) is performed. b) The calculation of the event source of selection 15 is performed.
【0072】1.2.4 P1(19), P2(17)とP
3(21)に送られるcomputeESメッセージ 原子的操作であるため、対応するExpectedEventクラス
からイベント・ソースの計算を行う。1.2.4 P1 (19), P2 (17) and P
3 ComputeES message sent to (21) Since this is an atomic operation, the event source is calculated from the corresponding ExpectedEvent class.
【0073】1.3 startメッセージ startメッセージが操作フローを表す操作木のルート(Ro
ot)に送られ システムの操作が開始される。各オペレー
ション・オブジェクトのstartメソッドの実行中は、複
数の子オペレーションの中から次に実行する子オペレー
ションを決めるためのcanStartメッセージや 現オペレ
ーションが終了して親のオペレーションに戻れるかを決
めるためのcanContinueメッセージが送られながら進行
していく。1.3 start message The start message indicates the root of the operation tree (Ro
ot) to start system operation. During the execution of the start method of each operation object, a canStart message to determine the next child operation to be executed from among multiple child operations and a canContinue message to determine whether the current operation ends and returns to the parent operation It progresses while being sent.
【0074】1.3.1 ループ11に送られるstartメッセ
ージ startメッセージがオブジェクト(ループ11)に送られ
た場合は、 1) startメソッドがループ11内で探索され、Composi
teクラスで見つかる。 2) そのstartメソッド(Compositeクラス)が実行され、
実行中に a)initialActionメッセージが自分自身(ループ11)に
送られる。 i)initialActionメソッドがループ11内で探索され、C
L1クラスで見つかる。 ii)そのinitialActionメソッド(CL1クラス)が実行され
る。 b)controlChildrenメッセージが自分自身(ループ11)
に送られる。 i)controlChildrenメソッドがループ11内で探索さ
れ、Loopクラスで見つかる。 ii)そのcontrolChildrenメソッド(Loopクラス)が実行さ
れる(1.3.1.1を参照のこと)。 c)finalActionメッセージが自分自身(ループ11)に
送られる。 i)finalActionメソッドがループ11内で探索され、CL1
クラスで見つかる。 ii)そのfinalActionメソッド(CL1クラス)が実行され
る。1.3.1 Start Message Sent to Loop 11 When the start message is sent to the object (loop 11), 1) the start method is searched in the loop 11 and the start method is searched.
Found in the te class. 2) The start method (Composite class) is executed,
During execution: a) An initialAction message is sent to itself (Loop 11). i) The initialAction method is searched in loop 11 and C
Found in L1 class. ii) The initialAction method (CL1 class) is executed. b) The controlChildren message is itself (loop 11)
Sent to i) The controlChildren method is searched in Loop 11 and found in the Loop class. ii) The controlChildren method (Loop class) is executed (see 1.3.1.1). c) A finalAction message is sent to itself (Loop 11). i) The finalAction method is searched in loop 11 and CL1
Found in class. ii) The finalAction method (CL1 class) is executed.
【0075】1.3.1.1 LoopクラスのcontrolChildrenメ
ソッド Loopクラスで定義されているcontrolChildrenメソッド
は、次のことを反復しておこなう。 1) 次の入力イベントを待つ。 2) canStartメッセージをループ11の子オペレーショ
ンであるシーケンス13に送る。 3) canStartメッセージの答えが'YES'の場合には、sta
rtメッセージをループ11の子オペレーションであるシ
ーケンスに送る。 4) canStartメッセージの答えが'NO'或は'NOP'(NOP
とは、Possible No-Operationの意味であって、何もせ
ずに次のオペレーションに進むことができるということ
である。)の場合には、canContinueメッセージを自分自
身に送り、その答えが'YES'の場合にはcontrolChildren
メソッドの実行を終了する。 a)自分自身に送られたcanContinueメッセージは、ルー
プ11内で探索され、Compositeクラス内で見つかる。 b)そのcanContinueメソッド (Compositeクラス)が実行
される。 5) その他の場合は、エラー・メッセージを出して こ
の入力イベントを無視し、最初のステップに戻る。1.3.1.1 ControlChildren Method of Loop Class The controlChildren method defined in the Loop class repeatedly performs the following. 1) Wait for the next input event. 2) Send a canStart message to sequence 13 which is a child operation of loop 11. 3) If the answer to the canStart message is 'YES', sta
Send the rt message to the sequence that is a child operation of loop 11. 4) The answer to the canStart message is 'NO' or 'NOP' (NOP
"Possible No-Operation" means that you can proceed to the next operation without doing anything. ), Send a canContinue message to yourself, and if the answer is 'YES', controlChildren
End the method execution. a) The canContinue message sent to itself is searched in loop 11 and found in the Composite class. b) The canContinue method (Composite class) is executed. 5) Otherwise, issue an error message, ignore this input event, and return to the first step.
【0076】1.3.1.2 CompositeクラスのcanContinue
メソッド Compositeクラスで定義されたcanContinueメソッドは、
一般には親オペレーション(Operation Object) にcanCo
ntinueメッセージを送るが、ループ11には親オペレー
ションがないので'YES'をかえす。1.3.1.2 Composite class canContinue
Method The canContinue method defined in the Composite class is
Generally, parent operation (Operation Object) canCo
Although an ntinue message is sent, "YES" is returned because there is no parent operation in loop 11.
【0077】1.3.1.3 LoopクラスのcanStartメソッド Loopクラスで定義された canStartメソッドは、子オペ
レーションにcanStartメッセージを送り、その結果を返
す。1.3.1.3 CanStart Method of Loop Class The canStart method defined in the Loop class sends a canStart message to a child operation and returns the result.
【0078】1.3.2 シーケンス13に送られるstartメ
ッセージ startメッセージがオブジェクト(シーケンス13)に送
られた場合は、 1) startメソッドがシーケンス13内で探索され、Com
positeクラスで見つかる。 2) そのstartメソッド(Compositeクラス)が実行され、
実行中に a)initialActionメッセージが自分自身(シーケンス1
3)に送られる。 i)initialActionメソッドがシーケンス13内で探索さ
れ、CS1クラスで見つかる。 ii)そのinitialActionメソッド(CS1クラス)が実行され
る。 b)controlChildrenメッセージが自分自身(シーケンス
13)に送られる。 i)controlChildrenメソッドがシーケンス13内で探索
され、Sequenceクラスで見つかる。 ii)そのcontrolChildrenメソッド (Sequenceクラス)が
実行される(1.3.2.1を参照のこと)。 c)finalActionメッセージが自分自身(シーケンス1
3)に送られる。 i)finalActionメソッドがシーケンス13内で探索さ
れ、CS1クラスで見つかる。 ii)そのfinalActionメソッド(CS1クラス)が実行され
る。1.3.2 start message sent to sequence 13 When the start message is sent to the object (sequence 13), 1) the start method is searched in sequence 13 and
Found in the posite class. 2) The start method (Composite class) is executed,
During execution: a) The initialAction message is itself (sequence 1
Sent to 3). i) The initialAction method is searched in sequence 13 and found in the CS1 class. ii) The initialAction method (CS1 class) is executed. b) A controlChildren message is sent to itself (sequence 13). i) The controlChildren method is searched in sequence 13 and found in the Sequence class. ii) The controlChildren method (Sequence class) is executed (see 1.3.2.1). c) The finalAction message is itself (sequence 1
Sent to 3). i) The finalAction method is searched in sequence 13 and found in the CS1 class. ii) The finalAction method (CS1 class) is executed.
【0079】1.3.2.1 SequenceクラスのcontrolChildr
enメソッド Sequenceクラスで定義されているcontrolChildrenメソ
ッドは、自分の子オペレーションである選択15とP2
(17)にstartメッセージを順次送る。一般に、Seque
nceクラスで定義されている controlChildrenメソッド
は、自分の子オペレーションすべてに、順番にstartメ
ッセージ送り、最後の子オペレーションにstartメッセ
ージ送った後、終了する。1.3.2.1 Sequence class controlChildr
The en method The controlChildren method defined in the Sequence class has its own child operations, selection 15 and P2
A start message is sequentially sent to (17). Generally, Seque
The controlChildren method defined in the nce class sends a start message to all its child operations in order, sends a start message to the last child operation, and ends.
【0080】1.3.2.2 SequenceクラスのcanContinueメ
ソッド このSequenceクラスのcanContinueメソッドは、本例に
おいては用いられないので、後に他の例にて説明する。1.3.2.2 CanContinue Method of Sequence Class The canContinue method of the Sequence class is not used in this example, and will be described later in another example.
【0081】1.3.2.3 SequenceクラスのcanStartメソ
ッド Sequenceクラスで定義されたcanStartメソッドは、次の
動作を行う。 1) j = 1 とする。 2) j-番目の子オペレーションにcanStartメッセージを
送る。 3-a) その答えが'YES'の時、'YES'をcanStartの答えと
して返す。 3-b) その答えが'NO'の時、'NO'をcanStartの答えとし
て返す。 3-c) その答えが'NOP'の時、j = j + 1 として、j が
子オペレーションの数以下の時は、ステップ2へ戻る。
その他の時は、'NOP'をcanStartの答えとして返す。1.3.2.3 canStart Method of Sequence Class The canStart method defined in the Sequence class performs the following operation. 1) Set j = 1. 2) Send a canStart message to the j-th child operation. 3-a) If the answer is 'YES', return 'YES' as the answer to canStart. 3-b) If the answer is 'NO', return 'NO' as the answer to canStart. 3-c) When the answer is 'NOP', j = j + 1 and j becomes
If the number is smaller than the number of child operations, the process returns to step 2.
At other times, return 'NOP' as the answer to canStart.
【0082】1.3.3 選択15に送られるstartメッセー
ジ startメッセージがオブジェクト(選択15)に送られた
場合は、 1) startメソッドが選択15内で探索され、Composite
クラスで見つかる。 2) そのstartメソッド(Compositeクラス)が実行され、
実行中に a)initialActionメッセージが自分自身(選択15)に
送られる。 i)initialActionメソッドが選択15内で探索され、SL1
クラスで見つかる。 ii)そのinitialActionメソッド(SL1クラス)が実行され
る。 b)controlChildrenメッセージが自分自身(選択15)
に送られる。 i)controlChildrenメソッドが選択15内で探索され、S
electionクラスで見つかる。 ii)そのcontrolChildrenメソッド (Selectionクラス)が
実行される(1.3.3.1を参照のこと)。 c)finalActionメッセージが自分自身(選択15)に送
られる。 i)finalActionメソッドが選択15内で探索され、SL1ク
ラスで見つかる。 ii)そのfinalActionメソッド(SL1クラス)が実行され
る。1.3.3 Start Message Sent to Selection 15 If a start message is sent to the object (selection 15), 1) the start method is searched in selection 15 and
Found in class. 2) The start method (Composite class) is executed,
During execution: a) An initialAction message is sent to itself (selection 15). i) The initialAction method is searched in selection 15 and SL1
Found in class. ii) The initialAction method (SL1 class) is executed. b) The controlChildren message is myself (selection 15)
Sent to i) The controlChildren method is searched in selection 15 and S
Found in the election class. ii) The controlChildren method (Selection class) is executed (see 1.3.3.1). c) A finalAction message is sent to itself (selection 15). i) The finalAction method is searched in selection 15 and found in the SL1 class. ii) The finalAction method (SL1 class) is executed.
【0083】1.3.3.1 SelectionクラスのcontrolChild
renメソッド Selectionクラスで定義されているcontrolChildrenメソ
ッドdは、自分の子オペレーションであるP1(19)
とP3(21)に、canStartメッセージを順次'YES'の
答えが返されるか、最後の子オペレーションまで送
る。'YES'の答えが返された場合は、その子オペレーシ
ョンにstartメッセージを送った後、controlChildrenメ
ソッドから復帰する。すべての子オペレーションから'N
O'の答えが返された場合は、エラー・メッセージを出し
てこの入力イベントを無視し、最初のステップに戻る。
ある子オペレーションから'NOP'の答えが返された場合
は、自分自身にcanContinueメッセージを送り(上述した
ように、compositeクラスのcanContinueメソッドが親オ
ペレーションにcanContinueメッセージを転送する。)、
controlChildrenメソッドから復帰する。一般に、Selec
tionクラスで定義されているcontrolChildrenメソッド
は、自分の子オペレーションのすべてに上記のステップ
を適用する。1.3.3.1 ControlChild of Selection Class
ren method The controlChildren method d defined in the Selection class is its own child operation P1 (19)
To the P3 (21), send a canStart message in order until an answer of 'YES' is returned or until the last child operation. If the answer is 'YES', send a start message to the child operation and return from the controlChildren method. 'N from all child operations
If an O 'answer is returned, issue an error message, ignore this input event, and return to the first step.
If a child operation returns 'NOP', send a canContinue message to itself (as described above, the composite class's canContinue method forwards the canContinue message to the parent operation).
Return from controlChildren method. In general,
The controlChildren method defined in the tion class applies the above steps to all of its child operations.
【0084】1.3.3.2 SelectionクラスのcanStartメソ
ッド Selectionクラスで定義されたcanStartメソッドは、次
の動作を行う 1) 次の入力イベントを待つ。 2) canStartメッセージを最初の子オペレーションから
順次送る。(この例の場合はP1(19)とP3(2
1)) a)子オペレーションからのcanStartメッセージの答え
が'YES'の場合には、'YES'を答えとして返す。 b)子オペレーションからのcanStartメッセージの答え
が'NOP'の場合には、'NOP'を答えとして返す。 c)canStartメッセージの答えが'NO'の場合には、次の子
オペレーションに進む。 3) すべての子オペレーションからのcanStartメッセー
ジの答えが'NO'の場合には、'NO'を答えとして返す。1.3.3.2 canStart Method of Selection Class The canStart method defined by the Selection class performs the following operation 1) Waits for the next input event. 2) Send canStart messages sequentially from the first child operation. (In this example, P1 (19) and P3 (2
1)) a) If the answer to the canStart message from the child operation is "YES", return "YES" as the answer. b) If the answer to the canStart message from the child operation is 'NOP', return 'NOP' as the answer. c) If the answer to the canStart message is 'NO', go to the next child operation. 3) If the answer to the canStart message from all child operations is 'NO', return 'NO' as the answer.
【0085】1.3.4 P1(19), P2(17)とP
3(21)に送られるstartメッセージ startメッセージが、プリミティブ・オペレーションで
あるオブジェクトP1(19), P2(17)あるいは
P3(21)に送られた場合を同時に説明するが、実行
は別々に行われる。 1) startメソッドがP1(19),P2(17)あるい
はP3(21)内で探索され、Primitiveクラスで見つ
かる。 2) そのstartメソッド(Primitiveクラス)が実行され、
実行中に a)handleEventメッセージが自分自身(P1(19),P
2(17)あるいはP3(21))に送られる。 i)handleEventメソッドが、P1(19),P2(17)
あるいはP3(21)内で探索され、P1クラス, P2クラ
スあるいはP3クラスで見つかる。 ii)そのhandleEventメソッド(P1クラス, P2クラスある
いはP3クラス)が実行される。P1クラス, P2クラスある
いはP3クラスのhandleEventメソッドは、それぞれ独自
の処理を行う。1.3.4 P1 (19), P2 (17) and P
Start message sent to 3 (21) The case where the start message is sent to a primitive operation object P1 (19), P2 (17) or P3 (21) will be described at the same time, but the execution is performed separately. . 1) The start method is searched in P1 (19), P2 (17) or P3 (21) and found in the Primitive class. 2) The start method (Primitive class) is executed,
During execution a) The handleEvent message itself (P1 (19), P1
2 (17) or P3 (21)). i) handleEvent method is P1 (19), P2 (17)
Alternatively, it is searched in P3 (21) and found in P1, P2 or P3 class. ii) The handleEvent method (P1, P2 or P3 class) is executed. The handleEvent method of the P1, P2, or P3 class performs its own processing.
【0086】1.3.4.1 PrimitiveクラスのcanStartメソ
ッド Primitiveクラスで定義されたcanStartメソッドは、自
分と対応したExpectedEventと現在の入力イベントが一
致するかどうかを調べて(isReadyメッセージを自分自身
に送る。図6に示されたExpectedEventクラスの派生ク
ラスにあるisReadyメソッドが、保持しているデータを
用いて判断する。)、一致すれば'YES'を、一致しなけれ
は'NO'を答えとして返す。1.3.4.1 canStart Method of Primitive Class The canStart method defined in the Primitive class checks whether the ExpectedEvent corresponding to itself and the current input event match (sends itself an isReady message. FIG. 6). The isReady method in the derived class of the ExpectedEvent class shown in (2) uses the stored data to make the determination.) If the match is found, 'YES' is returned; if not, 'NO' is returned as the answer.
【0087】以上、各オペレーション・オブジェクトの
有する、操作フローに関連するメソッドの動作を説明し
た。但し、先に述べたようにシーケンス13のSequence
クラスのcanContinueメソッドの説明を行っていなかっ
たので、ここで行う。The operation of the method related to the operation flow of each operation object has been described above. However, as described above, Sequence 13 of Sequence 13
Since we did not explain the class's canContinue method, we do it here.
【0088】図11に1つの例を示す。この例では、シ
ーケンス・オペレーションSQがルートとなっており、
その子オペレーションとして選択オペレーションSL、
オペレーションC及びオペレーションDがある。選択オ
ペレーションSLの子オペレーションとしては、オペレ
ーションA及びオペレーションBがある。シーケンス・
オペレーションの子オペレーションの実行順序は図11
の左側から、すなわち選択オペレーションSLからであ
るとする。そして、オペレーションBがスキップ可能で
「空」でもよい場合で、オペレーションC(又は、D)
が開始できるイベントが入力された時の処理であること
を予め述べておく。FIG. 11 shows one example. In this example, the sequence operation SQ is the root,
Select operation SL as its child operation,
There are operation C and operation D. The child operations of the selection operation SL include an operation A and an operation B. sequence·
The execution order of the child operations of the operation is shown in FIG.
From the left, that is, from the selection operation SL. If operation B is skippable and may be "empty", operation C (or D)
It is described in advance that the process is performed when an event that can be started is input.
【0089】initializeメッセージ及びcomputeESメッ
セージの処理が終了して、操作木のルートにstartメッ
セージが与えられた場合、シーケンス・オペレーション
のCompositeクラスのstartメッセージが実行される。こ
のstartメッセージは、initialActionメッセージを自分
自身に送り、その処理をCS1クラスのメソッドが実行す
る。さらに、controlChildrenメッセージが自分自身に
送られ、SequenceクラスのcontrolChildrenメソッドが
実行される(上述の項目1.3.2参照のこと。)。このcontr
olChildrenメソッドは、順次startメッセージを子オペ
レーションに送る(上述の項目1.3.2.1参照のこと。)。
まず、ここでは選択オペレーションSLにstartメッセ
ージを送ることになる(図11の(1))。すると、上
述の項目1.3.3のごとくinitialActionを処理し、contro
lChildrenメッセージを処理する。Selectionクラスのco
ntrolChildrenメソッドは、上述の項目1.3.3.1で述べた
とおり、canStartメッセージを子オペレーションに順次
送る(図11の(2)(3))。When the processing of the initialize message and the computeES message is completed and a start message is given to the root of the operation tree, a start message of the Composite class of the sequence operation is executed. This start message sends an initialAction message to itself, and the process is executed by a method of the CS1 class. In addition, a controlChildren message is sent to itself, and the controlChildren method of the Sequence class is executed (see item 1.3.2 above). This contr
The olChildren method sequentially sends start messages to child operations (see item 1.3.2.1 above).
First, here, a start message is sent to the selection operation SL ((1) in FIG. 11). Then, the initialAction is processed as described in item 1.3.3 above, and contro
Process lChildren messages. Selection class co
The ntrolChildren method sequentially sends canStart messages to child operations as described in the above item 1.3.3.1 ((2) and (3) in FIG. 11).
【0090】ここで選択オペレーションSLの子オペレ
ーションであるオペレーションAが'NO'を返し、オペレ
ーションBが'NOP'を返した場合、Selectionクラスのco
ntrolChildrenメソッドは、自分自身にcanContinueメッ
セージを発する。するとCompositeクラスのcanContinue
メソッドが、親オペレーションにcanContinueメッセー
ジを転送する(図11の(4))。Here, if operation A, which is a child operation of selection operation SL, returns 'NO' and operation B returns 'NOP', co
The ntrolChildren method emits a canContinue message to itself. Then CanContinue of Composite class
The method transfers the canContinue message to the parent operation ((4) in FIG. 11).
【0091】ここで、親オペレーションであるシーケン
ス・オペレーションのcanContinueメソッドが検索され
て、Sequenceクラスに見いだすことができる。ここで、
以下のような動作を行う。Here, the canContinue method of the sequence operation, which is the parent operation, is searched and can be found in the Sequence class. here,
The following operation is performed.
【0092】1) 現在 i-番目の子オペレーションを実
行中とする時、j = i とする。 2) (j+1)番目の子オペレーションに、canStartメッセ
ージを送る(図11の(5)(6))。 3-a) その答えが'YES'の時、'YES'をcanContinueの答
えとして返す。 3-b) その答えが'NO'の時、'NO'をcanContinueの答え
として返す。 3-c) その答えが'NOP'の時、j = j + 1 として、j が
子オペレーションの数以下の時は、ステップ2へ戻る。
その他の時は、Compositeクラスで定義されたcanContin
ue メソッドを呼び出す。1) When the i-th child operation is currently being executed, j = i. 2) Send a canStart message to the (j + 1) th child operation ((5) (6) in FIG. 11). 3-a) If the answer is 'YES', return 'YES' as the answer to canContinue. 3-b) If the answer is 'NO', return 'NO' as the answer for canContinue. 3-c) When the answer is 'NOP', j = j + 1 and j becomes
If the number is smaller than the number of child operations, the process returns to step 2.
At other times, canContin defined in Composite class
Call the ue method.
【0093】Compositeクラスで定義されたcanContinue
メソッドが、親オペレーションにcanContinueメッセー
ジを送るのは同様である。[0093] canContinue defined in the Composite class
Similarly, the method sends a canContinue message to the parent operation.
【0094】次に、データ・フローについて説明する。
上述のようにその子オペレーションを開始させることに
加え、複合オペレーション・オブジェクトはそれ自身デ
ータを有しており、そのデータは子オペレーション・オ
ブジェクトによりセットされたり、尋ねられたりする。
そのデータは複合オペレーション・オブジェクト内にカ
プセル化されているので、複合オペレーション・オブジ
ェクトは、そのデータをセット又は問い合わせをするた
めに子オペレーションが送るメッセージを規定してい
る。また、データを含む複合オペレーションを探すため
に、複合オペレーション・オブジェクトは、responder
(レスポンダ)メソッドを提供する。Next, the data flow will be described.
In addition to initiating its child operations as described above, the compound operation object has its own data, which is set and queried by the child operation object.
Since the data is encapsulated in a compound operation object, the compound operation object defines the message that the child operation sends to set or query the data. Also, to find a compound operation that contains data, the compound operation object
(Responder) method is provided.
【0095】図12は図5の一部分を簡略化して示した
ものである。ここで、各オペレーションの中の30の符
合が付されたものは、データを表す。図5のループ・オ
ペレーション・オブジェクトは図3に示すように、バリ
ュー・カウンタを含んでいる。プリミティブ・オペレー
ションP1内のhandleEventメソッドは、バリュー・カ
ウンタを示すパラメータ"Value"と共にresponderメッセ
ージを自分自身に送る。自分自身のOperationクラスに
は、responderメソッドがあり、このOperationクラスの
メソッドはresponderメッセージを親オペレーション・
オブジェクトに転送する。ここでは、シーケンス・オペ
レーションCS1に送られる。シーケンス・オペレーシ
ョンにおいてresponderメソッドはOperationクラスにし
か存在しないので、同様に親のオペレーションCL1に
転送が行われる。オペレーションCL1内でresponder
メソッドの検索が行われ、CLoopクラスにresponderメソ
ッドが見つかる。このクラスのresponderはオーバーラ
イド(override)され、パラメータ"Value"を扱うことを
示すために、自分自身を表すポインタを返す。そしてオ
ペレーションP1がオペレーションCL1に対するポイ
ンタを得た後に、オペレーションP1はオペレーション
CL1にデータセットのためのメッセージを送ることが
でき、2でバリュー・カウンタをインクリメントする。FIG. 12 is a simplified view of a part of FIG. Here, the operation numbered 30 in each operation represents data. The loop operation object in FIG. 5 includes a value counter as shown in FIG. The handleEvent method in the primitive operation P1 sends a responder message to itself along with a parameter “Value” indicating a value counter. The Operation class of its own has a responder method. The method of this Operation class sends the responder message to the parent operation
Transfer to object. Here, it is sent to the sequence operation CS1. Since the responder method exists only in the Operation class in the sequence operation, the transfer is similarly performed to the parent operation CL1. Responder in operation CL1
A search for the method is performed, and a responder method is found in the CLoop class. This class's responder is overridden and returns a pointer to itself to indicate that it handles the parameter "Value". Then, after operation P1 has obtained a pointer to operation CL1, operation P1 can send a message for the data set to operation CL1 and increment the value counter at 2.
【0096】このようにすれば、カスタム化を行っても
何等問題が周りに波及しないことがわかる。図16に示
したようにP1の代わりとしてP3というプリミティブ
・オペレーションの導入を考えてみる。図8にツリー構
造を示し、選択オブジェクトSL1が、シーケンス操作
CS1とプリミティブ操作P1の間に挿入された。バリ
ュー・カウンタを含むループ操作CL1はP1の3レベ
ル上にある。このようにした場合、挿入された選択複合
オペレーションSL1のOperationクラスのresponderメ
ソッドが、オペレーションP1からのresponderメッセ
ージに応答して、その親オペレーションCS1に転送す
れば、後は上述と同様である。このようにして、カスタ
ム化は容易に行われる。In this way, it can be seen that even if the customization is performed, no problem spreads around. Consider the introduction of the primitive operation P3 instead of P1 as shown in FIG. FIG. 8 shows a tree structure in which the selected object SL1 is inserted between the sequence operation CS1 and the primitive operation P1. The loop operation CL1 including the value counter is three levels above P1. In this case, if the responder method of the Operation class of the inserted selected compound operation SL1 transfers the response to the responder message from the operation P1 to the parent operation CS1, the rest is the same as described above. In this way, customization is easily performed.
【0097】またオペレーション・オブジェクト間のメ
ッセージ送信についても、顕著な効果があることがわか
る。すなわち、オペレーション・オブジェクト間のメッ
セージ送信は、操作木の根(root)から、あるオペレーシ
ョン・オブジェクトへの経路に従ってのみ行われる。よ
り正確には、親オペレーション・オブジェクトはその直
接の子オペレーション・オブジェクトだけに(下方向)、
また子オペレーション・オブジェクトは直接の親オペレ
ーション又はその先祖オペレーション・オブジェクトだ
けに(上方向)メッセージを送ることができる。兄弟オペ
レーション・オブジェクト間ではメッセージのやり取り
はない。このことは、ユーザの操作に対応するプリミテ
ィブ・オペレーション・オブジェクトが影響を与えるオ
ペレーション・オブジェクトの数を少なくし、デバッグ
やテストを容易にする。It can also be seen that there is a remarkable effect on message transmission between operation objects. That is, message transmission between operation objects is performed only according to a path from the root of the operation tree to a certain operation object. More precisely, the parent operation object only has its immediate child operation objects (downward),
A child operation object can also send (upward) messages only to the immediate parent operation or its ancestor operation object. There is no message exchange between sibling operation objects. This reduces the number of operation objects affected by the primitive operation object corresponding to the user's operation, and facilitates debugging and testing.
【0098】さらに、デバッグやテストの簡単化すると
いう点では、以下の点でも該当する。すなわち、システ
ムの動作中に操作されるデータは、そのデータを保持す
るオペレーション・オブジェクトに対し所定のメッセー
ジを用いることにより、アクセスする必要があるオペレ
ーション・オブジェクトからはアクセス可能であり、そ
の他のオペレーション・オブジェクトからアクセスでき
ないように、局所化・分散化して保持される、という点
である。データは、それらにアクセスする必要のあるす
べてのオペレーション・オブジェクトの最低レベルの、
共通する先祖オペレーション・オブジェクトに保持され
る。これは、データを有するオペレーション・オブジェ
クトがresponderメッセージにより探索されることによ
り強制されている。このデータの「垂直的な」配置は、
データを変更・参照するオペレーション・オブジェクト
の数を少なくして、デバッグやテストを容易にする。Further, the following points also apply to simplifying debugging and testing. That is, data operated during the operation of the system can be accessed from the operation object that needs to be accessed by using a predetermined message for the operation object holding the data, and other operation The point is that it is kept localized and distributed so that it cannot be accessed from the object. Data is the lowest level of all operation objects that need to access them,
Retained in a common ancestor operation object. This is enforced by the operation object with the data being searched for by the responder message. The "vertical" arrangement of this data is
Reduce the number of operation objects that modify or reference data, making debugging and testing easier.
【0099】以上説明したシステムにおいては、カスタ
ム化が容易になり、各オペレーション・オブジェクトの
独立性、モデュラリティ(modularity)、及び部品化を高
めることができる。よって、このシステムを用いれば、
より簡単にプログラミングを支援するツールを作成でき
る。In the system described above, customization is facilitated, and the independence, modularity, and parts of each operation object can be increased. So, with this system,
Tools that support programming can be created more easily.
【0100】図13は、プログラミング・ツールの構成
図を示したものである。処理装置100は、部品格納装
置108とプログラム格納装置106に接続されてい
る。また、マウスやキーボード、プリンタといった入出
力装置104にも接続されている。そして処理の結果
や、プログラム等を表示装置102に表示するようにな
っている。部品格納装置108は、オペレーションとし
て共通する動作を規定したメソッド(例えばレスポンダ
・メソッド)、複合オペレーションとして共通する動作
を規定したメソッド(例えば、スタート・メソッド、ca
nContinueメソッド)、ループ複合オペレーション固有の
動作を規定したメソッド、シーケンス複合オペレーショ
ン固有のメソッド、選択複合オペレーション固有のルー
プ複合オペレーション、シーケンス複合オペレーショ
ン、選択複合オペレーション固有の動作を規定したメソ
ッド、プリミティブ・オペレーション固有の動作を規定
したメソッド等を格納している。さらに、プログラム格
納装置106は、処理装置100により処理されたプロ
グラム、すなわち操作フローに対応する操作木とその操
作木のノードを構成するオブジェクト(必要なメソッド
を含む)を格納している。FIG. 13 shows a configuration diagram of a programming tool. The processing device 100 is connected to the component storage device 108 and the program storage device 106. It is also connected to an input / output device 104 such as a mouse, keyboard, and printer. Then, the processing result, the program, and the like are displayed on the display device 102. The component storage device 108 includes a method (e.g., a responder method) that defines a common operation as an operation and a method (e.g., a start method, ca) that defines a common operation as a composite operation.
nContinue method), a method that defines the operation specific to the loop composite operation, a method that is specific to the sequence composite operation, a loop composite operation that is specific to the selection composite operation, a sequence composite operation, a method that specifies the operation specific to the selection composite operation, and a primitive operation specific Stores methods and the like that specify the operation of. Further, the program storage device 106 stores a program processed by the processing device 100, that is, an operation tree corresponding to an operation flow and objects (including necessary methods) constituting nodes of the operation tree.
【0101】処理装置100は、部品格納装置108に
あるメソッドを取り出して、必要なデータやメソッドを
付加し、操作フローに対応する木構造を作成し、編集し
て、プログラム格納装置106に格納する。また、プロ
グラム格納装置106からプログラムを取り出して、変
更を加えたりする。The processing device 100 takes out the method in the component storage device 108, adds necessary data and method, creates a tree structure corresponding to the operation flow, edits it, and stores it in the program storage device 106. . In addition, a program is taken out from the program storage device 106 and changed.
【0102】処理装置100は、フロー・ブラウザ11
0、フロー・エディタ120、動作エディタ130及び
トレーサ140で構成される。The processing device 100 has a flow browser 11
0, a flow editor 120, an operation editor 130, and a tracer 140.
【0103】フロー・ブラウザ110は、オペレーショ
ンの階層構造(木構造)を表示装置102に表示させる
ものである。ズーム・インやズーム・アウト操作によ
り、全体構造から必要に応じて細部まで表示できるよう
にする。例えば、マウスで複合オペレーションをダブル
・クリックすると、その複合オペレーションの子オペレ
ーションが表示されるようにしてもよい。例えば、図5
のような表示を行う。The flow browser 110 displays the hierarchical structure (tree structure) of the operations on the display device 102. Zoom-in and zoom-out operations allow the entire structure to be displayed as detailed as necessary. For example, double-clicking a composite operation with a mouse may display child operations of the composite operation. For example, FIG.
Is displayed.
【0104】フロー・エディタ120は、操作フローに
対応する木構造の作成、指定した操作オブジェクトの削
除・移動や新たなオペレーション・オブジェクトの作成
と指定位置への追加を行えるようにする。例えば、図5
から図8に変更するような操作を行えるようにするもの
である。The flow editor 120 can create a tree structure corresponding to an operation flow, delete / move a specified operation object, create a new operation object, and add a new operation object to a specified position. For example, FIG.
8 to FIG. 8 can be performed.
【0105】動作エディタ130は、プログラムを実行
する上で必要な情報を入力するものである。すなわち、
オペレーション・オブジェクトを用いるとしても、個々
のオペレーションで固有の処理があるので、それに対応
するデータやメソッドを規定させるためである。すなわ
ち、最も派生したオブジェクトのクラスを規定すること
となる。The action editor 130 is for inputting information necessary for executing the program. That is,
Even if an operation object is used, each operation has its own process, so that data and methods corresponding to the operation object are defined. That is, the class of the most derived object is defined.
【0106】ループ複合オペレーションの場合には、in
itialActionメソッドを規定する。図3では、リセット
動作を行う必要があり、ループ複合オペレーションで扱
われるデータを0にセットする動作を規定する。さら
に、各繰り返しごとに行う動作について、eachrepeatメ
ソッドを規定する。図3では、データLoopを+1するこ
とである。さらに、finalActionメソッドも規定する。
但し、図3では何等規定する必要がない。以上のよう
に、何も動作を必要としない場合には、規定しなくとも
よい。In the case of a loop compound operation, in
Specify itialAction method. In FIG. 3, it is necessary to perform a reset operation, and defines an operation of setting data handled in the loop composite operation to 0. Furthermore, for each operation to be performed for each iteration, an eachrepeat method is defined. In FIG. 3, the data loop is incremented by one. Furthermore, finalAction method is defined.
However, there is no need to specify anything in FIG. As described above, when no operation is required, it is not necessary to specify.
【0107】シーケンス複合オペレーションの場合に
は、initialActionメソッド、finalActionメソッド、及
びデータを規定する。但し、図3では必要ないので規定
されていない。In the case of a sequence compound operation, an initialAction method, a finalAction method, and data are defined. However, it is not specified in FIG. 3 because it is not necessary.
【0108】選択複合オペレーションの場合も、シーケ
ンス複合オペレーションと同様である。また、データを
扱うオブジェクトの場合にはresponderメソッドを規定
する必要がある。The selection composite operation is the same as the sequence composite operation. In the case of an object that handles data, it is necessary to define a responder method.
【0109】プリミティブ・オペレーションの場合に
は、イベントの処理を行うために、イベントを規定し、
さらにhandleEventメソッドを規定する必要がある。こ
のhandleEventメソッドは、データを変更するような場
合には、そのデータを保持するオブジェクトを見つける
ために、responderメッセージを発するようにしなけれ
ばならない。In the case of a primitive operation, an event is defined in order to process the event.
In addition, it is necessary to define handleEvent method. This handleEvent method must emit a responder message to find the object that holds the data when it changes data.
【0110】このように、最も派生したクラスを規定
し、既に記憶されている、オブジェクトの各クラスに属
するメソッドとを結合することにより、1つのオペレー
ション・オブジェクトを形成する。In this way, one operation object is formed by defining the most derived class and combining the already stored methods belonging to each class of the object.
【0111】トレーサ140は、リアクティブ・システ
ムの実行時のシミュレータ上で、現在実行中のオペレー
ション・オブジェクトのハイライト表示や内部データの
表示を行う。また、指定されたオペレーション・オブジ
ェクトでブレークするブレーク機能を有してもよい。こ
のシミュレータの役割は、処理装置100で行ってもよ
いし、入出力装置104で接続されているものを用いて
もよい。The tracer 140 performs a highlight display of the currently executed operation object and a display of internal data on the simulator when the reactive system is executed. Further, a break function for breaking at a designated operation object may be provided. The role of this simulator may be performed by the processing device 100 or a device connected by the input / output device 104 may be used.
【0112】このシステムでは、フロー・エディタ12
0によって個々の部品であるオブジェクトを取り出し
て、図5や図8のような木構造を作成し、フロー・ブラ
ウザ110により適当な階層のオブジェクトを表示し
て、動作エディタ130にて必要なデータ及びメソッド
を規定してよい。また、既存のプログラムをプログラム
格納装置106から取り出して、フロー・ブラウザ11
0により適当な階層のオブジェクトを表示し、動作エデ
ィタにてそのオペレーションにあったデータやメソッド
に変更するようにしてもよい。In this system, the flow editor 12
0, an object which is an individual part is taken out, a tree structure as shown in FIG. 5 or FIG. 8 is created, an object of an appropriate hierarchy is displayed by the flow browser 110, and necessary data and A method may be specified. In addition, the existing program is taken out of the program storage device 106 and the flow browser 11
0 may be used to display an object of an appropriate hierarchy, and the operation editor may change the data or method to the data or method suitable for the operation.
【0113】また、オブジェクトのモデル化で各クラス
階層にメソッドを定義した一例を示したが、これはシス
テム中で必要なものがあれば定義してもよいし、必要な
ければ定義しなくとも。Also, an example in which methods are defined in each class hierarchy in modeling an object has been described. However, this method may be defined if necessary in the system, or may not be defined if unnecessary.
【0114】[0114]
【発明の効果】このようなツールを用いれば、オブジェ
クト指向プログラミングのよい点を有効に用いることが
でき、さらにプログラミングが容易なるという効果があ
る。By using such a tool, the good points of object-oriented programming can be effectively used, and the programming can be facilitated.
【0115】また、プログラムを視覚化することができ
るため、プログラムの構築、変更等がしやすくなる。Also, since the program can be visualized, the program can be easily constructed and changed.
【0116】さらに、オブジェクト指向であるために部
品性が高まり、この部品を効率的にカスタム化、組み立
て、変更等を行うに際しては、機械等と同様に道具があ
れば便利である。この道具に構成について考えてみる
と、コンピュータ上でのみ有効であり、組み立て、カス
タム化、複写、削除等の容易性という点で上述のような
ツールを用いるのが効果的であるというプログラムの性
質を考慮せざるを得ないので、プログラムの部品という
本発明の対象の技術的性質に基づきなされた本プログラ
ム作成装置は、単なるコンピュータの使用という以上の
効果を奏する。Furthermore, the object orientation enhances the component properties. For efficiently customizing, assembling, changing, etc. these components, it is convenient if there are tools like machines. If you think about the configuration of this tool, the nature of the program is that it is only effective on a computer, and it is effective to use the above tools in terms of ease of assembly, customization, copying, deletion, etc. Therefore, the present program creation device based on the technical properties of the object of the present invention, which is a component of the program, has more effects than the mere use of a computer.
【図1】オペレーションの例を示す図である。FIG. 1 is a diagram illustrating an example of an operation.
【図2】オペレーションの種類を示す図である。FIG. 2 is a diagram showing types of operations.
【図3】オペレーションの詳細を示す図である。FIG. 3 is a diagram showing details of an operation.
【図4】オペレーションの他の例を示す図である。FIG. 4 is a diagram showing another example of the operation.
【図5】オペレーションの木構造を示す図である。FIG. 5 is a diagram showing a tree structure of an operation.
【図6】オブジェクトのモデルを示した図である。FIG. 6 is a diagram showing a model of an object.
【図7】オペレーションに含まれるメソッドの例であ
る。FIG. 7 is an example of a method included in an operation.
【図8】オペレーションの他の木構造を示す図である。FIG. 8 is a diagram showing another tree structure of an operation.
【図9】図8に示す木構造を詳細に示した図である。FIG. 9 is a diagram showing the tree structure shown in FIG. 8 in detail.
【図10】イベント・ソースの計算を図式化したもので
ある。FIG. 10 is a diagrammatic representation of the calculation of an event source.
【図11】canContinueメソッドの動作を説明する図で
ある。FIG. 11 is a diagram illustrating the operation of a canContinue method.
【図12】responderメソッドの動作を説明する図であ
る。FIG. 12 is a diagram illustrating the operation of a responder method.
【図13】プログラミング・ツールを説明した図であ
る。FIG. 13 is a diagram illustrating a programming tool.
【図14】操作フローの一例を示す図である。FIG. 14 is a diagram showing an example of an operation flow.
【図15】図14の有限状態マシンを示した図である。FIG. 15 illustrates the finite state machine of FIG.
【図16】操作フローの他の例を示した図である。FIG. 16 is a diagram showing another example of the operation flow.
【図17】図16の有限状態マシンを示した図である。FIG. 17 illustrates the finite state machine of FIG.
【図18】従来技術を説明するための図である。FIG. 18 is a diagram for explaining a conventional technique.
100 処理装置 110 フロー・ブラウザ 120 フロー・エディタ 130 動作エディタ 140 トレーサ 102 表示装置 104 入出力装置 106 プログラム格納装置 108 部品格納装置 REFERENCE SIGNS LIST 100 processing device 110 flow browser 120 flow editor 130 operation editor 140 tracer 102 display device 104 input / output device 106 program storage device 108 component storage device
───────────────────────────────────────────────────── フロントページの続き (72)発明者 八重樫誓喜 神奈川県大和市下鶴間1623番地14 日本 アイ・ビー・エム株式会社 東京基礎研 究所内 (56)参考文献 「LECTURE NOTES ON COMPUTER SCIENCE」 VOL.707,P.432−457 (1993) MARTIN J,”PRINCIP LES OF OBJECT−ORIE NTED ANALYSIS AND DESIGN” PRENTICE−H ALL (1993) CHAP.9 (58)調査した分野(Int.Cl.6,DB名) G06F 9/06 G06F 9/44────────────────────────────────────────────────── ─── Continuing from the front page (72) Inventor Oshigashi Yaegashi 1623-14 Shimotsuruma, Yamato-shi, Kanagawa Prefecture IBM Japan, Ltd. Tokyo Research Laboratory (56) Reference "LECTURE NOTES ON COMPUTER SCIENCE" VOL . 707, p. 432-457 (1993) MARTIN J, “PRINCIP LES OF OBJECT-ORIENTED ANALYSIS AND DESIGN” PRENTICE-HALL (1993) CHAP. 9 (58) Field surveyed (Int.Cl. 6 , DB name) G06F 9/06 G06F 9/44
Claims (11)
を規定するメソッドと、複合オペレーションとして共通
する動作を規定するメソッドと、ループ複合オペレーシ
ョン固有の動作を規定するメソッドと、シーケンス複合
オペレーション固有の動作を規定するメソッドと、選択
複合オペレーション固有の動作を規定するメソッドと、
プリミティブ・オペレーション固有の動作を規定するメ
ソッドとを格納する部品格納装置と、(b)表示手段
と、(c)入力手段と、(d)前記入力手段からの信号
に応答して、前記ループ複合オペレーションのオブジェ
クト、前記シーケンス複合オペレーションのオブジェク
ト、前記選択複合オペレーションのオブジェクト、及び
前記プリミティブ・オペレーションのオブジェクトを組
み合わせてプログラムの操作フローに対応する木構造を
作成及び変更するフロー・エディタ手段と、(e)前記
木構造を前記入力手段からの信号に応答して任意の階層
で前記表示装置に表示させるフロー・ブラウザ手段と、
(f)各オペレーションにつき、固有の動作を規定する
メソッドと、そのオペレーションが取り扱うデータを前
記入力手段により前記ユーザに入力させ、そのオペレー
ションに必要なメソッドを前記部品格納装置から取り出
し且つ結合する動作エディタ手段とを有し、 各前記メソッドは、メッセージを発して互いに通信する
ことにより、動作フロー及びデータ処理を制御するリア
クティブ・システムのためのプログラム作成装置。(A) A method defining an operation common as an operation, a method defining an operation common as a compound operation, a method defining an operation unique to a loop compound operation, and an operation unique to a sequence compound operation. A method that specifies the behavior that is specific to the selection compound operation,
A component storage device for storing a method that defines an operation unique to the primitive operation; (b) display means; (c) input means; and (d) the loop composite in response to a signal from the input means. Flow editor means for creating and modifying a tree structure corresponding to the operation flow of the program by combining the object of the operation, the object of the sequence compound operation, the object of the selection compound operation, and the object of the primitive operation; A) flow browser means for displaying the tree structure on the display device in an arbitrary hierarchy in response to a signal from the input means;
(F) an action editor for allowing the user to input a method for defining an operation specific to each operation and data handled by the operation by the input means, and extracting and combining a method required for the operation from the component storage device; And a means for generating a program for a reactive system that controls an operation flow and data processing by communicating each other by issuing a message.
規定するメソッドが、データを取り扱うオペレーション
を探索するためのレスポンダ・メッセージを親オペレー
ションに転送するレスポンダ・メソッドを含み、 前記複合オペレーションとして共通する動作を規定する
メソッドが、親オペレーションからのスタート・メッセ
ージに応答して、初期動作メッセージ、子制御メッセー
ジ、及び終了動作メッセージを発するスタート・メソッ
ドと、親オペレーションに自己よりも後に実行すべきオ
ペレーションが実行可能かを問うように依頼するための
可続行メッセージを転送する可続行メソッドを含む請求
項1記載のリアクティブ・システムのためのプログラム
作成装置。2. A method for defining a common operation as the operation includes a responder method for transferring a responder message for searching for an operation handling data to a parent operation, and defining a common operation as the composite operation. Method that issues an initial operation message, a child control message, and an end operation message in response to a start message from a parent operation, and whether the parent operation can execute an operation to be executed after itself. The program creation apparatus for a reactive system according to claim 1, further comprising an enable / disable method for transferring an enable / disable message for asking the user to ask the user.
ッドが、 前記子制御メッセージに応答して、子オペレーションが
実行可能かを問う可実行メッセージを発し、実行可能で
あればスタート・メッセージを発し、前記子オペレーシ
ョンが何等の動作を行わないものである場合には可続行
メッセージを自己に発する子制御メソッドと、 親オペレーションからの可実行メッセージに応答して、
子オペレーションが実行可能かを問うための可実行メッ
セージを発する可実行メソッドとを含む請求項2記載の
リアクティブ・システムのためのプログラム作成装置。3. The method specific to the loop compound operation, in response to the child control message, issues an executable message asking whether the child operation is executable. If the method is executable, the method issues a start message. If the operation does not perform any operation, in response to the child control method that issues an executable message to itself and the executable message from the parent operation,
An executable method for issuing an executable message for inquiring whether a child operation is executable.
メソッドが、 前記子制御メッセージに応答して、順次子オペレーショ
ンにスタート・メッセージを発する子制御メソッドと、 親オペレーションからの可実行メッセージに応答して、
子オペレーションが実行可能かを問うための可実行メッ
セージを発する可実行メソッドと、 子オペレーションからの可続行メッセージに応答して、
その子オペレーションの後に実行すべきオペレーション
が実行可能かを問い合わせる第2の可続行メソッドとを
含む請求項2記載のリアクティブ・システムのためのプ
ログラム作成装置。4. A method specific to the sequence compound operation, comprising: a child control method for sequentially issuing a start message to a child operation in response to the child control message; and an executable message from a parent operation,
In response to an executable method that issues an executable message to ask whether the child operation is executable and an executable message from the child operation,
A second executable method for inquiring whether an operation to be executed after the child operation is executable.
ドが、 前記子制御メッセージに応答して、子オペレーションが
実行可能かを問う可実行メッセージを発し、実行可能で
あればスタート・メッセージを発し、前記子オペレーシ
ョンが何等の動作を行わないものである場合には可続行
メッセージを自己に発する子制御メソッドと、 親オペレーションからの可実行メッセージに応答して、
子オペレーションが実行可能かを問うための可実行メッ
セージを発する可実行メソッドとを含む請求項2記載の
リアクティブ・システムのためのプログラム作成装置。5. A method specific to the selection compound operation, in response to the child control message, issues an executable message asking whether the child operation is executable, and if so, emits a start message. If the operation does not perform any operation, in response to the child control method that issues an executable message to itself and the executable message from the parent operation,
An executable method for issuing an executable message for inquiring whether a child operation is executable.
規定するメソッドが、データを取り扱うオペレーション
を探索するためのレスポンダ・メッセージを親オペレー
ションに転送するレスポンダ・メソッドを含み、 前記プリミティブ・オペレーション固有のメソッドが、
親オペレーションからのスタート・メッセージに応答し
て、プリミティブ・オペレーションとしてイベントを取
り扱うイベント取扱いメソッドを呼び出すイベント取扱
いメッセージを発するスタート・メソッドと、期待され
たイベントと入力されたイベントを比較して実行可能か
どうかを親オペレーションに返す可実行メソッドとを含
む請求項1記載のリアクティブ・システムのためのプロ
グラム作成装置。6. A method that defines an operation common to the operations includes a responder method for transferring a responder message for searching for an operation that handles data to a parent operation, and the method specific to the primitive operation includes:
In response to the start message from the parent operation, the start method that issues an event handling message that calls the event handling method that handles the event as a primitive operation is compared with the expected event and the input event. The program creation apparatus for a reactive system according to claim 1, further comprising: an executable method for returning whether or not to the parent operation.
レーションについての入力の場合には、前記初期動作メ
ッセージに対する初期動作と、前記終了動作メッセージ
に終了動作と、各繰り返しごとに行われる動作とを規定
するメソッドと、前記ループ複合オペレーションにおい
て扱われるデータがあればそのデータと、その場合には
そのデータの管理を行うレスポンダ・メソッドを入力す
るように促すことを特徴とする請求項2記載のリアクテ
ィブ・システムのためのプログラム作成装置。7. When the operation editor is an input for the loop composite operation, an initial operation for the initial operation message, an end operation in the end operation message, and an operation to be performed for each repetition are specified. 3. The method according to claim 2, further comprising prompting the user to input a method to be executed, data to be handled in the loop compound operation, if any, and a responder method to manage the data. -A program creation device for the system.
オペレーション及び前記選択複合オペレーションについ
ての入力の場合には、前記初期動作メッセージに対する
初期動作と、前記終了動作メッセージに終了動作とを規
定するメソッドと、前記シーケンス複合オペレーション
及び前記選択複合オペレーションにおいて扱われるデー
タがあればそのデータと、その場合にはそのデータの管
理を行うレスポンダ・メソッドを入力するように促すこ
とを特徴とする請求項2記載のリアクティブ・システム
のためのプログラム作成装置。8. The method according to claim 1, wherein the operation editor is an input for the sequence compound operation and the selected compound operation, and a method for defining an initial operation for the initial operation message and an end operation in the end operation message. 3. The system according to claim 2, wherein the user is prompted to input data, if any, handled in the sequence compound operation and the selection compound operation, and in that case, a responder method for managing the data. Programmer for active systems.
オペレーションについての入力の場合には、取り扱うイ
ベントと、それに対する動作を規定するメソッドを入力
するように促す請求項2記載のリアクティブ・オペレー
ションのためのプログラム作成装置。9. The operation editor according to claim 1, wherein said primitive
3. The program creating apparatus for a reactive operation according to claim 2, wherein in the case of an input about an operation, an event to be handled and a method for defining an operation for the event are prompted to be input.
構造のノードに対応するオペレーション・オブジェクト
を含む、作成されたプログラムを格納するプログラム格
納手段をさらに有し、 前記フロー・ブラウザ手段は、前記プログラム格納手段
から既存のプログラムを取り出して前記表示装置に表示
させることができ、 前記フロー・エディタ手段は、前記既存のプログラムの
変更を指示することができる請求項1記載のリアクティ
ブ・システムのためのプログラム作成装置。10. A program storing means for storing a created program including a tree structure corresponding to an operation flow and an operation object corresponding to a node of the tree structure, wherein the flow browser means comprises: 2. The reactive system according to claim 1, wherein an existing program can be retrieved from the program storage means and displayed on the display device, and wherein the flow editor means can instruct a change of the existing program. Program creation device.
ティブ・システムをシミュレーションする手段と、 前記作成されたプログラムのどの部分を実行しているか
を前記表示装置に示すトレーサ手段とをさらに有する請
求項1記載のリアクティブ・システムのためのプログラ
ム作成装置。11. 請 further comprising means for simulating a reactive system for performing the creation program, and a tracer means for indicating whether the running which part of the created program to the display device
A program creation device for a reactive system according to claim 1 .
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6276429A JP2771951B2 (en) | 1994-11-10 | 1994-11-10 | Program creation device for reactive system |
| US08/557,756 US5794040A (en) | 1994-11-10 | 1995-11-10 | Program creation apparatus for reactive systems |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6276429A JP2771951B2 (en) | 1994-11-10 | 1994-11-10 | Program creation device for reactive system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08137677A JPH08137677A (en) | 1996-05-31 |
| JP2771951B2 true JP2771951B2 (en) | 1998-07-02 |
Family
ID=17569295
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6276429A Expired - Fee Related JP2771951B2 (en) | 1994-11-10 | 1994-11-10 | Program creation device for reactive system |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5794040A (en) |
| JP (1) | JP2771951B2 (en) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6532586B1 (en) * | 1995-10-30 | 2003-03-11 | Information System Development Institute | Software producing method, processor, processing method and recording medium |
| NZ321670A (en) * | 1995-10-30 | 1999-04-29 | Information System Dev I Subst | Software production method, processing apparatus and recording medium |
| US6182024B1 (en) * | 1997-10-14 | 2001-01-30 | International Business Machines Corporation | Modeling behaviors of objects associated with finite state machines and expressing a sequence without introducing an intermediate state with the arc language |
| US6052455A (en) * | 1997-11-13 | 2000-04-18 | Northern Telecom Limited | Universal data structure for use with a concurrent state machine space in a telecommunications network |
| US6122356A (en) * | 1997-11-13 | 2000-09-19 | Northern Telecom Limited | Concurrent state machine space in a telecommunications network |
| JP3169896B2 (en) * | 1998-07-03 | 2001-05-28 | 日本電気株式会社 | Program development device, program development method, and storage medium storing program development program |
| DE19955092C2 (en) * | 1999-11-16 | 2002-11-28 | Siemens Ag | Method for data exchange in a multiprocessor system |
| FR2809203B1 (en) * | 2000-05-18 | 2003-10-03 | Cit Alcatel | METHOD FOR MANAGING A GRAPHIC MAN-MACHINE INTERFACE |
| JP2004502234A (en) * | 2000-06-29 | 2004-01-22 | アイナステクノロジー インコーポレイテッド | Modeling Method of Discrete Event System Using Event Flowchart |
| US20070204277A1 (en) * | 2006-02-27 | 2007-08-30 | Burgess Andrew L Jr | Computer program and method for managing implementation of a process |
| US9977696B2 (en) * | 2015-07-27 | 2018-05-22 | Mediatek Inc. | Methods and apparatus of adaptive memory preparation |
| CN116880394A (en) * | 2023-07-17 | 2023-10-13 | 佛山智能装备技术研究院 | Digital twin scene building method, device, equipment and storage medium |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2284248C (en) * | 1989-09-01 | 2001-12-04 | Amdahl Corporation | System for creating, editing, displaying, and executing rules-based programming language rules having action part subsets for both true and false evaluation of the conditional part |
| US5212790A (en) * | 1990-11-28 | 1993-05-18 | Teknekron Communications Systems, Inc. | Method of programming a task, having a plurality of processes, created by a plurality of different programmers, for operation by a computer |
| JP2522898B2 (en) * | 1992-09-08 | 1996-08-07 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Dynamic customization method and graphic resource editor |
| US5640566A (en) * | 1994-08-01 | 1997-06-17 | Apple Computer, Inc. | Method of forming an editor |
| US5530869A (en) * | 1994-11-30 | 1996-06-25 | Salle; Donald A. | System and method for locating and implementing commands without invoking a menu hierarchy |
-
1994
- 1994-11-10 JP JP6276429A patent/JP2771951B2/en not_active Expired - Fee Related
-
1995
- 1995-11-10 US US08/557,756 patent/US5794040A/en not_active Expired - Fee Related
Non-Patent Citations (2)
| Title |
|---|
| 「LECTURE NOTES ON COMPUTER SCIENCE」 VOL.707,P.432−457 (1993) |
| MARTIN J,"PRINCIPLES OF OBJECT−ORIENTED ANALYSIS AND DESIGN" PRENTICE−HALL (1993) CHAP.9 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH08137677A (en) | 1996-05-31 |
| US5794040A (en) | 1998-08-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Palanque et al. | Petri net based design of user-driven interfaces using the interactive cooperative objects formalism | |
| US7200838B2 (en) | System and method for automatically generating a graphical program in response to a state diagram | |
| EP0544637B1 (en) | Software structure for telecommunication switching systems | |
| US5247651A (en) | Interactive computer program specification and simulation system | |
| Lonczewski et al. | The FUSE-System: an Integrated User Interface Design Environment. | |
| US20050114361A1 (en) | Method and apparatus for integrating data repositories and frameworks | |
| JP2771951B2 (en) | Program creation device for reactive system | |
| Soibelman et al. | Distributed multi-reasoning mechanism to support conceptual structural design | |
| CN114117645A (en) | Ship overall performance prediction integrated application system | |
| JP3625084B2 (en) | Reuse system for software parts | |
| Kamran et al. | Graphics programming independent of interaction techniques and styles | |
| Griffiths et al. | Exploiting model-based techniques for user interfaces to databases | |
| Funka-Lea et al. | Interactive visual modeling for performance | |
| CN108228161A (en) | A kind of system and method for expansion structure order line | |
| Bingley et al. | A design platform for the NELSIS CAD framework | |
| Lee et al. | User-interface development tools | |
| Bastide et al. | Implementation Techniques for Petri Net Based Specifications of Human-Computer Dialogues. | |
| Bauer | Generating User Interfaces from Formal Specifications of the Application | |
| Cobourn | Resource management for CAD frameworks | |
| Kuo et al. | User interface design from a real time perspective | |
| Schouten et al. | Dialogue cell resource model and basic dialogue cells | |
| Nymeyer | A grammatical specification of human-computer dialogue | |
| Vo | IFS: A tool to build application systems | |
| Vo | IFS—A tool to build integrated, interactive application software | |
| Bos et al. | Project DIGIS: Building Interactive Applications by Direct Manipulation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |