JPH0756731A - プログラム解析装置 - Google Patents

プログラム解析装置

Info

Publication number
JPH0756731A
JPH0756731A JP5203321A JP20332193A JPH0756731A JP H0756731 A JPH0756731 A JP H0756731A JP 5203321 A JP5203321 A JP 5203321A JP 20332193 A JP20332193 A JP 20332193A JP H0756731 A JPH0756731 A JP H0756731A
Authority
JP
Japan
Prior art keywords
program
graph
pattern
unit
analysis
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
JP5203321A
Other languages
English (en)
Inventor
Yoji Kawasaki
洋治 川崎
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 JP5203321A priority Critical patent/JPH0756731A/ja
Publication of JPH0756731A publication Critical patent/JPH0756731A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【目的】 計算機プログラムの構造を解析する装置にお
いて、グラフ手法を使うことによって、仕様情報などの
抽象化された情報を抽出する。またプログラム解析にお
ける人手の作業を減らす。 【構成】 パタン入力部3は、入力装置からプログラム
パタンおよびそのプログラム仕様の入力を得て、グラフ
構造に変換し、プログラムパタンとしてプログラムパタ
ン格納部2へ登録する。グラフ生成部6は、ソースプロ
グラムをグラフ構造へ変換する。グラフマッチング部8
は、グラフ生成部6で生成されたグラフと、パタン読込
部7で読み込まれたグラフとのパタンマッチングを行
い、プログラムから仕様情報を抽出し、その仕様情報を
解析部9に引き渡す。解析部9は、受けっ取った仕様情
報をもとに、プログラムを解析し、表示部10に、プロ
グラム解析結果を表示する指示を出す。表示部10は、
プログラム解析結果を出力装置に表示するための制御を
行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムの改造・保
守のための、プログラム構造解析およびプログラム仕様
化技術に関する。
【0002】
【従来の技術】従来のプログラム自動解析装置(特開平
01−175030)では、人手で行っていたプログラ
ムの構造解析作業を、自動的に関連するプログラムを読
み込むことによって効率化し、プログラム改造保守工数
が削減された。
【0003】プログラムをグラフで表現する従来の方式
として、"The program dependencegraph in a software
development environment"(Ottenstein,K.J., ACMSIGP
LAN 19,5,177-184, 1984)があり、プログラムの制御構
造やプログラム変数の設定参照関係が表現できるように
なっていた。
【0004】
【発明が解決しようとする課題】しかし、単に関連する
プログラムを読み込んで表示し解析するだけでは、抽出
できる情報に制限があり、人手による作業がまだかなり
の部分を占めていた。そのため、プログラム仕様などの
ように、もっと抽象化された情報を抽出する技術が必要
であった。
【0005】また上記"program dependence graph"で
は、プログラムの構造をグラフに変換するだけだったの
で、そのままではより抽象度の高い仕様情報を抽出する
のは困難であった。
【0006】
【課題を解決するための手段】
(1)本願の第一の発明では、計算機プログラムの構造
を解析する装置において、解析の対象となるプログラム
を格納するプログラムソース格納部と、プログラム解析
のために必要なパタンを格納するプログラムパタン格納
部と、入力されたパタンのデータをプログラムパタン格
納部に登録するパタン入力部と、入力された構造解析指
示のコマンドによって構造解析実行の指示を出すコマン
ド入力部と、コマンド入力部からの指示を受けて指示さ
れたプログラムをプログラムソース格納部から読み込む
プログラム読み込み部と、プログラム読み込み部によっ
て読み込まれたプログラムをグラフ構造に変換するグラ
フ生成部と、プログラムパタン格納部に管理されている
パタンの中で必要なパタンを読み込むパタン読み込み部
と、グラフ生成部で生成されたプログラムのグラフを受
け取って、パタン読み込み部で読み込まれたパタンのグ
ラフとパタンマッチングを行うグラフマッチング部と、
グラフマッチング部からのマッチング情報をもとにして
読み込まれたプログラムの構造を解析して、パタン読み
込み部によって読み込まれた仕様情報をもとにしてプロ
グラムの仕様情報を整理する解析部と、解析部からのプ
ログラム解析情報を表示する表示部とを有している。
【0007】(2)本願の第二の発明では、上記(1)
の計算機プログラム解析装置において、グラフマッチン
グ部において用いられるプログラムのグラフとして、プ
ログラムの文をその節のラベルとして持ち、プログラム
の中の制御構造およびプログラム変数に関する値の設定
と使用の関係をその辺として持つようなグラフを用い、
グラフマッチング部において用いられるパタンのグラフ
として、プログラムのグラフとして用いられるグラフの
節のラベルに、取る値を変えられるようなグラフ変数を
許すようなグラフを用いる。
【0008】
【実施例】次に本発明について図面を参照して説明す
る。
【0009】図1は本願の第1の発明の一実施例を説明
するブロック図である。プログラムソース格納部1では
記憶装置上に、解析する対象となるプログラムが管理さ
れる。プログラムパタン格納部2は記憶装置上に格納さ
れたパタンのライブラリである。
【0010】パタン入力部3は、システムの利用者から
入力されるパタンとその仕様情報を、プログラムパタン
格納部2に登録する。パタンはパタンの構造そのものを
表すグラフと、その仕様情報を表す部分とからなってい
る。パタンを登録する際には、この両方を入力し一括し
て管理する。
【0011】コマンド入力部4はシステムの利用者から
コマンドの入力による解析指示を受ける。プログラム読
み込み部5はコマンド入力部4からの指示を受けて、必
要なプログラムをプログラムソース格納部1から読み込
む。読み込まれたプログラムは、グラフ生成部6に送ら
れそこで対応するグラフ構造に変換される。パタン読み
込み部7は必要なパタンをプログラムパタン格納部2か
ら読み込む。グラフマッチング部8はグラフ生成部6で
生成されたプログラムグラフを受け取り、またパタン読
み込み部7に指示を出して、必要なパタンを読み取って
くる。受け取ったプログラムグラフとパタングラフとで
パタンマッチングを行う。解析部9はグラフマッチング
部8でのパタンマッチングの結果を受け取って、パタン
マッチング可能ならばそのパタングラフに相当する仕様
情報も一緒に受け取る。表示部10は解析部9で解析さ
れた結果の仕様情報をシステムの利用者に出力する。
【0012】図2は本発明の実施例を説明するための解
析するプログラムの例、図3は第二の発明の実施例を説
明するためのプログラムグラフの例であり、図2のプロ
グラムに対応している。グラフの各節はそれにつけた記
号の番号と同じ番号を持つ記号が付いたプログラムの行
に対応する。例えば、(G4)は(P4)に対応する。図2に示
したプログラムには、プログラム変数i,s,pがあ
り、iの値を1から10まで増やしながらsに和をpに
積を計算し結果を表示するプログラムである。図3にお
いて太線の辺は、プログラムの制御構造における包含関
係を表している。例えば、(G4)から(G6)に向かう太線の
辺は、(P4)のwhileの構造の中に(P6)の代入文が含
まれていることを表している。細線の辺はプログラム変
数に対する値の設定とその値の使用の関係を表してい
る。例えば、(G2)から(G5)に向かう細線の辺は、(P2)で
設定されたプログラム変数sの値が(P5)の代入文の右側
で使われていることを表している。破線の辺はある文で
設定されたプログラム変数の値が、whileなどのル
ープの次の繰り返しのときに使われることを表してい
る。例えば、(G7)から(G5)に向かう破線の辺は、(P7)で
設定されたiの値が、whileループの次の回に(P5)
の代入文の右辺で使われていることを表している。図4
は第二の発明の実施例を説明するための、パタングラフ
とその仕様情報の例である。図に示しているように、こ
のパタンは1からNまでの和を求めるパタンである。パ
タングラフにおいて、辺の種類は図3で説明したプログ
ラムグラフの場合と同様である。パタングラフでは節の
ラベルに、I、S、Nなどのグラフ変数が含まれてい
る。
【0013】図5は図3と図4で例示したプログラムグ
ラフとパタングラフに対して、本発明の中のパタンマッ
チング部が実行された結果得られた二つのグラフの節の
対応表と、パタングラフ中に現れるグラフ変数がパタン
マッチング後に持っている値の表である。
【0014】図6は図5で説明したパタンマッチングの
結果得られたグラフ変数の値を用いて図4を書き直し、
対応するプログラムの部分を図2より抜きだしたプログ
ラムである。これによると、元のプログラムから抜き出
された部分が、解析の結果、「1から10までの和を計
算する」という仕様情報を持っていることが分かる。
【0015】
【発明の効果】以上の発明によって、プログラムを解析
する際に、ラベルに変数を含んだグラフを用いることに
より、それをパタンとして登録することができ、その登
録されているパタンと解析したいプログラムとでグラフ
のパタンマッチを行うことによって、仕様情報などの抽
象化された情報を抽出できるようになる。またプログラ
ム解析における人手の作業を減らすことができる。さら
に、必要に応じてプログラムパタン格納部に格納されて
いるプログラムパタンを随時増やしていくことにより、
システム自体の枠組みを変えることなく、プログラム解
析の信頼度やヒット率を改良することができる。
【図面の簡単な説明】
【図1】本願の第1の発明の構成を示す図。
【図2】解析の対象となるプログラムの例を示す図。
【図3】解析の対象となるプログラムに対応するプログ
ラムグラフの例を示す図。
【図4】パタングラフとその仕様情報の例を示す図。
【図5】パタンマッチングの結果得られる対応表の例を
示す図。
【図6】パタンマッチング後のパタンの例を示す図であ
る。
【符号の説明】
1……プログラムソース格納部 5……プログ
ラム読み込み部 2……プログラムパタン格納部 6……グラフ
生成部 3……パタン入力部 7……パタン
読み込み部 4……コマンド入力部 8……グラフ
マッチング部 9……解析部 10……表示部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 計算機プログラムの構造を解析する装置
    において、 解析の対象となるプログラムを格納するプログラムソー
    ス格納部と、 プログラム解析のために必要なパタンを格納するプログ
    ラムパタン格納部と、 入力されたパタンのデータをプログラムパタン格納部に
    登録するパタン入力部と、 入力された構造解析指示のコマンドに応じて構造解析実
    行の指示を出すコマンド入力部と、 前記コマンド入力部からの指示を受けて指示されたプロ
    グラムを前記プログラムソース格納部から読み込むプロ
    グラム読み込み部と、 前記プログラム読み込み部によって読み込まれたプログ
    ラムをグラフ構造に変換するグラフ生成部と、 前記プログラムパタン格納部に管理されているパタンの
    中で必要なパタンを読み込むパタン読み込み部と、 前記グラフ生成部で生成されたプログラムのグラフを受
    け取って、前記パタン読み込み部で読み込まれたパタン
    のグラフとパタンマッチングを行うグラフマッチング部
    と、 前記グラフマッチング部からのマッチング情報をもとに
    して読み込まれたプログラムの構造を解析して、前記パ
    タン読み込み部によって読み込まれた仕様情報をもとに
    してプログラムの仕様情報を整理する解析部と、 前記解析部からのプログラム解析情報を表示する表示部
    とを有することを特徴とする計算機プログラム解析装
    置。
  2. 【請求項2】 前記グラフマッチング部において用いら
    れるプログラムのグラフとして、プログラムの文をその
    節のラベルとして持ち、プログラムの中の制御構造およ
    びプログラム変数に関する値の設定と使用の関係をその
    辺として持つようなグラフを用い、 前記グラフマッチング部において用いられるパタンのグ
    ラフとして、プログラムのグラフとして用いられるグラ
    フの節のラベルに、取る値を変えられるようなグラフ変
    数を許すようなグラフを用いることを特徴とする請求項
    1に記載の計算機プログラム解析装置。
