[go: up one dir, main page]

JPH06124216A - Program contradiction detection apparatus and method - Google Patents

Program contradiction detection apparatus and method

Info

Publication number
JPH06124216A
JPH06124216A JP4297625A JP29762592A JPH06124216A JP H06124216 A JPH06124216 A JP H06124216A JP 4297625 A JP4297625 A JP 4297625A JP 29762592 A JP29762592 A JP 29762592A JP H06124216 A JPH06124216 A JP H06124216A
Authority
JP
Japan
Prior art keywords
program
contradiction
state
verification
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4297625A
Other languages
Japanese (ja)
Inventor
Masaaki Hiroya
政彰 広谷
Masayuki Saito
政幸 斉藤
Hiroyuki Takagi
浩之 高木
Hirobumi Kondo
博文 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi KE Systems Ltd
Original Assignee
Hitachi Ltd
Hitachi Keiyo Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Keiyo Engineering Co Ltd filed Critical Hitachi Ltd
Priority to JP4297625A priority Critical patent/JPH06124216A/en
Publication of JPH06124216A publication Critical patent/JPH06124216A/en
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】いくつかのプログラム部品を組み合わせて目的
とするアプリケーションプログラムを開発する場合に、
各プログラム部品の入出力関係を利用して、プログラム
部品の使い方に不適切な点がないかどうか、すなわちプ
ログラムが矛盾を含むものであるか否かを自動的に検証
する装置および方法を提供することを目的とする。 【構成】各プログラム部品の動作を表す部品動作情報
と、各プログラム部品の動作ごとにその動作がどのよう
な状態変化をもたらすかを表す動作ルールとをあらかじ
め記憶しておくとともに、プログラム部品間の接続関係
を入力させ、その接続関係にしたがって各プログラム部
品が動作したときの動作状態の変化を、部品動作情報や
動作ルールを参照しながら、検証する。 【効果】アプリケーションレベルでの処理手順の誤りや
処理の抜けを自動的に検出するので、プログラマの負担
が軽減し、生産性が高まる。
(57) [Summary] [Purpose] When developing a target application program by combining several program parts,
(EN) An apparatus and method for automatically verifying whether or not there is an inappropriate point in usage of a program component, that is, whether or not a program includes a contradiction, by utilizing the input / output relation of each program component. To aim. [Configuration] Component operation information indicating the operation of each program component and operation rules indicating what kind of state change the operation causes for each operation of each program component are stored in advance, and The connection relation is input, and the change in the operation state when each program component operates according to the connection relation is verified with reference to the component operation information and the operation rule. [Effect] Since an error in a processing procedure or a processing omission at the application level is automatically detected, the burden on the programmer is reduced and the productivity is increased.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、アプリケーションプロ
グラムの無矛盾性を検証するためのプログラム矛盾検出
装置およびプログラム矛盾検出方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a program contradiction detection device and a program contradiction detection method for verifying consistency of application programs.

【0002】[0002]

【従来の技術】従来より知られているプログラムの無矛
盾性を検証する装置として、コンパイラとリンカがあ
る。コンパイラは、ソースプログラムからオブジェクト
プログラムを生成するときに、そのソースプログラムが
ある特定のプログラミング言語のシンタックスやセマン
ティクスに適合しているかどうかを検証し、矛盾が検出
されたらその旨をプログラマに通知する。またリンカ
は、複数のオブジェクトプログラムを組み合わせて1つ
の実行プログラムを生成するときに、各オブジェクトプ
ログラムが参照している他のオブジェクトプログラム
が、すべて揃っているかどうかを検証し、不足している
オブジェクトプログラムがあればプログラマに通知す
る。
2. Description of the Related Art Compilers and linkers have been known as conventional devices for verifying program consistency. When a compiler creates an object program from a source program, the compiler verifies that the source program conforms to the syntax and semantics of a particular programming language and notifies the programmer if any inconsistencies are detected. . In addition, the linker verifies whether or not all the other object programs referenced by each object program are complete when generating a single execution program by combining multiple object programs, and the missing object programs Notify programmer if there is.

【0003】[0003]

【発明が解決しようとする課題】上記のように、プログ
ラミング言語レベルでの無矛盾性チェックはコンパイラ
やリンカで行われているが、よりアプリケーションに近
いレベルでの無矛盾性チェックはあまり行われていな
い。例えば、いくつかのプログラム部品(例えば、サブ
ルーチン、関数、クラスなど)を組み合わせて、目的と
するアプリケーションプログラムを開発する場合、その
プログラム部品の使い方が誤っていても、それを自動的
に検出する装置はなく、プログラマが検証を行っている
のが実情である。
As described above, the consistency check at the programming language level is performed by the compiler or the linker, but the consistency check at the level closer to the application is not often performed. For example, when a target application program is developed by combining several program parts (for example, subroutines, functions, classes, etc.), even if the usage of the program parts is incorrect, a device that automatically detects them. Instead, the reality is that the programmer is doing the verification.

【0004】いくつかのプログラム部品を組み合わせ
て、アプリケーションプログラムを作成する例として、
現金自動入出金機の払出(出金)処理などを行うプログ
ラムがある。このようなプログラムは、ある画面を基本
とした処理を記述したプログラム部品を組み合わせて作
成することが多い。この場合、キャッシュカードの返却
処理を行うプログラム部品を実行する以前に、キャッシ
ュカードの挿入処理を行うプログラム部品を実行しなけ
れば、カードが挿入されていないのに返却しようとする
ので、エラーが発生する。また、現金を出金する処理を
行うプログラム部品を実行する以前に、払出金額を入力
する処理を行うプログラム部品を実行しなければ、同様
にして、入力されていない値を参照することになるので
動作がおかしくなる。このようなアプリケーションに近
いレベルでの矛盾の自動的な検出は、従来あまり行われ
ていなかった。
As an example of creating an application program by combining several program parts,
There is a program to perform withdrawal (withdrawal) processing of an automatic cash deposit / withdrawal machine. Such a program is often created by combining program parts that describe processing based on a certain screen. In this case, if you do not execute the program part that executes the insertion process of the cash card before executing the program part that executes the return process of the cash card, an error will occur because the card will be returned even if it is not inserted. To do. If the program component that executes the process of inputting the payout amount is not executed before executing the program component that executes the process of dispensing cash, the value that has not been input will be referenced in the same manner. The operation is strange. In the past, automatic detection of inconsistencies at a level close to such an application has not been performed so often.

【0005】本発明の目的は、上述の従来例における問
題点に鑑み、いくつかのプログラム部品を組み合わせて
目的とするアプリケーションプログラムを開発する場合
に、各プログラム部品の入出力関係を利用して、プログ
ラム部品の使い方に不適切な点がないかどうか、すなわ
ちプログラムが矛盾を含むものであるか否かを自動的に
検証する装置および方法を提供することにある。
In view of the problems in the above-mentioned conventional example, an object of the present invention is to utilize the input / output relation of each program part when developing an application program by combining several program parts. An object of the present invention is to provide an apparatus and method for automatically verifying whether or not there is an inappropriate point in the usage of program parts, that is, whether or not a program contains inconsistencies.

【0006】[0006]

【課題を解決するための手段】上記課題を解決するため
に、本発明は、1つ以上のプログラム部品を組み合わせ
て目的とするプログラムを作成する際に、矛盾を検出す
るプログラム矛盾検出装置であって、各プログラム部品
がプログラムの動作状態を表す項目に対しどのような動
作を施すかを記述した部品動作記憶手段と、各プログラ
ム部品の動作ごとに、その動作がプログラムの動作状態
を表す項目に対しどのような状態変化をもたらすかを記
述した動作ルール記憶手段と、目的とするプログラムを
構成するプログラム部品間の接続関係を入力する接続関
係入力手段と、前記接続関係に基づく順序で各プログラ
ム部品が順次動作することによりプログラムの動作状態
を表す項目がどのように状態変化していくかを、部品動
作記憶手段および動作ルール記憶手段を参照して、検証
することにより、矛盾を検出する検証手段とを備えたこ
とを特徴とする。
In order to solve the above problems, the present invention is a program contradiction detection apparatus for detecting contradictions when a target program is created by combining one or more program components. And the operation of each program component that describes what operation each program component performs on the item that represents the operating state of the program, and for each operation of each program component, that operation is the item that represents the operating state of the program. An operation rule storage unit that describes what kind of state change is to be made, a connection relation input unit that inputs a connection relation between program components that make up a target program, and each program component in an order based on the connection relation. How the items that represent the operating state of the program change due to the sequential operation of Referring to create rule storage means, by verifying, characterized by comprising a verification means for detecting inconsistencies.

【0007】矛盾の検出は、例えば動作ルール記憶手段
にプログラム部品の動作が矛盾を発生させる場合を記述
した動作ルールを含むようにし、前記検証手段において
前記動作ルールを参照しながらプログラムの動作状態を
表す項目の状態変化を順次検証していく際に、前記動作
ルールにより矛盾発生を検出したとき、その矛盾発生を
通知するようにする。
The detection of the contradiction includes, for example, the operation rule storing means including an operation rule describing the case where the operation of the program component causes the contradiction, and the verifying means refers to the operation rule to determine the operation state of the program. When the occurrence of a contradiction is detected by the operation rule when sequentially verifying the state change of the item shown, the contradiction is notified.

【0008】さらに、前記プログラムの動作状態を表わ
す項目の初期状態および目標状態を設定する手段を備え
てもよい。この場合、前記検証手段は、前記接続関係に
基づく順序で最終のプログラム部品までプログラムの動
作状態を表す項目の状態変化を順次検証し、最終状態が
前記目標状態に一致するか否かを判別し、一致しない場
合に矛盾発生を通知するようにしてもよい。
Further, there may be provided means for setting an initial state and a target state of an item representing the operating state of the program. In this case, the verification means sequentially verifies the state change of items representing the operating state of the program up to the final program part in the order based on the connection relationship, and determines whether the final state matches the target state. Alternatively, if they do not match, the occurrence of contradiction may be notified.

【0009】さらに、検証を開始するプログラム部品名
および検証を終了するプログラム部品名を入力する手段
を備えてもよい。検証を開始するプログラム部品名から
検証を終了するプログラム部品名に到達するまでのプロ
グラム部品の順序列をすべて求め、それら順序列の1つ
1つについて矛盾を検出するようにしてもよい。組み合
わせるプログラム部品としては、ソースプログラム、オ
ブジェクトプログラム、または実行プログラム(ロード
モジュール)のいずれでもよい。
Further, there may be provided means for inputting a program part name for starting verification and a program part name for ending verification. It is also possible to obtain all the sequence sequences of the program components from the program component name for starting the verification to the program component name for ending the verification, and detect the inconsistency for each of the sequence sequences. The program component to be combined may be a source program, an object program, or an execution program (load module).

