JPS63184847A - フロ−解析機能を付加したプログラム診断エキスパ−トシステム - Google Patents

フロ−解析機能を付加したプログラム診断エキスパ−トシステム

Info

Publication number
JPS63184847A
JPS63184847A JP62017594A JP1759487A JPS63184847A JP S63184847 A JPS63184847 A JP S63184847A JP 62017594 A JP62017594 A JP 62017594A JP 1759487 A JP1759487 A JP 1759487A JP S63184847 A JPS63184847 A JP S63184847A
Authority
JP
Japan
Prior art keywords
program
statement
pattern
processing flow
expert system
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
JP62017594A
Other languages
English (en)
Inventor
Minako Honda
本田 美奈子
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP62017594A priority Critical patent/JPS63184847A/ja
Publication of JPS63184847A publication Critical patent/JPS63184847A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラム中にプログラム誤りを引き起こすス
テートメントがあるか否かを診断するプログラム診断エ
キスパー、トシステムに関し、特にプログラムの動きを
解析し、それに基づいて診断を行うために、フロー解析
機能を付加したプログラム診断エキスパートシステムに
関する。
〔従来の技術〕
従来、この種のプログラム診断エキスパートシステムは
、プログラム上の1ステートメントを順次、知識ベース
上のコーディングパターンとパターン照合を行っている
。例えば、″′Aパターンのステートメント実行後にB
パターンのステートメントが実行されないとプログラム
誤りとなる”というようなコーディングパターンの照合
をする場合、まず、プログラム上の1ステートメントが
Aパターンとパターン照合するか否かを調べ、照合すれ
ば、その後に、Bパターンとパターン照合するステート
メントがあるか否かを調べるという方式が採用されてい
る。
従って、プログラム上のステートメントの上下関係が、
プログラム診断に大きな影響を与えていた。
〔発明が解決しようとする問題点〕
上記の例のような#Aパターンのステートメント実行後
にBパターンのステートメントが実行されないとプログ
ラム誤りとなる”という診断を行った場合、Aパターン
のステートメントの後にBパターンのステートメントが
あったとしても、実際にAパターンのステートメント実
行後にB パターンのステートメントが実行されるか否
かは、従来のプログラム診断エキスパートシステムでは
判断できない。従って、Aパターンのステートメントの
後にBパターンのステートメントがあれば、実際にBパ
ターンのステートメントが実行されない場合でも、プロ
グラム診断エキスパートシステムはプルグラム誤シと診
断しないという不都合があった。
また逆に、′Aパターンのステートメント実行前にBパ
ターンのステートメントが実行されていないとプログラ
ム誤υとなる”というような診断を行った場合には、実
際にBパターンのステートメントが実行されるのにかか
わらず、BパターンのステートメントがAパターンのス
テートメントよりも前に記述されていないとプログラム
診断エキスパートシステムはプログラム誤りと診断して
しまう。
従来のプログラム診断工をスパートシステムにこのよう
な欠点があったため、利用者はプロクラム診断エキスパ
ートシステムの診断結果に必ずしも信頼をおくことがで
きなかった。
〔問題点を解決するための手段〕
上述のような問題点を解決するために、本発明のプログ
ラム診断エキスパートシステムは、プログラム誤りとな
るコーディングパターンを格納するための知識ベースと
、 診断したいプログラムから1ステートメントを読込むス
テートメント読込手段と、 前記知識ベースからのコーディングパターンとプログラ
ムの1ステートメントとのパターン照合を行うパターン
照合手段と、 診断結果を出力する診断結果出力手段とを有するプログ
ラム診断エキスパートシステムにおいて、プログラムの
動きを解析し処理フローネットワークを作成する処理フ
ロー解析手段と、処理フロー解析手段によシ作成された
処理フローネットワークからパターン照合した2つ以上
のステートメントが共に実行されるバス、また社実行さ
れないパスの少なくとも1つを探索する探索手段とを含
むものである。
〔実施例〕
次に1本発明の実施例について図面を参照して説明する
第1図を参照すると、本発明の一実施例の中核であるプ
ログラム診断エキスパートシステム1は、プログラム誤
りとなるコーディングパターンを格納した知識ベース3
と、診断したいプログラム2から1ステートメントを読
込むステートメント読込手段5と、このステートメント
読込手段5で読込まれたステートメントを解析し処理フ
ローネットワークを作成する処理フロー解析手段4と、
知識ベース3からのコーディングパターンとステートメ
ントとのパターン照合を行うパターン照合手段6と、処
理フロー解析手段4により作成さ扛た処理フローネット
ワークからパターン照合した2つ以上のステートメント
が共に実行されるバス、または実行されないパスの少な
くとも一方を探索する探索手段7と、診断結果をプリン
タ9埠に出力する診断結果出力手段8とから構成されて
いる。
次に、本発明の一実施例の動作を第1図、第2図、第3
図、第4図および第5図を参照して詳細に説明する。
第2図は、知識ベースの内容の一例である。知識ベース
3は、ステートメントパターンの定義11と、ステート
メントパターンの定義11の組み合わせKよシブログラ
ム誤りとなるコーディングパターンの定義12とから構
成されている。
第3図は、第1図に示されている処理フロー解析手段4
が作成する処理フローネットワークの一例を示したもの
である。処理フローネットワーク20は繰シ返し9分岐
選択および飛び越し等の非順次処理のキーとなるステー
トメントに対応するノード21−1.・・・、および2
1−4と、第2図の知識ベース3で定義されているステ
ートメントパターンAとパターン照合されたステートメ
ントに対応するノード22−1と、同じくステートメン
トパターンBとパターン照合されたステートメントに対
応するノード22−2と、これらのノードを結ぶアーク
23−1.・・・、および23−6とから構成されてい
る。
第4図を参照すると、第3図で示す処理フローネットワ
ークの要素であるノードは対応するプログラムステート
メントとのマツピング31と、次に実行されるステート
メントのノードのリスト32の2つの属性リストから構
成でれている。
第5図には、第1図に示されている処理フロー解析手段
4が作成する照合ステートメントのノードのリストが示
さ1している。照合ステートメントのノードのリストは
、第2図の知識ベース3で定義されているステートメン
トパターンごとに、それと対応するノード22のリスト
を配したものである。
再び第1図を参照すると、プロ、クラム診断エキスパー
トシステム1の起動に応答して、まず処理フロー解析手
段4が起動される。処理フロー解析手段4は、ステート
メント読込手段5を起動して、診断を行うプログラム2
から1ステートメントを読み込むように指示する。ステ
ートメント読込手段5は、プログラム2から1ステート
メントを読み込んで、処理フロー解析手段4に渡す。
第1図、82図、第3図および第4図を参照すると、処
理フロー解析手段4は受は取ったステートメントをパタ
ーン照合手段6KMして、パターン照合を指示する。パ
ターン照合手段6は知識ベース3のステートメントパタ
ーンの定義11と受は取ったステートメントとのパター
ン照合を行い、その結果を処理フロー解析手段4に渡す
。パターン照合の結果、照合したパターンが存在すれば
、ノード22が作成される。例えば、第3図において轡
で示し九ノード、すなわち、ノード22−1゜ノード2
2−2がそれである。ノードを作成する契機は、このよ
うなパターン照合が成功した場合と、さらに、ステート
メントが例えばC0BOL言語のIP等のように非順次
処理のキーとなるものとその飛び先である場合である。
非順次処理のキーとなるステートメント、あるいは、そ
の飛び先のステートメントに対応するノードは、第3図
ではOで示されている。ノード21−1.・・・、21
−4がそれにあたる。
その後、作成され九ノードとそれ以前に作成されたノー
ドとを結びつけるアーク23をはる処理が行われる。例
えば、第3図で、21−40ノ一ド作成時には、その前
に実行されるノード21−2および22−2とノード2
1−4を結びつけるアーク23−3をはる。具体的には
第4図のステートメントとのマツピング31には該当す
るステートメントとの対応がセットされ、その前に実行
されたステートメントのノードのリスト32に作成した
ノードが加えられる。これで、1ステートメントの処理
が終了したことになる。
プログラムのすべてのステートメントについて上述のよ
うな処理が行われると、第3図に示されるような処理フ
ローネットワーク2oと第5図に示されるような照合ス
テートメントのノードリスト40が作成される。
次に処理フロー解析手段4は、探索手段7を起動する。
探索手段7は、第2図の知識ベース3に定義されている
プログラム誤りとなるコーディングパターン12を、第
3図に示されている処理フローネットワークをたどると
とKよって捜し出す。
そのために、まず探索手段7線、第5図に示される照合
ステートメントのノードのリス)40がらステートメン
トパターンA、Bとパターン照合したステートメントに
対応するノードを取り出す。
そして、ステートメントパターンAおよびBK、対応す
るノードを22−1および22−2とすると、探索手段
7はM3図のノード22−1から出発して、ノード22
−2に到達せず最終ノード21−4に到達する道筋を探
索する。この例では、ノード22−1.アーク23−2
.ノード21−2.アーク23−3およびノード21−
4がその道筋となる。
その後、探索手段7は結果出力手段8を呼び出す。結果
出力手段8は、探索手段7の捜し出した道筋を診断メツ
セージとして、プリンタ9等に出力する。
上述の例では、ステートメントパターンが2つで、プロ
グラム誤りとなるコーディングパターンが1つの知識ベ
ースの例について説明したが、これらの知識ベースを増
やすことによって、より複雑なコーディングパターンの
診断が可能である。
つまり、知識ベースの多少にかかわらず、プロクラム診
断エキスパートシステムの動きは上記例と全く同じであ
る。
〔発明の効果〕
以上説明したように、本発明では、プログラム上のステ
ートメントの上下関係でしかプログラム診断ができなか
ったプログラム診断エキスパートシステムをプログラム
の動きに沿ったプログラム診断ができるという効果があ
り、その結果プログラム診断結果のきめを細かくシ、信
頼贋金向上させるという効果をもたらす。
コンビ為−夕の利用分野がますます拡張され、生産され
るプログラムの葉が急激に増大する今日において、本発
明は、プログラムの−りをプログラム作成直後に発見し
、プログラム誤りによるさまざまな開路、あるいは、検
査作業の増大化を防ぐという効果をあけることかで鳶る
【図面の簡単な説明】
第1図は、本発明のプログラム診断エキスパートシステ
ムの構成を示す図、 第2図は、第1図の知識データベース3の内容の一例を
示す図、 第3図は、第1図に示されている処理フロー解析手段4
が作成する処理フローネットワークの一例を示す図、 第4図は、第3図で示した処理フローネットワークの要
素であるノードについて説明するための図、および 第5図は、第1図に示されている処理フロー解析手段4
が作成する照合ステートメントのノードのリストを示す
図である。 第1図〜第5図において、l・・・・・・プログラム診
断エキスパートシステム、2・・・・・・診断したいプ
ログラム、3・・・・・・知識ベース、4・・・・・・
処理フロー解析手段、5・・・・・・ステートメント読
込手段、6・・・・・・パターン照合手段、7・・・・
・・探索手段、8・・・・・・診断結果出力手段、9・
・・・・・プリンタ、11・・・・・・ステートメント
パターンの定義、12・・・・・・プログラム誤りとな
るコーディングパターン定義、20・・・・・・処理フ
ローネットワーク、21−1.・・・、21−4・・・
・・・非順次処理の中−となるステートメントに対応す
るノード、22−1.22−2・・・・・・パターン照
合したステートメントに対応するノード、23−1.・
・・。 23−6・・・・・・アーク、31・・・・・・プログ
ラム上のステートメントとのマツピングを示す属性リス
ト、32・・・・・・次に実行されるステートメントの
ノードを示す属性リスト、および40・・・・・・照合
ステートメントに対応するノードのリスト。   、二
代理人 弁理士  内 原   晋 。 箭2図 第3図

