JP2006190332A - プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム - Google Patents

プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム Download PDF

Info

Publication number
JP2006190332A
JP2006190332A JP2006083405A JP2006083405A JP2006190332A JP 2006190332 A JP2006190332 A JP 2006190332A JP 2006083405 A JP2006083405 A JP 2006083405A JP 2006083405 A JP2006083405 A JP 2006083405A JP 2006190332 A JP2006190332 A JP 2006190332A
Authority
JP
Japan
Prior art keywords
comment
keyword
program
function
extracted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006083405A
Other languages
English (en)
Inventor
Koji Sasaki
孝次 佐々木
Masakatsu Osakabe
将且 刑部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006083405A priority Critical patent/JP2006190332A/ja
Publication of JP2006190332A publication Critical patent/JP2006190332A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ソースプログラムからプログラム仕様書を容易且つ高速に生成するプログラム仕様書作成装置、方法、プログラムを提供する。
【解決手段】プログラム仕様書作成装置の表示装置21はユーザにGUI機能を提供し、入力装置22はデータ入力機能を提供し、外部記憶装置23はソースプログラムその他のプロジェクト資産を保存し、印刷装置24はプログラム仕様書を印刷する。演算装置25にはコメントキーワード設定部31、コメント抽出部32、プロジェクト資産管理部33、差分解析部34、仕様書生成部35及び仕様書印刷部36の各モジュールが実装される。先ず、ソースプログラムからコメントを検索するキーワードの候補を抽出し、設定し、確認して、この確認されたキーワードに基づいてファイルの違いに関するコメント、シンボルの違いに関するコメント、処理手続きの違いに関するコメントをコメント項目毎に抽出して、改版仕様書として印刷する。
【選択図】図2

Description

