(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-08-01
(45)【発行日】2024-08-09
(54)【発明の名称】ソースコードからフローチャート生成用データを生成するためのプログラム及び方法
(51)【国際特許分類】
G06F 8/75 20180101AFI20240802BHJP
【FI】
G06F8/75
(21)【出願番号】P 2024103370
(22)【出願日】2024-06-26
【審査請求日】2024-06-27
【早期審査対象出願】
(73)【特許権者】
【識別番号】523166511
【氏名又は名称】関 敏夫
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】関 敏夫
【審査官】松平 英
(56)【参考文献】
【文献】特開2013-218507(JP,A)
【文献】特開2011-48477(JP,A)
【文献】特開平11-85484(JP,A)
【文献】特開平6-324851(JP,A)
【文献】特開平4-229336(JP,A)
【文献】中国特許出願公開第108228231(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
11/07
11/28-11/36
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
プログラムのソースコードを構成する複数の行の各々に実行順序を示す第1の行番号を付与する処理と、
前記ソースコードを構成する複数の行のうち複数の処理を示す行の各々に関し、当該行を当該行が示す複数の処理の各々に応じた行に分解する処理と、
前記ソースコードを構成する複数の行の各々に関し、当該行の構文の種別である構文種別を特定する処理と、
前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行を構文種別に基づき特定する処理と、
前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の次に実行される行の前記第1の行番号を第2の行番号として特定する処理と、
前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記第1の行番号と、当該行の前記第2の行番号と、当該行の前記ソースコードの記述内容とを示すデータを、フローチャート生成用データとして生成する処理と
を実行させるためのプログラム。
【請求項2】
前記コンピュータに、
前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記ソースコードの記述内容に基づき、フローチャートに表示されるべき記述内容である表示用記述内容を特定する処理
を実行させ、
前記フローチャート生成用データを生成する処理において、前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記ソースコードの記述内容に代えて当該行の前記表示用記述内容を示す前記フローチャート生成用データを生成させる
ための請求項1に記載のプログラム。
【請求項3】
データ処理装置が、
プログラムのソースコードを構成する複数の行の各々に実行順序を示す第1の行番号を付与するステップと、
前記ソースコードを構成する複数の行のうち複数の処理を示す行の各々に関し、当該行を当該行が示す複数の処理の各々に応じた行に分解するステップと、
前記ソースコードを構成する複数の行の各々に関し、当該行の構文の種別である構文種別を特定するステップと、
前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行を構文種別に基づき特定するステップと、
前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の次に実行される行の前記第1の行番号を第2の行番号として特定するステップと、
前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記第1の行番号と、当該行の前記第2の行番号と、当該行の前記ソースコードの記述内容とを示すデータを、フローチャート生成用データとして生成するステップと
を備える方法。
【請求項4】
前記データ処理装置が、前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記ソースコードの記述内容に基づき、フローチャートに表示されるべき記述内容である表示用記述内容を特定するステップを備え、
前記データ処理装置が、前記フローチャート生成用データを生成するステップにおいて、前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記ソースコードの記述内容に代えて当該行の前記表示用記述内容を示す前記フローチャート生成用データを生成する
請求項3に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータにより実行されるプログラムのソースコードに含まれる問題の特定を支援するための技術に関する。
【背景技術】
【0002】
コンピュータにより実行されるプログラム(以下、単に「プログラム」という)のソースコードが、ユーザの意図した処理、すなわち、仕様に従った処理をコンピュータに正しく行わせるように記述されているとは限られない。
【0003】
プログラムが正しく記述されているか否かを確認するための一方法として、ホワイトボックステストと呼ばれるものがある。ホワイトボックステストとは、プログラムの構造、ロジック、制御の流れ等が意図されたとおりに記述されているか否かを検証することにより、プログラムの合否を判定するテストである。
【0004】
例えば、ホワイトボックステストに関する技術を開示している特許文献として、特許文献1がある。特許文献1に開示されている試験方法は、本体コードからテスト対象部分と、その依存部分とを抽出し、これらに基づき差分コードを生成するため、ユーザは、差分コードのみでホワイトボックステストを行うことができる、とされている。また、特許文献1に開示されている試験方法は、テスト結果及びテスト対象部分のコピーのハッシュ値を記憶し、当該ハッシュ値に基づき本体コードとの同一性を担保するため、ユーザは、本体コードの内容でテストが行われたこと、及び本体コードのテストの検証網羅度を確認することができる、とされている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ホワイトボックステストは、プログラムの構造が複雑になる程、検証者の負担が増大する。従って、ホワイトボックステストにおける検証者の負担の軽減、もしくは、ホワイトボックステストよりも負担の少ない検証手段が求められている。
【0007】
上記を鑑み、本発明は、プログラムの検証者による、ソースコードに含まれる問題の特定を支援する技術を提供する。
【課題を解決するための手段】
【0008】
本発明は、コンピュータに、プログラムのソースコードを構成する複数の行の各々に実行順序を示す第1の行番号を付与する処理と、前記ソースコードを構成する複数の行のうち複数の処理を示す行の各々に関し、当該行を当該行が示す複数の処理の各々に応じた行に分解する処理と、前記ソースコードを構成する複数の行の各々に関し、当該行の構文の種別である構文種別を特定する処理と、前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行を構文種別に基づき特定する処理と、前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の次に実行される行の前記第1の行番号を第2の行番号として特定する処理と、前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記第1の行番号と、当該行の前記第2の行番号と、当該行の前記ソースコードの記述内容とを示すデータを、フローチャート生成用データとして生成する処理とを実行させるためのプログラムを提供する。
【0009】
また、本発明は、上述のプログラムであって、前記コンピュータに、前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記ソースコードの記述内容に基づき、フローチャートに表示されるべき記述内容である表示用記述内容を特定する処理を実行させ、前記フローチャート生成用データを生成する処理において、前記ソースコードを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、当該行の前記ソースコードの記述内容に代えて当該行の前記表示用記述内容を示す前記フローチャート生成用データを生成させるためのプログラムを提供する。
【発明の効果】
【0010】
本発明によれば、プログラムの検証者は、コンピュータがソースコードから生成するフローチャート生成用データを汎用的な可視化プログラムを実行中のコンピュータに入力することで表示されるフローチャートを見ることによって、ソースコードに含まれる問題を特定することができる。
【図面の簡単な説明】
【0011】
【
図1】一実施形態に係るプログラムを実行するコンピュータの構成を示した図。
【
図2】一実施形態に係るプログラムと汎用的なグラフ生成プログラムの関係を示した図。
【
図3A】一実施形態に係るプログラムに従い処理されるソースコード(前半部分)を例示した図。
【
図3B】一実施形態に係るプログラムに従い処理されるソースコード(後半部分)を例示した図。
【
図4A】一実施形態に係るプログラムに従いソースコードに行番号が付与された状態(後半部分)を示した図。
【
図4B】一実施形態に係るプログラムに従いソースコードに行番号が付与された状態(前半部分)を示した図。
【
図5A】一実施形態に係るプログラムに従いソースコードに含まれる一部の行が複数の行に分解された状態(前半部分)を示した図。
【
図5B】一実施形態に係るプログラムに従いソースコードに含まれる一部の行が複数の行に分解された状態(後半部分)を示した図。
【
図6A】一実施形態に係るプログラムに従いソースコードに構文種別が付与された状態(前半部分)を示した図。
【
図6B】一実施形態に係るプログラムに従いソースコードに構文種別が付与された状態(後半部分)を示した図。
【
図7A】一実施形態に係るプログラムに従いソースコードに、フローチャートに表示されるべき行であるか否かのフラグが付与された状態(前半部分)を示した図。
【
図7B】一実施形態に係るプログラムに従いソースコードに、フローチャートに表示されるべき行であるか否かのフラグが付与された状態(後半部分)を示した図。
【
図8A】一実施形態に係るプログラムに従いソースコードに次実行行番号が付与された状態(前半部分)を示した図。
【
図8B】一実施形態に係るプログラムに従いソースコードに次実行行番号が付与された状態(後半部分)を示した図。
【
図9A】一実施形態に係るプログラムに従いソースコードに対し表示用記述内容が付与された状態(前半部分)を示した図。
【
図9B】一実施形態に係るプログラムに従いソースコードに対し表示用記述内容が付与された状態(後半部分)を示した図。
【
図10】一実施形態に係るプログラムに従い生成されたフローチャート生成用データを用いてグラフ生成プログラムにより生成されたフローチャートを示した図。
【
図11】一実施形態に係るプログラムに従い表示用記述内容等が付与された他のソースコードを例示した図。
【
図12】
図11のデータに含まれるフローチャート生成用データを用いて、グラフ生成プログラムが生成したフローチャートを示した図。
【
図13A】検証者により修正の加えられたソースコード(前半部分)を例示した図。
【
図13B】検証者により修正の加えられたソースコード(後半部分)を例示した図。
【
図14】
図13Aおよび
図13Bのデータに含まれるフローチャート生成用データを用いてグラフ生成プログラムが生成したフローチャートを示した図。
【
図15】一変形例に係るプログラムに従い生成されたフローチャート生成用データを用いてグラフ生成プログラムが生成するフローチャートを示した図。
【発明を実施するための形態】
【0012】
[実施形態]
以下に、本発明の一実施形態にかかるプログラムPに従いコンピュータが行う処理を説明する。
【0013】
図1は、プログラムPを実行するコンピュータ1の構成を示した図である。コンピュータ1は、プログラムに従いデータ処理を行うプロセッサ11と、プログラムを含む各種データを持続的に記憶するメモリ12を備えるデータ処理装置である。コンピュータ1のメモリ12には、プログラムPとプログラムQが記憶されている。
【0014】
図2は、プログラムPとプログラムQの関係を示した図である。プログラムPは、ソースコードからフローチャート生成用データを生成する処理をコンピュータ1に実行させるためのプログラムである。プログラムQは、プログラムPに従いコンピュータ1が生成したフローチャート生成用データを用いてフローチャートを生成する処理をコンピュータ1に実行させるためのプログラムである。プログラムQに従いコンピュータ1が生成したフローチャートは、ディスプレイに出力されて表示されたり、プリンタに出力されて印刷されたりすることで、ユーザ(検証者)に利用される。
【0015】
なお、プログラムQは汎用的なグラフ生成プログラムであるため、本願においてプログラムQに従いコンピュータ1が実行する処理の詳細な説明は省略する。
【0016】
以下、便宜的に、プログラムに従いコンピュータが処理を行う場合、「プログラムが処理を行う」と記載する。例えば、コンピュータ1がプログラムPに従い処理Aを行う場合、「プログラムPが処理Aを行う」と記載する。
【0017】
【0018】
ソースコードSは、例えば、コンピュータ1に入力され、メモリ12に記憶される。
【0019】
プログラムPは、まず、ソースコードSを構成する複数の行の各々に、実行順序を示す行番号(第1の行番号)を付与する。
図4Aおよび
図4Bは、ソースコードS1に対し、プログラムPにより行番号が付与された状態を示している。
【0020】
続いて、プログラムPは、ソースコードSを構成する複数の行のうち複数の処理を示す行の各々に関し、その行を、その行が示す複数の処理の各々に応じた行に分解する。
図5Aおよび
図5Bは、プログラムPが、ソースコードS1のうち、行番号が33の行「PERFORM MAIN-RTN UNTIL EMPNO = 999.」が複数の処理を示す行であると特定し、その行を3つの行「PERFORM MAIN-RTN UNTIL EMPNO = 999.」「PERFORM MAIN-RTN」「END-PERFORM」に分解した状態を示している。以下、
図3Aと
図3Bを
図3と総称する。なお、分解後の行を互いに区別するために、プログラムPは、例えば、これらの行の行番号に、33(1)のように、括弧の付された枝番号を追加する。
【0021】
プログラムPは、上記の行の分解の処理を実行するために、例えば、以下のようなデータ(以下、「行分解規則データ」という)を有している。なお、「(A)」、「(B)」には任意の文字列が入る。
【0022】
(分解前)「PERFORM (A) UNTIL (B)」
(分解後)「PERFORM (A) UNTIL (B)」、「PERFORM (A)」、「END-PERFORM」
【0023】
なお、行分解規則データは、ソースコードの記述に用いられる言語毎に準備されており、プログラムPは処理するソースコードの言語に応じた行分解規則データに従い、上述の行の分解の処理を行う。
【0024】
続いて、プログラムPは、ソースコードSを構成する複数の行(分解後)の各々に関し、その行の構文の種別である構文種別を特定する。
図6Aおよび
図6Bは、ソースコードS1に対し、プログラムPにより特定された構文種別が付与された状態を示している。
【0025】
プログラムPは、上記の構文種別の特定の処理を実行するために、例えば、以下のようなデータ(以下、「構文種別規則データ」という)を有している。なお、「(A)」には任意の文字列が入る。
【0026】
(ソースコード)「(A) SECTION.」
(構文種別)「セクション開始」
【0027】
なお、構文種別規則データは、ソースコードの記述に用いられる言語毎に準備されており、プログラムPは処理するソースコードの言語に応じた構文種別規則データに従い、上述の構文種別の特定の処理を行う。
【0028】
続いて、プログラムPは、ソースコードSを構成する複数の行のうちフローチャートに表示されるべき行を、構文種別に基づき特定する。
図7Aおよび
図7Bは、ソースコードS1に対し、プログラムPにより特定された、フローチャートに表示されるべき行であるか否かのフラグ(Yes又はNo)が付与された状態を示している。
【0029】
プログラムPは、上記の表示されるべき行の特定の処理を実行するために、例えば、以下のようなデータ(以下、「表示行規則データ」という)を有している。
【0030】
(構文種別)「注釈文」
(表示行)「No」
【0031】
なお、表示行規則データは、ソースコードの記述に用いられる言語毎に準備されており、プログラムPは処理するソースコードの言語に応じた表示行規則データに従い、上述の表示されるべき行の特定の処理を行う。
【0032】
続いて、プログラムPは、ソースコードSを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、その行の次に実行される行の行番号(第1の行番号)を次実行行番号(第2の行番号)として特定する。
図8Aおよび
図8Bは、ソースコードS1に対し、プログラムPにより特定された、次実行行番号が付与された状態を示している。
【0033】
通常、フローチャートに表示されるべき行の次実行行番号は、フローチャートに表示されるべき他の行の行番号(第1の行番号)うち、その行の行番号(第1の行番号)より大きく、最も近い行番号である。例えば、行番号29「MAIN SECTION.」の次実行行番号は、フローチャートに表示されるべき他の行の行番号(31、32、33(1)、33(2)、33(3)、34、35、37)のうち、29より大きく、最も近い行番号31である。
【0034】
ただし、構文種別が条件文等の行に関しては、その構文に応じた規則に従い、上記の規則とは異なる次実行行番号が特定される。また、条件により処理が分岐する場合、その行の次実行行番号としては、複数の場合の各々に応じた次実行行番号が特定される。
【0035】
例えば、行番号33(3)「END-PERFORM」に対しては、次実行行番号として、「終了条件偽:33(1)、終了条件真:34」が特定され、付与されている。
【0036】
プログラムPは、上記の次実行行番号の特定の処理を実行するために、例えば、以下のようなデータ(以下、「次実行行番号規則データ」という)を有している。なお、「(A)」、「(B)」には任意の文字列が入る。
【0037】
(ソースコード)「END-PERFORM」
(次実行行番号)「終了条件偽:直前のPERFORM (A) UNTIL (B)の行番号、終了条件真:直後の表示行の行番号」
【0038】
なお、次実行行番号規則データは、ソースコードの記述に用いられる言語毎に準備されており、プログラムPは処理するソースコードの言語に応じた次実行行番号規則データに従い、上述の次実行行番号の特定の処理を行う。
【0039】
続いて、プログラムPは、ソースコードSを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、その行のソースコードの記述内容に基づき、フローチャートに表示されるべき記述内容である表示用記述内容を特定する。
図9Aおよび
図9Bは、ソースコードS1に対し、プログラムPにより特定された、表示用記述内容が付与された状態を示している。
【0040】
プログラムPは、上記の表示用記述内容の特定の処理を実行するために、例えば、以下のようなデータ(以下、「表示用記述内容規則データ」という)を有している。なお、「(A)」には任意の文字列が入る。
【0041】
(ソースコード)「DISPLAY "(A)".」
(表示用記述内容)「(A)を表示する」
【0042】
なお、表示用記述内容規則データは、ソースコードの記述に用いられる言語毎にデフォルトのデータが準備されており、プログラムPは処理するソースコードの言語に応じた表示用記述内容規則データに従い、上述の表示用記述内容の特定の処理を行う。また、表示用記述内容規則データとして、デフォルトのデータに対しユーザによる修正が行われたデータが用いられてもよい。
【0043】
続いて、プログラムPは、ソースコードSを構成する複数の行のうちフローチャートに表示されるべき行の各々に関し、その行の行番号(第1の行番号)と、その行の次実行行番号(第2の行番号)と、その行の表示用記述内容とを示すデータを、フローチャート生成用データとして生成する。
【0044】
プログラムPは、生成したフローチャート生成用データをプログラムQに引き渡す。なお、プログラムPからプログラムQへのフローチャート生成用データの引き渡しの方法は、プログラムPが直接、フローチャート生成用データをプログラムQに引き渡す方法、プログラムPがメモリ12にフローチャート生成用データを記憶し、プログラムQがそのフローチャート生成用データを読み出す方法等のいずれが採用されてもよい。
【0045】
また、プログラムPとプログラムQが異なるコンピュータにより実行されてもよい。その場合、フローチャート生成用データは、例えば、プログラムPを実行するコンピュータからプログラムQを実行するプログラムにネットワークを介して送信されてもよいし、プログラムPを実行するコンピュータがメモリカード等の記録媒体に記録したフローチャート生成用データを、プログラムQを実行するコンピュータがその記録媒体から読み取ってもよい。
【0046】
図10は、ソースコードS1に関しプログラムPが生成したフローチャート生成用データを用いて、プログラムQにより生成されたフローチャートを示した図である。プログラムQは、生成したフローチャートをディスプレイに出力し、ディスプレイに表示させたり、プリンタに出力し、プリンタに印刷させたりする。
【0047】
プログラムの検証者は、
図10に例示されるような、プログラムQにより生成されるフローチャートを見ることによって、プログラムに含まれる問題、例えば、プログラムに従い行われる処理と仕様との相異、プログラムの使用者の意図せぬ結果をもたらす危険性のある処理フロー等を容易に発見できる。
【0048】
図11は、ソースコードSの、ソースコードS1とは異なる部分であるソースコードS2に関し、プログラムPによる上述した処理(行番号の付与から表示用記述内容の特定まで)が完了した状態を示した図である。
図12は、
図11のデータに含まれるフローチャート生成用データを用いて、プログラムQが生成したフローチャートを示した図である。
【0049】
例えば、検証者は、
図12のフローチャートを見て、「75行目 従業員ファイルを削除する」の処理の後、すぐさま「76行目 削除しましたを表示する」が実行される点に問題がある、と気付いたとする。なぜなら、通常、ファイルの削除のような重要な処理に関しては、ユーザの誤操作による削除を防止するために、ファイルを削除する前にユーザに対し確認を促す処理が実行されるべきであるが、
図12のフローチャートによれば、ソースコードS2にはその処理に関する行がないためである。
【0050】
図13Aおよび
図13Bは、上記の問題に気付いた検証者が修正を加えた後のソースコードS2を示した図である。なお、
図11のソースコードS2(修正前)と、
図13のソースコードS2(修正後)は、ソースコードS内のソースコードS2より前の部分における修正により、行番号がずれている。
図11の行番号75の行が、検証者により、
図13の行番号78~80(2)に修正されている。
【0051】
図14は、
図13のデータに含まれるフローチャート生成用データを用いてプログラムQが生成したフローチャートを示した図である。
図14のフローチャートのうち枠で囲まれている部分が、検証者のソースコードの修正に伴い、
図12のフローチャートから変化した部分である。
【0052】
上述したプログラムPによれば、プログラムの検証者は、ソースプログラムから自動的に生成されるフローチャートを見て、プログラムに含まれる問題を容易に探し出すことができる。
【0053】
[変形例]
上述した実施形態は本発明の一実施形態であって、本発明の技術的思想の範囲内において様々に変形され得る。以下にそれらの変形の例を示す。なお、以下の変形例の2以上が適宜、組み合わされてもよい。
【0054】
(1)上述した実施形態においては、プログラムPは、処理対象のソースコードの記述内容に基づき、フローチャートに表示されるべき記述内容である表示用記述内容を特定する。そして、プログラムPは、処理対象のソースコードの複数の行のうち、フローチャートに表示されるべき行の各々に関し、その行の行番号(第1の行番号)と、その行の次実行行番号(第2の行番号)と、その行の表示用記述内容とを示すデータを、フローチャート生成用データとして生成する。
【0055】
プログラムPが、表示用記述内容に代えて、ソースコードの記述を示すデータを含むフローチャート生成用データを生成してもよい。すなわち、プログラムPが、処理対象のソースコードの複数の行のうち、フローチャートに表示されるべき行の各々に関し、その行の行番号(第1の行番号)と、その行の次実行行番号(第2の行番号)と、その行のソースコードの記述内容とを示すデータを、フローチャート生成用データとして生成してもよい。なお、その場合、プログラムPは、上述した表示用記述内容を特定する処理は行わなくてよい。
【0056】
図15は、この変形例において、プログラムPがソースコードS1に関し
図8の情報を用いて生成するフローチャート生成用データを用いて、プログラムQが生成するフローチャートを示した図である。
【0057】
上述した実施形態において生成されるフローチャートには、ソースコードの記述より自然言語に近い表現で各ステップにおいてコンピュータが行う処理が記述される。そのため、ソースコードの記述に用いられる言語に精通していない人であっても、そのプログラムに含まれる問題を容易に特定できる、というメリットがある。
【0058】
一方、この変形例において生成されるフローチャートには、ソースコードの記述内容がそのまま表示される。従って、ソースコードの記述に用いられる言語に精通している人にとっては、この変形例において生成されるフローチャートを見ても、実施形態において生成されるフローチャートを見る場合と同様に、プログラムに含まれる問題を容易に特定できる。
【0059】
(2)上述の実施形態においては、検証者の使用する自然言語が日本語である場合が想定されている。従って、表示用記述内容規則データに従いプログラムPが特定する表示用記述内容には日本語が用いられる。検証者の使用する自然言語に応じて、プログラムPが使用する表示用記述内容規則データが変更されていよい。例えば、検証者が、自分の使用する自然言語をプログラムPを実行しているコンピュータ1に入力し、プログラムPがその自然言語に応じた表示用記述内容規則データを用いて、表示用記述内容の特定を行ってもよい。
【0060】
(3)本発明は、上述したプログラムPにより例示されるプログラムに加え、プログラムPに例示される本発明に係るプログラムに従いデータ処理装置が行う各処理のステップを備える方法を提供する。
【0061】
また、本発明は、プログラムPにより例示される本発明に係るプログラムを持続的に記憶するメモリと当該プログラムに従い処理を行うプロセッサとを備えるデータ処理装置、プログラムPに例示される本発明に係るプログラムを記録している記録媒体、を提供する。
【符号の説明】
【0062】
1…コンピュータ、11…プロセッサ、12…メモリ。
【要約】
【課題】プログラムの検証者による、ソースコードに含まれる問題の特定を支援する技術を提供する。
【解決手段】コンピュータ1は、プログラムPに従い、ソースコードからフローチャート生成用データを生成する。また、コンピュータ1は、プログラムQに従い、フローチャート生成用データを用いて、ソースコードに従いコンピュータが行う処理のフローを示すフローチャートを生成する。プログラムQは汎用的なグラフ生成プログラムである。プログラムPに従い、コンピュータ1は、ソースコードの各行に実行順序を示す行番号を付与し、複数の処理を示す行をそれら複数の処理の各々に応じた行に分解し、各行の構文種別を特定し、フローチャートに表示されるべき行を構文種別に基づき特定し、フローチャートに表示されるべき行に次に実行される行の行番号を特定し、フローチャートに表示されるべき行のソースコードの記述内容に基づき表示用記述内容を特定する。
【選択図】
図2