【0010】また本発明は、1つ以上のプログラム部品
を組み合わせて目的とするプログラムを作成する際に、
矛盾を検出するプログラム矛盾検出方法であって、各プ
ログラム部品がプログラムの動作状態を表す項目に対し
どのような動作を施すかを記述した部品動作情報と、各
プログラム部品の動作ごとにその動作がプログラムの動
作状態を表す項目に対しどのような状態変化をもたらす
かを記述した動作ルールとを、あらかじめ記憶しておく
とともに、目的とするプログラムを構成するプログラム
部品間の接続関係を入力するステップと、検証を開始す
るプログラム部品名および検証を終了するプログラム部
品名を入力するステップと、プログラムの動作状態を表
す項目の初期状態および目標状態を設定するステップ
と、前記接続関係に基づき、前記検証を開始するプログ
ラム部品名から前記検証を終了するプログラム部品名に
到達するまでのプログラム部品の順序列を求めるステッ
プと、該順序列の順序で各プログラム部品が順次動作し
た場合に、プログラムの動作状態を表す項目がどのよう
に状態変化していくかを、前記部品動作情報および動作
ルールを参照して、検証することにより、矛盾を検出す
るステップとを備えたことを特徴とする。
Further, according to the present invention, when a desired program is created by combining one or more program parts,
A program contradiction detection method for detecting contradictions, in which part operation information describing what kind of operation each program part performs with respect to the item indicating the operation state of the program, and the operation for each operation of each program part And a step of pre-storing an operation rule that describes what kind of state change will be caused to an item representing an operation state of the program and inputting a connection relation between program parts constituting a target program; , A step of inputting a program part name for starting the verification and a program part name for ending the verification, a step of setting an initial state and a target state of an item indicating an operating state of the program, and the verification based on the connection relationship. From the program part name to start to the program part name to end the verification, The step of obtaining the sequence of the RAM parts, and how the items indicating the operating state of the program change when the program parts sequentially operate in the order of the sequence, the part operation information and A step of detecting a contradiction by verifying with reference to the operation rule.

【0011】この場合、矛盾の検出は、例えば動作ルー
ルとしてプログラム部品の動作が矛盾を発生させる場合
を記述した動作ルールを含むようにし、動作ルールを参
照しながらプログラムの動作状態を表す項目の状態変化
を順次検証していく際に、その動作ルールにより矛盾発
生を検出したとき、その矛盾発生を通知するようにす
る。さらに、前記接続関係に基づく順序で最終のプログ
ラム部品までプログラムの動作状態を表す項目の状態変
化を順次検証し、最終状態が前記目標状態に一致するか
否かを判別し、一致しない場合に矛盾発生を通知する。
In this case, the detection of the contradiction includes, for example, an operation rule that describes the case where the operation of the program component causes the contradiction as the operation rule, and the state of the item indicating the operation state of the program is referred to with reference to the operation rule. When verifying changes sequentially, when a contradiction is detected by the operation rule, the contradiction is notified. Furthermore, the state change of the items representing the operating state of the program is sequentially verified up to the final program part in the order based on the connection relationship, and it is determined whether or not the final state matches the target state. Notify the occurrence.

【0012】[0012]

【作用】まず、目的とするプログラムを構成するプログ
ラム部品間の接続関係を入力させる。次に、その接続関
係に基づく順序で各プログラム部品が動作したときプロ
グラムの動作状態を表す項目がどのように状態変化して
いくかを検証する。検証の際には、部品動作情報や動作
ルールを参照する。部品動作情報は、各部品の動作を記
述した情報であり、例えばあるデータ項目を初期化す
る、あるいはあるデバイスにある物理媒体を挿入する、
などといった動作が記載されている。動作ルールは、例
えば条件部と実行部とからなり、条件部には現在の状態
や実施された動作が、実行部には条件部が真のときにど
のように状態を変化させるかが、記載されている。
First, the connection relation between the program parts constituting the target program is input. Next, how each item representing the operating state of the program changes when each program component operates in the order based on the connection relationship is verified. At the time of verification, the component operation information and operation rules are referenced. The component operation information is information that describes the operation of each component, such as initializing a certain data item or inserting a physical medium in a certain device,
Operations such as are described. The operation rule consists of, for example, a condition part and an execution part. The condition part describes the current state and the executed action, and the execution part describes how to change the state when the condition part is true. Has been done.

【0013】検証の際には各プログラム部品の動作と条
件部が一致する動作ルールを起動して、該ルールの実行
部を実行する。ここで矛盾が検出されればその旨を通知
し処理を終了する。検出されなければ該ルールの実行部
に従って入出力項目の状態を変更する。
At the time of verification, an operation rule in which the operation of each program part matches the condition part is activated, and the execution part of the rule is executed. If a contradiction is detected here, the fact is notified and the process ends. If not detected, the state of the input / output item is changed according to the execution part of the rule.

【0014】以下、接続関係の順序にしたがって各プロ
グラム部品の動作に対し動作ルールを適用していき、矛
盾の有無を判定していく。最後のプログラム部品まで検
証したら、最終の状態が目標とする状態であるか否か判
別し、目標状態でないときは矛盾発生として通知する。
動作ルールの適用において矛盾が発生せず、かつ最終状
態が目標状態であるときは、矛盾なしを通知する。
In the following, operation rules are applied to the operation of each program component in accordance with the order of connection relationships, and it is determined whether or not there is a contradiction. After the verification up to the last program component, it is determined whether or not the final state is the target state, and if it is not the target state, it is notified that a contradiction has occurred.
When no contradiction occurs in the application of the operation rule and the final state is the target state, the notification of no contradiction is given.

【0015】以上により、各プログラム部品の処理の詳
細に立ち入ることなく、入出力関係だけを用いて、プロ
グラムの検証を行うことが可能になる。
As described above, the program can be verified by using only the input / output relationship without going into details of the processing of each program component.

【0016】[0016]

【実施例】以下、本発明の実施例を図面を用いて説明す
る。
Embodiments of the present invention will be described below with reference to the drawings.

【0017】図1は、本発明の一実施例に係るプログラ
ム矛盾検出方法の処理手順を示すフローチャートであ
る。図2は、図1の手順で動作する実施例のプログラム
矛盾検出装置の構成を表す概略図である。
FIG. 1 is a flow chart showing a processing procedure of a program contradiction detection method according to an embodiment of the present invention. FIG. 2 is a schematic diagram showing the configuration of the program contradiction detection apparatus of the embodiment that operates according to the procedure of FIG.

【0018】図2において、10は表示装置、20は入
力装置、30は演算装置、40は第1の記憶装置、70
は第2の記憶装置である。第1の記憶装置40には、現
在状態テーブル50、目標テーブル51、検証開始プロ
グラム名52、検証終了プログラム名53、動作ルール
群54、部品動作データ群55、実行パス群56、現在
パス57、現在実行プログラム部品58、プログラム部
品間の接続関係59、プログラム部品名とプログラムモ
ジュールとの対応テーブル60、およびプログラム部品
の実行結果(以下、プログラム実行結果と呼ぶ)61を
格納する領域がそれぞれ確保されている。第2の記憶装
置70には、プログラムモジュールが格納されている。
In FIG. 2, 10 is a display device, 20 is an input device, 30 is a computing device, 40 is a first storage device, and 70 is a storage device.
Is a second storage device. In the first storage device 40, a current state table 50, a target table 51, a verification start program name 52, a verification end program name 53, an operation rule group 54, a component operation data group 55, an execution path group 56, a current path 57, Areas for storing a currently executed program component 58, a connection relationship 59 between the program components, a correspondence table 60 between the program component name and the program module, and an execution result (hereinafter, referred to as a program execution result) 61 of the program component are secured respectively. ing. A program module is stored in the second storage device 70.

【0019】なお、説明の便宜のため、記憶装置上の記
憶領域とその記憶領域に格納されるデータとの両者を同
一の付番で表すものとする。例えば、付番50は、現在
状態テーブルを格納する領域を表すとともに、データと
しての現在状態テーブルをも表すものとする。
For convenience of explanation, both the storage area on the storage device and the data stored in the storage area are represented by the same number. For example, the number 50 represents an area for storing the current state table and also represents the current state table as data.

【0020】図3は、プログラム部品を組み合わせてプ
ログラムを作成するときのプログラム部品間の接続関係
を表す図である。ここで、pi(iは整数)はプログラ
ム部品名を表し、rij(i,jは整数)はpiとpjと
の接続関係を表す。接続関係rijはプログラム部品pi
の実行結果を表しており、プログラム部品piの実行結
果がrijであるならばその次にプログラム部品pjを実
行するということを意味する。
FIG. 3 is a diagram showing a connection relationship between program components when a program is created by combining the program components. Here, pi (i is an integer) represents a program component name, and rij (i, j is an integer) represents a connection relationship between pi and pj. The connection relation rij is the program component pi
Of the program component pi, it means that if the execution result of the program component pi is rij, the program component pj is executed next.

【0021】例えば、図3のプログラム部品p2の実行
結果がr23なら次にプログラム部品p3が実行され、プ
ログラム部品p2の実行結果がr24なら次にプログラム
部品p4が実行されることとなる。このようなプログラ
ム部品接続関係データは、プログラム部品を組み合わせ
て目的とするプログラムを作成したいユーザが、要求仕
様に応じて入力する。プログラム部品接続関係データ
は、記憶装置40のプログラム部品関係格納エリア59
に格納される。
For example, if the execution result of the program component p2 in FIG. 3 is r23, the program component p3 is executed next, and if the execution result of the program component p2 is r24, the program component p4 is executed next. Such program component connection relation data is input by a user who wants to create a target program by combining program components according to the required specifications. The program component connection relation data is stored in the program component relation storage area 59 of the storage device 40.
Stored in.