本発明は、リエンジニアリング、リバースエンジニアリングの分野において、ソースプログラムからプログラム仕様書を作成する技術に関し、特に、ソースプログラムの変更情報をプログラム仕様書として生成する技術に関する。
従来より、システムの開発すなわちそのシステムを動作させるプログラムの開発では、先ずプログラムの設計書であるプログラム仕様書を作ってからそのプログラム仕様書に基づいてプログラムつまりソースプログラムを作成するフォーワードエンジニアリングと呼ばれる手法が基本であった。
ところが、システムを構築してそのシステムを用いる顧客の現場の状況というものは、システムを実働させてみて種々の変更が必要となるのが一般的であるから、そのつどプログラム仕様書を書き換えて、その書き換えたプログラム仕様書に基づいてソースプログラムを変更する従来の手法では、近年の速い時の流れに追い付くことができない。
したがって、近年のプログラム開発では、とにかく先ずソースプログラムの作成から開発作業を開始する。そして、これをコンパイルし、プログラムを動作させ、システムを稼動させてみて、その実働状態を見て顧客と相談しながら臨機応変にプログラムに修正を加えていくプロットタイプ開発と呼ばれる開発手法が採られる場合が多い。したがって開発現場にはプログラム仕様書が存在しない。
ところで、システムの変更が行われた場合、その変更が正しく行われたかどうかを調べるために、変更前と変更後のソースプログラムを比較する必要がある。その場合、従来では、変更前のソースプログラムと変更後のソースプログラムをそれぞれ記述したテキストを、行単位で順次比較して、変更(追加、削除、変更)があった行を表示している。
しかし、そのようにソースプログラムの変更がソースプログラムを記述したテキスト上に現れる表面上の違いでしか把握出来ないのでは、先ず、プログラムの変更がなぜ行われたのかという重要な事柄を知ることができないし、次に、データ構成や関数構成等システム構成に対してどのような変更があったのかを知ることもできない。更に、上記のように本来あるべき情報が不足しているために資料として保管しても利用の役に立たないという問題が起る。
そのため、変更の確認にはソースプログラムを隅から隅まで念入りに調べる必要が生じ、多くの労力が必要になるだけでなく、変更に誤りがある場合でもその誤りを見つけにくく、結果として近年のプロットタイプ開発はプログラム変更の信頼性を損なう虞が多分にあるという問題を有していた。
もし、フォーワードエンジニアリングの基本手法でプログラムが開発されていれば、ソースプログラムに即したプログラム仕様書が常に存在するから上記の問題は起きないが、それでは時代の潮流に合わないことは前述した。そこで、上記の問題を解決すべく、現在では、リエンジニアリングと呼ばれる技術によってソースプログラムからプログラム仕様書を生成する方法が種々提案され、実用化されている。
ところで、一般にプログラム仕様書を作成するためには、コメント規約(コメント情報とそのコメントをソースプログラム内で識別するためのキーワードとの対応規定)が予め定義されている必要がある。つまり、本来は、ソースプログラムを作成する前に、予めコメント規約を定義しておき、そのコメント規約に従ってソースプログラムを記述していれば、そのコメント規約を参照し、そのコメントとキーワードの対応をパラメータとしてプログラム仕様書作成装置に設定することによって、プログラム仕様書の作成を容易に行うことができる。
しかしながら、通常は、コメント規約が策定されていない場合が多く、また、近年では複数のエンジニアで1つのシステムを作リ上げる場合が多いから、作成されたソースプログラムに記述されているコメントの記述様式は統一されていない。したがって、それらのソースプログラムからプログラム仕様書を作成するためには、ばらばらに作成されたソースプログラムを1つ1つ参照しながら、抽出すべきコメントに該当するキーワードを探し出す作業が必要になり、この作業に多くの労力を費やしていた。
また、いずれにしても、それらのプログラム仕様書は、単にソースプログラムからプログラム仕様書を生成して、ソースプログラムを直接調べるよりは内容調査を行いやすくしようとしただけのものであり、プログラムの内容を知るためのコメント抽出なども行われてはいるものの、変更後のプログラムの変更理由やシステム構成さらには変更箇所を情報化したものではかった。
また、ソースプログラムからプログラム仕様書を生成する更なる改良された方法は、本出願人によって先の出願である特願平2−166442号出願(特開平4−55938号公報)や特願平4−220721号出願(特開平4−220721号公報)において提案されている。しかし、これも、変更後のプログラムの変更理由やシステム構成さらには変更箇所を分かり易く情報化することを目的としたものではなかったため、必ずしも改版仕様書としても使用できる理想的なプログラム仕様書とは言い難く、更なる改良が望まれるものであった。
本発明の課題は、リエンジニアリング分野における更なる改良を目的とし、プログラム仕様書その他のドキュメントを高速に生成可能であり、特に変更後のプログラムの変更理由やシステム構成さらには変更箇所等からなるソースプログラムの変更情報を改版プログラム仕様書として生成する技術を上記特願平2−166442号出願や特願平4−220721号出願とは異なる方法で実現したプログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラムを提供することである。
図1(a) は第1の発明のプログラム仕様書作成装置における動作原理図であり、図1(b) は第2の発明のプログラム仕様書作成装置における動作原理図である。先ず、第1の発明(請求項1記載の発明)のプログラム仕様書作成装置は、図1(a) に示すように、ソースプログラム解析手段1、コメント抽出手段2、プロジェクト資産管理手段3、差分解析手段4、及び改版仕様書生成手段5から構成される。
上記の各手段において、ソースプログラム解析手段1は、ソースプログラムを解析して該ソースプログラムの構成要素を抽出する。コメント抽出手段2は、上記ソースプログラムに挿入されているコメントからプログラム仕様書に表示すべきコメントを抽出する。プロジェクト資産管理手段3は、上記ソースプログラム、上記ソースプログラム解析手段により抽出された構成要素、及び上記コメント抽出手段により抽出されたコメントを含むプロジェクト資産を保存する。差分解析手段4は、該プロジェクト資産管理手段により保存された日時の異なる上記プロジェクト資産の中の新旧二つのソースプログラムを抽出し、該新旧二つのソースプログラムに定義されているシンボルを比較して違いがあるときは該シンボルの違い情報を抽出し、前記新旧二つのソースプログラムの同一シンボルに付随するコメントを比較して違いがあるときは該コメントの違い情報を抽出する。そして、改版仕様書生成手段5は、該差分解析手段により検出された上記違い情報に基づいて改版仕様書を生成する。
次に、第2の発明のプログラム仕様書作成装置は、図1(b) に示すように、コメントキーワード候補抽出手段11、コメントキーワード設定手段12、コメントキーワード確認手段は13、コメント項目抽出手段14、及びプログラム仕様書生成手段15から構成される。
上記の各手段において、コメントキーワード候補抽出手段11は、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出する。コメントキーワード設定手段12は、該コメントキーワード候補抽出手段により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定する。コメントキーワード確認手段は13、該コメントキーワード設定手段により確定されたコメントキーワードを上記ソースプログラムと照らし合わせて報知して確認する。コメント項目抽出手段14は、該コメントキーワード確認手段により確認されたコメントキーワードに基づいて上記ソースプログラムからコメント項目を抽出する。プログラム仕様書生成手段15は、該コメント項目抽出手段により抽出されたコメント項目に基づいてプログラム仕様書を生成する。
更に、本発明のプログラム仕様書作成方法は、上記第1の発明に基づく方法であり、ソースプログラムを解析して該ソースプログラムの構成要素を抽出するソースプログラム解析工程と、上記ソースプログラムに挿入されているコメントからプログラム仕様書に表示すべきコメントを抽出するコメント抽出工程と、上記ソースプログラム、上記ソースプログラム解析工程により抽出された上記構成要素、及び上記コメント抽出工程により抽出された上記コメントを含むプロジェクト資産を保存するプロジェクト資産管理工程と、該プロジェクト資産管理工程により保存された日時の異なる前記プロジェクト資産の中の新旧二つのソースプログラムを抽出し、該新旧二つのソースプログラムに定義されているシンボルを比較して違いがあるときは該シンボルの違い情報を抽出し、前記新旧二つのソースプログラムの同一シンボルに付随するコメントを比較して違いがあるときは該コメントの違い情報を抽出する差分解析工程と、該差分解析工程により抽出された各上記違い情報に基づいて改版仕様書を生成する改版仕様書生成工程と、を含んで構成される。
そして、本発明のプログラム仕様書作成方法は、上記第2の発明に基づく方法であり、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出工程と、該コメントキーワード候補抽出工程により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定工程と、該コメントキーワード設定工程により確定されたコメントキーワードを上記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認工程と、該コメントキーワード確認工程により確認されたコメントキーワードに基づいて上記ソースプログラムからコメント項目を抽出するコメント項目抽出工程と、該コメント項目抽出工程により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成工程と、を含んで構成される。
また、本発明のプログラム仕様書作成プログラムは、コンピュータに対して、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出機能と、該コメントキーワード候補抽出機能により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定機能と、該コメントキーワード設定機能により確定されたコメントキーワードを上記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認機能と、該コメントキーワード確認機能により確認されたコメントキーワードに基づいて上記ソースプログラムからコメント項目を抽出するコメント項目抽出機能と、該コメント項目抽出機能により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成機能と、を実現させるためのプログラムである。
以上詳細に説明したように、本発明によれば、新旧双方のプロジェクト資産を構成するソースプグラムァイルの存在を比較して得られたプロジェクト構成の相違情報に基づいてプロジェクト構成改版仕様書を作成できるので、ユーザはプロジェクト間で追加又は削除されたソースプログラムファイルやプロジェクト間で変更されたソースプログラムファイルがどれであるかを容易に知ることができて便利である。
また、新旧双方のプロジェクト資産の同一ソースプログラムファイルに定義されているシンボル情報に関する相違情報とそのファイルに付随するコメント情報とを併せて記述したファイル改版仕様書を作成できるので、ユーザは変更されたソースプログラムファイルについて詳細な変更内容を容易に知ることができるだけでなく、コメント情報の違いからファイルの変更理由を容易に知ることができ、これにより更なるプログラムの開発・改良に素早く対応できて便利である。
また、新旧双方のプロジェクト資産の同一ソースプログラムファイルに定義されている同一シンボルが子供のシンボルを持つ場合のシンボルの相違情報とそのシンボルに付随するコメント情報を併せて記述したシンボル改版仕様書を作成できるので、ユーザは変更されたソースプログラムファイルの更なる詳細な変更内容を容易に知ることができ、同様に更なるプログラムの開発・改良に素早く対応できて便利である。
また、新旧双方のプロジェクト資産の同一ソースプログラムファイルに定義されている同一シンボルが処理手続きを持つ場合のその処理手続きの相違情報とそれのシンボルに付随するコメント情報を併せて記述した関数改版仕様書を作成できるので、変更されたソースプログラムの処理手続きがどのように変更になったのかを容易に知ることができ、同様に更なるプログラムの開発・改良に素早く対応できて便利である。
また、特別の3つの規則に基づいてコメントキーワード候補を抽出し、そのコメントキーワード候補によりコメントを抽出するキーワードを決定して、仕様書用のコメントを抽出するので、例えば手法が異なる複数人により作成されたソースプログラムであっても、主要なコメントを抽出するためのキーワードの決定が容易であり、これにより、改版仕様書の作成は勿論のこと、仕様書無しで作成された通常のソースプログラムの仕様書でも容易に作成することができるようになって便利である。
以下、本発明の実施の形態を図面を参照しながら説明する。図2は、一実施の形態におけるプログラム仕様書作成装置の全体構成を示す図である。プログラム仕様書作成装置は、表示装置21、入力装置22、外部記憶装置23、印刷装置24、及び演算装置25を含んで構成される。
上記の表示装置21は、CRT、LCDあるいはプラズマディスプレイ等により構成され、ユーザに対するGUI(GraphicalUserInterface)機能を提供する。入力装置22は、キーボード及びマウス等のポインティングデバイスにより構成され、GUIに対するデータ入力機能を提供する。外部記憶装置23は、ハードディスク等により構成され、ソースプログラムやそのソースプログラムに付随するプロジェクト資産の保存機能を提供する。印刷装置24は、プリンタ等により構成され、作成されたプログラム仕様書の印刷機能を提供する。
演算装置25は、少なくとも、中央処理装置(CPU)とメモリとを含んで構成され、メモリにロードされたプログラムによりプログラム仕様書作成装置全体の制御を行う。また、演算装置25には、コメントキーワード設定部31、コメント抽出部32、プロジェクト資産管理部33、差分解析部34、仕様書生成部35、及び仕様書印刷部36の各モジュールがプログラムにより実装される。
上記のコメントキーワード設定部31では、表示装置21及び入力装置22と連携してGUIが提供され、また、詳しくは後述するように、外部記憶装置23から読み込まれたソースプログラムファイルからコメントキーワード候補(主要なコメントとして抽出すべきコメントの検索キーワードとなるべき候補)が抽出され、この抽出されたコメントキーワード候補から抽出すべきコメント用のキーワードが設定される。
このコメントキーワード設定部31が、ソースプログラム解析手段1、ソースプログラム解析工程、コメントキーワード候補抽出手段11、コメントキーワード設定手段12、コメントキーワード確認手段13、コメントキーワード候補抽出工程、コメントキーワード設定工程、コメントキーワード確認工程、コメントキーワード候補抽出機能、コメントキーワード設定機能、又はコメントキーワード確認機能、として作用する。
コメント抽出部32では、コメントキーワード設定部31において設定され且つ確認された抽出コメント用のコメントキーワードに基づいて、コメント又はコメント項目が抽出される。このコメント抽出部32が、コメント抽出手段2、コメント抽出工程、コメント項目抽出手段14、コメント項目抽出工程、又はコメント項目抽出機能、として作用する。
また、プロジェクト資産管理部33は、プロジェクト資産を外部記憶装置23に格納して保存する。ここでプロジェクト資産とは、ソースプログラムや、このソースプログラムから上記のコメント抽出部32で抽出された構成要素、コメント項目、コメント群の各ファイルのことを言い、最終的にはこれらのファイルから生成されるプログラム仕様書や改版プログラム仕様書をも含む資産を指している。このプロジェクト資産管理部33がプロジェクト資産管理手段3、又はプロジェクト資産管理工程、として作用する。
差分解析部34は、上記外部記憶装置23に保存されたプロジェクト資産を検索して、日時の異なる同一ソースプログラムが存在するか否かを調べ、存在した場合には、それら新旧二つのソースプログラムを抽出する。また、それら新旧二つのソースプログラムファイルの同一ファイルに付随するコメントを比較して、違いがあれば、その違いをコメント違い情報として抽出する。更に、それらのソースプログラムの同一シンボルに付随するコメントを比較して、違いがあれば、その違いをコメント違い情報として抽出する。また、それらのソースプログラムに定義されているシンボルを比較して、違いがあれば、その違いをシンボル違い情報として抽出する。この差分解析部34が、差分解析手段4、又は差分解析工程、として作用する。
仕様書生成部35は、上記差分解析部34が抽出したコメントやシンボルの違い情報を含むプログラム仕様書を改版プログラム仕様書として作成する。この仕様書生成部35が、改版仕様書生成手段5、改版仕様書生成工程、プログラム仕様書生成手段15、プログラム仕様書生成工程、又はプログラム仕様書生成機能、として作用する。
仕様書印刷部36は、上記生成されたプログラム仕様書を必要に応じて印刷装置24により印刷出力する。これにより、ユーザはソースプログラムの変更情報を容易に知ることができる。
図3及び図4は、上記プログラム仕様書作成装置によって行われるプログラム仕様書作成処理の動作を説明するフローチャートであり、図4は図3のステップS1及びS3の処理を更に詳細に示したものである。
図5は、上記の処理において処理対象となるソースプログラムの例としてC++言語で記述されたソースプログラムのファイル37を示す図である。尚、同図には説明に必要な部分としてソースプログラムの冒頭部分を1行目から32行目まで代表的に示している。同図において記号「//」は、当該行で、その後に続く全ての文字がC++コンパイラによって無視されることを示す記号であり、これらの行には一般的にコメントの区切や文が記述される。
この図5に示すように、このソースプログラムファイル35のファイル名は「main.cpp」であり記述内容の1行目〜6行目までは行頭に「//」が置かれたコメント部分、7行目は「#include」文によるヘッダファイル「main.h」の読込み指定部分、8行目〜15行目までは行頭に「//」が置かれたコメント部分、16行目〜20行目まではプログラムの開始位置を示す「void_main_()」文に続く「{」と「}」で纏められたプログラム文(図示省略)、21行目〜29行目までは行頭に「//」が置かれたコメント部分、そして、30行目からは「class」文でクラス名「GasStation」が定義された後に続く「{」と「}」で纏められたプログラム文(図示省略)が記述されている。
上記の1行目〜6行目までのコメントは、1行目と6行目にそれぞれ記述された25個の「*」によるコメント区切り、その間の2行目から5行目までにそれぞれ記述された「概要」、「main関数,サブ関数の定義」、「作成者」、「富士通○夫」のコメント文からなっている。このコメントは7行目で読込みが指定されているヘッダファイル「main.h」に付随するコメントであり、また、このソースプログラムファイルそのもの、換言すればファイル名称「main.cpp」に付随するコメントでもある。
また、上記の8行目〜15行目までのコメントは、8行目と15行目にそれぞれ記述された25個の「*」によるコメント区切り、その間の9行目から14行目までにそれぞれ記述された「1.名称」、「制御」、「2.概略」、「ガソリンスタンドのシュミレーションの制御(main関数)」、「3.機能」、「(1)ガソリンスタンドのシュミレーションの制御をする。」のコメント文からなっている。このコメントは16行目で実行開始が指定されている「main」関数に付随するコメントである。
そして、上記の21行目〜29行目までのコメントは、21行目と29行目にそれぞれ記述された25個の「*」によるコメント区切り、その間の22行目から28行目までにそれぞれ記述された「1.日本語クラス名」、「ガソリンスタンドクラス」、「2.概要」、「ガソリンスタンドの状態を管理する」、「3.機能説明」、「(1)ガソリンスタンドの売上を管理する。」、「(2)ガソリンスタンドのタンクの状態を管理する。」のコメント文からなっている。このコメントは30行目でクラスとして定義されている「GasStation」ツールに付随するコメントである。
上述したように、本例におけるソースプログラムでは、主要なコメントは、プログラム文を記述した同一行の中間から記述するのではなく、行頭から記述される。一般に、ソースプログラム中にはプログラムの処理内容等がコメントとして記述されており、図5に示すように、ファイルに付随するコメントはファイルの先頭に記述され、シンボルに付随するコメントはシンボルの直前に挿入されている。
尚、「シンボル」とは、例えば、ソースプログラムがC++言語で記述されている場合は、メンバ関数、外部関数等のように、1つの特性をもっている要素の集合体を代表して見出しのごとくに用いられる例えば「main」、「GasStation」等のように1語で記述される文字列のことである。
このような記述構成の図5に示すファイル名「main.cpp」のソースプログラムファイル37を例として取り上げて、本例のプログラム仕様書作成装置によって行われる図3及び図4に示した処理動作について以下に説明する。尚、以下の説明では、ソースプログラムファイルとソースプログラムを同じ意味で用いる。また、ファイル名も他のプログラムから参照される場合はシンボルとなるものであり、ここではファイル内のシンボルと同様にそのファイルの名称もシンボルとして取り扱う。
先ず図3のフローチャートにおいて、変更前のプログラム言語のコメント文を解析する(ステップS1)。この処理は、変更前のソースプログラム(旧ソースプログラム)と変更後のソースプログラム(新ソースプログラム)がある場合に、先ず変更前のソースプログラムに対して行われる処理である。これを図4のフローチャートを用いて説明する。
先ず、プログラム言語を解析する(ステップS11)。この処理は、ソースプログラム、例えば図5R>5に示すソースプログラム37(ここでは、これを変更前のソースプログラムとする)を、C++言語の言語仕様に従って解析し、定義されているシンボルと、その開始行(シンボルが記述されている行)の番号を抽出する処理である。
図6(a) は、上記のプログラム言語解析処理によって得られ、外部記憶装置23の所定の領域に構築された定義シンボル・開始行対応データファイルの例を示す図である。同図(a) に示すように、上記抽出された定義シンボルとその開始行とに基づいて作成される定義シンボル・開始行対応データファイル38は、シンボル名として「main」と「GasStation」が示されており、これらに、シンボルの種類として「関数」と「クラス」がそれぞれ付加され、その後に、それぞれのシンボルに対応する開始行番号として「16」及び「30」が示されて構築されている。
尚、同図には図5に示した簡略なソースプログラム37から抽出した例を示しているため、定義シンボル名が2つしか示されていないが、業務用のソースプログラムは一般に簡単な制御でも数千行、複雑な制御では数万行、場合によっては数十万行にもなるものもあり、したがって、それから抽出される定義シンボル数も実際には極めて多数である。
上記に続き、図4において、コメント群を抽出する(ステップS12)。この処理は、上記のソースプログラム解析の処理で抽出されているシンボル毎に、それに付随するコメントを取出す処理である。このとき、ソースプログラム37のファイル名「main.cpp」もシンボルとして取り出される。そして、そのファイル名と、そのソースプログラムから抽出された定義シンボルと、それらのシンボル(ファイル名のシンボルとファイル内で定義されているシンボル、以下同様)毎のコメント群からなるデータファイルが構築される。
図6(b) は、上記コメント群抽出処理によって得られ、外部記憶装置23の他の所定の領域に構築されたシンボルとコメント群との対応を示すシンボル・コメント対応データファイルの構成を示す図である。同図に示す例では、シンボル・コメント対応データファイル39には、シンボル名領域39−1には、シンボル名として「main.cpp」、「main」、及び「GasStation」が格納されている。
そして、それらのシンボル名に対応する種類領域39−2には「main.cpp」の種類とし「ファイル」が格納され、「main」の種類として「関数」が格納され、「GasStation」の種類として「クラス」が格納されている。そして、更にその後に続く、シンボル名「main.cpp」に対応するコメント群領域39−3には、連続する25個の「*」が行頭から、「概要」が行頭から1桁空けて、「main関数,サブ関数の定義」が行頭から2桁空けて、「作成者」が行頭から1桁空けて、「富士通○夫」が行頭から2桁空けて、そして連続する25個の「*」が行頭から、というように、図5に示したソースプログラム37のファイル(つまりファイル名又はファイル名シンボル)に付随するコメントが「//」を取り除いただけで、あとはソースプログラムの記述そのままの形態で、つまり行頭からの空送り桁数を含んだ形態で、格納される。
同様に、シンボル「main」に対応するコメント群領域39−3には、連続する25個の「*」が行頭から、「1.名称」が行頭から1桁空けて、「制御」が行頭から2桁空けて、「2.概略」が行頭から1桁空けて、「ガソリンスタンドのシュミレーションの制御(main関数)」が行頭から2桁空けて、「3.機能」が行頭から1桁空けて、「(1)ガソリンスタンドのシュミレーションの制御をする。」が行頭から2桁空けて、そして、連続する25個の「*」が行頭から、というようにソースプログラムの記述そのままの形態で格納される。
更に、シンボル「GasStation」に対応するコメント群領域39−3には、連続する25個の「*」が行頭から、「1.日本語クラス名」が行頭から1桁空けて、「ガソリンスタンドクラス」が行頭から2桁空けて、「2.概要」が行頭から1桁空けて、「ガソリンスタンドの状態を管理する」が行頭から2桁空けて、「3.機能説明」が行頭から1桁空けて、「(1)ガソリンスタンドの売上を管理する。」が行頭から2桁空けて、「(2)ガソリンスタンドのタンクの状態を管理する。」が行頭から2桁空けて、そして、連続する25個の「*」が行頭から、というようにソースプログラムの記述そのままの形態で格納されている。
上記に続き、図4において、コメントキーワード候補の抽出を行い(ステップS13)、その抽出したコメントキーワード候補の設定を行い(ステップS14)、その設定したコメントキーワード候補の確認を行う(ステップS15)。このステップS13、S14及びS15の処理は、ステップS12で抽出されているコメントの数だけ繰り返される。
また、これらの処理は、前述したように、本来ソースプログラムは極めて多数の行にわたって記述されている。そのようなソースプログラムから図6(a) のように抽出された本来は多数の定義シンボルに対して、一般に、備忘録としてコメントが付与されている場合が多いから、これらのコメントを全部取り出すと、その数は数千行、場合によっては数万行にもなり、コメント群の数としては極めて膨大である。これらを全部プログラム仕様書に盛り込んだのでは、主要なコメントがどれであるか分かり難くなり、これでは本来の仕様書作りの目的にそぐわなくなる。
そこで、本例では、プログラム仕様書に盛り込むべき(表示すべき)コメントを仕様書の目的に沿ったものに限定して絞りこむために、先ず、抽出すべきコメントのキーワードとなるコメントキーワード候補を抽出してユーザに表示報知し、これらのコメントキーワード候補から必要なキーワードを選択して、それをコメント抽出用のキーワードとして設定し、更に確認する。
そのために、本実施の形態にかかる上記のコメントキーワード候補の抽出処理では、図5に示すシンボル・コメント対応データファイル39のコメント群から、後述する3つの規則のいずれか又は全部に従って抽出する。この本発明による規則は、従来のコメント規約のように個々のコメントに対応して個々に決められたキーワードとの対応を規則とするのではなく、本発明においては、コメントの記述形態や或る種のコメントに現れる文字列の傾向から決定されるものである。これによって、複数のエンジニアによって夫々異なるコメントの記述方式で記述されたコメントであっても、主要なコメントを適切に抽出してプログラム仕様書に盛り込むことができるものである。
上記3つの規則のいずれか又は全部に従って行うコメントキーワード候補の抽出は、詳しくは後述するデータ入力ダイアログ画面を用いて行われる。そして3つの規則のどの規則に基づいてコメントキーワード候補を抽出するかは、このダイアログ画面にデータ入力を行うオペレータが判断しながら決定する。ここで、そのデータ入力ダイアログ画面の説明に先立って、上記3つの規則と、その規則に基づいて抽出されるコメントキーワード候補の例を示しておく。
先ず、規則の第1では、同じ文字(記号を含む)が所定数連続しているコメントを、コメントキーワード候補とする。尚、上記連続する文字又は記号の数は、後述する定義ファイルで指定される。
図7(a) は、上記「所定数連続する文字又は記号」の規則に基づいて図6(b)のシンボル・コメント対応データファイル39から抽出されたコメントキーワード候補の例を示す図である。同図(a) に示すように、第1のコメントキーワード候補ファイル41には、種類領域41−1にシンボルの種類として「ファイル」、「関数」、「クラス」がそれぞれ格納されている。そして、それらの種類に対応する抽出されたコメントキーワード候補領域41−2には、それぞれ連続する25個の「*」が格納されている。
次に、規則の第2では、区切りコメントで囲まれた一連のコメント文の中で最左端に記述されているコメントを、コメントキーワード候補とする。図7(b) は、上記「最左端に記述されているコメント」の規則に基づいて図6(b) のシンボル・コメント対応データファイル39から抽出されたコメントキーワード候補の例を示す図である。同図(b) に示すように、第2のコメントキーワード候補ファイル42には、種類領域42−1にシンボルの種類として第1の場合と同様に「ファイル」、「関数」、「クラス」がそれぞれ格納されている。そして、「ファイル」に対応する抽出されたコメントキーワード候補領域42−2には「概要」と「作成者」が格納され、「関数」に対応する抽出されたコメントキーワード候補領域42−2には「1.名称」、「2.概略」、「3.機能」が格納され、「クラス」に対応する抽出されたコメントキーワード候補領域42−2には「1.日本語クラス名」が格納されている。
また、上記の規則の第3では、所定の定義ファイルに定義されているキーワードと一致するコメントを、コメントキーワード候補とする。図7(c) は、上記「定義ファイルに定義されているキーワード」の規則に基づいて図6(b) のシンボル・コメント対応データファイル39から抽出されたコメントキーワード候補の例を示す図である。同図(c) に示すように、第3のコメントキーワード候補ファイル43には、種類領域43−1にシンボルの種類として第1、第2の場合と同様に「ファイル」、「関数」、「クラス」がそれぞれ格納されている。そして、「ファイル」に対応する抽出されたコメントキーワード候補領域43−2には「概要」と「作成者」が格納され、「関数」に対応する抽出されたコメントキーワード候補領域43−2には、データが無いことを示す「−」が格納され、「クラス」に対応する抽出されたコメントキーワード候補領域43−2には「1.日本語クラス名」、「2.概要」、「3.機能説明」が格納されている。これらのコメントキーワード候補は、そのキーワードがコメントキーワード候補オプション定義ファイル(以下、単に定義ファイルという)に定義されている。
図8は、上記定義ファイルの例を示す図である。この定義ファイル44は、XML(拡張可能マークアップ言語)で記述されたファイルであり、親タグである<KeywordDefinition>タグの子タグの<Keyword>タグによって、キーワードとなる候補文字列を、正規表現を用いて指定している。同図の例では、キーワードとして「*概要」、「*作成者」、「*説明」、「*パラメタ」「*名」が設定されている。
つまり図7(c) に示した「ファイル」対応するコメントキーワード候補の「概要」は定義ファイル44に定義されたキーワード「*概要」に基づいて抽出されたものであり、同じく「作成者」はキーワード「*作成者」に基づいて抽出されたものである。また、同様に図7(c) に示した「クラス」に対応するコメントキーワード候補の「1.日本語クラス名」は、定義ファイル44に定義されたキーワード「*名」に基づいて抽出されたものであり、同じく「2.概要」はキーワード「*概要」に基づいて、「3.機能説明」はキーワード「*説明」に基づいて、それぞれ抽出されたものである。
また、図7(c) で「関数」に対応するコメントキーワード候補が無いのは、図6(b) に示すシンボル・コメント対応データファイル39の「関数」に対応するコメント群領域39−3に、定義ファイル44に定義されているキーワード「*概要」、「*作成者」、「*説明」、「*パラメタ」又は「*名」に対応するコメントが無いからである。
また、定義ファイル44には、図8に示すように、親タグである<BorderOpion>タグの子タグの<Length>タグにより、連続する文字列に対してコメントキーワード候補として抽出すべき文字数の基準として「20」が設定されている。この設定によって図7(a) に示したように、連続する25個の「*」が抽出されている。
上記のように3つの規則に基づいてコメントキーワード候補を設定し、確認して、コメントを抽出するために、HTML又はXMLで作成され、CSS又はXSLでスタイリング加工され、Webブラウザによって表示されるデータ入力用のダイアログ画面が用いられる。
図9(a),(b) 及び図10(a),(b) はコメント抽出用のキーワードを設定するためのデータ入力用ダイアログ画面であり、図11は設定されたコメント抽出用のキーワードを確認するためのダイアログ画面である。尚、以下の説明では、コメントキーワード候補と抽出キーワード候補は「抽出すべきコメントのキーワードの候補」として同じ意味で用い、コメントキーワードと抽出キーワードも同様に「抽出すべきコメントのキーワード」として同じ意味で用いることにする。
同図(a) に示すようにデータ入力用ダイアログ画面では、先ず「抽出キーワードの設定」画面45が表示される。この「抽出キーワードの設定」画面45は、表示領域の上から順に、種別入力窓46、抽出キーワードとコメント項目設定窓47、抽出キーワード候補表示窓48が表示されている。
種別入力窓46には、プルダウンメニューを表示させるためのボタン49が表示されており、このボタン49をポインテングデバイスでクリックする(以下「押す」ともいう)と、例えば、ファイル情報、関数情報、クラス情報などのメニューが表示される。同図(a) に示す種別入力窓46には「ファイル情報」が表示されており、これはユーザが上記のメニューを表示させた後そのメニューの中から「ファイル情報」を選択しダブルクリックして確定したことを示している。
また、抽出キーワードとコメント項目設定窓47には、大きなデータ表示窓51が設けられ、表示データの種別欄を示す「抽出キーワード」と「コメント項目」が横一列に表示され、そのデータ表示窓51の右方に縦三段に分けて「追加(A)」、「変更(M)」、「削除(D)」の3つのボタンが表示されている。この抽出キーワードとコメント項目設定窓47の右方には、縦五段に分けて「OK」、「キャンセル」、「テスト(T)」、「オプション(O)」、「候補リスト(L)<<」の5つのボタンが表示されている。
そして、抽出キーワード候補表示窓48には、大きなデータ表示窓52が設けられ、表示データの種別欄を示す「抽出数」と「候補」が横一列に表示されている。このデータ表示窓52の右方に縦四段に分けて「候補登録(R)」、「候補抽出(E)」、「中止(S)」、「ソース切換(B)」の4つのボタンが表示されている。また、データ表示窓52の下方には、候補リストフィルタ設定窓53が表示されており、その中には長さ(L)、カラム(C)、キーワード(K)の3つの選択チェック入力小窓が表示されている。
同図(a) に示す例では、カラム(C)の入力小窓にチェックが表示されており、ユーザが「カラム」を指定してこのカラム(C)の入力小窓クリックしたことを示している。この「カラム」の指定は、最左端のコメントキーワード候補を抽出することを指定したものであり、これにより、図6(b) のシンボル・コメント対応データファイル39が検索され、種類領域39−2の「ファイル」に対応するコメント群領域39−3のコメント群から、最左端のコメントがキーワード候補として抽出され、データ表示窓52に表示される。
尚、ここでは、最左端のコメントとして、文字列と連続する記号による区切りコメントとの区別はせず、実際にコメント行で最左端から記述されている区切りコメント(連続する「*」)とその区切りコメントで囲まれた一連のコメント文の中で最左端に記述されているコメントとを最左端のコメントとし、これらを抽出キーワード候補として抽出する。
これにより、図9(a) に示すように、データ表示窓52には、右方の「候補」欄の下方に抽出キーワードの候補が、三段に分けて、連続する20個の「*」、「概要」、「作成者」と表示され、これに対応する左方の「抽出数」欄の下方に抽出数を示す数字が「2」、「1」、「1」と表示される。
ここで、ユーザが、ファイル情報に関するコメントを抽出するにはキーワードとして「概要」が最も適切であると考えて、上記の抽出キーワード候補表示窓48の中の表示から「概要」を選択して反転表示させ、「候補登録」ボタンを押すと、図10(a) に示すように、データ表示窓51の「抽出キーワード」欄の下に「概要」が表示されると共に、その「概要」がコメントキーワード候補として図7(b) に示した第2のコメントキーワード候補ファイル42の抽出されたコメントキーワード候補領域42−2に登録される。
また、ここで必要に応じて、上記抽出キーワードを編集し、また対応するコメント項目(後述するプログラム仕様書でレイアウト内に定義されている項目)を選択する。その場合は、抽出キーワードとコメント項目設定窓47に表示されている「追加」ボタンを押す。そうすると、ダイアログとして図9(b) に示す「抽出キーワードの定義(追加)」画面55が表示される。この「抽出キーワードの定義(追 加)」画面55は、上に抽出キーワード条件指定窓56が表示され、下にコメント項目条件指定窓57が表示される。
上記の抽出キーワード条件指定窓56には、抽出条件を選択して指定する3行のチェック入力行61が表示され、その下のキーワード表示窓62には、「抽出キーワードの設定」画面45で選択入力した「概要」が表示されている。また、この抽出キーワード条件指定窓56の右方には「OK」ボタン58と「キャンセル」ボタン59が二段に表示されている。
また、コメント項目条件指定窓57には、コメント項目条件を選択して指定する3行のチェック入力行63が表示され、その下に項目設定窓64が表示されている。項目設定窓64の右端にはプルダウンメニュー表示ボタン65が表示されている。ユーザがこのプルダウンメニュー表示ボタン65を押すと、例えば「概要」、「作者名」、「機能」、「変更履歴」等の項目名として設定可能な用語の文字列がメニュー表示される。
図9(b) の項目設定窓64に表示されている「概要」の表示は、ユーザが、抽出キーワードの「概要」で抽出されるべきコメントは仕様書の「概要」というコメント項目に表示すべきもの、として上記のメニューの中から「概要」を選択して指定したことを示している。
尚、コメントキーワードとコメント項目は一致するものと限る分けではない。すなわち、概要コメントのコメント項目は「概要」と限ることなく、例えば概略、摘要、要約等のコメント項目であることを表わす他の用語であってもよい。これらは仕様書のフォーマット設計に応じて予めプルダウンメニュー用のファイルに格納される。
また、コメント項目があっても、必要なコメントが無い場合もある。例えば「void main ()」指定による「戻り値」や、その他「パラメタ説明」、「備考」なども、コメント項目としては仕様書に設定されていても、ソースプログラム内にコメントが記述されていない場合が多い。
上記コメント項目の設定の後、ユーザが「OK」ボタン58を押すと、図10(a) に示すように、データ表示窓51の「抽出キーワード」欄の下に既に表示されている「概要」の横に並んで、「コメント項目」欄の下に「概要」が表示される。
ユーザは抽出キーワードの設定画面45のデータ表示窓52に表示されている「作成者」及び連続する25個の「*」に対しても上記の操作を繰り返して、図10(b) に示すように、データ表示窓51の「抽出キーワード」欄の下に「概要」、「作成者」、25個の「*」を表示させ、「コメント項目」欄の下に「概要」、「作成者」を表示させる。このようにして、種別入力窓46に表示されている「ファイル情報」に対応する抽出キーワードが全て設定される。
尚、25個の「*」は、コメント群の一要素ではあるがコメントそのものではなくコメント抽出範囲の区切りを示すものであるので、コメントを抽出する際のキーワードにはなっても、コメント項目には入らないものである。
上記のようにファイル情報に対応する全ての抽出キーワードが設定された後、ユーザが「OK」ボタン66を押すことにより、図11に示す抽出キーワード確認画面67が、上記のダイアログ画面(抽出キーワードの設定画面45)と並んで(又は一部重なって)表示される。図11に示すように、この確認画面の表示は、図5に示したソースプログラムファイルと同一のものである。そして、ユーザが、抽出キーワードの設定画面45の「テスト」ボタン68を押すと、コメントキーワードと、このコメントキーワードによって抽出されるコメントの色が変化する。
図11に示す例では、モノクロ図であるので定かでないが、コメント群の記述開始行である1行目に位置指示マーク69が表示され、上記抽出キーワードの設定画面45で抽出キーワードとして設定されている20個の「*」(図11の1行目)、「概要」(図11の2行目)、「作成者」(図11の4行目)、及び20個の「*」(図11の6行目)が、例えば赤色で表示される。そして、これらの抽出キーワードで抽出されるべきコメントとして「main関数,サブ関数の定義」(図11の3行目)及び「富士通○夫」(図11の5行目)が例えば緑色で表示される。
この色分けされた表示によって、ユーザは「ファイル」に関る抽出キーワードとその抽出キーワードによって抽出されるキーワードを、ソースプログラムの記述の中で目視で確認することができる。ここで、抽出キーワードの設定画面45の「OK」ボタン66を押すことによって色分け表示部分のコメント群が確定する。
上述した図4のステップS13、S14及びS15による処理は、図6(b) で抽出されている各シンボルの種類毎(図6(b) の例では上記「ファイル」の他に未だ「関数」と「クラス」が残っている)についても同様に行われる。そして、この抽出キーワードの確認に基づいて、コメントの抽出が行われ、コメント項目毎のコメントデータベースが作成される(ステップS16)。
図12(a),(b),(c) は、それぞれ上記のコメントの抽出処理に基づいて抽出されたコメント群によって外部記憶装置23の所定領域に構築されるデータベースの例を示す図である。同図(a) は、ファイル「main.cpp」のファイルコメントデータファイル71を示しており、コメント項目の「概要」及び「作成者」に対応するコメントとして「main関数、サブ関数の定義」及び「富士通○夫」がそれぞれ格納されている。
また、同図(b) は、関数「main」の関数コメントデータファイル72であり、コメント項目の 「日本語名」、「概要」、「戻り値」、「パラメタ説明」、「機能説明」、及び「備考」に対応するコメントとして「制御」、「ガソリンスタンドのシュミレーションの制御(main関数)」、なし、なし、「(1)ガソリンスタンドのシュミレーションの制御をする。」、及び、なし、がそれぞれ格納されている。
そして、同図(c) は、クラス「GasStation」に関するクラスコメントデータファイル73の例を示している。同図の例では、コメント項目の「日本語名」に対応するコメントとして「ガソリンスタンドクラス」が格納され、「概要」に対応するコメントとして「ガソリンスタンドの状態を管理する」が格納され、「機能説明」に対応するコメントとして「(1)ガソリンスタンドのシュミレーションの制御をする。」が格納され、そして「備考」に対応するコメントとして「(1)ガソリンスタンドの売上を管理する。」と「(2)ガソリンスタンドのタンクの状態を管理する。」が格納されている。
そして、上記のデータベース作成処理に続いて、プログラム仕様書生成処理が行われる(ステップS17)。図13は、プログラム仕様書生成処理において生成されるプログラム仕様書の例を示す図である。尚、同図は、図12(b) に示した関数コメントデータファイル72のデータに基づいて作成されたプログラム仕様書を表示した確認用画面74を示している。同画面74のヘッダー部75に示すように、このプログラム仕様書の表題は「main関数説明」となっている。そして、関数名は「main」、日本語名は「制御」、定義ファイルは「Msin.cpp」、定義行番号は「16」、宣言形式は「void main ()」となっている。これらは、いずれも図(b) に示すシンボル・コメント対応データファイル39の生成までの処理において抽出されたデータである。
次に、コメント部76には、項目名が記述された小枠とコメントが記述された大枠とが一組となった表示が下方に順次連続して表示されている。同図に示す例では、図12(b) でも示した項目名「概要」にはコメント「ガソリンスタンドのシュミレーションの制御(main関数)」、項目名「戻り値」にはコメントなし、項目名「バラメタ説明」にはコメントなし、項目名「機能説明」にはコメント「(1)ガソリンスタンドのシュミレーションの制御をする。」がそれぞれ記述されている。
同図の画面下方には、特には図示しないが、スクロールバー77でスクロールさせて表示可能な項目名とコメントが記述された表示が連続している。このようにして作成されたプログラム仕様書は、図3に示す処理において、図5に示したソースプログラムファイル37、図6(a),(b) に示した定義シンボル・開始行対応データファイル38とシンボル・コメント対応データファイル39、図12(a),(b),(c) に示したファイルコメントデータファイル71、関数コメントデータファイル72及びクラスコメントデータファイル73と共に、全てプロジェクト資産の変更前情報として外部記憶装置23の所定領域に保存される(ステップS2)。
続いて、上記変更前のソースプログラムに対応する変更後のソースプログラムすなわち日時の新しいソースプログラムファイルを読み出して、この変更後のプログラム言語のコメント文を解析し(ステップS3)、その結果得られた変更後情報を保存する(ステップS4)。これらステップS3及びS4の処理は、対象となるソースプログラムが製作日時(又は初めて保存された日時)の異なる新旧2つのソースプログラムであることを別にして、ステップS1及びS2で説明した処理とそれぞれ同一である。
尚、上記の説明では、新旧2つのソースプログラムとして説明しているが、一般に、1つのシステムを稼動させるための1つのプロジェクトを構築するには通常モジュールと呼ばれる複数のプログラムが作成される。これらの各プログラムの元となる各ソースプログラムを個々に記述したファイルが例えば図5に示したようなソースプログラムファイル37である。
したがって、日時の異なる同一の(同一名の、以下同様)2つのプロジェクト資産には、それぞれ多数のソースプログラムファイル(以下、単にファイルという)が存在する。上記のステップS1〜S4の処理は、それらのファイルの全てについて行われる処理である。
そして、上記に続いて、差分情報の構築を行う(ステップS5)。この処理は、特には図示しないが、上述したプロジェクト資産の中から日時の異なる同一名の(つまり新旧2つの)プロジェクト資産を抽出し、双方のプロジェクト資産の内容を比較して、その違い情報としての差分情報(相違情報)を抽出し、その差分情報を差分情報ファイルにして、外部記憶装置23に保存(格納)する処理である。
これにより、先ず双方のプロジェクト資産を構成するファイルの存在が比較される。そして、双方のプロジェクト資産の日時の新しい方には存在するが旧い方には存在しないファイル、つまり追加されたファイルがある場合の追加ファイル情報、双方のプロジェクト資産の日時の旧いほうには存在するが新しい方には無い、つまり削除されたファイルがある場合の削除ファイル情報、また、双方のプロジェクトに共に同一名のファイル存在する場合には、その内容が同じであるか変更されているがの変更有無情報、等の相違情報が構築される。
次に、双方のプロジェクト資産の同一ファイルや同一シンボルに付随するコメント情報を比較してその相違情報が構築され、更に、双方のプロジェクト資産の同一ファイルに定義されているシンボル情報を比較してその相違情報が構築され、また、双方のプロジェクト資産の同一シンボルがC++言語の場合のクラスのメンバのように子供のシンボルを有する場合はその子供のシンボル情報が比較されてその相違情報が構築される。
そして、更に、双方のプロジェクト資産の同一シンボルがC++言語の場合の関数やメンバ関数のように処理手続きを持つ場合は、その処理手続きの相違情報が構築される。
そして、これらの相違情報に基づいて、以下に示す4種類の改版仕様書を生成する(ステップS6)。図14は、上記双方のプロジェクト資産を構成するソースプグラムァイルの存在を比較して得られたプロジェクト構成の相違情報を記述したプロジェクト構成改版仕様書の例を示す図である。同図に示すように、プロジェクト構成改版仕様書78は、ヘッダー部79には、仕様書名欄79−1には「プロジェクト構成改版仕様書」とこの仕様書の名称が記述され、プロジェクト名欄79−2には「○○○システム」とこの仕様書のプログラムが所属するプロジェクト名が記述されている。そして、データ部81には、同図に示す例では行番号81−1〜81−6まで6行のデータ行が設けられ、ファイル名とそのファイルの状態とが対応付けて記述されている。
すなわち、ファイル名欄には、外部記憶装置23の装置番号CのデスクのSampleSrcフォルダに格納されている6個のファイルが、その格納場所を示すアドレスと共に、C:\SampleSrc\a.cpp、〜\b.cpp、〜\c.cpp、〜\d.cpp、〜\e.cpp、〜\f.cppとして記述され、それらに対応する状態欄には「同じ」、「削除」、「追加」「変更」、「変更」、「変更」とそれぞれ状態が記述されている。
上記の「同じ」ファイル、「削除」のファイル、及び「追加」のファイルについては、前述した方法で作成されたプログラム仕様書を調べればプログラムの内容は容易に判明する。そして、「変更」されたプログラムについては、それらのファイルの定義シンボルの相違情報とファイルに付随するコメントの相違情報を記述したファイル改版仕様書が改めて作成される。
図15は、上記双方のプロジェクト資産の同一ファイルに定義されているシンボル情報に関する相違情報と、それらのファイルに付随するコメント情報とを併せて記述したファイル改版仕様書の例を示す図である。尚、同図に示すファイル改版仕様書は、図14に示したプロジェクト構成改版仕様書78の行番号81−4に記述されている変更ファイルC:\SampleSrc\d.cppについてのファイル改版仕様書82を例として取り上げて示している。
図15に示すように、ファイル改版仕様書82には、ヘッダー部83、コメント部84、及びシンボル部85が設けられている。ヘッダー部83には、まず「ファイル改版仕様書」と仕様書名が記述され、プロジェクト名欄にはプロジェクト名が上記同様に「○○○システム」と記述され、ファイル名欄にはファイル名が「C:\SampleSrc\d.cpp」と記述され、変更前更新日時欄には、年月日と時刻が「2001/01/01 12:00」と記述され、変更後更新日時欄には同じく年月日と時刻が「2001/01/30 13:06」と記述されている。
また、コメント部84には、左からコメント項目欄、状態欄、変更前コメント欄、及び変更後コメント欄が設けられている。コメント項目欄には、前述したコメントキーワード候補の抽出、設定、確認の処理で決定されたコメント項目としてのコメント抽出用キーワードが、上から順に「概要」、「作成者」「機能」、及び「変更履歴」と記述されている。
そして、それらのコメント項目に対応する状態欄には、それぞれ状態が「=」、「=」、「≠」、「≠」と記述されている。すなわち、コメント項目の「概要」については変更前と変更後でコメントの状態が同じ(=)であり、これに対応する変更前コメント欄と変更後コメント欄には共に「○○○システムの制御」と同じコメントが記述されている。また、「作成者」についても変更前と変更後でコメントの状態が同じ(=)であり、これに対応する変更前コメント欄と変更後コメント欄には共に「富士通○夫」と同じコメントが記述されている。
そして、「機能」については変更前と変更後でコメントの状態が異なって(≠)おり、変更前コメントではコメントが1)〜3)の3行のコメントであったものが、変更後コメントでは2)と3)の間に追加のコメントが入っており、その追加のコメントは、同図に示す例では「2.2)△△△のサポートのため△△△の処理を行う」となっている。また、変更履歴については変更前と変更後でコメントの状態は当然異なって(≠)おり、変更前コメントでは「2001/01/01 初版」のコメントのみであるが、変更後のコメントでは、上記初版のコメントの他に更に「2000/01/30 第2版△△△サポート」のコメントが追加されている。
すなわち、これらの機能と変更履歴のコメントを見比べることによって、ソースプログラムの変更日時と変更理由が容易に判明するようになっている。更に、シンボル部85には、シンボル名欄とシンボル種別欄と状態欄が設けられている。シンボル名欄には抽出された定義シンボル名が上から順に「CAaaClass」、・・・、「ReadData」と記述され、これに対応するシンボル種別欄にはシンボル種別が上から順に「クラス」、・・・、「外部関数」と記述れている。そして、これと対応する状態欄には上から順に「同じ」、・・・、「変更」と記述されている。
ここで、行番号85−4のシンボル「CEeeClass」は種別が「クラス」となっており、その要素には子のシンボルを有することが判る。そして状態が「変更」となっているから内容に変更が有ることが判る。また、行番号85−8のシンボル「ReadData」は種別が「外部関数」となっており、これも状態が「変更」であるから、処理手続きに変更が有ったことが判る。ここでも、変更が有ったシンボルについては改めてシンボル改版仕様書が作成される。
図16は、双方のプロジェクト資産の同一ファイルに定義されている同一シンボルが上記のように子のシンボルを持つ場合のシンボルの相違情報と、それらのシンボルに付随するコメント情報を併せて記述したシンボル改版仕様書の例を示す図である。図16に示すように、このシンボル改版仕様書86にも、ヘッダー部87、コメント部88、及びシンボル部89が設けられている。ヘッダー部87には、まず「シンボル改版仕様書」と仕様書名が記述され、その他にプロジェクト名欄、シンボル名欄、種別欄、変更前更新日時欄、及び変更後更新日時欄を備えている。
プロジェクト名欄、変更前更新日時欄、及び変更後更新日時欄には図15のファイル改版仕様書82のヘッダー部83と同一の内容が記述されており、シンボル名欄にはシンボル名「CEeeClass」が記述され、その種別が種別欄に「クラス」と記述されている。
また、コメント部88は、左からコメント項目欄、状態欄、変更前コメント欄及び変更後コメント欄が設けられ、ファイル改版仕様書82の場合と同一の欄構成となっている。更に、コメント項目欄も上から順に「概要」、「作成者」、「機能」及び「変更履歴」と記述され、ファイル改版仕様書82の場合と同一の構成となっている。そして、これらコメント項目欄の作成者と変更履歴に対応する状態欄、変更前コメント欄及び変更後コメント欄の内容もファイル改版仕様書82の場合と同一である。しかし、概要と機能に対応するコメントは、ファイル改版仕様書82の場合はファイルに関するコメントであったの対して、こちらはシンボルに関するコメントであるので内容が異なっている。
すなわち、コメント項目の「概要」では、状態が「=」で、コメント内容は変更前、変更後、ともに「システムの状態を管理する」となっている。また、コメント項目が「機能」では、状態が「≠」であり、コメント内容は、変更前の1)と2)のコメント文のうち「2)不足している場合は、新規にメモリを獲得する。」のコメント文に対して、変更後ではコメントの追加が行われ「2)〜。その際、再利用できるメモリがある場合に、利用する。」となっている。この新旧の機能のコメントを見比べることによって、ソースプログラムの変更理由が更に明確に判明するようになっている。
また、シンボル部89には、シンボル名欄、シンボル種別欄、及び状態欄が設けられ、シンボル名欄には抽出された子シンボル名が上から順に「m_Vall」、・・・、「m_Func4」と記述され、これに対応するシンボル種別欄にはシンボル種別が上から順に「メンバ変数」、・・・、「メンバ関数」と記述れている。そして、これと対応する状態欄には上から順に「同じ」、・・・、「変更」と記述されている。
これにより、どのシンボルで表示されたメンバ変数やメンバ関数が、追加されたのか削除されたのか又は変更されたのかが容易に判明する。図17は、双方のプロジェクト資産の同一ファイルに定義されている同一シンボルが処理手続きを持つ場合のその処理手続きの相違情報と、それらのシンボルに付随するコメント情報を併せて記述した関数改版仕様書の例を示す図である。同図に示す関数改版仕様書91は、図15のシンボル部85の行番号85−8のシンボル「ReadData」の状態が「変更」となっていることにより作成された改版仕様書である。
図17に示すように、この関数改版仕様書91も、ヘッダー部92、コメント部93、及びシンボル部94を備えている。ヘッダー部91には、まず「関数改版仕様書」と仕様書名が記述され、その他にプロジェクト名欄、関数名欄、種別欄、変更前更新日時欄、及び変更後更新日時欄を備えており、プロジェクト名欄、変更前更新日時欄、及び変更後更新日時欄には図15のファイル改版仕様書82のヘッダー部83と同一の内容が記述されている。そして、関数名欄には関数名「ReadData」が記述され、その種別が種別欄に「外部関数」と記述されている。
また、コメント部93は、左からコメント項目欄、状態欄、変更前コメント欄及び変更後コメント欄が設けられ、これもファイル改版仕様書82の場合と同一の欄構成となっている。更に、コメント項目欄も上から順に「概要」、「作成者」、「機能」及び「変更履歴」と記述され、ファイル改版仕様書82の場合と同一の構成となっている。そして、これらコメント項目欄の作成者と変更履歴に対応する状態欄、変更前コメント欄及び変更後コメント欄の内容もファイル改版仕様書82の場合と同一である。
また、コメント項目の「概要」と「機能」に対応するコメントでは、先ず、「概要」の状態が「=」でコメント内容は変更前及び変更後ともに「データの読み込みを行う」となっている。また、「機能」では、状態が「≠」であり、コメント内容は、変更前の1)〜4)まである4行のコメント文のうち3)と4)の間に新たなコメント文「3−1)特殊レコードの場合、特殊処理を行う」が追加されている。この場合も、この新旧の機能のコメントを見比べることによって、ソースプログラムの変更理由が更に明確に判明する。
そして、シンボル部94では、処理手続き欄が左右2つに分割されている。すなわち、左に変更前の処理手続きが表示され、右に変更後の処理手続きが表示される。そして、変更されていな処理手続記述部分の背景地色(例えば白)に対して、変更部分の処理手続記述部分95(95−1、95−2)は背景地色とは異なる色(例えば黄色あるいは網掛けでもよい)で表示される。
一般に、変更には、内容の改変と、削除と、追加があるが、同図に示す例は追加の例であり、左方の変更前の処理手続記述部分95−1には処理手続の記述がなく、右方の変更後の処理手続記述部分95−2に、追加された処理手続きが「//3−1)レコード〜if(psz〜Analy〜(pszBuffer);」と記述されている。この関数改版仕様書91が、処理手続きの追加ではなく改変であれば、処理手続記述部分95−1と95−2の両方に変更前と変更後の処理手続きが記述される。また、処理手続きの追加でも改変でもなく、削除であれば、削除された処理手続きが左方の処理手続記述部分95−1に記述され、右方の処理手続記述部分95−2には何も記述されない。これにより、変更前と変更後の処理手続きの違いが一目で判明する。
尚、上述の実施の形態におけるコメント群の抽出処理において、3つの規則に基づいてコメント群を抽出する方法は、上述した改版仕様書作成のための新旧二つのプログラム仕様書を作成するためと限ることなく、通常のプログラム仕様書作成方法としても好適に用いることができるものである。
(付記1)ソースプログラムを解析して該ソースプログラムの構成要素を抽出するソースプログラム解析手段と、前記ソースプログラムに挿入されているコメントからプログラム仕様書に表示すべきコメントを抽出するコメント抽出手段と、前記ソースプログラム、前記ソースプログラム解析手段により抽出された構成要素、及び前記コメント抽出手段により抽出されたコメントを含むプロジェクト資産を保存するプロジェクト資産管理手段と、該プロジェクト資産管理手段により保存された日時の異なる前記プロジェクト資産の中の新旧二つのソースプログラムを抽出し、該新旧二つのソースプログラムに定義されているシンボルを比較して違いがあるときは該シンボルの違い情報を抽出し、前記新旧二つのソースプログラムの同一シンボルに付随するコメントを比較して違いがあるときは該コメントの違い情報を抽出する差分解析手段と、該差分解析手段により検出された各前記違い情報に基づいて改版仕様書を生成する改版仕様書生成手段と、を含んで構成されたことを特徴とするプログラム仕様書作成装置。
(付記2)前記差分解析手段は、前記新旧二つのソースプログラムの同一シンボルが子シンボルを持つ場合に、該子シンボルを比較して違い情報を検出することを特徴とする付記1記載のプログラム仕様書作成装置。
(付記3)前記差分解析手段は、前記新旧二つのソースプログラムの同一シンボルが処理手続きを持つ場合に、該処理手続きを比較して違い情報を検出することを特徴とする付記1記載のプログラム仕様書作成装置。
(付記4)前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、ソースプログラムに新旧二つのソースプログラムが存在するか否かの情報を含むプログラム仕様書を作成することを特徴とする付記1記載のプログラム仕様書作成装置。
(付記5)前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、前記コメントの違い情報を含むプログラム仕様書を作成することを特徴とする付記1記載のプログラム仕様書作成装置。
(付記6)前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、前記シンボルの違い情報を含むプログラム仕様書を作成することを特徴とする付記1記載のプログラム仕様書作成装置。
(付記7)前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、前記子シンボルの違い情報を含むプログラム仕様書を作成することを特徴とする付記2記載のプログラム仕様書作成装置。
(付記8)前記改版仕様書生成手段は、前記差分解析手段による検出に基づいて、前記処理手続きの違い情報を含むプログラム仕様書を作成することを特徴とする付記3記載のプログラム仕様書作成装置。
(付記9)ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出手段と、該コメントキーワード候補抽出手段により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定手段と、該コメントキーワード設定手段により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認手段と、該コメントキーワード確認手段により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出手段と、該コメント項目抽出手段により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成手段と、を含んで構成されたことを特徴とするプログラム仕様書作成装置。
(付記10)前記コメントキーワード候補抽出手段は、前記ソースプログラムを記述したプログラム言語の言語要素毎にコメントキーワード候補を抽出することを特徴とする付記9記載のプログラム仕様書作成装置。
(付記11)前記コメントキーワード候補抽出手段は、各種コメントを区分けする記述からなるコメントをコメントキーワード候補として抽出することを特徴とする付記9記載のプログラム仕様書作成装置。
(付記12)前記記述頻度が高いコメントのコメントキーワードを定義する定義ファイルと該定義ファイルを編集する編集手段とを更に備え、前記コメントキーワード候補抽出手段は、前記定義ファイルの内容と一致するコメントをコメントキーワードの候補として抽出することを特徴とする付記9記載のプログラム仕様書作成装置。
(付記13)前記コメントキーワード設定手段は、抽出された前記コメントキーワードの候補を、それぞれ表示し、又は組み合わせて表示する表示報知手段を備えていることを特徴とする付記9記載のプログラム仕様書作成装置。
(付記14)前記コメントキーワード設定手段は、抽出された前記コメントキーワードの候補を、使用頻度の多い順に表示することを特徴とする付記9記載のプログラム仕様書作成装置。
(付記15)ソースプログラムを解析して該ソースプログラムの構成要素を抽出するソースプログラム解析工程と、前記ソースプログラムに挿入されているコメントからプログラム仕様書に表示すべきコメントを抽出するコメント抽出工程と、前記ソースプログラム、前記ソースプログラム解析工程により抽出された構成要素、及び前記コメント抽出工程により抽出されたコメントを含むプロジェクト資産を保存するプロジェクト資産管理工程と、該プロジェクト資産管理工程により保存された日時の異なる前記プロジェクト資産の中の新旧二つのソースプログラムを抽出し、該新旧二つのソースプログラムに定義されているシンボルを比較して違いがあるときは該シンボルの違い情報を抽出し、前記新旧二つのソースプログラムの同一シンボルに付随するコメントを比較して違いがあるときは該コメントの違い情報を抽出する差分解析工程と、該差分解析工程により検出された各前記違い情報に基づいて改版仕様書を生成する改版仕様書生成工程と、を含んで構成されたことを特徴とするプログラム仕様書作成方法。
(付記16)ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出工程と、該コメントキーワード候補抽出工程により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定工程と、該コメントキーワード設定工程により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認工程と、該コメントキーワード確認工程により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出工程と、該コメント項目抽出工程により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成工程と、を含んで構成されたことを特徴とするプログラム仕様書作成装置。
(付記17)コンピュータに対して、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出機能と、該コメントキーワード候補抽出機能により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定機能と、該コメントキーワード設定機能により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認機能と、該コメントキーワード確認機能により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出機能と、該コメント項目抽出機能により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成機能と、を実現させるためのプログラム仕様書作成プログラム。
(付記18)プログラム仕様書作成プログラムをコンピュータによる読み取り可能に記録した記録媒体であって、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出する機能と、抽出された前記コメントキーワードの候補をコメントキーワードとして選択的に確定する機能と、確定された前記コメントキーワードを前記ソースプログラムと照らし合わせて報知して確認する機能と、確認された前記コメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出する機能と、抽出された前記コメント項目に基づいてプログラム仕様書を生成する機能と、をコンピュータに実行させるためのプログラム仕様書作成プログラムを記録した記録媒体。
(a) は第1の発明のプログラム仕様書作成装置における動作原理図、(b) は第2の発明のプログラム仕様書作成装置における動作原理図である。 一実施の形態におけるプログラム仕様書作成装置の全体構成を示す図である。 プログラム仕様書作成装置によって行われるプログラム仕様書作成処理の動作を説明するメインフローチャートである。 メインフローチャートのステップS1及びS3の処理を更に詳細に示すフローチャートである。 プログラム仕様書作成処理において処理対象となるソースプログラムの例としてC++言語で記述されたソースプログラムのファイルを示す図である。 (a) はプログラム言語解析処理によって得られた定義シンボル・開始行対応データファイルの例を示す図、(b) はコメント群抽出処理によって得られたシンボル・コメント対応データファイルの例を示す図である。 (a),(b),(c) はそれぞれ第1、第2及び第3の規則に基づいてシンボル・コメント対応データファイルから抽出されたコメントキーワード候補の例を示す図である。 コメントキーワード候補オプション定義ファイルの例を示す図である。 (a),(b) はコメント抽出用のキーワードを設定するためのデータ入力用ダイアログ画面である。 (a),(b) はコメント抽出用のキーワードを設定するためのデータ入力用ダイアログ画面である。 設定されたコメント抽出用のキーワードを確認するためのダイアログ画面である。 (a),(b),(c) は夫々コメント抽出処理に基づいて抽出されたコメント群によって外部記憶装置の所定領域に構築されるデータベースの例を示す図である。 プログラム仕様書生成処理において生成されるプログラム仕様書の例を示す図である。 改版仕様書生成処理による新旧のプロジェクト資産の構成相違情報を記述したプロジェクト構成改版仕様書の例を示す図である。 改版仕様書生成処理による新旧のプロジェクト資産の同一ファイルのシンボル情報相違情報とそのファイルに付随するコメント情報とを併せて記述したファイル改版仕様書の例を示す図である。 改版仕様書生成処理による新旧のプロジェクト資産の同一シンボルの子供シンボルの相違情報とそのシンボルに付随するコメント情報を併せて記述したシンボル改版仕様書の例を示す図である。 改版仕様書生成処理による新旧のプロジェクト資産の同一シンボルの処理手続の相違情報とそのシンボルに付随するコメント情報を併せて記述した関数改版仕様書の例を示す図である。
符号の説明
1 ソースプログラム解析手段
2 コメント抽出手段
3 プロジェクト資産管理手段
4 差分解析手段
5 改版仕様書生成手段
11 コメントキーワード候補抽出手段
12 コメントキーワード設定手段
13 コメントキーワード確認手段
14 コメント項目抽出手段
15 プログラム仕様書生成手段
21 表示装置
22 入力装置
23 外部記憶装置
24 印刷装置
25 演算装置
31 コメントキーワード設定部
32 コメント抽出部
33 プロジェクト資産管理部
34 差分解析部
35 仕様書生成部
36 仕様書印刷部
37 ソースプログラムファイルの例
38 定義シンボル・開始行対応データファイル
39 シンボル・コメント対応データファイル
39−1 シンボル名領域
39−2 種類領域
39−3 コメント群領域
41 第1のコメントキーワード候補ファイル
41−1 種類領域
41−2 抽出されたコメントキーワード候補領域
42 第2のコメントキーワード候補ファイル
42−1 種類領域
42−2 抽出されたコメントキーワード候補領域
43 第3のコメントキーワード候補ファイル
43−1 種類領域
43−2 抽出されたコメントキーワード候補領域
44 コメントキーワード候補オプション定義ファイル
45 抽出キーワードの設定画面
46 種別入力窓
47 抽出キーワードとコメント項目設定窓
48 抽出キーワード候補表示窓
49 プルダウンメニュー表示ボタン
51、52 データ表示窓
53 候補リストフィルタ設定窓
55 抽出キーワードの定義(追加)画面
56 抽出キーワード条件指定窓
57 コメント項目条件指定窓
58 OKボタン
59 キャンセルボタン
61、63 チェック入力行
62 キーワード表示窓
64 項目設定窓
65 プルダウンメニュー表示ボタン
66 OKボタン
67 抽出キーワード確認画面
68 テストボタン
69 位置指示マーク
71 ファイルコメントデータファイル
72 関数コメントデータファイル73 クラスコメントデータファイル
74 確認用画面
75 ヘッダー部
76 コメント部
77 スクロールバー
78 プロジェクト構成改版仕様書
79 ヘッダー部
79−1 仕様書名欄
79−2 プロジェクト名欄
81 データ部
81−1〜81−6 データ行
82 ファイル改版仕様書
83 ヘッダー部
84 コメント部
85 シンボル部
86 シンボル改版仕様書
87 ヘッダー部
88 コメント部
89 シンボル部
91 関数改版仕様書
92 ヘッダー部
93 コメント部
94 シンボル部

