JPH08190475A - プログラム解析装置 - Google Patents
プログラム解析装置Info
- Publication number
- JPH08190475A JPH08190475A JP7000172A JP17295A JPH08190475A JP H08190475 A JPH08190475 A JP H08190475A JP 7000172 A JP7000172 A JP 7000172A JP 17295 A JP17295 A JP 17295A JP H08190475 A JPH08190475 A JP H08190475A
- Authority
- JP
- Japan
- Prior art keywords
- dependency
- source
- variable
- source program
- editing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】 本発明は、ソースプログラムを解析して編集
するプログラム解析装置に関し、ソースプログラムの一
部の編集時に依存関係の変化のみに着目して変数依存関
係を部分的に変更などし、影響する範囲の調査および再
作成を迅速に行えるようにすることを目的とする。 【構成】 ソースプログラムを解析してその中で使用さ
れる変数間の代入元と代入先の依存関係を生成する手段
と、この生成された依存関係のリストを画面上に表示
し、リスト中から指定された依存関係あるいは画面上か
ら指定された依存関係を、指定に従って編集(削除、挿
入、変更など)する編集手段とを備え、編集された後の
依存関係を提示するように構成する。
するプログラム解析装置に関し、ソースプログラムの一
部の編集時に依存関係の変化のみに着目して変数依存関
係を部分的に変更などし、影響する範囲の調査および再
作成を迅速に行えるようにすることを目的とする。 【構成】 ソースプログラムを解析してその中で使用さ
れる変数間の代入元と代入先の依存関係を生成する手段
と、この生成された依存関係のリストを画面上に表示
し、リスト中から指定された依存関係あるいは画面上か
ら指定された依存関係を、指定に従って編集(削除、挿
入、変更など)する編集手段とを備え、編集された後の
依存関係を提示するように構成する。
Description
【0001】
【産業上の利用分野】本発明は、ソースプログラムを解
析して編集するプログラム解析装置に関するものであ
る。
析して編集するプログラム解析装置に関するものであ
る。
【0002】既存のプログラムを変更して新たな機能を
追加することは、近年広く行われるようになってきた。
そのために、既存のプログラムの動作を迅速に理解し、
変更による有害な副作用がないことを容易に確認できる
ことが重要である。プログラムには不十分な参考資料し
か付随しない場合が多く、ソースプログラムの解析は不
可欠の技術となっている。
追加することは、近年広く行われるようになってきた。
そのために、既存のプログラムの動作を迅速に理解し、
変更による有害な副作用がないことを容易に確認できる
ことが重要である。プログラムには不十分な参考資料し
か付随しない場合が多く、ソースプログラムの解析は不
可欠の技術となっている。
【0003】
【従来の技術】従来のプログラム解析装置は、ソースプ
ログラムが使用する変数間の関係を分かり易く表示する
手法が良く用いられる。この手法では、ソースプログラ
ムの処理の流れを解析したコントロールフローを作成
し、次にコントロールフローを追いながら、代入文など
の変数間の依存関係を生じさせる文を抽出し、依存関係
を解析したデータフローを作成する。これらのフローを
利用者に表示し、利用者の要求に応じて影響範囲の調査
や各種の検索を行うようにしていた。
ログラムが使用する変数間の関係を分かり易く表示する
手法が良く用いられる。この手法では、ソースプログラ
ムの処理の流れを解析したコントロールフローを作成
し、次にコントロールフローを追いながら、代入文など
の変数間の依存関係を生じさせる文を抽出し、依存関係
を解析したデータフローを作成する。これらのフローを
利用者に表示し、利用者の要求に応じて影響範囲の調査
や各種の検索を行うようにしていた。
【0004】
【発明が解決しようとする課題】上述した従来のプログ
ラム解析装置では、ソースプログラムの一部を変更し、
他の部分に与える影響を知りたい場合、当該変更された
ソースプログラムを全て解析し直し、コントロールフロ
ー、データフローをそれぞれ作成して利用者に表示する
ことを行っていたため、これらフローを再作成するたた
めに多くの処理時間が必要となってしまうと共に、対話
形式に作業を進めることができないという問題があっ
た。
ラム解析装置では、ソースプログラムの一部を変更し、
他の部分に与える影響を知りたい場合、当該変更された
ソースプログラムを全て解析し直し、コントロールフロ
ー、データフローをそれぞれ作成して利用者に表示する
ことを行っていたため、これらフローを再作成するたた
めに多くの処理時間が必要となってしまうと共に、対話
形式に作業を進めることができないという問題があっ
た。
【0005】本発明は、これらの問題を解決するため、
ソースプログラムの一部の編集時に依存関係の変化のみ
に着目して変数依存関係を部分的に変更などし、影響す
る範囲の調査および再作成を迅速に行えるようにするこ
とを目的としている。
ソースプログラムの一部の編集時に依存関係の変化のみ
に着目して変数依存関係を部分的に変更などし、影響す
る範囲の調査および再作成を迅速に行えるようにするこ
とを目的としている。
【0006】
【課題を解決するための手段】図1は、本発明の原理ブ
ロック図を示す。図1において、ソースプログラム1
は、編集対象のソースプログラムである。
ロック図を示す。図1において、ソースプログラム1
は、編集対象のソースプログラムである。
【0007】コントロールフロー作成部2は、ソースプ
ログラムを解析し、データ構造であるコントロールフロ
ーを作成するものである。データフロー作成部3は、コ
ントロールフローを解析し、その中に含まれている変数
の値を変更する文から変数間の関係を抽出したデータフ
ローを作成するものである。
ログラムを解析し、データ構造であるコントロールフロ
ーを作成するものである。データフロー作成部3は、コ
ントロールフローを解析し、その中に含まれている変数
の値を変更する文から変数間の関係を抽出したデータフ
ローを作成するものである。
【0008】コントロールフロー4は、編集対象のソー
スプログラム1から作成したデータ構造を表すものであ
る。データフロー5は、コントロールフロー4の中に含
まれている変数の値を変更する文から変数間の関係を抽
出したものである。
スプログラム1から作成したデータ構造を表すものであ
る。データフロー5は、コントロールフロー4の中に含
まれている変数の値を変更する文から変数間の関係を抽
出したものである。
【0009】制御部6は、全体を統括制御するものであ
る。端末7は、編集指示やデータを入力したり、その結
果などを表示したりするものである。
る。端末7は、編集指示やデータを入力したり、その結
果などを表示したりするものである。
【0010】編集部8は、データフローから変数依存関
係を抽出して表示したり、変数依存関係をもとにした編
集を行ったりなどするものである。非表示変数名テーブ
ル9は、依存関係のリストあるいは依存関係図を表示す
る際に、省略して非表示とする変数を予め登録するテー
ブルである。
係を抽出して表示したり、変数依存関係をもとにした編
集を行ったりなどするものである。非表示変数名テーブ
ル9は、依存関係のリストあるいは依存関係図を表示す
る際に、省略して非表示とする変数を予め登録するテー
ブルである。
【0011】ソース変更履歴格納部10は、編集したソ
ースプログラムを格納し、一括して元のソースプログラ
ムに反映するためのものである。
ースプログラムを格納し、一括して元のソースプログラ
ムに反映するためのものである。
【0012】
【作用】本発明は、図1に示すように、コントロールフ
ロー作成部2がソースプログラム1を解析してコントロ
ールフロー4を作成し、データフロー作成部3がコント
ローフロー中に含まれている変数の値を変更する文から
変数間の関係を抽出したデータフロー5を作成し、編集
部8がこのデータフロー5から変数依存関係を抽出して
そのリストを画面上に表示し、リスト中から指定された
依存関係あるいは画面上から指定された依存関係を、指
定に従って編集(削除、挿入、変更など)し、編集した
後の依存関係を提示するようにしている。
ロー作成部2がソースプログラム1を解析してコントロ
ールフロー4を作成し、データフロー作成部3がコント
ローフロー中に含まれている変数の値を変更する文から
変数間の関係を抽出したデータフロー5を作成し、編集
部8がこのデータフロー5から変数依存関係を抽出して
そのリストを画面上に表示し、リスト中から指定された
依存関係あるいは画面上から指定された依存関係を、指
定に従って編集(削除、挿入、変更など)し、編集した
後の依存関係を提示するようにしている。
【0013】また、コントロールフロー作成部2がソー
スプログラムを解析してコントロールフロー4を作成
し、データフロー作成部3がコントローフロー中に含ま
れている変数の値を変更する文から変数間の関係を抽出
したデータフロー5を作成し、編集部8がこのデータフ
ロー5から変数依存関係を抽出しその依存関係につい
て、代入元の変数と代入先の変数を図形で表し、および
代入元の変数から代入先の変数に向かう関係を矢印で表
して画面上に表示し、画面上から指定された矢印あるい
は代入元、代入先を表す図形について、指定に従って編
集(削除、挿入、変更など)を行い、編集した後の依存
関係を図形および矢印で提示するようにしている。
スプログラムを解析してコントロールフロー4を作成
し、データフロー作成部3がコントローフロー中に含ま
れている変数の値を変更する文から変数間の関係を抽出
したデータフロー5を作成し、編集部8がこのデータフ
ロー5から変数依存関係を抽出しその依存関係につい
て、代入元の変数と代入先の変数を図形で表し、および
代入元の変数から代入先の変数に向かう関係を矢印で表
して画面上に表示し、画面上から指定された矢印あるい
は代入元、代入先を表す図形について、指定に従って編
集(削除、挿入、変更など)を行い、編集した後の依存
関係を図形および矢印で提示するようにしている。
【0014】この際、依存関係を表示する際に依存関係
から省略する作業変数などの変数を予め登録する非表示
変数名テーブル9を設け、この非表示変数名テーブル9
に登録されている変数について、依存関係を表示する際
に省略するようにしている。
から省略する作業変数などの変数を予め登録する非表示
変数名テーブル9を設け、この非表示変数名テーブル9
に登録されている変数について、依存関係を表示する際
に省略するようにしている。
【0015】また、指定に従って編集する対象となるソ
ースプログラム1の部分を取り出し、その部分の編集前
あるいは/および編集後のソースプログラム1の行を併
せて表示するようにしている。
ースプログラム1の部分を取り出し、その部分の編集前
あるいは/および編集後のソースプログラム1の行を併
せて表示するようにしている。
【0016】また、指定に従って編集する対象となるソ
ースプログラム1の部分を取り出し、その部分の編集後
のソースプログラム1が処理の流れを変更すると判明し
たときに警告を表示するようにしている。
ースプログラム1の部分を取り出し、その部分の編集後
のソースプログラム1が処理の流れを変更すると判明し
たときに警告を表示するようにしている。
【0017】また、編集した結果を全て保持しておき、
指示に対応して元のソースプログラム1にまとめて反映
するようにしている。従って、ソースプログラム1の一
部の編集時に依存関係の変化のみに着目して変数依存関
係を部分的に編集することにより、編集による変更など
によって影響する範囲の調査および再作成を迅速に行う
ことが可能となった。
指示に対応して元のソースプログラム1にまとめて反映
するようにしている。従って、ソースプログラム1の一
部の編集時に依存関係の変化のみに着目して変数依存関
係を部分的に編集することにより、編集による変更など
によって影響する範囲の調査および再作成を迅速に行う
ことが可能となった。
【0018】
【実施例】次に、図2から図10を用いて本発明の実施
例の構成および動作を順次詳細に説明する。
例の構成および動作を順次詳細に説明する。
【0019】図2は、本発明の動作説明フローチャート
を示す。これは、図1の構成の動作を詳細に説明するも
のである。図2において、S1は、ソースプログラムを
入力する。これは、図1の編集対象のソースプログラム
1を入力する。
を示す。これは、図1の構成の動作を詳細に説明するも
のである。図2において、S1は、ソースプログラムを
入力する。これは、図1の編集対象のソースプログラム
1を入力する。
【0020】S2は、コントロールフローを作成する。
これは、S1で入力したソースプログラム1を解析し、
後述する図4に示す、ソースプログラムのデータ構造を
表すコントロールフローを公知の方法で作成する。
これは、S1で入力したソースプログラム1を解析し、
後述する図4に示す、ソースプログラムのデータ構造を
表すコントロールフローを公知の方法で作成する。
【0021】S3は、データフローを作成する。これ
は、S2で作成したコントロールフローの中に含まれて
いる変数の値を変更する文から変数間の関係を抽出し、
後述する図5の(a)に示すデータフローを作成する。
は、S2で作成したコントロールフローの中に含まれて
いる変数の値を変更する文から変数間の関係を抽出し、
後述する図5の(a)に示すデータフローを作成する。
【0022】S4は、変数依存関係テーブルを作成す
る。これは、S3で作成したデータフローをもとに、変
数間の依存関係を抽出し、後述する図3の(a)に示す
変数依存関係テーブルを作成する。
る。これは、S3で作成したデータフローをもとに、変
数間の依存関係を抽出し、後述する図3の(a)に示す
変数依存関係テーブルを作成する。
【0023】S5は、変数依存関係図を表示する。これ
は、S4で作成した変数依存関係テーブルをもとに、代
入元の変数と代入先の変数を図形で表し、および代入元
の変数から代入先の変数に向かう関係を矢印で表す変数
依存関係図を画面上に表示する。尚、変数依存関係テー
ブルの内容(リスト)を画面上に表示するようにしても
よい。
は、S4で作成した変数依存関係テーブルをもとに、代
入元の変数と代入先の変数を図形で表し、および代入元
の変数から代入先の変数に向かう関係を矢印で表す変数
依存関係図を画面上に表示する。尚、変数依存関係テー
ブルの内容(リスト)を画面上に表示するようにしても
よい。
【0024】S6は、変更箇所を選択する。これは、S
5で画面上に表示された変数依存関係図上で、編集しよ
うとする代入元の変数、代入先の変数の図形、あるいは
代入元から代入先を示す矢印などのうちから変更箇所を
選択する。尚、S5で変数依存関係テーブルの内容(リ
スト)を表示した場合には、変更箇所のリストを選択あ
るいは変更箇所のリストの番号を指定して選択する。
5で画面上に表示された変数依存関係図上で、編集しよ
うとする代入元の変数、代入先の変数の図形、あるいは
代入元から代入先を示す矢印などのうちから変更箇所を
選択する。尚、S5で変数依存関係テーブルの内容(リ
スト)を表示した場合には、変更箇所のリストを選択あ
るいは変更箇所のリストの番号を指定して選択する。
【0025】S7は、ソース行を表示する。これは、S
6で選択された変更箇所に対応する、該当行のソースプ
ログラム1の文を表示し、変更箇所との対応を判り易く
する。
6で選択された変更箇所に対応する、該当行のソースプ
ログラム1の文を表示し、変更箇所との対応を判り易く
する。
【0026】S8は、ソース修正する。これは、S7で
表示した該当行のソースプログラム1について、指示さ
れたように修正(編集)、例えば削除、挿入、変更など
を行う。
表示した該当行のソースプログラム1について、指示さ
れたように修正(編集)、例えば削除、挿入、変更など
を行う。
【0027】S9は、ソース修正行のデータフローを作
成する。これは、S8で修正したソースプログラムの行
のみのデータフローを作成する。S10は、データフロ
ーの置き換えを行う。これは、S9で作成したデータフ
ローで、元のデータフローを置き換える。
成する。これは、S8で修正したソースプログラムの行
のみのデータフローを作成する。S10は、データフロ
ーの置き換えを行う。これは、S9で作成したデータフ
ローで、元のデータフローを置き換える。
【0028】S11は、変数依存関係テーブルの修正を
行う。これは、S10で置き換えたデータフローの部分
について、変数依存関係テーブルの修正を行う。この
際、処理の流れを変更するような編集であった場合には
その旨の警告を表示し、編集者に知らせる。
行う。これは、S10で置き換えたデータフローの部分
について、変数依存関係テーブルの修正を行う。この
際、処理の流れを変更するような編集であった場合には
その旨の警告を表示し、編集者に知らせる。
【0029】S12は、変数依存関係図の修正を行う。
これは、S11で修正した変数依存関係テーブルのその
部分について、変数依存関係図の修正を行い、表示し、
修正者に修正内容を知らせる。
これは、S11で修正した変数依存関係テーブルのその
部分について、変数依存関係図の修正を行い、表示し、
修正者に修正内容を知らせる。
【0030】S13は、ソース修正を保存する。これ
は、S12で修正して変数依存関係図上に表示した修正
内容のソースプログラムを保存する。S14は、修正あ
りか判別する。これは、更に次の修正がありか判別す
る。YESの場合には、S6以降を繰り返す。一方、N
Oの場合には、一連の修正が終わったと判明したので、
S15で保存したソース修正を元のソースプログラムに
一括して反映する。
は、S12で修正して変数依存関係図上に表示した修正
内容のソースプログラムを保存する。S14は、修正あ
りか判別する。これは、更に次の修正がありか判別す
る。YESの場合には、S6以降を繰り返す。一方、N
Oの場合には、一連の修正が終わったと判明したので、
S15で保存したソース修正を元のソースプログラムに
一括して反映する。
【0031】以上によって、編集対象のソースプログラ
ムからコントロールフロー、データフロー、更に変数依
存関係テーブルを作成し、この変数依存関係テーブルか
ら変数依存関係図(あるいはそのリスト)を画面上に表
示し、画面上から変更箇所を選択した修正指示(削除、
挿入、変更など)に対応し、変更箇所に対応する行のソ
ースプログラムを表示、この変更箇所の行のソースプロ
グラムのコントロールフロー、データフロー、変数依存
関係を生成し、この生成した変数依存関係をもとに生成
した依存関係図で修正して表示して確認を繰り返し、変
更箇所の該当行のソースプログラムを一括して元のソー
スプロウラムに反映する。これらにより、変数間の依存
関係のみに着目してコントロールフロー、データフロ
ー、変数依存関係を部分的に変更し、当該変更箇所の影
響の調査や再作成を迅速に行うことが可能となった。
ムからコントロールフロー、データフロー、更に変数依
存関係テーブルを作成し、この変数依存関係テーブルか
ら変数依存関係図(あるいはそのリスト)を画面上に表
示し、画面上から変更箇所を選択した修正指示(削除、
挿入、変更など)に対応し、変更箇所に対応する行のソ
ースプログラムを表示、この変更箇所の行のソースプロ
グラムのコントロールフロー、データフロー、変数依存
関係を生成し、この生成した変数依存関係をもとに生成
した依存関係図で修正して表示して確認を繰り返し、変
更箇所の該当行のソースプログラムを一括して元のソー
スプロウラムに反映する。これらにより、変数間の依存
関係のみに着目してコントロールフロー、データフロ
ー、変数依存関係を部分的に変更し、当該変更箇所の影
響の調査や再作成を迅速に行うことが可能となった。
【0032】図3は、本発明のソースプログラム例を示
す。図3の(a)は編集前のソースプログラム例を示
し、図3の(b)は編集後のソースプログラム例を示
す。この編集後の図3の(b)のソースプログラムで
は、欄外の図示のように、 COMPUTE B=Y+C の1行のソースプログラムを追加(挿入)している(後
述する)。
す。図3の(a)は編集前のソースプログラム例を示
し、図3の(b)は編集後のソースプログラム例を示
す。この編集後の図3の(b)のソースプログラムで
は、欄外の図示のように、 COMPUTE B=Y+C の1行のソースプログラムを追加(挿入)している(後
述する)。
【0033】図4は、本発明のコントロールフロー例を
示す。これは、図3の(a)のソースプログラム例を解
析し、その中に含まれている変数の値を変更する文から
変数間の関係を抽出したものである。
示す。これは、図3の(a)のソースプログラム例を解
析し、その中に含まれている変数の値を変更する文から
変数間の関係を抽出したものである。
【0034】図5は、本発明のデータフロー例を示す。
図5の(a)は編集前のデータフロー例を示し、図5の
(b)は編集後のデータフロー例を示す。この編集前の
図5の(a)データフロー例は図4の(a)のソースプ
ログラム例から生成したものであり、この編集後の図5
の(b)データフロー例は図4の(b)のソースプログ
ラム例から生成したものである。
図5の(a)は編集前のデータフロー例を示し、図5の
(b)は編集後のデータフロー例を示す。この編集前の
図5の(a)データフロー例は図4の(a)のソースプ
ログラム例から生成したものであり、この編集後の図5
の(b)データフロー例は図4の(b)のソースプログ
ラム例から生成したものである。
【0035】図6は、本発明の変数依存関係テーブル例
を示す。図6の(a)は編集前の変数依存関係テーブル
例を示し、図6の(b)は編集後の変数依存関係テーブ
ル例を示す。この編集前の図6の(a)変数依存関係テ
ーブル例は図5の(a)のデータフロー例から生成した
ものであり、この編集後の図6の(b)変数依存関係テ
ーブル例は図5の(b)のデータフロー例から生成した
ものである。図6の(b)の欄外の挿入と記載した部分
が、挿入されたものである。
を示す。図6の(a)は編集前の変数依存関係テーブル
例を示し、図6の(b)は編集後の変数依存関係テーブ
ル例を示す。この編集前の図6の(a)変数依存関係テ
ーブル例は図5の(a)のデータフロー例から生成した
ものであり、この編集後の図6の(b)変数依存関係テ
ーブル例は図5の(b)のデータフロー例から生成した
ものである。図6の(b)の欄外の挿入と記載した部分
が、挿入されたものである。
【0036】図7は、本発明の非表示変数名テーブル例
を示す。これは、図6の変数依存関係テーブル例をもと
に、後述する図9の変数依存関係図を表示するときに、
表示を省略する変数名を予め登録するものである。例え
ば作業変数などを登録して表示から省略し、意味のある
重要な変数を見やすく表示する。
を示す。これは、図6の変数依存関係テーブル例をもと
に、後述する図9の変数依存関係図を表示するときに、
表示を省略する変数名を予め登録するものである。例え
ば作業変数などを登録して表示から省略し、意味のある
重要な変数を見やすく表示する。
【0037】図8は、本発明の編集フローチャート(そ
の1)を示す。これは、ソースプログラムから生成した
例えば図6の(a)の変数依存関係テーブルの内容(リ
スト)を画面上に表示し、当該リストから変更箇所の番
号を入力(あるいは選択)し、編集(削除、挿入、変更
など)の指示に従って編集を行う場合のものである。
の1)を示す。これは、ソースプログラムから生成した
例えば図6の(a)の変数依存関係テーブルの内容(リ
スト)を画面上に表示し、当該リストから変更箇所の番
号を入力(あるいは選択)し、編集(削除、挿入、変更
など)の指示に従って編集を行う場合のものである。
【0038】図8の(a)は、変数依存関係の削除のフ
ローチャートを示す。図8の(a)において、S21
は、変数依存関係テーブルの番号を入力する。これは、
画面上に表示された例えば図6の(a)の変数依存関係
テーブルから、削除箇所のエントリの番号をキー入力
(あるいはマウスで選択入力)する。
ローチャートを示す。図8の(a)において、S21
は、変数依存関係テーブルの番号を入力する。これは、
画面上に表示された例えば図6の(a)の変数依存関係
テーブルから、削除箇所のエントリの番号をキー入力
(あるいはマウスで選択入力)する。
【0039】S22は、その関係を削除する旨の指示を
行う。S23は、図2の(A)のS10以降の処理を行
う(データフローの置き換え、変数依存関係テーブルの
該当エントリの削除、ソースプログラムの該当行の削除
など)。
行う。S23は、図2の(A)のS10以降の処理を行
う(データフローの置き換え、変数依存関係テーブルの
該当エントリの削除、ソースプログラムの該当行の削除
など)。
【0040】以上によって、画面上に表示された例えば
図6の(a)の変数依存関係テーブルの内容のうちから
削除したい番号を入力し、削除指示を行うことにより、
該当する行のソースプログラムのデータフローを削除、
更に変数依存関係テーブルの該当内容を削除することが
可能となる。
図6の(a)の変数依存関係テーブルの内容のうちから
削除したい番号を入力し、削除指示を行うことにより、
該当する行のソースプログラムのデータフローを削除、
更に変数依存関係テーブルの該当内容を削除することが
可能となる。
【0041】図8の(b)は、変数依存関係の変更のフ
ローチャートを示す。図8の(b)において、S31
は、変数依存関係テーブルの番号を入力する。これは、
画面上に表示された例えば図6の(a)の変数依存関係
テーブルから、変更箇所のエントリの番号をキー入力
(あるいはマウスで選択入力)する。
ローチャートを示す。図8の(b)において、S31
は、変数依存関係テーブルの番号を入力する。これは、
画面上に表示された例えば図6の(a)の変数依存関係
テーブルから、変更箇所のエントリの番号をキー入力
(あるいはマウスで選択入力)する。
【0042】S32は、代入先を入力する。S33は、
代入元を入力する。S34は、その関係を変更する。こ
れらS31、S32、S33は、画面上に表示された図
6の(a)の変数依存関係テーブル上で、変更箇所のエ
ントリの番号を入力、代入先を入力、代入元を入力し、
これら入力された関係に変更する。
代入元を入力する。S34は、その関係を変更する。こ
れらS31、S32、S33は、画面上に表示された図
6の(a)の変数依存関係テーブル上で、変更箇所のエ
ントリの番号を入力、代入先を入力、代入元を入力し、
これら入力された関係に変更する。
【0043】S35は、図2の(A)のS10以降の処
理を行う(データフローの置き換え、変数依存関係テー
ブルの該当エントリの変更、ソースプログラムの該当行
の変更など)。
理を行う(データフローの置き換え、変数依存関係テー
ブルの該当エントリの変更、ソースプログラムの該当行
の変更など)。
【0044】以上によって、画面上に表示された例えば
図6の(a)の変数依存関係テーブルの内容のうちから
変更したい番号、代入先、代入元の入力、および変更指
示することにより、該当する行のソースプログラムのデ
ータフローを変更、更に変数依存関係テーブルの該当内
容を変更することが可能となる。例えば図8の(b−
1)に示すように、 の変更入力を行うと、図5の(b)のデータフロー中の
変更を行い、図6の(b)の変更を行う。
図6の(a)の変数依存関係テーブルの内容のうちから
変更したい番号、代入先、代入元の入力、および変更指
示することにより、該当する行のソースプログラムのデ
ータフローを変更、更に変数依存関係テーブルの該当内
容を変更することが可能となる。例えば図8の(b−
1)に示すように、 の変更入力を行うと、図5の(b)のデータフロー中の
変更を行い、図6の(b)の変更を行う。
【0045】図8の(c)は、変数依存関係の挿入のフ
ローチャートを示す。図8の(c)において、S41
は、変数依存関係テーブルの番号を入力する。これは、
画面上に表示された例えば図6の(a)の変数依存関係
テーブルから、挿入箇所のエントリの番号をキー入力
(あるいはマウスで選択入力)する。
ローチャートを示す。図8の(c)において、S41
は、変数依存関係テーブルの番号を入力する。これは、
画面上に表示された例えば図6の(a)の変数依存関係
テーブルから、挿入箇所のエントリの番号をキー入力
(あるいはマウスで選択入力)する。
【0046】S42は、前か後かを入力する。S43
は、代入先を入力する。S44は、代入元を入力する。
は、代入先を入力する。S44は、代入元を入力する。
【0047】S45は、その関係の前または後に新しい
関係を挿入する。これらS41、S42、S43、S4
4、S45は、画面上に表示された図6の(a)の変数
依存関係テーブル上で、挿入箇所の前または後のエント
リの番号を入力、代入先を入力、代入元を入力し、これ
ら入力された前または後にエントリを挿入する。
関係を挿入する。これらS41、S42、S43、S4
4、S45は、画面上に表示された図6の(a)の変数
依存関係テーブル上で、挿入箇所の前または後のエント
リの番号を入力、代入先を入力、代入元を入力し、これ
ら入力された前または後にエントリを挿入する。
【0048】S46は、図2の(A)のS10以降の処
理を行う(データフローの置き換え、変数依存関係テー
ブルの該当エントリの挿入、ソースプログラムの行の挿
入など)。
理を行う(データフローの置き換え、変数依存関係テー
ブルの該当エントリの挿入、ソースプログラムの行の挿
入など)。
【0049】以上によって、画面上に表示された例えば
図6の(a)の変数依存関係テーブルの内容に挿入した
い前または後の番号、代入先、代入元の入力、および挿
入指示することにより、該当する行の前または後の行の
ソースプログラムのデータフローを挿入、更に変数依存
関係テーブルに生成した内容を挿入することが可能とな
る。例えば図8の(c−1)に示すように、 の挿入入力を行うと、図5の(b)のデータフロー中の
挿入を行い、図6の(b)の挿入を行う。
図6の(a)の変数依存関係テーブルの内容に挿入した
い前または後の番号、代入先、代入元の入力、および挿
入指示することにより、該当する行の前または後の行の
ソースプログラムのデータフローを挿入、更に変数依存
関係テーブルに生成した内容を挿入することが可能とな
る。例えば図8の(c−1)に示すように、 の挿入入力を行うと、図5の(b)のデータフロー中の
挿入を行い、図6の(b)の挿入を行う。
【0050】図9は、本発明の変数依存関係図例を示
す。これは、図6の(a)の編集前の変数依存関係図例
中の代入元、代入先を矩形で囲み、代入元から代入先を
矢印で表して表示したものである。この変数依存関係図
上で矩形の代入元、代入先、および矢印(代入元から代
入先を表す)のうちから選択して編集指示するときの手
順である。
す。これは、図6の(a)の編集前の変数依存関係図例
中の代入元、代入先を矩形で囲み、代入元から代入先を
矢印で表して表示したものである。この変数依存関係図
上で矩形の代入元、代入先、および矢印(代入元から代
入先を表す)のうちから選択して編集指示するときの手
順である。
【0051】図9の(a)は、変数依存関係の削除のフ
ローチャートを示す。図9の(a)において、S51
は、選択された代入先に対応する依存関係を探す。これ
は、図9の変数依存関係図上で矩形で囲ったいずれかの
代入先がマウスで選択されたことに対応して、図6の
(a)の編集前の変数依存関係テーブルから選択された
代入先に対応する依存関係を探す。
ローチャートを示す。図9の(a)において、S51
は、選択された代入先に対応する依存関係を探す。これ
は、図9の変数依存関係図上で矩形で囲ったいずれかの
代入先がマウスで選択されたことに対応して、図6の
(a)の編集前の変数依存関係テーブルから選択された
代入先に対応する依存関係を探す。
【0052】S52は、S51で探したその依存関係を
削除する。S53は、図2の(A)のS10以降の処理
を行う(データフローの置き換え、変数依存関係テーブ
ルの該当エントリの削除、ソースプログラムの該当行の
削除など)。
削除する。S53は、図2の(A)のS10以降の処理
を行う(データフローの置き換え、変数依存関係テーブ
ルの該当エントリの削除、ソースプログラムの該当行の
削除など)。
【0053】以上によって、画面上に表示された例えば
図9の変数依存関係図上で削除したい代入先を選択し、
削除指示を行うことにより、該当する行のソースプログ
ラムのデータフローを削除、更に変数依存関係テーブル
の該当内容を削除することが可能となる。
図9の変数依存関係図上で削除したい代入先を選択し、
削除指示を行うことにより、該当する行のソースプログ
ラムのデータフローを削除、更に変数依存関係テーブル
の該当内容を削除することが可能となる。
【0054】図9の(b)は、変数依存関係の代入先の
変更のフローチャートを示す。図9の(b)において、
S61は、変数依存関係図上で選択された矢印に対応す
る依存関係を探す。これは、図9の変数依存関係図上で
選択された矢印に対応する依存関係を、図6の(a)の
編集前の変数依存関係テーブルから探す。
変更のフローチャートを示す。図9の(b)において、
S61は、変数依存関係図上で選択された矢印に対応す
る依存関係を探す。これは、図9の変数依存関係図上で
選択された矢印に対応する依存関係を、図6の(a)の
編集前の変数依存関係テーブルから探す。
【0055】S62は、代入先の変数を選択させる。S
63は、その関係の代入先を変更する。S64は、図2
の(A)のS10以降の処理を行う(データフローの置
き換え、変数依存関係テーブルの該当エントリの変更、
ソースプログラムの該当行の変更など)。
63は、その関係の代入先を変更する。S64は、図2
の(A)のS10以降の処理を行う(データフローの置
き換え、変数依存関係テーブルの該当エントリの変更、
ソースプログラムの該当行の変更など)。
【0056】以上によって、画面上に表示された例えば
図9の変数依存関係図上で矢印を選択して代入先の変数
を選択し、代入先の変更指示を行うことにより、該当す
る行のソースプログラムのデータフローを変更、更に変
数依存関係テーブルの該当内容を変更することが可能と
なる。
図9の変数依存関係図上で矢印を選択して代入先の変数
を選択し、代入先の変更指示を行うことにより、該当す
る行のソースプログラムのデータフローを変更、更に変
数依存関係テーブルの該当内容を変更することが可能と
なる。
【0057】図9の(c)は、変数依存関係の代入元の
削除のフローチャートを示す。図9の(c)において、
S71は、変数依存関係図上で選択された矢印に対応す
る依存関係を探す。これは、図9の変数依存関係図上で
選択された矢印に対応する依存関係を、図6の(a)の
編集前の変数依存関係テーブルから探す。
削除のフローチャートを示す。図9の(c)において、
S71は、変数依存関係図上で選択された矢印に対応す
る依存関係を探す。これは、図9の変数依存関係図上で
選択された矢印に対応する依存関係を、図6の(a)の
編集前の変数依存関係テーブルから探す。
【0058】S72は、変数依存関係図上で選択された
矢印に対応する変数を探す。S73は、その関係の代入
元からその変数を削除する。S74は、図2の(A)の
S10以降の処理を行う(データフローの置き換え、変
数依存関係テーブルの該当エントリの変数の削除、ソー
スプログラムの該当行の変数の削除など)。
矢印に対応する変数を探す。S73は、その関係の代入
元からその変数を削除する。S74は、図2の(A)の
S10以降の処理を行う(データフローの置き換え、変
数依存関係テーブルの該当エントリの変数の削除、ソー
スプログラムの該当行の変数の削除など)。
【0059】以上によって、画面上に表示された例えば
図9の変数依存関係図上で矢印を選択して代入元の変数
を選択し、代入元の削除指示を行うことにより、該当す
る行のソースプログラムのデータフローの代入元の変数
の削除、更に変数依存関係テーブルの該当内容の代入元
の変数の削除を行うことが可能となる。
図9の変数依存関係図上で矢印を選択して代入元の変数
を選択し、代入元の削除指示を行うことにより、該当す
る行のソースプログラムのデータフローの代入元の変数
の削除、更に変数依存関係テーブルの該当内容の代入元
の変数の削除を行うことが可能となる。
【0060】図9の(d)は、変数依存関係の代入元の
追加のフローチャートを示す。図9の(d)において、
S81は、変数依存関係図上で選択された矢印に対応す
る依存関係を探す。これは、図9の変数依存関係図上で
選択された矢印に対応する依存関係を、図6の(a)の
編集前の変数依存関係テーブルから探す。
追加のフローチャートを示す。図9の(d)において、
S81は、変数依存関係図上で選択された矢印に対応す
る依存関係を探す。これは、図9の変数依存関係図上で
選択された矢印に対応する依存関係を、図6の(a)の
編集前の変数依存関係テーブルから探す。
【0061】S82は、変数依存関係図上で代入先の変
数を選択させる。S83は、その関係の代入元にその変
数を追加する。S84は、図2の(A)のS10以降の
処理を行う(データフローの置き換え、変数依存関係テ
ーブルの該当エントリの変数の追加、ソースプログラム
の該当行の変数の追加など)。
数を選択させる。S83は、その関係の代入元にその変
数を追加する。S84は、図2の(A)のS10以降の
処理を行う(データフローの置き換え、変数依存関係テ
ーブルの該当エントリの変数の追加、ソースプログラム
の該当行の変数の追加など)。
【0062】以上によって、画面上に表示された例えば
図9の変数依存関係図上で矢印を選択して代入元の変数
を選択し、代入元の変数追加指示を行うことにより、該
当する行のソースプログラムのデータフローの代入元の
変数の追加、更に変数依存関係テーブルの該当内容の代
入元の変数の追加を行うことが可能となる。
図9の変数依存関係図上で矢印を選択して代入元の変数
を選択し、代入元の変数追加指示を行うことにより、該
当する行のソースプログラムのデータフローの代入元の
変数の追加、更に変数依存関係テーブルの該当内容の代
入元の変数の追加を行うことが可能となる。
【0063】図9の(e)は、変数依存関係の挿入のフ
ローチャートを示す。図9の(e)において、S91
は、変数依存関係図上で挿入する位置の矢印を選択させ
る。
ローチャートを示す。図9の(e)において、S91
は、変数依存関係図上で挿入する位置の矢印を選択させ
る。
【0064】S92は、横方向の位置にもっとも近い依
存関係を探す。S93は、縦方向の位置から代入先の変
数を決める。S94は、見つかった関係の前または後ろ
に、代入元と代入先を同じ変数にして関係を挿入する。
存関係を探す。S93は、縦方向の位置から代入先の変
数を決める。S94は、見つかった関係の前または後ろ
に、代入元と代入先を同じ変数にして関係を挿入する。
【0065】S95は、図2の(A)のS10以降の処
理を行う(データフローの挿入、変数依存関係テーブル
の該当エントリの挿入、ソースプログラムの該当行の挿
入など)。
理を行う(データフローの挿入、変数依存関係テーブル
の該当エントリの挿入、ソースプログラムの該当行の挿
入など)。
【0066】以上によって、画面上に表示された例えば
図9の変数依存関係図上で挿入する位置を選択されたこ
とに対応して、横方向の位置に最も近い依存関係を探
し、縦方向の位置から代入先の変数を決め、見つかった
関係の前または後ろに代入元と代入先を同じ変数にして
関係を挿入することにより、データフローに挿入、更に
変数依存関係テーブルに挿入することが可能となる。
図9の変数依存関係図上で挿入する位置を選択されたこ
とに対応して、横方向の位置に最も近い依存関係を探
し、縦方向の位置から代入先の変数を決め、見つかった
関係の前または後ろに代入元と代入先を同じ変数にして
関係を挿入することにより、データフローに挿入、更に
変数依存関係テーブルに挿入することが可能となる。
【0067】
【発明の効果】以上説明したように、本発明によれば、
画面上に表示された変数依存関係テーブルの内容の指定
入力および編集指示、あるいは変数依存関係図上で選択
および編集指示に対応して、代入先、代入元の変数の削
除、追加、変更、更に挿入などの編集を行い、その編集
後の結果を表示する構成を採用しているため、ソースプ
ログラムの一部の編集時に依存関係の変化のみに着目し
て変数依存関係を部分的に編集し、編集による変更など
によって影響する範囲の調査および再作成を迅速に行う
ことができるようになった。これらにより、ソースプロ
グラムの編集(削除、変更、挿入など)を容易かつ迅速
に行うことが可能となる共に、ソースプログラムの品質
を容易に向上させることが可能となった。
画面上に表示された変数依存関係テーブルの内容の指定
入力および編集指示、あるいは変数依存関係図上で選択
および編集指示に対応して、代入先、代入元の変数の削
除、追加、変更、更に挿入などの編集を行い、その編集
後の結果を表示する構成を採用しているため、ソースプ
ログラムの一部の編集時に依存関係の変化のみに着目し
て変数依存関係を部分的に編集し、編集による変更など
によって影響する範囲の調査および再作成を迅速に行う
ことができるようになった。これらにより、ソースプロ
グラムの編集(削除、変更、挿入など)を容易かつ迅速
に行うことが可能となる共に、ソースプログラムの品質
を容易に向上させることが可能となった。
【図1】本発明の原理ブロック図である。
【図2】本発明の動作説明フローチャートである。
【図3】本発明のソースプログラム例である。
【図4】本発明のコントロールフロー例である。
【図5】本発明のデータフロー例である。
【図6】本発明の変数依存関係テーブル例である。
【図7】本発明の非表示変数名テーブル例である。
【図8】本発明の編集フローチャート(その1)であ
る。
る。
【図9】本発明の変数依存関係図例である。
【図10】本発明の編集フローチャート(その2)であ
る。
る。
1:ソースプログラム 2:コントロールフロー作成部 3:データフロー作成部 4:コントロールフロー 5:データフロー 6:制御部 7:端末 8:編集部 9:非表示変数名テーブル 10:ソース変更履歴格納部
Claims (6)
- 【請求項1】ソースプログラムを解析してその中で使用
される変数間の代入元と代入先の依存関係を生成する手
段と、 この生成された依存関係のリストを画面上に表示し、リ
スト中から指定された依存関係あるいは画面上から指定
された依存関係を、指定に従って編集(削除、挿入、変
更など)する編集手段とを備え、 編集された後の依存関係を提示することを特徴とするプ
ログラム解析装置。 - 【請求項2】ソースプログラムを解析してその中で使用
される変数間の代入元と代入先の依存関係を生成する手
段と、 この生成された依存関係について、代入元の変数と代入
先の変数を図形で表し、および代入元の変数から代入先
の変数に向かう関係を矢印で表して画面上に表示し、画
面上から指定された矢印あるいは代入元、代入先を表す
図形について、指定に従って編集(削除、挿入、変更な
ど)する編集手段とを備え、 編集された後の依存関係を図形および矢印で提示するこ
とを特徴とするプログラム解析装置。 - 【請求項3】依存関係を表示する際に依存関係から省略
する作業変数などの変数を予め登録する非表示変数名テ
ーブルを設け、 この非表示変数名テーブルに登録されている変数につい
て、上記依存関係を表示する際に省略することを特徴と
する請求項1あるいは請求項2記載のプログラム解析装
置。 - 【請求項4】上記指定に従って編集する対象となるソー
スプログラムの部分を取り出し、その部分の編集前ある
いは/および編集後のソースプログラムの行を併せて表
示することを特徴とする請求項1ないし請求項3記載の
いずれかのプログラム解析装置。 - 【請求項5】上記指定に従って編集する対象となるソー
スプログラムの部分を取り出し、その部分の編集後のソ
ースプログラムが処理の流れを変更すると判明したとき
に警告を表示することを特徴とする請求項1ないし請求
項4記載のいずれかのプログラム解析装置。 - 【請求項6】上記編集した結果を全て保持し、指示に対
応して元のソースプログラムにまとめて編集することを
特徴とする請求項1ないし請求項5記載のいずれかのプ
ログラム解析装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7000172A JPH08190475A (ja) | 1995-01-05 | 1995-01-05 | プログラム解析装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7000172A JPH08190475A (ja) | 1995-01-05 | 1995-01-05 | プログラム解析装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08190475A true JPH08190475A (ja) | 1996-07-23 |
Family
ID=11466600
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7000172A Pending JPH08190475A (ja) | 1995-01-05 | 1995-01-05 | プログラム解析装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08190475A (ja) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003050722A (ja) * | 2001-08-03 | 2003-02-21 | Sony Corp | プログラム解析システムとプログラム解析方法 |
| JP2008204405A (ja) * | 2007-02-22 | 2008-09-04 | Fujitsu Ltd | ソフトウェアのリグレッションテストシステム、リグレッションテストプログラムおよびリグレッションテスト方法 |
| JP2009009362A (ja) * | 2007-06-28 | 2009-01-15 | Hitachi Information Systems Ltd | プログラムの変数管理システム |
| JP2010507165A (ja) * | 2006-10-19 | 2010-03-04 | チェックマークス リミテッド | ソースコード内のセキュリティ脆弱性の検出 |
| WO2012011145A1 (ja) * | 2010-07-20 | 2012-01-26 | 株式会社 日立製作所 | ソフトウェア保守支援装置及びそれにより検証した電子制御装置 |
| JP2012203777A (ja) * | 2011-03-28 | 2012-10-22 | Hitachi Ltd | ソフトウェア部品作成支援装置および方法 |
| JP2013097494A (ja) * | 2011-10-31 | 2013-05-20 | Mitsubishi Electric Corp | ソフトウェア開発支援装置及びプログラム |
| WO2021024520A1 (ja) * | 2019-08-08 | 2021-02-11 | オムロン株式会社 | 情報処理装置、サポートプログラムおよびサポートシステム |
-
1995
- 1995-01-05 JP JP7000172A patent/JPH08190475A/ja active Pending
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003050722A (ja) * | 2001-08-03 | 2003-02-21 | Sony Corp | プログラム解析システムとプログラム解析方法 |
| JP2010507165A (ja) * | 2006-10-19 | 2010-03-04 | チェックマークス リミテッド | ソースコード内のセキュリティ脆弱性の検出 |
| JP2008204405A (ja) * | 2007-02-22 | 2008-09-04 | Fujitsu Ltd | ソフトウェアのリグレッションテストシステム、リグレッションテストプログラムおよびリグレッションテスト方法 |
| JP2009009362A (ja) * | 2007-06-28 | 2009-01-15 | Hitachi Information Systems Ltd | プログラムの変数管理システム |
| WO2012011145A1 (ja) * | 2010-07-20 | 2012-01-26 | 株式会社 日立製作所 | ソフトウェア保守支援装置及びそれにより検証した電子制御装置 |
| JP5516736B2 (ja) * | 2010-07-20 | 2014-06-11 | 株式会社日立製作所 | ソフトウェア保守支援装置及びそれにより検証した電子制御装置 |
| US9170805B2 (en) | 2010-07-20 | 2015-10-27 | Hitachi, Ltd. | Software maintenance supporting device for analyzing relationships between variables |
| JP2012203777A (ja) * | 2011-03-28 | 2012-10-22 | Hitachi Ltd | ソフトウェア部品作成支援装置および方法 |
| JP2013097494A (ja) * | 2011-10-31 | 2013-05-20 | Mitsubishi Electric Corp | ソフトウェア開発支援装置及びプログラム |
| WO2021024520A1 (ja) * | 2019-08-08 | 2021-02-11 | オムロン株式会社 | 情報処理装置、サポートプログラムおよびサポートシステム |
| JP2021026642A (ja) * | 2019-08-08 | 2021-02-22 | オムロン株式会社 | 情報処理装置、サポートプログラムおよびサポートシステム |
| US12182540B2 (en) | 2019-08-08 | 2024-12-31 | Omron Corporation | Information processing device, recording medium, and support system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR970006400B1 (ko) | 아이콘을 사용한 정보처리시스템 | |
| US7640499B2 (en) | Editing objects contained in different pages of a business form via a “position adjustment” operation or a “copy” operation | |
| JPH08190475A (ja) | プログラム解析装置 | |
| US7055141B2 (en) | Humanity interface development system of testing program of circuit board | |
| US5261103A (en) | Method of and system for compiling source program | |
| JP3288460B2 (ja) | 表示データ生成装置及び方法 | |
| JPS63172330A (ja) | 文書処理装置の網かけ方式 | |
| JP2000076228A (ja) | 文書フォーマット自動修正方法 | |
| JP2006285707A (ja) | 業務仕様作成支援システム及び方法 | |
| JPH08190636A (ja) | 画像編集印刷システム | |
| JP2001282773A (ja) | 構造化文書編集装置及び、構造化文書編集方法及び記録媒体 | |
| JPH04290126A (ja) | 入出力様式カストマイズ方法 | |
| JPH08202856A (ja) | 画像処理方法 | |
| JPH0635987A (ja) | 回路図作成装置および回路図作成方法 | |
| JPH0954688A (ja) | Gui設計支援方法 | |
| JPS6330976A (ja) | マクロコマンド編集方式 | |
| JP4033606B2 (ja) | ページ構成部品レイアウト装置、ページ構成部品レイアウト方法、並びに記録媒体 | |
| JP2510967B2 (ja) | 不定形表の作成装置 | |
| JPH11353162A (ja) | プログラム修正結果比較方法 | |
| JPH05265736A (ja) | レイアウト装置 | |
| JPH0281267A (ja) | 画面作成方法 | |
| JP2836673B2 (ja) | 出力帳票レイアウトの動的変更方法及びそれを適用した帳票出力システム | |
| JP3154790B2 (ja) | 光学的文字読取装置 | |
| JP2771095B2 (ja) | 文字処理方法 | |
| JP2771669B2 (ja) | 罫線編集装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20031021 |
|
| A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040521 |