(57)【要約】【課題】ソースプログラムからプログラム仕様書を容易且つ高速に生成するプログラム仕様書作成装置、方法、プログラムを提供する。【解決手段】プログラム仕様書作成装置の表示装置２１はユーザにＧＵＩ機能を提供し、入力装置２２はデータ入力機能を提供し、外部記憶装置２３はソースプログラムその他のプロジェクト資産を保存し、印刷装置２４はプログラム仕様書を印刷する。演算装置２５にはコメントキーワード設定部３１、コメント抽出部３２、プロジェクト資産管理部３３、差分解析部３４、仕様書生成部３５及び仕様書印刷部３６の各モジュールが実装される。先ず、ソースプログラムからコメントを検索するキーワードの候補を抽出し、設定し、確認して、この確認されたキーワードに基づいてファイルの違いに関するコメント、シンボルの違いに関するコメント、処理手続きの違いに関するコメントをコメント項目毎に抽出して、改版仕様書として印刷する。【選択図】図２
2006190332.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出手段と、該コメントキーワード候補抽出手段により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定手段と、該コメントキーワード設定手段により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認手段と、該コメントキーワード確認手段により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出手段と、該コメント項目抽出手段により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成手段と、を含んで構成されたことを特徴とするプログラム仕様書作成装置。
【請求項２】
前記コメントキーワード候補抽出手段は、前記ソースプログラムを記述したプログラム言語の言語要素毎にコメントキーワード候補を抽出することを特徴とする請求項１記載のプログラム仕様書作成装置。
【請求項３】
前記コメントキーワード候補抽出手段は、各種コメントを区分けする記述からなるコメントをコメントキーワード候補として抽出することを特徴とする請求項１記載のプログラム仕様書作成装置。
【請求項４】
コンピュータに対して、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出機能と、該コメントキーワード候補抽出機能により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定機能と、該コメントキーワード設定機能により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認機能と、該コメントキーワード確認機能により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出機能と、該コメント項目抽出機能により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成機能と、を実現させるためのプログラム仕様書作成プログラム。
【請求項５】
プログラム仕様書作成プログラムをコンピュータによる読み取り可能に記録した記録媒体であって、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出する機能と、抽出された前記コメントキーワードの候補をコメントキーワードとして選択的に確定する機能と、確定された前記コメントキーワードを前記ソースプログラムと照らし合わせて報知して確認する機能と、確認された前記コメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出する機能と、抽出された前記コメント項目に基づいてプログラム仕様書を生成する機能と、をコンピュータに実行させるためのプログラム仕様書作成プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リエンジニアリング、リバースエンジニアリングの分野において、ソースプログラムからプログラム仕様書を作成する技術に関し、特に、ソースプログラムの変更情報をプログラム仕様書として生成する技術に関する。
【背景技術】
【０００２】
従来より、システムの開発すなわちそのシステムを動作させるプログラムの開発では、先ずプログラムの設計書であるプログラム仕様書を作ってからそのプログラム仕様書に基づいてプログラムつまりソースプログラムを作成するフォーワードエンジニアリングと呼ばれる手法が基本であった。  
【０００３】
ところが、システムを構築してそのシステムを用いる顧客の現場の状況というものは、システムを実働させてみて種々の変更が必要となるのが一般的であるから、そのつどプログラム仕様書を書き換えて、その書き換えたプログラム仕様書に基づいてソースプログラムを変更する従来の手法では、近年の速い時の流れに追い付くことができない。
【０００４】
したがって、近年のプログラム開発では、とにかく先ずソースプログラムの作成から開発作業を開始する。そして、これをコンパイルし、プログラムを動作させ、システムを稼動させてみて、その実働状態を見て顧客と相談しながら臨機応変にプログラムに修正を加えていくプロットタイプ開発と呼ばれる開発手法が採られる場合が多い。したがって開発現場にはプログラム仕様書が存在しない。  
【０００５】
ところで、システムの変更が行われた場合、その変更が正しく行われたかどうかを調べるために、変更前と変更後のソースプログラムを比較する必要がある。その場合、従来では、変更前のソースプログラムと変更後のソースプログラムをそれぞれ記述したテキストを、行単位で順次比較して、変更（追加、削除、変更）があった行を表示している。
【０００６】
しかし、そのようにソースプログラムの変更がソースプログラムを記述したテキスト上に現れる表面上の違いでしか把握出来ないのでは、先ず、プログラムの変更がなぜ行われたのかという重要な事柄を知ることができないし、次に、データ構成や関数構成等システム構成に対してどのような変更があったのかを知ることもできない。更に、上記のように本来あるべき情報が不足しているために資料として保管しても利用の役に立たないという問題が起る。  
【０００７】
そのため、変更の確認にはソースプログラムを隅から隅まで念入りに調べる必要が生じ、多くの労力が必要になるだけでなく、変更に誤りがある場合でもその誤りを見つけにくく、結果として近年のプロットタイプ開発はプログラム変更の信頼性を損なう虞が多分にあるという問題を有していた。
【０００８】
もし、フォーワードエンジニアリングの基本手法でプログラムが開発されていれば、ソースプログラムに即したプログラム仕様書が常に存在するから上記の問題は起きないが、それでは時代の潮流に合わないことは前述した。そこで、上記の問題を解決すべく、現在では、リエンジニアリングと呼ばれる技術によってソースプログラムからプログラム仕様書を生成する方法が種々提案され、実用化されている。      
【０００９】
ところで、一般にプログラム仕様書を作成するためには、コメント規約（コメント情報とそのコメントをソースプログラム内で識別するためのキーワードとの対応規定）が予め定義されている必要がある。つまり、本来は、ソースプログラムを作成する前に、予めコメント規約を定義しておき、そのコメント規約に従ってソースプログラムを記述していれば、そのコメント規約を参照し、そのコメントとキーワードの対応をパラメータとしてプログラム仕様書作成装置に設定することによって、プログラム仕様書の作成を容易に行うことができる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、通常は、コメント規約が策定されていない場合が多く、また、近年では複数のエンジニアで１つのシステムを作リ上げる場合が多いから、作成されたソースプログラムに記述されているコメントの記述様式は統一されていない。したがって、それらのソースプログラムからプログラム仕様書を作成するためには、ばらばらに作成されたソースプログラムを１つ１つ参照しながら、抽出すべきコメントに該当するキーワードを探し出す作業が必要になり、この作業に多くの労力を費やしていた。
【００１１】
また、いずれにしても、それらのプログラム仕様書は、単にソースプログラムからプログラム仕様書を生成して、ソースプログラムを直接調べるよりは内容調査を行いやすくしようとしただけのものであり、プログラムの内容を知るためのコメント抽出なども行われてはいるものの、変更後のプログラムの変更理由やシステム構成さらには変更箇所を情報化したものではかった。
【００１２】
また、ソースプログラムからプログラム仕様書を生成する更なる改良された方法は、本出願人によって先の出願である特願平２−１６６４４２号出願（特開平４−５５９３８号公報）や特願平４−２２０７２１号出願（特開平４−２２０７２１号公報）において提案されている。しかし、これも、変更後のプログラムの変更理由やシステム構成さらには変更箇所を分かり易く情報化することを目的としたものではなかったため、必ずしも改版仕様書としても使用できる理想的なプログラム仕様書とは言い難く、更なる改良が望まれるものであった。
【００１３】
本発明の課題は、リエンジニアリング分野における更なる改良を目的とし、プログラム仕様書その他のドキュメントを高速に生成可能であり、特に変更後のプログラムの変更理由やシステム構成さらには変更箇所等からなるソースプログラムの変更情報を改版プログラム仕様書として生成する技術を上記特願平２−１６６４４２号出願や特願平４−２２０７２１号出願とは異なる方法で実現したプログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラムを提供することである。
【課題を解決するための手段】
【００１４】
図１(a) は第１の発明のプログラム仕様書作成装置における動作原理図であり、図１(b) は第２の発明のプログラム仕様書作成装置における動作原理図である。先ず、第１の発明（請求項１記載の発明）のプログラム仕様書作成装置は、図１(a) に示すように、ソースプログラム解析手段１、コメント抽出手段２、プロジェクト資産管理手段３、差分解析手段４、及び改版仕様書生成手段５から構成される。
【００１５】
上記の各手段において、ソースプログラム解析手段１は、ソースプログラムを解析して該ソースプログラムの構成要素を抽出する。コメント抽出手段２は、上記ソースプログラムに挿入されているコメントからプログラム仕様書に表示すべきコメントを抽出する。プロジェクト資産管理手段３は、上記ソースプログラム、上記ソースプログラム解析手段により抽出された構成要素、及び上記コメント抽出手段により抽出されたコメントを含むプロジェクト資産を保存する。差分解析手段４は、該プロジェクト資産管理手段により保存された日時の異なる上記プロジェクト資産の中の新旧二つのソースプログラムを抽出し、該新旧二つのソースプログラムに定義されているシンボルを比較して違いがあるときは該シンボルの違い情報を抽出し、前記新旧二つのソースプログラムの同一シンボルに付随するコメントを比較して違いがあるときは該コメントの違い情報を抽出する。そして、改版仕様書生成手段５は、該差分解析手段により検出された上記違い情報に基づいて改版仕様書を生成する。
【００１６】
次に、第２の発明のプログラム仕様書作成装置は、図１(b) に示すように、コメントキーワード候補抽出手段１１、コメントキーワード設定手段１２、コメントキーワード確認手段は１３、コメント項目抽出手段１４、及びプログラム仕様書生成手段１５から構成される。
【００１７】
上記の各手段において、コメントキーワード候補抽出手段１１は、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出する。コメントキーワード設定手段１２は、該コメントキーワード候補抽出手段により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定する。コメントキーワード確認手段は１３、該コメントキーワード設定手段により確定されたコメントキーワードを上記ソースプログラムと照らし合わせて報知して確認する。コメント項目抽出手段１４は、該コメントキーワード確認手段により確認されたコメントキーワードに基づいて上記ソースプログラムからコメント項目を抽出する。プログラム仕様書生成手段１５は、該コメント項目抽出手段により抽出されたコメント項目に基づいてプログラム仕様書を生成する。
【００１８】
更に、本発明のプログラム仕様書作成方法は、上記第１の発明に基づく方法であり、ソースプログラムを解析して該ソースプログラムの構成要素を抽出するソースプログラム解析工程と、上記ソースプログラムに挿入されているコメントからプログラム仕様書に表示すべきコメントを抽出するコメント抽出工程と、上記ソースプログラム、上記ソースプログラム解析工程により抽出された上記構成要素、及び上記コメント抽出工程により抽出された上記コメントを含むプロジェクト資産を保存するプロジェクト資産管理工程と、該プロジェクト資産管理工程により保存された日時の異なる前記プロジェクト資産の中の新旧二つのソースプログラムを抽出し、該新旧二つのソースプログラムに定義されているシンボルを比較して違いがあるときは該シンボルの違い情報を抽出し、前記新旧二つのソースプログラムの同一シンボルに付随するコメントを比較して違いがあるときは該コメントの違い情報を抽出する差分解析工程と、該差分解析工程により抽出された各上記違い情報に基づいて改版仕様書を生成する改版仕様書生成工程と、を含んで構成される。
【００１９】
そして、本発明のプログラム仕様書作成方法は、上記第２の発明に基づく方法であり、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出工程と、該コメントキーワード候補抽出工程により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定工程と、該コメントキーワード設定工程により確定されたコメントキーワードを上記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認工程と、該コメントキーワード確認工程により確認されたコメントキーワードに基づいて上記ソースプログラムからコメント項目を抽出するコメント項目抽出工程と、該コメント項目抽出工程により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成工程と、を含んで構成される。
【００２０】
また、本発明のプログラム仕様書作成プログラムは、コンピュータに対して、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出機能と、該コメントキーワード候補抽出機能により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定機能と、該コメントキーワード設定機能により確定されたコメントキーワードを上記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認機能と、該コメントキーワード確認機能により確認されたコメントキーワードに基づいて上記ソースプログラムからコメント項目を抽出するコメント項目抽出機能と、該コメント項目抽出機能により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成機能と、を実現させるためのプログラムである。
【発明の効果】
【００２１】
以上詳細に説明したように、本発明によれば、新旧双方のプロジェクト資産を構成するソースプグラムァイルの存在を比較して得られたプロジェクト構成の相違情報に基づいてプロジェクト構成改版仕様書を作成できるので、ユーザはプロジェクト間で追加又は削除されたソースプログラムファイルやプロジェクト間で変更されたソースプログラムファイルがどれであるかを容易に知ることができて便利である。
【００２２】
また、新旧双方のプロジェクト資産の同一ソースプログラムファイルに定義されているシンボル情報に関する相違情報とそのファイルに付随するコメント情報とを併せて記述したファイル改版仕様書を作成できるので、ユーザは変更されたソースプログラムファイルについて詳細な変更内容を容易に知ることができるだけでなく、コメント情報の違いからファイルの変更理由を容易に知ることができ、これにより更なるプログラムの開発・改良に素早く対応できて便利である。
【００２３】
また、新旧双方のプロジェクト資産の同一ソースプログラムファイルに定義されている同一シンボルが子供のシンボルを持つ場合のシンボルの相違情報とそのシンボルに付随するコメント情報を併せて記述したシンボル改版仕様書を作成できるので、ユーザは変更されたソースプログラムファイルの更なる詳細な変更内容を容易に知ることができ、同様に更なるプログラムの開発・改良に素早く対応できて便利である。
【００２４】
また、新旧双方のプロジェクト資産の同一ソースプログラムファイルに定義されている同一シンボルが処理手続きを持つ場合のその処理手続きの相違情報とそれのシンボルに付随するコメント情報を併せて記述した関数改版仕様書を作成できるので、変更されたソースプログラムの処理手続きがどのように変更になったのかを容易に知ることができ、同様に更なるプログラムの開発・改良に素早く対応できて便利である。
【００２５】
また、特別の３つの規則に基づいてコメントキーワード候補を抽出し、そのコメントキーワード候補によりコメントを抽出するキーワードを決定して、仕様書用のコメントを抽出するので、例えば手法が異なる複数人により作成されたソースプログラムであっても、主要なコメントを抽出するためのキーワードの決定が容易であり、これにより、改版仕様書の作成は勿論のこと、仕様書無しで作成された通常のソースプログラムの仕様書でも容易に作成することができるようになって便利である。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面を参照しながら説明する。図２は、一実施の形態におけるプログラム仕様書作成装置の全体構成を示す図である。プログラム仕様書作成装置は、表示装置２１、入力装置２２、外部記憶装置２３、印刷装置２４、及び演算装置２５を含んで構成される。
【００２７】
上記の表示装置２１は、ＣＲＴ、ＬＣＤあるいはプラズマディスプレイ等により構成され、ユーザに対するＧＵＩ（ＧｒａｐｈｉｃａｌＵｓｅｒＩｎｔｅｒｆａｃｅ）機能を提供する。入力装置２２は、キーボード及びマウス等のポインティングデバイスにより構成され、ＧＵＩに対するデータ入力機能を提供する。外部記憶装置２３は、ハードディスク等により構成され、ソースプログラムやそのソースプログラムに付随するプロジェクト資産の保存機能を提供する。印刷装置２４は、プリンタ等により構成され、作成されたプログラム仕様書の印刷機能を提供する。
【００２８】
演算装置２５は、少なくとも、中央処理装置（ＣＰＵ）とメモリとを含んで構成され、メモリにロードされたプログラムによりプログラム仕様書作成装置全体の制御を行う。また、演算装置２５には、コメントキーワード設定部３１、コメント抽出部３２、プロジェクト資産管理部３３、差分解析部３４、仕様書生成部３５、及び仕様書印刷部３６の各モジュールがプログラムにより実装される。
【００２９】
上記のコメントキーワード設定部３１では、表示装置２１及び入力装置２２と連携してＧＵＩが提供され、また、詳しくは後述するように、外部記憶装置２３から読み込まれたソースプログラムファイルからコメントキーワード候補（主要なコメントとして抽出すべきコメントの検索キーワードとなるべき候補）が抽出され、この抽出されたコメントキーワード候補から抽出すべきコメント用のキーワードが設定される。
【００３０】
このコメントキーワード設定部３１が、ソースプログラム解析手段１、ソースプログラム解析工程、コメントキーワード候補抽出手段１１、コメントキーワード設定手段１２、コメントキーワード確認手段１３、コメントキーワード候補抽出工程、コメントキーワード設定工程、コメントキーワード確認工程、コメントキーワード候補抽出機能、コメントキーワード設定機能、又はコメントキーワード確認機能、として作用する。
【００３１】
コメント抽出部３２では、コメントキーワード設定部３１において設定され且つ確認された抽出コメント用のコメントキーワードに基づいて、コメント又はコメント項目が抽出される。このコメント抽出部３２が、コメント抽出手段２、コメント抽出工程、コメント項目抽出手段１４、コメント項目抽出工程、又はコメント項目抽出機能、として作用する。
【００３２】
また、プロジェクト資産管理部３３は、プロジェクト資産を外部記憶装置２３に格納して保存する。ここでプロジェクト資産とは、ソースプログラムや、このソースプログラムから上記のコメント抽出部３２で抽出された構成要素、コメント項目、コメント群の各ファイルのことを言い、最終的にはこれらのファイルから生成されるプログラム仕様書や改版プログラム仕様書をも含む資産を指している。このプロジェクト資産管理部３３がプロジェクト資産管理手段３、又はプロジェクト資産管理工程、として作用する。
【００３３】
差分解析部３４は、上記外部記憶装置２３に保存されたプロジェクト資産を検索して、日時の異なる同一ソースプログラムが存在するか否かを調べ、存在した場合には、それら新旧二つのソースプログラムを抽出する。また、それら新旧二つのソースプログラムファイルの同一ファイルに付随するコメントを比較して、違いがあれば、その違いをコメント違い情報として抽出する。更に、それらのソースプログラムの同一シンボルに付随するコメントを比較して、違いがあれば、その違いをコメント違い情報として抽出する。また、それらのソースプログラムに定義されているシンボルを比較して、違いがあれば、その違いをシンボル違い情報として抽出する。この差分解析部３４が、差分解析手段４、又は差分解析工程、として作用する。
【００３４】
仕様書生成部３５は、上記差分解析部３４が抽出したコメントやシンボルの違い情報を含むプログラム仕様書を改版プログラム仕様書として作成する。この仕様書生成部３５が、改版仕様書生成手段５、改版仕様書生成工程、プログラム仕様書生成手段１５、プログラム仕様書生成工程、又はプログラム仕様書生成機能、として作用する。
【００３５】
仕様書印刷部３６は、上記生成されたプログラム仕様書を必要に応じて印刷装置２４により印刷出力する。これにより、ユーザはソースプログラムの変更情報を容易に知ることができる。
【００３６】
図３及び図４は、上記プログラム仕様書作成装置によって行われるプログラム仕様書作成処理の動作を説明するフローチャートであり、図４は図３のステップＳ１及びＳ３の処理を更に詳細に示したものである。
【００３７】
図５は、上記の処理において処理対象となるソースプログラムの例としてＣ＋＋言語で記述されたソースプログラムのファイル３７を示す図である。尚、同図には説明に必要な部分としてソースプログラムの冒頭部分を１行目から３２行目まで代表的に示している。同図において記号「／／」は、当該行で、その後に続く全ての文字がＣ＋＋コンパイラによって無視されることを示す記号であり、これらの行には一般的にコメントの区切や文が記述される。
【００３８】
この図５に示すように、このソースプログラムファイル３５のファイル名は「ｍａｉｎ．ｃｐｐ」であり記述内容の１行目〜６行目までは行頭に「／／」が置かれたコメント部分、７行目は「＃ｉｎｃｌｕｄｅ」文によるヘッダファイル「ｍａｉｎ．ｈ」の読込み指定部分、８行目〜１５行目までは行頭に「／／」が置かれたコメント部分、１６行目〜２０行目まではプログラムの開始位置を示す「ｖｏｉｄ＿ｍａｉｎ＿（）」文に続く「｛」と「｝」で纏められたプログラム文（図示省略）、２１行目〜２９行目までは行頭に「／／」が置かれたコメント部分、そして、３０行目からは「ｃｌａｓｓ」文でクラス名「ＧａｓＳｔａｔｉｏｎ」が定義された後に続く「｛」と「｝」で纏められたプログラム文（図示省略）が記述されている。
【００３９】
上記の１行目〜６行目までのコメントは、１行目と６行目にそれぞれ記述された２５個の「＊」によるコメント区切り、その間の２行目から５行目までにそれぞれ記述された「概要」、「ｍａｉｎ関数，サブ関数の定義」、「作成者」、「富士通○夫」のコメント文からなっている。このコメントは７行目で読込みが指定されているヘッダファイル「ｍａｉｎ．ｈ」に付随するコメントであり、また、このソースプログラムファイルそのもの、換言すればファイル名称「ｍａｉｎ．ｃｐｐ」に付随するコメントでもある。
【００４０】
また、上記の８行目〜１５行目までのコメントは、８行目と１５行目にそれぞれ記述された２５個の「＊」によるコメント区切り、その間の９行目から１４行目までにそれぞれ記述された「１．名称」、「制御」、「２．概略」、「ガソリンスタンドのシュミレーションの制御（ｍａｉｎ関数）」、「３．機能」、「（１）ガソリンスタンドのシュミレーションの制御をする。」のコメント文からなっている。このコメントは１６行目で実行開始が指定されている「ｍａｉｎ」関数に付随するコメントである。
【００４１】
そして、上記の２１行目〜２９行目までのコメントは、２１行目と２９行目にそれぞれ記述された２５個の「＊」によるコメント区切り、その間の２２行目から２８行目までにそれぞれ記述された「１．日本語クラス名」、「ガソリンスタンドクラス」、「２．概要」、「ガソリンスタンドの状態を管理する」、「３．機能説明」、「（１）ガソリンスタンドの売上を管理する。」、「（２）ガソリンスタンドのタンクの状態を管理する。」のコメント文からなっている。このコメントは３０行目でクラスとして定義されている「ＧａｓＳｔａｔｉｏｎ」ツールに付随するコメントである。
【００４２】
上述したように、本例におけるソースプログラムでは、主要なコメントは、プログラム文を記述した同一行の中間から記述するのではなく、行頭から記述される。一般に、ソースプログラム中にはプログラムの処理内容等がコメントとして記述されており、図５に示すように、ファイルに付随するコメントはファイルの先頭に記述され、シンボルに付随するコメントはシンボルの直前に挿入されている。
【００４３】
尚、「シンボル」とは、例えば、ソースプログラムがＣ＋＋言語で記述されている場合は、メンバ関数、外部関数等のように、１つの特性をもっている要素の集合体を代表して見出しのごとくに用いられる例えば「ｍａｉｎ」、「ＧａｓＳｔａｔｉｏｎ」等のように１語で記述される文字列のことである。
【００４４】
このような記述構成の図５に示すファイル名「ｍａｉｎ．ｃｐｐ」のソースプログラムファイル３７を例として取り上げて、本例のプログラム仕様書作成装置によって行われる図３及び図４に示した処理動作について以下に説明する。尚、以下の説明では、ソースプログラムファイルとソースプログラムを同じ意味で用いる。また、ファイル名も他のプログラムから参照される場合はシンボルとなるものであり、ここではファイル内のシンボルと同様にそのファイルの名称もシンボルとして取り扱う。
【００４５】
先ず図３のフローチャートにおいて、変更前のプログラム言語のコメント文を解析する（ステップＳ１）。この処理は、変更前のソースプログラム（旧ソースプログラム）と変更後のソースプログラム（新ソースプログラム）がある場合に、先ず変更前のソースプログラムに対して行われる処理である。これを図４のフローチャートを用いて説明する。
【００４６】
先ず、プログラム言語を解析する（ステップＳ１１）。この処理は、ソースプログラム、例えば図５R>５に示すソースプログラム３７（ここでは、これを変更前のソースプログラムとする）を、Ｃ＋＋言語の言語仕様に従って解析し、定義されているシンボルと、その開始行（シンボルが記述されている行）の番号を抽出する処理である。
【００４７】
図６(a) は、上記のプログラム言語解析処理によって得られ、外部記憶装置２３の所定の領域に構築された定義シンボル・開始行対応データファイルの例を示す図である。同図(a) に示すように、上記抽出された定義シンボルとその開始行とに基づいて作成される定義シンボル・開始行対応データファイル３８は、シンボル名として「ｍａｉｎ」と「ＧａｓＳｔａｔｉｏｎ」が示されており、これらに、シンボルの種類として「関数」と「クラス」がそれぞれ付加され、その後に、それぞれのシンボルに対応する開始行番号として「１６」及び「３０」が示されて構築されている。
【００４８】
尚、同図には図５に示した簡略なソースプログラム３７から抽出した例を示しているため、定義シンボル名が２つしか示されていないが、業務用のソースプログラムは一般に簡単な制御でも数千行、複雑な制御では数万行、場合によっては数十万行にもなるものもあり、したがって、それから抽出される定義シンボル数も実際には極めて多数である。
【００４９】
上記に続き、図４において、コメント群を抽出する（ステップＳ１２）。この処理は、上記のソースプログラム解析の処理で抽出されているシンボル毎に、それに付随するコメントを取出す処理である。このとき、ソースプログラム３７のファイル名「ｍａｉｎ．ｃｐｐ」もシンボルとして取り出される。そして、そのファイル名と、そのソースプログラムから抽出された定義シンボルと、それらのシンボル（ファイル名のシンボルとファイル内で定義されているシンボル、以下同様）毎のコメント群からなるデータファイルが構築される。
【００５０】
図６(b) は、上記コメント群抽出処理によって得られ、外部記憶装置２３の他の所定の領域に構築されたシンボルとコメント群との対応を示すシンボル・コメント対応データファイルの構成を示す図である。同図に示す例では、シンボル・コメント対応データファイル３９には、シンボル名領域３９−１には、シンボル名として「ｍａｉｎ．ｃｐｐ」、「ｍａｉｎ」、及び「ＧａｓＳｔａｔｉｏｎ」が格納されている。
【００５１】
そして、それらのシンボル名に対応する種類領域３９−２には「ｍａｉｎ．ｃｐｐ」の種類とし「ファイル」が格納され、「ｍａｉｎ」の種類として「関数」が格納され、「ＧａｓＳｔａｔｉｏｎ」の種類として「クラス」が格納されている。そして、更にその後に続く、シンボル名「ｍａｉｎ．ｃｐｐ」に対応するコメント群領域３９−３には、連続する２５個の「＊」が行頭から、「概要」が行頭から１桁空けて、「ｍａｉｎ関数，サブ関数の定義」が行頭から２桁空けて、「作成者」が行頭から１桁空けて、「富士通○夫」が行頭から２桁空けて、そして連続する２５個の「＊」が行頭から、というように、図５に示したソースプログラム３７のファイル（つまりファイル名又はファイル名シンボル）に付随するコメントが「／／」を取り除いただけで、あとはソースプログラムの記述そのままの形態で、つまり行頭からの空送り桁数を含んだ形態で、格納される。
【００５２】
同様に、シンボル「ｍａｉｎ」に対応するコメント群領域３９−３には、連続する２５個の「＊」が行頭から、「１．名称」が行頭から１桁空けて、「制御」が行頭から２桁空けて、「２．概略」が行頭から１桁空けて、「ガソリンスタンドのシュミレーションの制御（ｍａｉｎ関数）」が行頭から２桁空けて、「３．機能」が行頭から１桁空けて、「（１）ガソリンスタンドのシュミレーションの制御をする。」が行頭から２桁空けて、そして、連続する２５個の「＊」が行頭から、というようにソースプログラムの記述そのままの形態で格納される。
【００５３】
更に、シンボル「ＧａｓＳｔａｔｉｏｎ」に対応するコメント群領域３９−３には、連続する２５個の「＊」が行頭から、「１．日本語クラス名」が行頭から１桁空けて、「ガソリンスタンドクラス」が行頭から２桁空けて、「２．概要」が行頭から１桁空けて、「ガソリンスタンドの状態を管理する」が行頭から２桁空けて、「３．機能説明」が行頭から１桁空けて、「（１）ガソリンスタンドの売上を管理する。」が行頭から２桁空けて、「（２）ガソリンスタンドのタンクの状態を管理する。」が行頭から２桁空けて、そして、連続する２５個の「＊」が行頭から、というようにソースプログラムの記述そのままの形態で格納されている。
【００５４】
上記に続き、図４において、コメントキーワード候補の抽出を行い（ステップＳ１３）、その抽出したコメントキーワード候補の設定を行い（ステップＳ１４）、その設定したコメントキーワード候補の確認を行う（ステップＳ１５）。このステップＳ１３、Ｓ１４及びＳ１５の処理は、ステップＳ１２で抽出されているコメントの数だけ繰り返される。
【００５５】
また、これらの処理は、前述したように、本来ソースプログラムは極めて多数の行にわたって記述されている。そのようなソースプログラムから図６(a) のように抽出された本来は多数の定義シンボルに対して、一般に、備忘録としてコメントが付与されている場合が多いから、これらのコメントを全部取り出すと、その数は数千行、場合によっては数万行にもなり、コメント群の数としては極めて膨大である。これらを全部プログラム仕様書に盛り込んだのでは、主要なコメントがどれであるか分かり難くなり、これでは本来の仕様書作りの目的にそぐわなくなる。
【００５６】
そこで、本例では、プログラム仕様書に盛り込むべき（表示すべき）コメントを仕様書の目的に沿ったものに限定して絞りこむために、先ず、抽出すべきコメントのキーワードとなるコメントキーワード候補を抽出してユーザに表示報知し、これらのコメントキーワード候補から必要なキーワードを選択して、それをコメント抽出用のキーワードとして設定し、更に確認する。
【００５７】
そのために、本実施の形態にかかる上記のコメントキーワード候補の抽出処理では、図５に示すシンボル・コメント対応データファイル３９のコメント群から、後述する３つの規則のいずれか又は全部に従って抽出する。この本発明による規則は、従来のコメント規約のように個々のコメントに対応して個々に決められたキーワードとの対応を規則とするのではなく、本発明においては、コメントの記述形態や或る種のコメントに現れる文字列の傾向から決定されるものである。これによって、複数のエンジニアによって夫々異なるコメントの記述方式で記述されたコメントであっても、主要なコメントを適切に抽出してプログラム仕様書に盛り込むことができるものである。
【００５８】
上記３つの規則のいずれか又は全部に従って行うコメントキーワード候補の抽出は、詳しくは後述するデータ入力ダイアログ画面を用いて行われる。そして３つの規則のどの規則に基づいてコメントキーワード候補を抽出するかは、このダイアログ画面にデータ入力を行うオペレータが判断しながら決定する。ここで、そのデータ入力ダイアログ画面の説明に先立って、上記３つの規則と、その規則に基づいて抽出されるコメントキーワード候補の例を示しておく。
【００５９】
先ず、規則の第１では、同じ文字（記号を含む）が所定数連続しているコメントを、コメントキーワード候補とする。尚、上記連続する文字又は記号の数は、後述する定義ファイルで指定される。
【００６０】
図７(a) は、上記「所定数連続する文字又は記号」の規則に基づいて図６(b)のシンボル・コメント対応データファイル３９から抽出されたコメントキーワード候補の例を示す図である。同図(a) に示すように、第１のコメントキーワード候補ファイル４１には、種類領域４１−１にシンボルの種類として「ファイル」、「関数」、「クラス」がそれぞれ格納されている。そして、それらの種類に対応する抽出されたコメントキーワード候補領域４１−２には、それぞれ連続する２５個の「＊」が格納されている。
【００６１】
次に、規則の第２では、区切りコメントで囲まれた一連のコメント文の中で最左端に記述されているコメントを、コメントキーワード候補とする。図７(b) は、上記「最左端に記述されているコメント」の規則に基づいて図６(b) のシンボル・コメント対応データファイル３９から抽出されたコメントキーワード候補の例を示す図である。同図(b) に示すように、第２のコメントキーワード候補ファイル４２には、種類領域４２−１にシンボルの種類として第１の場合と同様に「ファイル」、「関数」、「クラス」がそれぞれ格納されている。そして、「ファイル」に対応する抽出されたコメントキーワード候補領域４２−２には「概要」と「作成者」が格納され、「関数」に対応する抽出されたコメントキーワード候補領域４２−２には「１．名称」、「２．概略」、「３．機能」が格納され、「クラス」に対応する抽出されたコメントキーワード候補領域４２−２には「１．日本語クラス名」が格納されている。
【００６２】
また、上記の規則の第３では、所定の定義ファイルに定義されているキーワードと一致するコメントを、コメントキーワード候補とする。図７(c) は、上記「定義ファイルに定義されているキーワード」の規則に基づいて図６(b) のシンボル・コメント対応データファイル３９から抽出されたコメントキーワード候補の例を示す図である。同図(c) に示すように、第３のコメントキーワード候補ファイル４３には、種類領域４３−１にシンボルの種類として第１、第２の場合と同様に「ファイル」、「関数」、「クラス」がそれぞれ格納されている。そして、「ファイル」に対応する抽出されたコメントキーワード候補領域４３−２には「概要」と「作成者」が格納され、「関数」に対応する抽出されたコメントキーワード候補領域４３−２には、データが無いことを示す「−」が格納され、「クラス」に対応する抽出されたコメントキーワード候補領域４３−２には「１．日本語クラス名」、「２．概要」、「３．機能説明」が格納されている。これらのコメントキーワード候補は、そのキーワードがコメントキーワード候補オプション定義ファイル（以下、単に定義ファイルという）に定義されている。
【００６３】
図８は、上記定義ファイルの例を示す図である。この定義ファイル４４は、ＸＭＬ（拡張可能マークアップ言語）で記述されたファイルであり、親タグである＜ＫｅｙｗｏｒｄＤｅｆｉｎｉｔｉｏｎ＞タグの子タグの＜Ｋｅｙｗｏｒｄ＞タグによって、キーワードとなる候補文字列を、正規表現を用いて指定している。同図の例では、キーワードとして「＊概要」、「＊作成者」、「＊説明」、「＊パラメタ」「＊名」が設定されている。
【００６４】
つまり図７(c) に示した「ファイル」対応するコメントキーワード候補の「概要」は定義ファイル４４に定義されたキーワード「＊概要」に基づいて抽出されたものであり、同じく「作成者」はキーワード「＊作成者」に基づいて抽出されたものである。また、同様に図７(c) に示した「クラス」に対応するコメントキーワード候補の「１．日本語クラス名」は、定義ファイル４４に定義されたキーワード「＊名」に基づいて抽出されたものであり、同じく「２．概要」はキーワード「＊概要」に基づいて、「３．機能説明」はキーワード「＊説明」に基づいて、それぞれ抽出されたものである。
【００６５】
また、図７(c) で「関数」に対応するコメントキーワード候補が無いのは、図６(b) に示すシンボル・コメント対応データファイル３９の「関数」に対応するコメント群領域３９−３に、定義ファイル４４に定義されているキーワード「＊概要」、「＊作成者」、「＊説明」、「＊パラメタ」又は「＊名」に対応するコメントが無いからである。
【００６６】
また、定義ファイル４４には、図８に示すように、親タグである＜ＢｏｒｄｅｒＯｐｉｏｎ＞タグの子タグの＜Ｌｅｎｇｔｈ＞タグにより、連続する文字列に対してコメントキーワード候補として抽出すべき文字数の基準として「２０」が設定されている。この設定によって図７(a) に示したように、連続する２５個の「＊」が抽出されている。
【００６７】
上記のように３つの規則に基づいてコメントキーワード候補を設定し、確認して、コメントを抽出するために、ＨＴＭＬ又はＸＭＬで作成され、ＣＳＳ又はＸＳＬでスタイリング加工され、Ｗｅｂブラウザによって表示されるデータ入力用のダイアログ画面が用いられる。
【００６８】
図９(a),(b) 及び図１０(a),(b) はコメント抽出用のキーワードを設定するためのデータ入力用ダイアログ画面であり、図１１は設定されたコメント抽出用のキーワードを確認するためのダイアログ画面である。尚、以下の説明では、コメントキーワード候補と抽出キーワード候補は「抽出すべきコメントのキーワードの候補」として同じ意味で用い、コメントキーワードと抽出キーワードも同様に「抽出すべきコメントのキーワード」として同じ意味で用いることにする。
【００６９】
同図(a) に示すようにデータ入力用ダイアログ画面では、先ず「抽出キーワードの設定」画面４５が表示される。この「抽出キーワードの設定」画面４５は、表示領域の上から順に、種別入力窓４６、抽出キーワードとコメント項目設定窓４７、抽出キーワード候補表示窓４８が表示されている。
【００７０】
種別入力窓４６には、プルダウンメニューを表示させるためのボタン４９が表示されており、このボタン４９をポインテングデバイスでクリックする（以下「押す」ともいう）と、例えば、ファイル情報、関数情報、クラス情報などのメニューが表示される。同図(a) に示す種別入力窓４６には「ファイル情報」が表示されており、これはユーザが上記のメニューを表示させた後そのメニューの中から「ファイル情報」を選択しダブルクリックして確定したことを示している。
【００７１】
また、抽出キーワードとコメント項目設定窓４７には、大きなデータ表示窓５１が設けられ、表示データの種別欄を示す「抽出キーワード」と「コメント項目」が横一列に表示され、そのデータ表示窓５１の右方に縦三段に分けて「追加（Ａ）」、「変更（Ｍ）」、「削除（Ｄ）」の３つのボタンが表示されている。この抽出キーワードとコメント項目設定窓４７の右方には、縦五段に分けて「ＯＫ」、「キャンセル」、「テスト（Ｔ）」、「オプション（Ｏ）」、「候補リスト（Ｌ）＜＜」の５つのボタンが表示されている。
【００７２】
そして、抽出キーワード候補表示窓４８には、大きなデータ表示窓５２が設けられ、表示データの種別欄を示す「抽出数」と「候補」が横一列に表示されている。このデータ表示窓５２の右方に縦四段に分けて「候補登録（Ｒ）」、「候補抽出（Ｅ）」、「中止（Ｓ）」、「ソース切換（Ｂ）」の４つのボタンが表示されている。また、データ表示窓５２の下方には、候補リストフィルタ設定窓５３が表示されており、その中には長さ（Ｌ）、カラム（Ｃ）、キーワード（Ｋ）の３つの選択チェック入力小窓が表示されている。
【００７３】
同図(a) に示す例では、カラム（Ｃ）の入力小窓にチェックが表示されており、ユーザが「カラム」を指定してこのカラム（Ｃ）の入力小窓クリックしたことを示している。この「カラム」の指定は、最左端のコメントキーワード候補を抽出することを指定したものであり、これにより、図６(b) のシンボル・コメント対応データファイル３９が検索され、種類領域３９−２の「ファイル」に対応するコメント群領域３９−３のコメント群から、最左端のコメントがキーワード候補として抽出され、データ表示窓５２に表示される。
【００７４】
尚、ここでは、最左端のコメントとして、文字列と連続する記号による区切りコメントとの区別はせず、実際にコメント行で最左端から記述されている区切りコメント（連続する「＊」）とその区切りコメントで囲まれた一連のコメント文の中で最左端に記述されているコメントとを最左端のコメントとし、これらを抽出キーワード候補として抽出する。
【００７５】
これにより、図９(a) に示すように、データ表示窓５２には、右方の「候補」欄の下方に抽出キーワードの候補が、三段に分けて、連続する２０個の「＊」、「概要」、「作成者」と表示され、これに対応する左方の「抽出数」欄の下方に抽出数を示す数字が「２」、「１」、「１」と表示される。
ここで、ユーザが、ファイル情報に関するコメントを抽出するにはキーワードとして「概要」が最も適切であると考えて、上記の抽出キーワード候補表示窓４８の中の表示から「概要」を選択して反転表示させ、「候補登録」ボタンを押すと、図１０(a) に示すように、データ表示窓５１の「抽出キーワード」欄の下に「概要」が表示されると共に、その「概要」がコメントキーワード候補として図７(b) に示した第２のコメントキーワード候補ファイル４２の抽出されたコメントキーワード候補領域４２−２に登録される。
また、ここで必要に応じて、上記抽出キーワードを編集し、また対応するコメント項目（後述するプログラム仕様書でレイアウト内に定義されている項目）を選択する。その場合は、抽出キーワードとコメント項目設定窓４７に表示されている「追加」ボタンを押す。そうすると、ダイアログとして図９(b) に示す「抽出キーワードの定義（追加）」画面５５が表示される。この「抽出キーワードの定義（追 加）」画面５５は、上に抽出キーワード条件指定窓５６が表示され、下にコメント項目条件指定窓５７が表示される。
【００７６】
上記の抽出キーワード条件指定窓５６には、抽出条件を選択して指定する３行のチェック入力行６１が表示され、その下のキーワード表示窓６２には、「抽出キーワードの設定」画面４５で選択入力した「概要」が表示されている。また、この抽出キーワード条件指定窓５６の右方には「ＯＫ」ボタン５８と「キャンセル」ボタン５９が二段に表示されている。
【００７７】
また、コメント項目条件指定窓５７には、コメント項目条件を選択して指定する３行のチェック入力行６３が表示され、その下に項目設定窓６４が表示されている。項目設定窓６４の右端にはプルダウンメニュー表示ボタン６５が表示されている。ユーザがこのプルダウンメニュー表示ボタン６５を押すと、例えば「概要」、「作者名」、「機能」、「変更履歴」等の項目名として設定可能な用語の文字列がメニュー表示される。
【００７８】
図９(b) の項目設定窓６４に表示されている「概要」の表示は、ユーザが、抽出キーワードの「概要」で抽出されるべきコメントは仕様書の「概要」というコメント項目に表示すべきもの、として上記のメニューの中から「概要」を選択して指定したことを示している。
【００７９】
尚、コメントキーワードとコメント項目は一致するものと限る分けではない。すなわち、概要コメントのコメント項目は「概要」と限ることなく、例えば概略、摘要、要約等のコメント項目であることを表わす他の用語であってもよい。これらは仕様書のフォーマット設計に応じて予めプルダウンメニュー用のファイルに格納される。
【００８０】
また、コメント項目があっても、必要なコメントが無い場合もある。例えば「ｖｏｉｄ ｍａｉｎ （）」指定による「戻り値」や、その他「パラメタ説明」、「備考」なども、コメント項目としては仕様書に設定されていても、ソースプログラム内にコメントが記述されていない場合が多い。
【００８１】
上記コメント項目の設定の後、ユーザが「ＯＫ」ボタン５８を押すと、図１０(a) に示すように、データ表示窓５１の「抽出キーワード」欄の下に既に表示されている「概要」の横に並んで、「コメント項目」欄の下に「概要」が表示される。
【００８２】
ユーザは抽出キーワードの設定画面４５のデータ表示窓５２に表示されている「作成者」及び連続する２５個の「＊」に対しても上記の操作を繰り返して、図１０(b) に示すように、データ表示窓５１の「抽出キーワード」欄の下に「概要」、「作成者」、２５個の「＊」を表示させ、「コメント項目」欄の下に「概要」、「作成者」を表示させる。このようにして、種別入力窓４６に表示されている「ファイル情報」に対応する抽出キーワードが全て設定される。
【００８３】
尚、２５個の「＊」は、コメント群の一要素ではあるがコメントそのものではなくコメント抽出範囲の区切りを示すものであるので、コメントを抽出する際のキーワードにはなっても、コメント項目には入らないものである。
【００８４】
上記のようにファイル情報に対応する全ての抽出キーワードが設定された後、ユーザが「ＯＫ」ボタン６６を押すことにより、図１１に示す抽出キーワード確認画面６７が、上記のダイアログ画面（抽出キーワードの設定画面４５）と並んで（又は一部重なって）表示される。図１１に示すように、この確認画面の表示は、図５に示したソースプログラムファイルと同一のものである。そして、ユーザが、抽出キーワードの設定画面４５の「テスト」ボタン６８を押すと、コメントキーワードと、このコメントキーワードによって抽出されるコメントの色が変化する。
【００８５】
図１１に示す例では、モノクロ図であるので定かでないが、コメント群の記述開始行である１行目に位置指示マーク６９が表示され、上記抽出キーワードの設定画面４５で抽出キーワードとして設定されている２０個の「＊」（図１１の１行目）、「概要」（図１１の２行目）、「作成者」（図１１の４行目）、及び２０個の「＊」（図１１の６行目）が、例えば赤色で表示される。そして、これらの抽出キーワードで抽出されるべきコメントとして「ｍａｉｎ関数，サブ関数の定義」（図１１の３行目）及び「富士通○夫」（図１１の５行目）が例えば緑色で表示される。
この色分けされた表示によって、ユーザは「ファイル」に関る抽出キーワードとその抽出キーワードによって抽出されるキーワードを、ソースプログラムの記述の中で目視で確認することができる。ここで、抽出キーワードの設定画面４５の「ＯＫ」ボタン６６を押すことによって色分け表示部分のコメント群が確定する。
【００８６】
上述した図４のステップＳ１３、Ｓ１４及びＳ１５による処理は、図６(b) で抽出されている各シンボルの種類毎（図６(b) の例では上記「ファイル」の他に未だ「関数」と「クラス」が残っている）についても同様に行われる。そして、この抽出キーワードの確認に基づいて、コメントの抽出が行われ、コメント項目毎のコメントデータベースが作成される（ステップＳ１６）。
【００８７】
図１２(a),(b),(c) は、それぞれ上記のコメントの抽出処理に基づいて抽出されたコメント群によって外部記憶装置２３の所定領域に構築されるデータベースの例を示す図である。同図(a) は、ファイル「ｍａｉｎ．ｃｐｐ」のファイルコメントデータファイル７１を示しており、コメント項目の「概要」及び「作成者」に対応するコメントとして「ｍａｉｎ関数、サブ関数の定義」及び「富士通○夫」がそれぞれ格納されている。
【００８８】
また、同図(b) は、関数「ｍａｉｎ」の関数コメントデータファイル７２であり、コメント項目の 「日本語名」、「概要」、「戻り値」、「パラメタ説明」、「機能説明」、及び「備考」に対応するコメントとして「制御」、「ガソリンスタンドのシュミレーションの制御（ｍａｉｎ関数）」、なし、なし、「（１）ガソリンスタンドのシュミレーションの制御をする。」、及び、なし、がそれぞれ格納されている。
【００８９】
そして、同図(c) は、クラス「ＧａｓＳｔａｔｉｏｎ」に関するクラスコメントデータファイル７３の例を示している。同図の例では、コメント項目の「日本語名」に対応するコメントとして「ガソリンスタンドクラス」が格納され、「概要」に対応するコメントとして「ガソリンスタンドの状態を管理する」が格納され、「機能説明」に対応するコメントとして「（１）ガソリンスタンドのシュミレーションの制御をする。」が格納され、そして「備考」に対応するコメントとして「（１）ガソリンスタンドの売上を管理する。」と「（２）ガソリンスタンドのタンクの状態を管理する。」が格納されている。  
【００９０】
そして、上記のデータベース作成処理に続いて、プログラム仕様書生成処理が行われる（ステップＳ１７）。図１３は、プログラム仕様書生成処理において生成されるプログラム仕様書の例を示す図である。尚、同図は、図１２(b) に示した関数コメントデータファイル７２のデータに基づいて作成されたプログラム仕様書を表示した確認用画面７４を示している。同画面７４のヘッダー部７５に示すように、このプログラム仕様書の表題は「ｍａｉｎ関数説明」となっている。そして、関数名は「ｍａｉｎ」、日本語名は「制御」、定義ファイルは「Ｍｓｉｎ．ｃｐｐ」、定義行番号は「１６」、宣言形式は「ｖｏｉｄ ｍａｉｎ （）」となっている。これらは、いずれも図(b) に示すシンボル・コメント対応データファイル３９の生成までの処理において抽出されたデータである。
【００９１】
次に、コメント部７６には、項目名が記述された小枠とコメントが記述された大枠とが一組となった表示が下方に順次連続して表示されている。同図に示す例では、図１２(b) でも示した項目名「概要」にはコメント「ガソリンスタンドのシュミレーションの制御（ｍａｉｎ関数）」、項目名「戻り値」にはコメントなし、項目名「バラメタ説明」にはコメントなし、項目名「機能説明」にはコメント「（１）ガソリンスタンドのシュミレーションの制御をする。」がそれぞれ記述されている。
【００９２】
同図の画面下方には、特には図示しないが、スクロールバー７７でスクロールさせて表示可能な項目名とコメントが記述された表示が連続している。このようにして作成されたプログラム仕様書は、図３に示す処理において、図５に示したソースプログラムファイル３７、図６(a),(b) に示した定義シンボル・開始行対応データファイル３８とシンボル・コメント対応データファイル３９、図１２(a),(b),(c) に示したファイルコメントデータファイル７１、関数コメントデータファイル７２及びクラスコメントデータファイル７３と共に、全てプロジェクト資産の変更前情報として外部記憶装置２３の所定領域に保存される（ステップＳ２）。
【００９３】
続いて、上記変更前のソースプログラムに対応する変更後のソースプログラムすなわち日時の新しいソースプログラムファイルを読み出して、この変更後のプログラム言語のコメント文を解析し（ステップＳ３）、その結果得られた変更後情報を保存する（ステップＳ４）。これらステップＳ３及びＳ４の処理は、対象となるソースプログラムが製作日時（又は初めて保存された日時）の異なる新旧２つのソースプログラムであることを別にして、ステップＳ１及びＳ２で説明した処理とそれぞれ同一である。  
【００９４】
尚、上記の説明では、新旧２つのソースプログラムとして説明しているが、一般に、１つのシステムを稼動させるための１つのプロジェクトを構築するには通常モジュールと呼ばれる複数のプログラムが作成される。これらの各プログラムの元となる各ソースプログラムを個々に記述したファイルが例えば図５に示したようなソースプログラムファイル３７である。
【００９５】
したがって、日時の異なる同一の（同一名の、以下同様）２つのプロジェクト資産には、それぞれ多数のソースプログラムファイル（以下、単にファイルという）が存在する。上記のステップＳ１〜Ｓ４の処理は、それらのファイルの全てについて行われる処理である。
【００９６】
そして、上記に続いて、差分情報の構築を行う（ステップＳ５）。この処理は、特には図示しないが、上述したプロジェクト資産の中から日時の異なる同一名の（つまり新旧２つの）プロジェクト資産を抽出し、双方のプロジェクト資産の内容を比較して、その違い情報としての差分情報（相違情報）を抽出し、その差分情報を差分情報ファイルにして、外部記憶装置２３に保存（格納）する処理である。
【００９７】
これにより、先ず双方のプロジェクト資産を構成するファイルの存在が比較される。そして、双方のプロジェクト資産の日時の新しい方には存在するが旧い方には存在しないファイル、つまり追加されたファイルがある場合の追加ファイル情報、双方のプロジェクト資産の日時の旧いほうには存在するが新しい方には無い、つまり削除されたファイルがある場合の削除ファイル情報、また、双方のプロジェクトに共に同一名のファイル存在する場合には、その内容が同じであるか変更されているがの変更有無情報、等の相違情報が構築される。
【００９８】
次に、双方のプロジェクト資産の同一ファイルや同一シンボルに付随するコメント情報を比較してその相違情報が構築され、更に、双方のプロジェクト資産の同一ファイルに定義されているシンボル情報を比較してその相違情報が構築され、また、双方のプロジェクト資産の同一シンボルがＣ＋＋言語の場合のクラスのメンバのように子供のシンボルを有する場合はその子供のシンボル情報が比較されてその相違情報が構築される。
【００９９】
そして、更に、双方のプロジェクト資産の同一シンボルがＣ＋＋言語の場合の関数やメンバ関数のように処理手続きを持つ場合は、その処理手続きの相違情報が構築される。
そして、これらの相違情報に基づいて、以下に示す４種類の改版仕様書を生成する（ステップＳ６）。図１４は、上記双方のプロジェクト資産を構成するソースプグラムァイルの存在を比較して得られたプロジェクト構成の相違情報を記述したプロジェクト構成改版仕様書の例を示す図である。同図に示すように、プロジェクト構成改版仕様書７８は、ヘッダー部７９には、仕様書名欄７９−１には「プロジェクト構成改版仕様書」とこの仕様書の名称が記述され、プロジェクト名欄７９−２には「○○○システム」とこの仕様書のプログラムが所属するプロジェクト名が記述されている。そして、データ部８１には、同図に示す例では行番号８１−１〜８１−６まで６行のデータ行が設けられ、ファイル名とそのファイルの状態とが対応付けて記述されている。
すなわち、ファイル名欄には、外部記憶装置２３の装置番号ＣのデスクのＳａｍｐｌｅＳｒｃフォルダに格納されている６個のファイルが、その格納場所を示すアドレスと共に、C:\SampleSrc\a.cpp、〜\b.cpp、〜\c.cpp、〜\d.cpp、〜\e.cpp、〜\f.cppとして記述され、それらに対応する状態欄には「同じ」、「削除」、「追加」「変更」、「変更」、「変更」とそれぞれ状態が記述されている。
【０１００】
上記の「同じ」ファイル、「削除」のファイル、及び「追加」のファイルについては、前述した方法で作成されたプログラム仕様書を調べればプログラムの内容は容易に判明する。そして、「変更」されたプログラムについては、それらのファイルの定義シンボルの相違情報とファイルに付随するコメントの相違情報を記述したファイル改版仕様書が改めて作成される。
【０１０１】
図１５は、上記双方のプロジェクト資産の同一ファイルに定義されているシンボル情報に関する相違情報と、それらのファイルに付随するコメント情報とを併せて記述したファイル改版仕様書の例を示す図である。尚、同図に示すファイル改版仕様書は、図１４に示したプロジェクト構成改版仕様書７８の行番号８１−４に記述されている変更ファイルC:\SampleSrc\d.cppについてのファイル改版仕様書８２を例として取り上げて示している。
【０１０２】
図１５に示すように、ファイル改版仕様書８２には、ヘッダー部８３、コメント部８４、及びシンボル部８５が設けられている。ヘッダー部８３には、まず「ファイル改版仕様書」と仕様書名が記述され、プロジェクト名欄にはプロジェクト名が上記同様に「○○○システム」と記述され、ファイル名欄にはファイル名が「C:\SampleSrc\d.cpp」と記述され、変更前更新日時欄には、年月日と時刻が「2001/01/01 12:00」と記述され、変更後更新日時欄には同じく年月日と時刻が「2001/01/30 13:06」と記述されている。
【０１０３】
また、コメント部８４には、左からコメント項目欄、状態欄、変更前コメント欄、及び変更後コメント欄が設けられている。コメント項目欄には、前述したコメントキーワード候補の抽出、設定、確認の処理で決定されたコメント項目としてのコメント抽出用キーワードが、上から順に「概要」、「作成者」「機能」、及び「変更履歴」と記述されている。
【０１０４】
そして、それらのコメント項目に対応する状態欄には、それぞれ状態が「＝」、「＝」、「≠」、「≠」と記述されている。すなわち、コメント項目の「概要」については変更前と変更後でコメントの状態が同じ（＝）であり、これに対応する変更前コメント欄と変更後コメント欄には共に「○○○システムの制御」と同じコメントが記述されている。また、「作成者」についても変更前と変更後でコメントの状態が同じ（＝）であり、これに対応する変更前コメント欄と変更後コメント欄には共に「富士通○夫」と同じコメントが記述されている。
【０１０５】
そして、「機能」については変更前と変更後でコメントの状態が異なって（≠）おり、変更前コメントではコメントが１）〜３）の３行のコメントであったものが、変更後コメントでは２）と３）の間に追加のコメントが入っており、その追加のコメントは、同図に示す例では「２．２）△△△のサポートのため△△△の処理を行う」となっている。また、変更履歴については変更前と変更後でコメントの状態は当然異なって（≠）おり、変更前コメントでは「2001/01/01 初版」のコメントのみであるが、変更後のコメントでは、上記初版のコメントの他に更に「2000/01/30 第２版△△△サポート」のコメントが追加されている。
【０１０６】
すなわち、これらの機能と変更履歴のコメントを見比べることによって、ソースプログラムの変更日時と変更理由が容易に判明するようになっている。更に、シンボル部８５には、シンボル名欄とシンボル種別欄と状態欄が設けられている。シンボル名欄には抽出された定義シンボル名が上から順に「ＣＡａａＣｌａｓｓ」、・・・、「ＲｅａｄＤａｔａ」と記述され、これに対応するシンボル種別欄にはシンボル種別が上から順に「クラス」、・・・、「外部関数」と記述れている。そして、これと対応する状態欄には上から順に「同じ」、・・・、「変更」と記述されている。
【０１０７】
ここで、行番号８５−４のシンボル「ＣＥｅｅＣｌａｓｓ」は種別が「クラス」となっており、その要素には子のシンボルを有することが判る。そして状態が「変更」となっているから内容に変更が有ることが判る。また、行番号８５−８のシンボル「ＲｅａｄＤａｔａ」は種別が「外部関数」となっており、これも状態が「変更」であるから、処理手続きに変更が有ったことが判る。ここでも、変更が有ったシンボルについては改めてシンボル改版仕様書が作成される。
【０１０８】
図１６は、双方のプロジェクト資産の同一ファイルに定義されている同一シンボルが上記のように子のシンボルを持つ場合のシンボルの相違情報と、それらのシンボルに付随するコメント情報を併せて記述したシンボル改版仕様書の例を示す図である。図１６に示すように、このシンボル改版仕様書８６にも、ヘッダー部８７、コメント部８８、及びシンボル部８９が設けられている。ヘッダー部８７には、まず「シンボル改版仕様書」と仕様書名が記述され、その他にプロジェクト名欄、シンボル名欄、種別欄、変更前更新日時欄、及び変更後更新日時欄を備えている。
【０１０９】
プロジェクト名欄、変更前更新日時欄、及び変更後更新日時欄には図１５のファイル改版仕様書８２のヘッダー部８３と同一の内容が記述されており、シンボル名欄にはシンボル名「ＣＥｅｅＣｌａｓｓ」が記述され、その種別が種別欄に「クラス」と記述されている。
【０１１０】
また、コメント部８８は、左からコメント項目欄、状態欄、変更前コメント欄及び変更後コメント欄が設けられ、ファイル改版仕様書８２の場合と同一の欄構成となっている。更に、コメント項目欄も上から順に「概要」、「作成者」、「機能」及び「変更履歴」と記述され、ファイル改版仕様書８２の場合と同一の構成となっている。そして、これらコメント項目欄の作成者と変更履歴に対応する状態欄、変更前コメント欄及び変更後コメント欄の内容もファイル改版仕様書８２の場合と同一である。しかし、概要と機能に対応するコメントは、ファイル改版仕様書８２の場合はファイルに関するコメントであったの対して、こちらはシンボルに関するコメントであるので内容が異なっている。
【０１１１】
すなわち、コメント項目の「概要」では、状態が「＝」で、コメント内容は変更前、変更後、ともに「システムの状態を管理する」となっている。また、コメント項目が「機能」では、状態が「≠」であり、コメント内容は、変更前の１）と２）のコメント文のうち「２）不足している場合は、新規にメモリを獲得する。」のコメント文に対して、変更後ではコメントの追加が行われ「２）〜。その際、再利用できるメモリがある場合に、利用する。」となっている。この新旧の機能のコメントを見比べることによって、ソースプログラムの変更理由が更に明確に判明するようになっている。
【０１１２】
また、シンボル部８９には、シンボル名欄、シンボル種別欄、及び状態欄が設けられ、シンボル名欄には抽出された子シンボル名が上から順に「ｍ＿Ｖａｌｌ」、・・・、「ｍ＿Ｆｕｎｃ４」と記述され、これに対応するシンボル種別欄にはシンボル種別が上から順に「メンバ変数」、・・・、「メンバ関数」と記述れている。そして、これと対応する状態欄には上から順に「同じ」、・・・、「変更」と記述されている。
【０１１３】
これにより、どのシンボルで表示されたメンバ変数やメンバ関数が、追加されたのか削除されたのか又は変更されたのかが容易に判明する。図１７は、双方のプロジェクト資産の同一ファイルに定義されている同一シンボルが処理手続きを持つ場合のその処理手続きの相違情報と、それらのシンボルに付随するコメント情報を併せて記述した関数改版仕様書の例を示す図である。同図に示す関数改版仕様書９１は、図１５のシンボル部８５の行番号８５−８のシンボル「ＲｅａｄＤａｔａ」の状態が「変更」となっていることにより作成された改版仕様書である。
【０１１４】
図１７に示すように、この関数改版仕様書９１も、ヘッダー部９２、コメント部９３、及びシンボル部９４を備えている。ヘッダー部９１には、まず「関数改版仕様書」と仕様書名が記述され、その他にプロジェクト名欄、関数名欄、種別欄、変更前更新日時欄、及び変更後更新日時欄を備えており、プロジェクト名欄、変更前更新日時欄、及び変更後更新日時欄には図１５のファイル改版仕様書８２のヘッダー部８３と同一の内容が記述されている。そして、関数名欄には関数名「ＲｅａｄＤａｔａ」が記述され、その種別が種別欄に「外部関数」と記述されている。
【０１１５】
また、コメント部９３は、左からコメント項目欄、状態欄、変更前コメント欄及び変更後コメント欄が設けられ、これもファイル改版仕様書８２の場合と同一の欄構成となっている。更に、コメント項目欄も上から順に「概要」、「作成者」、「機能」及び「変更履歴」と記述され、ファイル改版仕様書８２の場合と同一の構成となっている。そして、これらコメント項目欄の作成者と変更履歴に対応する状態欄、変更前コメント欄及び変更後コメント欄の内容もファイル改版仕様書８２の場合と同一である。
【０１１６】
また、コメント項目の「概要」と「機能」に対応するコメントでは、先ず、「概要」の状態が「＝」でコメント内容は変更前及び変更後ともに「データの読み込みを行う」となっている。また、「機能」では、状態が「≠」であり、コメント内容は、変更前の１）〜４）まである４行のコメント文のうち３）と４）の間に新たなコメント文「３−１）特殊レコードの場合、特殊処理を行う」が追加されている。この場合も、この新旧の機能のコメントを見比べることによって、ソースプログラムの変更理由が更に明確に判明する。
【０１１７】
そして、シンボル部９４では、処理手続き欄が左右２つに分割されている。すなわち、左に変更前の処理手続きが表示され、右に変更後の処理手続きが表示される。そして、変更されていな処理手続記述部分の背景地色（例えば白）に対して、変更部分の処理手続記述部分９５（９５−１、９５−２）は背景地色とは異なる色（例えば黄色あるいは網掛けでもよい）で表示される。
【０１１８】
一般に、変更には、内容の改変と、削除と、追加があるが、同図に示す例は追加の例であり、左方の変更前の処理手続記述部分９５−１には処理手続の記述がなく、右方の変更後の処理手続記述部分９５−２に、追加された処理手続きが「／／３−１）レコード〜ｉｆ（ｐｓｚ〜Ａｎａｌｙ〜（ｐｓｚＢｕｆｆｅｒ）；」と記述されている。この関数改版仕様書９１が、処理手続きの追加ではなく改変であれば、処理手続記述部分９５−１と９５−２の両方に変更前と変更後の処理手続きが記述される。また、処理手続きの追加でも改変でもなく、削除であれば、削除された処理手続きが左方の処理手続記述部分９５−１に記述され、右方の処理手続記述部分９５−２には何も記述されない。これにより、変更前と変更後の処理手続きの違いが一目で判明する。
【０１１９】
尚、上述の実施の形態におけるコメント群の抽出処理において、３つの規則に基づいてコメント群を抽出する方法は、上述した改版仕様書作成のための新旧二つのプログラム仕様書を作成するためと限ることなく、通常のプログラム仕様書作成方法としても好適に用いることができるものである。
【０１２０】
（付記１）ソースプログラムを解析して該ソースプログラムの構成要素を抽出するソースプログラム解析手段と、前記ソースプログラムに挿入されているコメントからプログラム仕様書に表示すべきコメントを抽出するコメント抽出手段と、前記ソースプログラム、前記ソースプログラム解析手段により抽出された構成要素、及び前記コメント抽出手段により抽出されたコメントを含むプロジェクト資産を保存するプロジェクト資産管理手段と、該プロジェクト資産管理手段により保存された日時の異なる前記プロジェクト資産の中の新旧二つのソースプログラムを抽出し、該新旧二つのソースプログラムに定義されているシンボルを比較して違いがあるときは該シンボルの違い情報を抽出し、前記新旧二つのソースプログラムの同一シンボルに付随するコメントを比較して違いがあるときは該コメントの違い情報を抽出する差分解析手段と、該差分解析手段により検出された各前記違い情報に基づいて改版仕様書を生成する改版仕様書生成手段と、を含んで構成されたことを特徴とするプログラム仕様書作成装置。
（付記２）前記差分解析手段は、前記新旧二つのソースプログラムの同一シンボルが子シンボルを持つ場合に、該子シンボルを比較して違い情報を検出することを特徴とする付記１記載のプログラム仕様書作成装置。
（付記３）前記差分解析手段は、前記新旧二つのソースプログラムの同一シンボルが処理手続きを持つ場合に、該処理手続きを比較して違い情報を検出することを特徴とする付記１記載のプログラム仕様書作成装置。
（付記４）前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、ソースプログラムに新旧二つのソースプログラムが存在するか否かの情報を含むプログラム仕様書を作成することを特徴とする付記１記載のプログラム仕様書作成装置。
（付記５）前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、前記コメントの違い情報を含むプログラム仕様書を作成することを特徴とする付記１記載のプログラム仕様書作成装置。
（付記６）前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、前記シンボルの違い情報を含むプログラム仕様書を作成することを特徴とする付記１記載のプログラム仕様書作成装置。
（付記７）前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、前記子シンボルの違い情報を含むプログラム仕様書を作成することを特徴とする付記２記載のプログラム仕様書作成装置。
（付記８）前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、前記処理手続きの違い情報を含むプログラム仕様書を作成することを特徴とする付記３記載のプログラム仕様書作成装置。
（付記９）ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出手段と、該コメントキーワード候補抽出手段により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定手段と、該コメントキーワード設定手段により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認手段と、該コメントキーワード確認手段により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出手段と、該コメント項目抽出手段により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成手段と、を含んで構成されたことを特徴とするプログラム仕様書作成装置。
（付記１０）前記コメントキーワード候補抽出手段は、前記ソースプログラムを記述したプログラム言語の言語要素毎にコメントキーワード候補を抽出することを特徴とする付記９記載のプログラム仕様書作成装置。
（付記１１）前記コメントキーワード候補抽出手段は、各種コメントを区分けする記述からなるコメントをコメントキーワード候補として抽出することを特徴とする付記９記載のプログラム仕様書作成装置。
（付記１２）前記記述頻度が高いコメントのコメントキーワードを定義する定義ファイルと該定義ファイルを編集する編集手段とを更に備え、前記コメントキーワード候補抽出手段は、前記定義ファイルの内容と一致するコメントをコメントキーワードの候補として抽出することを特徴とする付記９記載のプログラム仕様書作成装置。
（付記１３）前記コメントキーワード設定手段は、抽出された前記コメントキーワードの候補を、それぞれ表示し、又は組み合わせて表示する表示報知手段を備えていることを特徴とする付記９記載のプログラム仕様書作成装置。
（付記１４）前記コメントキーワード設定手段は、抽出された前記コメントキーワードの候補を、使用頻度の多い順に表示することを特徴とする付記９記載のプログラム仕様書作成装置。
（付記１５）ソースプログラムを解析して該ソースプログラムの構成要素を抽出するソースプログラム解析工程と、前記ソースプログラムに挿入されているコメントからプログラム仕様書に表示すべきコメントを抽出するコメント抽出工程と、前記ソースプログラム、前記ソースプログラム解析工程により抽出された構成要素、及び前記コメント抽出工程により抽出されたコメントを含むプロジェクト資産を保存するプロジェクト資産管理工程と、該プロジェクト資産管理工程により保存された日時の異なる前記プロジェクト資産の中の新旧二つのソースプログラムを抽出し、該新旧二つのソースプログラムに定義されているシンボルを比較して違いがあるときは該シンボルの違い情報を抽出し、前記新旧二つのソースプログラムの同一シンボルに付随するコメントを比較して違いがあるときは該コメントの違い情報を抽出する差分解析工程と、該差分解析工程により検出された各前記違い情報に基づいて改版仕様書を生成する改版仕様書生成工程と、を含んで構成されたことを特徴とするプログラム仕様書作成方法。
（付記１６）ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出工程と、該コメントキーワード候補抽出工程により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定工程と、該コメントキーワード設定工程により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認工程と、該コメントキーワード確認工程により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出工程と、該コメント項目抽出工程により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成工程と、を含んで構成されたことを特徴とするプログラム仕様書作成装置。
（付記１７）コンピュータに対して、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出機能と、該コメントキーワード候補抽出機能により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定機能と、該コメントキーワード設定機能により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認機能と、該コメントキーワード確認機能により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出機能と、該コメント項目抽出機能により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成機能と、を実現させるためのプログラム仕様書作成プログラム。
（付記１８）プログラム仕様書作成プログラムをコンピュータによる読み取り可能に記録した記録媒体であって、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出する機能と、抽出された前記コメントキーワードの候補をコメントキーワードとして選択的に確定する機能と、確定された前記コメントキーワードを前記ソースプログラムと照らし合わせて報知して確認する機能と、確認された前記コメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出する機能と、抽出された前記コメント項目に基づいてプログラム仕様書を生成する機能と、をコンピュータに実行させるためのプログラム仕様書作成プログラムを記録した記録媒体。
【図面の簡単な説明】
【０１２１】
【図１】(a) は第１の発明のプログラム仕様書作成装置における動作原理図、(b) は第２の発明のプログラム仕様書作成装置における動作原理図である。
【図２】一実施の形態におけるプログラム仕様書作成装置の全体構成を示す図である。
【図３】プログラム仕様書作成装置によって行われるプログラム仕様書作成処理の動作を説明するメインフローチャートである。
【図４】メインフローチャートのステップＳ１及びＳ３の処理を更に詳細に示すフローチャートである。
【図５】プログラム仕様書作成処理において処理対象となるソースプログラムの例としてＣ＋＋言語で記述されたソースプログラムのファイルを示す図である。
【図６】(a) はプログラム言語解析処理によって得られた定義シンボル・開始行対応データファイルの例を示す図、(b) はコメント群抽出処理によって得られたシンボル・コメント対応データファイルの例を示す図である。
【図７】(a),(b),(c) はそれぞれ第１、第２及び第３の規則に基づいてシンボル・コメント対応データファイルから抽出されたコメントキーワード候補の例を示す図である。
【図８】コメントキーワード候補オプション定義ファイルの例を示す図である。
【図９】(a),(b) はコメント抽出用のキーワードを設定するためのデータ入力用ダイアログ画面である。
【図１０】(a),(b) はコメント抽出用のキーワードを設定するためのデータ入力用ダイアログ画面である。
【図１１】設定されたコメント抽出用のキーワードを確認するためのダイアログ画面である。
【図１２】(a),(b),(c) は夫々コメント抽出処理に基づいて抽出されたコメント群によって外部記憶装置の所定領域に構築されるデータベースの例を示す図である。
【図１３】プログラム仕様書生成処理において生成されるプログラム仕様書の例を示す図である。
【図１４】改版仕様書生成処理による新旧のプロジェクト資産の構成相違情報を記述したプロジェクト構成改版仕様書の例を示す図である。
【図１５】改版仕様書生成処理による新旧のプロジェクト資産の同一ファイルのシンボル情報相違情報とそのファイルに付随するコメント情報とを併せて記述したファイル改版仕様書の例を示す図である。
【図１６】改版仕様書生成処理による新旧のプロジェクト資産の同一シンボルの子供シンボルの相違情報とそのシンボルに付随するコメント情報を併せて記述したシンボル改版仕様書の例を示す図である。
【図１７】改版仕様書生成処理による新旧のプロジェクト資産の同一シンボルの処理手続の相違情報とそのシンボルに付随するコメント情報を併せて記述した関数改版仕様書の例を示す図である。
【符号の説明】
【０１２２】
１ ソースプログラム解析手段
２ コメント抽出手段
３ プロジェクト資産管理手段
４ 差分解析手段
５ 改版仕様書生成手段
１１ コメントキーワード候補抽出手段
１２ コメントキーワード設定手段
１３ コメントキーワード確認手段
１４ コメント項目抽出手段
１５ プログラム仕様書生成手段
２１ 表示装置
２２ 入力装置
２３ 外部記憶装置
２４ 印刷装置
２５ 演算装置
３１ コメントキーワード設定部
３２ コメント抽出部
３３ プロジェクト資産管理部
３４ 差分解析部
３５ 仕様書生成部
３６ 仕様書印刷部
３７ ソースプログラムファイルの例
３８ 定義シンボル・開始行対応データファイル
３９ シンボル・コメント対応データファイル
３９−１ シンボル名領域
３９−２ 種類領域
３９−３ コメント群領域
４１ 第１のコメントキーワード候補ファイル
４１−１ 種類領域
４１−２ 抽出されたコメントキーワード候補領域
４２ 第２のコメントキーワード候補ファイル
４２−１ 種類領域
４２−２ 抽出されたコメントキーワード候補領域
４３ 第３のコメントキーワード候補ファイル
４３−１ 種類領域
４３−２ 抽出されたコメントキーワード候補領域
４４ コメントキーワード候補オプション定義ファイル
４５ 抽出キーワードの設定画面
４６ 種別入力窓
４７ 抽出キーワードとコメント項目設定窓
４８ 抽出キーワード候補表示窓
４９ プルダウンメニュー表示ボタン
５１、５２ データ表示窓
５３ 候補リストフィルタ設定窓
５５ 抽出キーワードの定義（追加）画面
５６ 抽出キーワード条件指定窓
５７ コメント項目条件指定窓
５８ ＯＫボタン
５９ キャンセルボタン
６１、６３ チェック入力行
６２ キーワード表示窓
６４ 項目設定窓
６５ プルダウンメニュー表示ボタン
６６ ＯＫボタン
６７ 抽出キーワード確認画面
６８ テストボタン
６９ 位置指示マーク
７１ ファイルコメントデータファイル
７２ 関数コメントデータファイル７３ クラスコメントデータファイル
７４ 確認用画面
７５ ヘッダー部
７６ コメント部
７７ スクロールバー
７８ プロジェクト構成改版仕様書
７９ ヘッダー部
７９−１ 仕様書名欄
７９−２ プロジェクト名欄
８１ データ部
８１−１〜８１−６ データ行
８２ ファイル改版仕様書
８３ ヘッダー部
８４ コメント部
８５ シンボル部
８６ シンボル改版仕様書
８７ ヘッダー部
８８ コメント部
８９ シンボル部
９１ 関数改版仕様書
９２ ヘッダー部
９３ コメント部
９４ シンボル部
【図１】
2006190332.tif 000003
【図２】
2006190332.tif 000004
【図３】
2006190332.tif 000005
【図４】
2006190332.tif 000006
【図５】
2006190332.tif 000007
【図６】
2006190332.tif 000008
【図７】
2006190332.tif 000009
【図８】
2006190332.tif 000010
【図９】
2006190332.tif 000011
【図１０】
2006190332.tif 000012
【図１１】
2006190332.tif 000013
【図１２】
2006190332.tif 000014
【図１３】
2006190332.tif 000015
【図１４】
2006190332.tif 000016
【図１５】
2006190332.tif 000017
【図１６】
2006190332.tif 000018
【図１７】
2006190332.tif 000019