JPH05257666A - フローチャート自動生成方法 - Google Patents
フローチャート自動生成方法Info
- Publication number
- JPH05257666A JPH05257666A JP4055084A JP5508492A JPH05257666A JP H05257666 A JPH05257666 A JP H05257666A JP 4055084 A JP4055084 A JP 4055084A JP 5508492 A JP5508492 A JP 5508492A JP H05257666 A JPH05257666 A JP H05257666A
- Authority
- JP
- Japan
- Prior art keywords
- flowchart
- program
- variable
- display
- statement
- 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】
【従来の技術】従来において、コンピュータプログラム
のソースコードからフローチャートを自動的に生成する
方法として、例えば、「日立評論,Vol.70,No.2,p
p7〜14(昭63−2)」に紹介されたSEWB(ソ
フトウェアエンジニアリングワークベンチ)が知られて
いる。これは、ソースコードをフローチャートの一種で
あるPAD図(Problem Analysis D
iagram)に変換するものである。
のソースコードからフローチャートを自動的に生成する
方法として、例えば、「日立評論,Vol.70,No.2,p
p7〜14(昭63−2)」に紹介されたSEWB(ソ
フトウェアエンジニアリングワークベンチ)が知られて
いる。これは、ソースコードをフローチャートの一種で
あるPAD図(Problem Analysis D
iagram)に変換するものである。
【0003】また、特開平2−39324号公報に開示
されているように、処理要素ごとに、フローチャートへ
の表示出力の有無および表示出力する場合の付加情報を
定義することにより、概略フローチャートを生成する方
法がある。
されているように、処理要素ごとに、フローチャートへ
の表示出力の有無および表示出力する場合の付加情報を
定義することにより、概略フローチャートを生成する方
法がある。
【0004】さらに、特開平2−48731号公報に開
示されているように、プログラムの構造要素ごとに、概
略レベルを定義しておき、フローチャート生成時に、生
成したいフローチャートの概略レベルを指定することに
より、そのレベルより詳細な部分を削除して概略フロー
チャートを生成する方法がある。
示されているように、プログラムの構造要素ごとに、概
略レベルを定義しておき、フローチャート生成時に、生
成したいフローチャートの概略レベルを指定することに
より、そのレベルより詳細な部分を削除して概略フロー
チャートを生成する方法がある。
【0005】
【発明が解決しようとする課題】しかしながら、SEW
B(ソフトウェアエンジニアリングワークベンチ)は、
ソースコードの文と1対1にPAD図の処理ボックスを
生成するため、様々な条件の処理が混在した複雑なプロ
グラムでは、生成されるフローチャートが複雑なものと
なり過ぎ、広い範囲のプログラムの流れを把握したり、
解析する目的には適さないという問題があった。
B(ソフトウェアエンジニアリングワークベンチ)は、
ソースコードの文と1対1にPAD図の処理ボックスを
生成するため、様々な条件の処理が混在した複雑なプロ
グラムでは、生成されるフローチャートが複雑なものと
なり過ぎ、広い範囲のプログラムの流れを把握したり、
解析する目的には適さないという問題があった。
【0006】また、特開平2−39324号および特開
平2−48731号のフローチャート生成方法で生成さ
れるフローチャートは、特定の実行条件や観点に基づい
た概略フローチャートではないので、様々な条件の処理
が混在した複雑なプログラムの流れを把握したり解析す
るには、不十分であるという問題があった。
平2−48731号のフローチャート生成方法で生成さ
れるフローチャートは、特定の実行条件や観点に基づい
た概略フローチャートではないので、様々な条件の処理
が混在した複雑なプログラムの流れを把握したり解析す
るには、不十分であるという問題があった。
【0007】本発明の目的は、様々な条件で実行される
処理が混在した複雑な流れを持つコンピュータプログラ
ムについて、その流れを特定の実行条件や観点に基づい
て容易に把握することが可能な広い範囲にわたる見通し
の良いフローチャートを自動生成することができるフロ
ーチャート自動生成方法を提供することである。
処理が混在した複雑な流れを持つコンピュータプログラ
ムについて、その流れを特定の実行条件や観点に基づい
て容易に把握することが可能な広い範囲にわたる見通し
の良いフローチャートを自動生成することができるフロ
ーチャート自動生成方法を提供することである。
【0008】
【課題を解決するための手段】上記目的を達成するため
に本発明は、基本的には、フローチャートの出力範囲を
制御するための判定文を解析対象のコンピュータプログ
ラムに予め埋め込んでおき、フローチャートの生成に際
して設定した変数の値を判定し、設定した変数に対応し
ない変数を持つ判定文が存在する構文上のプログラム部
分を除外してフローチャートを生成し、出力するように
した。
に本発明は、基本的には、フローチャートの出力範囲を
制御するための判定文を解析対象のコンピュータプログ
ラムに予め埋め込んでおき、フローチャートの生成に際
して設定した変数の値を判定し、設定した変数に対応し
ない変数を持つ判定文が存在する構文上のプログラム部
分を除外してフローチャートを生成し、出力するように
した。
【0009】あるいは、フローチャートの出力範囲を制
御するための判定文を解析対象のプログラムに予め埋め
込んでおき、さらに他のプログラムモジュールがコール
される位置には該他のプログラムモジュールの実効条件
となる変数を設定する設定文を予め埋め込んでおき、フ
ローチャートの生成に際して設定した変数の値を判定
し、設定した変数に対応しない変数を持つ判定文が存在
する構文上のプログラム部分を除外したプログラム部分
と、該プログラム部分に関連して実行されるプログラム
モジュールのうち前記設定文によって実行条件となる変
数が設定されたプログラムモジュールの処理の流れとを
接続し、一つのフローチャートとして生成し、出力する
ようにした。
御するための判定文を解析対象のプログラムに予め埋め
込んでおき、さらに他のプログラムモジュールがコール
される位置には該他のプログラムモジュールの実効条件
となる変数を設定する設定文を予め埋め込んでおき、フ
ローチャートの生成に際して設定した変数の値を判定
し、設定した変数に対応しない変数を持つ判定文が存在
する構文上のプログラム部分を除外したプログラム部分
と、該プログラム部分に関連して実行されるプログラム
モジュールのうち前記設定文によって実行条件となる変
数が設定されたプログラムモジュールの処理の流れとを
接続し、一つのフローチャートとして生成し、出力する
ようにした。
【0010】
【作用】上記手段によれば、所望の解析観点のプログラ
ム部分の流れだけを示すフローチャートを出力しようと
する場合、フローチャートの生成に先だって、ソースコ
ード中にフローチャートとしての出力条件を記述した判
定文を予め埋め込んでおく。そして、フローチャート生
成時には、フローチャート出力条件となる変数を設定す
る。すると、この設定した変数に対応しない変数を持つ
判定文が存在する構文上のプログラム部分を除外したプ
ログラム部分についてのみのフローチャートが生成され
て出力される。
ム部分の流れだけを示すフローチャートを出力しようと
する場合、フローチャートの生成に先だって、ソースコ
ード中にフローチャートとしての出力条件を記述した判
定文を予め埋め込んでおく。そして、フローチャート生
成時には、フローチャート出力条件となる変数を設定す
る。すると、この設定した変数に対応しない変数を持つ
判定文が存在する構文上のプログラム部分を除外したプ
ログラム部分についてのみのフローチャートが生成され
て出力される。
【0011】従って、フローチャート出力条件となる変
数を所望の解析観点に応じて変えることにより、その解
析観点に応じたフローチャートを自動的に生成して出力
することができる。これにより、様々な条件で実行され
る処理が混在した複雑な流れを持つコンピュータプログ
ラムであっても、その流れを特定の実行条件や観点に基
づいて容易に把握することが可能になる。
数を所望の解析観点に応じて変えることにより、その解
析観点に応じたフローチャートを自動的に生成して出力
することができる。これにより、様々な条件で実行され
る処理が混在した複雑な流れを持つコンピュータプログ
ラムであっても、その流れを特定の実行条件や観点に基
づいて容易に把握することが可能になる。
【0012】また、他のプログラムモジュールを呼び出
して処理を進めている部分では、設定文によって実効条
件となる変数が設定されたプログラムモジュールの処理
の流れが接続され、1つのフローチャートとして出力さ
れる。
して処理を進めている部分では、設定文によって実効条
件となる変数が設定されたプログラムモジュールの処理
の流れが接続され、1つのフローチャートとして出力さ
れる。
【0013】
【実施例】以下、図示する実施例に基づいて本発明を詳
細に説明する。
細に説明する。
【0014】図1は本発明を適用したフローチャート自
動生成システムの一実施例の構成図を示すものである。
図において、コンピュータプログラムのソースコード1
の中には、ユーザが設定した表示条件設定文10と表示
条件判定文11が埋め込まれている。
動生成システムの一実施例の構成図を示すものである。
図において、コンピュータプログラムのソースコード1
の中には、ユーザが設定した表示条件設定文10と表示
条件判定文11が埋め込まれている。
【0015】表示範囲決定手段2はソースコード1を解
析し、該ソースコード1中に埋め込まれている表示条件
設定文10と表示条件判定文11と、表示条件設定手段
6及び表示条件計算手段7から与えられる表示条件に基
づき、フローチャートの生成対象となるソースコードの
範囲を決定する。このとき、表示範囲決定手段2は、複
数のプログラムモジュールのうち接続して実行するプロ
グラムモジュールの接続対象モジュール一覧8が指定さ
れていれば、それらのモジュールの全てについて表示範
囲の決定を行う。
析し、該ソースコード1中に埋め込まれている表示条件
設定文10と表示条件判定文11と、表示条件設定手段
6及び表示条件計算手段7から与えられる表示条件に基
づき、フローチャートの生成対象となるソースコードの
範囲を決定する。このとき、表示範囲決定手段2は、複
数のプログラムモジュールのうち接続して実行するプロ
グラムモジュールの接続対象モジュール一覧8が指定さ
れていれば、それらのモジュールの全てについて表示範
囲の決定を行う。
【0016】フローチャート表示手段3は、決定された
表示範囲をもとに、フローチャート5を生成する。この
とき、フローチャート表示手段3は、モジュールグルー
プ化情報9が指定されていれば、フローチャート表示領
域制御手段4からの制御に従ってフローチャートの表示
領域を各モジュールグループに対応する領域に分割して
表示する。
表示範囲をもとに、フローチャート5を生成する。この
とき、フローチャート表示手段3は、モジュールグルー
プ化情報9が指定されていれば、フローチャート表示領
域制御手段4からの制御に従ってフローチャートの表示
領域を各モジュールグループに対応する領域に分割して
表示する。
【0017】図2に表示条件設定文10の記述例を示
す。この表示条件設定文10は、「/*!」で始まる注
釈であり、フローチャートの表示範囲を制御する変数、
例えば「COUNT」に対する代入文を含む。この設定
文10は、1つのプログラムモジュールに関連して実行
されるプログラムモジュールの実行条件となる変数の値
を設定する場合に使用される。
す。この表示条件設定文10は、「/*!」で始まる注
釈であり、フローチャートの表示範囲を制御する変数、
例えば「COUNT」に対する代入文を含む。この設定
文10は、1つのプログラムモジュールに関連して実行
されるプログラムモジュールの実行条件となる変数の値
を設定する場合に使用される。
【0018】図3に表示条件判定文11の記述例を示
す。この表示条件判定文11は、「/*?」で始まる注
釈であり、フローチャートの表示範囲を制御する変数、
例えば「MODE及びCOUNT」に関する論理式を含
む。
す。この表示条件判定文11は、「/*?」で始まる注
釈であり、フローチャートの表示範囲を制御する変数、
例えば「MODE及びCOUNT」に関する論理式を含
む。
【0019】図4は表示条件設定手段6で表示条件とし
て設定する変数の指定例を示すもので、フローチャート
生成時に、フローチャートの表示範囲を制御する変数
(この例では、MODE)に対する代入文として、UT
Lを指定した例を示している。
て設定する変数の指定例を示すもので、フローチャート
生成時に、フローチャートの表示範囲を制御する変数
(この例では、MODE)に対する代入文として、UT
Lを指定した例を示している。
【0020】この実施例においては、表示条件の変数と
して、MODE=UTLを設定した場合、MODE=U
APという内容を持つ判定文が埋め込まれたプログラム
のブロックがフローチャートの生成対象から除外され
る。
して、MODE=UTLを設定した場合、MODE=U
APという内容を持つ判定文が埋め込まれたプログラム
のブロックがフローチャートの生成対象から除外され
る。
【0021】図5は、PL/Iで記述したソースコード
の例を示すもので、この例のソースコードに対し、図4
で示した表示条件MODE=UTLを表示条件設定手段
6から指定すると、図6に示すようなフローチャートの
一種であるPAD図が生成される。
の例を示すもので、この例のソースコードに対し、図4
で示した表示条件MODE=UTLを表示条件設定手段
6から指定すると、図6に示すようなフローチャートの
一種であるPAD図が生成される。
【0022】すなわち、図5の例のソースコードにおい
ては、 (1)MODE=UTL (2)MODE=UAP (3)FUNC=ADD (4)FUNC=DEL という変数を持つ判定文50,51,52,53が記述
されているが、表示条件設定手段6では、MODE=U
TLが設定されたので、判定文50が記述されている部
分の「BUF=30;/*バッファ面数*/」がフロー
チャート生成対象として選択され、図6に符号60で示
すようなフローチャートとして生成される。
ては、 (1)MODE=UTL (2)MODE=UAP (3)FUNC=ADD (4)FUNC=DEL という変数を持つ判定文50,51,52,53が記述
されているが、表示条件設定手段6では、MODE=U
TLが設定されたので、判定文50が記述されている部
分の「BUF=30;/*バッファ面数*/」がフロー
チャート生成対象として選択され、図6に符号60で示
すようなフローチャートとして生成される。
【0023】次に、「IF NUM>0 THEN」の
条件実行文には、 (1)FUNC=DEL (2)FUNC=ADD という設定文54,55が記述され、判定文52,53
を持つプログラムモジュールMOD1を呼び出すための
条件が設定される。プログラムモジュールMOD1にお
いては、FUNC=DELに設定されていた場合は判定
文52により「NUM=NUM+1」が表示対象から除
外され、FUNC=ADDに設定されていた場合は判定
文53により「NUM=NUM−1」が表示対象から除
外されるようになっているので、この部分は符号61で
示すようなフローチャートとして生成される。
条件実行文には、 (1)FUNC=DEL (2)FUNC=ADD という設定文54,55が記述され、判定文52,53
を持つプログラムモジュールMOD1を呼び出すための
条件が設定される。プログラムモジュールMOD1にお
いては、FUNC=DELに設定されていた場合は判定
文52により「NUM=NUM+1」が表示対象から除
外され、FUNC=ADDに設定されていた場合は判定
文53により「NUM=NUM−1」が表示対象から除
外されるようになっているので、この部分は符号61で
示すようなフローチャートとして生成される。
【0024】一方、「IF RC=ERROR THE
N」の条件実行文においては、判定文が記述されていな
いので、そのまま符号62で示すフローチャートとして
生成される。
N」の条件実行文においては、判定文が記述されていな
いので、そのまま符号62で示すフローチャートとして
生成される。
【0025】この場合、図5の例では、プログラムモジ
ュールのグループ化をしていないが、モジュールのグル
ープ化情報9を指定した場合には、図7の例に示すよう
に、各プログラムモジュールのグループに対応してフロ
ーチャート表示領域が横方向に分割され、グループ内の
フローは対応する表示料領域の中にそれぞれ区分けして
表示される。なお、図7で示す各処理の内容は図5のソ
ースコードとは何等関係ない。
ュールのグループ化をしていないが、モジュールのグル
ープ化情報9を指定した場合には、図7の例に示すよう
に、各プログラムモジュールのグループに対応してフロ
ーチャート表示領域が横方向に分割され、グループ内の
フローは対応する表示料領域の中にそれぞれ区分けして
表示される。なお、図7で示す各処理の内容は図5のソ
ースコードとは何等関係ない。
【0026】このようにグループ分けしてフローチャー
トを表示出力することにより、各プログラムモジュール
の接続関係を明瞭に把握することが可能になる。
トを表示出力することにより、各プログラムモジュール
の接続関係を明瞭に把握することが可能になる。
【0027】図8に、表示条件計算手段7による表示条
件の計算例を示すものである。表示条件計算手段7は、
ソースコード1の構文を解析して、図8に示す構文上の
パターンを認識し、そのパターンの直後の場所の表示条
件を図8に示すような計算方法で計算する。
件の計算例を示すものである。表示条件計算手段7は、
ソースコード1の構文を解析して、図8に示す構文上の
パターンを認識し、そのパターンの直後の場所の表示条
件を図8に示すような計算方法で計算する。
【0028】すなわち、ソースコードの解析を進めて行
く過程で分岐判定部80があり、その分岐先として「V
=A」,「V=B」の設定文81,82が設定されてい
た場合は、「V=A」,「V=B」という計算結果を
得、これを以降の表示条件の変数として用いる。
く過程で分岐判定部80があり、その分岐先として「V
=A」,「V=B」の設定文81,82が設定されてい
た場合は、「V=A」,「V=B」という計算結果を
得、これを以降の表示条件の変数として用いる。
【0029】また、ソースコードの解析を進めて行く過
程でループ部83があり、その先に「V=A」の設定文
84が設定されていた場合は、「V=A」,「V=φ
(空欄)」という計算結果を得、これを以降の表示条件
の変数として用いる。
程でループ部83があり、その先に「V=A」の設定文
84が設定されていた場合は、「V=A」,「V=φ
(空欄)」という計算結果を得、これを以降の表示条件
の変数として用いる。
【0030】また、ソースコードの解析を進めて行く過
程で「V=A」,「V=B」の設定文85,86が設定
されていた場合は、最終的に「V=B」という計算結果
を得、これを以降の表示条件の変数として用いる。
程で「V=A」,「V=B」の設定文85,86が設定
されていた場合は、最終的に「V=B」という計算結果
を得、これを以降の表示条件の変数として用いる。
【0031】なお、この計算は、ソースコードのプログ
ラムを実際に実行するわけではなく、静的な構文解析を
行うだけなので、実用的な時間内に終了する。この計算
結果は、プログラムモジュールの実行条件となる変数が
とりえる値の候補であり、実際にプログラムを実行した
ときにはありえない値を含む可能性があってフローチャ
ートの表示範囲が多少広くなるかもしれないが、プログ
ラムの流れの前後関係によって決定される表示条件を求
めるのには都合が良く、ソースコードをエンハンスによ
って修正しても表示条件設定文や表示条件判定文の修正
が不要となる場合が多いので、実際上は極めて都合がよ
い。
ラムを実際に実行するわけではなく、静的な構文解析を
行うだけなので、実用的な時間内に終了する。この計算
結果は、プログラムモジュールの実行条件となる変数が
とりえる値の候補であり、実際にプログラムを実行した
ときにはありえない値を含む可能性があってフローチャ
ートの表示範囲が多少広くなるかもしれないが、プログ
ラムの流れの前後関係によって決定される表示条件を求
めるのには都合が良く、ソースコードをエンハンスによ
って修正しても表示条件設定文や表示条件判定文の修正
が不要となる場合が多いので、実際上は極めて都合がよ
い。
【0032】次に、図1のフローチャート自動生成シス
テムにおけるフローチャート生成出力手順を図9および
図10のPAD図を用いて説明する。
テムにおけるフローチャート生成出力手順を図9および
図10のPAD図を用いて説明する。
【0033】最初に、表示条件設定手段6により、フロ
ーチャートの表示範囲を制御する変数に初期値を設定す
る(ステップ901)。次に、フローチャート表示範囲
決定手段2により、フローチャートを生成して表示する
ソースコード1の範囲を決定する(ステップ902)。
その結果をもとに、フローチャート表示手段3がフロー
チャートの一種であるPAD図を生成する(ステップ9
03)。このとき、モジュールのグループ化情報9が与
えられていれば、フローチャート表示手段3は、フロー
チャート領域制御手段4を用いて、フローチャート表示
領域を各モジュールグループに対応する部分に分割し、
図7の例に示したように表示する。
ーチャートの表示範囲を制御する変数に初期値を設定す
る(ステップ901)。次に、フローチャート表示範囲
決定手段2により、フローチャートを生成して表示する
ソースコード1の範囲を決定する(ステップ902)。
その結果をもとに、フローチャート表示手段3がフロー
チャートの一種であるPAD図を生成する(ステップ9
03)。このとき、モジュールのグループ化情報9が与
えられていれば、フローチャート表示手段3は、フロー
チャート領域制御手段4を用いて、フローチャート表示
領域を各モジュールグループに対応する部分に分割し、
図7の例に示したように表示する。
【0034】フローチャートの表示範囲決定手段2にお
いては、先ずソースコード1中の表示条件設定文10
と、表示条件計算手段7が計算したソースコード1の各
部におけるフローチャートの表示範囲を制御する変数の
値をもとに、表示範囲を決定する(ステップ904)。
いては、先ずソースコード1中の表示条件設定文10
と、表示条件計算手段7が計算したソースコード1の各
部におけるフローチャートの表示範囲を制御する変数の
値をもとに、表示範囲を決定する(ステップ904)。
【0035】次に、現在解析中のモジュールのソースコ
ードの中の全ての表示条件判定文11について、次の手
順を繰り返す(ステップ905)。
ードの中の全ての表示条件判定文11について、次の手
順を繰り返す(ステップ905)。
【0036】(1)表示範囲決定手段2によって表示条
件判定文11の真偽を判定する(ステップ906)。真
偽を判定するとは、その判定文の中に設定手段6で設定
された変数に一致する、あるいは対応する変数を持って
いるかどうかを判定することである。
件判定文11の真偽を判定する(ステップ906)。真
偽を判定するとは、その判定文の中に設定手段6で設定
された変数に一致する、あるいは対応する変数を持って
いるかどうかを判定することである。
【0037】(2)判定結果が偽であれば(ステップ9
07)、表示範囲決定手段2は、その判定文11の存在
する構文上のブロックにおける判定文以降の部分を、フ
ローチャートの表示対象から除外する(ステップ90
8)。
07)、表示範囲決定手段2は、その判定文11の存在
する構文上のブロックにおける判定文以降の部分を、フ
ローチャートの表示対象から除外する(ステップ90
8)。
【0038】次に、接続対象モジュール一覧8で指定さ
れたモジュールに対する全てのコール文について、その
モジュールのソースコードについて表示範囲決定手段2
を再起的に実行することを繰り返す(ステップ909,
910)。
れたモジュールに対する全てのコール文について、その
モジュールのソースコードについて表示範囲決定手段2
を再起的に実行することを繰り返す(ステップ909,
910)。
【0039】このように本実施例においては、フローチ
ャートの出力範囲を制御するための判定文を解析対象の
コンピュータプログラムに予め埋め込んでおき、フロー
チャートの生成に際して設定した変数に対応する変数を
持つ判定文が存在する構文上のプログラム部分について
のみフローチャートを生成し、出力するようにしたた
め、フローチャート出力条件となる変数を所望の解析観
点に応じて変えることにより、その解析観点に応じたフ
ローチャートを自動的に生成して出力することができ
る。これにより、様々な条件で実行される処理が混在し
た複雑な流れを持つコンピュータプログラムであって
も、その流れを特定の実行条件や観点に基づいて容易に
把握することが可能になる。
ャートの出力範囲を制御するための判定文を解析対象の
コンピュータプログラムに予め埋め込んでおき、フロー
チャートの生成に際して設定した変数に対応する変数を
持つ判定文が存在する構文上のプログラム部分について
のみフローチャートを生成し、出力するようにしたた
め、フローチャート出力条件となる変数を所望の解析観
点に応じて変えることにより、その解析観点に応じたフ
ローチャートを自動的に生成して出力することができ
る。これにより、様々な条件で実行される処理が混在し
た複雑な流れを持つコンピュータプログラムであって
も、その流れを特定の実行条件や観点に基づいて容易に
把握することが可能になる。
【0040】また、関連して実行されるプログラムモジ
ュールの処理の流れを接続し、一つのフローチャートと
して生成し、出力しているため、複数のプログラムがど
のような関連で動作するかを明瞭に把握することができ
るようになる。
ュールの処理の流れを接続し、一つのフローチャートと
して生成し、出力しているため、複数のプログラムがど
のような関連で動作するかを明瞭に把握することができ
るようになる。
【0041】図11はこの発明の第2の実施例を示す構
成図であり、ソースコード中に埋め込んだ「フローチャ
ートに表示する旨」の印を付けた注釈1012をもとに
プログラムの枝葉末節な部分を省略したフローチャート
を自動生成するようにしたものである。なお、図11と
同一部分は同一記号で示している。
成図であり、ソースコード中に埋め込んだ「フローチャ
ートに表示する旨」の印を付けた注釈1012をもとに
プログラムの枝葉末節な部分を省略したフローチャート
を自動生成するようにしたものである。なお、図11と
同一部分は同一記号で示している。
【0042】図において、コンピュータプログラムのソ
ースコード1001には、表示条件設定文1010、表
示条件判定文1011の他に、フローチャートに表示す
る旨の印を付けた注釈1012が埋め込まれている。
ースコード1001には、表示条件設定文1010、表
示条件判定文1011の他に、フローチャートに表示す
る旨の印を付けた注釈1012が埋め込まれている。
【0043】表示対象のモジュールコール文指定手段1
013及び表示対象のマクロコール文指定手段1014
は、それぞれ、概略フローチャートへの表示対象とする
モジュールコール文のモジュール名と概略フローチャー
トへの表示対象とするマクロコール文のマクロ名を指定
するものである。
013及び表示対象のマクロコール文指定手段1014
は、それぞれ、概略フローチャートへの表示対象とする
モジュールコール文のモジュール名と概略フローチャー
トへの表示対象とするマクロコール文のマクロ名を指定
するものである。
【0044】図12は、フローチャートに表示する旨の
印を付けた注釈1012の例を示す。この注釈は、「/
*¥」で始まる注釈であり、この注釈の内容が、そのま
ま概略フローチャートに表示される。
印を付けた注釈1012の例を示す。この注釈は、「/
*¥」で始まる注釈であり、この注釈の内容が、そのま
ま概略フローチャートに表示される。
【0045】この図11の実施例のフローチャート自動
生成システムは、ソースコード中の全ての実行文をフロ
ーチャートに表示せず、表示対象のモジュールコール
文、表示対象のマクロコール文及び、表示する旨の印を
付けた注釈だけをプログラムの骨格構造の中に埋め込ん
でフローチャートに表示するとともに、上記表示対象の
項目を含まない、構文上のブロックは、プログラムの骨
格構造から除外して表示するものである。
生成システムは、ソースコード中の全ての実行文をフロ
ーチャートに表示せず、表示対象のモジュールコール
文、表示対象のマクロコール文及び、表示する旨の印を
付けた注釈だけをプログラムの骨格構造の中に埋め込ん
でフローチャートに表示するとともに、上記表示対象の
項目を含まない、構文上のブロックは、プログラムの骨
格構造から除外して表示するものである。
【0046】この実施例のフローチャート自動生成シス
テムにおいては、PL/Iのソースコード1が図13に
示すような内容であった場合、図14のようなPAD図
が生成されて表示出力される。
テムにおいては、PL/Iのソースコード1が図13に
示すような内容であった場合、図14のようなPAD図
が生成されて表示出力される。
【0047】図15および図16はそのフローチャート
自動生成手順を示すPAD図である。これらのPAD図
は図9,図10のPAD図とほぼ同じで、一部だけが異
なる。従って、異なる部分のみを以下説明すると、図1
5,図16のPAD図の中のフローチャートの表示範囲
決定処理(ステップ1402)においては、図16のス
テップ1411,1412に詳細を示しているように、
表示対象の項目(表示対象のモジュールコール文、表示
対象のマクロコール文及び、表示する旨の印を付けた注
釈)を内部に含まない、構文上のブロックについて、そ
のブロックをフローチャートへの表示対象から除外す
る。この場合、ブロックがネストしており、内側のブロ
ックに表示項目を含むなら、外側のブロックも表示項目
を含むと考える。また、フローチャートの表示処理(ス
テップ1403)においては、ソースコードの表示範囲
の部分について、プログラムの骨格構造を表す結線の中
に、上記表示対象の項目を埋め込んで表示するととも
に、プログラムの表示対象のブロックについて、繰返し
の条件や、分岐の条件をソースコードに記述してある通
りに、フローチャートに表示する。
自動生成手順を示すPAD図である。これらのPAD図
は図9,図10のPAD図とほぼ同じで、一部だけが異
なる。従って、異なる部分のみを以下説明すると、図1
5,図16のPAD図の中のフローチャートの表示範囲
決定処理(ステップ1402)においては、図16のス
テップ1411,1412に詳細を示しているように、
表示対象の項目(表示対象のモジュールコール文、表示
対象のマクロコール文及び、表示する旨の印を付けた注
釈)を内部に含まない、構文上のブロックについて、そ
のブロックをフローチャートへの表示対象から除外す
る。この場合、ブロックがネストしており、内側のブロ
ックに表示項目を含むなら、外側のブロックも表示項目
を含むと考える。また、フローチャートの表示処理(ス
テップ1403)においては、ソースコードの表示範囲
の部分について、プログラムの骨格構造を表す結線の中
に、上記表示対象の項目を埋め込んで表示するととも
に、プログラムの表示対象のブロックについて、繰返し
の条件や、分岐の条件をソースコードに記述してある通
りに、フローチャートに表示する。
【0048】従って、図13の例のソースコード1にあ
っては、表示する旨の印を付けた注釈1012として、
「バッファ面数の計算」という注釈1012A,「カウ
ントアップ」という注釈1012B,「カウントダウ
ン」という注釈1012Cがあり、符号141、142
で示すように表示される。
っては、表示する旨の印を付けた注釈1012として、
「バッファ面数の計算」という注釈1012A,「カウ
ントアップ」という注釈1012B,「カウントダウ
ン」という注釈1012Cがあり、符号141、142
で示すように表示される。
【0049】このように、フローチャートに表示する旨
の印を付けた注釈を埋め込み、さらに特定の事象を引き
起こすコード(例えば、CALL)を認識し、それが存
在する部分のプログラムの骨格構造だけを抽出し、その
フローチャートを生成するようにした場合、大規模なソ
フトウェアの大きな制御の流れを把握することが極めて
容易になる。
の印を付けた注釈を埋め込み、さらに特定の事象を引き
起こすコード(例えば、CALL)を認識し、それが存
在する部分のプログラムの骨格構造だけを抽出し、その
フローチャートを生成するようにした場合、大規模なソ
フトウェアの大きな制御の流れを把握することが極めて
容易になる。
【0050】
【発明の効果】以上のように本発明によれば、フローチ
ャートの出力範囲を制御するための判定文を解析対象の
コンピュータプログラムに予め埋め込んでおき、フロー
チャートの生成に際して設定した変数の値を判定文によ
り判定し、設定した変数に対応しない変数を持つ判定文
が存在する構文上のプログラム部分を除外してフローチ
ャートを生成し、出力するようにしたため、フローチャ
ート出力条件となる変数を所望の解析観点に応じて変え
ることにより、その解析観点に応じたフローチャートを
自動的に生成して出力することができる。これにより、
様々な条件で実行される処理が混在した複雑な流れを持
つコンピュータプログラムであっても、その流れを特定
の実行条件や観点に基づいて容易に把握することが可能
になる。例えば、複雑なソフトウェアの保守において、
変更に対する影響範囲を容易に把握できるフローチャー
トを作成し、解析を進めることできる。
ャートの出力範囲を制御するための判定文を解析対象の
コンピュータプログラムに予め埋め込んでおき、フロー
チャートの生成に際して設定した変数の値を判定文によ
り判定し、設定した変数に対応しない変数を持つ判定文
が存在する構文上のプログラム部分を除外してフローチ
ャートを生成し、出力するようにしたため、フローチャ
ート出力条件となる変数を所望の解析観点に応じて変え
ることにより、その解析観点に応じたフローチャートを
自動的に生成して出力することができる。これにより、
様々な条件で実行される処理が混在した複雑な流れを持
つコンピュータプログラムであっても、その流れを特定
の実行条件や観点に基づいて容易に把握することが可能
になる。例えば、複雑なソフトウェアの保守において、
変更に対する影響範囲を容易に把握できるフローチャー
トを作成し、解析を進めることできる。
【0051】また、フローチャートの出力範囲を制御す
るための判定文を解析対象のプログラムに予め埋め込ん
でおき、さらに他のプログラムモジュールがコールされ
る位置には該他のプログラムモジュールの実効条件とな
る変数を設定する設定文を予め埋め込んでおき、フロー
チャートの生成に際して設定した変数の値を判定文によ
り判定し、設定した変数に対応しない変数を持つ判定文
が存在する構文上のプログラム部分を除いたプログラム
部分と、該プログラム部分に関連して実行されるプログ
ラムモジュールのうち前記設定文によって実行条件とな
る変数が設定されたプログラムモジュールの処理の流れ
とを接続し、一つのフローチャートとして生成し、出力
するようにした場合、複数のプログラムがどのような関
連で動作するかを明瞭に把握することができるようにな
る。
るための判定文を解析対象のプログラムに予め埋め込ん
でおき、さらに他のプログラムモジュールがコールされ
る位置には該他のプログラムモジュールの実効条件とな
る変数を設定する設定文を予め埋め込んでおき、フロー
チャートの生成に際して設定した変数の値を判定文によ
り判定し、設定した変数に対応しない変数を持つ判定文
が存在する構文上のプログラム部分を除いたプログラム
部分と、該プログラム部分に関連して実行されるプログ
ラムモジュールのうち前記設定文によって実行条件とな
る変数が設定されたプログラムモジュールの処理の流れ
とを接続し、一つのフローチャートとして生成し、出力
するようにした場合、複数のプログラムがどのような関
連で動作するかを明瞭に把握することができるようにな
る。
【0052】さらに、フローチャートに表示する旨の印
を付けた注釈を埋め込み、さらに特定の事象を引き起こ
すコード(例えば、CALL)を認識し、それが存在す
る部分のプログラムの骨格構造だけを抽出し、そのフロ
ーチャートを生成するようにした場合、大規模なソフト
ウェアの大きな制御の流れを把握することが極めて容易
になるという効果がある。
を付けた注釈を埋め込み、さらに特定の事象を引き起こ
すコード(例えば、CALL)を認識し、それが存在す
る部分のプログラムの骨格構造だけを抽出し、そのフロ
ーチャートを生成するようにした場合、大規模なソフト
ウェアの大きな制御の流れを把握することが極めて容易
になるという効果がある。
【図1】本発明を適用したフローチャート自動生成シス
テムの一実施例を示す構成図である。
テムの一実施例を示す構成図である。
【図2】表示条件設定文の一例を示す説明図である。
【図3】表示条件判定文の一例を示す説明図である。
【図4】表示条件設定手段の表示条件の指定例を示す説
明図である。
明図である。
【図5】PL/Iのソースコードの一例を示す説明図で
ある。
ある。
【図6】図5のソースコードに対応して生成出力される
PAD図である。
PAD図である。
【図7】モジュールをグループ化した場合に生成出力さ
れるPAD図である。
れるPAD図である。
【図8】表示条件計算手段による計算例の一例を示す説
明図である。
明図である。
【図9】図1のシステムにおけるフローチャート生成手
順を示すPAD図である。
順を示すPAD図である。
【図10】図9におけるフローチャート表示範囲決定処
理の手順を示すPAD図である。
理の手順を示すPAD図である。
【図11】本発明を適用したフローチャート自動生成シ
ステムの他の実施例の構成図である。
ステムの他の実施例の構成図である。
【図12】フローチャートに表示する旨の印を付けた注
釈の一例を示す説明図である。
釈の一例を示す説明図である。
【図13】PL/1のソースコードの一例を示す説明図
である。
である。
【図14】図13のソースコードに対応して生成出力さ
れる概略PAD図である。
れる概略PAD図である。
【図15】図10のシステムにおけるフローチャート生
成手順を示すPAD図である。
成手順を示すPAD図である。
【図16】図15におけるフローチャート表示範囲決定
処理の手順を示すPAD図である。
処理の手順を示すPAD図である。
1…コンピュータプログラムのソースコード、2…表示
範囲決定手段、3…フローチャート表示手段、4…フロ
ーチャート表示領域制御手段、5…フローチャート、6
…表示条件設定手段、7…表示条件計算手段、8…接続
対象モジュール一覧、9…モジュールグループ化情報、
10…表示条件設定文、11…表示条件判定文、101
2…フローチャートに表示する旨の印を付けた注釈、1
013…表示対象モジュールコール文指定手段、101
4…表示対象マクロコール文指定手段。
範囲決定手段、3…フローチャート表示手段、4…フロ
ーチャート表示領域制御手段、5…フローチャート、6
…表示条件設定手段、7…表示条件計算手段、8…接続
対象モジュール一覧、9…モジュールグループ化情報、
10…表示条件設定文、11…表示条件判定文、101
2…フローチャートに表示する旨の印を付けた注釈、1
013…表示対象モジュールコール文指定手段、101
4…表示対象マクロコール文指定手段。
Claims (4)
- 【請求項1】 コンピュータプログラムのソースコード
を解析してフローチャートを自動的に生成して出力する
方法であって、フローチャートの出力範囲を制御するた
めの判定文を解析対象のコンピュータプログラムに予め
埋め込んでおき、フローチャートの生成に際して設定し
た変数の値を判定文により判定し、設定した変数に対応
しない変数を持つ判定文が存在する構文上のプログラム
部分を除外してフローチャートを生成し、出力すること
を特徴とするフローチャート自動生成方法。 - 【請求項2】 コンピュータプログラムのソースコード
を解析してフローチャートを自動的に生成して出力する
方法であって、フローチャートの出力範囲を制御するた
めの判定文を解析対象のプログラムに予め埋め込んでお
き、さらに他のプログラムモジュールがコールされる位
置には該他のプログラムモジュールの実効条件となる変
数を設定する設定文を予め埋め込んでおき、フローチャ
ートの生成に際して設定した変数の値を判定文により判
定し、設定した変数に対応しない変数を持つ判定文が存
在する構文上のプログラム部分を除外したプログラム部
分と、該プログラム部分に関連して実行されるプログラ
ムモジュールのうち前記設定文によって実行条件となる
変数が設定されたプログラムモジュールの処理の流れと
を接続し、一つのフローチャートとして生成し、出力す
ることを特徴とするフローチャート自動生成方法。 - 【請求項3】 前記プログラムモジュールの処理の流れ
を示す部分は、プログラムモジュールのグループ別に区
分けして出力することを特徴とする請求項2記載のフロ
ーチャート自動生成方法。 - 【請求項4】 ソースコード中に、フローチャートに表
示する旨の印を付けた注釈をさらに埋め込んでおき、そ
の注釈と特定の事象を引き起こすコードが存在する部分
のプログラムの骨格構造だけを概略のフローチャートと
して出力することを特徴とする請求項1または2記載の
フローチャート自動生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4055084A JPH05257666A (ja) | 1992-03-13 | 1992-03-13 | フローチャート自動生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4055084A JPH05257666A (ja) | 1992-03-13 | 1992-03-13 | フローチャート自動生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05257666A true JPH05257666A (ja) | 1993-10-08 |
Family
ID=12988856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4055084A Pending JPH05257666A (ja) | 1992-03-13 | 1992-03-13 | フローチャート自動生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05257666A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310784B1 (en) | 2002-01-02 | 2007-12-18 | The Jellyvision Lab, Inc. | Methods for identifying cells in a path in a flowchart and for synchronizing graphical and textual views of a flowchart |
US8127238B2 (en) | 2006-12-14 | 2012-02-28 | The Jellyvision Lab, Inc. | System and method for controlling actions within a programming environment |
US8276058B2 (en) | 2007-02-08 | 2012-09-25 | The Jellyvision Lab, Inc. | Method of automatically populating and generating flowerchart cells |
US8521709B2 (en) | 2006-10-31 | 2013-08-27 | The Jellyvision Lab, Inc. | Methods for preloading media assets |
JP2020091766A (ja) * | 2018-12-07 | 2020-06-11 | 株式会社東芝 | 電子計算機、方法及びプログラム |
-
1992
- 1992-03-13 JP JP4055084A patent/JPH05257666A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310784B1 (en) | 2002-01-02 | 2007-12-18 | The Jellyvision Lab, Inc. | Methods for identifying cells in a path in a flowchart and for synchronizing graphical and textual views of a flowchart |
US8464169B2 (en) | 2002-01-02 | 2013-06-11 | The Jellyvision Lab, Inc. | Methods for identifying cells in a path in a flowchart and for synchronizing graphical and textual views of a flowchart |
US8521709B2 (en) | 2006-10-31 | 2013-08-27 | The Jellyvision Lab, Inc. | Methods for preloading media assets |
US8127238B2 (en) | 2006-12-14 | 2012-02-28 | The Jellyvision Lab, Inc. | System and method for controlling actions within a programming environment |
US8276058B2 (en) | 2007-02-08 | 2012-09-25 | The Jellyvision Lab, Inc. | Method of automatically populating and generating flowerchart cells |
JP2020091766A (ja) * | 2018-12-07 | 2020-06-11 | 株式会社東芝 | 電子計算機、方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2765969B2 (ja) | 図式データ駆動型プログラム開発支援装置 | |
JPH08190587A (ja) | 業務プロセスのシミュレーションシステム | |
JPH08202545A (ja) | ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 | |
US6751523B2 (en) | NC machining simulation apparatus | |
JP2002091523A (ja) | 自動プログラミング・シミュレーション装置 | |
JPH0683598A (ja) | ジョブフロー仕様書自動作成方法 | |
US6339439B1 (en) | Device for modifying appearance of related display planes | |
JPH02232152A (ja) | 生産システムシミュレータ生成装置 | |
JPH05257666A (ja) | フローチャート自動生成方法 | |
JP6719798B1 (ja) | 論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム | |
JPH08292881A (ja) | プログラム影響範囲表示装置 | |
JPH08255253A (ja) | グラフ表示処理装置およびグラフ表示処理方法 | |
JP2004157927A (ja) | 帳票入力用プログラムの生成方式、生成プログラム及び生成方法 | |
JP7338922B2 (ja) | 異種埋め込み型の表形式化動作プロセスの処理および実行方法および装置 | |
JPH03241439A (ja) | テストデータ作成ツール | |
KR100237659B1 (ko) | 도형 편집 장치 및 방법 | |
JPH07219819A (ja) | プログラム評価データ作成方法 | |
CN118586409B (zh) | 一种基于大模型的实时语言翻译数据优化处理方法 | |
JPS61249109A (ja) | 数値制御装置の対話プログラム作成方式 | |
JPH0793144A (ja) | プログラム解析装置 | |
JP2500632B2 (ja) | プログラムパタ―ンカストマイズ方式 | |
JPH03262036A (ja) | 図式プログラムパターン作成方式 | |
CN110648387A (zh) | 一种用于3d场景中的光源与模型之间的链接管理方法和装置 | |
JPH08202741A (ja) | 機能設計支援装置及び機能設計支援方法 | |
JP2512215B2 (ja) | プログラム作成装置 |