【0022】図4は、プログラム部品ごとにその部品の
動作を記述したデータ群(「部品動作データ」と呼ぶ)
の内容を示す。ここでプログラム部品の「動作」とは、
そのプログラム部品が実行されている間に行われるデー
タの入出力、並びに物理媒体(例えば、磁気カードな
ど)の挿入および排出などを指す。例えば、部品名p1
の部品(以下、部品p1と呼ぶ。他の部品も同様であ
る。)の動作として「IFr12 THEN <動作12
>」とあるのは、「部品p1を実行した結果がr12なら
ば、部品p1は<動作12>を実行した」ということを
示している。具体的な例では、現金自動取引装置の処理
で暗証番号を入力するプログラム部品の場合、実行結果
が「入力完了」ならば「暗証番号の入力」を実行したこ
とになる。
FIG. 4 is a data group describing the operation of each program part (referred to as "part operation data").
Indicates the contents of. Here, the "motion" of a program part is
It refers to input / output of data and insertion / ejection of a physical medium (for example, a magnetic card) performed while the program component is being executed. For example, part name p1
(IFr12 THEN <Operation 12)
“>” Indicates that “if the result of executing the component p1 is r12, the component p1 executes <operation 12>”. In a specific example, in the case of a program component for inputting a personal identification number in the process of the automatic teller machine, if the execution result is "input completed", "input of personal identification number" is executed.

【0023】部品動作データ群は、あらかじめ記憶装置
40の部品動作データ格納エリア55に格納しておく。
なお、部品動作データがIF THENの形式で記述さ
れているのは、部品の実行結果が複数ある場合(例え
ば、正常終了と異常終了)には、その実行結果を引き起
こした動作も異なるためである。
The component operation data group is stored in advance in the component operation data storage area 55 of the storage device 40.
The component operation data is described in the IF THEN format because when there are a plurality of component execution results (for example, normal termination and abnormal termination), the operation that caused the execution result is also different. .

【0024】図5(a)は、動作に関するルール群
(「動作ルール群」と呼ぶ)の内容を示す。動作ルール
は、ある動作を有するプログラム部品がその動作を実行
したときに、入出力項目の状態に与える影響を規定す
る。動作ルールは、<動作名>、<条件部>、および<
実行部>で構成する。
FIG. 5 (a) shows the contents of a rule group (referred to as "motion rule group") relating to motion. The operation rule defines the influence on the state of the input / output item when a program component having a certain operation executes the operation. The operation rules are <operation name>, <condition part>, and <operation name>.
Execution unit>.

【0025】例えば、『データXが「空」という状態
で、「データXの入力」という動作が実行されたなら
ば、データXの状態が「空」という状態から「入」とい
う状態に変化する』という例では、動作ルールの<動作
名>には「データXの入力」という記述が入り、<条件
部>には「データXが「空」」といった状態に関する記
述が入り、<実行部>には「データXを「入」にせよ」
といった状態変化に関する記述が入る。ここでXは、変
数である。動作ルール群は、あらかじめ記憶装置40の
動作ルール群格納エリア54に格納しておく。
For example, if the operation of "input of data X" is executed in the state of "data X is" empty ", the state of data X changes from the state of" empty "to the state of" enter ". ], A description of “input of data X” is included in <action name> of the operation rule, a description of a state such as “data X is“ empty ”” is included in <condition part>, and <execution part>"Please turn on data X"
Enter the description about the state change. Here, X is a variable. The operation rule group is stored in advance in the operation rule group storage area 54 of the storage device 40.

【0026】動作ルール群には、矛盾として検出したい
条件をも記述しておく。例えば上記の例で、データXが
既に「入」の状態で、データXを参照する前に「データ
Xの入力」を再び実行しようとした場合(すなわち、デ
ータXが既に「入」であるのに重ねて「データXの入
力」を行なおうとした場合)を、その動作は冗長なので
矛盾として検出したいときには、<条件部>に「データ
Xが「入」」を記述しておき、<実行部>に「矛盾が発
生」を記述しておく。
Conditions to be detected as a contradiction are also described in the operation rule group. For example, in the above example, when the data X is already "ON" and the "input of data X" is tried again before referring to the data X (that is, the data X is already "ON"). If you want to detect "continuation" when you try to input "data X" on the above) because the operation is redundant, describe "data X is" ON "" in the <condition section> and execute "Partial contradiction" is described in part>.

【0027】図5(b)は、各種項目の状態を表す状態
テーブルである。状態テーブルとしては、現在状態テー
ブルと目標状態テーブルとがある。現在状態テーブル
は、各プログラム部品が順次動作していくときの各時点
での状態を記憶するテーブルである。現在状態テーブル
は記憶装置40の現在状態格納エリア50に格納する。
目標状態テーブルは、接続関係にしたがってすべてのプ
ログラム部品を実行した後の目標状態を表すテーブルで
ある。目標状態テーブルは記憶装置40の目標状態格納
エリア51に格納する。
FIG. 5B is a status table showing the status of various items. The state table includes a current state table and a target state table. The current state table is a table that stores the state at each point in time when each program component sequentially operates. The current state table is stored in the current state storage area 50 of the storage device 40.
The target state table is a table showing the target state after executing all program parts according to the connection relationship. The target state table is stored in the target state storage area 51 of the storage device 40.

【0028】次に、図1のフローチャートを参照して、
本実施例のプログラム矛盾検出の一般的な処理手順につ
いて下記(1)で説明し、その処理手順を具体的に現金
自動取引装置の払出処理プログラムの矛盾検出に適用し
た例を下記(2)で説明する。
Next, referring to the flow chart of FIG.
A general processing procedure for detecting a program contradiction of the present embodiment is described in (1) below, and an example in which the processing procedure is specifically applied to the detection of a contradiction in a payout processing program of an automated teller machine is described in (2) below. explain.

【0029】(1)一般的な処理手順 図1において、まずユーザはどのようにプログラム部品
を組み合わせて目的とするプログラムを作成するかを決
定し、その接続関係(図3)を入力装置20から入力す
る(ステップ100)。入力された接続関係は、記憶装
置40のプログラム部品間の接続関係を格納する領域5
9に記憶される。
(1) General Processing Procedure In FIG. 1, the user first decides how to combine the program parts to create an intended program, and the connection relation (FIG. 3) is input from the input device 20. Input (step 100). The input connection relation is an area 5 for storing the connection relation between the program parts of the storage device 40.
9 is stored.

【0030】次に、ユーザは検証開始プログラム部品名
を入力し(ステップ105)、検証終了プログラム部品
名を入力する(ステップ110)。これらは、それぞれ
記憶装置40の検証開始プログラム部品名を格納する領
域52および検証終了プログラム部品名を格納する領域
53に記憶される。さらに、現在状態テーブル50の初
期値を設定し(ステップ120)、検証終了プログラム
部品実行後の目標状態を表す目標状態テーブル51を設
定する(ステップ130)。
Next, the user inputs the verification start program part name (step 105) and the verification end program part name (step 110). These are respectively stored in the area 52 for storing the verification start program part name and the area 53 for storing the verification end program part name in the storage device 40. Further, the initial value of the current state table 50 is set (step 120), and the target state table 51 representing the target state after execution of the verification end program component is set (step 130).

【0031】次に、プログラム部品間の接続関係59を
利用して、検証開始プログラム名52から検証終了プロ
グラム名53へ到達するすべての実行パスを求め実行パ
ス群56として記憶する(ステップ140)。例えば図
3の接続関係の例で、仮に検証開始プログラム部品名5
2をp1、検証終了プログラム部品名53をp7として
すべての実行パスを求めると、{p1,r12,p2,r
23,p3,r36,p6,r67,p7}、{p1,r12,
p2,r23,p3,r37,p7}、{p1,r12,p
2,r24,p4,r45,p5,r57,p7}となる。な
お、実行パスはプログラム部品名(p1,p2など)と
接続関係(r12,r23など)を順に並べて表記する。次
に、求めたパスの中から1つのパスを選択し、検証を行
なうパスとして現在パス57に設定する(ステップ15
0)。
Next, using the connection relation 59 between the program parts, all the execution paths from the verification start program name 52 to the verification end program name 53 are obtained and stored as an execution path group 56 (step 140). For example, in the example of the connection relationship shown in FIG.
2 is p1 and the verification end program part name 53 is p7, all the execution paths are calculated as {p1, r12, p2, r
23, p3, r36, p6, r67, p7}, {p1, r12,
p2, r23, p3, r37, p7}, {p1, r12, p
2, r24, p4, r45, p5, r57, p7}. In the execution path, program component names (p1, p2, etc.) and connection relationships (r12, r23, etc.) are arranged in order. Next, one path is selected from the obtained paths, and the current path 57 is set as the path to be verified (step 15).
0).

【0032】次に、現在パス57の最初のプログラム部
品名を現在実行プログラム部品名58に代入し、そのパ
スの第2番目の要素(接続関係)をプログラム実行結果
61に代入する(ステップ160)。そして、現在実行
プログラム部品名58およびプログラム実行結果61の
動作に対応する動作ルールを適用し実行する(ステップ
170)。具体的には、現在実行プログラム部品名58
の部品動作データを部品動作データ群55から検索し、
その部品動作データの条件部がプログラム実行結果61
と一致する動作ルールを動作ルール群54から検索し
て、その実行部を起動する。動作ルールの実行部の起動
とは、その実行部の記述に基づいて現在状態テーブル5
0を更新することである。
Next, the first program component name of the current path 57 is substituted into the currently executed program component name 58, and the second element (connection relation) of that path is substituted into the program execution result 61 (step 160). . Then, the operation rule corresponding to the operation of the currently executed program part name 58 and the program execution result 61 is applied and executed (step 170). Specifically, the currently executed program part name 58
For the component operation data of
The condition part of the part operation data is the program execution result 61.
The operation rule group 54 is searched for an operation rule matching with, and the execution unit is activated. The activation of the execution part of the operation rule means that the current state table 5 is based on the description of the execution part.
It is to update 0.

【0033】現在実行プログラム部品名58の動作に対
応する動作ルールを適用し実行(ステップ170)した
結果、矛盾が発生したら(ステップ180)、矛盾発生
を通知する(ステップ190)。このとき、矛盾が発生
したときの現在パス57と現在実行プログラム部品名5
8も通知する。
When the operation rule corresponding to the operation of the currently executed program part name 58 is applied and executed (step 170) and a contradiction occurs (step 180), the contradiction is notified (step 190). At this time, the current path 57 and the currently executed program part name 5 when the contradiction occurs
8 will also be notified.