Claims (1)

  1. 【特許請求の範囲】 プログラム誤りとなるコーディングパターンを格納する
    ための知識ベースと、 診断したいプログラムから1ステートメントを読込むス
    テートメント読込手段と、 前記知識ベースからのコーディングパターンとプログラ
    ムのステートメントとのパターン照合を行うパターン照
    合手段と、 診断結果を出力する診断結果出力手段とを有するプログ
    ラム診断エキスパートシステムにおいて、プログラムの
    動きを解析し処理フローネットワークを作成する処理フ
    ロー解析手段と この処理フロー解析手段により作成された処理フローネ
    ットワークからパターン照合された2つ以上のステート
    メントが共に実行されるパス、または実行されないパス
    の少なくとも1つを探索する探索手段とを含むことを特
    徴としたフロー解析機能を付加したプログラム診断エキ
    スパートシステム。
JP62017594A 1987-01-27 1987-01-27 フロ−解析機能を付加したプログラム診断エキスパ−トシステム Pending JPS63184847A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62017594A JPS63184847A (ja) 1987-01-27 1987-01-27 フロ−解析機能を付加したプログラム診断エキスパ−トシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62017594A JPS63184847A (ja) 1987-01-27 1987-01-27 フロ−解析機能を付加したプログラム診断エキスパ−トシステム