Claims (5)

  1. ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出手段と、該コメントキーワード候補抽出手段により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定手段と、該コメントキーワード設定手段により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認手段と、該コメントキーワード確認手段により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出手段と、該コメント項目抽出手段により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成手段と、を含んで構成されたことを特徴とするプログラム仕様書作成装置。
  2. 前記コメントキーワード候補抽出手段は、前記ソースプログラムを記述したプログラム言語の言語要素毎にコメントキーワード候補を抽出することを特徴とする請求項1記載のプログラム仕様書作成装置。
  3. 前記コメントキーワード候補抽出手段は、各種コメントを区分けする記述からなるコメントをコメントキーワード候補として抽出することを特徴とする請求項1記載のプログラム仕様書作成装置。
  4. コンピュータに対して、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出するコメントキーワード候補抽出機能と、該コメントキーワード候補抽出機能により抽出されたコメントキーワードの候補をコメントキーワードとして選択的に確定するコメントキーワード設定機能と、該コメントキーワード設定機能により確定されたコメントキーワードを前記ソースプログラムと照らし合わせて報知して確認するコメントキーワード確認機能と、該コメントキーワード確認機能により確認されたコメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出するコメント項目抽出機能と、該コメント項目抽出機能により抽出されたコメント項目に基づいてプログラム仕様書を生成するプログラム仕様書生成機能と、を実現させるためのプログラム仕様書作成プログラム。
  5. プログラム仕様書作成プログラムをコンピュータによる読み取り可能に記録した記録媒体であって、ソースプログラムに挿入されているコメントから同じ文字又は記号が所定個以上連続しているコメント、連続するコメント行の中の同じ文字又は記号が所定個以上連続しているコメント以外のコメントで最左端に記述されているコメント、又は所定の定義ファイルに定義されているキーワードに一致するコメントをコメントキーワードの候補として抽出する機能と、抽出された前記コメントキーワードの候補をコメントキーワードとして選択的に確定する機能と、確定された前記コメントキーワードを前記ソースプログラムと照らし合わせて報知して確認する機能と、確認された前記コメントキーワードに基づいて前記ソースプログラムからコメント項目を抽出する機能と、抽出された前記コメント項目に基づいてプログラム仕様書を生成する機能と、をコンピュータに実行させるためのプログラム仕様書作成プログラムを記録した記録媒体。
