(57)【要約】      （修正有）【課題】関数と格納手段との関係を容易に把握する手段を提供する。【解決手段】ドキュメント生成装置は、１以上のソースプログラムから関数を識別する２以上の関数識別子を取得する関数識別子取得部と、情報が格納される格納手段を識別する１以上の格納手段識別子であり、１以上の各関数識別子で識別される１以上の各関数で使用されている格納手段の１以上の格納手段識別子を、関数毎にソースプログラムから取得する格納手段識別子取得部と、２以上の各関数識別子で識別される関数の情報である関数情報を第一の軸を構成する項目とし、２以上の各格納手段識別子で識別される格納手段の情報である格納手段情報を第二の軸を構成する項目とし、２以上の各関数識別子ごとに、関数内で使用されている１または２以上の各格納手段が視覚的に認識可能な表を構成する表構成部と、表を出力する表出力部とを具備する。【選択図】図１
2018181127.tif 000002
【特許請求の範囲】
【請求項１】
１以上のソースプログラムが格納されるプログラム格納部と、
前記１以上のソースプログラムから関数を識別する２以上の関数識別子を取得する関数識別子取得部と、
情報が格納される格納手段を識別する１以上の格納手段識別子であり、前記１以上の各関数識別子で識別される１以上の各関数で使用されている格納手段の１以上の格納手段識別子を、関数毎に前記ソースプログラムから取得する格納手段識別子取得部と、
前記関数識別子取得部が取得した２以上の各関数識別子で識別される関数の情報である関数情報を第一の軸を構成する項目とし、前記格納手段識別子取得部が取得した２以上の各格納手段識別子で識別される格納手段の情報である格納手段情報を第二の軸を構成する項目とし、２以上の各関数識別子ごとに、関数内で使用されている１または２以上の各格納手段が視覚的に認識可能な表を構成する表構成部と、
前記表を出力する表出力部とを具備するドキュメント生成装置。
【請求項２】
格納手段識別子を有する２以上の格納手段情報が格納される格納手段情報格納部をさらに具備し、
前記格納手段識別子取得部は、
前記格納手段情報格納部に格納されている２以上の格納手段識別子を用いて、１以上の格納手段識別子を、関数毎に前記ソースプログラムから取得する請求項１記載のドキュメント生成装置。
【請求項３】
前記格納手段情報は、
格納手段識別子と、当該格納手段識別子で識別される格納手段を説明する格納手段説明情報とを有し、
前記表構成部は、
前記第二の軸を構成する項目として、格納手段識別子と対になる格納手段説明情報を有する表を構成する請求項１または請求項２記載のドキュメント生成装置。
【請求項４】
前記ソースプログラムに関連するドキュメントであり、前記ソースプログラムに含まれる格納手段の格納手段識別子と、当該格納手段を説明する格納手段説明情報とを、対応付けて有するドキュメントが格納されるドキュメント格納部と、
前記ドキュメントから、格納手段識別子と、当該格納手段識別子と対になる格納手段説明情報とを取得し、当該格納手段識別子と当該格納手段説明情報とを有する格納手段情報を前記格納手段情報格納部に蓄積する格納手段情報蓄積部とをさらに具備する請求項３記載のドキュメント生成装置。
【請求項５】
関数識別子と当該関数識別子で識別される関数を説明する文字列である関数説明情報とを有する１以上の関数情報が格納される関数情報格納部をさらに具備し、
前記表構成部は、
前記第一の軸を構成する項目として、関数識別子と対になる関数説明情報を有する表を構成する請求項１から請求項４いずれか一項に記載のドキュメント生成装置。
【請求項６】
前記ソースプログラムに関連するドキュメントであり、前記ソースプログラムに含まれる関数の関数識別子と、当該関数を説明する関数説明情報とを、対応付けて有するドキュメントが格納されるドキュメント格納部と、
前記ドキュメントから、関数識別子と、当該関数識別子と対になる関数説明情報とを取得し、当該関数識別子と当該関数説明情報とを有する関数情報を前記関数情報格納部に蓄積する関数情報蓄積部とをさらに具備する請求項４記載のドキュメント生成装置。
【請求項７】
前記格納手段識別子取得部が取得した格納手段識別子で識別される格納手段に対する、対応する関数の中での処理を識別する１以上の処理識別子を取得する処理識別子取得部と、
前記表構成部は、
前記１以上の処理識別子が視覚的に識別可能なように、表を構成するセルに情報が書き込まれた表を構成する請求項１から請求項６いずれか一項に記載のドキュメント生成装置。
【請求項８】
前記処理識別子取得部が取得する１以上の処理識別子は、格納手段に対する読み出しを示す読み出し情報、格納手段に対する書き込みを示す書き込み情報、格納手段の更新を示す更新情報、格納手段の削除を示す削除情報のいずれかである請求項７記載のドキュメント生成装置。
【請求項９】
前記格納手段は、ファイルまたはデータベースまたはテーブルである請求項１から請求項８いずれか一項に記載のドキュメント生成装置。
【請求項１０】
前記ソースプログラムは、マイグレーションの対象のソースプログラムである請求項１から請求項９いずれか一項に記載のドキュメント生成装置。
【請求項１１】
記録媒体は、
１以上のソースプログラムが格納されるプログラム格納部を具備し、
関数識別子取得部、格納手段識別子取得部、表構成部、表出力部
前記関数識別子取得部が、前記１以上のソースプログラムから関数を識別する２以上の関数識別子を取得する関数識別子取得ステップと、
前記格納手段識別子取得部が、情報が格納される格納手段を識別する１以上の格納手段識別子であり、前記１以上の各関数識別子で識別される１以上の各関数で使用されている格納手段の１以上の格納手段識別子を、関数毎に前記ソースプログラムから取得する格納手段識別子取得ステップと、
前記表構成部が、前記関数識別子取得ステップで取得された２以上の各関数識別子で識別される関数の情報である関数情報を第一の軸を構成する項目とし、前記格納手段識別子取得ステップで取得された２以上の各格納手段識別子で識別される格納手段の情報である格納手段情報を第二の軸を構成する項目とし、２以上の各関数識別子ごとに、関数内で使用されている１または２以上の各格納手段が視覚的に認識可能な表を構成する表構成ステップと、
前記表出力部が、前記表を蓄積する表出力ステップとを具備するドキュメントの生産方法。
【請求項１２】
コンピュータがアクセス可能な記録媒体は、
１以上のソースプログラムが格納されるプログラム格納部を具備し、
コンピュータを、
前記１以上のソースプログラムから関数を識別する２以上の関数識別子を取得する関数識別子取得部と、
情報が格納される格納手段を識別する１以上の格納手段識別子であり、前記１以上の各関数識別子で識別される１以上の各関数で使用されている格納手段の１以上の格納手段識別子を、関数毎に前記ソースプログラムから取得する格納手段識別子取得部と、
前記関数識別子取得部が取得した２以上の各関数識別子で識別される関数の情報である関数情報を第一の軸を構成する項目とし、前記格納手段識別子取得部が取得した２以上の各格納手段識別子で識別される格納手段の情報である格納手段情報を第二の軸を構成する項目とし、２以上の各関数識別子ごとに、関数内で使用されている１または２以上の各格納手段が視覚的に認識可能な表を構成する表構成部と、
前記表を出力する表出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースプログラムからドキュメントを生成するドキュメント生成装置等に関するものである。
【背景技術】
【０００２】
従来、複数のモジュールを含むソースファイルから各々のモジュールに分けてドキュメントを自動生成するドキュメント自動生成システムが存在した。本ドキュメント自動生成システムは、プログラミング言語で記述されているソースファイルから、処理フロー仕様書、テーブル定義仕様書、モジュール定義仕様書の各ドキュメントファイルを自動生成する。このドキュメント自動生成システムには、ドキュメント生成処理部が備えられ、ソースファイルが複数モジュールから構成されている場合に、各モジュール毎に処理フロー仕様書ファイルを分割して、各ドキュメントファイルを作成する。（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−８１００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来、関数と格納手段との関係を容易に把握できるようなドキュメントが生成できなかった。なお、格納手段は、情報が格納される対象であり、例えば、データベース、テーブル、ファイル等である。
【課題を解決するための手段】
【０００５】
本第一の発明のドキュメント生成装置は、１以上のソースプログラムが格納されるプログラム格納部と、１以上のソースプログラムから関数を識別する２以上の関数識別子を取得する関数識別子取得部と、情報が格納される格納手段を識別する１以上の格納手段識別子であり、１以上の各関数識別子で識別される１以上の各関数で使用されている格納手段の１以上の格納手段識別子を、関数毎にソースプログラムから取得する格納手段識別子取得部と、関数識別子取得部が取得した２以上の各関数識別子で識別される関数の情報である関数情報を第一の軸を構成する項目とし、格納手段識別子取得部が取得した２以上の各格納手段識別子で識別される格納手段の情報である格納手段情報を第二の軸を構成する項目とし、２以上の各関数識別子ごとに、関数内で使用されている１または２以上の各格納手段が視覚的に認識可能な表を構成する表構成部と、表を出力する表出力部とを具備するドキュメント生成装置である。
【０００６】
かかる構成により、関数と格納手段との関係を容易に把握できる表を生成できる。
【０００７】
また、本第二の発明のドキュメント生成装置は、第一の発明に対して、格納手段識別子を有する２以上の格納手段情報が格納される格納手段情報格納部をさらに具備し、格納手段識別子取得部は、格納手段情報格納部に格納されている２以上の格納手段識別子を用いて、１以上の格納手段識別子を、関数毎にソースプログラムから取得するドキュメント生成装置である。
【０００８】
かかる構成により、関数と格納手段との関係を容易に把握できる表を生成できる。
【０００９】
また、本第三の発明のドキュメント生成装置は、第一または第二の発明に対して、格納手段情報は、格納手段識別子と、格納手段識別子で識別される格納手段を説明する格納手段説明情報とを有し、表構成部は、第二の軸を構成する項目として、格納手段識別子と対になる格納手段説明情報を有する表を構成するドキュメント生成装置である。
【００１０】
かかる構成により、関数と格納手段との関係をさらに容易に把握できる表を生成できる。
【００１１】
また、本第四の発明のドキュメント生成装置は、第三の発明に対して、ソースプログラムに関連するドキュメントであり、ソースプログラムに含まれる格納手段の格納手段識別子と、格納手段を説明する格納手段説明情報とを、対応付けて有するドキュメントが格納されるドキュメント格納部と、ドキュメントから、格納手段識別子と、格納手段識別子と対になる格納手段説明情報とを取得し、格納手段識別子と格納手段説明情報とを有する格納手段情報を格納手段情報格納部に蓄積する格納手段情報蓄積部とをさらに具備するドキュメント生成装置である。
【００１２】
かかる構成により、関数と格納手段との関係をさらに容易に把握できる表を生成するための環境が容易に構築できる。
【００１３】
また、本第五の発明のドキュメント生成装置は、第一から第四いずれか１つの発明に対して、関数識別子と関数識別子で識別される関数を説明する文字列である関数説明情報とを有する１以上の関数情報が格納される関数情報格納部をさらに具備し、表構成部は、第一の軸を構成する項目として、関数識別子と対になる関数説明情報を有する表を構成するドキュメント生成装置である。
【００１４】
かかる構成により、関数と格納手段との関係をさらに容易に把握できる表を生成できる。
【００１５】
また、本第六の発明のドキュメント生成装置は、第四の発明に対して、ソースプログラムに関連するドキュメントであり、ソースプログラムに含まれる関数の関数識別子と、関数を説明する関数説明情報とを、対応付けて有するドキュメントが格納されるドキュメント格納部と、ドキュメントから、関数識別子と、関数識別子と対になる関数説明情報とを取得し、関数識別子と関数説明情報とを有する関数情報を関数情報格納部に蓄積する関数情報蓄積部とをさらに具備するドキュメント生成装置である。
【００１６】
かかる構成により、関数と格納手段との関係をさらに容易に把握できる表を生成するための環境が容易に構築できる。
【００１７】
また、本第七の発明のドキュメント生成装置は、第一から第六いずれか１つの発明に対して、格納手段識別子取得部が取得した格納手段識別子で識別される格納手段に対する、対応する関数の中での処理を識別する１以上の処理識別子を取得する処理識別子取得部と、表構成部は、１以上の処理識別子が視覚的に識別可能なように、表を構成するセルに情報が書き込まれた表を構成するドキュメント生成装置である。
【００１８】
かかる構成により、関数内で、格納手段に対して行われている処理をも容易に把握できる表を生成できる。
【００１９】
また、本第八の発明のドキュメント生成装置は、第七の発明に対して、処理識別子取得部が取得する１以上の処理識別子は、格納手段に対する読み出しを示す読み出し情報、格納手段に対する書き込みを示す書き込み情報、格納手段の更新を示す更新情報、格納手段の削除を示す削除情報のいずれかであるドキュメント生成装置である。
【００２０】
かかる構成により、関数内で、格納手段に対して行われている処理をも容易に把握できる表を生成できる。
【００２１】
また、本第九の発明のドキュメント生成装置は、第一から第八いずれか１つの発明に対して、格納手段は、ファイルまたはデータベースまたはテーブルであるドキュメント生成装置である。
【００２２】
かかる構成により、マイグレーション対象のソースプログラムの関数と格納手段との関係を容易に把握できる表を生成できる。
【００２３】
また、本第十の発明のドキュメント生成装置は、第一から第九いずれか１つの発明に対して、ソースプログラムは、マイグレーションの対象のソースプログラムであるドキュメント生成装置である。
【００２４】
かかる構成により、マイグレーション対象のソースプログラムの関数と格納手段との関係を容易に把握できる表を生成できる。
【発明の効果】
【００２５】
本発明によるドキュメント生成装置によれば、関数と格納手段との関係を容易に把握できるドキュメントを生成できる。
【図面の簡単な説明】
【００２６】
【図１】実施の形態１におけるドキュメント生成装置Ａのブロック図
【図２】同ドキュメント生成装置Ａの動作の一例について説明するフローチャート
【図３】同関数内処理の詳細の一例について説明するフローチャート
【図４】同表構成処理の一例について説明するフローチャート
【図５】同関数情報蓄積処理の一例について説明するフローチャート
【図６】同格納手段情報蓄積処理の一例について説明するフローチャート
【図７】同ソースプログラムの例を示す図
【図８】同関数情報管理表を示す図
【図９】同格納手段情報管理表を示す図
【図１０】同処理識別子管理表を示す図
【図１１】同表構成部２４が構成する表の例を示す図
【図１２】同出力される表の例を示す図
【図１３】同コンピュータシステムの概観図
【図１４】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００２７】
以下、ドキュメント生成装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００２８】
（実施の形態１）
本実施の形態において、関数情報と格納手段情報との対応表をプログラムから生成するドキュメント生成装置について説明する。
【００２９】
また、本実施の形態において格納手段の自然言語（例えば、日本語など）による説明である格納手段説明情報が、表の項目として使用される対応表を生成するドキュメント生成装置について説明する。
【００３０】
また、本実施の形態において、格納手段識別子と格納手段説明情報との対応辞書をドキュメントから自動生成するドキュメント生成装置について説明する。
【００３１】
また、本実施の形態において、関数情報の自然言語（例えば、日本語など）による説明である関数説明情報が、表の項目として使用される対応表を生成するドキュメント生成装置について説明する。
【００３２】
また、本実施の形態において、関数識別子と関数説明情報との対応辞書をドキュメントから自動生成するドキュメント生成装置について説明する。
【００３３】
さらに、本実施の形態において、格納手段に対する処理（例えば、読み出し、更新、追記、削除など）を識別する処理識別子をも有する表をプログラムから生成するドキュメント生成装置について説明する。
【００３４】
図１は、本実施の形態におけるドキュメント生成装置Ａのブロック図である。ドキュメント生成装置Ａは、格納部１、処理部２、出力部３、および受付部４を備える。
【００３５】
格納部１は、プログラム格納部１１、ドキュメント格納部１２、関数情報格納部１３、および格納手段情報格納部１４を備える。処理部２は、関数識別子取得部２１、格納手段識別子取得部２２、処理識別子取得部２３、表構成部２４、関数情報蓄積部２５、および格納手段情報蓄積部２６を備える。出力部３は、表出力部３１を備える。
【００３６】
格納部１は、各種の情報を格納し得る。各種の情報とは、例えば、プログラム、キュメント、関数情報、格納手段情報などである。
【００３７】
プログラム格納部１１は、１または２以上のソースプログラムが格納される。ソースプログラムの言語は問わない。言語は、例えば、ＣＯＢＯＬ、Ｃ言語、ＪＡＶＡ（登録商標）、Ｃ＋＋等である。ソースプログラムは、マイグレーションの対象のソースプログラムであることは好適である。プログラム格納部１１のソースプログラムは、通常、ファイルであるが、その形式は問わない。なお、ソースプログラムは、コメントを有することは好適である。ソースプログラム内のコメントは、通常、説明対象の要素（例えば、関数、変数、格納手段）の要素識別子（例えば、関数識別子、変数識別子、格納手段識別子）に対応付いている。コメントは、例えば、後述する関数説明情報、変数を説明する変数説明情報、後述する格納手段説明情報である。ソースプログラムにおいて、コメントは、要素識別子に対して、予め決められた位置に配置されていることは好適である。コメントは、例えば、要素識別子の横に配置されている。また、例えば、関数説明情報は、関数の定義の直上の行に配置されている。また、プログラム格納部１１のソースプログラムは、処理部２による整構造化処理が行われたソースプログラムであることは好適である。なお、整構造化処理については、後述する。
【００３８】
ドキュメント格納部１２は、１または２以上のドキュメントが格納される。ドキュメントとは、ソースプログラムに関連するドキュメントである。ドキュメントは、ソースプログラムの開発時に作成されたドキュメントであることは好適である。
【００３９】
ドキュメントは、ソースプログラムに関する説明が記載されたドキュメントである。ドキュメントは、ソースプログラムに含まれる格納手段の格納手段識別子と、格納手段を説明する格納手段説明情報とを、対応付けて有するドキュメントであることは好適である。また、ドキュメントは、ソースプログラムに含まれる関数の関数識別子と、関数を説明する関数説明情報とを、対応付けて有するドキュメントであることは好適である。
【００４０】
格納手段とは、情報を格納する対象である。格納手段は、情報を格納する領域と言っても良い。格納手段は、例えば、ソフトウェアで実現される情報の格納領域である。格納手段は、例えば、ファイル、データベース、テーブル、リポジトリ等である。ただし、格納手段は、例えば、ディスクやサーバ装置等のハードウェアでも良い。
【００４１】
格納手段識別子は、格納手段を識別する情報であれば何でも良く、例えば、プログラム中の変数名、ＩＤ等である。格納手段識別子は、例えば、ファイル名、データベース名、テーブル名、リポジトリ名等である。格納手段説明情報は、格納手段を説明する文字列であり、例えば、日本語の文字列である。格納手段説明情報は、例えば、漢字、ひらがた、カタカナのいずれか１以上の種類の文字を有する２以上の文字を有する文字列である。
【００４２】
関数識別子は、関数を識別する情報であれば何でも良く、例えば、プログラム中の関数名  である。関数説明情報は、関数を説明する文字列であり、例えば、日本語の文字列である。なお、関数は、モジュール、メソッド、プログラム等と言っても良い。関数は、処理命令の集合を有する。
【００４３】
関数情報格納部１３は、１または２以上の関数情報が格納される。関数情報とは、関数に関する情報である。関数情報は、関数識別子を有する。関数情報は、関数識別子と関数説明情報とを有することは好適である。
【００４４】
格納手段情報格納部１４は、１または２以上の格納手段情報が格納される。格納手段情報は、格納手段識別子を有する。格納手段情報とは、例えば、格納手段識別子と格納手段説明情報とを有する。
【００４５】
処理部２は、各種の処理を行う。各種の処理とは、例えば、関数識別子取得部２１、格納手段識別子取得部２２、処理識別子取得部２３、表構成部２４、関数情報蓄積部２５、または格納手段情報蓄積部２６等が行う処理、整構造化処理である。
【００４６】
整構造化処理とは、ソースプログラムの手続き部分を構造化された形に変換する処理である。整構造化処理では、例えば、ＣＯＢＯＬのソースプログラムの各文の実行順序を解析、整理してプログラムの手続き部分を順次（連接）、選択、反復の３種類の制御構造の組み合わせからなる形に変換する。さらに、変換後のプログラムの手続きの構成を分かりやすくするために、手続き部分全体がいくつかの手続き単位で構成されるようにセクショニング化を行う。各手続き単位間の制御の移行は、ＰＥＲＦＯＲＭ分を用いて表現する。以上のような整構造化処理によってプログラム内の制御の流れが単純化し、見易いプログラムになる。具体的には、手続きの呼び出し関係が階層化され、手続き部分の構成が分かりやすくなる。また、反復して実行される処理の範囲および反復の終了条件が明確になる。また、条件による選択処理では、各条件とその真偽に対する処理の関係が明確に表現される。また、ソースプログラムにおいて実行されない命令があれば除去される。また、一部の例外を除いて、ＧＯＴＯ文はなくなる。また、ＰＥＲＦＯＲＭ  ＴＨＲＵ文やＡＬＴＥＲ文もなくなる。なお、整構造化処理は公知技術であるので詳細な説明を省略する。
【００４７】
また、処理部２等の処理のトリガーは問わない。処理部２等は、例えば、後述する受付部４が指示等を受け付けた場合に、当該指示等に従って、処理を実行する。
【００４８】
関数識別子取得部２１は、ソースプログラムから関数を識別する１以上の関数識別子を取得する。関数識別子取得部２１は、例えば、手がかりとなる１以上の文字（例えば、「｛」）を用いて、関数識別子を取得する。ソースプログラムから関数識別子を取得する処理は公知技術であるので、詳細な説明を省略する。
【００４９】
格納手段識別子取得部２２は、関数で使用されている格納手段の１以上の格納手段識別子を、１以上のソースプログラムから、関数毎に取得する。格納手段識別子取得部２２は、関数識別子に対応付けて、１以上の格納手段識別子をソースプログラムから取得する。
【００５０】
格納手段識別子取得部２２は、例えば、ソースプログラムから、予め決められた文字列パターンに合致する文字列を取得する。なお、文字列パターンは、例えば、格納部１に格納されている。文字列パターンは、例えば、「ｆｉｌｅ．＊」「ＤＢ＿．＊」である。「ｆｉｌｅ．＊」は、ファイルである格納手段である格納手段識別子の文字列パターンである。また、「ＤＢ＿．＊」は、データベースである格納手段である格納手段識別子の文字列パターンである。
【００５１】
また、格納手段識別子取得部２２は、例えば、プログラムを解析し、プログラム中の格納手段へのアクセス命令（例えば、「ＣＲＥＡＴＥ」「ＵＰＤＡＴＥ」「ＤＥＬＥＴＥ」「ＲＥＡＤ」「ＷＲＩＴＥ」）の文字列に合致する命令を検出し、当該命令の中の変数を格納手段識別子として取得する。
【００５２】
また、格納手段識別子取得部２２は、例えば、プログラムを解析し、プログラム中の格納手段へのアクセス命令（例えば、「ＣＲＥＡＴＥ」「ＵＰＤＡＴＥ」「ＤＥＬＥＴＥ」「ＲＥＡＤ」「ＷＲＩＴＥ」）の文字列に合致する命令を検出し、当該命令に対して、予め決められた位置に配置されている文字列を格納手段識別子として取得する。予め決められた位置に配置されている文字列は、例えば、アクセス命令の直後の文字列、アクセス命令が有する引数のうちのＮ（Ｎは１以上の自然数）番目の引数の文字列である。
【００５３】
また、格納手段識別子取得部２２は、格納手段情報格納部１４に格納されている１以上の格納手段識別子を用いて、１以上の格納手段識別子を、関数毎にソースプログラムから取得しても良い。かかる場合、格納手段情報格納部１４に格納されている１以上の格納手段識別子は、人手により入力された格納手段識別子でも良いし、事前に自動的に格納手段識別子取得部２２により取得され、格納手段情報格納部１４に蓄積された格納手段識別子でも良い。
【００５４】
処理識別子取得部２３は、ソースプログラムから１以上の処理識別子を取得する。この処理識別子とは、格納手段に対する処理を識別する情報である。つまり、処理識別子取得部２３は、格納手段識別子取得部２２が取得した格納手段識別子で識別される格納手段に対する処理を識別する１以上の処理識別子を取得する。
【００５５】
処理識別子取得部２３は、通常、関数と格納手段とに対応付けて、処理識別子を取得する。つまり、処理識別子取得部２３は、通常、関数識別子と格納手段識別子とに対応付けて、処理識別子を取得する。
【００５６】
なお、処理識別子は、例えば、格納手段に対する読み出しを示す読み出し情報（例えば、「ＲＥＡＤ」）、格納手段に対する書き込みを示す書き込み情報（例えば、「ＷＲＩＴＥ」）、格納手段の更新を示す更新情報（例えば、「ＵＰＤＡＴＥ」）、格納手段の削除を示す削除情報（例えば、「ＤＥＬＥＴＥ」）である。
【００５７】
表構成部２４は、関数識別子取得部２１が取得した１以上の関数識別子と、格納手段識別子取得部２２が取得した１以上の格納手段識別子とを用いて、表を構成する。この表は、通常、２つの軸を有する二次元の表である。ただし、表の次元数は３以上でも良い。
【００５８】
表構成部２４は、関数内で使用されている格納手段が視覚的に認識可能な表を構成する。つまり、表構成部２４が構成する表の第一の軸の項目は関数情報であり、表構成部２４が構成する表の第二の軸の項目は格納手段情報である。関数情報とは、関数に関する情報である。関数情報は、通常、関数識別子と、関数を説明する関数説明情報のうちの一つまたは２つの情報を有する。また、格納手段情報とは、格納手段に関する情報である。格納手段情報は、通常、格納手段識別子と、格納手段を説明する格納手段説明情報のうちの一つまたは２つの情報を有する。
【００５９】
表構成部２４は、関数識別子取得部２１が取得した２以上の各関数識別子で識別される関数の情報である関数情報を第一の軸を構成する項目とし、格納手段識別子取得部２２が取得した２以上の各格納手段識別子で識別される格納手段の情報である格納手段情報を第二の軸を構成する項目とし、２以上の各関数識別子ごとに、関数内で使用されている１または２以上の各格納手段が視覚的に認識可能な表を構成する。
【００６０】
つまり、表構成部２４は、２以上の各関数内で使用されている格納手段が視覚的に認識可能な表を構成すれば良い。なお、関数内で使用されている格納手段が視覚的に認識可能であることは、通常、関数情報と格納手段情報との交わるセル（二次元の表の中のセル）に、何らかの情報が記載されていることである。何らかの情報とは、例えば、後述する処理識別子、使用されていることを示すフラグ、図柄（例えば、○、×など）である。
【００６１】
表構成部２４は、例えば、１以上の各関数識別子を第一の軸を構成する項目とし、１以上の各格納手段識別子第二の軸を構成する項目とする表を構成する。なお、第一の軸と第二の軸とは異なる。例えば、第一の軸は縦軸であり、第二の軸は横軸である。また、例えば、第一の軸は横軸であり、第二の軸は縦軸である。
【００６２】
表構成部２４は、第一の軸を構成する項目として、関数識別子と対になる関数説明情報を有する表を構成することは好適である。表構成部２４は、第二の軸を構成する項目として、格納手段識別子と対になる格納手段説明情報を有する表を構成することは好適である。
【００６３】
また、項目とは、表を構成する項目である。項目とは、通常、表の横軸の第一行に並べられる情報、または表の縦軸の第一列に並べられる情報である。
【００６４】
表構成部２４は、１以上の処理識別子が視覚的に識別可能なように、表を構成するセルに情報が書き込まれた表を構成することは好適である。表構成部２４は、例えば、処理識別子取得部２３が、関数と格納手段とに対応付けて取得した処理識別子に対応する処理情報を、当該関数と当該格納手段とに対応するセルに書き込み、表を構成する。なお、処理情報は、処理識別子でも良いし、処理識別子を示す略文字列（例えば、「ＲＥＡＤ」に対する「Ｒ」、「ＷＲＩＴＥ」に対する「Ｗ」、「ＵＰＤＡＴＥ」に対する「Ｕ」、「ＤＥＬＥＴＥ」に対する「Ｄ」）等でも良い。
【００６５】
関数情報蓄積部２５は、ドキュメントから、関数識別子と、関数識別子と対になる関数説明情報とを取得し、関数識別子と関数説明情報とを有する関数情報を関数情報格納部１３に蓄積する。かかる場合、関数情報蓄積部２５は、ドキュメントにおける関数識別子と関数説明情報との位置を特定する情報を保持しており、かかる情報を用いて、関数情報蓄積部２５は、ドキュメントから、関数識別子と、関数識別子と対になる関数説明情報とを取得する。
【００６６】
関数情報蓄積部２５は、ソースプログラムから、関数識別子と、関数識別子と対になる関数説明情報とを取得し、関数識別子と関数説明情報とを有する関数情報を関数情報格納部１３に蓄積しても良い。かかる場合、関数情報蓄積部２５は、ソースプログラムにおける関数識別子と関数説明情報との位置を特定する情報を保持しており、かかる情報を用いて、関数情報蓄積部２５は、ドキュメントから、関数識別子と、関数識別子と対になる関数説明情報とを取得する。
【００６７】
格納手段情報蓄積部２６は、ドキュメントから、格納手段識別子と、格納手段識別子と対になる格納手段説明情報とを取得し、格納手段識別子と格納手段説明情報とを有する格納手段情報を格納手段情報格納部１４に蓄積する。かかる場合、格納手段情報蓄積部２６は、ドキュメントにおける格納手段識別子と格納手段説明情報との位置を特定する情報を保持しており、かかる情報を用いて、格納手段情報蓄積部２６は、ドキュメントから、格納手段識別子と、格納手段識別子と対になる格納手段説明情報とを取得する。
【００６８】
格納手段情報蓄積部２６は、ソースプログラムから、格納手段識別子と、格納手段識別子と対になる格納手段説明情報とを取得し、格納手段識別子と格納手段説明情報とを有する格納手段情報を格納手段情報格納部１４に蓄積しても良い。かかる場合、格納手段情報蓄積部２６は、ソースプログラムにおける格納手段識別子と格納手段説明情報との位置を特定する情報を保持しており、かかる情報を用いて、格納手段情報蓄積部２６は、ソースプログラムから、格納手段識別子と、格納手段識別子と対になる格納手段説明情報とを取得する。
【００６９】
出力部３は、各種の情報を出力する。各種の情報とは、例えば、表である。出力とは、記録媒体への蓄積、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、外部の装置への送信、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【００７０】
表出力部３１は、表構成部２４が構成した表を出力する。表の出力態様は問わない。表出力部３１は、通常、表構成部２４が構成した表を記録媒体に蓄積する。なお、ここでの記録媒体は、例えば、格納部１、図示しないサーバ装置等である。
【００７１】
受付部４は、各種の指示等を受け付ける。指示等は、例えば、表を出力する指示である出力指示、情報を格納部１に蓄積する指示である情報蓄積指示等である。ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
【００７２】
各種の指示等の入力手段は、キーボードやマウスやタッチパネルやメニュー画面によるもの等、何でも良い。受付部４は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００７３】
格納部１、プログラム格納部１１、ドキュメント格納部１２、関数情報格納部１３、および格納手段情報格納部１４は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００７４】
格納部１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部１等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部１等で記憶されるようになってもよい。
【００７５】
処理部２、関数識別子取得部２１、格納手段識別子取得部２２、処理識別子取得部２３、表構成部２４、関数情報蓄積部２５、および格納手段情報蓄積部２６は、通常、ＭＰＵやメモリ等から実現され得る。処理部２等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００７６】
出力部３、および表出力部３１は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部３は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００７７】
次に、ドキュメント生成装置Ａの動作の一例について、図２のフローチャートを用いて説明する。
【００７８】
（ステップＳ２０１）受付部４は、出力指示を受け付けたか否かを判断する。出力指示を受け付けた場合はステップＳ２０２に行き、出力指示を受け付けない場合はステップＳ２１０に行く。
【００７９】
（ステップＳ２０２）処理部２は、プログラム格納部１１から、１以上のソースプログラムを読み出す。なお、以下、読み出されたソースプログラムは、連結されているものとする。
【００８０】
（ステップＳ２０３）処理部２は、カウンタｉに１を代入する。
【００８１】
（ステップＳ２０４）関数識別子取得部２１は、ステップＳ２０２で読み出したソースプログラム（連結されたもの）の中に、ｉ番目の行が存在するか否かを判断する。ｉ番目の行が存在する場合はステップＳ２０５に行き、ｉ番目の行が存在しない場合はステップＳ２０９に行く。
【００８２】
（ステップＳ２０５）関数識別子取得部２１は、ｉ番目の行に、関数の定義を示す関数の開始行の関数識別子が存在するか否かを判断する。かかる関数識別子が存在する場合はステップＳ２０６に行き、存在しない場合はステップＳ２０８に行く。なお、かかる関数識別子は、関数の呼び出しを示す関数識別子ではない。
【００８３】
（ステップＳ２０６）関数識別子取得部２１は、ｉ番目の行から、関数識別子を取得する。
【００８４】
（ステップＳ２０７）処理部２は、関数内処理を行う。ステップＳ２０４に戻る。なお、関数内処理とは、関数内における処理である。関数内処理の詳細について、図３のフローチャートを用いて説明する。なお、処理部２は、関数内処理に対して、カウンタｉと、関数識別子とを渡す。
【００８５】
（ステップＳ２０８）処理部２は、カウンタｉを１、インクリメントする。ステップＳ２０４に戻る。
【００８６】
（ステップＳ２０９）表構成部２４は、表構成処理を行う。そして、表出力部３１は、表構成処理により構成された表を出力する。なお、表構成処理について、図４のフローチャートを用いて説明する。ステップＳ２０１に戻る。
【００８７】
（ステップＳ２１０）受付部４は、情報蓄積指示を受け付けたか否かを判断する。情報蓄積指示を受け付けた場合はステップＳ２１１に行き、情報蓄積指示を受け付けない場合はステップＳ２０１に戻る。
【００８８】
（ステップＳ２１１）関数情報蓄積部２５は、関数情報蓄積処理を行う。関数情報蓄積処理について、図５のフローチャートを用いて説明する。
【００８９】
（ステップＳ２１２）格納手段情報蓄積部２６は、格納手段情報蓄積処理を行う。格納手段情報蓄積処理について、図６のフローチャートを用いて説明する。
【００９０】
なお、図２のフローチャートにおいて、ファイルごとに処理を行っても良い。かかる場合、ファイルの連結は行わない。
【００９１】
また、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００９２】
次に、ステップＳ２０７の関数内処理の詳細の一例について、図３のフローチャートを用いて説明する。
【００９３】
（ステップＳ３０１）処理部２は、カウンタｉを１、インクリメントする。
【００９４】
（ステップＳ３０２）処理部２は、ｉ行目が関数の終了の行であるか否かを判断する。ｉ行目が関数の終了の行である場合はｉをリターンし、ｉ行目が関数の終了の行でない場合はステップＳ３０３に行く。
【００９５】
（ステップＳ３０３）格納手段識別子取得部２２は、ｉ行目に、格納手段識別子が存在するか否かを判断する。格納手段識別子が存在する場合はステップＳ３０４に行き、格納手段識別子が存在しない場合はステップＳ３０６に行く。
【００９６】
（ステップＳ３０４）処理識別子取得部２３は、格納手段識別子に対応する処理識別子を取得する。
【００９７】
（ステップＳ３０５）処理部２は、関数識別子と格納手段識別子と処理識別子とを対応付けたレコードを、格納部１に一時蓄積する。
【００９８】
（ステップＳ３０６）処理部２は、カウンタｉを１、インクリメントする。ステップＳ３０２に戻る。
【００９９】
次に、ステップＳ２０９の表構成処理の一例について、図４のフローチャートを用いて説明する。ステップＳ２０１に戻る。
【０１００】
（ステップＳ４０１）表構成部２４は、格納部１に格納されているすべてのレコードから関数識別子を取得し、ユニーク処理を行い、２以上の関数識別子を取得する。
【０１０１】
（ステップＳ４０２）表構成部２４は、ステップＳ４０１で取得した２以上の各関数識別子と対になる関数説明情報を関数情報格納部１３から取得する。
【０１０２】
（ステップＳ４０３）表構成部２４は、ステップＳ４０２で取得した２以上の関数説明情報を項目とする第一軸を構成する。なお、第一軸の項目は、関数識別子と関数説明情報のうちの一つまたは２つの情報である。
【０１０３】
（ステップＳ４０４）表構成部２４は、表構成部２４は、格納部１に格納されているすべてのレコードから格納手段識別子を取得し、ユニーク処理を行い、２以上の格納手段識別子を取得する。
【０１０４】
（ステップＳ４０５）表構成部２４は、表構成部２４は、ステップＳ４０４で取得した２以上の各格納手段識別子と対になる格納手段説明情報を格納手段情報格納部１４から取得する。
【０１０５】
（ステップＳ４０６）表構成部２４は、表構成部２４は、ステップＳ４０５で取得した２以上の格納手段説明情報を項目とする第二軸を構成する。なお、第二軸の項目は、格納手段識別子と格納手段説明情報のうちの一つまたは２つの情報である。
【０１０６】
（ステップＳ４０７）表構成部２４は、カウンタｊに１を代入する。
【０１０７】
（ステップＳ４０８）表構成部２４は、表の中にｊ番目のセルが存在するか否かを判断する。ｊ番目のセルが存在する場合はステップＳ４０９に行き、ｊ番目のセルが存在しない場合は上位処理にリターンする。
【０１０８】
（ステップＳ４０９）表構成部２４は、ｊ番目のセルに対応する関数識別子と格納手段識別子とを取得する。
【０１０９】
（ステップＳ４１０）表構成部２４は、格納部１に格納されているレコードを検索し、ステップＳ４０９で取得した関数識別子および格納手段識別子と対になるすべての処理識別子を取得する。そして、表構成部２４は、処理識別子に対して、ユニーク処理を行う。
【０１１０】
（ステップＳ４１１）表構成部２４は、ステップＳ４１０で処理識別子を取得できたか否かを判断する。処理識別子を取得できた場合はステップＳ４１２に行き、処理識別子を取得できなかった場合はステップＳ４１４に行く。
【０１１１】
（ステップＳ４１２）表構成部２４は、ステップＳ４１０で取得された１以上の処理識別子を用いて、ｊ番目のセルに書き込む処理情報を構成する。
【０１１２】
（ステップＳ４１３）表構成部２４は、ステップＳ４１２で構成した処理情報をｊ番目のセルに書き込む。
【０１１３】
（ステップＳ４１４）表構成部２４は、カウンタｊを１、インクリメントする。ステップＳ４０８に戻る。
【０１１４】
次に、ステップＳ２１１の関数情報蓄積処理の一例について、図５のフローチャートを用いて説明する。
【０１１５】
（ステップＳ５０１）関数情報蓄積部２５は、カウンタｉに１を代入する。
【０１１６】
（ステップＳ５０２）関数情報蓄積部２５は、関数情報を構成する元になるｉ番目のドキュメントがドキュメント格納部１２に存在するか否かを判断する。ｉ番目のドキュメントが存在する場合はステップＳ５０３に行き、ｉ番目のドキュメントが存在しない場合は上位処理にリターンする。
【０１１７】
（ステップＳ５０３）関数情報蓄積部２５は、カウンタｊに１を代入する。
【０１１８】
（ステップＳ５０４）関数情報蓄積部２５は、ｉ番目のドキュメントを解析し、ｉ番目のドキュメントの中に、ｊ番目の関数識別子が存在するか否かを判断する。ｊ番目の関数識別子が存在する場合はステップＳ５０５に行き、ｊ番目の関数識別子が存在しない場合はステップＳ５０９に行く。
【０１１９】
（ステップＳ５０５）関数情報蓄積部２５は、ｉ番目のドキュメントから、ｊ番目の関数識別子を取得する。なお、ここで、関数情報蓄積部２５は、ドキュメントの予め決められた構造の情報を用いて、ｊ番目の関数識別子を取得する。
【０１２０】
（ステップＳ５０６）関数情報蓄積部２５は、ｊ番目の関数識別子に対応する関数説明情報を取得する。なお、関数情報蓄積部２５は、ドキュメントの構造が分かっており、かかる構造の情報を用いて、関数識別子や関数説明情報を取得する。
【０１２１】
（ステップＳ５０７）関数情報蓄積部２５は、関数識別子と関数説明情報とを有する関数情報を構成し、関数情報格納部１３に蓄積する。
【０１２２】
（ステップＳ５０８）関数情報蓄積部２５は、カウンタｊを１、インクリメントする。ステップＳ５０４に戻る。
【０１２３】
（ステップＳ５０９）関数情報蓄積部２５は、カウンタｉを１、インクリメントする。ステップＳ５０２に戻る。
【０１２４】
次に、ステップＳ２１２の格納手段情報蓄積処理の一例について、図６のフローチャートを用いて説明する。
【０１２５】
（ステップＳ６０１）格納手段情報蓄積部２６は、カウンタｉに１を代入する。
【０１２６】
（ステップＳ６０２）格納手段情報蓄積部２６は、格納手段情報を構成する元になるｉ番目のドキュメントがドキュメント格納部１２に存在するか否かを判断する。ｉ番目のドキュメントが存在する場合はステップＳ６０３に行き、ｉ番目のドキュメントが存在しない場合は上位処理にリターンする。
【０１２７】
（ステップＳ６０３）格納手段情報蓄積部２６は、カウンタｊに１を代入する。
【０１２８】
（ステップＳ６０４）格納手段情報蓄積部２６は、ｉ番目のドキュメントを解析し、ｉ番目のドキュメントの中に、ｊ番目の格納手段識別子が存在するか否かを判断する。ｊ番目の格納手段識別子が存在する場合はステップＳ６０５に行き、ｊ番目の格納手段識別子が存在しない場合はステップＳ６０９に行く。
【０１２９】
（ステップＳ６０５）格納手段情報蓄積部２６は、ｉ番目のドキュメントから、ｊ番目の格納手段識別子を取得する。なお、ここで、格納手段情報蓄積部２６は、ドキュメントの予め決められた構造の情報を用いて、ｊ番目の格納手段識別子を取得する。
【０１３０】
（ステップＳ６０６）格納手段情報蓄積部２６は、ｊ番目の格納手段識別子に対応する関数説明情報を取得する。なお、格納手段情報蓄積部２６は、ドキュメントの構造が分かっており、かかる構造の情報を用いて、格納手段識別子や格納手段情報を取得する。
【０１３１】
（ステップＳ６０７）格納手段情報蓄積部２６は、格納手段識別子と格納手段説明情報とを有する格納手段情報を構成し、格納手段情報格納部１４に蓄積する。
【０１３２】
（ステップＳ６０８）格納手段情報蓄積部２６は、カウンタｊを１、インクリメントする。ステップＳ６０４に戻る。
【０１３３】
（ステップＳ６０９）格納手段情報蓄積部２６は、カウンタｉを１、インクリメントする。ステップＳ６０２に戻る。
【０１３４】
以下、本実施の形態におけるドキュメント生成装置Ａの具体的な動作について説明する。
【０１３５】
今、ドキュメント生成装置Ａのプログラム格納部１１には、図７に示すソースプログラムが格納されている。
【０１３６】
また、関数情報格納部１３には、図８に示す関数情報管理表が格納されている。関数情報管理表には「ＩＤ」「関数識別子」「関数説明情報」を有する１以上のレコードが格納されている。「ＩＤ」は、レコードを識別する情報である。また、関数情報管理表は、関数情報蓄積部２５が、ドキュメントまたはソースファイルから１以上の関数情報を取得し、関数情報格納部１３に蓄積した情報から構成される。なお、関数情報を取得できる程度にコメントが記載されたソースファイルは、ドキュメントと言っても良い。
【０１３７】
さらに、格納手段情報格納部１４には、図９に示す格納手段情報管理表が格納されている。格納手段情報管理表には「ＩＤ」「格納手段識別子」「格納手段説明情報」を有する１以上のレコードが格納されている。「ＩＤ」は、レコードを識別する情報である。また、格納手段情報管理表は、格納手段情報蓄積部２６が、ドキュメントまたはソースファイルから１以上の格納手段情報を取得し、格納手段情報格納部１４に蓄積した情報から構成される。なお、格納手段情報を取得できる程度にコメントが記載されたソースファイルは、ドキュメントと言っても良い。ここで、格納手段は、テーブルまたはファイルである。そして、格納手段識別子は、テーブルＩＤまたはファイルＩＤである。また、格納手段説明情報は、テーブル名またはファイル名である。
【０１３８】
また、格納部１には、図１０に示す処理識別子管理表が格納されている。処理識別子には「ＩＤ」「処理識別子」「略称」を有する１以上のレコードが格納されている。処理識別子管理表は、ユーザが入力した情報である。また、ここでの処理識別子は、「ＣＲＥＡＴＥ」「ＲＥＡＤ」「ＵＰＤＡＴＥ」「ＤＥＬＥＴＥ」の４種類である。
【０１３９】
かかる状況において、ユーザは、ドキュメント生成装置Ａに出力指示を入力した、とする。すると、ドキュメント生成装置Ａの受付部４は、出力指示を受け付ける。
【０１４０】
次に、処理部２は、プログラム格納部１１から、図７のソースプログラムを読み出す。そして、処理部２は、図７のソースプログラムの解析を進める。
【０１４１】
具体的には、関数識別子取得部２１は、７０１の行の、予め決められた文字列である手掛かり情報「PROGRAM-ID」を認識し、当該手掛かり情報と同一行で、その次の文字列「CAR70B」を関数識別子である、として取得する。また、関数識別子取得部２１は、関数の開始を認識する。なお、関数識別子取得部２１は、図８の関数情報管理表のいずれかの関数識別子に合致する関数識別子を、図７のソースプログラムから取得しても良い。
【０１４２】
次に、処理部２は、図３のフローチャートを用いて説明した関数内処理を、関数「CAR70B」の命令の集合（図７参照）に対して行う。
【０１４３】
つまり、処理部２は、ソースプログラムの解析処理を進め、処理識別子取得部２３は、図７の行７０２から、処理識別子「CREATE」を取得する。また、格納手段識別子取得部２２は、行７０２から、格納手段識別子「CBRI」を取得する。そして、処理部２は、関数識別子「CAR70B」と格納手段識別子「CBRI」と処理識別子「CREATE」とを対応付けたレコードを、格納部１に一時蓄積する。
【０１４４】
また、処理部２は、ソースプログラムの解析処理を進め、処理識別子取得部２３は、図７の行７０３から、処理識別子「READ」を取得する。また、格納手段識別子取得部２２は、行７０３から、格納手段識別子「CBRI」を取得する。そして、処理部２は、関数識別子「CAR70B」と格納手段識別子「CBRI」と処理識別子「READ」とを対応付けたレコードを、格納部１に一時蓄積する。
【０１４５】
また、処理部２は、ソースプログラムの解析処理を進め、処理識別子取得部２３は、図７の行７０４から、処理識別子「UPDATE」を取得する。また、格納手段識別子取得部２２は、行７０４から、格納手段識別子「CBRI」を取得する。そして、処理部２は、関数識別子「CAR70B」と格納手段識別子「CBRI」と処理識別子「UPDATE」とを対応付けたレコードを、格納部１に一時蓄積する。
【０１４６】
また、処理部２は、ソースプログラムの解析処理を進め、処理識別子取得部２３は、図７の行７０５から、処理識別子「DELETE」を取得する。また、格納手段識別子取得部２２は、行７０５から、格納手段識別子「CBRI」を取得する。そして、処理部２は、関数識別子「CAR70B」と格納手段識別子「CBRI」と処理識別子「DELETE」とを対応付けたレコードを、格納部１に一時蓄積する。
【０１４７】
また、処理部２は、ソースプログラムの解析処理を進め、処理識別子取得部２３は、図７の行７０６から、処理識別子「UPDATE」を取得する。また、格納手段識別子取得部２２は、行７０６から、格納手段識別子「CNTL」を取得する。そして、処理部２は、関数識別子「CAR70B」と格納手段識別子「CNTL」と処理識別子「UPDATE」とを対応付けたレコードを、格納部１に一時蓄積する。
【０１４８】
また、処理部２は、ソースプログラムの解析処理を進め、処理識別子取得部２３は、図７の行７０６から、処理識別子「READ」を取得する。また、格納手段識別子取得部２２は、行７０６から、格納手段識別子「CNTL」を取得する。そして、処理部２は、関数識別子「CAR70B」と格納手段識別子「CNTL」と処理識別子「READ」とを対応付けたレコードを、格納部１に一時蓄積する。
【０１４９】
また、処理部２は、ソースプログラムの解析処理を、関数「CAR70B」の記述が終了するまで進める。
【０１５０】
次に、格納部１に一時蓄積したレコードのユニーク処理を行う。また、表構成部２４は、関数識別子「CAR70B」と対になる関数説明情報「仕掛量データ作成」を図８の関数情報管理表から取得する。また、表構成部２４は、格納手段識別子「CBRI」と対になる格納手段説明情報「仕掛品履歴テーブル」、格納手段識別子「CNTL」と対になる格納手段説明情報「対象一覧ファイル」を図９の格納手段情報管理表から取得する。
【０１５１】
以上の処理を、処理部２は、すべてのプログラムの解析処理が完了するまで行う。そして、表構成部２４は、図１１に示す表を構成する。この表は、ここでは、出力前の中間表である。図１１において、関数「CAR70B」内において、格納手段「CBRI」に対して、「ＣＲＥＡＴＥ」「ＲＥＡＤ」「ＵＰＤＡＴＥ」「ＤＥＬＥＴＥ」の４種類の処理が行われていることが分かる（１１０１参照）。また、図１１において、関数「CAR70B」内において、格納手段「CTRL」に対して、「ＲＥＡＤ」「ＵＰＤＡＴＥ」の２種類の処理が行われていることが分かる（１１０２参照）。
【０１５２】
次に、表構成部２４は、ここでは、図１１の中間表から、プログラムＩＤ（関数識別子の一例）とプログラム名（関数説明情報の一例）とを有する２以上の項目を有する第一の軸を構成する。また、表構成部２４は、ここでは、テーブルＩＤ・ファイルＩＤ（格納手段識別子の一例）とテーブル名・ファイル名（格納手段説明情報の一例）とを有する２以上の項目を有する第二の軸を構成する。
【０１５３】
また、表構成部２４は、「ＣＲＥＡＴＥ」に対応する略称「Ｃ」、「ＲＥＡＤ」に対応する略称「Ｒ」、「ＵＰＤＡＴＥ」に対応する略称「Ｕ」、「ＤＥＬＥＴＥ」に対応する略称「Ｄ」を、図１０の処理情報管理表から取得する。そして、第一の軸の項目と第二の軸の項目とに対応する処理識別子の略称を、第一の軸の項目と第二の軸の項目との交差により作られるセルに書き込み、出力する表を構成する。かかる表は、２以上の各関数識別子ごとに、関数内で使用されている１以上の各格納手段が視覚的に認識可能な表である。また、かかる表は、１以上の処理識別子が視覚的に識別可能なように、表を構成するセルに情報が書き込まれた表である。
【０１５４】
次に、表出力部３１は、表構成部２４が構成した表を出力する。かかる出力例は、図１２である。なお、表出力部３１は、図１１に示す表を出力しても良い。
【０１５５】
以上、本実施の形態によれば、関数と格納手段との関係を容易に把握できる表を生成できる。
【０１５６】
また、本実施の形態によれば、関数内で、格納手段に対して行われている処理をも容易に把握できる表を生成できる。
【０１５７】
なお、図１１または図１２の表は、マイグレーションを行う前に、マイグレーションの方針を決定したり、マイグレーションの工数を見積もったりする際に有用である。
【０１５８】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるキュメント生成装置Ａを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、例えば、コンピュータがアクセス可能な記録媒体は、１以上のソースプログラムが格納されるプログラム格納部と、前記１以上のソースプログラムから関数を識別する２以上の関数識別子を取得する関数識別子取得部とを具備し、コンピュータを、情報が格納される格納手段を識別する１以上の格納手段識別子であり、前記１以上の各関数識別子で識別される１以上の各関数で使用されている格納手段の１以上の格納手段識別子を、関数毎に前記ソースプログラムから取得する格納手段識別子取得部と、前記関数識別子取得部が取得した２以上の各関数識別子で識別される関数の情報である関数情報を第一の軸を構成する項目とし、前記格納手段識別子取得部が取得した２以上の各格納手段識別子で識別される格納手段の情報である格納手段情報を第二の軸を構成する項目とし、２以上の各関数識別子ごとに、関数内で使用されている１または２以上の各格納手段が視覚的に認識可能な表を構成する表構成部と、前記表を出力する表出力部として機能させるためのプログラムである。
【０１５９】
また、図１３は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態のドキュメント生成装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図１３は、このコンピュータシステム３００の概観図であり、図１４は、システム３００のブロック図である。
【０１６０】
図１３において、コンピュータシステム３００は、ＣＤ−ＲＯＭドライブを含むコンピュータ３０１と、キーボード３０２と、マウス３０３と、モニタ３０４とを含む。
【０１６１】
図１４において、コンピュータ３０１は、ＣＤ−ＲＯＭドライブ３０１２に加えて、ＭＰＵ３０１３と、ＣＤ−ＲＯＭドライブ３０１２などに接続されたバス３０１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３０１５と、ＭＰＵ３０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３０１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３０１７とを含む。ここでは、図示しないが、コンピュータ３０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０１６２】
コンピュータシステム３００に、上述した実施の形態のドキュメント生成装置の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３１０１に記憶されて、ＣＤ−ＲＯＭドライブ３０１２に挿入され、さらにハードディスク３０１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３０１に送信され、ハードディスク３０１７に記憶されても良い。プログラムは実行の際にＲＡＭ３０１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３１０１またはネットワークから直接、ロードされても良い。
【０１６３】
プログラムは、コンピュータ３０１に、上述した実施の形態のドキュメント生成装置の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３００がどのように動作するかは周知であり、詳細な説明は省略する。
【０１６４】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１６５】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０１６６】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１６７】
以上のように、本発明にかかるドキュメント生成装置は、関数と格納手段との関係を容易に把握できるという効果を有し、ドキュメント生成装置等として有用である。
【符号の説明】
【０１６８】
Ａ  ドキュメント生成装置
１  格納部
２  処理部
３  出力部
４  受付部
１１  プログラム格納部
１２  ドキュメント格納部
１３  関数情報格納部
１４  格納手段情報格納部
２１  関数識別子取得部
２２  格納手段識別子取得部
２３  処理識別子取得部
２４  表構成部
２５  関数情報蓄積部
２６  格納手段情報蓄積部
３１  表出力部
【図１】
2018181127.tif 000003
【図２】
2018181127.tif 000004
【図３】
2018181127.tif 000005
【図４】
2018181127.tif 000006
【図５】
2018181127.tif 000007
【図６】
2018181127.tif 000008
【図７】
2018181127.tif 000009
【図８】
2018181127.tif 000010
【図９】
2018181127.tif 000011
【図１０】
2018181127.tif 000012
【図１１】
2018181127.tif 000013
【図１２】
2018181127.tif 000014
【図１３】
2018181127.tif 000015
【図１４】
2018181127.tif 000016