【0034】矛盾が発生しなければ(ステップ18
0)、現在実行プログラム部品名58と検証終了プログ
ラム部品名53を比較し(ステップ210)、それが一
致していなければ(ステップ220)、現在パス57で
次に実行するプログラム部品名を実行プログラム部品名
58に設定し、その実行結果をプログラム実行結果61
に設定する(ステップ240)。そして、ステップ17
0に戻って引続き検証を行なっていく。
If no contradiction occurs (step 18)
0), the currently executed program part name 58 and the verification end program part name 53 are compared (step 210), and if they do not match (step 220), the program part name to be executed next in the current path 57 is executed. It is set to the part name 58 and its execution result is the program execution result 61.
(Step 240). And step 17
It returns to 0 and continues verification.

【0035】現在実行プログラム部品名58と検証終了
プログラム部品名53とが一致していたら(ステップ2
20)、現在パス57の最後のプログラム部品まで検証
したということだから、現在状態テーブル50と目標状
態テーブル51を比較する(ステップ230)。両者が
一致したら(ステップ250)、未だ処理していない残
りのパスから1つパスを選択して現在パス57に設定す
る(ステップ260)。
If the currently executed program part name 58 and the verification end program part name 53 match (step 2
20) Since the last program component of the current path 57 has been verified, the current state table 50 and the target state table 51 are compared (step 230). If the two match (step 250), one path is selected from the remaining paths that have not been processed yet and set as the current path 57 (step 260).

【0036】残りのパスがなくステップ260で現在パ
ス57の設定ができないときは(ステップ270)、処
理を終了する。残りのパスがある場合には(ステップ2
70)、ステップ240に移り残りのパスについて矛盾
がないかどうかを同様に検証していく。
If there is no remaining path and the current path 57 cannot be set in step 260 (step 270), the process is terminated. If there are remaining paths (step 2
70), the process proceeds to step 240, and it is similarly verified whether or not there is any contradiction in the remaining paths.

【0037】現在実行プログラム名58と検証終了プロ
グラム部品名53が一致しないときは(ステップ25
0)、現在検証しているパスの終了プログラム部品まで
実行した後の状態が最終的な目標状態でなかったという
ことであるから、矛盾が発生したことを通知する(ステ
ップ190)。ステップ190の後、処理を終了する。
If the currently executed program name 58 and the verification end program part name 53 do not match (step 25
0) Since the state after execution up to the end program part of the path currently being verified was not the final target state, it is notified that a contradiction has occurred (step 190). After step 190, the process ends.

【0038】以上により、入出力動作レベルで、プログ
ラムを検証することができる。
As described above, the program can be verified at the input / output operation level.

【0039】プログラムの検証が完了したら、プログラ
ム部品名とプログラムモジュールとの対応テーブル60
を利用して、必要なプログラムモジュールをプログラム
モジュール群70から読出してリンクし、目的とするプ
ログラムを作成する。
When the verification of the program is completed, the correspondence table 60 between the program component name and the program module
Using, the necessary program modules are read from the program module group 70 and linked to create a desired program.

【0040】(2)現金自動取引装置の払出処理の場合 次に、現金自動取引装置の払出処理プログラムに本実施
例を適用してプログラムの矛盾を検証する例につき具体
的に説明する。ここでは、動作および状態を表現するた
めに述語論理に似た表現を使用するが、別の表現を用い
ても構わない。まず、(a)でユーザが入力したプログ
ラム部品の接続関係に矛盾がなかった場合を、(b)で
その接続関係に矛盾があった場合を、それぞれ説明す
る。 (a)矛盾がない場合
(2) Case of Disbursement Processing of Automatic Cash Transaction Apparatus Next, an example of applying the present embodiment to the disbursement processing program of the automatic cash transaction apparatus to verify the contradiction of the program will be concretely described. Here, an expression similar to the predicate logic is used to express an action and a state, but another expression may be used. First, the case where there is no contradiction in the connection relation of the program parts input by the user in (a) and the case where there is a contradiction in the connection relation will be described in (b). (A) When there is no contradiction

【0041】図6は、払出処理のプログラム部品の接続
関係図(図3に相当する)である。この接続関係は、ユ
ーザが入力し記憶装置40のプログラム部品の接続関係
格納エリア59に格納される。
FIG. 6 is a connection relation diagram (corresponding to FIG. 3) of the program parts of the payout processing. This connection relationship is input by the user and stored in the connection relationship storage area 59 of the program component of the storage device 40.

【0042】図7は、払出処理で使用するプログラム部
品の部品動作データ群(図4に相当する)である。これ
らのデータは、あらかじめ記憶装置40の部品動作デー
タ格納エリア55に格納してある。
FIG. 7 is a part operation data group (corresponding to FIG. 4) of program parts used in the payout process. These data are stored in the component operation data storage area 55 of the storage device 40 in advance.

【0043】図8は、入出力に関する動作ルール群(図
5に相当する)である。ここでは入出力動作として、デ
ータの「入力」、「出力」および「初期化」の3つのル
ール、並びに物理媒体の「挿入」、「排出」、「発行」
および「回収」の4つのルールを設定する例について説
明するが、もちろん他のルールを用いてもよい。物理媒
体としては、磁気カード、明細票、および現金などがあ
る。
FIG. 8 shows a group of operation rules regarding input / output (corresponding to FIG. 5). Here, as input / output operations, three rules of data “input”, “output”, and “initialization”, and “insert”, “eject”, and “issue” of physical media are used.
Although an example of setting the four rules of “collection” and “collection” will be described, other rules may of course be used. Physical media include magnetic cards, statement slips, and cash.

【0044】図8の動作ルールにおいて、「入力
(X)」はデータ項目Xに値を入力すること、「出力
(X)」とはデータ項目Xの値を参照すること、「挿入
(X,Y)」はデバイスXに物理媒体Yを外部から挿入
すること、「排出(X,Y)」はデバイスXから物理媒
体Yを外部に排出すること、「初期化(X)」はデータ
項目Xの状態を入力可能状態(「空」)にすること、
「発行(X,Y)」はデバイスX中で物理媒体Yを生成
もしくは格納場所から移動して排出可能状態(「入」)
にすること、「回収(X,Y)」はデバイスX中で物理
媒体Yを格納場所に移動して挿入状態可能(「空」)に
することを、それぞれ示す。
In the operation rule of FIG. 8, "input (X)" refers to inputting a value to the data item X, "output (X)" refers to the value of the data item X, and "insert (X, “Y)” is to insert the physical medium Y into the device X from the outside, “Eject (X, Y)” is to eject the physical medium Y from the device X, and “Initialize (X)” is the data item X. The state of is ready for input ("empty"),
“Issue (X, Y)” is a state in which the physical medium Y can be generated or moved from the storage location in the device X and ejected (“ON”)
“Recovery (X, Y)” indicates that the physical medium Y is moved to the storage location in the device X and can be inserted (“empty”).

【0045】例えば、「入力(X)」という動作は、
「IF データ項目(X)&状態(X,データ,空)
THEN 状態変更(X,データ,入)」、「IF デ
ータ項目(X)&状態(X,データ,入) THEN
矛盾(入力済未参照)」および「IF データ項目
(X)&状態(X,データ,参照済) THEN 状態
変更(X,データ,入)」からなる。
For example, the operation "input (X)" is
"IF data item (X) & status (X, data, empty)
THEN status change (X, data, input) ”,“ IF data item (X) & status (X, data, input) THEN
Conflict (input has not been referenced) "and" IF data item (X) & status (X, data, referenced) THEN status change (X, data, input) ".

【0046】「IF データ項目(X)&状態(X,デ
ータ,空) THEN 状態変更(X,データ,入)」
は、もしXがデータ項目でかつXのデータが「空」とい
う状態ならば、Xのデータを「入」という状態に変更せ
よというルールである。「IF データ項目(X)&状
態(X,データ,入) THEN 矛盾(入力済未参
照)」は、もしXがデータ項目でかつXのデータが
「入」という状態ならば、入力済という矛盾が発生した
というルールである。「IF データ項目(X)&状態
(X,データ,参照済) THEN 状態変更(X,デ
ータ,入)」は、もしXがデータ項目でかつXのデータ
が「参照済」という状態ならば、Xのデータを「入」と
いう状態に変更せよというルールである。「入力
(X)」という動作は以上のようなルールで定義されて
いる。
"IF data item (X) & status (X, data, empty) THEN status change (X, data, input)"
Is a rule that if X is a data item and the data of X is "empty", change the data of X to "on". "IF data item (X) & status (X, data, input) THEN contradiction (input already unreferenced)" means that if X is a data item and the data of X is "input", the input data is inconsistent. Is a rule that occurs. "IF data item (X) & status (X, data, referenced) THEN status change (X, data, entered)" means that if X is a data item and the data of X is "referenced", The rule is to change the data of X to the state of "ON". The operation of "input (X)" is defined by the above rules.

【0047】以下、他の動作についても同様に定義され
ている。なお、図8で「物体」とあるのは「物理媒体」
のことである。
Hereinafter, other operations are similarly defined. In addition, in FIG. 8, the term "object" means "physical medium".
That is.

【0048】図9(a)は、本実施例で使用するデバイ
ス名を登録したデバイステーブルである。図9(b)
は、本実施例で使用するデータ項目を登録したデータ項
目テーブルである。図9(c)は、本実施例で使用する
物理媒体を登録した物理媒体テーブルである。デバイス
テーブル、データ項目テーブル、および物理媒体テーブ
ルは、第1の記憶装置40に格納してある。
FIG. 9A is a device table in which device names used in this embodiment are registered. Figure 9 (b)
Is a data item table in which data items used in this embodiment are registered. FIG. 9C is a physical medium table in which the physical medium used in this embodiment is registered. The device table, the data item table, and the physical medium table are stored in the first storage device 40.

【0049】以下、図1のフローチャートに従って処理
手順を説明する。まずユーザは目的とする払出処理プロ
グラムの接続関係を入力する(ステップ100)。ここ
では図6のように設計した接続関係を入力したとする。
次に、ユーザは検証開始プログラム部品名52を入力す
る(ステップ105)。ここでは、「キャッシュカード
挿入」を検証開始プログラム部品52とする。次に、検
証終了プログラム部品名53を入力する(ステップ11
0)。ここでは、「取引完了挨拶」を検証終了プログラ
ム53とする。
The processing procedure will be described below with reference to the flowchart of FIG. First, the user inputs the connection relationship of the target payout processing program (step 100). Here, it is assumed that the connection relationship designed as shown in FIG. 6 is input.
Next, the user inputs the verification start program part name 52 (step 105). Here, “insert cash card” is the verification start program component 52. Next, the verification end program part name 53 is input (step 11).
0). Here, the “transaction completion greeting” is the verification end program 53.

