(57)【特許請求の範囲】
【請求項１】
コンピュータに、
第一のプログラムが表示装置に表示する画面の遷移を示す第１の遷移情報を生成し、
前記第一のプログラムが実行されるコンピュータが備える複数の表示装置のうちで前記画面が表示される表示装置および表示位置の遷移を状態の遷移に対応付けることによって示す第２の遷移情報を生成し、
前記第１の遷移情報に基づいて遷移する前記画面を、前記第２の遷移情報に基づいて遷移する表示装置および表示位置に表示させることを示す設定情報を生成する、
処理を実行させることを特徴とする設定情報生成プログラム。
【請求項２】
前記設定情報は、
前記画面を識別可能な識別情報と、表示装置および表示位置を識別する識別情報とを関連付けた情報である、
ことを特徴とする請求項１に記載の設定情報生成プログラム。
【請求項３】
前記コンピュータは、
前記第１の遷移情報および前記第２の遷移情報を生成する際に、前記第１の遷移情報および前記第２の遷移情報に含まれる遷移情報に含まれる遷移について、共通のプログラム部品を用いて定義する、
ことを特徴とする請求項１または２に記載の設定情報生成プログラム。
【請求項４】
第一のプログラムが表示装置に表示する画面の遷移を示す第１の遷移情報を生成する第一の生成部と、
前記第一のプログラムが実行されるコンピュータが備える複数の表示装置のうちで前記画面が表示される表示装置および表示位置の遷移を状態の遷移に対応付けることによって示す第２の遷移情報を生成し、前記第１の遷移情報に基づいて遷移する前記画面を、前記第２の遷移情報に基づいて遷移する表示装置および表示位置に表示させることを示す設定情報を生成する第二の生成部と
を有することを特徴とする設定情報生成装置。
【請求項５】
コンピュータが実行する設定情報生成方法であって、
第一のプログラムが表示装置に表示する画面の遷移を示す第１の遷移情報を生成し、
前記第一のプログラムが実行されるコンピュータが備える複数の表示装置のうちで前記画面が表示される表示装置および表示位置の遷移を状態の遷移に対応付けることによって示す第２の遷移情報を生成し、
前記第１の遷移情報に基づいて遷移する前記画面を、前記第２の遷移情報に基づいて遷移する表示装置および表示位置に表示させることを示す設定情報を生成する、
ことを特徴とする設定情報生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面表示制御などに関する設定情報を生成する設定情報生成プログラム、設定情報生成装置および設定情報生成方法に関する。
【背景技術】
【０００２】
Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ（ＵＩ）システムにおいて、画面の表示やＵＩの動きを制御するプログラムなどのソフトウェアの仕様の記述を支援する装置がある。かかる装置では、画面上にボタン、文字、グラフ、絵などのＵＩ部品に関する記述がされる画面仕様、および、表示される画面が変化する様子がフローとして記述される画面遷移仕様の各仕様の記述を支援する。かかる画面遷移仕様の一例としては、アプリケーションごとの所定の機能を実現するための画面の遷移の仕様が記述される。なお、ＵＩの画面では、例えば、画面に表示されたメニューがマウスやキーボード、または、操作者の指などによって選択されると、表示画面が遷移される。
【０００３】
また、画面遷移に伴って、表示部品を取り替えることを行うための画面表示において、変化する画面をいくつかのグループに分け、グループ内で共通して表示される表示部品をまとめて編集する装置がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２４４８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の画面遷移仕様の記述の方法では、次のような問題がある。すなわち、アプリケーションごとの所定の機能を実現するための画面遷移に加えて、さらに、各種の状態の変化に応じて複数の表示装置に表示させる画面の制御を行うプログラムの画面遷移仕様を記述する場合には、内容が煩雑となるという問題がある。これは、画面遷移仕様の記述の際に、所定の機能を実現するための画面遷移において画面が遷移する際のイベントと、状態の変化のイベントとの双方のイベントが考慮され、画面制御に関する条件分岐の数や条件分岐に用いられる条件の数が増大するからである。なお、上述した変化の一例として、上述のプログラムが搭載された装置に対して割り込み処理を必要とする入力が行われた場合や、操作者により使用する機能を切り替える入力が行われた場合などが挙げられる。
【０００６】
図３９および図４０は、従来の画面遷移の仕様の記述の方法を用いて記述された、アプリケーションごとの所定の機能を実現するための画面遷移に加えて、各種の状態の変化に応じて複数の表示装置に表示させる画面の制御を行うプログラムの画面遷移仕様の一例を示す図である。
【０００７】
図３９の例は、１つのアプリケーションの画面を３つの表示装置Ｄ１〜Ｄ３に表示する際の画面遷移仕様を示す。図３９の例の画面遷移仕様では、初期状態として左側の表示装置Ｄ１に初期画面Ａ１が表示される場合が記述されている。また、図３９の例の画面遷移仕様では、ＵＩ機能の遷移として、画面Ａ１から画面Ａ２へと遷移し、画面Ａ２から画面Ａ３へと遷移する場合が記述されている。また、図３９の例の画面遷移仕様では、状態が変化した場合に、表示装置Ｄ１に表示される画面が、画面Ａ１から画面Ａ２に遷移する前に、表示装置Ｄ２や表示装置Ｄ３に画面Ａ１が表示される場合が記述されている。また、図３９の例の画面遷移仕様では、さらに、状態が変化した場合に、表示装置Ｄ１に表示される画面が、画面Ａ２から画面Ａ３に遷移する前に、表示装置Ｄ２や表示装置Ｄ３に画面Ａ２が表示される場合が記述されている。これらの記述に加え、図３９の例の画面遷移仕様では、多数の様々な条件に応じて、多数の画面遷移に関する情報が記述される。そのため、図３９の例の画面遷移仕様に記述される内容は煩雑である。
【０００８】
図４０の例は、２つのアプリケーションＡＰ１，ＡＰ２を３つの表示装置Ｄ１〜Ｄ３に表示する際の画面遷移仕様を示す。図４０の例の画面遷移仕様では、２つのＵＩ機能（ＡＰ１，ＡＰ２）の遷移として、画面Ａ１から画面Ａ２へと遷移し、画面Ａ２から画面Ａ３へと遷移する場合、および、画面Ｂ１から画面Ｂ２へと遷移し、画面Ｂ２から画面Ｂ３へと遷移する場合が記述されている。図４０の例では、２つのＵＩ機能による画面遷移は、それぞれ独立に行われる。図４０の例の画面遷移仕様では、多数の様々な条件に応じて、多数の画面遷移に関する情報が記述される。また、図４０の例の画面遷移仕様では、状態が変化するたびに、アプリケーションＡＰ１の画面を表示させる表示装置と、ＡＰ２の画面を表示させる表示装置とが変化する。そのため、図４０の例の画面遷移仕様に記述される内容も煩雑である。
【０００９】
一つの側面では、本発明は、画面遷移の制御と表示位置の制御とを含む画面制御の制御内容を示す情報の冗長化を抑制することを目的とする。
【課題を解決するための手段】
【００１０】
第一の案では、設定情報生成プログラムは、コンピュータに、第一のプログラムが表示装置に表示する画面の遷移を示す第１の遷移情報を生成する処理を実行させる。また、設定情報生成プログラムは、コンピュータに、第一のプログラムが実行されるコンピュータが備える複数の表示装置のうちで画面が表示される表示装置および表示位置の遷移を状態の遷移に対応付けることによって示す第２の遷移情報を生成する処理を実行させる。また、設定情報生成プログラムは、第１の遷移情報に基づいて遷移する画面を、第２の遷移情報に基づいて遷移する表示装置および表示位置に表示させることを示す設定情報を生成する処理を実行させる。
【発明の効果】
【００１１】
画面遷移の制御と表示位置の制御とを含む画面制御の制御内容を示す情報の冗長化を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例に係る設定情報生成装置の構成を示すブロック図である。
【図２】図２は、画面編集ビューの表示例を示す図である。
【図３】図３は、部品の表示設定ビューの表示例を示す図である。
【図４】図４は、動作定義フォーマット選択ビューの表示例を示す図である。
【図５】図５は、動作定義フォーマット選択ビューの表示例を示す図である。
【図６】図６は、動作定義フォーマット選択ビューの表示例を示す図である。
【図７】図７は、部品属性選択ビューの表示例を示す図である。
【図８】図８は、部品属性選択ビューの表示例を示す図である。
【図９】図９は、部品属性選択ビューの表示例を示す図である。
【図１０】図１０は、リスト表示部品の上スクロール動作を示す図である。
【図１１】図１１は、ＵＩ動作の具体例を示す図である。
【図１２】図１２は、リスト表示部品のデータ構造具体例を示す図である。
【図１３】図１３は、リスト表示部品のデータ構造具体例を示す図である。
【図１４】図１４は、上スクロールを実行する動作定義例を示す図である。
【図１５】図１５は、動作定義フォーマットの例を示す図である。
【図１６Ａ】図１６Ａは、動作定義フォーマットおよびリスト表示部品のデータ構造を示す図である。
【図１６Ｂ】図１６Ｂは、動作定義フォーマットおよびリスト表示部品のデータ構造を示す図である。
【図１７】図１７は、ツリー構造の仕様データの一例を示す図である。
【図１８】図１８は、ツリー構造の仕様データの一例を示す図である。
【図１９】図１９は、属性が定義された表示装置の模式図の一例である。
【図２０】図２０は、定義された複数の表示装置のそれぞれの区画の一例を示す図である。
【図２１】図２１は、状態ごとに定義された、表示装置の各レイヤの区画の一例を示す図である。
【図２２Ａ】図２２Ａは、状態遷移仕様を記述する際に用いられる動作定義フォーマットの一例を示す図である。
【図２２Ｂ】図２２Ｂは、状態遷移仕様を記述する際に用いられる動作定義フォーマットの一例を示す図である。
【図２２Ｃ】図２２Ｃは、状態遷移仕様を記述する際に用いられる動作定義フォーマットの一例を示す図である。
【図２３】図２３は、画面と区画との対応関係の一例を示す図である。
【図２４】図２４は、本実施例に係る設定情報生成装置によって生成された画面遷移仕様、状態遷移仕様および状態ごとの各表示装置の各レイヤに表示される画面を示す情報の一例を示す図である。
【図２５】図２５は、シミュレーション操作画面の一例を示す図である。
【図２６】図２６は、シミュレーション履歴情報の例を示す図である。
【図２７】図２７は、シミュレーション実行処理を説明する図である。
【図２８】図２８は、検証実行画面の例を示す図である。
【図２９】図２９は、ＵＩ操作のメトリクス例を示す図である。
【図３０】図３０は、テスト制限情報の一例を示す図である。
【図３１】図３１は、ソースコードの構成を示す図である。
【図３２】図３２は、実施例に係る設定情報生成装置の第一の仕様生成処理の処理手順を説明するためのフローチャートである。
【図３３】図３３は、実施例に係る設定情報生成装置の機能検証処理の処理手順を説明するためのフローチャートである。
【図３４】図３４は、実施例に係る設定情報生成装置の基準検証処理の処理手順を説明するためのフローチャートである。
【図３５】図３５は、実施例に係る設定情報生成装置の第二の仕様生成処理の処理手順を説明するためのフローチャートである。
【図３６】図３６は、実施例に係る設定情報生成装置のテスト項目出力処理の処理手順を説明するためのフローチャートである。
【図３７】図３７は、実施例に係る設定情報生成装置のソースコード出力処理の処理手順を説明するためのフローチャートである。
【図３８】図３８は、設定情報生成プログラムを実行するコンピュータを示す図である。
【図３９】図３９は、従来の画面遷移の仕様の記述の方法を用いて記述された、アプリケーションごとの所定の機能を実現するための画面遷移に加えて、各種の状態の変化に応じて複数の表示装置に表示させる画面の制御を行うプログラムの画面遷移仕様の一例を示す図である。
【図４０】図４０は、従来の画面遷移の仕様の記述の方法を用いて記述された、アプリケーションごとの所定の機能を実現するための画面遷移に加えて、各種の状態の変化に応じて複数の表示装置に表示させる画面の制御を行うプログラムの画面遷移仕様の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明に係る設定情報生成プログラム、設定情報生成装置および設定情報生成方法の実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１４】
［設定情報生成装置の構成］
図１は、本実施例に係る設定情報生成装置１０の構成を示すブロック図である。図１に示すように、設定情報生成装置１０は、入力部１１、出力部１２、制御部１３、記憶部１４を有する。
【００１５】
入力部１１は、仕様に関する記述などを入力するものであり、キーボードやマウス、マイクなどを有する。また、出力部１２は、後述するように、画面編集ビュー、部品表示設定ビュー、動作定義関係のビューなどを表示するものであり、モニタ（若しくはディスプレイ、タッチパネル）やスピーカを有する。
【００１６】
制御部１３は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、種々の処理を実行し、第一の生成部１３ａ、第二の生成部１３ｂ、第一の検証部１３ｃ、第二の検証部１３ｄ、第三の生成部１３ｅ、第四の生成部１３ｆを有する。
【００１７】
第一の生成部１３ａは、ＵＩの操作画面に表示される部品が動作する条件に関する情報と、部品が動作する処理の内容に関する情報とを所定の形式で記述させる動作定義フォーマットを表示し、動作定義フォーマットを基に部品の仕様に関する記述を受け付ける。具体的には、第一の生成部１３ａは、画面上の部品の配置を編集する画面編集ビューと、画面上のＵＩ部品や様々な機能を操作する機能部品を設定する部品表示設定ビューと、動作定義に関係する動作定義関係のビューとを出力部１２に表示する。また、第一の生成部１３ａは、入力部１１を介して作業者からの操作指示を受け付けて、動作定義フォーマット記憶部１４ａに記憶された動作定義フォーマットの選択や部品の属性の編集を行う。
【００１８】
第一の生成部１３ａが表示する画面編集ビュー、部品表示設定ビュー、動作定義関係のビューについてそれぞれ説明する。図２は、画面編集ビューの表示例を示す図である。図２に示すように、画面編集ビューは、編集する画面についての管理情報を表示する「管理情報表示」と、画面に表示することができるＵＩ部品（通常、システム内のＤＢなどに存在する）の一覧を表示する「部品一覧」と、画面のレイアウトを表示する「画面レイアウト表示」が表示されている。ＵＩ仕様作成者から入力部１１を介して操作指示を受け付け、部品一覧から設定したい部品をドラッグ＆ドロップして画面レイアウトに配置し、画面を生成する。図２の例では、部品一覧表示部からラベル部品とリスト表示部品を取り出し、画面Ａに配置している。
【００１９】
続いて、部品表示設定ビューについて説明する。部品表示設定ビューは、例えば、画面編集ビューの「画面レイアウト表示」において、所定の部品をダブルクリックすることで表示される。図３に示すように、部品表示設定ビューでは、配置したＵＩ部品の属性（形・色・表示条件など）が指定される。図３は、部品の表示設定ビューの表示例を示す図である。
【００２０】
続いて、動作定義関係のビューについて説明する。動作定義関係のビューでは、各ＵＩ部品の動きの設定を受け付ける。ＵＩ部品の動きの設定においては、動作の条件および動作の処理という統一した形式であるＵＩ動作定義として、ユーザからの指示の形態や処理動作・処理を実行するかどうかの条件動作を作成する。その際には、動作条件および処理動作の言語表現が付随された形の動作定義フォーマットを利用する。動作定義関係のビューは、動作定義フォーマット選択ビューと部品属性選択ビューから構成される。まず、動作定義フォーマット選択ビューによって、動作定義を作成するための動作定義フォーマットを作業者が選択する。
【００２１】
ここで、図４〜図６を用いて、動作定義フォーマット選択ビューについて説明する。図４〜６は、動作定義フォーマット選択ビューの表示例を示す図である。まず、第一の生成部１３ａは、ビューの左側のカテゴリウィンドウにおいて動作定義フォーマットのカテゴリから条件動作なのか、処理動作なのか、どのような型のプロパティを操作するのか選択指示を受け付ける。そして、第一の生成部１３ａは、ビューの左側のカテゴリウィンドウから１つのカテゴリがマウスクリックで選択されると、ビューの右側に、選択されたカテゴリに属する動作定義フォーマット一覧を表示する。その中で、第一の生成部１３ａは、動作定義フォーマットの選択を受け付けると、部品属性選択ビューを画面上に表示する。
【００２２】
そして、部品属性選択ビューにおいて、選択した動作定義フォーマット内にセットする部品と、部品の属性として、プロパティ、イベント、メソッドを指定する。図７〜図９は、部品属性選択ビューの表示例を示す図である。例えば、部品属性選択ビューでは、図７〜図９に例示されるように、ビューの左側に現在仕様を考察している画面上に存在する部品一覧が展開される。この中で対象とする部品の選択を受け付けると、その部品に登録されている属性一覧が右側のビューに展開される。右側の画面で属性を選択することによって、部品および属性を指定することができる。なお、図７〜図９の例では、属性名一覧のうち、太字になっているものが選択可能な属性であることを示している。これにより、最終的に動作定義を作成することができる。例えば、図１０に示すように、画面上の動作として表示データが上方向にスクロールされる処理の動作定義を作成する。図１０は、リスト表示部品の上スクロール動作を示す図である。なお、図４〜図１０に示す動作定義フォーマット選択ビューや部品属性選択ビュー、処理の動作定義については、後に詳述する。
【００２３】
ここで、ＵＩ仕様記述の具体的な作成方法を説明する。まず、図１１を用いてＵＩ動作の具体例を説明する。図１１は、ＵＩ動作の具体例を示す図である。以下では、図１１に例示したＵＩ動作の仕様を作成する場合を例にして説明する。図１１では、リスト表示部品を用いて、画面上に地名のリストが表示されている。リスト表示部品は、組み合わせ部品であり、３つのラベル部品の右側に、下方の項目を参照するためのボタン部品（下スクロールキー▽）および上にスクロールさせるボタン部品（上スクロールキー△）が配置されている。
【００２４】
図１１のリスト表示部品の内部データ構造を図１２および図１３に示す。図１２および図１３は、リスト表示部品のデータ構造具体例を示す図である。図１２に例示するように、属性情報として、子部品リスト、３つのラベル部品に表示する文字列データと表示するデータが取得されるリストに関するプロパティを示す情報を保持している。子部品としては、文字列データを表示するためのラベル部品、上下スクロールを指示するためのボタン部品、および３つのラベル部品で表示しているデータがリストのどの位置なのかを示すバーチャート部品からなる。なお、図１３では、バーチャート部品の説明は省略している。
【００２５】
ここで、ユーザが上スクロールのためのボタン部品を押下した際のＵＩ動作仕様を例にして、ＵＩ動作仕様を設定する手順について説明する。ＵＩ動作仕様を設定する手順として、部品の配置を設定し、部品の属性を設定し、部品の動作定義を設定する。具体的には、部品の配置の設定として、画面編集ビューを用いて、ラベル部品・上下スクロール用のボタン部品・バーチャート部品を配置し、位置および大きさを設定する。また、部品の属性の設定として、部品表示設定ビューを用いて、各部品の表示色・大きさ・形状を指定する。例えば、上下スクロール用のボタン部品として、三角形の形状を設定する。
【００２６】
また、部品の動作定義として、発生イベントを設定する場合には、例えば、上スクロールボタンを押下した時に発生するボタン押下イベントを、発生イベントとして設定する。図４に例示するように、動作定義フォーマット選択ビューのカテゴリ表示部（図４の左側）において、イベントのカテゴリの選択を受け付ける。そして、動作定義フォーマット一覧表示部（図４の右側）にイベントのカテゴリに属するフォーマットのリストが表示される（イベントの場合は１種類）ので、表示されたフォーマットが選択される。
【００２７】
フォーマットが選択されると、図７に例示するように、その中に記述されている部品と属性を指定するための部品属性選択ビューが表示される。部品属性選択ビューの左側には、この画面に属する部品のリストが表示されているので、上スクロールボタンが選択される。画面右側に上スクロール部品に属する属性一覧が表示されるので、その中から「ボタン押下イベント」が選択される。ここで、上スクロールボタンの属性には、ボタン表示色やボタン形状などのプロパティも存在するが、フォーマットとしてイベントに関する動作定義フォーマットを既に指定しているので、ここではイベント属性しか表示されない。
【００２８】
また、部品の動作定義として、条件動作を設定する場合について説明する。例えば、条件動作として、リスト表示においてリスト上部のデータを見る時に、現在既に最上位のデータを表示している場合には、上スクロールできない。この条件動作は、リスト表示部品の現表示ポインタが、表示リスト先頭ポインタより大きいかどうかで判断される。このような条件動作を設定するためには、図５に示すように、動作定義フォーマットビューにおいて、カテゴリとして数値比較を選択する。そして、動作定義フォーマット一覧ビューに複数の数値比較フォーマットが表示されるので、部品同士の数値型のプロパティの大小を比較するフォーマットを選択する。
【００２９】
フォーマットが選択されると、図８に示すように、発生イベント設定の場合と同様に、部品と属性を設定するための部品属性選択ビューを表示する。今回は部品が２つ存在するフォーマットが選択されたため、部品属性選択ビューを２度表示する。最初に表示される部品属性選択ビューにおいて、部品一覧からリスト表示部品が選択される。すると、リスト表示部品に含まれる属性が表示される。今回は数値型のプロパティに関するフォーマットを選択したので、”ラベル＃１文字列”といった文字型のプロパティは表示しない。表示されている属性の中から「現表示ポインタ」が選択される。２度目に表示される部品属性選択ビューでは、同様にしてリスト表示部品の「表示リスト先頭ポインタ」プロパティが選択される。以上により、「リスト表示部品の現表示ポインタ（数値型）がリスト表示部品の表示リスト先頭ポインタ（数値型）より大きい時、」という条件を設定する。
【００３０】
また、部品の動作定義として、処理動作を設定する場合について説明する。例えば、図１０に示すように、画面上の動作として表示データが上方向にスクロールされる処理は、以下のようになる。つまり、（１）ラベル＃２部品の地名＃２文字列を、ラベル＃３部品の地名＃３文字列へ代入する。（２）ラベル＃１部品の地名＃１文字列を、ラベル＃２部品の地名＃２文字列へ代入する。（３）現表示ポインタを1だけ減算し、リスト表示部品に表示される文字列のデータであるリストデータから読み込んだ文字列を、ラベル＃１部品の地名＃１文字列へ代入する。
【００３１】
上記した（１）〜（３）の処理を実現するためのツール上での設定内容は、以下のようになる。（１）リスト表示部品の「ラベル＃２表示文字列」プロパティを、リスト表示部品の「ラベル＃３表示文字列」プロパティへ代入する。（２）リスト表示部品の「ラベル＃１表示文字列」プロパティを、リスト表示部品の「ラベル＃２表示文字列」プロパティへ代入する。（３）リスト表示部品の「現表示ポインタ」プロパティを−１する。（４）リスト表示部品のメソッド＃１を実行する。（５）リスト表示部品の「メソッド＃１結果格納」プロパティを、リスト表示部品の「ラベル＃１表示文字列」プロパティに代入する。（６）リスト表示部品の「ラベル＃１表示文字列」プロパティを、ラベル＃１部品の「地名＃１文字列」プロパティへ代入する。（７）リスト表示部品の「ラベル＃２表示文字列」プロパティを、ラベル＃２部品の「地名＃２文字列」プロパティへ代入する。（８）リスト表示部品の「ラベル＃３表示文字列」プロパティを、ラベル＃３部品の「地名＃３文字列」プロパティへ代入する。
【００３２】
以上、（１）〜（８）の処理を、順に動作定義フォーマット選択ビューと部品属性選択ビューを用いて設定する。一例として、（７）の処理動作を設定する操作を図６、図９に示す。図６に示すように、動作定義フォーマット選択ビューにおいて、カテゴリとして文字列セットを選択する。動作定義フォーマット一覧表示ビューに文字列セットに関係する複数のフォーマットが表示されるので、部品同士の文字列型のプロパティを代入するフォーマットを選択する。続いて、図９に示すように、部品属性選択ビューにおいて、フォーマット内で設定する部品1としてリスト表示部品を選択し、プロパティ１として、ラベル＃２表示文字列を選択する。以上により、上記した（７）の処理動作を設定する。
【００３３】
このように設定された上スクロールを実行する動作定義の例を図１４に示す。図１４は、上スクロールを実行する動作定義例を示す図である。図１４に示すように、動作定義として、部品の動作が発生するイベントを示す「起動イベント」、部品の動作の条件を示す「条件動作」、部品の動作内容を示す「処理動作」が設定されている。
【００３４】
例えば、図１４に例示するように、「起動イベント」として、画面上のボタン部品が押下される等の部品の動作が発生することが設定されている。また、「条件動作」として、リスト表示部品の現表示ポインタがリスト表示部品の表示リスト先頭ポインタより大きいことを条件に処理動作を行うことが設定されている。また、「処理動作」として、例えば、「リスト表示部品のラベル＃２表示文字列をリスト表示部品のラベル＃３表示文字列へ代入する」こと等が設定されている。
【００３５】
また、動作定義フォーマットの例を図１５に示す。図１５は、動作定義フォーマットの例を示す図である。図１５に示すように、カテゴリ別に動作定義フォーマットが用意されている。カテゴリとして、条件動作および処理動作がある。また、条件動作のカテゴリとして、イベント、数値比較、文字列比較があり、処理動作のカテゴリとして、数値セット、文字列セット、メソッド実行、画面遷移がある。例えば、設定情報生成装置１０は、条件動作のイベントのカテゴリでは、「部品のイベントが発生した時」の動作定義フォーマットを記憶している。
【００３６】
このように、第一の生成部１３ａは、動作定義フォーマットに従って起動イベント、条件動作および処理動作を記述させ、記述されたデータを仕様データとして仕様データ記憶部１４ｂに記憶させる。ここで、図１６Ａ、図１６Ｂを用いて、動作定義フォーマットに従って起動イベント、条件動作および処理動作を記述させ、記述されたデータを仕様データとして記憶する一連の処理を説明する。図１６Ａ、図１６Ｂは、動作定義フォーマットおよびリスト表示部品のデータ構造を示す図である。
【００３７】
図１６Ａに示すように、ＵＩ部品の動作を条件と処理に分けており、第一の生成部１３ａは、ＵＩ部品の条件の定義として、起動イベントおよび条件動作の仕様定義を記述する。起動イベントは、例えばユーザが画面上の部品を押下することや、機能の実行が終了したことなどが挙げられる。いずれもイベントという形でシステムに通知される。また、条件動作は、起動イベントが起きた時にＵＩ動作が起こる条件を記述する。なお、条件動作が存在せず、起動イベントが発生したら無条件にＵＩ動作が起こる場合もある。また、ＵＩ部品の動作は、処理動作の形式で記述される。処理動作は、画面上の部品の変化や画面遷移の他、あるいはシステム内で動作する機能（アプリケーション）などを指定する。例えば、画面上のボタンを押下した時に、画面上ではなく組込みシステム本体の動作が実行されるといった動きである。
【００３８】
また、第一の生成部１３ａは、上記のようなＵＩ部品の動作や条件について、図１６Ｂに示すような動作定義フォーマットに従って記述を受け付ける。図１６Ｂに示すように、動作定義フォーマットは、起動イベント、条件動作、処理動作を指定するために用意したＵＩ部品および機能部品とそのパラメータの雛型であり、部品およびパラメータを設定する枠と動作を示す言語表現からなる。言語表現を利用することによって、ＵＩ動作のソフト構造を把握していない作業者においても、ＵＩ動作の仕様を作成することができる。
【００３９】
例えば、起動イベントを指定する場合には、「ＵＩ部品／機能部品のイベントが発生した時」という動作定義フォーマットを利用する。このフォーマットにおいて、「ＵＩ部品／機能部品」の部分に起動イベントを設定したい部品を作業者が指示し、イベントの部分にどのイベントを利用したいかを作業者が指定する。
【００４０】
条件動作を指定する動作定義フォーマットは、ＵＩ部品のプロパティがどんな状態かを示す記述であり、プロパティの種類およびその比較の方法によって様々なフォーマットが用意されている。例えば、作業者は、ボタンの色が黒かどうかを判断するなら、「ＵＩ部品／機能部品のプロパティ（整数型）が定数（整数型）と等しいなら」という動作定義フォーマットを利用し、ＵＩ部品／機能部品としてボタン部品を設定し、プロパティ（整数型）として表示色プロパティを設定する。さらに、作業者は、比較を行う整数値を指定する。また、処理動作を設定するフォーマットには、ＵＩ部品のメソッド実行を指定するフォーマットや、「ＵＩ部品／機能部品のプロパティ（整数型）に他のＵＩ部品／機能部品のプロパティ（整数型）を代入する」といったプロパティデータの代入や演算を行うためのフォーマットも存在する。
【００４１】
また、図１６Ｂにおいて、リスト表示部品の例を示す。図１６Ｂに示すように、リスト表示部品は、ＵＩ部品および機能部品と言語表現部から構成される。また、図１６Ｂに示すように、ＵＩ部品のデータ構造には、部品の表示内容や動作を指定するデータとして、表示内容を示すものとして「プロパティ」、動作を指定する情報として「メソッド」および「イベント」がある。プロパティは、部品の各種の属性値や部品が有するデータである。例えば、部品の形状・画面上の位置・通常色・押下した際の色や、部品上に表示する文字列データなどである。各プロパティには、格納するデータの属性や設定する値の範囲を指定する情報が含まれる。メソッドとは、その部品に付随する動作である。例えば、リスト表示部品の現表示ポインタ値を＋１インクリメントする処理などである。イベントは、その部品が発行する各種のイベントを表す。例えば、ボタンが押されたことを通知するボタン押下イベントなどである。
【００４２】
また、部品のデータ構造は、画面上のＵＩ部品からの指示を受けて組込みシステム内で動作する様々な機能を操作する機能部品においても共通である。メソッドとしては、例えばエアコンのオン／オフを指示する動作などが定義される。イベントとしては、メソッドで指定した動作が正常終了した時に発行するイベントなどが定義される。例えば、起動メソッドが実行され、正常に立ち上がった時に発行される起動完了イベントなどである。プロパティとしては、メソッドを呼び出す時のパラメータや動作中の状態を通知するデータなどが設定される。
【００４３】
さらに、ＵＩ部品および機能部品には、図示を省略するが、シミュレータで実行するために一定のインタフェースを備えた実行可能なソフトモジュールと、ソースコードを生成するためのソースコード情報が付随されている。また、ＵＩ部品および機能部品には、ＵＩ動作のソフト構造を把握していないような仕様検討担当者がＵＩ動作仕様を作成する際に利用する言語情報も付随されている。
【００４４】
ここで、図１７および図１８を用いて、動作定義フォーマットに従って入力された仕様データの構成を説明する。図１７および図１８は、ツリー構造の仕様データの一例を示す図である。第一の生成部１３ａは、図１７および図１８に示すように、仕様データをツリー構造のデータに変換する。図１７に示すように、画面Ａをトップのノードとし、部品＃１と組み合わせ部品である部品＃２が下位のノードとして接続されている。また、組み合わせ部品である部品＃２には、子部品＃１〜５が下位のノードとして接続されている。
【００４５】
また、子部品には、条件動作や処理動作が定義されている。例えば、子部品＃１であるラベル＃１は、条件動作として、「子部品＃１のボタン押下イベントが発行されたら、」が定義され、処理動作として、「画面Ｂへ遷移する」が定義されている。このように、画面遷移がある場合には、図１８に例示するように、画面Ａから画面Ｂに遷移するようなツリー構造のデータとする。このように、第一の生成部１３ａは、動作定義フォーマットを用いて、アプリケーションごとの所定の機能を実現するための画面遷移の画面遷移仕様を記述する。すなわち、第一の生成部１３ａは、かかる画面遷移仕様を生成する。
【００４６】
第二の生成部１３ｂは、アプリケーションなどのプログラムの画面表示位置を示す位置情報について、位置情報の遷移処理を示す遷移情報を生成する。具体例について説明する。第二の生成部１３ｂは、まず、画面遷移仕様を設計する人が入力部１１を操作して、制御部１３に入力された、プログラムの画面を表示する複数の表示装置のそれぞれの識別情報、および、表示領域のサイズを受け付ける。そして、第二の生成部１３ｂは、受け付けた複数の表示装置のそれぞれの識別情報およびサイズを対応付けて記憶部１４に格納して、複数の表示装置のそれぞれの属性を定義する。図１９は、属性が定義された表示装置の模式図の一例である。図１９の例では、識別情報が＃１である表示装置のサイズが（ｘ１，ｙ１）である場合を示す。図１９の例では、識別情報が＃２である表示装置のサイズが（ｘ２，ｙ２）である場合を示す。
【００４７】
続いて、第二の生成部１３ｂは、画面遷移仕様を設計する人が入力部１１を操作して、制御部１３に入力された、複数の表示装置のそれぞれの区画を受け付ける。そして、第二の生成部１３ｂは、受け付けた複数の表示装置のそれぞれについて、表示領域の区画を定義する。図２０は、定義された複数の表示装置のそれぞれの区画の一例を示す図である。図２０の例では、識別情報が＃１である表示装置の全表示領域を１つの区画＃１−１とする場合を示す。また、図２０の例では、識別情報が＃１である表示装置の表示領域を左右方向に分けて、２つの区画＃１−２，１−３とする場合を示す。また、図２０の例では、識別情報が＃１である表示装置の表示領域を上下方向に分けて、２つの区画＃１−４，１−５とする場合を示す。また、図２０の例では、識別情報が＃２である表示装置の全表示領域を１つの区画＃２−１とする場合を示す。また、図２０の例では、識別情報が＃２である表示装置の表示領域を上下方向に分けて、２つの区画＃２−２，２−３とする場合を示す。
【００４８】
その後、第二の生成部１３ｂは、画面遷移仕様を設計する人が入力部１１を操作して、制御部１３に入力された、状態ごとの表示装置の各レイヤの区画を受け付ける。そして、第二の生成部１３ｂは、受け付けた状態ごとの表示装置の各レイヤの区画を定義する。図２１は、状態ごとに定義された、表示装置の各レイヤの区画の一例を示す図である。図２１の例では、状態１の場合には、表示装置Ｄ１のレイヤ１に区画＃１−１が対応付けられた場合を示す。また、図２１の例では、状態３の場合には、表示装置Ｄ３のレイヤ１に区画＃３−４，３−５が対応付けられた場合を示す。このようにして、第二の生成部１３ｂは、状態が遷移した場合の各表示装置の各レイヤの区画の遷移を示す情報を生成する。
【００４９】
また、第二の生成部１３ｂは、遷移する画面を、状態が遷移した場合の各表示装置の各レイヤの区画の遷移を示す情報に応じて遷移する各レイヤの区画に表示させることを示す設定情報を生成する。具体例について説明する。まず、第二の生成部１３ｂは、動作定義フォーマットを用いて、状態が変化する様子がフローとして記述される状態遷移仕様を記述する。図２２Ａ、図２２Ｂ、図２２Ｃは、状態遷移仕様を記述する際に用いられる動作定義フォーマットの一例である。第二の生成部１３ｂは、図２２Ａの例が示す動作定義フォーマットを用いた場合には、「ＵＩ機能ａ」の部分に、ユーザから選択されたＵＩ機能、例えばアプリケーションなどのプログラムを設定する。また、第二の生成部１３ｂは、図２２Ａの例が示す動作定義フォーマットを用いた場合には、「画面ｂ」の部分に、ユーザから選択された画面を設定する。また、第二の生成部１３ｂは、図２２Ａの例が示す動作定義フォーマットを用いた場合には、「表示装置ｃ」の部分に、ユーザから選択された表示装置を設定する。また、第二の生成部１３ｂは、図２２Ａの例が示す動作定義フォーマットを用いた場合には、「区画ｄ」の部分に、ユーザから選択された区画を設定する。このようにして、第二の生成部１３ｂは、「選択されたプログラムの選択された画面を、選択された表示装置の選択された区画に表示させる」という状態遷移仕様を記述することができる。また、第二の生成部１３ｂは、図２２Ｂの例が示す動作定義フォーマットを用いた場合には、同様に、「選択された状態が選択された状態に遷移する」という状態遷移仕様を記述することができる。また、第二の生成部１３ｂは、図２２Ｃの例が示す動作定義フォーマットを用いた場合にも、同様に、「選択された部品の選択されたイベントが発生した時、選択された状態が、選択された状態に遷移する」という状態遷移仕様を記述することができる。
【００５０】
その後、第二の生成部１３ｂは、画面遷移仕様を設計する人が入力部１１を操作して、制御部１３に入力された、画面と、画面が表示される区画との対応関係を受け付ける。そして、第二の生成部１３ｂは、受け付けた画面と区画との対応関係を記憶部１４に格納して、画面と区画との対応関係を定義する。図２３は、画面と区画との対応関係の一例を示す図である。図２３の例では、画面ＵＩ−１−１と、区画＃１−１とが対応付けられている。
【００５１】
そして、第二の生成部１３ｂは、画面と区画との対応関係と、上述した各レイヤの区画の遷移を示す情報とから、状態ごとの各表示装置の各レイヤに表示される画面を示す情報を生成する。すなわち、第二の生成部１３ｂは、これらの２つの情報から、区画を介してレイヤとそのレイヤに表示される画面とを対応付ける。これにより、アプリケーションごとの所定の機能を実現するための画面遷移仕様と、各種の状態の変化に応じて複数の表示装置に表示させる画面の制御を行うプログラムの画面遷移仕様とが別々に記述される。したがって、内容が簡易な遷移情報を生成することができる。すなわち、画面遷移の制御と表示位置の制御とを含む画面制御の制御内容を示す情報の冗長化を抑制することができる。
【００５２】
また、画面とレイヤとを直接対応付けるのではなく、区画を介して、画面とレイヤとを対応付けるため、簡易に画面とレイヤとを対応付けることができる。また、共通の部品を用いて、画面遷移仕様および状態遷移仕様を生成することができる。
【００５３】
図２４は、本実施例に係る設定情報生成装置１０によって生成された画面遷移仕様、状態遷移仕様および状態ごとの各表示装置の各レイヤに表示される画面を示す情報の一例を示す図である。図２４の例では、アプリケーションＵＩ−１〜ＵＩ−５の画面遷移仕様と、状態遷移仕様とが別々に記述され、画面遷移仕様および状態遷移仕様の内容が簡易である。また、図２４の例では、アプリケーションＵＩ−１〜ＵＩ−５のそれぞれの画面ＵＩ−１−１・・・が区画を介してレイヤと対応付けられた場合が示されている。図２４の例では、上位のレイヤほど優先的に表示される。
【００５４】
第一の検証部１３ｃは、部品が動作する条件に関する情報と部品が動作する処理の内容に関する情報とに基づいて、ユーザインタフェースの操作画面を表示し、ユーザインタフェースの操作画面に表示される部品の動作の検証を行う。具体的には、第一の検証部１３ｃは、ツリー構造になっている各画面の仕様データに対してトップノードからスキャンし、イベントが設定されている部品を抽出する。そして、第一の検証部１３ｃは、図２５に例示するように、シミュレーション操作画面に、実行中の画面と共にイベントリストを表示する。図２５は、シミュレーション操作画面の一例を示す図である。
【００５５】
シミュレーション操作画面を表示後、シミュレーション操作者は、イベント表示画面に表示されるイベントのリストであるイベントリストを参考に、実行画面内のイベントを発行させてＵＩ動作の検証を行う。このようにして、全イベントに対する動作確認をもれなく行うことができる。そして、第一の検証部１３ｃは、シミュレーション実行画面においてボタン押下などのイベントを発生させることによってシミュレーションの実行を開始すると、各部品へ操作を通知する。各部品には、実行モジュールが付随されており、このモジュールが起動されて条件動作／処理動作が実行される。処理動作の内容によっては、他の部品の動作が指定されている場合があり、その際は別部品の実行モジュールへ通知する。例えば、図２５に例示するように、部品＃６の上スクロール部品を押下した時の処理内容をシミュレーション操作画面で確認できる。
【００５６】
シミュレーションの各動作・操作は、動作定義によって処理されるので、シミュレーションの履歴情報は、実行された動作定義と、その前後における部品のプロパティ値を蓄積することで生成することができる。図２６は、シミュレーション履歴情報の例を示す図である。例えば、図２６の例では、画面Ａにおいて上スクロール部品を押下した時の動作定義と、シミュレーションで設定できる動作定義の実行通過の様子とプロパティ値の変更の様子を示す。なお、ＵＩ動作実行の詳細履歴を抽出しようとすると、設定が複雑になるが、動作定義にブレイクポイントを張るなどして、簡単な設定操作で詳細動作を確認することができるようにしてもよい。
【００５７】
ここで、シミュレーション実行処理について説明する。図２７は、シミュレーション実行処理を説明する図である。ユーザ操作によってＵＩ部品Ａの押下があると（図２７の（１）参照）、部品Ａ起動イベントをシミュレータに通知し、シミュレータの実行可能モジュールが、ＵＩ動作定義の記述に従って動作を実行し、部品Ａ処理結果を出力する（図２７の（２）参照）。また、同様に、ユーザ操作によってＵＩ部品Ｂの押下があると（図２７の（３）参照）、部品Ｂ起動イベントをシミュレータに通知し、シミュレータの実行可能モジュールが、ＵＩ動作定義の記述に従って動作を実行する。
【００５８】
また、第一の検証部１３ｃは、同様に、状態遷移仕様から状態の遷移のシミュレーションを行って検証を行うことができる。
【００５９】
第二の検証部１３ｄは、部品の属性に関する情報を基に、ユーザインタフェースの操作画面を表示し、ユーザインタフェースの操作画面から操作画面の特徴量を抽出し、特徴量が所定の基準を満たしているかを検証する。具体的には、第二の検証部１３ｄは、ＵＩ操作に関する基準達成検証を行う。第二の検証部１３ｄは、画面を操作する上で部品の見易さや誤認識や誤った操作を起こさせないための仕組みとして、画面に関する指標（メトリクス）を記憶している（後述する図２９参照）。ＵＩ操作に関する基準達成検証とは、指標を測定することによって可能な限り定量的にＵＩ操作に関する画面の性質を抽出する手法を利用し、効率的なＵＩ操作を実現する基準をクリアできているか確認する検証である。
【００６０】
第二の検証部１３ｄは、画面表示の際に文字列型、整数型で画面に情報を表示する部品のプロパティに対して、言語表現部の文言を表示できるようにデータ変換する。つまり、仕様データのデータ構造では、言語表現部において、各部品が有するプロパティに対して言語表現・型・制限という情報を付与している。このため、画面表示の際に文字列型・整数型で画面に情報を表示する部品のプロパティに対して、言語表現の文言を表示できるようにデータ変換する。そして、検証実行画面として、部品と共に文言を画面上に表示する。
【００６１】
図２８において、検証実行画面を例示する。図２８は、検証実行画面の例を示す図である。図２８の例では、部品ＩＤ＃１に地名リストが表示され、子部品＃１〜＃３に地名＃１〜＃３文字列がそれぞれ表示される。このように、部品と共にこの文言を画面上に表示することで、どのような情報が画面のどこに表示されるかについて判断し易くすることができる。
【００６２】
その後、第二の検証部１３ｄは、メトリクスを１つ呼び出し、１つのメトリクスについて、全画面または画面同士の関係から特徴量を抽出し、特徴量を蓄積する。その後、第二の検証部１３ｄは、操作基準の検証を全ての指標について行った場合には、特徴量を出力する。図２９において、ＵＩ操作のメトリクスを例示する。図２９は、ＵＩ操作のメトリクス例を示す図である。図２９に例示するように、ＵＩ操作のメトリクスの例として、操作性のメトリクスおよび視認性のメトリクスがある。例えば、操作性のメトリクスとして、目的までの画面遷移数、ボタン種別およびボタン配置が規定されている。また、視認性のメトリクスとして、部品形状の大きさ、表示一貫性、文字の見易さおよび配色が規定されている。
【００６３】
例えば、第二の検証部１３ｄは、言語表現に「地名」という文言が存在するラベル部品を抽出し位置を算出することで、文字の見易さのメトリクスに関する特徴量を自動的に計数することができる。なお、各部品の言語表現は、動作定義によってＵＩ動作を記述する際にも用いられる。この仕組みによって、本ツール以外の環境でもＵＩ仕様を伝えることができる。さらに、仕様検討者（ＵＩ操作のソフト構成の知識を有するソフト開発者以外の担当者）もＵＩ仕様を検討することができる。
【００６４】
第三の生成部１３ｅは、仕様データから制限情報を抽出し、テストケースであるテスト制限情報を生成する。具体例を挙げて説明する。例えば、第三の生成部１３ｅは、全画面上に存在する全ＵＩ部品について、制限情報が付随しているプロパティがあるかチェックし、制限情報が付随しているプロパティが存在する場合には、テストケースであるテスト制限情報を抽出する。ここでテスト制限情報とは、ＵＩ部品内の各プロパティに付与された条件である。例えば、現表示ポインタについては、「表示リスト先頭ポインタ以上、かつ表示リスト最終ポインタ以下の値でなければならない。」という条件や、ラベル＃１〜＃３表示文字列については、「文字数制限あり」の条件がある。
【００６５】
その後、第三の生成部１３ｅは、組み合わせ部品のように子ノードが存在する場合には、子ノードについても、制限情報が付随しているプロパティが存在すればテスト制限情報として抽出する。つまり、ＵＩ部品内の各プロパティには、プロパティ値の属性やプロパティ値の取りうる範囲といった条件が付与されており、第三の生成部１３ｅは、各画面の全ＵＩ部品に対してこれらの条件を抽出し、テストの際の制限情報チェック項目として集計する。
【００６６】
テスト制限情報の例を図３０に示す。図３０は、テスト制限情報の一例を示す図である。図３０の例では、画面Ａのリスト表示部品のプロパティ「現表示ポインタ」の制限内容として、「先頭ポインタ以上＆最終ポインタ以下」が記述されている。このように、テストケースを生成して記憶させておくことで、ＵＩ仕様工程の後段のソフト開発工程において、ソフト開発者がテストケースを参照して参考にすることができる。ソフト開発者が仕様に精通しているとは限らないからである。
【００６７】
第四の生成部１３ｆは、部品が動作する条件に関する情報と、部品が動作する処理の内容に関する情報と、部品の属性に関する情報とを用いて、ソースコードを生成する。具体的には、第四の生成部１３ｆは、全画面上に存在する全ＵＩ部品について、まず画面部品のデザイン関連の仕様情報をプロパティから抽出してコード化する。そして、第四の生成部１３ｆは、ＵＩ部品に動作定義が存在する場合には、動作定義の仕様情報をソースコード変換する。続いて、第四の生成部１３ｆは、組み合わせ部品のように子ノードが存在する場合には、子ノードについても、デザイン関連のコードと動作定義に関するコードを生成し、ソースコード記憶部１４ｄに記憶させる。
【００６８】
このようにして生成されたコードは、図３１に示すような機能を実現するコードとなる。図３１は、ソースコードの構成を示す図である。すなわち、図３１に示すように、各画面の部品構成とデザインを指定する「画面構成を表すコード」と、各画面内に含まれる表示処理と画面間の遷移を表す「画面動作を表すコード」である。これらのソースコードは、画面上に存在する全ての部品について、ＵＩ部品自体の意匠を指定している仕様情報と、ＵＩ部品のＵＩ動作を指定している制御情報からソースコードを生成する。
【００６９】
記憶部１４は、制御部１３による各種処理に必要なデータおよびプログラムを格納しており、動作定義フォーマット記憶部１４ａ、仕様データ記憶部１４ｂ、テストデータ記憶部１４ｃ、ソースコード記憶部１４ｄを有する。
【００７０】
動作定義フォーマット記憶部１４ａは、動作定義フォーマットを記憶する。例えば、動作定義フォーマット記憶部１４ａは、図１５に示すように、カテゴリ別に動作定義フォーマットを記憶している。カテゴリとして、条件動作および処理動作がある。また、条件動作のカテゴリとして、イベント、数値比較、文字列比較があり、処理動作のカテゴリとして、数値セット、文字列セット、メソッド実行、画面遷移がある。例えば、動作定義フォーマット記憶部１４ａは、条件動作のイベントのカテゴリでは、「部品のイベントが発生した時」の動作定義フォーマットを記憶している。
【００７１】
仕様データ記憶部１４ｂは、仕様データを記憶する。例えば、仕様データ記憶部１４ｂは、図１７に示すように、ツリー構造の仕様データを記憶している。図１７の例では、画面Ａをトップのノードとし、部品＃１と組み合わせ部品である部品＃２が下位のノードとして接続されている。また、組み合わせ部品である部品＃２には、子部品＃１〜５が下位のノードとして接続されている。また、仕様データ記憶部１４ｂは、各子部品についての条件動作および処理動作を記憶している。
【００７２】
テストデータ記憶部１４ｃは、第三の生成部１３ｅによって生成されたテストケースであるテスト制限情報を記憶する。例えば、テストデータ記憶部１４ｃは、図３０に示すように、画面Ａのリスト表示部品のプロパティ「現表示ポインタ」の制限内容として、「先頭ポインタ以上＆最終ポインタ以下」を記憶している。
【００７３】
ソースコード記憶部１４ｄは、第四の生成部１３ｆによって生成されたソースコードを記憶する。例えば、ソースコード記憶部１４ｄは、図３１に示すように、画面の部品構成とデザインを指定する「画面構成を表すコード」と、各画面内に含まれる表示処理と画面間の遷移を表す「画面動作を表すコード」とを記憶する。
【００７４】
［設定情報生成装置による処理］
次に、図３２〜図３７を用いて、本実施例に係る設定情報生成装置１０による処理を説明する。図３２は、本実施例に係る設定情報生成装置の第一の仕様生成処理の処理手順を説明するためのフローチャートである。図３３は、本実施例に係る設定情報生成装置の機能検証処理の処理手順を説明するためのフローチャートである。図３４は、本実施例に係る設定情報生成装置の基準検証処理の処理手順を説明するためのフローチャートである。図３５は、本実施例に係る設定情報生成装置の第二の仕様生成処理の処理手順を説明するためのフローチャートである。図３６は、本実施例に係る設定情報生成装置のテスト項目出力処理の処理手順を説明するためのフローチャートである。図３７は、本実施例に係る設定情報生成装置のソースコード出力処理の処理手順を説明するためのフローチャートである。
【００７５】
図３２に示すように、設定情報生成装置１０は、画面に表示されるメニューを構成するために必要なＵＩ部品が選択され、画面上に配置され、大きさ・形・色（通常色、押下色）・表示条件などの設定を受け付ける（ステップＳ１０１）。そして、設定情報生成装置１０は、各々のＵＩ部品に対して、動作定義フォーマットを利用してＵＩ動作定義の起動イベント、条件動作、処理動作を設定する（ステップＳ１０２）。そして、設定情報生成装置１０は、ＵＩ部品・機能部品の動作を全て設定した後、シミュレータによって設定した部品レイアウトやＵＩ部品の動作が要求仕様を満たしているか検証する機能検証処理を実行する（ステップＳ１０３）。
【００７６】
その結果、設定情報生成装置１０は、要求仕様を満たしていない場合には（ステップＳ１０４否定）、ステップＳ１０１に戻って、ＵＩ部品の設定を再度受け付ける。また、設定情報生成装置１０は、要求仕様を満たした場合には（ステップＳ１０４肯定）、各指標について基準を満たしているかを検証する基準検証処理を実行する（ステップＳ１０５）。その結果、設定情報生成装置１０は、基準を満たしていない場合には（ステップＳ１０６否定）、ステップＳ１０１に戻って、ＵＩ部品の設定を再度受け付ける。また、設定情報生成装置１０は、基準を満たした場合には（ステップＳ１０６肯定）、処理を終了する。
【００７７】
次に、図３３を用いて、設定情報生成装置の機能検証処理について説明する。図３３に示すように、設定情報生成装置１０は、仕様データをトップノードからスキャンし、イベントが設定されている部品を抽出する（ステップＳ２０１）。そして、設定情報生成装置１０は、画面または部品が操作されたか判定し（ステップＳ２０２）、画面または部品が操作された場合には（ステップＳ２０２肯定）、ＵＩ部品にＵＩ動作を通知し（ステップＳ２０３）、部品に動作が定義されているか判定する（ステップＳ２０４）。
【００７８】
この結果、設定情報生成装置１０は、部品に動作が定義されていないと判定された場合には（ステップＳ２０４否定）、ステップＳ２０２に戻って、画面または部品が操作されるのを待つ。また、設定情報生成装置１０は、部品に動作が定義されていると判定された場合には（ステップＳ２０４肯定）、ＵＩ部品に付随されている実行可能モジュールを用いて動作を実行し（ステップＳ２０５）、動作および操作の履歴を蓄積する（ステップＳ２０６）。
【００７９】
そして、設定情報生成装置１０は、シミュレーション終了指示があったかを判定し（ステップＳ２０７）、シミュレーション終了指示があった場合には（ステップＳ２０７肯定）、動作および操作の履歴を出力する（ステップＳ２０８）。また、設定情報生成装置１０は、シミュレーション終了指示がない場合には（ステップＳ２０７否定）、ステップＳ２０２に戻って画面または部品が操作されるのを待つ。その後、ユーザは、出力された履歴を分析し、要件が満足されているかどうか確認する。
【００８０】
次に、図３４を用いて、設定情報生成装置の基準検証処理について説明する。図３４に示すように、設定情報生成装置１０は、画面表示の際に文字列型、整数型で画面に情報を表示する部品のプロパティに対して、言語表現部の文言を表示できるようにデータ変換する（ステップＳ３０１）。そして、設定情報生成装置１０は、操作基準の検証を行っていない指標があるか判定し（ステップＳ３０２）、指標がある場合には（ステップＳ３０２肯定）、指標を１つ呼び出し、操作基準の検証を行っていない画面があるか判定する（ステップＳ３０３）。
【００８１】
この結果、操作基準の検証を行っていない画面がある場合には（ステップＳ３０３肯定）、１つの指標について、全画面または画面同士の関係から画面の特徴量を抽出し（ステップＳ３０４）、特徴量を蓄積する（ステップＳ３０５）。また、ステップＳ３０３において、操作基準の検証を行っていない画面がない場合には（ステップＳ３０３否定）、ステップＳ３０２に戻って、操作基準の検証を行っていない指標がまだあるか判定する。この結果、操作基準の検証を行っていない指標がない場合には（ステップＳ３０２否定）、特徴量を出力し（ステップＳ３０６）、処理を終了する。
【００８２】
次に、第二の仕様生成処理について説明する。図３５に示すように、設定情報生成装置１０は、表示装置の属性を定義する（ステップＳ４０１）。また、設定情報生成装置１０は、区画を定義する（ステップＳ４０２）。また、設定情報生成装置１０は、画面遷移仕様を生成する（ステップＳ４０３）。また、設定情報生成装置１０は、状態ごとの表示装置の各レイヤの区画を定義して、状態が遷移した場合の各表示装置の各レイヤの区画の遷移を示す情報を生成する（ステップＳ４０４）。また、設定情報生成装置１０は、状態遷移仕様を生成する（ステップＳ４０５）。また、設定情報生成装置１０は、画面と区画との対応関係を定義する（ステップ４０６）。また、設定情報生成装置１０は、状態ごとの各表示装置の各レイヤに表示される画面を示す情報を生成し（ステップＳ４０７）、処理を終了する。
【００８３】
次に、図３６を用いて、テスト項目出力処理について説明する。図３６に示すように、設定情報生成装置１０は、ＵＩの操作画面として出力される出力対象画面が存在するか判定し（ステップＳ５０１）、存在しない場合には（ステップＳ５０１否定）、処理を終了する。また、設定情報生成装置１０は、出力対象画面が存在する場合には（ステップＳ５０１肯定）、部品ノードが存在するか判定する（ステップＳ５０２）。この結果、設定情報生成装置１０は、部品ノードが存在しないと判定した場合には（ステップＳ５０２否定）、ステップＳ５０１に戻る。また、設定情報生成装置１０は、部品ノードが存在すると判定した場合には（ステップＳ５０２肯定）、制限情報が付随しているプロパティが存在するか判定する（ステップＳ５０３）。この結果、設定情報生成装置１０は、制限情報が付随しているプロパティが存在する場合には（ステップＳ５０３肯定）、テスト制限情報を出力する（ステップＳ５０４）。
【００８４】
その後、設定情報生成装置１０は、子ノードが存在するか判定し（ステップＳ５０５）、子ノードが存在する場合には（ステップＳ５０５肯定）、ステップＳ５０３に戻って、子ノードについても、制限情報が付随しているプロパティが存在すればテスト制限情報として抽出する。また、設定情報生成装置１０は、子ノードが存在しない場合には（ステップＳ５０５否定）、ステップＳ５０１に戻って、テスト項目出力を行っていない出力対象画面が存在するか判定する。ステップＳ５０１において、出力対象画面が存在しないと判定された場合には（ステップＳ５０１否定）、処理を終了する。
【００８５】
次に、図３７を用いて、ソースコード出力処理について説明する。図３７に示すように、設定情報生成装置１０は、出力対象画面が存在するか判定する（ステップＳ６０１）。この結果、設定情報生成装置１０は、出力対象画面が存在する場合には（ステップＳ６０１肯定）、ＵＩ部品ノードが存在するか判定し（ステップＳ６０２）、ＵＩ部品ノードが存在しない場合には（ステップＳ６０２否定）、ステップＳ６０１に戻る。また、設定情報生成装置１０は、ＵＩ部品ノードが存在する場合には（ステップＳ６０２肯定）、画面部品のデザイン関連の仕様データをプロパティから抽出してコード化し、ソースコードを出力する（ステップＳ６０３）。
【００８６】
そして、設定情報生成装置１０は、動作定義が存在するか判定し（ステップＳ６０４）、動作定義が存在する場合には（ステップＳ６０４肯定）、動作定義の仕様情報をソースコード変換してソースコードを出力する（ステップＳ６０５）。その後、設定情報生成装置１０は、子ノードが存在するか判定し（ステップＳ６０６）、子ノードが存在する場合には（ステップＳ６０６肯定）、ステップＳ６０３に戻って、子ノードについても、デザイン関連のコードと動作定義に関するコードを生成する。その後、設定情報生成装置１０は、子ノードが存在しない場合には（ステップＳ６０６否定）、ステップＳ６０１に戻る。設定情報生成装置１０は、ステップＳ６０１において、ソースコード出力を行っていない画面が存在しない場合には（ステップＳ６０１否定）、処理を終了する。
【００８７】
上述してきたように、本実施例に係る設定情報生成装置１０によれば、アプリケーションごとの所定の機能を実現するための画面遷移仕様と、各種の状態の変化に応じて複数の表示装置に表示させる画面の制御を行うプログラムの画面遷移仕様とが別々に記述される。したがって、内容が簡易な遷移情報を生成することができる。すなわち、本実施例に係る設定情報生成装置１０によれば、画面遷移の制御と表示位置の制御とを含む画面制御の制御内容を示す情報の冗長化を抑制することができる。
【００８８】
また、本実施例に係る設定情報生成装置１０によれば、画面とレイヤとを直接対応付けるのではなく、区画を介して、画面とレイヤとを対応付けるため、簡易に画面とレイヤとを対応付けることができる。
【００８９】
また、本実施例に係る設定情報生成装置１０は、ＵＩの操作画面に表示される部品の動作条件に関する情報と、部品の処理動作に関する情報とを所定の形式で記述させるフォーマットを表示し、フォーマットを基に部品の仕様に関する記述を受け付ける。そして、設定情報生成装置１０は、受け付けた部品が動作する条件に関する情報と部品が動作する処理の内容に関する情報とに基づいて、ユーザインタフェースの操作画面を表示し、ユーザインタフェースの操作画面に表示される部品の動作のシミュレーションを行う。このため、仕様作成者が部品の仕様を修正しながらＵＩ部品の検証を行えることができる結果、ＵＩの開発を迅速に行うことが可能である。
【００９０】
また、本実施例に係る設定情報生成装置１０によれば、ユーザインタフェースの操作画面に表示される部品の属性に関する情報を所定の形式で記述させるフォーマットを表示し、フォーマットを基に部品の属性に関する情報を受け付ける。受け付けた部品の属性に関する情報を基に、ユーザインタフェースの操作画面を表示し、ユーザインタフェースの操作画面から操作性および視認性に関する特徴量を抽出し、特徴量を出力する。このため、ＵＩ操作に関する画面の操作性および視認性に関する特徴量を把握し、ＵＩ操作を実現する基準をクリアできているか開発者が検証することができる。この結果、画面を操作する上での見易さや、誤った操作を起こさせないように、ユーザインタフェースの操作画面を作成することが可能である。
【００９１】
また、本実施例に係る設定情報生成装置１０によれば、設定情報生成装置１０は、所定の形式で記述させるフォーマットを表示し、ＵＩの操作画面に表示される部品が動作する条件に関する情報と、部品が動作する処理の内容に関する情報と、部品の属性に関する情報とを受け付ける。そして、部品が動作する条件に関する情報と、部品が動作する処理の内容に関する情報と、部品の属性に関する情報とを用いて、ソースコードを生成する。このため、正常動作を確認した仕様データから直接ソースコードを生成することができる結果、コード化に際して誤りや漏れを少なくすることが可能である。
【００９２】
また、本実施例に係る設定情報生成装置１０によれば、設定情報生成装置１０は、ＵＩの操作画面に表示される部品の属性に関する情報を所定の形式で記述させるフォーマットを表示し、フォーマットを基に前記部品の属性に関する情報とともに、該属性に関する情報に付与される条件情報を受け付ける。そして、受け付けた属性に関する情報に付与され条件情報を抽出し、条件情報を出力する。このため、ＵＩ仕様工程の後段のソフト開発工程において、ソフト開発者が条件情報を参照して参考にすることが可能である。
【００９３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。以下では本発明に含まれる他の形態を説明する。
【００９４】
（１）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第一の生成部１３ａと第二の生成部１３ｂとを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９５】
また、上記の実施例では、複数の表示装置に表示される複数のアプリケーションの画面を制御するソフトウェアの仕様を生成する場合について例示したが、開示の装置はこれに限定されない。たとえば、複数の表示装置に表示される１つのアプリケーションの画面を制御するソフトウェアの仕様を生成することもできる。
【００９６】
［設定情報生成プログラム］
また、上記の実施例で説明した設定情報生成装置の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図３８を用いて、上記の実施例で説明した設定情報生成装置と同様の機能を有する設定情報生成プログラムを実行するコンピュータの一例を説明する。図３８は、設定情報生成プログラムを実行するコンピュータを示す図である。
【００９７】
図３８に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。また、コンピュータ３００は、キーボード３５０、マウス３６０、ディスプレイ３７０を有する。これら３００〜３７０の各部は、バス４００を介して接続される。
【００９８】
ＲＯＭ３２０には、上記の第一の生成部１３ａ、第二の生成部１３ｂ、第一の検証部１３ｃ、第二の検証部１３ｄ、第三の生成部１３ｅ、第四の生成部１３ｆと同様の機能を発揮する設定情報生成プログラム３２０ａが予め記憶される。なお、設定情報生成プログラム３２０ａについては、適宜分離しても良い。例えば、第一の生成部１３ａ、第二の生成部１３ｂと同様の機能を発揮するプログラムと、第二の検証部１３ｄ、第三の生成部１３ｅ、第四の生成部１３ｆと同様の機能を発揮するプログラムとに分離しても良い。
【００９９】
そして、ＣＰＵ３１０が、設定情報生成プログラム３２０ａをＲＯＭ３２０から読み出して実行する。
【０１００】
そして、ＨＤＤ３３０には、動作定義フォーマット、各遷移仕様、テストデータ、ソースコードが設けられる。
【０１０１】
そして、ＣＰＵ３１０は、動作定義フォーマット、各遷移仕様、テストデータ、ソースコードを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納された動作定義フォーマット、各遷移仕様、テストデータ、ソースコードを用いて、設定情報生成プログラムを実行する。なお、ＲＡＭ３４０に格納される各データは、常に全てのデータがＲＡＭ３４０に格納される必要はなく、処理に用いられるデータがＲＡＭ３４０に格納されれば良い。
【０１０２】
なお、上記した設定情報生成プログラムについては、必ずしも最初からＲＯＭ３２０に記憶させておく必要はない。
【０１０３】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。  
【０１０４】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１０５】
１０  設定情報生成装置
１１  入力部
１２  出力部
１３  制御部
１３ａ  第一の生成部
１３ｂ  第二の生成部
１３ｃ  第一の検証部
１３ｄ  第二の検証部
１３ｅ  第三の生成部
１３ｆ  第四の生成部
１４    記憶部
１４ａ  動作定義フォーマット記憶部
１４ｂ  仕様データ記憶部
１４ｃ  テストデータ記憶部
１４ｄ  ソースコード記憶部
【図１】
0005801682.tif 000002
【図２】
0005801682.tif 000003
【図３】
0005801682.tif 000004
【図４】
0005801682.tif 000005
【図５】
0005801682.tif 000006
【図６】
0005801682.tif 000007
【図７】
0005801682.tif 000008
【図８】
0005801682.tif 000009
【図９】
0005801682.tif 000010
【図１０】
0005801682.tif 000011
【図１１】
0005801682.tif 000012
【図１２】
0005801682.tif 000013
【図１３】
0005801682.tif 000014
【図１４】
0005801682.tif 000015
【図１５】
0005801682.tif 000016
【図１６Ａ】
0005801682.tif 000017
【図１６Ｂ】
0005801682.tif 000018
【図１７】
0005801682.tif 000019
【図１８】
0005801682.tif 000020
【図１９】
0005801682.tif 000021
【図２０】
0005801682.tif 000022
【図２１】
0005801682.tif 000023
【図２２Ａ】
0005801682.tif 000024
【図２２Ｂ】
0005801682.tif 000025
【図２２Ｃ】
0005801682.tif 000026
【図２３】
0005801682.tif 000027
【図２４】
0005801682.tif 000028
【図２５】
0005801682.tif 000029
【図２６】
0005801682.tif 000030
【図２７】
0005801682.tif 000031
【図２８】
0005801682.tif 000032
【図２９】
0005801682.tif 000033
【図３０】
0005801682.tif 000034
【図３１】
0005801682.tif 000035
【図３２】
0005801682.tif 000036
【図３３】
0005801682.tif 000037
【図３４】
0005801682.tif 000038
【図３５】
0005801682.tif 000039
【図３６】
0005801682.tif 000040
【図３７】
0005801682.tif 000041
【図３８】
0005801682.tif 000042
【図３９】
0005801682.tif 000043
【図４０】
0005801682.tif 000044