(57)【要約】【課題】入力されるプログラムに基づいて柔軟な仕様書を生成できる仕様書生成装置を提供する。【解決手段】仕様書生成装置２にプログラムが入力されると、新旧設定部２１でプログラムの種別が設定される。プログラムの種別が「変更」である場合、差分比較部２２で、既存のプログラムから変更されたモジュールが特定される。仕様書生成部２３は、変更されたモジュールに基づいて仕様書を生成する。修正個所抽出部２４は、生成された仕様書と既存の仕様書との記載の相違箇所を抽出する。書式調整部２５は、仕様書に相違箇所を追加した中間仕様書を表示部１２に表示させる。書式調整部２５は、入力部１１を介して、中間仕様書に対するコメントや体裁調整、書式パターンの入力を受け付けると、その入力を反映させた仕様書を生成する。【選択図】図１
2010176553.tif 000002
【特許請求の範囲】
【請求項１】
入力されるプログラムと既存のプログラムとを比較して前記既存のプログラムから変更されたモジュールを特定する差分比較部と、
特定された前記モジュールに基づいて仕様書を生成する仕様書生成部と、
生成された前記仕様書と既存の仕様書とを比較して記載の相違箇所を抽出する修正箇所抽出部と、
抽出された前記相違箇所を生成された前記仕様書に追加した中間仕様書を生成すると共に、
ユーザによって入力されるコメント又は体裁調整を前記中間仕様書に反映させた仕様書を生成する書式調整部と、
を備えることを特徴とする仕様書生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されるプログラムに基づいて仕様書を生成する仕様書生成装置に関する。
【背景技術】
【０００２】
従来から、プログラムの作成に合わせて、そのプログラムを人間が理解しやすいように、プログラムの目的や、データ構造、データ入出力情報等を記載したプログラム仕様書（プログラム設計書）を作成していた。
【０００３】
プログラムは、システム環境の変化や改良のため度々変更されることが多い。プログラム仕様書とプログラムとは対応すべきものであるので、プログラムに変更があれば、プログラム仕様書もプログラムの変更を反映している必要がある。
【０００４】
プログラム仕様書は、プログラムの完成後に作成されることも多く、この場合、完成したプログラムの内容に基づいて機械的に記載可能である。
【０００５】
このことから、例えば、新しく完成したプログラムと既存のプログラムとに記載されたシンボル及びコメントの違いを相違情報として抽出し、抽出した相違情報に基づいて新旧のプログラムの変更箇所を対比させた改版仕様書を生成する仕様書生成装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2006-190332号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術では、プログラム内に記載されているシンボル情報とコメント情報とに基づいて所定の仕様書を生成している。しかし、プログラムから抽出可能な情報だけに基づいて、一律に仕様書を生成することには限界がある。プログラムの目的やシンボルを説明しているプログラム内のコメントは、プログラム作成者の備忘録として記載されていることが多いから、他人に理解されやすい記述とは言い難く、また、記載されていないこともあるからである。
【０００８】
本発明は上記課題に鑑みてなされたものであり、新旧プログラムの相違箇所を対比させた改版仕様書を自動的に生成するとともに、更に、柔軟な仕様書を生成できる仕様書生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の仕様書生成装置は、入力されるプログラムと既存のプログラムとを比較して前記既存のプログラムから変更されたモジュールを特定する差分比較部と、特定された前記モジュールに基づいて仕様書を生成する仕様書生成部と、生成された前記仕様書と既存の仕様書とを比較して記載の相違箇所を抽出する修正箇所抽出部と、抽出された前記相違箇所を生成された前記仕様書に追加した中間仕様書を生成すると共に、ユーザによって入力されるコメント又は体裁調整を前記中間仕様書に反映させた仕様書を生成する書式調整部と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明は、新旧プログラムの相違箇所を対比させた改版仕様書を自動的に生成できるとともに、仕様書を生成する際に仕様書を調整する機能を有するので、更に、柔軟な仕様書を生成できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る仕様書生成装置の構成を示す機能ブロック図である。
【図２】本発明の実施形態に係る仕様書生成装置が「新規」の種別のプログラムに基づいて生成した仕様書の一例である。
【図３】本発明の実施形態に係る仕様書生成装置が「変更」の種別のプログラムに基づいて生成した仕様書の一例である。
【図４】本発明の実施形態に係る仕様書生成装置の処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態を詳細に説明する。まず、図１を参照して本実施形態の仕様書生成装置の構成を説明する。
【００１３】
仕様書生成装置２は、入出力部１と外部記憶部３とに接続されている。
【００１４】
入出力部１は、入力部１１と表示部１２とを備える。入力部１１は、キーボード等であり、表示部１２は、モニタ等である。
【００１５】
外部記憶部３は、プログラム記憶部３１と仕様書記憶部３２とを備える。
プログラム記憶部３１は、ＨＤＤ（Hard Disk Drive）等の記憶装置であり、仕様書生成装置２に入力されるプログラムを記憶する。仕様書記憶部３２は、ＨＤＤ等の記憶装置であり、仕様書生成装置２で生成された仕様書を記憶する。
【００１６】
仕様書生成装置２は、新旧設定部２１と差分比較部２２と仕様書生成部２３と修正箇所抽出部２４と書式調整部２５と仕様書生成制御部２６とを備える。
【００１７】
仕様書生成制御部２６は、仕様書生成装置２のこれらの動作を統括的に制御しており、ＣＰＵ（Central Processing Unit）とメモリとを含んで構成される。仕様書生成制御部２６は、メモリに記憶されたプログラムに従って、仕様書生成装置２の動作を制御する。
【００１８】
新旧設定部２１は、仕様書生成装置２にプログラムが入力されると、プログラムを取得してプログラム記憶部３１に記憶させると共に、取得したプログラムの種別によって以降の処理を分岐させる。プログラムの種別は、「新規」と「変更」とがあり、新旧設定部２１がプログラムを取得したときにユーザに設定させる。新旧設定部２１は、プログラムを取得すると、プログラムの種別を設定可能な画面を表示部１２に表示させる。プログラムの種別を設定可能な画面としては、例えば、プログラムの種別をアイコン形式で表示し、入力部１１を介してユーザにアイコンを選択させるような方法とすればよい。新旧設定部２１は、ユーザによって設定されたプログラムの種別が「新規」であれば、仕様書生成部２３にプログラムを出力し、プログラムの種別が「変更」であれば、差分比較部２２にプログラムを出力する。
【００１９】
差分比較部２２は、新旧設定部２１から変更プログラムを取得すると、取得したプログラムに対応する既存のプログラムをプログラム記憶部３１から読み出す。差分比較部２２は、新旧設定部２１から取得した変更プログラムとプログラム記憶部３１から読み出した既存のプログラムとに基づいて、プログラム間でシンボル情報又はコメント情報が相違するモジュールを特定する。差分比較部２２は、特定したモジュールを仕様書生成部２３に渡すと共に、特定したモジュールの一覧を表示部１２に表示させる。モジュールの一覧を表示部１２に表示させることで、ユーザに変更となったモジュールを確認させられる。なお、ここでモジュールとは、ひとまとまりの機能を実行するプログラムを指す。また、シンボル情報は、ソースコード上の名前であるシンボルと格納されているプログラムのアドレスとを対応させたものをいう。
【００２０】
仕様書生成部２３は、新旧設定部２１又は差分比較部２２から取得したプログラムに基づいて仕様書を生成する。仕様書生成部２３は、新旧設定部２１から「新規」のプログラムを取得したときは、取得したプログラムをモジュール単位に分割してモジュール毎の仕様書を生成する。
【００２１】
図２は、仕様書生成部２３が、取得したモジュールに基づいて生成した仕様書の一例である。図２に示すように、仕様書生成部２３は、モジュールの構造を分析して、モジュールの関数名やファイル名、概要、機能、宣言形式、引数の名前や型、入出力情報や、説明等をモジュールから抽出して仕様書に記載する。概要や機能、引数の説明は、モジュール内のコメントを基に記載される。仕様書生成部２３は、新旧設定部２１から取得した「新規」のプログラムに基づいて仕様書を生成した場合、生成した仕様書を仕様書記憶部３２に記憶させ、差分比較部２２から取得したプログラムに基づいて仕様書を生成した場合、生成した仕様書を修正個所抽出部２４に渡す。
【００２２】
修正箇所抽出部２４は、仕様書生成部２３から仕様書を取得すると、取得した仕様書に対応する既存の仕様書を仕様書記憶部３２から読み出す。修正個所抽出部２４は、仕様書生成部２３から取得した仕様書と仕様書記憶部３２から読み出した仕様書とに基づいて、新旧の仕様書間における記載の相違箇所を抽出する。修正箇所抽出部２４は、抽出した相違箇所と仕様書生成部２３から取得した仕様書とを書式調整部２５に出力すると共に、抽出した相違箇所を表示部１２に表示させる。相違箇所を表示部１２に表示させることで、ユーザにプログラムの変更がきちんと反映されたか確認させることができる。
【００２３】
書式調整部２５は、修正箇所抽出部２４から仕様書と相違箇所とを取得すると、仕様書に相違箇所を加えた中間仕様書を生成し、表示部１２に中間仕様書を表示させる。図３は、中間仕様書の一例である。図３に示すように、図２の仕様書に対して相違箇所２５ｂが追加されている。また、図３の下段には、備考２５ｃが設けられ、中間仕様書に対する補足等のコメントがあれば追記できるようになっている。
【００２４】
ユーザは、表示部１２に表示された中間仕様書を確認して、備考２５ｃに記載することがあれば、入力部１１を介して追記できる。また、ユーザは、備考２５ｃだけに限らず、中間仕様書の記載に不備や補足事項があれば、中間仕様書の各項目２５ａ、２５ｂに対して訂正や追記ができる。
【００２５】
中間仕様書には、新しいプログラムと既存プログラムとを対比させた相違箇所２５ｂが記載されるので、プログラム内のコメント作成時点では気づきにくい視点からコメントを追記できる。そのため、単にプログラムから抽出可能な内容だけに基づいて生成された仕様書よりも、的確にプログラムを捉えた仕様書を生成でき、仕様書としての完成度が非常に高い。
【００２６】
また、書式調整部２５は、不図示の記憶部に予め記憶された複数の書式パターンの中から、ユーザによって選択された書式パターンで仕様書を生成できる機能を有する。仕様書の納品先である会社等によっては、仕様書の書式を指定してくる場合もあり、一律に生成された仕様書では対応できないことがあるからである。この機能により、例えば、複数の会社のシステムの保守業務を請け負っている場合にも、それぞれの会社が要求する書式で仕様書を生成できる。書式調整部２５は、ユーザによって書式パターンが選択されたときは、その書式パターンで中間仕様書を生成し直し、表示部１２に表示させる。
【００２７】
また、書式調整部２５は、書体の変更や改行、空白の挿入等により中間仕様書の体裁を調整する機能を有する。中間仕様書へコメント等の追記・訂正をしたために中間仕様書の体裁が崩れた場合や、仕様書として生成したい書式パターンが記憶されていない場合のためである。この機能により、中間仕様書の体裁を微調整できると共に、生成したい書式に似ている書式パターンで中間仕様書を生成しておき、生成された中間仕様書の体裁を調整することで生成したい書式に仕様書を変えられる。そのため、ユーザの要望に柔軟な仕様書を生成できる。
【００２８】
書式調整部２５は、中間仕様書に対する追記や体裁調整を終えると、それら追記や体裁調整を反映した仕様書を生成し、生成した仕様書を仕様書記憶部３２に記憶させる。
【００２９】
次に、図４を参照して、本実施形態の処理の流れを説明する。
【００３０】
まず、ステップＳ１で、新旧設定部２１は、記憶媒体やネットワークを介して仕様書生成装置２に入力されたプログラムを取得し、取得したプログラムをプログラム記憶部３１に記憶させる。ステップＳ２に進み、新旧設定部２１は、取得したプログラムの種別を「新規」にするか「変更」にするかの選択を行う画面を表示部１２に表示させる。ステップＳ３で、新旧設定部２１は、入力部１１を介してプログラムの種別が設定されると、プログラムの種別が「新規」に設定されたか否かを判断する。
【００３１】
ステップＳ３でＹｅｓの場合、ステップＳ４に進み、仕様書生成部２３は、新旧設定部２１からプログラムを取得し、取得したプログラムをモジュール単位に分割して各モジュールの仕様書を生成する。ステップＳ５で、仕様書生成部２３は、生成した仕様書を仕様書記憶部３２に記憶させ、本処理を終了する。
【００３２】
一方、ステップＳ３でＮｏの場合、ステップＳ６に進み、差分比較部２２は、新旧設定部２１からプログラムを取得し、取得したプログラムに対応する既存のプログラムをプログラム記憶部３１から読み出す。なお、既存のプログラムが複数記憶されている場合、差分比較部２２は、取得したプログラムより一つ前のバージョンの既存プログラムを読み出す。差分比較部２２が読み出すべき既存プログラムであるか否かは、例えば、ファイル名や記録日時等を参照して判断させればよい。
【００３３】
ステップＳ７で、差分比較部２２は、新旧設定部２１から取得したプログラムとプログラム記憶部３１から読み出した既存プログラムとにおける、プログラム間のシンボル情報やコメント情報を比較し、変更となったモジュールを特定する。ステップＳ８で、差分比較部２２は、特定したモジュールの一覧を表示部１２に表示させる。
【００３４】
ステップＳ９に進み、仕様書生成部２３は、差分比較部２２からモジュールを取得し、取得したモジュールに基づいて仕様書を生成する。
【００３５】
ステップＳ１０で、修正箇所抽出部２４は、仕様書生成部２３によって生成された仕様書を取得し、取得した仕様書に対応する既存の仕様書を仕様書記憶部３２から読み出す。なお、既存の仕様書が複数記憶されている場合、修正箇所抽出部２４は、取得した仕様書より一つ前のバージョンの仕様書を読み出す。仕様書生成部２３が読み出すべき既存の仕様書であるか否かは、例えば、ファイル名や記録日時等を参照して判断すればよい。
【００３６】
ステップＳ１１で、修正箇所抽出部２４は、仕様書生成部２３から取得した仕様書と仕様書記憶部３２から読み出した仕様書とを比較し、記載の相違箇所を抽出する。ステップＳ１２で、修正個所抽出部２４は、抽出した相違箇所を表示部１２に表示させる。
【００３７】
ステップＳ１３に進み、書式調整部２５は、修正個所抽出部２４から相違箇所と仕様書とを取得し、取得した仕様書に相違箇所を追加した中間仕様書を表示部１２に表示させる。
【００３８】
ステップＳ１４で、書式調整部２５は、入力部を介して、中間仕様書に対する追記や体裁調整、書式パターンの選択等の入力を受け付ける。ステップＳ１５で、書式調整部２５は、それらの入力を反映させた仕様書を生成する。そして、ステップＳ１６で、書式生成部は、生成した仕様書を仕様書記憶部３２に記憶させる。
【００３９】
ステップＳ１７で、書式調整部２５は、上記ステップＳ７で特定したすべてのモジュールについて仕様書を生成したか判断し、ステップＳ１７でＹｅｓの場合、本処理を終了し、ステップＳ１７でＮｏの場合、ステップＳ９に戻る。すなわち、ステップＳ７で特定したモジュールの数だけステップＳ９〜ステップＳ１６の処理を繰り返すことになる。
【００４０】
また、「新規」のプログラムに基づいて生成した仕様書に対して、書式調整部２５の処理を行ってもよい。前述したように、プログラム内のコメントは、プログラム作成者の備忘録として記載されていることが多く、万人に分かりやすい記載とは言い難い。そのため、「新規」のプログラムに基づいて生成した仕様書を中間仕様書とし、中間仕様書に対して書式調整部２５の処理によってコメントの追記等を行って仕様書を生成することで、分かりやすい仕様書を生成できる。また、書式調整部２５は、仕様書記憶部３１に記憶された仕様書に対して、コメントの追記や体裁調整、書式パターンの変更等の処理を行うようにしてもよい。
【００４１】
以上説明したように、本発明の仕様書生成装置２は、仕様書を生成する際に仕様書を調整する機能を持たせたので、ユーザによる細かい調整を反映させられ、ユーザの要望に柔軟な仕様書を生成できる。
【００４２】
本実施形態では、プログラムの種別を新旧設定部２１で設定したが、自動的にプログラムの種別を判別してもよい。例えば、新旧設定部２１は、取得したプログラムをプログラム記憶部３１に記憶するときに、既に既存のプログラムが記憶されているかを調べ、記憶されていなければ「新規」のプログラムであると判断して仕様書生成部２３に仕様書を生成させ、既に記憶されていれば「変更」のプログラムであると判断して差分比較部２２にモジュールを特定させるように処理すればよい。
【００４３】
また、本実施形態では、仕様書生成装置２と入出力部１及び外部記憶部３とをそれぞれ別体の構成として説明したが、これらは一体として仕様書生成装置２を成していてもよい。また、仕様書生成装置２は、コンピュータが実行可能な上記実施形態のプログラムであってもよく、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体の形式で提供されてもよい。
【００４４】
また、本実施形態では、モジュール単位の仕様書を生成したが、モジュールだけでなく、関数単位や、プロジェクト単位での仕様書の生成に変更してもよい。
【００４５】
上記を概説すると、本発明は、入力されるプログラムに基づいて中間仕様書を生成する仕様書生成部と、ユーザによって入力されるコメント又は体裁調整を中間仕様書に反映させた仕様書を生成する書式調整部と、を備えることを特徴とする仕様書生成装置である。
【００４６】
また、前記書式調整部は、予め記憶された複数の書式パターンの中から選択された前記書式パターンで中間仕様書を生成してもよい。
【００４７】
本発明は上述した実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々様々に変更が可能であることは言うまでもない。なお、上記実施形態の中で、同一の構成内容には、同一名称を付けて説明している。
【産業上の利用可能性】
【００４８】
本発明は、自動的に文書を生成する文書生成装置に適用できる。
【符号の説明】
【００４９】
１・・・入出力部
１１・・入力部
１２・・表示部
２・・・仕様書生成装置
２１・・新旧設定部
２２・・差分比較部
２３・・仕様書生成部
２４・・修正個所抽出部
２５・・書式調整部
２６・・仕様書生成制御部
３・・・外部記憶部
３１・・プログラム記憶部
３２・・仕様書記憶部
【図１】
2010176553.tif 000003
【図２】
2010176553.tif 000004
【図３】
2010176553.tif 000005
【図４】
2010176553.tif 000006