【0050】次に、現在状態テーブル50に初期値を設
定する(ステップ120)。図9(d)に本実施例の現
在状態テーブル50の初期値を示す。各データ項目の状
態は「空」、「入」、「参照済」の3つの値を取るもの
とし、初期値はすべて「空」とする。また各デバイスが
取扱う媒体の状態は、「空」と「入」を取るものとし、
初期値はすべて「空」とする。
Next, initial values are set in the current state table 50 (step 120). FIG. 9D shows the initial value of the current state table 50 of this embodiment. The state of each data item has three values of "empty", "on", and "referenced", and the initial values are all "empty". In addition, the state of the medium handled by each device shall be "empty" and "on",
The initial value is all "empty".

【0051】例えば、「状態(口座番号,データ,
空)」は「口座番号」の「データ」が「空」(すなわち
データが入っていない)である状態を示し、「状態(カ
ードリーダ,キャッシュカード,空)」は「カードリー
ダ」の「キャッシュカード」が「空」(すなわちキャッ
シュカードが入っていない)状態を示す。
For example, "state (account number, data,
"Empty)" indicates that the "data" of the "account number" is "empty" (that is, no data is entered), and "state (card reader, cash card, empty)" is "cash of the card reader". "Card" indicates "empty" (that is, no cash card is inserted).

【0052】さらに、検証終了時の目標状態を表す目標
状態テーブル51に値を設定する(ステップ130)。
ここでは各データ項目の状態を「入」、各デバイスが扱
う物理媒体の状態を「空」とする。すなわち、払出処理
が終了したときには、口座番号などのデータ項目にはデ
ータが設定され、カードリーダなどのデバイスはキャッ
シュカードなどの物理媒体が排出された状態(空の状
態)になるということである。
Further, a value is set in the target state table 51 representing the target state at the end of verification (step 130).
Here, the state of each data item is “on”, and the state of the physical medium handled by each device is “empty”. That is, when the payout process is completed, data is set in the data item such as the account number, and the device such as the card reader is in a state where the physical medium such as the cash card is discharged (empty state). .

【0053】次に、検証開始プログラム部品52から検
証終了プログラム部品53に到達するすべての実行パス
を求め、実行パス群56として記憶する(ステップ14
0)。ここでは「キャッシュカード挿入」から「取引完
了挨拶」までを検証するから、{キャッシュカード挿
入、挿入完了、暗証番号入力、入力完了、払出金額入
力、入力完了、内容確認、確認押下、処理中(ホスト通
信など)、処理完了、キャッシュカード受取、受取完
了、明細票受取、受取完了、現金受取、受取完了、取引
完了挨拶}が唯一のパスになる。
Next, all execution paths reaching the verification end program part 53 from the verification start program part 52 are obtained and stored as an execution path group 56 (step 14).
0). Here, we will verify from "insert cash card" to "transaction completion greeting", {insert cash card, insert, PIN code input, input completion, payout amount input, input completion, content confirmation, confirmation press, processing ( Host communication), processing completion, cash card receipt, receipt completion, statement receipt, receipt completion, cash receipt, receipt completion, transaction completion greeting} are the only paths.

【0054】上記パスを現在パス57として設定し(ス
テップ150)、現在実行プログラム部品名58に現在
パス57の最初のプログラム部品名を設定し、プログラ
ム実行結果61に現在パスの最初の実行結果(現在パス
の第2番目の要素)を設定する(ステップ160)。こ
こでは「キャッシュカード挿入」が最初のプログラム部
品名であり、「挿入完了」が最初の実行結果である。
The above path is set as the current path 57 (step 150), the first program part name of the current path 57 is set in the currently executed program part name 58, and the first execution result of the current path is set in the program execution result 61 ( The second element of the current path) is set (step 160). Here, "cash card insertion" is the first program part name, and "insertion completed" is the first execution result.

【0055】ステップ170で、現在実行プログラム部
品名58の部品動作データに対応する動作ルールを動作
ルール群54で検索し適用する。ステップ170の処理
は具体的には以下のようなものである。まず、「キャッ
シュカード挿入」というプログラム部品の動作は、その
部品の実行結果により異なる。ここで、プログラム実行
結果61には「キャッシュカード挿入」という部品の実
行結果として「挿入完了」が格納されているので、図7
に示す「キャッシュカード挿入」の部品動作データにお
いて、条件部が「挿入完了」と一致するルールの実行部
の値(「挿入(カードリーダ、キャッシュカード)」お
よび「入力(口座番号)」)が実行されたとする。そこ
で、これらの動作に対応する動作ルールを動作ルール群
54(図8)で検索し、その中で条件部が真となる実行
部を実行する。ここでの「入力(口座番号)」は、キャ
ッシュカードから口座番号を読み取るということであ
る。
At step 170, the operation rule corresponding to the part operation data of the currently executed program part name 58 is searched in the operation rule group 54 and applied. The process of step 170 is specifically as follows. First, the operation of the program component "insert cash card" differs depending on the execution result of the component. Here, since “insertion completed” is stored in the program execution result 61 as the execution result of the component “cash card insertion”, FIG.
In the operation data of the "Insert cash card" shown in, the value ("Insert (card reader, cash card)" and "Input (account number)" of the execution part of the rule whose condition part matches "Insert completed" is Suppose it was executed. Therefore, the operation rule group 54 (FIG. 8) is searched for an operation rule corresponding to these operations, and the execution unit whose condition part is true is executed. “Input (account number)” here means reading the account number from the cash card.

【0056】まず「挿入(カードリーダ、キャッシュカ
ード)」とパターンが一致するルールを検索する。する
と、図8の「挿入(X,Y)」という動作ルールと一致
するので、Xに「カードリーダ」、Yに「キャッシュカ
ード」を代入する。ここでXとYは変数とし、任意の定
数(ここでは「カードリーダ」と「キャッシュカー
ド」)と一致可能であるものとする。これにより、挿入
(X,Y)の第1番目の条件部は、「デバイス(カード
リーダ)&物理媒体(キャッシュカード)&状態(カー
ドリーダ、キャッシュカード、空)」となる。
First, a rule whose pattern matches "insertion (card reader, cash card)" is searched. Then, since it matches the operation rule of "insert (X, Y)" in FIG. 8, "card reader" is substituted for X and "cash card" is substituted for Y. Here, X and Y are variables, and can be matched with arbitrary constants (here, "card reader" and "cash card"). As a result, the first condition part of the insertion (X, Y) becomes "device (card reader) & physical medium (cash card) & status (card reader, cash card, empty)".

【0057】次に上記条件部の各項目と、デバイステー
ブル(図9(a))、データ項目テーブル(図9
(b))、物理媒体テーブル(図9(c))、および現
在状態テーブル(図9(d))との内容を比較し、両者
に一致するものがあれば真とする。この結果、「デバイ
ス(カードリーダ)&物理媒体(キャッシュカード)&
状態(カードリーダ、キャッシュカード、空)」は真に
なるので、それに対応する実行部である「状態変更(カ
ードリーダ、キャッシュカード、入)」を実行する。こ
の結果、図9(d)の現在状態テーブル50は、「状態
(カードリーダ、キャッシュカード、空)」から「状態
(カードリーダ、キャッシュカード、入)」になる。仮
に第1番目の条件部が偽になる場合には、第2番目の条
件部について同様のことを行う。すべての条件部を調べ
て、真になる条件部がない場合には、矛盾が発生したこ
ととする。
Next, each item of the above condition section, device table (FIG. 9A), and data item table (FIG. 9).
(B)), the physical medium table (FIG. 9 (c)), and the current state table (FIG. 9 (d)) are compared with each other. As a result, "device (card reader) & physical medium (cash card) &
Since the "state (card reader, cash card, empty)" becomes true, "state change (card reader, cash card, on)", which is the execution unit corresponding to it, is executed. As a result, the current state table 50 of FIG. 9D changes from "state (card reader, cash card, empty)" to "state (card reader, cash card, on)". If the first condition part is false, the same is done for the second condition part. If all the conditional parts are examined and there is no conditional part that is true, it means that a contradiction has occurred.

【0058】「キャッシュカード挿入」のもう1つの動
作である「入力(口座番号)」についても、同様に動作
ルールを動作ルール群54で検索し適用する。この結
果、現在状態テーブル50は、「状態(口座番号、デー
タ、空)」から「状態(口座番号、データ、入)」にな
る。
Similarly, for "input (account number)" which is another operation of "insert cash card", the operation rule is searched in the operation rule group 54 and applied. As a result, the current state table 50 changes from “state (account number, data, empty)” to “state (account number, data, on)”.

【0059】このように現在実行プログラム部品58に
動作ルールを適用して矛盾が生じない場合には(ステッ
プ180)、現在実行プログラム部品名58(キャッシ
ュカード挿入)と検証終了プログラム部品名53(取引
完了挨拶)を比較する(ステップ210)。両者は一致
しないので、次に実行するプログラム部品名を現在パス
57の中から選択し、現在実行プログラム部品名58に
設定する(ステップ240)。ここでは「暗証番号入
力」が設定される。この後、ステップ170に戻る。
In this way, when the operation rule is applied to the currently executed program part 58 and no contradiction occurs (step 180), the currently executed program part name 58 (cash card insertion) and the verification end program part name 53 (transaction). Completion greetings) are compared (step 210). Since the two do not match, the name of the program component to be executed next is selected from the current path 57 and set in the currently executed program component name 58 (step 240). Here, "password input" is set. Then, the process returns to step 170.

【0060】本実施例では、プログラム部品を逐次実行
していっても、矛盾が発生しないので、現在実行プログ
ラム部品名58が検証終了プログラム部品名53に一致
するまで、上記のような処理が繰り返されることとな
る。動作ルールを逐次実行した場合の状態変化を図10
に示す。
In this embodiment, even if the program parts are sequentially executed, no contradiction occurs. Therefore, the above processing is repeated until the currently executed program part name 58 matches the verification end program part name 53. Will be done. FIG. 10 shows the state change when the operation rules are sequentially executed.
Shown in.

