(57)【要約】【課題】  日本語文による詳細設計書の生成を行う装置であって、厳密な構文解析を不要とすることにより、汎用性の高い詳細設計書の生成装置を提供する。【解決手段】  詳細設計書生成システム１００は、ソースコード解析部１０１と、ネスト変換部１０２と、日本語変換部１０３と、マッチングエンジン部１０４と、アイテム化部１０５と、設計書生成部１０６の各処理部から構成され、予約語情報，ネスト値計算情報，日本語化情報の各情報を格納する情報格納部１０７〜１０９を有する。ソースコード解析部１０１は、予約語情報１０８に予め定義された情報に基づき、各処理文毎の単語の集合を設計情報として生成する。ネスト変換部１０２は、設計情報に含まれる各処理文についてネスト情報を設計情報に付加する。日本語変換部１０３は、日本語辞書を参照し、マッチングエンジン部１０４のマッチング処理結果に応じて各処理文を日本語文に変換して設計情報に付加する。【選択図】      図１
2005275465.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードに基づきプログラムの詳細設計書を生成する詳細設計書生成装置であって、
前記ソースコードを読込み、予め定義された所定の先頭予約語に一致する単語に基づき、処理文毎に区分してソースコード設計情報を生成するソースコード解析手段と、
前記ソースコード解析手段により区分された各処理文について、予め先頭予約語の種別に応じて定義されたネスト値情報に基づき、各処理文のネストの深さを示すネスト値を算出し、前記ソースコード設計情報に、算出したネスト値に基づくネスト構造を示す情報を付加するネスト変換手段と、
予め処理文を構成する予約語の組合せとネスト構造とに応じた日本語定型文と、各処理文に含まれる変数名又は関数名に対応する日本語名とを定義した日本語化情報に基づき、前記ソースコード設計情報に含まれる各処理文を前記日本語定型文と日本語名とを用いた日本語文に変換する日本語変換処理手段と
を備えることを特徴とする詳細設計書生成装置。
【請求項２】
前記日本語変換処理手段は、
ネスト構造を含む複数の処理文の組合せを前記日本語化情報から検索し、対応する処理文の組合せが定義されていない場合に、ネストを持つ処理文とネスト内の処理文とに分けて、それぞれを前記日本語化情報から検索して日本語文に変換することを特徴とする請求項１に記載の詳細設計書生成装置。
【請求項３】
前記日本語変換処理手段は、
同一ネスト値の複数の処理文の組合せを前記日本語化情報から検索し、対応する処理文の組合せが定義されていない場合に、処理文数を減らした組合せにより検索処理を行うことを特徴とする請求項１又は２のいずれかに記載の詳細設計書生成装置。
【請求項４】
前記日本語化情報に定義された日本語定型文に対応する処理文又は処理文の組合せに対し、各処理文又は処理文の組合せにおいて着目データとなるデータ項目が配置される位置を定義したアイテム化文型を予め設定し、
前記日本語変換処理手段により日本語文に変換された設計情報に基づき、日本語文の変換に用いた日本語定型文に対応する処理文又は処理文の組合せに対して、アイテム化文型が設定されている場合に、設定されたアイテム化文型に基づき、日本語文の変換を行った各処理文について着目データの抽出を行うアイテム化処理手段を備えることを特徴とする請求項１〜３のいずれかに記載の詳細設計書生成装置。
【請求項５】
前記アイテム化処理手段は、着目データとして抽出したデータ項目が、アイテム化除外データとして予め定義された変数名，関数名と一致するか否かを判定し、一致する場合に着目データの抽出を行わないことを特徴とする請求項４に記載の詳細設計書生成装置。
【請求項６】
前記詳細設計書生成装置は、
前記日本語変換処理手段により生成された日本語文について、前記日本語文の変換に用いた日本語定型文に応じて、条件又は処理に区分した表形式の詳細設計書を生成する設計書生成手段を備えることを特徴とする請求項１〜５のいずれかに記載の詳細設計書生成装置。
【請求項７】
詳細設計書生成装置によりソースコードに基づきプログラムの詳細設計書を生成する方法であって、
ソースコード解析手段により、前記ソースコードを読込み、予め定義された所定の先頭予約語に一致する単語に基づき、処理文毎に区分してソースコード設計情報を生成する第一のステップと、
ネスト変換手段により、前記ソースコード解析手段により区分された各処理文について、予め先頭予約語の種別に応じて定義されたネスト値情報に基づき、各処理文のネストの深さを示すネスト値を算出し、前記ソースコード設計情報に、算出したネスト値に基づくネスト構造を示す情報を付加する第二のステップと、
予め処理文を構成する予約語の組合せとネスト構造とに応じた日本語定型文と、各処理文に含まれる変数名又は関数名に対応する日本語名とを定義した日本語化情報に基づき、日本語変換処理手段により、前記ソースコード設計情報に含まれる各処理文を前記日本語定型文と日本語名とを用いた日本語文に変換する第三のステップと
を備えることを特徴とする詳細設計書生成方法。
【請求項８】
前記第三のステップは、
ネスト構造を含む複数の処理文の組合せを前記日本語化情報から検索し、対応する処理文の組合せが定義されていない場合に、ネストを持つ処理文とネスト内の処理文とに分けて、それぞれを前記日本語化情報から検索して日本語文に変換するステップをさらに備えることを特徴とする請求項７に記載の詳細設計書生成方法。
【請求項９】
前記第三のステップは、
同一ネスト値の複数の処理文の組合せを前記日本語化情報から検索し、対応する処理文の組合せが定義されていない場合に、処理文数を減らした組合せにより検索処理を行うステップをさらに備えることを特徴とする請求項７又は８のいずれかに記載の詳細設計書生成方法。
【請求項１０】
前記詳細設計書生成方法は、
予め、日本語化情報に定義された日本語定型文に対応する処理文又は処理文の組合せに対し、各処理文又は処理文の組合せにおいて着目データとなるデータ項目が配置される位置を定義したアイテム化文型を設定し、
前記第三のステップの後に、前記日本語変換処理手段により日本語文に変換された設計情報に基づき、日本語文の変換に用いた日本語定型文に対応する処理文又は処理文の組合せに対して、アイテム化文型が設定されている場合に、アイテム化処理手段により、予め設定されたアイテム化文型に基づき、日本語文の変換を行った各処理文について着目データの抽出を行うステップをさらに備えることを特徴とする請求項７〜９のいずれかに記載の詳細設計書生成方法。
【請求項１１】
前記第四のステップは、着目データとして抽出したデータ項目が、アイテム化除外データとして予め定義された変数名，関数名と一致するか否かを判定し、一致する場合に着目データの抽出を行わないことを特徴とする請求項１０に記載の詳細設計書生成方法。
【請求項１２】
前記詳細設計書生成方法は、
前記第三のステップの後に、前記日本語変換処理手段により生成された日本語文について、前記日本語文の変換に用いた日本語定型文に応じて、設計書生成手段により、条件又は処理に区分した表形式の詳細設計書を生成するステップをさらに備えることを特徴とする請求項７〜１１のいずれかに記載の詳細設計書生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコードに基づき、プログラムの機能仕様を記述した詳細設計書を自動生成する装置及びその方法に関する。
【背景技術】
【０００２】
従来より、既存のプログラムのソースコードの一部を再利用して業務処理システムの構築を行う場合に、利用するソースコードの理解のため、プログラムの機能仕様を日本語文により記述した詳細設計書が一般に用いられている。
この場合、過去に作成されたプログラムについては、詳細な設計書自体が存在しない場合や、詳細設計書自体は存在するものの、その後のバージョンアップ等の仕様変更についての記録が存在しない場合等があり、ソースコードを正確に理解することが困難なことがあった。
このような場合に、プログラムのソースコードから仕様設計書を生成する装置として、従来、ソースコードを構文解析して中間表現，制御フロー，データフローを順に生成して詳細設計書を生成する手段を備えた構成が公知となっている（例えば、特許文献１参照。）。
【特許文献１】特開平０７−２１９７５８号公報
【０００３】
前記特許文献１に記載の構成では、ソースコードについて厳密な構文解析を行った後、中間表現，制御フロー，データフローを順に生成することにより、日本語文で記述した詳細な設計書の生成を可能としている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の発明では、日本語文での設計仕様書を生成する前提として、制御フロー等を作成するために厳密な構文解析を行うことが必要となり、各プログラミング言語に応じた構文解析のための規則（例えば、条件分岐のパターンや分岐後の参照箇所等の抽出規則等）を予め正確に定義することが必要となっていた。従って、構文解析を行うための規則情報の生成に多大な労力を要することとなっていた。
また、各プログラミング言語に応じた構文解析規則が定義されている場合であっても、同一プログラミング言語についてバージョンアップ等がされている場合には、バージョン等の違いによって構文が異なることがあるため、正確な詳細設計書の生成ができないことがあるとともに、汎用性の低いものとなっていた。
さらに、既に新規開発では使用されていない古いプログラミング言語（バージョン）で開発された既存システムについては、厳密な構文解析を行うための規則自体が不明確なことがあるため、その場合には特許文献１に記載の発明を利用することが困難となっていた。
【０００５】
本発明は前記課題を解決するためのものであり、日本語文による詳細設計書の生成を行う装置であって、厳密な構文解析を不要とすることにより、汎用性の高い詳細設計書の生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するため、本発明の詳細設計書生成装置は、ソースコードに基づきプログラムの詳細設計書を生成する詳細設計書生成装置であって、前記ソースコードを読込み、予め定義された所定の先頭予約語に一致する単語に基づき、処理文毎に区分してソースコード設計情報を生成するソースコード解析手段と、前記ソースコード解析手段により区分された各処理文について、予め先頭予約語の種別に応じて定義されたネスト値情報に基づき、各処理文のネストの深さを示すネスト値を算出し、前記ソースコード設計情報に、算出したネスト値に基づくネスト構造を示す情報を付加するネスト変換手段と、予め処理文を構成する予約語の組合せとネスト構造とに応じた日本語定型文と、各処理文に含まれる変数名又は関数名に対応する日本語名とを定義した日本語化情報に基づき、前記ソースコード設計情報に含まれる各処理文を前記日本語定型文と日本語名とを用いた日本語文に変換する日本語変換処理手段とを備えることを特徴とする。
また、前記日本語変換処理手段は、ネスト構造を含む複数の処理文の組合せを前記日本語化情報から検索し、対応する処理文の組合せが定義されていない場合に、ネストを持つ処理文とネスト内の処理文とに分けて、それぞれを前記日本語化情報から検索して日本語文に変換することを特徴とする。
また、前記日本語変換処理手段は、同一ネスト値の複数の処理文の組合せを前記日本語化情報から検索し、対応する処理文の組合せが定義されていない場合に、処理文数を減らした組合せにより検索処理を行うことを特徴とする。
また、前記日本語化情報に定義された日本語定型文に対応する処理文又は処理文の組合せに対し、各処理文又は処理文の組合せにおいて着目データとなるデータ項目が配置される位置を定義したアイテム化文型を予め設定し、前記日本語変換処理手段により日本語文に変換された設計情報に基づき、日本語文の変換に用いた日本語定型文に対応する処理文又は処理文の組合せに対して、アイテム化文型が設定されている場合に、設定されたアイテム化文型に基づき、日本語文の変換を行った各処理文について着目データの抽出を行うアイテム化処理手段を備えることを特徴とする。
また、前記アイテム化処理手段は、着目データとして抽出したデータ項目が、アイテム化除外データとして予め定義された変数名，関数名と一致するか否かを判定し、一致する場合に着目データの抽出を行わないことを特徴とする。
また、前記詳細設計書生成装置は、前記日本語変換処理手段により生成された日本語文について、前記日本語文の変換に用いた日本語定型文に応じて、条件又は処理に区分した表形式の詳細設計書を生成する設計書生成手段を備えることを特徴とする。
【０００７】
また、本発明の詳細設計書生成方法は、詳細設計書生成装置によりソースコードに基づきプログラムの詳細設計書を生成する方法であって、ソースコード解析手段により、前記ソースコードを読込み、予め定義された所定の先頭予約語に一致する単語に基づき、処理文毎に区分してソースコード設計情報を生成する第一のステップと、ネスト変換手段により、前記ソースコード解析手段により区分された各処理文について、予め先頭予約語の種別に応じて定義されたネスト値情報に基づき、各処理文のネストの深さを示すネスト値を算出し、前記ソースコード設計情報に、算出したネスト値に基づくネスト構造を示す情報を付加する第二のステップと、予め処理文を構成する予約語の組合せとネスト構造とに応じた日本語定型文と、各処理文に含まれる変数名又は関数名に対応する日本語名とを定義した日本語化情報に基づき、日本語変換処理手段により、前記ソースコード設計情報に含まれる各処理文を前記日本語定型文と日本語名とを用いた日本語文に変換する第三のステップとを備えることを特徴とする。
また、前記第三のステップは、ネスト構造を含む複数の処理文の組合せを前記日本語化情報から検索し、対応する処理文の組合せが定義されていない場合に、ネストを持つ処理文とネスト内の処理文とに分けて、それぞれを前記日本語化情報から検索して日本語文に変換するステップをさらに備えることを特徴とする。
また、前記第三のステップは、同一ネスト値の複数の処理文の組合せを前記日本語化情報から検索し、対応する処理文の組合せが定義されていない場合に、処理文数を減らした組合せにより検索処理を行うステップをさらに備えることを特徴とする。
また、前記詳細設計書生成方法は、予め、日本語化情報に定義された日本語定型文に対応する処理文又は処理文の組合せに対し、各処理文又は処理文の組合せにおいて着目データとなるデータ項目が配置される位置を定義したアイテム化文型を設定し、前記第三のステップの後に、前記日本語変換処理手段により日本語文に変換された設計情報に基づき、日本語文の変換に用いた日本語定型文に対応する処理文又は処理文の組合せに対して、アイテム化文型が設定されている場合に、アイテム化処理手段により、予め設定されたアイテム化文型に基づき、日本語文の変換を行った各処理文について着目データの抽出を行うステップをさらに備えることを特徴とする。
また、前記第四のステップは、着目データとして抽出したデータ項目が、アイテム化除外データとして予め定義された変数名，関数名と一致するか否かを判定し、一致する場合に着目データの抽出を行わないことを特徴とする。
また、前記詳細設計書生成方法は、前記第三のステップの後に、前記日本語変換処理手段により生成された日本語文について、前記日本語文の変換に用いた日本語定型文に応じて、設計書生成手段により、条件又は処理に区分した表形式の詳細設計書を生成するステップをさらに備えることを特徴とする。
【発明の効果】
【０００８】
以上の構成により、本発明では、厳密な構文解析をすることなく、日本語文による詳細設計書の生成が可能となり、柔軟な日本語表現への変換が可能になるとともに、汎用的な詳細設計書生成装置を構成することが可能となる。
また、文型情報として複数の処理文を含む文型を定義することにより、複数の処理文を一括して日本語に変換することが可能となる。この場合、ネストを有する処理文について文型が定義されていない場合に、当該処理文と、ネスト内の処理文とを分けて日本語に変換することとしたので、ネスト構造を有する処理文についても適切な日本語変換処理が可能となる。また、複数の処理文の組合せについて文型が定義されていない場合に、処理分数を減らした組合せにより検索処理を行うこととしたので、適切な組合せでの日本語変換処理が可能となる。
また、アイテム化文型を定義することにより、処理文から注目すべきデータ項目を抽出することが可能となる。
また、設計情報に含まれる日本語定型文に対応する区分により、表形式の詳細設計書を生成することとしたので、詳細設計書の可読性を向上させることが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施の形態に係る詳細設計書生成装置について、図面に基づき説明する。
図１は、本実施の形態に係る詳細設計書生成装置の概略構成を示すブロック図である。
詳細設計書生成装置１００は、ソースコード解析部１０１と、ネスト変換部１０２と、日本語変換部１０３と、マッチングエンジン部１０４と、アイテム化部１０５と、設計書生成部１０６の各処理部から構成されている。また、設計書の生成に必要な情報として、予約語情報，ネスト値計算情報，日本語化情報の各情報を格納する情報格納部１０７〜１０９と、ソースファイル１１０に基づき生成した設計情報を格納する設計情報格納部１１１とを有する。
ソースコード解析部１０１は、設計書を生成するプログラムのソースファイル１１０を読込み、予約語情報１０７に予め定義された情報に基づき字句解析を行い、全体的なソースコードの構造と、各処理文毎の単語の集合を設計情報として生成し、設計情報格納部１１１に格納する。
ネスト変換部１０２は、設計情報格納部１１１に格納された設計情報に含まれる処理文についてのネスト情報を設計情報に付加する。ここで、本実施の形態では、条件分岐や繰り返し等の制御構造について、各処理文のネストの深さを示すネスト値をネスト情報として用いている。
日本語変換部１０３は、各処理文を構成する単語及びネスト情報に基づいて、文型とデータ項目とを組み合せて表現される日本語文に変換して設計情報を更新する。
マッチングエンジン部１０４は、日本語変換部１０３から渡される処理文の組合せと一致する文型を日本語化情報格納部１０９から検索して、対応する日本語定型文を取得する。
アイテム化部１０５は、日本語変換部１０３により日本語文に変換された設計情報について、日本語変換処理に用いた文型に対応するアイテム化文型を用いて着目データを抽出し、設計情報に含まれる日本語文を編集する。
設計書生成部１０６は、設計情報に基づき、各日本語文を条件欄，処理欄に区分した表形式の詳細設計書１１２を出力する。
【００１０】
以下、各処理部１０１〜１０６の行う処理の詳細について説明する。
まず、ソースコード解析部１０１の行う設計情報生成処理について、図２，図３に基づき説明する。
図２は、ソースコード解析部１０１が、設計情報の生成を行う際に参照する予約語情報のデータ構造の一例を示す図であり、図３は、ソースコード解析部１０１が解析対象とするソースコードの一例と、当該ソースコードについて予約語情報に基づき生成する設計情報とを示した図である。ここで、図３に示す例は、ソースコードの一部であり、関数の定義部分など全体的な構造は省略している。
図２に示すように、予約語情報２００は、各プログラミング言語毎の予約語２０１と各予約語毎に予め設定された単語区分２０２とが格納されている。ここで、単語区分２０２には、「先頭命令語（１）」「予約語（２）」「変換不要予約語（３）」の３種類が定義されている。「先頭命令語（１）」は、処理分の先頭にのみ現れる予約語である。「予約語（２）」は、処理文の先頭に現れずに処理文の途中にのみ現れる予約語である。「変換不要予約語（３）」は、特殊な予約語で、処理文の先頭にのみ現れる予約語ではあるが、後述する日本語変換部での変換処理の対象外とするものである。
ソースコード解析部１０１は、図２に示す予約語情報に基づき、ソースコードに含まれる各単語の単語区分を判定し、先頭命令語に区分される単語を処理文の区切りとして判定することにより、処理文の集合を組み立てる。
図３に示すように、ソースコード解析部１０１は、読み込んだソースコード３１０を字句解析して言語の規則に応じた単語に分解し、分解した単語が図２に示す予約語情報２００の単語と一致した場合には単語区分を設定し、不一致の単語は単語区分を「その他（０）」とする。ここで設定された単語区分が「先頭命令語（１）」又は「変換不要予約語（３）」である単語を処理文の区切りと判定することにより、処理文の集合を組み立て、設計情報３２０を生成する。
設計情報３２０では、各処理文毎について、ソースコード３１０の並び順に番号３２１が振られている。但し、ソースコード３１０中で複数行にまたがる一つの処理文も存在するため、ソースコード３１０中の行番号と一致するとは限らない。各処理文については、処理文を構成する単語毎に、予約語情報に定義された単語区分３２２が括弧数字で付与されている。
【００１１】
次に、ネスト変換部１０２によるネスト構造解析処理について、図４，図５に基づき説明する。
図４は、ネスト構造の解析に用いられるネスト値計算情報格納部１０８に格納されるネスト値計算表の一例を示す図であり、図５は、ネスト構造解析処理によりネスト情報が追加された設計情報を示す図である。
ネスト値計算表４００は、ネスト構造に関係する先頭予約語に応じたネスト値の計算方法を定義したものであり、ネスト構造を示す情報としてのネスト値計算の基準となる単語４０１と、計算方法４０２とが定義されている。ここで、ネスト値とは、ネストの列の数値であり、各処理文についてのネストの深さを示している。
ネスト変換部１０２は、設計情報に含まれる各処理文の先頭語と、単語４０１の情報とを比較し、先頭語が単語４０１に定義されたものと一致した場合に、計算方法４０２に定義された情報に基づき、各処理文のネスト値の算出を行う。なお、先頭語が単語４０１に定義されたものと一致しない場合には、前の処理文のネスト値と同一の値とする。
図５は、図４に示すネスト値計算表４００に定義された計算方法に基づきネスト値を設定した設計情報を示す図である。
ネスト構造解析処理後の設計情報５００では、図３に示す設計情報に含まれる各処理文に対し、算出されたネスト値５０１が付加されている。
本例では、２番目の処理文の先頭語が「ＩＦ」であるため、以降の処理文のネスト値を「＋１」する。同様に、以降の処理文についてネスト値計算表４００に基づくネスト値の算出を行い、各処理文について算出したネスト値を設計情報に付加する。このように、ネスト値計算情報を用いて、先頭語に基づく判定とネスト値の算出とを行うことにより、厳密な構文解析を行うことなく、各処理文について制御構造に応じたネストの値を設定することを可能としている。
図６は、図５に示す設計情報に含まれる各処理文に対し、ネスト値に対応するインデントを付けて視覚的にネスト構造を表した例を示す図である。以降は、図６の形式の設計情報を用いて説明する。
【００１２】
ネスト変換部１０２によるネスト構造解析処理が行われた後には、日本語変換部による日本語変換処理が行われる。
図７，図８は、日本語変換処理に用いられる日本語化情報の一例を示す図である。
図７は、日本語化情報の一つとしての文型辞書を示す図であり、文型辞書７００には、１つの文型に関する情報として、管理用の一意名番号であるキー７０１と、設計書に用いる日本語定型文７０２と、各日本語定型文７０２に対応するソースコードの文型７０３とが定義されている。
本例では、文型辞書に示す日本語定型文の文字列の中には、特殊な文字として□が含まれるものがあり、日本語定型文中の□はソースコード中の＄１や＄２対応している。ここで、＄１，＄２は、特殊記号であり、日本語化処理の際に、各処理文に含まれる変数名や関数名などの名称や定数値が入る可変部分を定義したものである。また、＄１は、日本語定型文中の１つ目の□と対応付けされ、＄２は日本語定型文中の２つ目の□と対応づけされている。これにより検索対象のソースコードによって変化しやすい可変部分に依存しない汎用的な文型を定義することが可能となる。
例えば、キー「０００１」に示される文型は、ＭＯＶＥ文の文型と日本語定型文との対応関係を定義しており、２つの可変部分を含んでいる。従って、この文型により可変部分とは無関係に汎用的に日本語文への変換が可能となる。
一方、キー「０００３」に示される文型は、キー「０００１」の文型と同様にＭＯＶＥ文を定義したものであるが、可変部分の１つが「ＺＥＲＯ」に固定されているため、汎用性は低下することとなるが、日本語文の表現の自由度が増すこととなる。
また、キー「００１２」に示される文型のように、ソースコードの中に複数の処理文を定義することもできる。この場合、個々の処理文に対応する文型も汎用性の点から用意されるが、複数の処理文が連続することに業務的な意味がある場合には、１つの文型として日本語文で設計書を表現した方が、可読性が向上する。さらに、キー「０００６」のように条件分岐の部分だけの文型もソースコードと対応付けて用意する。これは、本発明の特徴でもある表形式の設計書の中で、条件欄で使用される日本語表現のためのものである。
さらに、キー「００１３」に示される文型は、条件分岐の部分と処理部分を組み合わせた文型であり、ネスト構造を含めた処理文を検索対象の範囲とした一括のマッチングを意識したものである。
なお、キー「０００２」，「００１４」に示される文型のように、ソースコードに「＆ＩＴＥＭ」という特殊記号を含む文型（以下、「アイテム化文型」とする。）は、後述するアイテム化部１０５の処理で利用される文型であり、＄１，＄２等の可変部分を含む文型と対で用意される。アイテム化文型の詳細については、アイテム化部１０５の処理の説明で詳述する。
図８は、日本語化情報の一つとしてのデータ項目辞書を示す図であり、データ項目辞書８００には、１つのデータ項目に関する情報として、管理用の一意名番号であるキー８０１と、詳細設計書での日本語表現となる日本語名８０２と、日本語名に対応するデータ項目の英語名８０３とが定義されている。英語名８０３には、ソースコード中の英語名から一意にデータ項目を特定するための補足情報として、レベル，データ型，データ長が含まれている。
変換対象となるデータ項目としては、ソースコードに含まれる変数名がほとんどであるが、本発明では、変数名以外に、キー「０００７」，「０００９」に示すように、ソースコード中で名前として現れる関数名やモジュール名についても英語名と日本語名を対応付けて定義し、詳細設計書における日本語表現を向上させている。
データ項目辞書に格納するデータ項目と対応する日本語名とは、事前にデータ項目に関する全ての情報を登録して日本語変換部１０３やマッチングエンジン部１０４等で英語名に対応するものを検索して、その日本語名を取得する方法と、ソースコード解析部１０１でソースコードに定義されている変数や関数名等を解析して、動的にデータ項目辞書８００に格納して、日本語名については格納時に文字列置換等で生成する方法とがある。前者の方法は、事前の準備作業が多くなるが、より自然で正しい日本語名になるため設計書での日本語表現が向上する。一方、後者の方法は、文字列置換のパターンを事前に準備するだけであるため準備作業は少なくなるが、機械的な置換であるので、設計書での日本語表現は前者に比べて劣ることとなる。
【００１３】
以上のように構成された日本語化情報に基づき、日本語変換部１０３の行う日本語変換処理について説明する。
図９，図１０は、日本語変換部１０３の行う日本語変換処理手順を示すフローチャートである。
日本語変換部１０３は、設計情報に含まれるネスト情報に基づいて、できるだけ広い範囲の複数の処理文を１文の日本語文に変換するように処理を行う。
日本語変換部１０３は、ソースコードを日本語文に変換する処理として、０ネスト目の処理文から１つずつネストが深い処理文に対象を移し、深さ優先探索で再帰的に処理を行う。この再帰的な処理の方法としては、各ネスト目で、複数個の処理文から文型とのマッチングを行い、徐々に少ない個数の処理文へ、一度にマッチングを行う処理文の数を少なくしていく方法（最適範囲選択）と、条件分岐や繰返し処理などのより深いネスト目の処理文を持つ文型について、ネスト構造を構成する全ての処理文を対象に、文型とのマッチングを行い、マッチする文型が無い場合には、起点となる条件分岐の処理文と、より深いネストの処理文とに範囲を２分割してマッチングを行う方法（ネスト方向への範囲選択）とがある。
日本語変換部１０３は、一度にマッチングする処理文の個数（選択数）を「ＭＡＸ１」から「１」まで１つずつ少なくしながら、マッチング処理を繰り返す（ステップ９０１）。この場合、「ＭＡＸ１」の値は、対象としているネスト目にある処理文の個数（対象の処理文数と等価）でもかまわないが、事前に日本語化情報の文型辞書を調べて１つの文型が対応する最大の処理文の数を算出し、当該算出結果を「ＭＡＸ１」として設定することとしてもよい。
日本語変換部１０３は、選択数が対象の処理文数以下か否かを判定し（ステップ９０２）、処理文数以下の場合には、変換対象とする処理文の起点処理文のインデックスを「１」から「ＭＡＸ２」まで、以下のマッチング処理を繰り返す（ステップ９０３）。この場合、「ＭＡＸ２」の値は、「ＭＡＸ２＝対象の処理文数−選択数＋１」で算出する。
ここで、処理文の変換区分には、「未変換」「変換済み」「変換不要」の３種類が定義してある。全ての処理文はマッチング処理以前は「未変換」に設定する。ただし、「ＥＬＳＥ」や「ＴＨＥＮ」などの単語区分が「変換不要予約語」であるものを持つ処理文は「変換不要」に設定する。
マッチング処理では、後述する方法によりマッチング対象処理文の選択を行い（ステップ９０４）、選択した処理文について、変換区分が未変換でない処理文が無いかを判定する（ステップ９０５）。
選択した処理文が全て未変換の場合には、マッチングエンジン部１０４により、選択された処理文について後述する日本語文検索処理を行う（ステップ９０６）。
検索処理の結果に基づき、一致する日本語化情報が存在するか否かを判定し（ステップ９０７）、一致する日本語化情報が存在する場合には、変換処理を行い設計情報を更新する（ステップ９０８）。ここで日本語変換がされた処理文の欄区分は、「処理欄」として、設計情報を更新する。
一方、一致する日本語化情報が存在しない場合には（ステップ９０７）、次のインデックスの処理文について処理を行う。
以上の処理により、対象としているネスト目にある処理文において、ネストを持たない全ての処理文は日本語文に変換されることとなる。一方、ネストを持つ処理文については、ネスト内の処理文を含めた文型が文型辞書に定義されている場合には日本語文に変換されるが、それ以外の場合には、まだ日本語文に変換されていないこととなる。
図１０は、図９の日本語変換処理に続く処理として、図９の処理により日本語変換がされなかった処理文についての日本語変換処理方法を示すフローチャートである。
ここで、図９の処理により日本語変換がされなかった処理文としては、ネストを持つ処理文であって、ネスト内の処理文を含めた文型が文型辞書に定義されていないものを指す。
この処理では、日本語変換がされなかった処理文について、変換対象とする処理文の起点処理文のインデックスを「１」から「対象処理文数」まで、以下のマッチング処理を繰り返す（ステップ１００１）。
マッチング処理では、対象処理文が変換済か否かを判定し、変換済であれば次の処理文について処理を行う（ステップ１００２）。
一方、対象処理文が変換済でない場合には、ネストを持つか否かを判定し（ステップ１００３）、ネストを持つ場合には、直下の処理文を対象として、再帰的に図９に示す処理と同様に日本語変換処理を行う（ステップ１００４）。この再帰呼び出しを繰返すことでネスト構造を１段ずつ掘り下げながら日本語変換を行うこととなる。
一方、対象処理文が変換済でなく、かつ、ネストを持たない場合には（ステップ１００２，１００３）、次のインデックスの処理文について処理を行う。なお、変換区分が未変換でネストを持たないものとは、その単独の処理文に対応する文型が文型辞書に定義されていないものを示す。
直下の処理文について日本語変換処理が行われた後、ネストを除いた部分の処理文のみのマッチング処理を行う（ステップ１００５）。
マッチング処理では、マッチングエンジン部により、選択された処理文について後述する日本語文検索処理を行う。
検索処理の結果に基づき、一致する日本語化情報が存在するか否かを判定し（ステップ１００６）、一致する日本語化情報が存在する場合には、変換処理を行い設計情報を更新する（ステップ１００７）。ここで日本語変換がされた処理文の欄区分は、「条件欄」として、設計情報を更新する。
一方、一致する日本語化情報が存在しない場合には（ステップ１００６）、次のインデックスの処理文について処理を行う。
以上の処理により、ネストを持つ対象処理文について、ネスト内の処理文を含めた文型が文型辞書に定義されていない場合であっても適切な日本語変換処理が可能となる。
【００１４】
図１１は、日本語変換処理におけるマッチング対象処理文の選択方法の一例を説明するための図である。
本例では、１０個の処理文に対して、日本語変換部が選択する対象処理文の組合せを丸印や三角印の記号と選択数とで表しており、１列分を１つの組合せとして、左から順にマッチングエンジン部１０４の検索対象とする。
図中の表では、左欄１１１０には設計情報に含まれる各処理文についての行番号と先頭単語とネスト値とを示し、右欄１１２０にはマッチング対象処理文の範囲と組合せとを示している。右欄１１２０において、黒丸記号１１２１は変換対象としているネスト値の処理文の中で、単語区分が先頭命令語であるものを示し、単独又は後述する白丸記号１１２２と合わせて、１つの組合せとなる。白丸記号１１２２は、変換対象としているネスト値よりも深い位置のネストにある処理文を示し、必ず黒丸記号１１２１と合わせて１つの組合せとなる。二重丸記号１１２３は、ネストを持つ処理文であるが、ネスト内の処理文を含めずに１つの処理文だけが対象処理文として選択されたもので、ステップ１００５によるマッチング処理の対象となる。黒三角記号１１２４は、先頭単語の単語区分が変換不要予約語であるものを示し、白丸記号１１２２と合せて１つの組合せとなるが、実際にはステップ９０５の判定処理により、この組合せのマッチングは実行されずに、図１０に示すフローにより、ネスト内の処理文が次の対象範囲となる。
図９に示す処理で、ネスト値が「０」の処理文を基準として日本語変換処理を行う場合には、ＭＡＸ１をネスト値「０」の処理文数「４」に設定する。
この場合、選択数が「４」の場合、ＭＡＸ２が「１」となり、全ての処理文（行番号「１〜１０」の処理文）の組合せが対象処理文として選択される。次に、選択数が「３」の場合、ＭＡＸ２が「２」となり、行番号「１〜９」の処理文の組合せと行番号「２〜１０」の処理文の組合せとが対象処理文として選択される。さらに、選択数が「２」の場合は３通りの組合せが、選択数が「１」の場合には４通りの組合せが対象処理文として選択されることとなる。
また、図１１の例において、ネストを有するＩＦ文について、図９に示す処理で日本語変換が行われなかった場合には、図１０に示す処理により、ＩＦ文及びネスト内部の各処理文を対象処理文として日本語変換処理が行われることとなる。
図１１の例では、２１通りの対象処理文の例を示しているが、実際の日本語変換処理では、文型辞書に定義された文型のネスト構造や、変換処理後の処理文のスキップ等がされるため、この例よりも少ないパターン数での選択が行われることとなる。例えば、文型辞書において、行番号「１〜１０」の組合せに対応する文型が定義されている場合には、最初の組合せのみが対象処理文として選択され、以降の組合せは評価されないこととなる。
以上のように、検索対象の範囲は、できるだけ浅いネスト目から順に、また、できるだけ選択数の多いものを優先するように変化する。
なお、本実施の形態では、０ネスト目の処理文を含む組合せの範囲において、そのマッチングが成功した場合に、その範囲を一つの部品として扱う。１つの部品には、１つ又は複数個の０ネスト目の処理文が含まれることとなる。部品内の０ネスト目の処理文がネストを持つ場合は、ネスト内の処理文もその部品に含まれる。ここで一つの部品と扱われる範囲毎に、後述するアイテム化部による処理が行われることとなる。
【００１５】
図１２は、日本語変換処理におけるマッチング処理の詳細を示すフローチャートである。
マッチング処理では、マッチングエンジン部は、日本語変換部が選択した対象処理文に含まれる各先頭単語の組合せと同一の先頭単語の組合せを有する文型を文型辞書から取得する（ステップ１２０１）。これは、膨大な数の文型の全てとマッチングすることを防ぐためのものである。
取得した文型について、可変部分の少ないものから順に単語比較処理を繰返す（ステップ１２０２）。ここで、可変部分とは、文型に含まれる特殊記号の個数を示している。今後は「＄１」や「＄２」等の可変部分の個数が少ない文型から順にループしてマッチングさせるものである。これは、できるだけ少ない文型とデータ項目で日本語文を組み立てることが、設計書の日本語表現の向上に繋がるためである。
単語比較処理では、対象処理文と文型とのそれぞれを単語単位に分解して比較し（ステップ１２０３）、文型の対応付け判定を行う（ステップ１２０４）。文型の対応付け判定では、特殊記号の単語以外について、文型側の単語に基づき処理文側の単語の「同一」「変更」「追加」「削除」等の判定を行う。
文型の対応付け判定処理の結果、特殊記号の単語以外の全ての単語が「同一」であった場合には、特殊記号について対応付け判定を行う（ステップ１２０５）。特殊記号の対応付け判定では、文型側の特殊記号に対応する対象処理文側の単語が変数名又は定数であるか否かの判定を行う。
特殊記号の対応付け判定の結果、特殊記号に対応する単語が変数名又は定数であった場合には、マッチングが成功したものとして、マッチング確定処理を行う（ステップ１２０６）。マッチング確定処理では、マッチングに用いた文型と、特殊記号に対応するデータ項目のキー又は定数とを日本語変換部に戻す情報として組み立てる。
一方、文型の対応付け判定処理の結果、「同一」以外の判定結果が出た場合、または、特殊記号の対応付け判定処理の結果、特殊記号に対応付けがされない場合は、他の文型について繰り返し処理を行う（ステップ１２０３〜１２０５）。
【００１６】
図１３は、マッチング処理における単語比較処理方法の一例を説明するための図である。
図１３（ａ）は、単語比較処理を行うソースコードの一例を示す図である。本例では、文型辞書に格納された文型を示す文型側ソースコード１３０１と、対象処理文を示す処理文側ソースコード１３０２を示している。
各ソースコード１３０１，１３０２を単語単位で比較した結果について、図１３（ｂ）に示す。
図１３（ｂ）に示すように、各ソースコード１３０１，１３０２について、同一の単語を基準として順に比較を行う。
まず、文型の対応付け判定処理では、特殊記号「＄１」「＄２」「＄３」「＄４」を除いた各単語について比較処理を行う。この場合「＋」「１」は判定結果が「削除」となっているため、対応付け判定処理結果は「ＮＧ」となる。
一方、特殊記号の対応付け判定処理では、「＄１」「＄２」「＄３」「＄４」について、対応する処理文側の単語が変数名又は定数であるか否かを判定する。特殊記号の対応付け判定処理では、「＄３」に対応する単語は「ＤＡＴＡ＿Ｂ」だけでなく「（,１０，）」も対応するものとして判定を行う。従って、この場合には、追加部分が存在するため、仮に文型の対応付け判定処理結果が「ＯＫ」の場合であっても、特殊記号の対応付け判定処理結果は「ＮＧ」となる。
なお、比較のためのエンジンは、ＤＩＦＦのような差分エンジンを利用する方法や、単純に1つ目の単語から同じ単語を意識しながら順に比較する独自エンジンを利用する方法などがあるが、本発明では、どのような方法を利用した場合でも、結果として個々の単語の比較結果が、同じ・変更・削除・追加のいずれかであるかを得られればよい。
【００１７】
図１４は、日本語変換処理の行われた設計情報のデータ構造の一例を示す図である。
設計情報１４００では、各処理文に対し、文型キー１４０１，データ１４０２，日本語文１４０３，欄区分１４０４の各データ項目が付加されている。
文型キー１４０１は、各処理文について日本語変換処理で文型辞書から取得した文型を識別する情報を示し、データキー１４０２は、データ項目辞書から取得したデータを識別する情報を示す。
欄区分１４０４は、日本語変換部１０３により設定された「条件欄」「処理欄」のいずれかの区分を示す。
なお、日本語変換処理において、例外的に変換の行われなかった処理文については、ソースコードのまま出力されることとなる。
【００１８】
日本語変換部１０３による日本語変換処理が行われた後には、アイテム化部１０５により、各部品の中から着目すべきデータを取出すためのアイテム化処理が行われる。
ここで、部品とは、
図１５は、アイテム化部１０５によるアイテム化処理に用いるアイテム化文型の一例として、通常文型との対応の一例を示す図であり、図１６は、通常文型とアイテム化文型とにおける特殊記号の対応を示す図である。
図１５に示すように、１個の通常文型１５０１に対して０個又は１個のアイテム化文型１５０２が対応付けされている。ある通常文型に対応付け可能なアイテム化文型の条件として、特殊記号以外の単語が全て同じであること、□の個数が１つ少ないこと、図１６に示すように特殊記号の対応が矛盾無くできることが必要となる。
この特殊記号の対応は、アイテム化部１０５が利用する基本的な情報となり、以上のようなアイテム化文型を用いることにより、「＆ＩＴＥＭ」に対応する変数名を着目すべきデータとして、設計情報の日本語文を整理する処理を行う。
【００１９】
図１７は、アイテム化部によるアイテム化処理を示すフローチャートである。
アイテム化部は、部品毎に設計情報を取得し、各部品の中に含まれる文型について、以下のアイテム化処理を繰返す（ステップ１７０１）。
アイテム化処理では、文型について文型辞書を検索し、対応するアイテム化文型が割当てられているかを判定する（ステップ１７０２）。処理対象文型についてアイテム化文型が無い場合には、処理をスキップして、次の文型を対象とする。
処理対象文型についてアイテム化文型がある場合には、＆ＩＴＥＭ対応データ判定処理を行い（ステップ１７０３）、「＆ＩＴＥＭ」に対応するデータがデータ項目か定数値のどちらかを判定する。「＆ＩＴＥＭ」に対応するデータが定数値の場合には、着目データにはできないため、処理をスキップして次の文型を対象とする。
「＆ＩＴＥＭ」に対応するデータがデータ項目であった場合には、アイテム化除外データ判定処理を行い（ステップ１７０４）、データ項目が所定の除外データに該当するか否かを判定する。除外データに該当する場合には、処理をスキップして次の文型を対象とすｒ。ここで、除外データとは、着目データとして相応しくないデータ項目として予め除外データ項目辞書に格納された変数名を示しており、データとしての重要度の低いものが該当する。
除外データに該当しない場合には、アイテム化処理として、通常文型をアイテム化文型に置換えるとともに、日本語文の編集処理を行う（ステップ１７０５）。
さらに、部品内の対象文型以外の全ての文型に対して、ステップ１７０５でアイテム化処理を行ったデータ項目と同じものでアイテム化処理を行う（ステップ１７０６）。この場合には、部品内の他の文型がアイテム化文型を持つか否かを判定し、アイテム化文型を持つ文型について「＆ＩＴＥＭ」に対応するデータ項目が、ステップ１７０５でアイテム化処理を行ったデータ項目と同一であるか否かを判定して、同一である場合に、共通のデータ項目でアイテム化を行うこととなる。これにより可能な限り通常文型をアイテム化文型に置換え、部品の日本語表現の可読性を向上させる。
【００２０】
図１８は、アイテム化処理後における設計情報の日本語文の編集結果の一例を示す図である。
アイテム化処理前の日本語文１８１０に対し、アイテム化処理後の日本語文１８２０では、「＆ＩＴＥＭ」に対応するデータ名１８２１の項目が付加されている。このデータ名１８２１に示される変数名が部品の中で着目すべきデータを示しており、さらに、日本語文がデータ名の省略された簡潔な表現となっている。
以上のように、アイテム化部では、通常の文型とアイテム化文型という特殊な文型とを対応付けるだけで、複雑な構文解析や定義情報を用いずに、着目すべきデータ項目の抽出を実現している。
【００２１】
図１９は、アイテム化処理の行われた設計情報のデータ構造の一例を示す図である。
設計情報１９００は、データ名キー１９０１，データ名１９０３の項目が追加されるとともに、文型キー１９０２が通常文型を示す文型キーからアイテム化文型を示す文型キーに置換えられ、さらに、日本語文１９０４が図１８に示す日本語文に編集されている。
なお、本例では、データＣについて、ステップ１７０６により共通のデータ項目でのアイテム化を行っている。
このように、アイテム化文型という定義を導入することにより、着目すべきデータが文型のソースコード中のどのデータであるかを簡単に定義することができ、この定義に従って日本語表現を簡単に置換えることが可能となる。
【００２２】
以上のアイテム化処理が行われた設計情報について、部品単位で詳細設計書の生成を行う。
図２０は、設計書生成部により行われる設計書生成処理の概要を示すフローチャートである。
設計書生成部は、部品毎にデータ名の出力処理（ステップ２００１）及び条件欄・処理欄の出力処理（ステップ２００２）を行った後、条件欄・処理欄出力処理で埋められなかった条件欄，処理欄の空欄を埋めるための整形処理を行い（ステップ２００３）、詳細設計書を出力する。
【００２３】
図２１は、欄区分の出力処理に用いられるマッピング制御情報のデータ構造の一例を示す図である。
マッピング制御情報２１００は、出力する条件欄の位置を決定する際に参照する情報であり、各処理文の先頭単語に対応する単語２１０１と、条件欄の出力位置の算出に用いる条件欄位置・行位置２１０２と、処理文を詳細設計書に表示するか否かを示す表示２１０３と、次の処理文における条件欄の基準位置の算出に用いる条件欄位置・行位置２１０４との各データ項目を有する。
【００２４】
以上のようなマッピング制御情報２１００に基づき、設計書生成部の行う条件欄・処理欄出力処理の詳細について説明する。
図２２は、ステップ２００２に示す条件欄・処理欄出力処理の詳細を示すフローチャートである。
条件欄・処理欄出力処理では、処理対象となっている部品に属する対象処理文毎に以下の処理を繰返す（ステップ２２０１）。
まず、欄区分が条件欄か否かを判定し（ステップ２２０２）、条件欄である場合には、対象処理文の先頭単語に基づき、マッピング制御情報２１００を参照して、条件欄の出力位置を計算する（ステップ２２０３）。条件欄の位置の計算では、条件欄位置・行位置２１０２の値を取得し、基準位置としての条件欄位置・行位置に対し、取得した値を加えて出力位置を決定する。なお、取得した行位置の値を加えた場合に空行が生じる場合には、行位置の値は加えないこととする。ここで、基準位置については、後述するステップ２２０５の処理で説明する。
決定した条件欄の位置に日本語文を出力する（ステップ２２０４）。
その後、マッピング制御情報２１００を参照し、次の処理文についての条件欄の基準位置を計算する（ステップ２２０５）。次の処理文についての条件欄の基準位置の計算では、条件欄位置・行位置２１０４の値を取得し、ステップ２２０３の計算処理により決定された条件欄の出力位置に対し、取得した値を加えて、次の処理文についての基準位置とする。
一方、ステップ２２０２で、欄区分が条件欄で無い場合には、処理欄に日本語文を出力する（ステップ２２０６）。
日本語文の出力が終了した後、次に出力対象とする処理文を取得して処理を繰返す（ステップ２２０７）。この場合、欄区分が条件欄のものは、自分の直下のネストの処理文を取得し、欄区分が処理欄のものは自分と同じネスト値で自分の直後にある処理文を取得する。
ここで、対象とする処理文がなくなった場合にはループを抜け、部品出力処理を終了する。
【００２５】
図２３〜２５は、ネスト構造を有する処理文についての条件欄位置の決定方法の具体例を説明するための図であり、マッピング制御情報から取得した条件欄位置・行位置の値に基づく出力位置の移動を矢印により示している。
各図において、黒丸は図２２のステップ２２０５の計算処理で決定する基準位置を示し、白丸はステップ２２０３の計算処理で決定する出力位置を示す。
図２３に示すＩＦ文の出力位置では、「ＩＦ」を先頭単語とする処理文は、マッピング制御情報２１００から取得した条件欄位置・行位置２１０２の値は、双方とも「±０」であるため、出力位置は基準位置と同じ欄２３０１となる。「ＴＨＥＮ」を先頭単語とする処理文は、「ＩＦ」についての条件欄位置・行位置２１０４の値がそれぞれ「＋１」「±０」であり、条件欄位置・行位置２１０２の値が双方とも「±０」であるため、基準位置が欄２３０２になるとともに、出力位置も欄２３０２となる。なお、「ＴＨＥＮ」は表示区分２１０２が「×」（非表示）に設定されているため、日本語文の出力はされないこととなる。また、「ＥＬＳＥ」を先頭単語とする処理文は、「ＴＨＥＮ」についての条件欄位置・行位置２１０４の値が双方とも「±０」であり、「ＥＬＳＥ」についての条件欄位置・行位置２１０２の値がそれぞれ「−１」「＋１」であるため、基準位置が欄２３０２になるとともに、出力位置が欄２３０３となる。さらに、「ＥＮＤ−ＩＦ」を先頭単語とする処理文は、「ＥＬＳＥ」についての条件欄位置・行位置２１０４の値がそれぞれ「＋１」「±０」であり、「ＥＮＤ−ＩＦ」についての条件欄位置・行位置２１０２の値がそれぞれ「−１」「＋１」であるため、基準位置が欄２３０４になるとともに、出力位置が欄２３０５となる。
同様に図２４に示４ＥＶＡＬＵＡＴＥ文の場合には、「ＥＶＡＬＵＴＥ」，「ＷＨＥＮ」，「ＷＨＥＮ」，「ＥＮＤ−ＥＶＡＬＵＴＥ」の各処理文の出力位置が欄２４０１，２４０２，２４０３，２４０４のそれぞれに決定され、また、図２５に示すＰＥＲＦＯＲＭ文の場合には、「ＰＥＲＦＯＲＭ」，「ＥＮＤ−ＰＥＲＦＯＲＭ」の各処理文の出力位置が欄２５０１，２５０２に決定されることとなる。
【００２６】
ステップ２００３に示す整形処理では、条件欄・処理欄出力処理により各出力位置に日本語文の出力された設計書について、条件欄の空欄部分を「無条件」「同上」で埋める処理を行う。
空欄部分の埋め方の規則としては、次の通りとする。
１．整形処理は１つの処理文毎に行う。
２．番号の大きな条件欄から順に埋めていく。
３．同じ列の１行上の欄が「無条件」もしくは空白の場合は、「無条件」を入れる。
４．同じ列の１行上の欄が「同上」もしくは条件式の場合は、「同上」を入れる
５．２〜４を全ての処理文について行う
以上の規則に応じて整形処理を行った例を図２６に示す。
図２６では、整形処理前の出力情報２６１０の条件欄に各空欄部分２６１１〜２６１９が存在している。この場合に、前述の整形規則に応じた整形処理を行うことにより、出力情報２６２０では、空欄部分２６１１〜２６１９が「無条件」で埋められることとなる。
【００２７】
以上の処理により、ソースコードから詳細設計書の生成を行う。
図２７は、設計書生成処理により生成された詳細設計書の一例として、ソースコード２７１０に対して生成される詳細設計書２７２０を示している。
本例に示す詳細設計書２７２０は、着目データを示すデータ名２７２１，複数の条件欄２７２２〜２７２４，処理欄２７２５の各欄から構成されている。
本例では、コード部２７１１に示す２行が、一括して「データＢ」をデータ名とする日本語文に変換され、コード部２７１２に示す５行が、一括して「データＤ」をデータ名とする日本語文に変換されている。この場合、コード部２７１２に示すように、ＩＦ文を含むネスト構造であっても、文型辞書に複数行を一括変換する日本語文が定義されている場合には、処理欄にのみ日本語文が出力される。
また、コード部２７１３に示す８行及びコード部２７１４に示す８行は、それぞれ「データＹ」，「データＷ」をデータ名とする日本語文に変換されている。この場合、それぞれのネスト構造に対応した条件文及び処理文の組合せで出力されているため、可読性の高い日本語表現を表示させることが可能となる。
【００２８】
以上のように、本実施の形態に係る詳細設計書生成装置では、ソースコードについて各言語の仕様に応じた厳密な構文解析を行うことなく、柔軟な日本語表現への変換が可能になるとともに、汎用的な日本語変換が可能となる。
また、文型情報として複数の処理文を含む文型を定義することにより、複数の処理文を一括して日本語に変換することが可能となる。この場合、ネストを有する処理文について文型が定義されていない場合に、当該処理文と、ネスト内の処理文とを分けて日本語に変換することとしたので、ネスト構造を有する処理文についても適切な日本語変換処理が可能となる。また、複数の処理文の組合せについて文型が定義されていない場合に、処理分数を減らした組合せにより検索処理を行うこととしたので、適切な組合せでの日本語変換処理が可能となる。
また、アイテム化文型を定義することにより、処理文から注目すべきデータ項目を抽出することが可能となる。
また、設計情報に含まれる日本語定型文に対応する区分により、表形式の詳細設計書を生成することとしたので、ネスト構造を含む制御構造を視覚的に表現することができ、詳細設計書の可読性を向上させることが可能となる。
【００２９】
なお、前記実施の形態では、ＣＯＢＯＬ言語により記述されたソースコードを処理するための構成について説明しているが、これに限られるものでは無く、他の言語に対応した予約語情報，日本語化情報等を予め定義することにより、種々の言語で記述されたソースコードに基づく詳細設計書の生成が可能と成る。
また、本発明を構成する各処理部及び各情報格納部のデータ構造等についても、前記実施の形態に限られるものでは無く、同様の処理が可能であれば変更してもよく、例えば、詳細設計書生成装置を複数の端末により構成することとしてもよい。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施の形態に係る詳細設計書生成装置の概略構成を示すブロック図である。
【図２】ソースコード解析処理に用いられる予約語情報格納部のデータ構造の一例を示す図である。
【図３】ソースコード解析処理の解析対象とするソースコードの一例と、当該ソースコードについて予約語情報に基づき生成する設計情報の一例とを示した図である。
【図４】ネスト構造の解析処理に用いられるネスト値計算情報格納部に格納されるネスト値計算表の一例を示す図である。
【図５】ネスト構造解析処理によりネスト情報が追加された設計情報を示す図である。
【図６】図５に示す設計情報に含まれる各処理文に対し、ネスト値に対応するインデントを付けて視覚的にネスト構造を表した例を示す図である。
【図７】日本語化情報の一つとしての文型辞書のデータ構造の一例を示す図である。
【図８】日本語化情報の一つとしてのデータ項目辞書のデータ構造の一例を示す図である。
【図９】日本語変換部の行う日本語変換処理手順を示すフローチャートである。
【図１０】図９の処理により変換されなかった処理文について行う日本語変換処理手順を示すフローチャートである。
【図１１】日本語変換処理におけるマッチング対象処理文の選択方法の一例を説明するための図である。
【図１２】日本語変換処理におけるマッチング処理の詳細を示すフローチャートである。
【図１３】マッチング処理における単語比較処理方法の一例を説明するための図である。
【図１４】日本語変換処理の行われた設計情報のデータ構造の一例を示す図である。
【図１５】アイテム化部によるアイテム化処理に用いるアイテム化文型の一例として、通常文型との対応の一例を示す図である。
【図１６】通常文型とアイテム化文型とにおける特殊記号の対応を示す図である。
【図１７】アイテム化部によるアイテム化処理を示すフローチャートである。
【図１８】アイテム化処理後における設計情報の日本語文の編集結果の一例を示す図である。
【図１９】アイテム化処理の行われた設計情報のデータ構造の一例を示す図である。
【図２０】設計書生成部により行われる設計書生成処理の概要を示すフローチャートである。
【図２１】欄区分の出力処理に用いられるマッピング制御情報のデータ構造の一例を示す図である。
【図２２】条件欄・処理欄出力処理の詳細を示すフローチャートである。
【図２３】ネスト構造を有する処理文についての条件欄位置の決定方法の一例を示す図である。
【図２４】ネスト構造を有する処理文についての条件欄位置の決定方法の他の例を示す図である。
【図２５】ネスト構造を有する処理文についての条件欄位置の決定方法の他の例を示す図である。
【図２６】整形処理前の各欄の出力例と、整形処理後の各欄の出力例との一例を示す図である。
【図２７】ソースコードと、本実施の形態に係る詳細設計書生成装置により生成された詳細設計書との一例を示す図である。
【符号の説明】
【００３１】
１００  詳細設計書生成装置、１０１  ソースコード解析部、１０２  ネスト変換部、１０３  日本語変換部、１０４  マッチング処理部、１０５  アイテム化部、１０６  設計書生成部、１０７  予約語情報格納部、１０８  ネスト値計算情報格納部、１０９  日本語化情報格納部、１１０  ソースコード、１１１  設計情報格納部、１１２  詳細設計書。
【図１】
2005275465.tif 000003
【図２】
2005275465.tif 000004
【図３】
2005275465.tif 000005
【図４】
2005275465.tif 000006
【図５】
2005275465.tif 000007
【図６】
2005275465.tif 000008
【図７】
2005275465.tif 000009
【図８】
2005275465.tif 000010
【図９】
2005275465.tif 000011
【図１０】
2005275465.tif 000012
【図１１】
2005275465.tif 000013
【図１２】
2005275465.tif 000014
【図１３】
2005275465.tif 000015
【図１４】
2005275465.tif 000016
【図１５】
2005275465.tif 000017
【図１６】
2005275465.tif 000018
【図１７】
2005275465.tif 000019
【図１８】
2005275465.tif 000020
【図１９】
2005275465.tif 000021
【図２０】
2005275465.tif 000022
【図２１】
2005275465.tif 000023
【図２２】
2005275465.tif 000024
【図２３】
2005275465.tif 000025
【図２４】
2005275465.tif 000026
【図２５】
2005275465.tif 000027
【図２６】
2005275465.tif 000028
【図２７】
2005275465.tif 000029