JP5203321A 1993-08-17 1993-08-17 プログラム解析装置 Pending JPH0756731A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5203321A JPH0756731A (ja) 1993-08-17 1993-08-17 プログラム解析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5203321A JPH0756731A (ja) 1993-08-17 1993-08-17 プログラム解析装置

Publications (1)

Publication Number Publication Date
JPH0756731A true JPH0756731A (ja) 1995-03-03

Family

ID=16472088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5203321A Pending JPH0756731A (ja) 1993-08-17 1993-08-17 プログラム解析装置

Country Status (1)

Country Link
JP (1) JPH0756731A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04273525A (ja) * 1991-02-28 1992-09-29 Nec Software Ltd ソースプログラム意味解析システム
JPH0540616A (ja) * 1991-08-02 1993-02-19 Hitachi Ltd プログラム仕様生成方法
JPH05181652A (ja) * 1992-01-07 1993-07-23 Nec Corp プログラムリバース装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04273525A (ja) * 1991-02-28 1992-09-29 Nec Software Ltd ソースプログラム意味解析システム
JPH0540616A (ja) * 1991-08-02 1993-02-19 Hitachi Ltd プログラム仕様生成方法
JPH05181652A (ja) * 1992-01-07 1993-07-23 Nec Corp プログラムリバース装置