【0061】プログラムを逐次実行していき、現在実行
プログラム部品名58と検証終了プログラム部品名53
が一致したら(ステップ220)、現在状態テーブル5
0と目標状態テーブル51を比較する(ステップ23
0)。図10の最後の状態は、ステップ130で設定し
た目標状態テーブル51の値(データ項目はすべて
「入」、デバイスが扱う物理媒体は「空」)と一致する
ので(ステップ250)、検証開始プログラム部品名5
2から検証終了プログラム部品名53へ至るパスの中で
まだ検証していないパスを1つ選択して、現在パス57
に設定する(ステップ260)。本実施例では、パスが
1つだけなので残りのパスはない(ステップ270)。
ゆえに、矛盾は検出されることなく、処理は終了する。
The programs are sequentially executed, and the currently executed program part name 58 and the verification end program part name 53
If the two match (step 220), the current state table 5
0 and the target state table 51 are compared (step 23
0). The final state of FIG. 10 matches the values of the target state table 51 set in step 130 (all data items are “on”, and the physical medium handled by the device is “empty”) (step 250), so the verification start program Part name 5
From the paths from 2 to the verification end program part name 53, select one path that has not been verified yet, and select the current path 57.
(Step 260). In this embodiment, since there is only one path, there are no remaining paths (step 270).
Therefore, the process ends without any contradiction being detected.

【0062】以上により、「キャッシュカード挿入」か
ら「取引完了挨拶」までに関し、入出力動作レベルでプ
ログラムを検証することができた。
As described above, the program could be verified at the input / output operation level from "insert cash card" to "transaction completion greeting".

【0063】プログラムの検証が完了したら、プログラ
ム部品名とプログラムモジュールとの対応テーブル60
を利用して、必要なプログラムモジュール70をリンク
して、目的とするプログラムを作成する。
When the verification of the program is completed, the correspondence table 60 between the program part name and the program module
Using, the necessary program modules 70 are linked to create a target program.

【0064】(b)矛盾が発生する場合(「キャッシュ
カード挿入」を入れなかった場合) 次に、ユーザが「キャッシュカード挿入」というプログ
ラム部品を入れずに接続関係を設計し、そのために矛盾
が生じる場合について説明する。
(B) When a contradiction occurs (when "cash card insertion" is not inserted) Next, the user designs the connection relationship without inserting the program part "cash card insertion", and therefore the contradiction does not occur. The case where it occurs will be described.

【0065】図11は、ユーザが設計し入力したプログ
ラム部品の接続関係図を示す。検証開始プログラム部品
名、検証終了プログラム部品名、現在状態テーブルの初
期値、目標状態テーブルの値、デバイステーブル、物理
媒体テーブル、データ項目テーブル、動作データ、動作
ルールは、上記実施例(2)(a)の矛盾がない場合と
同様とする。
FIG. 11 shows a connection relationship diagram of program parts designed and input by the user. The verification start program part name, the verification end program part name, the initial value of the current state table, the value of the target state table, the device table, the physical medium table, the data item table, the operation data, and the operation rule are the same as those in the above embodiment (2) ( It is the same as when there is no contradiction in a).

【0066】以下、図1に従って処理手順を説明する。
但し、処理手順の詳細は上記実施例(2)(a)と同様
なので、状態変化を中心に(2)(a)との相違点につ
いてのみ説明する。図11のプログラム部品の接続関係
図に従って、プログラム部品を実行したときの状態変化
を図12に示す。
The processing procedure will be described below with reference to FIG.
However, since the details of the processing procedure are the same as those in the above-described embodiment (2) (a), only the differences from (2) (a) will be described focusing on the state change. FIG. 12 shows a state change when the program component is executed according to the connection relation diagram of the program component in FIG.

【0067】(2)(a)とは異なり、「キャッシュカ
ード挿入」がないので、キャッシュカードと口座番号の
状態は「空」のままであり、現在実行プログラム部品が
「処理中」のとき、状態は図12の第4番目の状態
(「内容確認」実行後の状態)になっている。この状態
で「処理中」というプログラム部品の動作を実行するこ
ととなる。
(2) Unlike (a), since there is no "insert cash card", the status of the cash card and account number remains "empty", and when the currently executed program component is "processing", The state is the fourth state in FIG. 12 (the state after the execution of “confirm contents”). In this state, the operation of the program component “processing” is executed.

【0068】「処理中」というプログラム部品の実行結
果が「処理完了」である場合の動作である「出力(口座
番号)」とパターンが一致するルールを図8から検索す
ると、「出力(X)」という動作ルールと一致するので
Xは「口座番号」となる。「出力(X)」の第1番目の
条件部は、「IF データ項目(X)&状態(X,デー
タ,空)」であるが、「データ項目(口座番号)」は真
であり、現在の状態から「状態(口座番号,データ,
空)」も真である。したがって「データ項目(X)&状
態(X,データ,空)」が真となるので、実行部である
矛盾(未入力)が実行される(ステップ170)。矛盾
が発生したので(ステップ180)、矛盾を通知する
(ステップ190)。
When a rule matching the pattern with "output (account number)" which is the operation when the execution result of the program part "processing" is "processing completed" is searched from FIG. 8, "output (X)" is searched. X is an "account number" because it matches the operation rule ". The first condition part of "output (X)" is "IF data item (X) & status (X, data, empty)", but "data item (account number)" is true and From the state of "state (account number, data,
Sky) "is also true. Therefore, since "data item (X) & status (X, data, empty)" is true, the contradiction (not input) which is the execution unit is executed (step 170). Since a contradiction has occurred (step 180), the contradiction is notified (step 190).

【0069】以上のように、データを入力することな
く、そのデータを参照しようとした場合に矛盾を検知し
通知するので、プログラマはプログラム部品の抜けを知
ることができる。
As described above, when the user tries to refer to the data without inputting the data, the contradiction is detected and notified, so that the programmer can know the omission of the program part.

【0070】(c)矛盾が発生する場合(「キャッシュ
カード受取」を入れなかった場合) 次に、ユーザが「キャッシュカード受取」というプログ
ラム部品を入れずに接続関係を設計し、そのために矛盾
が生じる場合について説明する。
(C) When a contradiction occurs (when "cash card receipt" is not entered) Next, the user designs the connection relationship without including the program part called "cash card receipt", which causes a contradiction. The case where it occurs will be described.

【0071】図13は、ユーザが設計し入力したプログ
ラム部品の接続関係図を示す。検証開始プログラム部品
名、検証終了プログラム部品名、現在状態テーブルの初
期値、目標状態テーブルの値、デバイステーブル、物理
媒体テーブル、データ項目テーブル、動作データ、動作
ルールは、上記実施例(2)(a)の矛盾がない場合と
同様とする。
FIG. 13 shows a connection relation diagram of program parts designed and input by the user. The verification start program part name, the verification end program part name, the initial value of the current state table, the value of the target state table, the device table, the physical medium table, the data item table, the operation data, and the operation rule are the same as those in the above embodiment (2) ( It is the same as when there is no contradiction in a).

【0072】以下、図1に従って処理手順を説明する。
但し、処理手順の詳細は上記実施例(2)(a)と同様
なので、途中までは状態変化を中心に(2)(a)との
相違点についてのみ説明する。図13のプログラム部品
接続関係図に従って、プログラム部品を実行したときの
状態変化を図14に示す。
The processing procedure will be described below with reference to FIG.
However, since the details of the processing procedure are the same as those in the above-mentioned embodiment (2) (a), only the differences from (2) (a) will be described, centering on the state change. FIG. 14 shows a state change when the program component is executed according to the program component connection relationship diagram of FIG.

【0073】(2)(a)とは異なり、「キャッシュカ
ード受取」がないので、現在実行プログラム部品が「取
引完了挨拶」のとき、キャッシュカードの状態は「入」
のままとなっている。ここで「取引完了挨拶」というプ
ログラム部品の動作を実行しても、動作がないので、状
態は変化しない。現在実行プログラム名58と検証終了
プログラム名53が一致したら(ステップ220)、現
在状態テーブル50と目標状態テーブル51を比較する
(ステップ230)。ここで、現在状態テーブル50で
はキャッシュカードの状態は「入」なのに、目標状態テ
ーブル51ではキャッシュカードは「空」であるので一
致しない(ステップ250)。したがって、矛盾が検出
されたことになり矛盾発生を通知する(ステップ19
0)。
(2) Unlike (a), since there is no "receipt of cash card", the status of the cash card is "on" when the currently executed program component is "transaction completion greeting".
It remains as it is. Even if the operation of the program part called "transaction completion greeting" is executed here, since there is no operation, the state does not change. When the currently executed program name 58 and the verification end program name 53 match (step 220), the current state table 50 and the target state table 51 are compared (step 230). Here, in the current state table 50, the state of the cash card is "on", but in the target state table 51, the cash card is "empty", so they do not match (step 250). Therefore, the contradiction is detected, and the occurrence of the contradiction is notified (step 19).
0).

【0074】以上のように、カードを挿入したのに、そ
れを返却せずに取引を終了した場合に矛盾を検知し通知
するので、プログラマはプログラム部品の抜けを知るこ
とができる。なお、上記実施例では現金自動取引装置の
払出処理を例に挙げて説明したが、当然ながら本発明は
他の処理プログラムの作成に適用することもできる。
As described above, when the card is inserted, but the transaction is ended without returning it, the contradiction is detected and notified, so that the programmer can know the omission of the program part. In addition, although the payout process of the automatic teller machine has been described as an example in the above embodiment, the present invention can naturally be applied to the creation of another process program.

【0075】上述した図1の処理手順では、先に実行パ
スをすべて求めてから、そのすべてのパスについて無矛
盾性を検証したが、実行パスを求めながらそのパスの無
矛盾性を検証することもできる。以下、そのような実施
例を説明する。
In the processing procedure of FIG. 1 described above, all the execution paths are first obtained, and then the consistency is verified for all the paths. However, it is also possible to verify the consistency of the paths while obtaining the execution paths. . Hereinafter, such an embodiment will be described.

【0076】図15は、実行パスを求めながらそのパス
の無矛盾性を検証する実施例の処理手順を示すフローチ
ャートである。図16は、図15の処理手順で動作する
プログラム矛盾検出装置の構成を表す概略図である。図
16の構成は図2と同様であるが、図2にある実行パス
群56、現在パス57、および現在実行プログラム部品
58が削除され、代わりに状態トレースペアリスト62
が追加されている。図17は、図15の手順にしたがっ
てプログラム検出処理を行ったときの状態トレースペア
リストの遷移図である。状態トレースペアリストとは、
図5(b)に示す状態テーブルとプログラムを接続関係
にしたがって起動した軌跡(トレース)であり、{p
0,p1,p2,…,pn}といったプログラムのシー
ケンスで表す。
FIG. 15 is a flowchart showing the processing procedure of the embodiment for verifying the consistency of the path while obtaining the execution path. FIG. 16 is a schematic diagram showing the configuration of a program contradiction detection device that operates according to the processing procedure of FIG. The configuration of FIG. 16 is the same as that of FIG. 2, but the execution path group 56, the current path 57, and the current execution program part 58 in FIG. 2 are deleted, and instead, the state trace pair list 62 is used.
Has been added. FIG. 17 is a transition diagram of the state trace pair list when the program detection process is performed according to the procedure of FIG. What is the state trace pair list?
A trace (trace) of starting the state table and the program shown in FIG. 5B in accordance with the connection relation, {p
It is represented by a program sequence such as 0, p1, p2, ..., Pn}.

