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

プログラム解析装置

Info

Publication number
JPH09101879A
JPH09101879A JP7257582A JP25758295A JPH09101879A JP H09101879 A JPH09101879 A JP H09101879A JP 7257582 A JP7257582 A JP 7257582A JP 25758295 A JP25758295 A JP 25758295A JP H09101879 A JPH09101879 A JP H09101879A
Authority
JP
Japan
Prior art keywords
variable
program
conditional expression
variables
business
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.)
Withdrawn
Application number
JP7257582A
Other languages
English (en)
Inventor
Keiko Kawabe
敬子 川辺
Kenji Nagahashi
賢児 長橋
Sanpachi Uehara
三八 上原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7257582A priority Critical patent/JPH09101879A/ja
Publication of JPH09101879A publication Critical patent/JPH09101879A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 業務変数と内部変数を認識し、業務仕様と制
御仕様を分離した業務仕様情報を得ることができるプロ
グラム解析装置を提供すること。 【解決手段】 業務変数/内部変数識別手段2は、プロ
グラム1aを解析して得られる変数利用情報1bを用い
て、プログラム中の変数をフラグ等の内部変数と入出力
に関連した業務変数に分類する。等価経路検索手段3
は、プログラム1aの制御フロー1c中の指定された条
件式が真となる経路、文の位置を検索する。等価条件式
置換手段4は、上記検索結果を用いて、プログラム中の
任意の条件式をプログラム実行順の前方の変数で置換す
る。業務変数の更新・条件分岐抽出手段5は、業務変数
が更新されている箇所、そのときの条件を求め、等価条
件式置換手段4により、内部変数で記述されている条件
式を、プログラムの入出力情報に関連した業務変数で記
述した等価な条件式に置換する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムを解析
し、制御仕様を分離排斥し、業務仕様情報を得る上で利
用されるプログラム解析装置に関する。ある仕様に基づ
いてプログラムを開発しても、そのプログラムの改変を
繰り返していく内にそのプログラムが開発当初のプログ
ラムとは事実上異なったものとなり、プログラム中で使
用されている変数、条件等が把握できなくなる場合が多
々ある。
【0002】このため、従来から、既存のプログラムの
入出力に関連した変数(以下「業務変数」と呼ぶ)とプ
ログラム内部で閉じ、制御の為だけに使われているフラ
グなどの変数(以下「内部変数」と呼ぶ)を識別した
り、ある条件式からフローを逆上り、その条件式を真と
する経路や文を検索したり、あるいは、内部変数などで
記述された条件式を業務変数で記述した等価な条件式に
置き換える等、プログラムを解析しその業務仕様情報を
得ることが要望される。
【0003】しかしながら、従来技術では、業務データ
には関係のない、フラグなどの制御のみに用いられた変
数を取り除いた純粋な業務仕様を得ることができなかっ
た。本発明は、業務仕様と制御仕様の完全分離を可能に
するプログラム解析装置に関するものである。
【0004】
【従来の技術】従来技術では、プログラムを解析して
「どの変数にどのような条件で、どのような値が設定さ
れるか」という情報を得ることができる。ところがプロ
グラムから抽出した、「業務変数にどのような条件でど
のような値が設定されるか、」の情報の「どのような条
件」については内部変数が含まれる場合が多く、制御仕
様を除いた純粋な業務仕様情報を自動的に抽出すること
ができなかった。
【0005】図17に従来技術で得られる変数値の更新
情報の例を示す。同図(a)はCOBOLで記述したプ
ログラムの一例を示し、同図(b)は業務変数の更新の
流れを示している。同図(a)のプログラムにおいて、
同図(b)から明らかなように業務変数Cに業務変数B
の値が設定される条件はA>0であり、Aはフラグとし
て用いられた内部変数である。また、プログラム実行順
の前方で、条件B<DでA>0が真となっている。すな
わち、もし、BとCがともに変数で、かつプログラム内
の位置(1)と(2)の間で変数B,Cの値が変更され
なかった場合、業務仕様になるべき条件(業務変数Cに
業務変数Bの値が設定される内部変数Aを含まない条
件)はB<Dである。
【0006】従来技術では、上記のように、「業務変数
にどのような条件でどのような値が設定されるか」等の
内部変数を含まない業務仕様となるべき条件を得る方法
は知られていなかった。
【0007】
【発明が解決しようとする課題】本発明は上記した従来
技術の問題点に鑑みなされたものであり、本発明の第1
の目的は、業務変数と内部変数を認識し、業務仕様と制
御仕様を分離した業務仕様情報を得ることができるプロ
グラム解析装置を提供することである。本発明の第2の
目的は、或る条件式からフローを遡り、その条件式を真
とする経路や文を検索したり、また、そのような経路や
文を決定する条件式に置換したり、さらに、内部変数で
記述された条件式を業務変数で記述した等価な条件式に
置換することができるプログラム解析装置を提供するこ
とである。
【0008】
【課題を解決するための手段】図1は本発明の原理図で
ある。同図において、1aは解析対象プログラムであ
り、本発明は、プログラムを解析して得られる、変数が
プログラムのどこで参照や定義されているかという変数
利用情報1b、プログラムの処理の流れを示す制御フロ
ー1cを利用して、プログラムを解析する。これらは既
存技術で得られるものである。
【0009】2は業務変数/内部変数識別手段であり、
変数利用情報1bを用いて、プログラム中の変数をプロ
グラム内で閉じ制御のためだけに用いられるフラグ等の
内部変数と入出力に関連した業務変数に分類する。3は
等価経路検索手段であり、制御フロー1c中の指定され
た条件式が真となる経路、文の位置を検索する。
【0010】4は等価条件式置換手段であり、等価経路
検索手段3の検索結果を用いて、プログラム中の任意の
条件式をプログラム実行順の前方の変数で置換する。5
は業務変数の更新・条件分岐抽出手段であり、業務変数
/内部変数識別手段2の識別結果を用いて業務変数の値
が更新されている箇所、そのときの条件を求め、等価条
件式置換手段4により、プログラム内で閉じた内部変数
を用いて記述されている条件式を、プログラムの入出力
情報に関連した業務変数で記述した等価な条件式に置換
する。
【0011】本発明のプログラム解析装置は、上記構成
を備えており、従来技術で得られる変数利用情報、制御
フロー1cを解析し制御仕様を分離して業務仕様情報を
抽出する。本発明の業務変数変数識別手段部2、等価経
路検索手段部3、等価条件式置換手段部4、業務変数の
更新・条件分岐抽出手段部5は次のようにして業務仕様
情報の抽出を行う。 (1)業務変数/内部変数識別手段2は、プログラム中
で宣言された変数および/または外部とつながる変数に
マークを付し、マークが付された変数と親子関係にある
変数および代入関係にある変数を検索してマークを付
す。そして、最終的にマークされた変数を業務変数、そ
れ以外の変数を内部変数とする。 (2)等価経路検索手段3は、任意の条件式が指定され
たとき、条件式を展開してOR条件で区切られた条件要
素に分割し、上記制御フローを遡って上記条件要素中で
用いられている変数に値が設定されている箇所を検索す
る。そして、検索された箇所と設定されている値に基づ
き上記条件式が真となる経路、文の位置を検索する。 (3)等価条件式置換手段4は、条件式を真とする経路
および文を等価経路検索手段3により検索し、検索され
た全経路の要素である各経路を決定する条件式の列を求
め、上記条件式の列で使われている変数の値が各経路内
で変更されていない場合に、上記条件式の列の論理積を
求めることにより、任意の条件式を、上記各経路の条件
式の列の論理積の論理和に置換する。 (4)業務変数の更新・条件分岐抽出手段5は、業務変
数/内部変数識別手段2の識別結果を用いて、制御フロ
ー1c中において業務変数が更新されている箇所を記憶
して、その箇所における条件式を求め、条件式に内部変
数が存在する場合に、等価条件式置換手段4を用いて内
部変数が存在しない条件式に置換する。
【0012】本発明の請求項1〜請求項4の発明は上記
のように業務変数/内部変数識別手段2、等価経路検索
手段3、等価条件式置換手段4、業務変数の更新・条件
分岐抽出手段5を設けて業務仕様情報を得ているので、
解析対象プログラムの業務仕様を制御仕様を分離排除し
ながら自動的に得ることができる。
【0013】
【発明の実施形態】図2は本発明の実施例のシステムの
概要構成を示す図である。同図において、11は解析対
象となるプログラムから得られた「プログラムの構文
木、変数利用情報、制御フロー」であり、この情報を解
析して本実施例のプログラム解析装置12が業務仕様情
報を抽出する。なお、解析対象プログラムから上記「プ
ログラムの構文木、変数利用情報、制御フロー」を得る
には、従来から知られている技術を用いることができ
る。
【0014】12のプログラム解析装置において、13
は業務変数/内部変数識別部であり、業務変数/内部変
数識別部13は、後述するように、解析対象プログラム
から得られた「変数利用情報」について、これらの変数
を入出力に関係する業務変数と内部変数に分類する。1
4は等価経路検索部であり、後述するように、与えられ
た制御フロー中の条件式を展開し、制御フローを遡り、
各経路、文でそれぞれの変数にどの様な値が設定されて
いるかをマークし、その条件要素が真になっている経
路、文の位置を検索する。
【0015】15は等価条件置換部であり、後述するよ
うに、プログラム中の任意の条件式をプログラムの実行
順の前方の変数で置換する。16は業務変数の更新・条
件分岐抽出部であり、後述するように、制御フローから
変数の値が更新されている箇所・条件を求め、更新され
る変数が業務変数であった場合には、直前の内部変数を
分岐条件式を抽出し、中に内部変数が含まれている場合
に、等価条件置換部15の結果を用いて内部変数が存在
しない条件に変換し、業務仕様情報17を得る。
【0016】図3は本実施例の解析対象となるプログラ
ムの一例を示す図である。同図はCOBOLで記述した
プログラムの例を示しており、同図のプログラムを一例
として本実施例を説明する。 (1)業務変数/内部変数識別部 図4、図5は業務変数/内部変数識別部13における処
理を示すフローチャートであり、同図により本実施例に
おける業務変数/内部変数識別部における処理の流れに
ついて説明する。
【0017】まず、既存技術により、図3に示すプログ
ラムを解析し、それぞれの変数がどのような文で利用さ
れたかという図6の例に示す変数利用情報テーブルを作
成する(図4のステップS1)。変数利用情報テーブル
は同図に示すように、プログラム中で使用されている変
数X,Y,G1,…,D,…と、利用している文の識別
子からなる。なお、同図のG1,G2はWORKING STRAGE
SECTIONの変数であり、変数A,BおよびC,Dと親子
関係にある。
【0018】業務変数識別部13はこの変数利用情報テ
ーブルをロードし、これらの変数を入出力に関係する業
務変数と内部変数に分類する。次にステップS2(処理
1)において、COBOLのファイル節や連絡節に宣言
された変数など、宣言部で業務変数と識別できるものに
マークを付ける(図3の宣言部から変数X,Yがこれに
相当することがわかる)。
【0019】ステップS3(処理2)では、COBOL
のCALL文の引数で渡された変数など、文の種類やオペラ
ンドから外部とつながると判断できる変数(業務変数)
にマークする(図6の変数Dがこれに相当する)。以
後、ステップS4〜S9で変数利用情報を参照しながら
ステップS2、S3でマークされた変数の値を代入した
り、あるいはそのその変数に値を代入している変数を検
索し、それらにもマークしていく。
【0020】すなわち、ステップS4においてマークの
ない変数の集合をAとし、ステップS5において、Aが
空集合であるか否かを判別し、Aが空集合でない場合に
は、ステップ6にいく。ステップS6において、マーク
のない変数の集合Aから1つの変数(これをxとする)
を取り、集合Aからxを除く。次に、図5のステップS
7に行き、xが値を代入しているまたはxに値を代入し
ている変数にマークが付いているものがあるかを判別
し、無い場合にはステップS5へ戻る。
【0021】また、マークが付いているものがある場合
には、ステップS8(処理3)にいき、xとxの親変数
にマークを付け、ステップS9(処理3)において、A
の中でxに関連している変数とその親変数にマークを付
す処理を再帰的に実行し、ステップS5に戻る。そし
て、Aが空集合になるとステップS5からステップS1
0に行き、マークのない変数を内部変数とする。
【0022】構造体のように変数に親子関係がある場合
には子が業務変数となった場合は親変数も業務変数とす
る。上記作業の効率化を図るため、例えば、図7の例に
示すような、代入関係にある変数を並べた依存関係テー
ブルを作って参照することも考えられる。全ての代入関
係を調べ、最終的にマークされた変数が業務変数とな
り、それ以外が内部変数となる。
【0023】図7の例においては、図4、図5の処理フ
ローの処理1において、変数X,Yがマークされ、処理
2において変数G2,Dがマークされる。さらに、処理
3においてマークが付けられた変数と親子関係にある変
数G1,Bがマークされ、処理4において変数Cがマー
クされる。そして、上記処理の結果、変数Aにマークが
付けられていないのでAを内部変数とする。 (2)等価経路検索部14 図8、図9は等価経路検索部14における処理を示すフ
ローチャートであり、同図により本実施例における等価
経路検索部14における処理の流れについて説明する。
【0024】まず、既存技術により、図3に示すプログ
ラムを解析し、図10に示す制御フローを作成する(図
8のステップS1)。次に、制御フロー中のある条件式
〔A〕を指定して与え(ステップS2)、ステップS3
において、条件式〔A〕が複合条件式であれば条件式を
展開し、例えば、〔A〕=〔A1〕OR〔A2〕OR,…の
ように、OR条件で区切った条件要素に分割する。
【0025】ついで、上記分割された各条件要素〔An
〕についてステップS4〜S8の処理を繰り返す。す
なわち、制御フローを遡り、各条件要素〔An 〕中で用
いられている変数に値が設定されている箇所とそこに到
達するまでの経路を検索する(ステップS4)。次に、
全変数についての設定箇所が検索されたか否かを判別し
(ステップS5)、検索された場合には、ステップS6
において全経路で各変数がどのような値をとっているか
を記録し、〔An 〕が真となる文(位置)とそこからの
経路の集合をWn とする。
【0026】そして、ステップS7において、〔A〕の
等価経路を上記集合Wn により、W1 OR W2 OR
…として終了する。また、ステップS5において、全変
数についての設定箇所が検索されていないと判別された
場合には、〔An 〕の等価経路は求められないので、ス
テップS8にいき、Wn を空集合とする。すなわち、外
部から値が与えられる変数が条件要素に含まれる場合
は、値の設定箇所がない場合があり、その時は経路不明
のままにする。
【0027】図11、図12は条件式A>0 AND (B>
0 OR C>0)の条件が指定された場合における等価
経路検索の一例を示す図である。例えば、図11におい
て、9(p5)の位置で条件式A>0 AND (B>0 OR
C>0)を満たす等価経路は次のようにして検索され
る。まず、条件式A>0 AND (B>0 OR C>0)を
図12に示すように、(A>0 AND B>0) OR (A
>0 AND C>0)に変形し、まず、条件要素(A>0
AND B>0)について経路を検索する。条件要素(A
>0 AND B>0)については、図11から明らかなよ
うにB>0とする設定箇所はない(変数Bは外部から与
えられる変数である)ので、図12に示すように経路は
不明である。
【0028】次に条件要素(A>0 AND C>0)につ
いて経路を検索する。この場合には、位置1(p1)で
A>0に設定された後、5(p4)でC>0に設定さ
れ、位置8を経由して位置9に至る〔5(p4)→8→
9〕の経路と、位置3(p2)でC>0に設定され、位
置6を経由して位置9に至る〔3(p2)→6→9〕の
経路と、位置3(p2)から位置7を経由して位置9に
至る〔3(p2)→7→9〕の経路が存在する。
【0029】したがって、図12に示すように位置(p
5)における条件式を真にする等価経路として5(p
4)→8→9、3(p2)→6→9、3(p2)→7→
9が得られる。 (3)等価条件式置換部15 図13、図14は等価条件式置換部15における処理を
示すフローチャートであり、同図により本実施例におけ
る等価条件式置換部15における処理の流れについて説
明する。
【0030】まず、前記した図10に示すような制御フ
ローを入力する(図13のステップS1)。次に、ある
条件式〔A〕を入力し、その制御フロー上の位置Pを記
憶する(ステップS2)。ついで、等価条件検索部14
に条件式〔A〕を入力して条件式〔A〕を真とする経路
および文を検索する。その時、検索範囲は条件式〔A〕
に到達する全経路が合流する点までとする(ステップS
3)。
【0031】合流点は既存技術で制御フローの形から求
められる。例えば図10の例で、位置9におけるIF文
の分岐条件〔A>0〕についての検索範囲は、位置9に
到達する全経路が合流する位置2までとする。得られた
経路の集合をWとし、要素であるそれぞれの経路はその
経路を決定する条件式の列から成り立っている。
【0032】次に、上記集合Wが空集合でないか否かを
判別し、空集合の場合には図14に行き終了する。空集
合でない場合には、集合Wの全経路についてステップS
5〜S7の処理を実行する。ステップS5において、上
記集合Wに含まれる一つの経路w1の条件式の列をc
1,c2,c3,…とし、ステップS6において、上記
条件式の列c1,c2,c3,…で使われている変数の
値が経路w1で変更されていないかを判別する。c1,
c2,c3,…中で用いられている変数の値がその経路
中で変更されていない場合、ステップS7に行き、c
1,c2,c3,…の論理積c1 AND c2 AND c3
…を置換条件の一つC(w1)にする。また、変数の値
が経路w1で変更されている場合には、置換条件としな
い。
【0033】上記処理を集合Wの全経路について行い、
ステップS8において、〔A〕をWの全経路について得
られる置換条件の論理和(C(w1) OR C(w2),
・・・)に置換し、これを〔A’〕とし、ステップS8
において、〔A’〕を簡約化して終了する。上記処理に
おいて、条件式内に外部から値が与えられる変数が含ま
れる場合は等価経路検索部14は前記したように経路を
返さない。このような場合は、条件式を置換しない。
【0034】例えば、図10の制御フローの場合には次
のようになる。図10の位置9の〔A>0〕から検索さ
れた経路を構成する条件式の列は、経路1:{2→4
(B<D),4→6(X=1)},経路2:{2→4
(B<D),4→7(X=2)}であることがわかる。
したがって、条件式〔A>0〕は〔(B<D AND X=
1) OR (B<D ANDX=2〕となり、最終的に簡約さ
れて〔B<D AND (X=1 OR X=2)〕と置換され
る。 (4)業務変数の更新・条件分岐抽出部16 図15は業務変数の更新・条件分岐抽出部16における
処理を示すフローチャートであり、同図により本実施例
における業務変数の更新・条件分岐抽出部16における
処理の流れについて説明する。
【0035】制御フロー情報をトラバースしながら変数
の値が更新されている箇所、その時の条件(データフロ
ー)を求める。これは既存技術の範囲であるので、処理
の説明は省略するが、要は図10に示したような制御フ
ローの全経路について、変数の値が更新されている箇
所、その時の条件を検索する。そして、図15のステッ
プS1〜S4の処理を繰り返す。
【0036】すなわち、ステップS1において、前記し
た業務変数/内部変数識別部13を用いて更新される値
が業務変数であるかを識別し、更新される変数が業務変
数であった場合、その箇所を記憶し、内部変数の更新箇
所と区別する。そして、直前の分岐条件式〔A〕を抽出
する。ステップS2において、上記分岐条件式〔A〕で
用いられている変数の中に内部変数が含まれているもの
を抽出する(業務変数/内部変数識別部13を使用)。
【0037】ついで、ステップS3において、分岐条件
式〔A〕の変数の中に内部変数が含まれているかを判別
し、含まれている場合には、ステップS4に行き、前記
した等価条件式置換部15を用いて内部変数が存在しな
い条件式に置換する。なお、等価条件式置換部15で説
明済だが、検索範囲での値のわからない変数が混在する
場合は、その条件式は置換しない。また、内部変数が存
在しない場合には、その分岐条件式〔A〕を業務変数の
分岐条件とする。
【0038】図16に従来のデータフロー情報から業務
変数に関する更新、分岐条件式のみを抽出する場合の一
例を示す。同図は、図3のプログラムに対応する図10
に示した制御フローを利用する例であり、同図(a)は
従来のデータフローを示し、(b)は置換されたデータ
フローを示している。
【0039】図12(a)に示すように、業務変数であ
るCに1が代入される条件が〔A>0〕であるが、Aは
内部変数なので、同図(b)に示すように、〔A>0〕
と等価な条件式〔B<D AND (X=1 OR X=2)〕
に置換する。更に、内部変数Aに値を代入している箇所
は、データフローから削除する。
【0040】
【発明の効果】以上説明したように、本発明は以下の効
果を得ることができる。 (1)業務変数/内部変数識別手段を設けているので、
プログラム中の変数を制御のためだけに用いられるフラ
グ等の内部変数と入出力に関連した業務変数に分類する
ことができ、内部変数を除いた純粋な業務仕様情報を抽
出することが可能となる。 (2)等価経路検索手段を設けているので、制御フロー
中の指定された条件式が真となる経路、文の位置を検索
することができる。 (3)等価条件式置換手段を設けているので、プログラ
ム中の任意の条件式をプログラム実行順の前方の変数で
置換することができる。 (4)業務変数の更新・条件分岐抽出手段を設けている
ので、等価条件式置換手段4によりより得られた内部変
数を用いて記述されている条件式を、プログラムの入出
力情報に関連した業務変数で記述した等価な条件式に置
換することができる。
【0041】上記のような(1)〜(4)の手段を設け
ることにより、解析対象とするプログラムが最終的にど
の業務変数にどのような値をセットするのか、また、特
定の処理が実行される条件はなにかといった業務仕様
を、制御仕様を分離しながら自動的に抽出することがで
きる。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の実施例のシステムの概略構成を示す図
である。
【図3】本発明の実施例の解析対象となるプログラムの
一例を示す図である。
【図4】業務変数/内部変数識別部における処理フロー
を示す図である。
【図5】業務変数/内部変数識別部における処理フロー
(続き)を示す図である。
【図6】変数利用情報テーブルの一例を示す図である。
【図7】依存関係テーブルと業務変数抽出過程を示す図
である。
【図8】等価経路検索部における処理フローを示す図で
ある。
【図9】等価経路検索部における処理フロー(続き)を
示す図である。
【図10】図3に示したプログラムの制御フローを示す
図である。
【図11】制御フローから等価経路を求める一例を示す
図である。
【図12】制御フローから等価経路を求める一例を示す
図である。
【図13】等価条件式置換部における処理フローを示す
図である。
【図14】等価条件式置換部における処理フロー(続
き)を示す図である。
【図15】業務変数の更新・条件分岐抽出部における処
理フローを示す図である。
【図16】業務変数に関する更新、条件分岐条件式抽出
の様子を示す図である。
【図17】従来技術における変数値の更新情報の流れの
一例を示す図である。
【符号の説明】
1a 解析対象プログラム 1b 変数利用情報 1c 制御フロー 2 業務変数/内部変数識別手段 3 等価経路検索手段 4 等価条件式置換手段 5 業務変数の更新・条件分岐抽出手段 6 業務仕様情報 11 プログラムの構文木、変数利用情報、制御フロー 12 プログラム解析装置 13 業務変数/内部変数識別部 14 等価経路検索部 15 等価条件置換部 16 業務変数の更新・条件分岐抽出部 17 業務仕様情報

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 解析対象となるプログラム中の変数を、
    入出力に関係する業務変数と、プログラム内で閉じたフ
    ラグ等の内部変数に分類するプログラム解析装置であっ
    て、 変数とその変数が利用されている文の関係を示す変数利
    用情報を用いて上記変数を分類する業務変数/内部変数
    識別手段を備え、 上記業務変数/内部変数識別手段は、プログラム中で宣
    言された変数および/または外部とつながる変数にマー
    クを付し、 マークが付された変数と親子関係にある変数および代入
    関係にある変数を検索してマークを付していき、最終的
    にマークされた変数を業務変数、それ以外の変数を内部
    変数とすることを特徴とするプログラム解析装置。
  2. 【請求項2】 解析対象となるプログラム中の任意の条
    件式を指定し、その条件式が真となる経路、文の位置を
    検索するプログラム解析装置であって、 解析対象となるプログラムの処理の流れを示す制御フロ
    ー中の条件式が真となる経路、文の位置を検索する等価
    経路検索手段を備え、 任意の条件式が指定されたとき、上記等価経路検索手段
    は、上記条件式を展開してOR条件で区切られた条件要
    素に分割し、上記制御フローを遡って上記条件要素中で
    用いられている変数に値が設定されている箇所を検索
    し、 上記検索された箇所と設定されている値に基づき上記条
    件式が真となる経路、文の位置を検索することを特徴と
    するプログラム解析装置。
  3. 【請求項3】 プログラム中の任意の条件式を、プログ
    ラム実行順の前方の変数で置換するプログラム解析装置
    であって、 解析対象となるプログラムの処理の流れを示す制御フロ
    ー中の任意の条件式が真となる経路、文の位置を検索す
    る等価経路検索手段と、 上記等価経路検索手段の検索結果を用いて、上記条件式
    をプログラム実行順の前方の変数で置換する等価条件式
    置換手段とを備え、 上記等価条件式置換手段は、上記条件式を真とする経路
    および文を上記等価経路検索手段により検索し、検索さ
    れた全経路の要素である各経路を決定する条件式の列を
    求め、 上記条件式の列で使われている変数の値が各経路内で変
    更されていない場合に、上記条件式の列の論理積を求
    め、 上記任意の条件式を、上記各経路の条件式の列の論理積
    の論理和に置換することを特徴とするプログラム解析装
    置。
  4. 【請求項4】 プログラム内で閉じたフラグ等の内部変
    数を用いて記述される条件式を、プログラムの入力情報
    または出力情報に関係した業務変数で記述した等価な条
    件式に置換するプログラム解析装置であって、 変数とその変数が利用されている文の関係を示す変数利
    用情報を用いてプログラム中の変数を、入出力に関係す
    る業務変数と内部変数に分類する業務変数/内部変数識
    別手段と、 解析対象となるプログラムの処理の流れを示す制御フロ
    ー中の条件式が真となる経路、文の位置を検索する等価
    経路検索手段と、 上記等価経路検索部の検索結果を用いて、プログラム中
    の任意の条件式をプログラム実行順の前方の変数で置換
    する等価条件式置換手段と、 プログラム内で閉じた内部変数を用いて記述されている
    条件式をプログラムの入力情報および出力情報に関係し
    た業務変数で記述した等価な条件式に置換する業務変数
    の更新・条件分岐抽出手段を備え、 上記業務変数の更新・条件分岐抽出手段は、業務変数/
    内部変数識別手段の識別結果を用いて、制御フロー中に
    おいて業務変数が更新されている箇所を記憶して、その
    箇所における条件式を求め、 上記条件式に内部変数が存在する場合に、等価条件式置
    換手段を用いて内部変数が存在しない条件式に置換する
    ことを特徴とするプログラム解析装置。
JP7257582A 1995-10-04 1995-10-04 プログラム解析装置 Withdrawn JPH09101879A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7257582A JPH09101879A (ja) 1995-10-04 1995-10-04 プログラム解析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7257582A JPH09101879A (ja) 1995-10-04 1995-10-04 プログラム解析装置

Publications (1)

Publication Number Publication Date
JPH09101879A true JPH09101879A (ja) 1997-04-15

Family

ID=17308276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7257582A Withdrawn JPH09101879A (ja) 1995-10-04 1995-10-04 プログラム解析装置

Country Status (1)

Country Link
JP (1) JPH09101879A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203116A (ja) * 1998-01-14 1999-07-30 Fujitsu Ltd 変数分類装置およびそのプログラムを格納した記憶媒体
JP2000029742A (ja) * 1998-05-21 2000-01-28 Lucent Technol Inc オ―プンシステムを閉じる方法
JP2010108279A (ja) * 2008-10-30 2010-05-13 Kddi Corp コンテンツ配信方法およびシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203116A (ja) * 1998-01-14 1999-07-30 Fujitsu Ltd 変数分類装置およびそのプログラムを格納した記憶媒体
JP2000029742A (ja) * 1998-05-21 2000-01-28 Lucent Technol Inc オ―プンシステムを閉じる方法
JP2010108279A (ja) * 2008-10-30 2010-05-13 Kddi Corp コンテンツ配信方法およびシステム

Similar Documents

Publication Publication Date Title
JP4153883B2 (ja) 階層型データベース装置および階層型データベース装置における製品選定方法およびプログラム
US8380650B2 (en) Information extraction rule making support system, information extraction rule making support method, and information extraction rule making support program
CN109344230B (zh) 代码库文件生成、代码搜索、联结、优化以及移植方法
JPH08190587A (ja) 業務プロセスのシミュレーションシステム
JP3573501B2 (ja) 索引作成装置
JPH07200358A (ja) ソフトウェア・アプリケーションの自動テスト方法
JPH0683598A (ja) ジョブフロー仕様書自動作成方法
JPH0816378A (ja) プログラム・リバース解析方法および装置
US7065748B2 (en) Test specification formation supporting apparatus, method, and program, and recording medium
US5721924A (en) Method and device for obtaining a value of a referred to variable defined in a source program having a specific variable name
US7624124B2 (en) System and method for assisting generation of business specification
CN110188207B (zh) 知识图谱构建方法及装置、可读存储介质、电子设备
JP2000029674A (ja) アプリケ―ションソフトウェア構成方法
JPH09106331A (ja) 電子掲示板ブラウザ
KR20200068769A (ko) 속성 지식 확장 시스템 및 속성 지식 확장 방법
JPH09101879A (ja) プログラム解析装置
JPH11272503A (ja) プログラムのテストデータ自動生成装置
JPH0877196A (ja) 文書情報抽出装置
JPH0793144A (ja) プログラム解析装置
JPH09101880A (ja) プログラム分析装置
CN111124548B (zh) 一种基于yaml文件的规则解析方法及系统
JP3584204B2 (ja) 原始プログラム自動変換装置
CN117931275A (zh) 基于机器学习的代码合并冲突自动消解方法
JP2001014154A (ja) オブジェクト指向ソフトウェア部品抽出支援および検索装置
JPH06222913A (ja) プログラム解析装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030107