Similar Documents

Publication Publication Date Title
US7721255B2 (en) Sequence program editing apparatus
JPH02232152A (ja) 生産システムシミュレータ生成装置
CN112685033A (zh) 用户界面组件自动生成方法、装置及计算机可读存储介质
JPH1165845A (ja) ストール検出表示装置及び方法
JPH0756731A (ja) プログラム解析装置
JPH08314760A (ja) プログラム開発支援装置
JP2002014845A (ja) テスト・スクリプト部品の自動生成方法および装置
JPH03241439A (ja) テストデータ作成ツール
JPH05143570A (ja) 故障木作成方法
JPH09244837A (ja) シミュレータ及びシミュレータの入力データ処理方法
JPH0760363B2 (ja) ユーザ定義コマンドの自動作成方式
JP2720768B2 (ja) プログラムカストマイズ装置
JPH0567015A (ja) シミユレーシヨンデータ生成方式
JPS62135958A (ja) シミユレ−シヨン方式
JPH11305903A (ja) プロセス監視画面表示用データ作成装置、プロセス監視画面表示装置及びプログラム記録媒体
JP2999654B2 (ja) 端末装置
JPH04247552A (ja) データの作成・更新装置
JPH0850576A (ja) 視覚対話型シミュレーション装置
JPH0635890A (ja) 情報処理装置
JPH11353206A (ja) テスト支援システム
JPH0478935A (ja) 入力装置のシミュレーションテスト方式
JPH04143830A (ja) ソフトウェア開発支援システム
Reston Testing of the rapidly developed prototypes
JPS63250765A (ja) シミユレ−シヨン実行同時表示方式
JPH0916652A (ja) 回路シミュレ−ション結果解析方法および装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19960820