【0077】以下、図16にしたがって処理手順を説明
する。ステップ500からステップ540までは、図1
のステップ100からステップ130までと同じであ
る。本実施例では説明のために、ステップ500で接続
関係として図3が、ステップ510で検証開始プログラ
ム名としてp1が、ステップ520で検証終了プログラ
ム名としてp7が、それぞれ入力されたものとする。ま
た、ステップ530では初期値が与えられるが、それを
総称してS0と表記する。また、ステップ540で入力
される目標状態テーブルはSfと表記することにする。
The processing procedure will be described below with reference to FIG. Steps 500 to 540 are shown in FIG.
Steps 100 to 130 are the same. In the present embodiment, for the sake of explanation, it is assumed that FIG. 3 is input in step 500, p1 is input as the verification start program name in step 510, and p7 is input as the verification end program name in step 520. An initial value is given in step 530, which will be generically referred to as S0. Further, the target state table input in step 540 will be referred to as Sf.

【0078】次に、現在状態テーブル50に格納されて
いる初期値S0と検証開始プログラム名52に格納され
ている値p1から、状態トレースリスト(S0,{p
1})を作成し、状態トレースペアリスト62に追加す
る(ステップ550)。前記状態トレースペアリスト6
2中のトレースの最後のプログラム部品名を抽出すると
p1を得る(ステップ560)。p1の実行結果を接続
関係59から求め、それに対応する動作ルールを適用す
る(ステップ570)。このとき、矛盾が生じれば(ス
テップ580)、矛盾が発生したことをユーザに通知し
て(ステップ640)、処理を終了する。
Next, from the initial value S0 currently stored in the state table 50 and the value p1 stored in the verification start program name 52, the state trace list (S0, {p
1}) is created and added to the state trace pair list 62 (step 550). State trace pair list 6
When the last program part name of the trace in 2 is extracted, p1 is obtained (step 560). The execution result of p1 is obtained from the connection relation 59, and the corresponding operation rule is applied (step 570). At this time, if a contradiction occurs (step 580), the user is notified of the contradiction (step 640), and the process ends.

【0079】矛盾が発生しなければ、動作ルールを適用
した結果得た新しい状態{S11}と、接続関係59か
ら得られる次の実行プログラム名{p2}から、新しい
状態トレースペアリスト((S11,{p1,p
2}))を作成し、前の状態トレースペアリスト62を
削除する(ステップ590)。新しく生成された状態ト
レースペアリスト62のトレース中に検証終了プログラ
ム部品名53の値p7が含まれているものを探し(ステ
ップ600)、ない場合にはステップ560に移る。あ
る場合には、検証終了プログラム部品名の値であるp7
を含むすべての状態トレースペアについて、状態が目標
状態テーブル51の値と一致するか比較し(ステップ6
10)、そのすべてが一致した場合には、一致する状態
トレースペアを状態トレースペアリスト62から削除し
(ステップ620)、状態トレースペアリストが空でな
いかどうかを調べる(ステップ630)。空である場合
にはp1からp7へのすべての実行パスに矛盾なかった
として処理を終了する。一致しないものがあった場合に
は、矛盾をユーザに通知して(ステップ640)、終了
する。
If no contradiction occurs, a new state trace pair list ((S11, S11) is obtained from the new state {S11} obtained as a result of applying the operation rule and the next execution program name {p2} obtained from the connection relation 59. {P1, p
2})) is created and the previous state trace pair list 62 is deleted (step 590). The trace of the newly generated state trace pair list 62 is searched for a value including the value p7 of the verification end program part name 53 (step 600), and if not, the process proceeds to step 560. If yes, p7, which is the value of the verification end program part name
For all state trace pairs including, the state is compared with the value in the target state table 51 and compared (step 6
10) If all match, delete the matching state trace pair from the state trace pair list 62 (step 620) and check if the state trace pair list is not empty (step 630). If it is empty, it is determined that all execution paths from p1 to p7 are consistent, and the processing ends. If there is a mismatch, the user is notified of the contradiction (step 640) and the process ends.

【0080】以上により、入出力関係だけに着目してプ
ログラムの無矛盾性を検証することができる。
As described above, the consistency of the program can be verified by paying attention only to the input / output relationship.

【0081】[0081]

【発明の効果】以上説明したように、本発明によれば、
アプリケーションレベルでの処理手順の誤りや処理の抜
けを自動的に検出するので、プログラマの負担が軽減
し、生産性が高まる。特に、画面を基本としたプログラ
ム部品を組み合わせて目的とするプログラムを作成する
場合などに適用して好適である。
As described above, according to the present invention,
Since errors in processing procedures and omissions in processing at the application level are automatically detected, the burden on the programmer is reduced and productivity is increased. In particular, it is suitable to be applied to a case where a target program is created by combining screen-based program components.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施例に係るプログラム矛盾検出方
法の処理手順を表すフローチャート
FIG. 1 is a flowchart showing a processing procedure of a program contradiction detection method according to an embodiment of the present invention.

【図2】本実施例のプログラム矛盾検出装置の構成を表
す概略図
FIG. 2 is a schematic diagram showing the configuration of a program contradiction detection device of this embodiment.

【図3】プログラム部品間の一般的な接続関係の一例を
表す図
FIG. 3 is a diagram showing an example of a general connection relationship between program parts.

【図4】プログラム部品の一般的な動作記述データの例
を示す図
FIG. 4 is a diagram showing an example of general operation description data of a program part.

【図5】動作ルールの一般的な記述例および状態テーブ
ルの一般的な記述例を示す図
FIG. 5 is a diagram showing a general description example of operation rules and a general description example of a state table.

【図6】払出処理のプログラム部品の正常な接続関係図FIG. 6 is a diagram showing a normal connection relationship of program parts for payout processing.

【図7】払出処理で使用するプログラム部品の動作デー
タを示す図
FIG. 7 is a diagram showing operation data of program parts used in payout processing.

【図8】入出力に関する動作ルールを示す図FIG. 8 is a diagram showing operation rules regarding input / output.

【図9】払出処理で使用するデバイステーブル、データ
項目テーブル、物理媒体テーブル、および状態テーブル
を示す図
FIG. 9 is a diagram showing a device table, a data item table, a physical medium table, and a status table used in a payout process.

【図10】正常な払出処理の状態テーブルの遷移図FIG. 10 is a transition diagram of a normal payout processing state table.

【図11】異常な払出処理のプログラム部品の接続関係
FIG. 11 is a connection relation diagram of program parts for abnormal payout processing.

【図12】異常な払出処理の状態テーブルの遷移図FIG. 12 is a transition diagram of a state table of abnormal payout processing.

【図13】異常な払出処理のプログラム部品の接続関係
FIG. 13 is a connection relation diagram of program parts for abnormal payout processing.

【図14】異常な払出処理の状態テーブルの遷移図FIG. 14 is a transition diagram of a state table of abnormal payout processing.

【図15】プログラム矛盾検出方法の別の処理手順を表
すフローチャート
FIG. 15 is a flowchart showing another processing procedure of the program contradiction detection method.

【図16】本実施例の別の構成図FIG. 16 is another configuration diagram of the present embodiment.

【図17】状態トレースペアリストの遷移図FIG. 17 is a transition diagram of the status trace pair list.

【符号の説明】[Explanation of symbols]