JP2006083405A 2006-03-24 2006-03-24 プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム Pending JP2006190332A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006083405A JP2006190332A (ja) 2006-03-24 2006-03-24 プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006083405A JP2006190332A (ja) 2006-03-24 2006-03-24 プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001169941A Division JP2002366354A (ja) 2001-06-05 2001-06-05 プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム

Publications (1)

Publication Number Publication Date
JP2006190332A true JP2006190332A (ja) 2006-07-20

Family

ID=36797401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006083405A Pending JP2006190332A (ja) 2006-03-24 2006-03-24 プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム

Country Status (1)

Country Link
JP (1) JP2006190332A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149747B (zh) * 2006-09-21 2010-06-23 索尼株式会社 用于处理信息的装置和方法、以及程序
US8645908B2 (en) 2010-08-24 2014-02-04 International Business Machines Corporation Method for generating specifications of static test

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149747B (zh) * 2006-09-21 2010-06-23 索尼株式会社 用于处理信息的装置和方法、以及程序
US8645908B2 (en) 2010-08-24 2014-02-04 International Business Machines Corporation Method for generating specifications of static test

Similar Documents

Publication Publication Date Title
US7168035B1 (en) Building a view on markup language data through a set of components
EP2107457B1 (en) Automatic software configuring system
US20080046254A1 (en) Electronic Service Manual Generation Method, Additional Data Generation Method, Electronic Service Manual Generation Appartus, Additional Data Generation Apparatus, Electronic ServIce Manual Generation Program, Additional Data Generation Program, And Recording Media On Which These Programs Are Recorded
JP2006525609A (ja) コンテンツを複数のフォーマットで出力するための仕様を規定するシステムおよび方法
EP3103002B1 (en) Batch generation of links to documents based on document name and page content matching
EP1821185A1 (en) Data processing device and data processing method
EP1818835A1 (en) Document processing device, and document processing method
US20090265372A1 (en) Management of Document Attributes in a Document Managing System
EP3467672A1 (en) Method, program, recording medium, and device for assisting in creating homepage
US20080082962A1 (en) User interface for defining a text file transformation
Yang et al. UIS-hunter: Detecting UI design smells in Android apps
EP1821176A1 (en) Data processing device and data processing method
US8423888B2 (en) Document conversion and use system
AU2017218166B2 (en) Method of computerized presentation of a document set view for auditing information and managing sets of multiple documents and pages
US20090083300A1 (en) Document processing device and document processing method
JP5576570B2 (ja) 業務仕様からワークフローを生成する方法、プログラム及びシステム
JP2002366354A (ja) プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム
JP2006190332A (ja) プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム
EP1811399A1 (en) Data processing device and data processing method
EP1830274A1 (en) Server device and name space issuing method
US20090287994A1 (en) Document processing device and document processing method
JPH09245052A (ja) 構造化文書処理装置
Alfaro et al. $\mu $ PrintGen: Supporting Workflow Logs Analysis Through Visual Microprint
US20080005085A1 (en) Server Device and Search Method
JP4835791B2 (ja) Gui評価システム、gui評価方法およびgui評価用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060912

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061113

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061219