(57)【特許請求の範囲】
【請求項１】
入力装置及び表示装置に接続されるとともにプログラムに従った処理を実行するコンピュータを、
ソースコードを記憶する記憶手段，
前記記憶手段に記憶されたソースコード中のコメント文が配置されるべき位置に、一意的に識別可能なコメントキーワードを含んだコメント文を配置するコメント配置手段と、 前記記憶手段に記憶されたソースコードから、前記コメントキーワードを含んだコメント文を抽出して、仕様書データを作成して前記記憶手段に記憶する仕様書データ作成手段と、
前記記憶手段に記憶された前記仕様書データを前記表示装置に表示させる表示手段と、
前記入力装置を介して当該表示装置に表示された仕様書データの表示内容を変更する旨の指示がなされた場合には、この指示に従って、前記記憶手段に記憶された前記仕様書データ中のコメント文の内容を変更する仕様書データ変更手段と、
前記記憶手段に記憶された前記ソースコード中のコメント文を、前記記憶手段に記憶された前記仕様書データ中のコメント文のうちのコメントキーワードが一致するもので置き換える置換手段として
機能させる仕様書作成プログラム
を格納したコンピュータ読み取り可能な記録媒体。
【請求項２】
前記仕様書データ作成手段は、ソースコード中の処理手続を有する関数内に記載されたコメント文を、抽出する
ことを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項３】
前記コメント配置手段は、既にソースコード中に含まれたコメント文中に、コメントキーワードを挿入する
ことを特徴とする請求項１又は２記載のコンピュータ読み取り可能な記録媒体。
【請求項４】
入力装置及び表示装置に接続されるとともにプログラムに従った処理を実行するコンピュータを、
ソースコードを記憶する記憶手段，
前記記憶手段に記憶されたソースコード中のコメント文が配置されるべき位置に、一意的に識別可能なコメントキーワードを含んだコメント文を配置するコメント配置手段と、 前記記憶手段に記憶されたソースコードから、前記コメントキーワードを含んだコメント文を抽出して、仕様書データを作成して前記記憶手段に記憶する仕様書データ作成手段と、
前記記憶手段に記憶された前記仕様書データを前記表示装置に表示させる表示手段と、
前記入力装置を介して当該表示装置に表示された仕様書データの表示内容を変更する旨の指示がなされた場合には、この指示に従って、前記記憶手段に記憶された前記仕様書データ中のコメント文の内容を変更する仕様書データ変更手段と、
前記記憶手段に記憶された前記ソースコード中のコメント文を、前記記憶手段に記憶された前記仕様書データ中のコメント文のうちのコメントキーワードが一致するもので置き換える置換手段として
機能させる仕様書作成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種プログラミング言語により記述されたソースコードに基づき、仕様書データを作成する仕様書作成プログラム及び仕様書作成プログラムを格納したコンピュータ可読媒体に、関する。
【０００２】
【従来の技術】
一般に、Ｃ＋＋その他のプログラミング言語により記述されたソースコード中には、コンパイルされてもオブジェクトコードに変換されないコメント文が、含まれている。通常、このコメント文には、プログラムの処理内容についての説明等が記述されている。このため、ソースコードからコメント文が抽出されると、プログラムの処理内容についての説明が、得られる。
【０００３】
そこで、ソースコードからコメント文を抽出することにより、当該プログラムの仕様書を自動的に作成する仕様書作成装置が、利用されている。この仕様書作成装置は、ソースコードからコメント文を抽出して仕様書を作成する機能の他に、作成された仕様書をオペレータにより編集させる機能，及び，編集された仕様書の内容をソースコードへ反映させる機能を、有している。
【０００４】
通常、ソースコードは、複数の「集合体」を含んでいる。例えば、このソースコードが、Ｃ＋＋により記述されている場合には、クラス，メンバ関数，外部関数，及び外部変数等が、その集合体に相当する。特に、これら集合体のうちの関数（メンバ関数及び外部関数）は、その内部に処理手続が記述されているため、「処理手続を有する集合体」という。
【０００５】
なお、コメント文は、集合体の直前に記述されているコメント文（第１種のコメント文）と、処理手続を有する集合体における処理手続内に記述されているコメント文（第２種のコメント文）とに、分類される。従来の仕様書作成装置は、第１種のコメント文を、ソースコードから抽出することにより、仕様書を自動作成する。そして、オペレータは、この仕様書作成装置を操作することにより、作成された仕様書を編集する。即ち、オペレータは、自動作成された仕様書に対し、不備な点を追加入力したり、不適切な記述を変更する。
【０００６】
さらに、この仕様書作成装置は、変更された仕様書における変更点を、元のソースコードに反映させる。即ち、仕様書作成装置は、更新された仕様書の内容をコメント文の形式に変換し、変換したコメント文（第１種のコメント文）を、当該コメント文が対応する集合体の直前に配置された変更前の旧コメント文と置換することにより、編集による変更点をソースコードに反映させる。
【０００７】
【発明が解決しようとする課題】
上記の従来技術による仕様書作成装置は、第２種のコメント文を処理対象としていない。仮に、この仕様書作成装置が第２種のコメント文をも処理対象にする場合を想定すると、以下のような問題がある。即ち、この仕様書作成装置は、ソースコードから第１種のコメント文及び第２種のコメント文を抽出して、仕様書を作成したとしても、編集により変更された仕様書の変更点のうち、第２種のコメント文に対応するものを、元のソースコードに反映させることができないという問題がある。この仕様書作成装置は、第２種のコメント文に関する変更点を、処理手続を有する集合体（関数）の内部におけるどの位置に挿入すべきか、認識できないためである。
【０００８】
この第２種のコメント文に関する仕様書中の変更点が、ソースコードへ反映されるためには、仕様書作成装置が、ソースコード中における記述行番号などの絶対的な位置を手がかりに当該変更点を関数内に挿入することも、考えられる。しかし、この場合には、仕様書が自動作成された後、編集による仕様書の変更点がこのソースコードに反映されるまでの期間中に、このソースコードは一切変更されてはならない。即ち、当該期間中は、オペレータは、このソースコードを修正することができなくなる。このため、開発効率が低下してしまう。
【０００９】
従って、従来の仕様書作成装置は、第１種のコメント文のみを処理の対象としていた。即ち、従来の仕様書作成装置は、ソースコードから第１種のコメント文のみを抽出して、仕様書を作成していた。
【００１０】
しかしながら、第１種のコメント文のみに基づいて作成された仕様書は、その記述の内容が充分ではない。そこで、第２種のコメント文をも処理の対象として取り扱うことができる仕様書作成装置，仕様書作成プログラム，及び仕様書作成プログラムを格納したコンピュータ可読媒体を提供することを、本発明の課題とする。
【００１１】
【課題を解決するための手段】
本発明は、上記課題を解決するために、以下のような構成を採用した。
【００１２】
即ち、本発明の仕様書作成装置は、入力装置，表示装置，及びプログラムに従った処理を実行する処理装置と、仕様書作成プログラムを格納した記憶媒体を、備えており、処理対象となるソースコードからコメント文を抽出して、仕様書データを作成する。
【００１３】
この仕様書作成プログラムは、処理装置に対して、ソースコード中のコメント文が配置されるべき位置に、ユニークなコメントキーワードを含んだコメント文を配置させ、このコメント文を抽出して仕様書データを作成させ、作成した仕様書データを表示装置に表示させ、入力装置を介して当該表示内容を変更する旨の指示がなされた場合には、この指示に従って、仕様書データ中のコメント文の内容を変更させ、ソースコード中のコメント文を、仕様書データ中のコメント文のうちのコメントキーワードが一致するもので置き換えさせる。
【００１４】
このように構成されると、ソースコード中のコメント文は、一意的に識別可能なコメントキーワードを含むことになる。これら各コメント文は、そのコメントキーワードにより、個別に管理される。このため、これら各コメント文が抽出されて仕様書データが作成され、この仕様書データがオペレータにより編集された場合に、仕様書データ中の変更点は、そのコメントキーワードを手掛かりに，ソースコード中のコメント文に、反映される。
【００１５】
ソースコード中のコメント文は、集合体の直前に記述されるもの（第１種のコメント）と、処理手続を有する集合体内に記述されるもの（第２種のコメント）とに、分類される。そして、コメントキーワードにより管理されるのは、第２種のコメントだけであってもよい。但し、これに限らず、第１種のコメントも、コメントキーワードにより管理されてもよい。
【００１６】
なお、ソースコードは、Ｃ＋＋，Ｃ，ＢＡＳＩＣ，Ｊａｖａ（米国、その他の国における米国Sun Microsystems社の商標または登録商標），ＦＯＲＴＲＡＮ，ＰＡＳＣＡＬ，ＣＯＢＯＬ，又はその他のプログラミング言語により記述されたものである。
【００１７】
【発明の実施の形態】
以下、図面に基づいて本発明の一実施形態による仕様書作成装置について、説明する。この仕様書作成装置は、パーソナルコンピュータ又はワークステーション等のコンピュータに、後述する処理を実行するソフトウェアを実装することにより、構成されていてもよい。
【００１８】
図１は、この仕様書作成装置のハードウェア構成図である。この図１に示されるように、仕様書作成装置は、バス及び図示せぬインタフェースを介して相互に接続されたＣＰＵ１１，ＲＡＭ１２，ＨＤＤ１３，ＣＤ−ＲＯＭドライブ１４，ディスプレイ１５，キーボード１６，マウス１７，及びプリンタ１８を、備えている。
【００１９】
ＣＰＵ１１は、各種プログラムを実行することにより所定の処理を行う処理装置である。ＲＡＭ１２は、データを記憶可能である。そして、ＣＰＵ１１は、このＲＡＭ１２上に、各種プログラムや各種テーブル等を展開する。
【００２０】
ＨＤＤ(Hard Disk Drive)１３は、磁気的に情報を保持可能な複数のディスク，及び，これら各ディスクに対してデータを読み書きする磁気ヘッドを、有する。そして、ＣＰＵ１１は、このＨＤＤ１３を制御することにより、各ディスクに対してデータを読み書きさせる。このＨＤＤ１３は、記憶媒体及びコンピュータ可読媒体に相当する。
【００２１】
ＣＤ−ＲＯＭドライブ１４は、ＣＤ−ＲＯＭを着脱可能に装填するスロット，及びＣＤ−ＲＯＭからデータを読み出す光学ヘッドを、有する。そして、ＣＰＵ１１は、このＣＤ−ＲＯＭドライブ４を制御することにより、装填されたＣＤ−ＲＯＭ内のデータを、読み出す。
【００２２】
ディスプレイ１５は、ＣＲＴやＬＣＤ等によりなり、画像データ及び文字データを画面表示する。そして、ＣＰＵ１１は、このディスプレイ１５を制御して、画像データ及び文字データを、画面表示させる。このディスプレイ１５は、表示装置に相当する。
【００２３】
キーボード１６は、オペレータにキャラクタコードを入力させるためのものである。マウス１７は、ディスプレイ１５上の所定領域に対応した仮想空間上の位置をオペレータに指定させるためのポインティングデバイスである。ＣＰＵ１１は、これらキーボード１６及びマウス１７からの入力を取得する。これらキーボード１６及びマウス１７は、入力装置に相当する。
【００２４】
プリンタ１８は、紙等の各種媒体に、文字やイメージを印刷する装置である。ＣＰＵ１１は、このプリンタ１８へ文字データやイメージデータを送信することにより、これらのデータを印刷させる。
【００２５】
なお、ＨＤＤ１３には、予め、オペレーティングシステム及びアプリケーションプログラム等のソフトウェアが、インストールされている。このソフトウェアは、ＣＤ−ＲＯＭ内に書き込まれた状態で、配布されることがある。この場合には、このソフトウェアは、ＣＤ−ＲＯＭドライブ１４を介してＨＤＤ１３にインストールされる。
【００２６】
上記オペレーティングシステムは、システム管理用のカーネル，及びＧＵＩを提供するウインドウシステムを、含んでいる。そして、ＣＰＵ１１は、オペレーティングシステムの少なくとも一部がＲＡＭ１２上に展開された状態で、このオペレーティングシステムのコードに従って動作する。
【００２７】
また、アプリケーションプログラムは、オペレーティングシステムが提供するＡＰＩを介して、このオペレーティングシステムの機能を呼び出すことにより、所定の処理を実現するプログラムである。そして、ＣＰＵ１１は、オペレーティングシステムが稼動した状態において、このアプリケーションプログラムを実行する。より具体的には、このアプリケーションプログラムは、エディタ及びコンパイラを有するソフトウェア開発環境，並びに，仕様書作成プログラムを、含んでいる。
【００２８】
そして、オペレータは、エディタを用いてソースコードを記述することにより、ソフトウェア開発を行う。記述されたソースコードは、ＨＤＤ１３内に格納される。図２は、Ｃ＋＋言語により記述されたソースコード例を示す図である。
【００２９】
この図２において、先頭が“//”である行が、コメント文である。なお、このコメント文は、「集合体」の直前に記述されている第１種のコメント文と、「処理手続を有する集合体」（関数）における処理手続内に記述されている第２種のコメント文とに、分類される。
【００３０】
この図２の例では、第７行目の“int getline()”以降が集合体（関数）であるため、第１行目乃至第６行目は、第１種のコメント文である。即ち、“//概要”，“//ファイルの行数を求める”，“//戻り値”，“//ファイルの行数”，“//パラメタ説明”，及び“//なし”，が、第１種のコメント文である。
【００３１】
なお、この第１種のコメント文は、所定の記述方式に従って記述されている。この記述方式によると、オペレータは、関数のプログラム（ソースコード）を作成する際に、必ず、当該関数についての“概要”，“戻り値”，及び“パラメタ説明”の各項目についての説明を記述することが、定められている。さらに、これら各項目についての説明は、夫々、“//概要”，“//戻り値”，及び“//パラメタ説明”の各コメント文の直後に記述されることが、定められている。
【００３２】
この図２において、第９，１２，１６行目は、関数内に記述されているので、第２種のコメント文である。即ち、“//変数の初期化を行う”，“//ファイルの終端を検出するまで行数を数える”，及び“//行数を画面に表示する”が、第２種のコメント文である。
【００３３】
仕様書作成プログラムは、このようなソースコードに基づいて、当該ソースコードに対応した仕様書を作成するためのプログラムである。以下、この仕様書作成プログラムを実行するＣＰＵ１１の処理について、図３のフローチャートを参照して概説する。この図３のフローチャート開始後の最初のＳ１では、ＣＰＵ１１は、ソースコードから第１種のコメント文を抽出して、以下に示すコメントデータベースを作成する。
【００３４】
図４は、図２のソースコードにおける集合体（getline関数）についてのコメントデータベースの内容を模式的に示す図である。このコメントデータベースには、コメント項目として、“概要”，“戻り値”，“パラメタ説明”，及び“機能説明”が、設定されている。また、このコメントデータベースには、これら各コメント項目に夫々対応する複数のコメントフィールド（図４の“コメント”欄）が、設定されている。なお、このコメントデータベースは、仕様書データに相当する。
【００３５】
この図４に示されるように、図２のソースコード中の第１種のコメント文における“//概要”の次の“//ファイルの行数を求める”が、概要に対応するコメントとして、コメントフィールドに格納されている。同様に、“//戻り値”の次の“//ファイルの行数”が、戻り値に対応するコメント文として、コメントフィールドに格納されている。同様に、“//パラメタ説明”の次の“//なし”が、パラメタ説明に対応するコメント文としてコメントフィールドに格納されている。なお、機能説明に対応するコメントフィールドは、後述の処理において、第２種のコメント文から抽出されるので、この時点では空欄になっている。
【００３６】
次のＳ２では、ＣＰＵ１１は、ディスプレイ１５上に、図５に示されるコメントキーワード形式設定画面２０を表示する。オペレータは、このコメントキーワード形式設定画面２０の先頭キーワード欄２１に、キーボード１６を介して後述するコメントキーワードの形式を入力する。なお、この図５の例では、コメントキーワードの形式として、“＊．＊）”が入力されている。この状態で、オペレータは、マウス１７によりボタン２２をクリックすることにより、コメントキーワードの形式を“＊．＊）”に設定する。
【００３７】
この“＊．＊）”は、仕様書プログラムにおいて予め規定された書式を模式的に示すものである。より具体的には、この“＊．＊）”は、“１”，“１．２”，“２．３．５”等の階層表現可能な項番を、意味している。後述するように、仕様書プログラムは、第２種のコメント文の夫々に対して、該コメント文に一意的に関連付けられたコメントキーワードを付与することにより、これら各コメント文を管理する。
【００３８】
次のＳ３では、ＣＰＵ１１は、ディスプレイ１５上に、図６に示されるコメントキーワード挿入位置設定画面３０を表示する。オペレータは、このコメントキーワード挿入位置設定画面３０を見ながらコメントキーワードの設定位置を決定する。このコメントキーワード挿入位置設定画面３０は、一対のチェックボックス３１，３２を、含んでいる。図６は、オペレータがマウス１７を操作して第１のチェックボックス３１のみをチェックした状態を、示している。この第１のチェックボックス３１がチェックされた場合には、ソースコード内に既に記述された第２種のコメント文中に、後述の処理においてコメントキーワードが挿入される。なお、この図６に示された設定は、図７のように必要なコメント文が全て記述されたソースコードを処理対象とする場合に、なされる。
【００３９】
一方、図８は、オペレータがマウス１７を操作して第２のチェックボックス３２のみをチェックした状態を、示している。この第２のチェックボックス３２がチェックされた場合には、後述の処理において、関数内における所定の指定箇所に、コメントキーワードが挿入される。この図８に示された設定は、図９のように第２種のコメントが何も記述されていないソースコードを処理対象とする場合に、なされる。
【００４０】
なお、図８に示されるように、第２のチェックボックス３２がチェックされた場合には、新たに、３つのチェックボックス３３，３４，３５が、表示される。これら各チェックボックス３３，３４，３５は、指定箇所を特定するためのものである。
【００４１】
そして、第３のチェックボックス３３がチェックされた場合には、順次文が、指定箇所として特定される（但し、順次文が連続する場合には、先頭の順次文のみが指定箇所として特定されれる）。即ち、連続する順次文の先頭，及び，連続しない連続しない順次文（単独の順次文）が、指定箇所として特定される。第４のチェックボックス３４がチェックされた場合には、ｆｏｒ，ｄｏ，ｗｈｉｌｅ及びｉｆ等の繰返し文及び判定文が、指定箇所として特定される。第５のチェックボックス３５がチェックされた場合には、ｒｅｔｕｒｎ，ｇｏｔｏ及びｃｏｎｔｉｎｕｅ等の分岐文が、指定箇所として特定される。
【００４２】
図１０は、オペレータがマウス１７を操作して第１のチェックボックス３１，及び，第２のチェックボックス３２をチェックした状態を、示している。この図１０に示されるように、オペレータは、これら両チェックボックス３１，３２の双方をチェックすることもできる。この場合には、ソースコード内に既に記述されたコメント文中，及び，指定箇所の双方に、コメントキーワードが挿入される。なお、図２のように、第２種のコメント文がいくつか記述されているものの、記述が不充分である場合には、この図１０に示された設定が、なされる。
【００４３】
そして、オペレータは、マウス１７を操作して、これら図６，図８又は図１０に示されたコメントキーワード挿入位置設定画面３０におけるボタン３６をクリックすることにより、このコメントキーワード挿入位置設定画面３０において設定された内容を、決定する。
【００４４】
次のＳ４では、ＣＰＵ１１は、ソースコード中にコメントキーワードを挿入する。このコメントキーワードは、Ｓ３において設定された位置に挿入される。このＳ３において、図６のように設定されていた場合には、Ｓ４において、ソースコード内に既に記述されたコメント文中に、コメントキーワードが挿入される。即ち、図７のソースコードは、図１１に示されるように変換される。
【００４５】
一方、図８のように設定（Ｓ３）されていた場合には、このＳ４において、指定箇所にコメントキーワードが挿入される。即ち、図９のソースコードは、図１２に示されるように変換される。この図１２に示されるように、コメントキーワードは、図９においてコメント文が存在していなかった位置に、挿入されている。
【００４６】
また、図１０のように設定（Ｓ３）されていた場合には、このＳ４において、ソースコード内に既に記述されたコメント文，及び，指定箇所の双方に、コメントキーワードが挿入される。即ち、図２のソースコードは、図１３に示されるように変換される。なお、このＳ４の処理については、後において詳述する。
【００４７】
次のＳ５では、ＣＰＵ１１は、ソースコードから第２種のコメントを抽出して、コメントデータベースに格納する。例えば、図１３のソースコードからは、“//１）変数の初期化を行う”，“//２）ファイルの終端を検出するまで行数を数える”，“//２．１）”，“//２．１．１）”，“//３）行数を画面に表示する”，及び“//４）”が、抽出される。なお、これら各コメント文は、Ｓ４で挿入されたコメントキーワードを含んでいる。抽出された各コメント文は、コメントデータベース（図４）の機能説明に対応するコメントフィールドに、格納される。図１４は、これら各コメント文が格納された状態のコメントデータベースの内容を、模式的に示す図である。なお、このＳ５の処理については、後において詳述する。
【００４８】
次のＳ６では、ＣＰＵ１１は、ディスプレイ１５上に、図１５に示される編集画面４０を表示する。オペレータは、この編集画面４０を見ながら、キーボード１６を操作することにより、仕様書の内容を編集する。さらに、ＣＰＵ１１は、編集後の仕様書の内容をコメントデータベースに反映させる。
【００４９】
図１５に示されるように、この編集画面４０は、４つの編集フィールド４１〜４４を、含んでいる。これら各編集フィールド４１〜４４には、図１４に示されたコメントデータベースの内容が表示されている。
【００５０】
第１の編集フィールド４１には、コメントデータベースの概要に対応するコメントフィールドの内容“ファイルの行数を求める”が、表示されている。第２の編集フィールド４２には、コメントデータベースの戻り値に対応するコメントフィールドの内容“ファイルの行数”が、表示されている。第３の編集フィールド４３には、コメントデータベースのパラメタ説明に対応するコメントフィールドの内容“なし”が、表示されている。これら第１乃至第３の編集フィールド４１〜４３に表示された内容は、第１種のコメント文から抽出されたものである。
【００５１】
第４の編集フィールド４４には、コメントデータベースの機能説明に対応するコメントフィールドの内容が、表示されている。即ち、“１）変数の初期化を行う”，“２）ファイルの終端を検出するまで行数を数える”，“２．１）”，“２．１．１）”，“３）行数を画面に表示する”，及び“４）”が、表示されている。この第４の編集フィールド４４に表示された内容は、第２種のコメント文から抽出されたものである。
【００５２】
オペレータは、各編集フィールド４１〜４４にカーソルを合わせ、キーボード１６を操作することにより、これら各編集フィールド４１〜４４の内容を変更することができる。図１５の例では、第４の編集フィールド４４に、記載の不充分な部分があるので、オペレータは、その不充分な部分を補う。即ち、オペレータは、“２．１）”，“２，１，１）”及び“４）”の部分に、説明文を追加する。
【００５３】
図１６は、編集後の編集画面４０を示す画面例である。この図１６に示されるように、図１５の“２．１）”，“２，１，１）”及び“４）”の部分は、夫々、“２．１）改行文字か調べる”，“２，１，１）改行文字の場合、行数をカウントする”及び“４）行数を呼出し元へ返す”に、変更されている。
【００５４】
この編集が終了した後、ＣＰＵ１１は、各編集フィールド４１〜４４の内容を、コメントデータベースに格納することにより、上記変更点をこのコメントデータベースに反映させる。図１７は、変更点が反映されたコメントデータベースの内容を模式的に示す図である。
【００５５】
この図１７に示されるように、図１６の編集画面４０における第１の編集フィールド４１の内容は、コメントデータベースの概要に対応するコメントフィールドへ格納される。同様に、第２の編集フィールド４２の内容は、戻り値に対応するコメントフィールドに格納される。同様に、第３の編集フィールド４３の内容は、パラメタ説明に対応するコメントフィールドに格納される。同様に、第４の編集フィールド４４の内容は、機能説明に対応するコメントフィールドに格納される。
【００５６】
次のＳ７では、ＣＰＵ１１は、プリンタ１８に仕様書を印刷させる。即ち、ＣＰＵ１１は、Ｓ６において処理されたコメントデータベースの内容を所定の書式に対応させて、プリンタ１８に仕様書として印刷させる。この仕様書は、例えば、図１６の画面と略同じ書式で、印刷されてもよい。なお、このコメントデータベースの内容は、ＨＴＭＬ形式，各種ワープロソフトのファイル形式，又は各種表計算ソフトのファイル形式等に変換されて、ＨＤＤ１３内に格納されてもよい。
【００５７】
次のＳ８では、ＣＰＵ１１は、Ｓ６において処理されたコメントデータベースの内容のうちの第１種のコメント文に関する部分を、ソースコードに反映させる。なお、Ｓ６において、図１５の編集画面４０が図１６に示されるように変更された場合には、第１種のコメントに対応する第１乃至第３の編集フィールド４１〜４３は、その内容が更新されていない。この場合には、コメントデータベースにおける当該部分も変化しないので、ソースコードにおける第１のコメント文の部分も、変化しない。
【００５８】
次のＳ９では、ＣＰＵ１１は、Ｓ６において処理したコメントデータベースの内容のうちの第２種のコメント文に関する部分を、ソースコードに反映させる。図１８は、更新されたソースコードを示す図である。この図１８に示されるように、図１３の“２．１）”，“２，１，１）”，及び“４）”の部分は、夫々、“２．１）改行文字か調べる”，“２，１，１）改行文字の場合、行数をカウントする”，及び“４）行数を呼び出し元へ返す”に、変更されている。なお、このＳ９の処理については、後において詳述する。
【００５９】
以下、上述した図３のフローチャートにおけるＳ４の処理について、図１９を参照してさらに説明する。なお、この図１９のフローチャートは、ＣＰＵ１１が、ＨＤＤ１３内に格納されたソースコードを開き、関数の開始部分まで読み込む処理がなされた後に、開始する。
【００６０】
この図１９のフローチャート開始後の最初のＳ４０１では、ＣＰＵ１１は、ソースコードを、処理対象となる関数の最後の部分まで読み込んで解析し、構文テーブルを作成する。即ち、ＣＰＵ１１は、ソースコードの各行毎に、文の種類を判別するとともに、プログラミング言語の論理構造におけるネストの深さを判別する。このネストの深さは、ネスト番号（自然数）で表される。このネスト番号は、最も浅いネストに１が対応している。そして、１段階ずつネストが深くなるにつれて、ネスト番号は、１ずつ増加してゆく。なお、構文テーブルの作成領域は、ＲＡＭ１２又はＨＤＤ１３内に確保されている。
【００６１】
さらに、ＣＰＵ１１は、コメントキーワードの管理用の項番テーブルを、ＲＡＭ１２又はＨＤＤ１３内に、確保している。この項番テーブルは、０又は自然数を格納可能なフィールドを、複数含んでいる。この項番テーブルのフィールド数は、処理対象となるソースコードにおける最大のネスト番号に一致している。なお、項番テーブルは、その初期状態において、各フィールドが０に設定されている。以下、説明を簡潔にするために、この項番テーブルのフィールド数を３とする。この場合において、項番テーブルの初期状態における値は、“０；０；０”である。この項番テーブルの最初のフィールドは、ネスト番号１に対応しており、次のフィールドは、ネスト番号２に対応している。以下、順次同様に、項番テーブルの各フィールドは、各ネスト番号に対応している。
【００６２】
図２０は、図２のソースコードに基づく構文テーブルの模式図である。この構文テーブルは、ソースコードの各行に関して、文の種類，ネスト番号，及び，当該行に記載された文そのものを、含んでいる。即ち、この構文テーブルの各レコードは、“文の種類”フィールド，“ネスト番号”フィールド，及び“文”フィールドを、含んでいる。なお、この構文テーブルにおける各レコードは、ソースコードにおける文の記載順に従って、配列されている。この図２０の構文テーブルに対して、後述のＳ４０２以降の処理がなされた場合に得られる構文テーブルは、図２１に示されている。
【００６３】
図２０において、“//変数の初期化を行う”の文を含む先頭のレコードは、文の種類がコメント文であり、ネスト番号が１と判別されている。そして、“int c,nl;”及び“nl=0;”は、夫々、文の種類が順次文であり、ネスト番号が１と判別されている。次の“//ファイルの終端を検出するまで行数を数える”の文を含むレコードは、文の種類がコメント文であり、ネスト番号が１と判別されている。
【００６４】
次の“while((c=getchar()) !=EOF)”の文を含むレコードは、文の種類が繰返し文であり、ネスト番号が２と判別されている。即ち、ＣＰＵ１１は、Ｃ＋＋の言語構造に従って、ネストが１段階深くなったと、判別している。次の“if(c=='\n') ”の文を含むレコードは、文の種類が判定文であり、ネスト番号が３と判別されている。即ち、ＣＰＵ１１は、Ｃ＋＋の言語構造に従って、ネストがさらに１段階深くなったと、判別している。
【００６５】
次の“++nl;”の文を含むレコードは、文の種類が順次文であり、ネスト番号が３と判別されている。次の“//行数を画面に表示する”の文を含むレコードは、文の種類がコメント文であり、ネスト番号が１と判別されている。即ち、ＣＰＵ１１は、Ｃ＋＋の言語構造に従って、ネストが２段階浅くなったと、判別している。次の“printf("%d\n",nl);”の文を含むレコードは、文の種類が順次文であり、ネスト番号が１と判別されている。次の“return nl;”の文を含むレコードは、文の種類が分岐文であり、ネスト番号が１と判別されている。
【００６６】
以降の処理において、ＣＰＵ１１は、構文テーブルを、その先頭のレコードから１レコードずつ順次処理して行く。但し、現段階では、構文テーブルの各レコードは全て未処理であり、処理済のレコードはまだ存在しない。
【００６７】
Ｓ４０２では、ＣＰＵ１１は、構文テーブルに未処理のレコードがあるかどうか、判別する。そして、ＣＰＵ１１は、未処理のレコードがあれば処理をＳ４０３へ進め、未処理のレコードがなければ処理を終了させる。
【００６８】
Ｓ４０３では、ＣＰＵ１１は、構文テーブルにおける未処理のレコードのうちの先頭の１レコードを、処理対象レコードとして取り出す。
【００６９】
次のＳ４０４では、ＣＰＵ１１は、処理対象レコードの文の種類が、コメント文であるかどうか判別する。そして、ＣＰＵ１１は、この文の種類がコメント文である場合には、処理をＳ４０５へ進め、それ以外の場合には、処理をＳ４０９へ進める。
【００７０】
Ｓ４０５では、ＣＰＵ１１は、処理対象レコードの文（コメント文）が、コメントキーワードを含んでいるかどうか、判別する。そして、ＣＰＵ１１は、コメントキーワードが含まれている場合には、処理をＳ４０６へ進め、コメントキーワードが含まれていない場合には、処理をＳ４０７へ進める。なお、図２０の構文テーブルにおける各文は、いずれもコメントキーワードを含んでいない。このため、この図２０の構文テーブルが処理される場合には、Ｓ４０６の処理は１度も行われないことになる。このＳ４０６の処理については、別の構文テーブルの例を用いて、後述する。
【００７１】
Ｓ４０７では、ＣＰＵ１１は、コメント文にコメントキーワードを挿入する設定がなされているかどうか判別する。図６又は図１０に示されたように、コメントキーワード挿入位置設定画面３０の第１のチェックボックス３１がチェックされていた場合には、ＣＰＵ１１は、コメントキーワードを挿入するものと判別して、処理をＳ４０８へ進める。一方、図８に示されたように、コメントキーワード挿入位置設定画面３０の第１のチェックボックス３１がチェックされていなかった場合には、ＣＰＵ１１は、コメントキーワードを挿入しないものと判別して、処理をＳ４０２へ戻す。
【００７２】
Ｓ４０８では、ＣＰＵ１１は、項番テーブルを更新し、コメントキーワードを生成してコメント文中に挿入する。この項番テーブルの更新は、ネスト番号に基づいてなされる。即ち、ＣＰＵ１１は、処理対象レコードのネスト番号を参照し、このネスト番号に対応するフィールドの値を１増加させる。このため、図２０の構文テーブルにおける最初のレコードが処理対象レコードである場合には、このレコードのネスト番号が１であるため、項番テーブルにおける１番目のフィールドが、インクリメントされる。即ち、この場合には、項番テーブルの値は“０；０；０”から“１；０；０”に更新される。
【００７３】
なお、更新されたフィールドよりも後のフィールドは、０にリセットされる。例えば、更新前の項番テーブルの値が“２；１；１”であって、処理対象レコードのネスト番号が１である場合には、この項番テーブルの値は、“３；０；０”に更新される。
【００７４】
そのうえで、ＣＰＵ１１は、更新された項番テーブルの値からコメントキーワードを生成する。例えば、項番テーブルの値が“２；１；１”であれば、コメントキーワードは、“２．１．１）”として生成される。但し、このコメントキーワードは、項番テーブルの各フィールドのうちのその値が０でないもののみに基づいて、生成される。このため、項番テーブルの値が“１；０；０”であれば、コメントキーワードは、“１）”として生成される。
【００７５】
さらに、ＣＰＵ１１は、生成したコメントキーワードを、処理対象のレコードのコメント文の“//”の直後に挿入する。例えば、図２０の構文テーブルにおける先頭のレコードの文は、“//変数の初期化を行う”から“//１）変数の初期化を行う”になる。
【００７６】
一方、Ｓ４０９は、処理対象レコードの文の種類がコメント文以外である場合（Ｓ４０４；Ｎｏ）の処理である。このため、文の種類は、順次文，繰返し文，判定文，又は分岐文である。
【００７７】
このＳ４０９では、ＣＰＵ１１は、処理対象のレコードの文に対応するコメント文が不足しているかどうか、判別する。即ち、ＣＰＵ１１は、処理対象のレコードの直前のレコードにおける文の種類が、コメント文である場合には、コメント文が不足していないと判別して、処理をＳ４０２へ戻す。なお、処理対象のレコード及び直前のレコードにおける文の種類が、いずれも順次文である場合にも、ＣＰＵ１１は、コメント文が不足していないと判別して、処理をＳ４０２へ戻す。一方、それ以外の場合には、ＣＰＵ１１は、コメント文が不足していると判別して、処理をＳ４１０へ進める。
【００７８】
Ｓ４１０では、ＣＰＵ１１は、指定箇所にコメントキーワードを挿入する設定がなされているかどうか判別する。図６に示されたように、コメントキーワード挿入位置設定画面３０の第２のチェックボックス３２がチェックされていなければ、ＣＰＵ１１は、コメントキーワードを挿入しないものと判別して、処理をＳ４０２へ戻す。一方、図８又は図１０に示されたように、コメントキーワード挿入位置設定画面３０の第２のチェックボックス３２がチェックされていた場合には、ＣＰＵ１１は、コメントキーワードを挿入するものと判別して、処理をＳ４１１へ進める。
【００７９】
但し、コメントキーワード挿入位置設定画面３０の第２のチェックボックス３２がチェックされていたとしても、以下の３つの場合には、ＣＰＵ１１は、処理をＳ４０２へ戻す。第１に、処理対象レコードの文の種類が順次文であるときに、第３のチェックボックス３３がチェックされていない場合。第２に、処理対象レコードの文の種類が繰返し文又は判定文であるときに、第４のチェックボックス３４がチェックされていない場合。第３に、処理対象レコードの文の種類が分岐文であるときに、第５のチェックボックス３５がチェックされていない場合。
【００８０】
Ｓ４１１では、ＣＰＵ１１は、構文テーブルにおける処理対象レコードと該処理対象レコードの直前のレコードとの間に、新たなレコードを追加する。この追加されるレコードは、その文の種類がコメント文として設定される。また、この追加されるレコードは、そのネスト番号が、処理対象レコードの直前のレコードのネスト番号と同じ値に、設定される。また、この追加されるレコードの文は、内容のない空のコメント文として“//”のみが設定される。そして、ＣＰＵ１１は、追加した新しいレコードを、上記処理対象レコードの代わりに、処理対象レコードとする。
【００８１】
例えば、図２０の構文テーブルにおいて、処理対象レコードが“if(c=='\n') ”の文を含むレコードである場合には、このレコードと、“while((c=getchar()) !=EOF)”の文を含むレコードとの間に、新たなレコードが追加される。そして、この追加されたレコードが、処理対象レコードになる。
【００８２】
次のＳ４１２では、ＣＰＵ１１は、Ｓ４０８の場合と同様に、項番テーブルを更新し、コメントキーワードを生成してコメント文に挿入する。なお、処理対象レコードは、Ｓ４１１で追加された新たなレコードであるため、そのコメント文は、内容のない空のコメント文として“//”のみを含んでいる。このため、例えば、生成されたコメントキーワードが“２．１）”であれば、このコメント文は、“//”から“//２．１）”になる。そのうえで、ＣＰＵ１１は、処理をＳ４０２へ戻す。
【００８３】
この図１９のフローチャートの処理がなされることにより、そのＳ４０１の処理で図２０の構文テーブルが得られた場合には、Ｓ４０２以降の処理により、図２１の構文テーブルが得られる。なお、上記の例では、ソースコード中に含まれる関数が１つのみであった。これに対し、ソースコード中に、関数が複数含まれている場合には、ＣＰＵ１１は、図１９のフローチャートによる処理を各関数に対応させて繰り返せばよい。
【００８４】
以下、この図１９のフローチャートにおいて、説明を省略したＳ４０６の処理について、図２２のソースコードを参照して、説明する。この図２２のソースコードは、図３のフローチャートに従って一度処理された後に、オペレータによりさらに変更が加えられたものである。このため、図２２のソースコードは、コメントキーワードを不完全な状態で含んでいる。即ち、コメントキーワードが部分的に不足しているだけでなく、付与されたコメントキーワードの番号体系に乱れがある。
【００８５】
この図２２のソースコードに対して、Ｓ４０１の処理がなされると、図２３に示される構文テーブルが、作成される。そして、Ｓ４０１の直後の第１回目のＳ４０２においては、構文テーブルに未処理のレコードがあるので、処理はＳ４０３へ進む。Ｓ４０３では、“//２）変数の初期化を行う”の文を含む先頭のレコードが、処理対象レコードとして取得される。次のＳ４０４では、この処理対象レコードの文の種類がコメント文であるので、処理はＳ４０５へ進む。Ｓ４０５において、処理対象レコードの文にコメントキーワードが含まれているので、処理はＳ４０６へ進む。
【００８６】
Ｓ４０６では、ＣＰＵ１１は、項番テーブルを更新し、コメントキーワードを生成して、コメント文中に既に設定されたコメントキーワードをリナンバする。なお、初期状態における項番テーブルは、“０；０；０”であり、処理対象のレコードのネスト番号は１であるので、この項番テーブルは、“１；０；０”に更新される。このため、生成されるコメントキーワードは、“１）”になる。そして、ＣＰＵ１１は、生成したコメントキーワード“１）”を、処理対象レコードのコメント文“//２）変数の初期化を行う”中の“２）”の部分と置換することにより、コメントキーワードをリナンバする。リナンバ後の処理対象レコードのコメント文は、“//１）変数の初期化を行う”になる。
【００８７】
同様にして、このＳ４０６において、処理対象レコードが“//３）ファイルの終端を検出するまで行数を数える”の文を含むレコードである場合には、この文は、Ｓ４０６の処理により、“//２）ファイルの終端を検出するまで行数を数える”になる。同様に、処理対象レコードが“//６）行数を画面に表示する”の文を含むレコードである場合には、この文は、Ｓ４０６の処理により、“//３）行数を画面に表示する”になる。
【００８８】
このため、Ｓ４０１において図２３の構文テーブルが得られた場合にも、Ｓ４０２以降の処理により、図２１の構文テーブルが得られる。この図１９のフローチャートにおいて、ＣＰＵ１１は、元になるソースコードが不適切なコメントキーワードを含んでいたとしても、そのコメントキーワードをリナンバすることにより、正しいコメントキーワードが付された構文テーブルを得ることができる。
【００８９】
以下、上述した図３のフローチャートにおけるＳ５の処理について、図２４のフローチャートを参照してさらに説明する。なお、この図２４において、ＣＰＵ１１は、構文テーブルを、その先頭のレコードから１レコードずつ順次処理して行く。但し、この図２４のフローチャート開始前の状態において、図３のＳ４において更新された構文テーブル（図２１）の各レコードは全て未処理であり、処理済のレコードはまだ存在しない。
【００９０】
この図２４のフローチャート開始後の最初のＳ５０１では、ＣＰＵ１１は、構文テーブルに未処理のレコードがあるかどうか、判別する。そして、ＣＰＵ１１は、未処理のレコードがあれば処理をＳ５０２へ進め、未処理のレコードがなければ処理を終了させる。
【００９１】
Ｓ５０２では、ＣＰＵ１１は、構文テーブルにおける未処理のレコードのうちの先頭の１レコードを、処理対象レコードとして取り出す。
【００９２】
次のＳ５０３では、ＣＰＵ１１は、処理対象レコードの文の種類が、コメント文であるかどうか判別する。そして、ＣＰＵ１１は、この文の種類がコメント文である場合には、処理をＳ５０４へ進め、それ以外の場合には、処理をＳ５０１へ戻す。
【００９３】
Ｓ５０４では、ＣＰＵ１１は、処理対象レコードの文（コメント文）が、コメントキーワードを含んでいるかどうか、判別する。そして、ＣＰＵ１１は、コメントキーワードが含まれている場合には、処理をＳ５０５へ進め、コメントキーワードが含まれていない場合には、処理をＳ５０１へ戻す。なお、図２１の構文テーブルにおける各コメント文は、いずれもコメントキーワードを含んでいる。
【００９４】
Ｓ５０５では、ＣＰＵ１１は、処理対象レコードの文（コメント文）を、コメントデータベースに格納する。なお、図３のフローチャートのＳ１において作成されたコメントデータベースは、図４に示されるように、その機能説明に対応するコメントフィールドが空欄になっている。このＳ５０５において、ＣＰＵ１１は、処理対象レコードのコメント文を、コメントデータベースの機能説明に対応するコメントフィールドに格納する。そして、ＣＰＵ１１は、処理をＳ５０１へ戻す。
【００９５】
この図２４のフローチャート（図３のＳ５）の処理が完了すると、図４のコメントデータベースは、図１４に示された状態に、更新される。なお、図３のＳ６において、この図１４のコメントデータベースは、図１７に示された状態に、さらに更新される。
【００９６】
以下、図３のフローチャートにおけるＳ９の処理について、図２５のフローチャートを参照してさらに説明する。なお、図２５のフローチャートにおいて、ＣＰＵ１１は、構文テーブル（図２１）を、その先頭のレコードから１レコードずつ順次処理して行く。但し、この図２５のフローチャート開始前の状態において、構文テーブルの各レコードは全て未処理であり、処理済のレコードはまだ存在しない。
【００９７】
この図２５のフローチャート開始後の最初のＳ９０１では、ＣＰＵ１１は、構文テーブルに未処理のレコードがあるかどうか、判別する。そして、ＣＰＵ１１は、未処理のレコードがあれば処理をＳ９０２へ進め、未処理のレコードがなければ処理を終了させる。
【００９８】
Ｓ９０２では、ＣＰＵ１１は、構文テーブルにおける未処理のレコードのうちの先頭の１レコードを、処理対象レコードとして取り出す。
【００９９】
次のＳ９０３では、ＣＰＵ１１は、処理対象レコードの文の種類が、コメント文であるかどうか判別する。そして、ＣＰＵ１１は、この文の種類がコメント文である場合には、処理をＳ９０４へ進め、それ以外の場合には、処理をＳ９０１へ戻す。
【０１００】
Ｓ９０４では、ＣＰＵ１１は、処理対象レコードの文（コメント文）が、コメントキーワードを含んでいるかどうか、判別する。そして、ＣＰＵ１１は、コメントキーワードが含まれている場合には、処理をＳ９０５へ進め、コメントキーワードが含まれていない場合には、処理をＳ９０１へ戻す。なお、図２１の構文テーブルにおける各コメント文は、いずれもコメントキーワードを含んでいる。
【０１０１】
Ｓ９０５では、ＣＰＵ１１は、処理対象レコードのコメント文に含まれるコメントキーワードが、Ｓ６において処理したコメントデータベース（図１７）の機能説明に対応するコメントフィールド中に、含まれているかどうかを判別する。そして、ＣＰＵ１１は、このコメントキーワードが含まれている場合には、当該コメントキーワードを処理対象コメントキーワードとして処理をＳ９０６へ進める。一方、ＣＰＵ１１は、このコメントキーワードが含まれていない場合には、処理をＳ９０１へ戻す。
【０１０２】
Ｓ９０６では、ＣＰＵ１１は、コメントデータベースに基づいてソースコードを更新する。まず、ＣＰＵ１１は、コメントデータベース（図１７）の機能説明に対応するコメントフィード内に格納されたコメント文のうち、処理対象コメントキーワードを含む文を抽出する。そして、ＣＰＵ１１は、ソースコード（図１３）のコメント文のうちの処理対象コメントキーワードを含むものを特定する。そのうえで、ＣＰＵ１１は、ソースコードにおける特定したコメント文を、コメントデータベースから抽出したコメント文で、置き換える。
【０１０３】
この図２５のフローチャート（図３のＳ９）の処理により、図３のＳ６において処理されたコメントデータベース（図１７）の機能説明に対応するコメントフィールドの内容が、ソースコードに反映される。即ち、図１３のソースコードは、図１７のコメントデータベースに基づき、図１８のソースコードに変換される。
【０１０４】
上述の本実施形態による仕様書作成装置は、ソースコードから、第１種のコメント文だけでなく第２種のコメント文をも抽出して、自動的に仕様書を作成することができる。自動的に作成された仕様書は、第１種のコメント文だけが含まれた仕様書に比べて、その記載内容が充実しているので、オペレータによる編集作業が省力化される。
【０１０５】
さらに、この仕様書作成装置は、仕様書の編集作業における変更点を、ソースコードへ反映させることができる。即ち、第１種のコメント文に関する変更点だけでなく、第２種のコメント文に関する変更点も、ソースコードへ反映される。
【０１０６】
なお、第２種のコメント文のソースコードへの反映は、コメントキーワードに基づいてなされる。このため、自動作成された仕様書が編集中であったとしても、オペレータは、コメントキーワードを変更しない範囲で、ソースコードを更新することができる。そして、仕様書作成装置は、更新されたソースコードへも、仕様書の編集による変更点を、反映させることができる。このため、オペレータの作業上の制約が少なくなり、開発効率が向上する。
【０１０７】
（付記１）入力装置及び表示装置に接続されるとともにプログラムに従った処理を実行する処理装置に対して、ソースコード中のコメント文が配置されるべき位置に、一意的に識別可能なコメントキーワードを含んだコメント文を配置させ、前記コメントキーワードを含んだコメント文を抽出して仕様書データを作成させ、前記仕様書データを前記表示装置に表示させ、前記入力装置を介して当該表示内容を変更する旨の指示がなされた場合には、この指示に従って、前記仕様書データ中のコメント文の内容を変更させ、前記ソースコード中のコメント文を、前記仕様書データ中のコメント文のうちのコメントキーワードが一致するもので置き換えさせる仕様書作成プログラムを格納したコンピュータ可読媒体。
【０１０８】
（付記２）前記仕様書作成プログラムは、前記処理装置に対して、ソースコード中の処理手続を有する集合体内に記載されるべきコメント文を、処理対象とさせることを特徴とする付記１記載のコンピュータ可読媒体。
【０１０９】
（付記３）前記仕様書作成プログラムは、前記処理装置に対して、既にソースコード中に含まれたコメント文中に、コメントキーワードを挿入させることを特徴とする付記１又は２記載のコンピュータ可読媒体。
【０１１０】
（付記４）前記仕様書作成プログラムは、前記処理装置に対して、ソースコード中の連続する順次文のうちの先頭のもの，連続しない順次文，繰返し文，判定文，及び分岐文から選択された文の近傍の位置を、コメント文が配置されるべき位置とさせることを特徴とする付記１〜３のいずれかに記載のコンピュータ可読媒体。
【０１１１】
（付記５）入力装置及び表示装置に接続されるとともにプログラムに従った処理を実行する処理装置に対して、ソースコード中のコメント文が配置されるべき位置に、一意的に識別可能なコメントキーワードを含んだコメント文を配置させ、前記コメントキーワードを含んだコメント文を抽出して仕様書データを作成させ、前記仕様書データを前記表示装置に表示させ、前記入力装置を介して当該表示内容を変更する旨の指示がなされた場合には、この指示に従って、前記仕様書データ中のコメント文の内容を変更させ、前記ソースコード中のコメント文を、前記仕様書データ中のコメント文のうちのコメントキーワードが一致するもので置き換えさせる仕様書作成方法。
【０１１２】
（付記６）所定のプログラミング言語により記述されたソースコード中のコメント文を抽出して仕様書データを作成する仕様書作成装置であって、入力装置と、情報を表示する表示装置と、プログラムを読み込むことによって、このプログラムに従った処理を実行する処理装置と、前記処理装置に対して、ソースコード中のコメント文が配置されるべき位置に、一意的に識別可能なコメントキーワードを含んだコメント文を配置させ、前記コメントキーワードを含んだコメント文を抽出して仕様書データを作成させ、前記仕様書データを前記表示装置に表示させ、前記入力装置を介して当該表示内容を変更する旨の指示がなされた場合には、この指示に従って、前記仕様書データ中のコメント文の内容を変更させ、前記ソースコード中のコメント文を、前記仕様書データ中のコメント文のうちのコメントキーワードが一致するもので置き換えさせる仕様書作成プログラムを格納した記憶媒体とを備えたことを特徴とする仕様書作成装置。
【０１１３】
【発明の効果】
以上のように構成された本発明の仕様書作成プログラム及び仕様書作成プログラムを格納したコンピュータ可読媒体によれば、ソースコードのコメント文は、コメントキーワードにより管理される。このため、ソースコードのコメント文を含んだ仕様書データが編集により変更されたとしても、ソースコードのコメント文には、このコメントキーワードに基づいて、当該変更点が反映される。このため、ソースコード中における処理手続を有する集合体内に記載されるコメント文が処理対象であったとしても、このコメント文には、仕様書の編集による変更点が反映される。
【図面の簡単な説明】
【図１】  仕様書作成装置のハードウェア構成図
【図２】  ソースコード例を示す図
【図３】  仕様書作成処理を示すフローチャート
【図４】  コメントデータベースの内容を模式的に示す図
【図５】  コメントキーワード形式設定画面例を示す図
【図６】  コメントキーワード挿入位置設定画面例を示す図
【図７】  ソースコード例を示す図
【図８】  コメントキーワード挿入位置設定画面例を示す図
【図９】  ソースコード例を示す図
【図１０】  コメントキーワード挿入位置設定画面例を示す図
【図１１】  ソースコード例を示す図
【図１２】  ソースコード例を示す図
【図１３】  ソースコード例を示す図
【図１４】  コメントデータベースの内容を模式的に示す図
【図１５】  編集画面例を示す図
【図１６】  編集画面例を示す図
【図１７】  コメントデータベースの内容を模式的に示す図
【図１８】  ソースコード例を示す図
【図１９】  図３におけるＳ４の処理を示すフローチャート
【図２０】  構文テーブルの内容を模式的に示す図
【図２１】  構文テーブルの内容を模式的に示す図
【図２２】  ソースコード例を示す図
【図２３】  構文テーブルの内容を模式的に示す図
【図２４】  図３におけるＳ５の処理を示すフローチャート
【図２５】  図３におけるＳ９の処理を示すフローチャート
【符号の説明】
１１    ＣＰＵ
１２    ＲＡＭ
１３    ＨＤＤ
１５    ディスプレイ
１６    キーボード
１７    マウス
１８    プリンタ
【図１】
0003933892.tif 000002
【図２】
0003933892.tif 000003
【図３】
0003933892.tif 000004
【図４】
0003933892.tif 000005
【図５】
0003933892.tif 000006
【図６】
0003933892.tif 000007
【図７】
0003933892.tif 000008
【図８】
0003933892.tif 000009
【図９】
0003933892.tif 000010
【図１０】
0003933892.tif 000011
【図１１】
0003933892.tif 000012
【図１２】
0003933892.tif 000013
【図１３】
0003933892.tif 000014
【図１４】
0003933892.tif 000015
【図１５】
0003933892.tif 000016
【図１６】
0003933892.tif 000017
【図１７】
0003933892.tif 000018
【図１８】
0003933892.tif 000019
【図１９】
0003933892.tif 000020
【図２０】
0003933892.tif 000021
【図２１】
0003933892.tif 000022
【図２２】
0003933892.tif 000023
【図２３】
0003933892.tif 000024
【図２４】
0003933892.tif 000025
【図２５】
0003933892.tif 000026