Publications (1)

Publication Number Publication Date
JPS63184847A true JPS63184847A (ja) 1988-07-30

Family

ID=11948220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62017594A Pending JPS63184847A (ja) 1987-01-27 1987-01-27 フロ−解析機能を付加したプログラム診断エキスパ−トシステム

Country Status (1)

Country Link
JP (1) JPS63184847A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63280344A (ja) * 1987-05-12 1988-11-17 Nec Corp プログラム自動診断方式
JPS63304336A (ja) * 1987-06-04 1988-12-12 Nec Corp 計算機言語記述の矛盾摘出解消方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63280344A (ja) * 1987-05-12 1988-11-17 Nec Corp プログラム自動診断方式
JPS63304336A (ja) * 1987-06-04 1988-12-12 Nec Corp 計算機言語記述の矛盾摘出解消方式

Similar Documents

Publication Publication Date Title
Chusho Test data selection and quality estimation based on the concept of essential branches for path testing
Aichernig et al. Test case generation by OCL mutation and constraint solving
Minton et al. Commitment Strategies in Planning: A Comparative Analysis.
Winikoff Debugging agent programs with" why?" Questions
Muscedere et al. Detecting feature-interaction symptoms in automotive software using lightweight analysis
CN109936479A (zh) 基于差分检测的控制平面故障诊断系统及其实现方法
JPH0478926A (ja) 知識獲得システム
Saifan Test Case Reduction Using Data Mining Classifier Techniques.
El-Fakih et al. $\mathcal k $-branching uio sequences for partially specified observable non-deterministic fsms
JPS63184847A (ja) フロ−解析機能を付加したプログラム診断エキスパ−トシステム
Ipate Testing against a non-controllable stream X-machine using state counting
Henderson et al. The Lispkit Manual
Bonchi et al. Minimization algorithm for symbolic bisimilarity
Dietrich et al. Scalable motif detection and aggregation
JPH07311747A (ja) システムの機能ブロッキングのリスクのスタティックアナライザ
Bailey et al. Automatic detection and diagnosis of faults in generated code for procedure calls
Sennett et al. Review of the Type Checking and Scope Rules of the Specification Language Z.
JP2002108652A (ja) プログラムの相関関係検出装置
Ballarini et al. Validation and evaluation of a software solution for fault tolerant distributed synchronization
Sánchez et al. Final semantics for event-pattern reactive programs
Domínguez et al. Program fusion with paramorphisms
Kitzelmann et al. Inductive synthesis of functional programs
Belli et al. Model-Based Integration Testing with Communication Sequence Graphs.
Findlow Can skeletons really be used to detect deadlocks of nets?
CN114489665A (zh) 一种路径规划方法及装置