(57)【要約】【課題】利用した初期設定値を含む画面上の情報を仕様書に出力することが可能なＧＵＩ仕様書生成方法およびＧＵＩ仕様書生成システムを提供することにある。【解決手段】仕様書元データ生成処理手段１２２は、ソフトウェア設計者が任意のビジュアル開発ツールを用いて設計したＧＵＩのソースファイル内のＧＵＩ詳細情報から仕様書に出力すべき情報を抽出し、抽出された出力すべき情報に対して、ソフトウェア設計者によって省略された情報を初期値格納テーブルを参照することによって取得した後に、仕様書元データとして格納する。仕様書生成処理手段１２４は、仕様書元データ生成処理手段１２２が格納した前記仕様書元データを仕様書テンプレートに従って成形した後に、ＧＵＩ詳細仕様書として格納する。【選択図】図２
2007286822.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア設計者が任意のビジュアル開発ツールを用いて設計したＧＵＩのソースファイル内のＧＵＩ詳細情報から仕様書に出力すべき情報を抽出し、
抽出された出力すべき情報に対して、ソフトウェア設計者によって省略された情報を初期値格納テーブルを参照することによって取得した後に、仕様書元データとして格納し、
前記仕様書元データを仕様書テンプレートに従って成形した後に、ＧＵＩ詳細仕様書として格納し、
格納された前記ＧＵＩ詳細仕様書の情報を表示することを特徴とするＧＵＩ仕様書生成方法。
【請求項２】
ソフトウェア設計者が任意のビジュアル開発ツールを用いて設計したＧＵＩのソースファイル内のＧＵＩ詳細情報から仕様書に出力すべき情報を抽出し、抽出された出力すべき情報に対して、ソフトウェア設計者によって省略された情報を初期値格納テーブルを参照することによって取得した後に、仕様書元データとして格納する仕様書元データ生成処理手段と、
前記仕様書元データ生成処理手段が格納した前記仕様書元データを仕様書テンプレートに従って成形した後に、ＧＵＩ詳細仕様書として格納する仕様書生成処理手段と、
前記仕様書生成処理手段によって格納された前記ＧＵＩ詳細仕様書の情報を表示する仕様書出力処理手段とを備えることを特徴とするＧＵＩ仕様書生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの仕様書を生成する方法およびシステムに係り、特に、ＧＵＩ（Graphic User Interface）を含むソフトウェアの仕様書を生成するＧＵＩ仕様書生成方法およびＧＵＩ仕様書生成システムに関する。
【背景技術】
【０００２】
従来のソフトウェアの仕様書生成に関する技術としては、システム開発時に定義した画面定義情報を元に画面の仕様情報を生成し、その画面に対応する画像データを含有した仕様情報を生成するシステムが知られている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開平９−２８２４７７号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
最近は、ＧＵＩをほぼ完成形に近い形で直接に設計するための種々のビジュアル開発ツールが市販されており、使用したい機能部品，例えばボタンなどを、マウスを使った操作で容易に画面上に追加できるため、細部まで厳密に設計することなくおおよその設計が完了した時点でＧＵＩの作成を開始できる環境にある。
【０００５】
そのため、前記先行技術を実際のＧＵＩソフトウェア開発に適用する場合、次のような問題がある。すなわち、特許文献１記載のシステムの場合では、ソフトウェア設計者がシステム開発時に定義した画面定義情報以外の情報は、仕様書に反映されない問題がある。前記のとおり、市販のビジュアル開発ツールは、標準的な機能と外観を備えたソフトウェアの集合を機能部品として提供するため、配色や使用文字の種別およびサイズなどの情報は、ソフトウェア設計者が設定しなくても利用可能である。そのため、ソフトウェア設計者は、特別に色やサイズを変更する場合以外はシステム開発時に個々の部品についてそれらの詳細情報を定義しない傾向がある。しかしながら、例えば開発したソフトウェアの完成検査を行なう場合や、他開発言語による作り直しの場合などには、初期設定値を含む細部の情報も重要である。
【０００６】
本発明の目的は、利用した初期設定値を含む画面上の情報を仕様書に出力することが可能なＧＵＩ仕様書生成方法およびＧＵＩ仕様書生成システムを提供することにある。
【課題を解決するための手段】
【０００７】
（１）上記目的を達成するために、本発明は、ソフトウェア設計者が任意のビジュアル開発ツールを用いて設計したＧＵＩのソースファイル内のＧＵＩ詳細情報から仕様書に出力すべき情報を抽出し、抽出された出力すべき情報に対して、ソフトウェア設計者によって省略された情報を初期値格納テーブルを参照することによって取得した後に、仕様書元データとして格納し、前記仕様書元データを仕様書テンプレートに従って成形した後に、ＧＵＩ詳細仕様書として格納し、格納された前記ＧＵＩ詳細仕様書の情報を表示するようにしたものである。  
かかる方法により、利用した初期設定値を含む画面上の情報を仕様書に出力し得るものとなる。
【０００８】
（２）上記目的を達成するために、本発明は、ソフトウェア設計者が任意のビジュアル開発ツールを用いて設計したＧＵＩのソースファイル内のＧＵＩ詳細情報から仕様書に出力すべき情報を抽出し、抽出された出力すべき情報に対して、ソフトウェア設計者によって省略された情報を初期値格納テーブルを参照することによって取得した後に、仕様書元データとして格納する仕様書元データ生成処理手段と、前記仕様書元データ生成処理手段が格納した前記仕様書元データを仕様書テンプレートに従って成形した後に、ＧＵＩ詳細仕様書として格納する仕様書生成処理手段と、前記仕様書生成処理手段によって格納された前記ＧＵＩ詳細仕様書の情報を表示する仕様書出力処理手段とを備えるようにしたものである。
【発明の効果】
【０００９】
本発明によれば、利用した初期設定値を含む画面上の情報を仕様書に出力することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図１〜図８を用いて、本発明の一実施形態によるＧＵＩ仕様書生成システムの構成及び動作について説明する。
【００１１】
最初に、本発明が対象とするＧＵＩソフトウェアについて説明する。
【００１２】
文書の作成や数値計算など、ある特定の目的のために設計されたソフトウェアは「アプリケーションソフト」や「ツール」などと呼ばれ、それらの多くは操作者にコンピュータと対話形式で操作を行なわせるための入出力画面「ＧＵＩ」を備えている。
【００１３】
ソフトウェアは、人間がプログラミング言語（ソフトウェアの設計図に当たるソースコードを記述するための言語）を用いてソフトウェアの設計図（ソースコード）を作成し、それをコンピュータ上で実行可能な形式（オブジェクトコード）に変換（コンパイル）することによって作成する。
【００１４】
ソースコードを格納したファイルをソースファイルと呼ぶが、ＧＵＩソフトウェアのソースファイルには、コンピュータを動作させる手順・命令をプログラミング言語で記述した結果を格納するファイルと、入出力画面に表示する文字列や部品の大きさおよび色などの可視情報をプログラミング言語で記述した結果を格納するファイルとが含まれる。
【００１５】
本発明において、ソースファイルとは、後者の「入出力画面に表示する文字列や入出力部品の大きさおよび色などの可視情報の設計図（ソースコード）を格納するファイル」を指す。
【００１６】
次に、図１を用いて、本実施形態によるＧＵＩ仕様書生成システムの全体構成について説明する。  
図１は、本発明の一実施形態によるＧＵＩ仕様書生成システムの全体構成を示すブロック図である。
【００１７】
ＧＵＩ詳細仕様書生成システム１００は、ソース解析部１１０と、仕様書生成部１２０と、初期値格納テーブルＤ２０と、仕様書テンプレートＤ３０から構成される。
【００１８】
ソフトウェア設計者が任意のビジュアル開発ツール２００を用いてＧＵＩを設計した出力は、ソースファイルＤ１０に格納される。ビジュアル開発ツール２００は、ソフトウェア設計者が入出力装置上で全体像を確認しながら機能部品を追加したり、細部を調整したりすることができる機能を持ち、さらに、画面が完成していなくても、編集内容の保存を実行すると、ファイルが生成されソースファイルＤ１０に格納される。
【００１９】
ＧＵＩ詳細仕様書生成システム１００のソース解析部１１０は、ソースファイルＤ１０内に含まれるＧＵＩ詳細情報を解析し、出力すべき情報を仕様書元データとして抽出する。その際、ソフトウェア設計者によって省略された情報についても初期値格納テーブルＤ２０内を参照することによって初期値を取得し、仕様書元データとして出力する。仕様書生成部１２０は、ソース解析部１１０が作成した仕様書元データを、仕様書テンプレートＤ３０に従って成形したのち、ＧＵＩ詳細仕様書Ｄ４０に格納する。なお、ＧＵＩ詳細仕様書生成システム１００の詳細構成及び動作は、図２以降を用いて後述する。
【００２０】
ＧＵＩ詳細仕様書生成システム１００は、ソースファイルＤ１０を入力としているため、実行可能なソフトウェアとして完成していなくてもＧＵＩ詳細仕様書Ｄ４０を生成することができる。これによって、例えば多人数開発において、一部の仕様決めが未決の状態でも、背景や全体レイアウトなどの決定事項のみを仕様書に出力して、他の開発メンバと情報を共有することができるため、画面によって文字列の開始位置が違ったり使用文字種別が違ったりするなどのばらつきを防ぐことが可能になる。
【００２１】
次に、図２を用いて、本実施形態によるＧＵＩ仕様書生成システムのハードウェア構成について説明する。  
図２は、本発明の一実施形態によるＧＵＩ仕様書生成システムのハードウェア構成を示すブロック図である。なお、図１と同一符号は、同一部分を示している。
【００２２】
ＧＵＩ詳細仕様書生成システム１００は、ソース解析部１１０と、仕様書生成部１２０と、記憶装置１３０と、入出力装置１４０とを備える。ソース解析部１１０は、仕様書指定処理手段１１２と、ソースファイル処理手段１１４とを備える。仕様書生成部１２０は、仕様書元データ生成処理手段１２２と、仕様書生成処理手段１２４と、仕様書出力処理手段１２６とを備える。ソース解析部１１０と仕様書生成部１２０の各手段の具体的な処理内容については、図３を用いて後述する。
【００２３】
記憶装置１３０は、ソースファイルＤ１０を格納するソースファイル記憶領域Ｍ１０と、初期値格納テーブルＤ２０を格納する初期値格納テーブル記憶領域Ｍ２０と、仕様書テンプレートＤ３０を格納する仕様書テンプレート記憶領域Ｍ３０と、ＧＵＩ詳細仕様書Ｄ４０を格納する仕様書記憶領域Ｍ４０とに加え、各処理手段の実行後に生成される一時データを格納するための作業領域Ｍ５０と、仕様書元データ記憶領域Ｍ６０とを備える。
【００２４】
次に、図３を用いて、本実施形態によるＧＵＩ仕様書生成システムの処理動作について説明する。  
図３は、本発明の一実施形態によるＧＵＩ仕様書生成システムの処理動作を示すフローチャートである。
【００２５】
ソフトウェア設計者が、入出力装置１４０からＧＵＩ詳細仕様書生成システム１００を呼び出すと、まず、ステップｓ１０において、仕様書指定処理手段１１２は、ソースファイルと仕様書の種別をソフトウェア設計者に指定させるための画面を表示し、ＧＵＩ詳細仕様書生成システム１００はその指定された内容を取得する。
【００２６】
次に、ステップｓ２０において、ソースファイル処理手段１１４は、仕様書指定処理手段１１２で指定された情報を元にソースファイル記憶領域Ｍ１０より該当データを読み出し、作業領域Ｍ５０に格納する。
【００２７】
次に、ステップｓ３０において、仕様書元データ生成処理手段１２２は、初期値格納テーブル記憶領域Ｍ２０から初期値の情報を読み出す。
【００２８】
次に、ステップｓ４０において、仕様書元データ生成処理手段１２２は、ステップｓ３０において読み出した初期値情報と、作業領域Ｍ５０内のソースファイル情報とを照合し、ソースファイル内で省略された部品属性に初期値を補いつつ仕様書元データを作成する。具体的には、作業領域Ｍ５０内のソースファイル情報を先頭から検索し、部品種別データを検出したらその後に続く詳細仕様を設定値として取得する処理を順に行なう。次の部品種別データを検出したとき、その前に検出した部品の詳細仕様のうちまだ設定値を取得していないものがあった場合には、初期値格納テーブル記憶領域Ｍ２０から読み出した情報から対応する初期値を検索し、設定値として取得する。ステップｓ４０の処理の詳細については、図４及び図７を用いて後述する。
【００２９】
次に、ステップｓ５０において、仕様書元データ生成処理手段１２２は、ステップｓ４０の処理結果を、仕様書元データ記憶領域Ｍ６０に格納する。
【００３０】
次に、ステップｓ６０において、仕様書生成処理手段１２４は、仕様書テンプレート記憶領域Ｍ３０から読み出した仕様書書式のデータを、仕様書記憶領域Ｍ４０に格納する。
【００３１】
次に、ステップｓ７０において、仕様書生成処理手段１２４は、仕様書元データ記憶領域Ｍ６０より読み出したデータを、定型書式を用いたＧＵＩ詳細仕様書として、仕様書記憶領域Ｍ４０に格納する。
【００３２】
最後に、ステップｓ８０において、仕様書出力処理手段１２６は、仕様書記憶領域Ｍ４０から読み出したデータを入出力装置１４０上に出力する。
【００３３】
次に、図４を用いて、本実施形態によるＧＵＩ仕様書生成システムの処理の内、図３におけるステップｓ４０の処理の詳細について説明する。  
図４は、本発明の一実施形態によるＧＵＩ仕様書生成システムの処理の内、図３におけるステップｓ４０の処理動作を示すフローチャートである。以下の処理は、すべて仕様書元データ生成処理手段１２２によって実行される。
【００３４】
ステップｓ５０１において、仕様書元データ生成処理手段１２２は、作業領域Ｍ５０に格納されているソースファイル情報を読み取る。次に、ステップｓ５０２において、ソースファイルのデータ終端が検出されたか否かを判定する。終端が検出されない場合は、ステップｓ５０３に進み、終端が検出されると、ステップｓ５１０に進む。
【００３５】
データの終端が検出されない場合には、ステップｓ５０３において、部品種別が検出されたか否かを判定する。部品種別が検出されない場合には、ステップｓ５０１に戻り、部品種別が検出されると、ステップｓ５０４に進む。
【００３６】
部品種別が検出された場合、ステップｓ５０４において、部品種別の行の次の行の、作業領域Ｍ５０に格納されているソースファイル情報を読み取る。次に、ステップｓ５０５において、部品種別の終端が検出されたか否かを判定する。部品種別の終端が検出されない場合には、ステップｓ５０７に進み、部品種別の終端が検出されると、ステップｓ５０８に進む。
【００３７】
ステップｓ５０５において、部品種別の終端が検出されない場合には、ステップｓ５０６において、属性名称が検出されたか否かを判定する。属性名称が検出されない場合には、ステップｓ５０４に戻り、属性名称が検出されると、ステップｓ５０７に進む。
【００３８】
属性名称が検出された場合には、ステップｓ５０７において、属性の設定値を取得し、ステップｓ５０４に進む。
【００３９】
ステップｓ５０５において、部品種別が検出されると、ステップｓ５０８において、部品の属性に対して設定値未取得のものがあるか否かを判定する。未取得のものがあった場合には、ステップｓ５０９に進み、ない場合は、ステップｓ５０１に戻る。
【００４０】
設定値未取得のものがあった場合には、ステップｓ５０９において、図３におけるステップｓ３０で作業領域に読み取った初期値データから、設定値未取得の属性に対応するものを取得する。
【００４１】
ステップｓ５０２において、ソースファイルのデータ終端が検出されると、ステップｓ５１０において、初期値格納テーブル記憶領域Ｍ２０から読み出した情報から対応する初期値を検索し、設定値として取得し、読み取った設定値を仕様書元データに格納する。
【００４２】
なお、図４の具体的処理内容については、図７と関連づけて後述する。
【００４３】
次に、図５を用いて、本発明の一実施形態によるＧＵＩ仕様書生成システムにて用いる初期値格納テーブルＤ２０の構成について説明する。  
図５は、本発明の一実施形態によるＧＵＩ仕様書生成システムにて用いる初期値格納テーブルの説明図である。
【００４４】
ここでは、ＧＵＩ部品の一例として、ボタンとテキスト入力域と、及び、それぞれに設定可能な詳細情報および初期値を示している。
【００４５】
初期値情報例５０１と初期値情報例５０２において、ボタンを表す名称（詳細５０４、詳細５０５）はいずれも「PushButton」だが、初期値情報例５０１ではフォント種別を指定できる（詳細５０６）のに対し、初期値情報例５０２では該当する項目が無くフォント種別を指定できないなど、細部に違いがある。尚、この場合、初期値情報例５０２に対応するビジュアル開発ツールでは、フォント種別はソースファイル内に静的に定義しておくのではなく、コンピュータへの命令として設定する必要があることを意味する。
【００４６】
また、テキスト入力域を表す名称は、初期値情報例５０１においては「LineEdit」（詳細５０７）だが、初期値情報例５０２においては「EDITTEXT」（詳細５０８）である。
【００４７】
同様に、初期値情報例５０３では、ボタンの名称が「CommandButton」（詳細５０９）、テキスト入力域が「TextBox」（詳細５１０）と、初期値情報例５０１、初期値情報例５０２のいずれとも異なっており、詳細情報の種類も異なる。
【００４８】
このように、ＧＵＩの詳細情報はビジュアル開発ツールごとに異なっている。しかし、ＧＵＩ詳細仕様書生成システム１００は、図２における初期値格納テーブル記憶領域Ｍ２０に各ビジュアル開発ツールに応じたＧＵＩ部品の詳細情報の名称および初期値を格納しておき、対象に応じて適切な初期値情報ブロック、すなわち図５における初期値情報例５０１あるいは初期値情報例５０２あるいは初期値情報例５０３を読み出すことによって、複数のビジュアル開発ツールに対応することが可能である。
【００４９】
また、ソースファイルＤ１０がどのビジュアル開発ツールを用いて作成されたものかは、ソフトウェア設計者に使用したビジュアル開発ツールを指定させる方法もあるが、ソースファイルＤ１０内の構成や記述ルールやファイル拡張子などから、総合的に判別することができる。例えば、Qt designerのバージョン４．１．０というビジュアル開発ツールを用いて作成したＧＵＩの場合、ソースファイルＤ１０はＸＭＬ書式で記述されており、先頭が「<ui version="4.0" >」で始まり終端が「</ui>」、ソースファイルＤ１０の拡張子は「.ui」という規則がある。このように、いくつかの規則を抽出して判定し、ビジュアル開発ツールを特定することもできる。
【００５０】
このように、ソースファイル内の構成や記述ルールやファイル拡張子などを用いて、使用したビジュアル開発ツールを判別することで、次の利点を有する。すなわち、このような方式をとらない場合は、あらかじめソフトウェアの仕様をシステムによって定められた書式に従って記述する必要があり、ソフトウェア設計者はシステムが定める書式を習得する必要がある。そして、誤った書式で記述した場合は、信頼できる内容の仕様書が生成されないという問題もある。さらには、ソフトウェアの記述様式がシステムに特化して定められているため、他のソフトウェアの一部を移植した場合やソフトウェアの開発環境を変更した場合などに、仕様書を正しく生成できなくなる可能性もある。それに対して、ソースファイル内の構成や記述ルールやファイル拡張子などを用いて、使用したビジュアル開発ツールを判別することで、予め、複数のビジュアル開発ツールに対応づけておけば、上述の問題は回避できるものである。
【００５１】
次に、図６を用いて、本発明の一実施形態によるＧＵＩ仕様書生成システムにて処理するＧＵＩの一例について説明する。  
図６は、本発明の一実施形態によるＧＵＩ仕様書生成システムにて処理するＧＵＩの一例の説明図である。
【００５２】
図６に示すＧＵＩは、操作者にスケジュールの開始日と終了日を入力させ、チェックボタンが押下された時に、入力値に矛盾がないかを判定するものである。
【００５３】
入力すべきデータを示すラベル６０１および６０２と、データ入力域６０３および６０４と、入力データのチェック処理を実行するボタン６０５を備えている。
【００５４】
次に、図７を用いて、本発明の一実施形態によるＧＵＩ仕様書生成システムにて処理するソースコードの一例について説明する。  
図７は、本発明の一実施形態によるＧＵＩ仕様書生成システムにて処理するソースコードの一例の説明図である。
【００５５】
図７に示すソースコードは、図６のＧＵＩの設計図にあたるものである。このソースコードをコンピュータ上でコンパイルし、得られたオブジェクトコードを実行すると、図６に示すＧＵＩが入出力画面上に表示される。
【００５６】
ソースコード７０１は、図６におけるラベル６０１および６０２のソースコードである。コード７０２の＜widget class="QLabel" name="label"＞以降、コード７０３の＜/widget＞までがラベル６０１のソースコードで、コード７０３の次行より、コード７０４の＜/widget＞までがラベル６０２のソースコードである。
【００５７】
コード７０５の＜property name="geometry"＞からコード７０６の＜/property＞の間には、ラベル６０１の表示位置Ｘ座標およびＹ座標と、幅および高さの情報とが記述されている。ビジュアル開発ツールにおいては、Ｘ座標およびＹ座標は画面上でＧＵＩ部品を配置可能な領域の左上隅からの距離で表され、幅および高さはこのＧＵＩ部品の左上隅を基準にそれぞれ横方向と縦方向の長さの値であり、単位はいずれもピクセルである。
【００５８】
コード７０７の＜property name="font"＞からコード７０８の＜/font＞の間には、ラベル６０１のフォント情報として、フォントサイズおよび太字や斜体や下線等の修飾設定の有無などが記述されている。
【００５９】
コード７０９の＜property name="text"＞の次行には、ラベル６０１が表示する文字列が記述されている。
【００６０】
コード７１０の＜property name="alignment"＞の次行には、ラベル６０１が表示する文字列の配置情報が記述されている。
【００６１】
ラベル６０２についても、ラベル６０１と同様に詳細が記述される。
【００６２】
ソースコード７１１は、図６におけるデータ入力域６０３および６０４のソースコードである。コード７１２の＜widget class="QLineEdit" name="lineEdit"＞以降、コード７１３の＜/widget＞までがデータ入力域６０３のソースコードで、コード７１４の＜widget class="QLineEdit" name="lineEdit_2"＞以降、コード７１５の＜/widget＞までがデータ入力域６０４のソースコードである。
【００６３】
ここで、コード７１２からコード７１５の間に、ラベル６０１および６０２のように＜property name="font"＞（コード７０７）や＜property name="text"＞（コード７０９）の記述が無いことから、データ入力域６０３および６０４にはフォント情報の設定と表示文字列の設定が無い、つまり、フォント情報の設定と表示文字列はビジュアル開発ツールが備える初期設定値を利用する、ということがわかる。
【００６４】
ソースコード７１６は、図６におけるボタン６０５のソースコードである。ソースコード７０１および７１１で説明したように、コード７１７の＜widget class="QPushButton" name="chkButton"＞からコード７１８の＜/widget＞の間にコード７１９＜property name="geometry"＞、コード７２０＜property name="font"＞、コード７２１＜property name="text"＞があることから、ボタン６０５に対する表示位置Ｘ座標およびＹ座標と幅および高さの設定と、フォント情報と表示文字列の設定が行なわれたということがわかる。
【００６５】
ソースコード７２２は、図６におけるラベル６０１および６０２と、データ入力域６０３および６０４と、ボタン６０５のフォーカス遷移順序を記述したソースコードである。フォーカス遷移順序とは、あるＧＵＩ部品上にフォーカスがある状態でＴａｂキーを押下した際にどのＧＵＩ部品にフォーカスが移るか、その順序のことである。尚、フォーカスとは、ＧＵＩ部品が現在選択され、入力可能な状態にあることである。
【００６６】
コード７２３＜tabstops＞からコード７２４＜/tabstops＞の間に記述されたＧＵＩ部品がフォーカス遷移の対象であり、遷移の順序はソースコード内での記述順に等しい。つまり、データ入力域６０３および６０４およびボタン６０５が遷移の対象であり、フォーカスはデータ入力域６０３からデータ入力域６０４に移り、データ入力域６０４からボタン６０５に移ったあとは再びデータ入力域６０３に移る。
【００６７】
ここで、図４と図７を関連づけて、図４の処理内容について具体的に説明する。
【００６８】
図４のステップｓ５０２におけるソースファイルのデータ終端の検出は、図７には図示してないが、例えば、「end of file」というようなコードを検出することで行われる。
【００６９】
図４のステップｓ５０３における部品種別は、例えば、図７のコード７０２の＜widget class="QLabel" name="label"＞によって"QLabel”という部品を検出することができる。そして、部品種別が検出された場合、ステップｓ５０４で、コード７０５の＜property name="geometry"＞以降の行を順次読み出すことになる。
【００７０】
図４のステップｓ５０５における部品種別の終端は、例えば、図７のコード７０３の＜/widget＞によって検出される。
【００７１】
図４のステップｓ５０６における属性名称の検出とは、例えば、図７のコード７０５の＜property name="geometry"＞の中の"geometry"である。
【００７２】
属性名称が検出された場合には、ステップｓ５０７において取得する属性の設定値とは、例えば、図７のコード７０５の＜property name="geometry"＞の行の次の行の「<x>51</x>」,「<y>41</y>」などである。
【００７３】
図４のステップｓ５０８における部品の属性に対する設定値未取得のものとは、例えば、図７のソースコード７１１の例では、フォント種別，フォントサイズ，文字の配置，入力できる桁数などが定義されてないので、これらが設定値未取得のものとなる。これらの設定値未取得のものに対しては、ステップｓ５０９において、図３におけるステップｓ３０で作業領域に読み取った初期値データから、設定値未取得の属性に対応するものが取得される。
【００７４】
次に、図８を用いて、本発明の一実施形態によるＧＵＩ仕様書生成システムによって作成された仕様書の一例について説明する。  
図８は、本発明の一実施形態によるＧＵＩ仕様書生成システムによって作成された仕様書の一例の説明図である。
【００７５】
図８は、図６に示した画面のソースファイルＤ１０を入力として、図３のステップｓ１０からステップｓ８０までを実行した場合に作成されるＧＵＩ詳細仕様書Ｄ４０の例である。
【００７６】
設定できる詳細仕様はＧＵＩ部品によって異なるため、ＧＵＩ部品の種類ごとに表を分割して出力する。ＧＵＩ部品の種類ごとにどの詳細仕様を出力するかは、仕様書テンプレートＤ３０の定義に従う。
【００７７】
図７におけるソースコード７０１，７１１，７１６の解析結果をＧＵＩ部品詳細８０１として出力し、また、ソースコード７２２の解析結果をフォーカス遷移順８０２として出力する。
【００７８】
なお、表示文字列８０３が空欄なのは、前記のとおり図６におけるデータ入力域６０３および６０４に対して予め文字列を表示するよう設定がなかったことと、データ入力域のＧＵＩ部品に対してビジュアル開発ツールが備える初期設定値が「何も表示しない」だったことによる。
【００７９】
また、前記のとおりデータ入力域６０３および６０４のフォント情報の設定と表示文字列はビジュアル開発ツールが備える初期設定値が利用されたため、データ入力域のＧＵＩ部品詳細８０４には、初期値格納テーブルＤ２０から取得した初期値を出力する。
【００８０】
この例では、ラベルのＧＵＩ詳細仕様として、部品名称，ＧＵＩ部品の表示位置Ｘ座標およびＹ座標，表示文字列，フォント種別，フォントサイズ，文字の横方向の配置および縦方向の配置を出力するよう仕様書テンプレートＤ３０で定義されているため、ラベル６０１の部品詳細として、部品名称「label」、ＧＵＩ部品の表示位置Ｘ座標「51」およびＹ座標「41」、表示文字列「開始日：」、フォント種別「Gothic」、フォントサイズ「12」、文字の横方向の配置「右揃え」および縦方向の配置「中央揃え」を出力している。ラベル６０２に対しても同様である。
【００８１】
また、データ入力域のＧＵＩ詳細仕様として、部品名称，ＧＵＩ部品の表示位置Ｘ座標およびＹ座標，表示文字列，フォント種別，フォントサイズ，文字の横方向の配置および縦方向の配置，入力できる桁数を出力するよう仕様書テンプレートＤ３０で定義されているため、図６におけるデータ入力域６０３の部品詳細として、部品名称「lineEdit」、ＧＵＩ部品の表示位置Ｘ座標「121」およびＹ座標「40」、フォント種別「Gothic」、フォントサイズ「9」、文字の横方向の配置「左揃え」および縦方向の配置「中央揃え」、入力できる桁数「32767」を出力している。データ入力域６０４に対しても同様である。
【００８２】
さらに、ボタンのＧＵＩ詳細仕様として、部品名称、ＧＵＩ部品の表示位置Ｘ座標およびＹ座標、表示文字列、フォント種別、フォントサイズを出力するよう仕様書テンプレートＤ３０で定義されているため、図６におけるボタン６０５の部品詳細として、部品名称部品名称「chkButton」、ＧＵＩ部品の表示位置Ｘ座標「270」およびＹ座標「40」、表示文字列「チェック」、フォント種別「Gothic」、フォントサイズ「18」を出力している。
【００８３】
フォーカス遷移順８０２には、図７の説明に述べたＧＵＩ部品間でのＴａｂキー押下時のフォーカス遷移順を出力している。部品名称の行にフォーカス遷移の対象となる部品名称を、順序の行にフォーカス遷移の順序を、それぞれ出力している。
【００８４】
以上説明したように、本実施形態では、未定義の情報については、初期設定値を用いて、画面上の情報の仕様書に出力することができる。したがって、従来の仕様書作成システムに比べ、より詳細な設計情報を保存し、保守や次期ソフトウェアの開発に備えることができる。
【００８５】
また、ソフトウェア設計者は仕様書生成のための特殊な書式を用いることなく自由にＧＵＩを設計することができるため、特殊な書式を習得するための時間が不要になることはもちろん、他ソフトウェアからの移植やビジュアル開発ツールの変更も自由に行なうことができる。
【００８６】
さらに、入出力装置上に表示されているソフトウェアのソースファイルを元に仕様書を生成するため、仕様書と実体の整合性を保証することができる。
【００８７】
次に、図９を用いて、本発明の他の実施形態によるＧＵＩ仕様書生成システムの構成及び動作について説明する。なお、システムの構成は、図１，図２に示したものと同様である。  
図９は、本発明の他の実施形態によるＧＵＩ仕様書生成システムの処理結果の説明図である。
【００８８】
図９は、図６に示した画面のソースファイルＤ１０を入力として、図３のステップｓ３０を除くステップｓ１０からステップｓ２０、およびステップｓ４０からステップｓ８０までを実行した場合のＧＵＩ詳細仕様書Ｄ４０の例を示している。図８の例とは、初期値格納テーブルＤ２０から取得した初期値を出力していない点（出力領域９０１）が異なる。
【００８９】
初期値を出力しない場合の利点は、例えば、ＧＵＩ部品のほとんどを初期設定のまま変更せずに使用したＧＵＩの場合には、全ての初期値情報を出力すると同じデータが大量にあるため変更点を見つけづらいなど、ＧＵＩ詳細仕様書Ｄ４０の可読性が悪くなることがある。
【００９０】
そのような場合に、ステップｓ３０を実行しないことで、図９のように変更点だけを出力し、変更すべき点が変更されたか、またはされなかったかを容易に判読できるＧＵＩ詳細仕様書Ｄ４０を生成することができる。
【００９１】
なお、ステップｓ３０を実行するかしないかは、いずれかに固定ではなく、仕様書指定処理手段１１２に入力域を設けることで、ユーザであるソフトウェア設計者が仕様書生成の都度指定できる。
【００９２】
この実施形態によると、変更点を見つけやすく、ＧＵＩ詳細仕様書の可読性が向上する。
【００９３】
次に、図１０を用いて、本発明のその他の実施形態によるＧＵＩ仕様書生成システムの構成及び動作について説明する。なお、システムの構成は、図１，図２に示したものと同様である。  
図１０は、本発明のその他の実施形態によるＧＵＩ仕様書生成システムの処理結果の説明図である。
【００９４】
図１０は、図６に示した画面のソースファイルＤ１０を入力として、図３のステップｓ１０からステップｓ８０までを実行した場合で、かつ、出力すべき詳細情報の種類をソフトウェア設計者が変更した場合のＧＵＩ詳細仕様書Ｄ４０の出力例を示している。
【００９５】
本実施形態では、仕様書テンプレート記憶領域Ｍ３０を編集することで、詳細情報の種類を変更する。これによって、例えば、使用文字の種別やサイズが全体で統一されている場合などに、それらの出力領域を削除し、代わりに他の特徴的な詳細情報を出力するように仕様書テンプレート記憶領域Ｍ３０を変更することで、用途に適した仕様書を生成することができる。この例では、ラベルおよびデータ入力域のＧＵＩ詳細仕様として、図８および図９に示した「部品名称、ＧＵＩ部品の表示位置Ｘ座標およびＹ座標、表示文字列、フォント種別、フォントサイズ、文字の横方向の配置および縦方向の配置」のうち、「フォント種別、フォントサイズ、文字の横方向の配置および縦方向の配置」を削除し、代わりに、「ツールチップ、フォーカスの有無」を出力対象としている（出力領域１００１，１００２）。また、ボタンのＧＵＩ詳細仕様として図８および図９に示した「部品名称、ＧＵＩ部品の表示位置Ｘ座標およびＹ座標、表示文字列、フォント種別、フォントサイズ」に加え、「ショートカットキー」も出力対象としている（出力領域１００３）。
【００９６】
なお、出力領域１００２における「ツールチップ」とは、ＧＵＩ上において図６におけるデータ入力域６０３の上にマウスポインタが置かれた場合に、説明文として表示する文字列のことである。出力領域１００１では「無し」が設定されているため、図６におけるラベル６０１および６０２の上にマウスポインタが置かれても説明文を何も表示しないことを示している。また、「フォーカスの有無」とは、ＧＵＩ部品が入力可能な状態になりうるか否かを示すものである。出力領域１００１では「無し」が設定されているため、このＧＵＩ部品は入力可能な状態にならない、つまり出力専用であることを示している。
【００９７】
この実施形態によると、用途に適した仕様書を生成することができる。
【図面の簡単な説明】
【００９８】
【図１】本発明の一実施形態によるＧＵＩ仕様書生成システムの全体構成を示すブロック図である。
【図２】本発明の一実施形態によるＧＵＩ仕様書生成システムのハードウェア構成を示すブロック図である。
【図３】本発明の一実施形態によるＧＵＩ仕様書生成システムの処理動作を示すフローチャートである。
【図４】本発明の一実施形態によるＧＵＩ仕様書生成システムの処理の内、図３におけるステップｓ４０の処理動作を示すフローチャートである。
【図５】本発明の一実施形態によるＧＵＩ仕様書生成システムにて用いる初期値格納テーブルの説明図である。
【図６】本発明の一実施形態によるＧＵＩ仕様書生成システムにて処理するＧＵＩの一例の説明図である。
【図７】本発明の一実施形態によるＧＵＩ仕様書生成システムにて処理するソースコードの一例の説明図である。
【図８】本発明の一実施形態によるＧＵＩ仕様書生成システムによって作成された仕様書の一例の説明図である。
【図９】本発明の他の実施形態によるＧＵＩ仕様書生成システムの処理結果の説明図である。
【図１０】本発明のその他の実施形態によるＧＵＩ仕様書生成システムの処理結果の説明図である。
【符号の説明】
【００９９】
１００…ＧＵＩ詳細仕様書生成システム
１１０…ソース解析部
１２０…仕様書生成部
２００…ビジュアル開発ツール
Ｄ１０…ソースファイル
Ｄ２０…初期値格納テーブル
Ｄ３０…仕様書テンプレート
Ｄ４０…ＧＵＩ詳細仕様書
【図１】
2007286822.tif 000003
【図２】
2007286822.tif 000004
【図３】
2007286822.tif 000005
【図４】
2007286822.tif 000006
【図５】
2007286822.tif 000007
【図６】
2007286822.tif 000008
【図７】
2007286822.tif 000009
【図８】
2007286822.tif 000010
【図９】
2007286822.tif 000011
【図１０】
2007286822.tif 000012