10…表示装置、20…入力装置、30…演算装置、4
0…記憶装置、50…現在状態テーブル、51…目標状
態テーブル、52…検証開始プログラム部品名、53…
検証終了プログラム部品名、54…動作ルール群、55
…部品動作データ群、56…実行パス群、57…現在パ
ス群、58…現在実行プログラム部品名、59…プログ
ラム部品の接続関係、60…プログラム部品名とプログ
ラムモジュールの対応テーブル、70…プログラムモジ
ュール群。
10 ... Display device, 20 ... Input device, 30 ... Arithmetic device, 4
0 ... Storage device, 50 ... Present state table, 51 ... Target state table, 52 ... Verification start program part name, 53 ...
Verification end program part name, 54 ... Operation rule group, 55
... parts operation data group, 56 ... execution path group, 57 ... current path group, 58 ... currently executed program part name, 59 ... program part connection relationship, 60 ... program part name / program module correspondence table, 70 ... program module group.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 斉藤 政幸 千葉県習志野市東習志野7丁目1番1号 日立京葉エンジニアリング株式会社内 (72)発明者 高木 浩之 千葉県習志野市東習志野7丁目1番1号 日立京葉エンジニアリング株式会社内 (72)発明者 近藤 博文 神奈川県川崎市幸区鹿島田890番地 日立 システムプラザ新川崎 株式会社日立製作 所システム開発研究所内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Masayuki Saito 7-1, 1-1 Higashi Narashino, Narashino, Chiba Prefecture Hitachi Keiyo Engineering Co., Ltd. (72) Inventor Hiroyuki Takagi 7-1, 1-1 Higashi Narashino, Narashino, Chiba Hitachi Keiyo Engineering Co., Ltd. (72) Inventor Hirofumi Kondo 890 Kashimada, Sachi-ku, Kawasaki-shi, Kanagawa Hitachi System Plaza Shin-Kawasaki Hitachi Systems Development Laboratory

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】1つ以上のプログラム部品を組み合わせて
目的とするプログラムを作成する際に、矛盾を検出する
プログラム矛盾検出装置であって、 各プログラム部品がプログラムの動作状態を表す項目に
対しどのような動作を施すかを記述した部品動作情報を
記憶した部品動作記憶手段と、 各プログラム部品の動作ごとに、その動作がプログラム
の動作状態を表す項目に対しどのような状態変化をもた
らすかを記述した動作ルールを記憶した動作ルール記憶
手段と、 目的とするプログラムを構成するプログラム部品間の接
続関係を入力する接続関係入力手段と、 前記接続関係に基づく順序で各プログラム部品が順次動
作することによりプログラムの動作状態を表す項目がど
のように状態変化していくかを、前記部品動作情報およ
び前記動作ルールを参照して、検証することにより、矛
盾を検出する検証手段とを備えたことを特徴とするプロ
グラム矛盾検出装置。
1. A program contradiction detection device for detecting a contradiction when a target program is created by combining one or more program parts, wherein each program part corresponds to an item indicating an operating state of the program. The component operation storage means that stores the component operation information that describes whether to perform such an operation, and for each operation of each program component, what state change the operation causes for the item that represents the operation state of the program. An operation rule storage unit that stores the described operation rule, a connection relation input unit that inputs a connection relation between program components that make up a target program, and each program component sequentially operates in an order based on the connection relation. How to change the state of the item that indicates the operating state of the program by A program contradiction detection device comprising: a verification unit that detects a contradiction by performing verification by referring to a rule.
【請求項2】前記動作ルール記憶手段は、プログラム部
品の動作が矛盾を発生させる場合を記述した動作ルール
を含み、 前記検証手段は、前記動作ルールを参照しながらプログ
ラムの動作状態を表す項目の状態変化を順次検証してい
く際に、前記動作ルールにより矛盾発生を検出したと
き、その矛盾発生を通知する請求項1に記載のプログラ
ム矛盾検出装置。
2. The operation rule storage means includes an operation rule describing a case where an operation of a program component causes a contradiction, and the verification means includes an item indicating an operation state of a program with reference to the operation rule. The program contradiction detection device according to claim 1, wherein when the contradiction is detected by the operation rule when sequentially verifying the state change, the contradiction is notified.
【請求項3】さらに、前記プログラムの動作状態を表わ
す項目の初期状態および目標状態を設定する手段を備え
た請求項1または2に記載のプログラム矛盾検出装置。
3. The program contradiction detection device according to claim 1, further comprising means for setting an initial state and a target state of an item representing an operating state of the program.
【請求項4】前記検証手段は、前記接続関係に基づく順
序で最終のプログラム部品までプログラムの動作状態を
表す項目の状態変化を順次検証し、最終状態が前記目標
状態に一致するか否かを判別し、一致しない場合に矛盾
発生を通知する請求項3に記載のプログラム矛盾検出装
置。
4. The verification means sequentially verifies the state change of items representing the operating state of the program up to the final program part in the order based on the connection relation, and determines whether the final state matches the target state. The program contradiction detection device according to claim 3, wherein the program contradiction detection device makes a determination and notifies the occurrence of a contradiction when they do not match.
【請求項5】さらに、検証を開始するプログラム部品名
および検証を終了するプログラム部品名を入力する手段
を備えた請求項1ないし4に記載のプログラム矛盾検出
装置。
5. The program contradiction detection device according to claim 1, further comprising means for inputting a program part name for starting verification and a program part name for ending verification.
【請求項6】さらに、前記検証を開始するプログラム部
品名から前記検証を終了するプログラム部品名に到達す
るまでのプログラム部品の順序列をすべて求め、前記検
証手段は、各順序列にしたがって各プログラム部品が順
次動作した場合の状態変化を検証することにより矛盾を
検出する請求項1ないし5に記載のプログラム矛盾検出
装置。
6. Further, all the sequence of program parts from the program part name for starting the verification to the program part name for ending the verification are obtained, and the verifying means sets each program according to each sequence. 6. The program contradiction detection device according to claim 1, wherein the contradiction is detected by verifying a state change when the parts are sequentially operated.
【請求項7】前記プログラム部品が、ソースプログラ
ム、オブジェクトプログラム、または実行プログラムで
ある請求項1ないし6に記載のプログラム矛盾検出装
置。
7. The program contradiction detection device according to claim 1, wherein the program component is a source program, an object program, or an execution program.
【請求項8】1つ以上のプログラム部品を組み合わせて
目的とするプログラムを作成する際に、矛盾を検出する
プログラム矛盾検出方法であって、 各プログラム部品がプログラムの動作状態を表す項目に
対しどのような動作を施すかを記述した部品動作情報
と、各プログラム部品の動作ごとにその動作がプログラ
ムの動作状態を表す項目に対しどのような状態変化をも
たらすかを記述した動作ルールとを、あらかじめ記憶し
ておくとともに、 目的とするプログラムを構成するプログラム部品間の接
続関係を入力するステップと、 検証を開始するプログラム部品名および検証を終了する
プログラム部品名を入力するステップと、 プログラムの動作状態を表す項目の初期状態および目標
状態を設定するステップと、 前記接続関係に基づき、前記検証を開始するプログラム
部品名から前記検証を終了するプログラム部品名に到達
するまでのプログラム部品の順序列を求めるステップ
と、 該順序列の順序で各プログラム部品が順次動作した場合
に、プログラムの動作状態を表す項目がどのように状態
変化していくかを、前記部品動作情報および動作ルール
を参照して、検証することにより、矛盾を検出するステ
ップとを備えたことを特徴とするプログラム矛盾検出方
法。
8. A program contradiction detection method for detecting a contradiction when a target program is created by combining one or more program parts, wherein each program part is associated with an item indicating an operating state of the program. The component operation information describing whether to perform such an operation, and the operation rule describing for each operation of each program component what kind of state change the operation represents for the item indicating the operating state of the program, in advance. The step of inputting the connection relationship between the program parts that make up the target program and storing it, the step of entering the program part name to start the verification and the program part name to end the verification, and the operating state of the program A step of setting an initial state and a target state of an item representing A step of obtaining a sequence of program parts from a program part name to start verification to a program part name to end the verification, and the operation of the program when each program part sequentially operates in the order of the sequence. Program inconsistency detection, characterized in that it comprises a step of detecting an inconsistency by verifying how the item representing the state changes with reference to the component operation information and operation rule. Method.
【請求項9】前記動作ルールは、プログラム部品の動作
が矛盾を発生させる場合を記述した動作ルールを含み、 前記検証により矛盾を検出するステップは、前記動作ル
ールを参照しながらプログラムの動作状態を表す項目の
状態変化を順次検証していく際に、前記動作ルールによ
り矛盾発生を検出したとき、その矛盾発生を通知する請
求項8に記載のプログラム矛盾検出方法。
9. The operation rule includes an operation rule describing a case where an operation of a program component causes a contradiction, and the step of detecting the contradiction by the verification checks the operation state of the program while referring to the operation rule. 9. The program contradiction detection method according to claim 8, wherein when the occurrence of a contradiction is detected by the operation rule when sequentially verifying the state change of the item indicated, the contradiction is notified.
【請求項10】前記検証により矛盾を検出するステップ
は、前記接続関係に基づく順序で最終のプログラム部品
までプログラムの動作状態を表す項目の状態変化を順次
検証し、最終状態が前記目標状態に一致するか否かを判
別し、一致しない場合に矛盾発生を通知する請求項8ま
たは9に記載のプログラム矛盾検出方法。
10. The step of detecting a contradiction by the verification sequentially verifies the state change of items representing the operating state of the program up to the final program part in the order based on the connection relation, and the final state matches the target state. The program contradiction detection method according to claim 8 or 9, wherein it is determined whether or not to perform, and when the two do not match, the contradiction is notified.
JP4297625A 1992-10-09 1992-10-09 Program contradiction detection apparatus and method Pending JPH06124216A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4297625A JPH06124216A (en) 1992-10-09 1992-10-09 Program contradiction detection apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4297625A JPH06124216A (en) 1992-10-09 1992-10-09 Program contradiction detection apparatus and method

Publications (1)

Publication Number Publication Date
JPH06124216A true JPH06124216A (en) 1994-05-06

Family

ID=17848992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4297625A Pending JPH06124216A (en) 1992-10-09 1992-10-09 Program contradiction detection apparatus and method

Country Status (1)

Country Link
JP (1) JPH06124216A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350625A (en) * 2005-06-15 2006-12-28 Nippon Telegr & Teleph Corp <Ntt> Apparatus for determining consistency of program execution procedure, method and program thereof
WO2008056419A1 (en) * 2006-11-09 2008-05-15 Panasonic Corporation Software verifying device, and api interface evaluating method
JP2009163333A (en) * 2007-12-28 2009-07-23 Fujitsu Ltd Control interference candidate detection apparatus and control interference candidate detection method
JP2019204173A (en) * 2018-05-21 2019-11-28 富士ゼロックス株式会社 Information processing device and program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350625A (en) * 2005-06-15 2006-12-28 Nippon Telegr & Teleph Corp <Ntt> Apparatus for determining consistency of program execution procedure, method and program thereof
WO2008056419A1 (en) * 2006-11-09 2008-05-15 Panasonic Corporation Software verifying device, and api interface evaluating method
JP2009163333A (en) * 2007-12-28 2009-07-23 Fujitsu Ltd Control interference candidate detection apparatus and control interference candidate detection method
JP2019204173A (en) * 2018-05-21 2019-11-28 富士ゼロックス株式会社 Information processing device and program

Similar Documents

Publication Publication Date Title
US6671874B1 (en) Universal verification and validation system and method of computer-aided software quality assurance and testing
US6580440B1 (en) System and method for automatically creating and updating a graphical user interface
AU2012100128A4 (en) A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom
US8484626B2 (en) Generic XML screen scraping
EP3021225B1 (en) Automated configuration code based selection of test cases for payment terminals
US20110106776A1 (en) Incremental implementation of undo/redo support in legacy applications
US6934945B1 (en) Method and apparatus for controlling communications
EP1939735A1 (en) System and method for interpreting a specification language file to implement a business system
JP2009520246A (en) Format data extraction without customization
EP1342157B1 (en) An auto-generated task sequence
US8661414B2 (en) Method and system for testing an order management system
CN114048129A (en) Automatic testing method, device, equipment and system for software function change
US20230036672A1 (en) Expression engine for testing transaction processing system
US7100039B2 (en) Systems and methods for a bootstrap mechanism for software execution
US5828829A (en) System test support system and system test support method
JPH06124216A (en) Program contradiction detection apparatus and method
CN119718564A (en) Blockchain transaction parallel execution method, device, system and program product
CN114063982A (en) Method for automatically constructing functional components based on multi-scenario application
CN112948400A (en) Database management method, database management device and terminal equipment
KR930003412B1 (en) Character reading system and method
CN115563008A (en) Code coverage rate detection system, method, device and storage medium
US20220222065A1 (en) System and method of computer-assisted computer programming
Van Sickle et al. Recovering user interface specifications for porting transaction processing applications
CN119645415B (en) Conditional compilation statement code validity determination method, electronic device, and medium
EP0999511A1 (en) A method and system for implementing currency calculations in a computer system