(57)【特許請求の範囲】
【請求項１】
コンピュータに、
画面を示す画面情報と、該画面情報と関係付けられ該画面に含まれる要素の属性を示す要素属性情報と、前記画面に含まれる前記要素が動作する条件に関する動作条件情報と、前記要素が動作する処理の内容に関する動作内容情報と、を取得し、
前記要素属性情報と関係付けられた前記画面情報を、前記動作条件情報と前記動作内容情報とから生成される前記画面間の遷移関係を示す画面遷移情報の一画面を示す情報として出力し、
シミュレーション実行条件の設定において、表示部に、シミュレーション実行対象の前記画面に対応する前記画面情報と関連付けられた前記要素属性情報を、シミュレーション実行条件として選択可能に表示させる
処理を実行させる表示制御プログラム。
【請求項２】
前記コンピュータに、さらに、
前記画面遷移情報、前記画面情報と関係づけられた前記要素情報、該要素の要素属性情報またはソースコードを出力する
処理を実行させる請求項１に記載の表示制御プログラム。
【請求項３】
画面を示す画面情報と、該画面情報と関係付けられ該画面に含まれる要素の属性を示す要素属性情報と、前記画面に含まれる前記要素が動作する条件に関する動作条件情報と、前記要素が動作する処理の内容に関する動作内容情報と、を取得する取得部と、
前記要素属性情報と関係付けられた前記画面情報を、前記動作条件情報と前記動作内容情報とから生成される前記画面間の遷移関係を示す画面遷移情報の一画面を示す情報として出力する第１の出力制御部と、
シミュレーション実行条件の設定において、表示部に、シミュレーション実行対象の前記画面に対応する前記画面情報と関連付けられた前記要素属性情報を、シミュレーション実行条件として選択可能に表示させる第２の出力制御部と、
を備えることを特徴とする表示制御装置。
【請求項４】
前記表示制御装置は、さらに、
前記画面遷移情報、前記画面情報と関係づけられた前記要素情報、該要素の要素属性情報またはソースコードを出力する出力部
を備えることを特徴とする請求項３に記載の表示制御装置。
【請求項５】
コンピュータに、
画面を示す画面情報と、該画面情報と関係付けられ該画面に含まれる要素の属性を示す要素属性情報と、前記要素が動作するために要求される条件に関する情報である動作定義データと、前記要素が動作する処理の内容に関する情報である仕様データと、を取得し、
前記動作定義データに含まれる画面遷移の条件と前記仕様データに含まれる前記画面遷移の条件が満たされた場合に遷移する遷移先画面とに基づいて、標準仕様における前記画面間の遷移関係を示す画面遷移情報であって、属性の違いによる似通った画面への遷移が記述されていない該画面遷移情報を出力し、
シミュレーション実行条件の設定において、表示部に、シミュレーション実行対象の前記画面に対応する前記画面情報と関連付けられた前記要素属性情報を選択可能に表示させる
処理を実行させる表示制御プログラム。
【請求項６】
前記コンピュータに、さらに、
前記仕様データ、前記画面情報と関係づけられた前記要素、該要素の要素属性情報またはソースコードを出力する
処理を実行させる請求項５に記載の表示制御プログラム。
【請求項７】
画面を示す画面情報と、該画面情報と関係付けられ該画面に含まれる要素の属性を示す要素属性情報と、前記要素が動作するために要求される条件に関する情報である動作定義データと、前記要素が動作する処理の内容に関する情報である仕様データと、を取得する取得部と、
前記動作定義データに含まれる画面遷移の条件と前記仕様データに含まれる前記画面遷移の条件が満たされた場合に遷移する遷移先画面とに基づいて、標準仕様における前記画面間の遷移関係を示す画面遷移情報であって、属性の違いによる似通った画面への遷移が記述されていない該画面遷移情報を出力する第１の出力制御部と、
シミュレーション実行条件の設定において、表示部に、シミュレーション実行対象の前記画面に対応する前記画面情報と関連付けられた前記要素属性情報を選択可能に表示させる第２の出力制御部と、
を備えることを特徴とする表示制御装置。
【請求項８】
前記表示制御装置は、さらに、
前記仕様データ、前記画面情報と関係づけられた前記要素、該要素の要素属性情報またはソースコードを出力する出力部
を備えることを特徴とする請求項７に記載の表示制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、画面表示を制御する表示制御プログラム及びその装置に関する。
【背景技術】
【０００２】
コンピュータと利用者の間での情報をやりとりするためのインターフェースとしてユーザインターフェース（以下、ＵＩ（User Interface）という）がある。ＵＩを用いた操作画面では、例えば、画面に表示されたメニューがマウスやキーボード等によって選択されると、表示画面を遷移させ各種アプリケーションが実行される。また、ＵＩを用いた操作画面を開発する際には、操作画面のレイアウトやＵＩ部品の動作などが開発者によって設定される。
【０００３】
このようなＵＩの開発は、開発者がＵＩの操作を決定して仕様を記述する「ＵＩ仕様作成工程」、ソースコードを作成する「開発工程」、生成されたソースコードを用いて実際にＵＩ動作させて操作性の検証を行う「テスト工程」の順に行われる。
【０００４】
具体的には、ＵＩ仕様工程において、開発者が自然言語で自由に画面上の処理内容を記述してＵＩの仕様を作成する。そして、開発工程において、仕様工程で記述された処理内容を開発者が見て、プログラミング言語を用いてソースコードを記述するコーティングを手作業で行ってソースコードを生成する。その後、テスト工程において、生成されたソースコードをオブジェクトコードに変換し、実際にＵＩを動作させてＵＩの操作性を検証する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４４８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＵＩ仕様作成工程では、画面上にボタン、文字、グラフまたは絵などを表示させる領域を示すＵＩ部品を配置する画面仕様と、例えばボタンを押すことによって画面が変化する様子をフローとして記述する遷移仕様（画面遷移仕様）が作成される。
【０００７】
画面仕様・遷移仕様では、ＵＩ機能の処理結果を１つのディスプレイに表示することが想定される。画面仕様としては、様々なＵＩ操作に対応する画面を設計していた。画面遷移仕様としては、どのＵＩ操作を実行した時にどの画面に遷移するかを設計していた。
【０００８】
しかし、画面内の文字表記を複数の言語で表示したり、製品グレードによって表示内容が高度になる等の、製品の提供先や目的別のバリエーション開発を効果的に行う要求が多くなってきている。
【０００９】
そのような要求に応えるべく、標準的な機能・装備（標準仕様）としては提供されず、製品の提供先・用途・製品グレード・動作環境等に応じて利用可能になる機能・装備（オプション）が提供される。
【００１０】
このように様々なオプションに対応する画面仕様及び画面遷移仕様の作成を行う場合、オプションに応じて標準仕様の画面を調整してＵＩを提供することになる。
しかしながら、標準仕様の画面だけでなく、オプションに対応した画面も準備することになり、似たような画面を大量に用意するので、実際のアプリケーション製品における画面遷移仕様の内容が複雑になる。そのため、ＵＩ仕様作成工程で画面遷移仕様を検討する場合、即座に画面遷移仕様の内容を視認し、把握することは難しかった。
【００１１】
そこで、本明細書の一つの側面では、画面遷移仕様において、画面本来の変化による画面遷移とオプション情報とを分離して、画面本来の変化による画面遷移仕様を出力すると共に、オプションによる分岐動作の仕様を担保する技術を提供する。
【課題を解決するための手段】
【００１２】
本実施形態の一側面における表示制御プログラムは、コンピュータに、以下の処理を実行させる。コンピュータは、画面を示す画面情報と、該画面情報と関係付けられ該画面に含まれる要素の属性を示す要素属性情報と、前記画面に含まれる前記要素が動作する条件に関する動作条件情報と、前記要素が動作する処理の内容に関する動作内容情報と、を取得する。コンピュータは、前記要素属性情報に関係付けられた前記画面情報を、前記動作条件情報と前記動作内容情報とから生成される前記画面間の遷移関係を示す画面遷移情報の一画面を示す情報として出力する。コンピュータは、シミュレーション実行条件の設定において、表示部に、シミュレーション実行対象の前記画面に対応する前記画面情報と関連付けられた前記要素属性情報を、シミュレーション実行条件として選択可能に表示させる。
本実施形態の一側面における表示制御プログラムは、コンピュータに、以下の処理を実行させる。コンピュータは、画面を示す画面情報と、画面情報と関係付けられ画面に含まれる要素の属性を示す要素属性情報と、要素が動作するために要求される条件に関する情報である動作定義データと、要素が動作する処理の内容に関する情報である仕様データと、を取得する。コンピュータは、動作定義データに含まれる画面遷移の条件と仕様データに含まれる画面遷移の条件が満たされた場合に遷移する遷移先画面とに基づいて、標準仕様における画面間の遷移関係を示す画面遷移情報であって、属性の違いによる似通った画面への遷移が記述されていない画面遷移情報を出力する。コンピュータは、シミュレーション実行条件の設定において、表示部に、シミュレーション実行対象の画面に対応する画面情報と関連付けられた要素属性情報を選択可能に表示させる。
【発明の効果】
【００１３】
本実施形態の一側面によれば、画面遷移仕様において、画面本来の変化による画面遷移とオプション情報とを分離して、画面本来の変化による画面遷移仕様を出力すると共に、オプションによる分岐動作の仕様を担保することができる。
【図面の簡単な説明】
【００１４】
【図１】ユーザインターフェース（ＵＩ）の画面仕様及び画面遷移仕様を説明するための図である。
【図２】本実施形態における出力制御装置のブロック図を示す。
【図３】本実施形態におけるＵＩ設計支援装置の構成ブロック図を示す。
【図４】本実施形態におけるＵＩ設計支援装置の処理を説明するための図である。
【図５】本実施形態における部品情報に含まれる属性情報のデータ構造を示す。
【図６】本実施形態における画面仕様の設定の一例を説明するための図である。
【図７】本実施形態におけるオプションの種類と、オプションの取り得る値とに関する一覧の一例を示す。
【図８】本実施形態における画面Ａｎに配置される部品Ｐ１，Ｐ２についてのオプションの設定例を示す。
【図９】本実施形態におけるオプションの選択可能な組み合わせの一例を説明するための図である。
【図１０】本実施形態における画面別のオプション選択一覧の一例を示す。
【図１１】本実施形態におけるオプション間の依存関係に基づくオプションの設定について説明するための図である。
【図１２】本実施形態におけるシミュレーションに際して、ベースとなる画面を共通するが、部品のオプションが異なる画面Ａ１と画面Ａ１’との間における、オプションの変更を説明するための図である。
【図１３】本実施形態の一実施例に係るＵＩ設計支援装置の構成を示すブロック図である。
【図１４】本実施形態の一実施例に係る画面編集ビューの表示例を示す図である。
【図１５】本実施形態の一実施例に係る部品の表示設定ビューの表示例を示す図である。
【図１６】本実施形態の一実施例に係る動作定義フォーマット選択ビューの表示例を示す図である。
【図１７】本実施形態の一実施例に係る部品属性選択ビューの表示例を示す図である。
【図１８】本実施形態の一実施例に係る動作定義フォーマットの一例を示す。
【図１９】本実施形態の一実施例に係るツリー構造の仕様データの一例を示す図である。
【図２０】本実施形態の一実施例に係るツリー構造の仕様データの一例を示す図である。
【図２１】本実施形態の一実施例に係るシミュレーション操作画面の一例を示す図である。
【図２２】本実施形態の一実施例に係るシミュレーション実行処理を説明する図である。
【図２３】本実施形態の一実施例に係るソースコードの構成の一例を示す図である。
【図２４】本実施形態の一実施例に係るＵＩアプリの仕様書の一例を示す。
【図２５】本実施形態の一実施例に係るＵＩ設計支援装置の全体の処理フローを示す。
【図２６】Ｓ１４の処理の詳細の一例を示すフローである。
【図２７】Ｓ１８の処理の詳細の一例を示すフローである。
【図２８】Ｓ１９の処理の詳細の一例を示すフローである。
【図２９】本実施形態の一実施例に係るコンピュータのハードウェア環境の構成ブロック図である。
【発明を実施するための形態】
【００１５】
図１は、ユーザインターフェース（ＵＩ）の画面仕様及び画面遷移仕様を説明するための図である。図１（Ａ）は、画面仕様を説明するための図である。画面仕様作成工程では、例えば、画面設計ツール等を用いて、作業者は、標準仕様となる画面Ａ１と、その画面Ａ１にオプションを追加した画面（Ａ１’，Ａ１”，・・・）を画面遷移単位で作成する。
【００１６】
ここで、オプションの種別としては、例えば、表示文言レベルの違い、文字デザインの違い、デザインレベルの違い、部品の違い、入力方式の違い、製品提供先の違い、表示の有無の違い、画面表示の有無の違い等に応じた種類がある。表示文言レベルの違いとは、言語の違い、または意味内容の違いを示す。文字デザインの違いとは、フォントの違い、またはアイコンの違い等を示す。デザインレベルの違いとは、２次元（２Ｄ）／３次元（３Ｄ）描画などの描画アルゴリズムの違いを示す。部品の違いとは、同じ情報を得るのにボタンで指示するか、スライダを利用するか等の違いを示す。入力方式の違いとは、画面内に配置された部品による入力か、画面外に設けたスイッチによる入力か、または音声入力か等の違いを示す。製品提供先の違いとは、提供する国、地域、会社、ユーザ等の違いを示す。表示の有無の違いとは、オプションや実行条件等によって、画面上に配置する部品自体を表示させるか否かの違いを示す。画面表示の有無の違いとは、オプションや実行条件等によって、画面自体を表示させるか否かの違いを示す。
【００１７】
また、作業者は、画面仕様設定画面（不図示）を用いて、ＵＩ部品にイベントが発生した場合に、どのような処理を実行させるか、どの画面に遷移するか等の動作定義情報も作成する。
【００１８】
ここで、画面設計ツールを用いて、ＵＩ部品について、色、サイズ、表示方法等の属性情報を設定することができる。各属性は、さらに複数のオプションから選択することができる。したがって、その開発したＵＩを搭載した製品の製品グレードによって表示内容に変化を付けたい場合には、選択したオプションに応じて、画面の表示内容を調整することができる。
【００１９】
例えば、低いグレードの製品に搭載するＵＩであれば、ボタン部品の表示方法のオプションを「２次元表示」で設定する。これにより、ボタンを平面的に表示させるように画面Ａ１、Ａ２，Ａ３，・・・を設計することができる。また、例えば、高いグレードの製品に搭載するＵＩであれば、ボタン部品の表示方法のオプションを「３次元表示」で設定する。これにより、ボタンを立体的に表示させるように画面Ａ１’、Ａ２’，Ａ３’，・・・を設計することができる。
【００２０】
図１（Ｂ）は、画面遷移仕様を説明するための図である。図１（Ｂ）では、一部のＵＩ部品の表示方式などがオプションによって異なるため、オプションによる変化に応じて、画面の遷移を記述する例を示す。例えば、ボタンの描画方法が“２Ｄ描画”であるか“３Ｄ描画”であるか（表示方式オプション）、入力仕様がマウス入力であるか否か（入力仕様オプション）等に応じて、画面遷移仕様上で、画面遷移を分岐することになる。
【００２１】
なお、表示方式オプションや入力仕様等のＵＩ部品の属性のオプションの違い以外は、画面Ａ１〜Ａ５と、画面Ａ１’〜Ａ５’と、画面Ａ１”〜Ａ５”のＵＩアプリケーション（以下、「ＵＩアプリ」という）のアルゴリズムの遷移は同一であるとする。
【００２２】
画面Ａ１〜Ａ５，画面Ａ１’〜Ａ５’，画面Ａ１”〜Ａ５”の画面遷移の基本的な流れは同じである。しかし、画面に表示される部品の表示態様の違いにより、画面遷移仕様上は、画面Ａ１〜Ａ５，画面Ａ１’〜Ａ５’，画面Ａ１”〜Ａ５”それぞれを記述していた。
【００２３】
このように、基本となる画面遷移の仕様は同じであるが、部品情報の属性及び画面の遷移先画面の違いによる分岐動作に応じて、表示する文言や表示態様が異なる。そのため、画面遷移仕様では、部品情報の属性及び分岐動作に応じて、画面遷移の流れを記述していた。その結果、開発対象のＵＩアプリの本来の画面変化の流れが、画面遷移仕様の上で分かりにくくなっていた。
【００２４】
そこで、本実施形態では、画面遷移仕様において、ＵＩアプリの画面変化と、オプションによる分岐動作を分離させ、本来のＵＩアプリの画面変化を分かりやすくした画面遷移仕様を出力すると共に、オプションによる分岐動作の仕様を担保する技術を提供する。
【００２５】
図２は、本実施形態における出力制御装置のブロック図を示す。出力制御装置１は、取得部２、第１の出力制御部３、第２の出力制御部４を含む。
取得部２は、画面を示す画面情報と、画面情報と関係付けられ画面に含まれる要素の属性を示す要素属性情報と、画面に含まれる要素が動作する条件に関する動作条件情報と、要素が動作する処理の内容に関する動作内容情報と、を取得する。取得部２の一例は、画面設計部１２である。
【００２６】
第１の出力制御部３は、要素属性情報と関係付けられた画面情報を、動作条件情報と動作内容情報とから生成される画面間の遷移関係を示す画面遷移情報の一画面を示す情報として出力する。第１の出力制御部３の一例は、ＵＩ仕様作成部１５である。
【００２７】
第２の出力制御部４は、シミュレーション実行条件の設定において、表示部６に、シミュレーション実行対象の画面に対応する画面情報と関連付けられた要素属性情報を選択可能に表示させる。第２の出力制御部４の一例は、条件設定表示部１３である。
【００２８】
このように構成することにより、画面遷移仕様において、画面本来の変化による画面遷移とオプション情報とを分離して、画面本来の変化による画面遷移仕様を出力すると共に、オプションによる分岐動作の仕様を担保することができる。
【００２９】
前記出力制御装置１は、さらに、出力部５を含む。出力部５は、画面遷移情報、画面情報と関係づけられた要素情報、要素の要素属性情報またはソースコードを出力する。出力部５の一例は、出力制御部１８である。
【００３０】
このように構成することにより、オプションを指定することにより、動作シミュレーションを行って製品配送先や製品グレード別の、ＵＩアプリのアルゴリズムの確認を行った上で、次のことができる。すなわち、出力制御装置１は、配送先、グレード等の各オプションに対応した細かな変更を反映させたＵＩアプリの仕様書あるいはソースコードを生成することができる。
【００３１】
図３は、本実施形態におけるＵＩ設計支援装置の構成ブロック図を示す。ＵＩ設計支援装置１１は、画面設計部１２、条件設定表示部１３、シミュレーション処理部１４、ＵＩ仕様作成部１５、オプション調整部１６、記憶部１７、出力制御部１８を含む。
【００３２】
画面設計部１２は、ＵＩアプリの要求仕様に応じて、作業者が、画面に配置する部品を選択し、その部品に属性及び機能等を設定し、その部品を開発対象画面に配置して、ＵＩアプリの機能を提示する画面を設計する。作業者は、入力部１９を用いて、画面設計部１２に対して、ユーザにＵＩアプリの機能を提示する各画面を設定する。
【００３３】
オプション調整部１６は、画面設計部１２を用いて画面または部品の属性を設定する場合において、その属性に対して、複数のオプションからいずれかのオプションを設定したとき、その選択したオプションに応じて、他の属性に設定可能なオプションを制限する。
【００３４】
記憶部１７は、画面設計部１２で設定された、部品の属性と、その属性に設定されたオプションに関する情報とが関係付けられた部品情報を含む。さらに、記憶部１７は、動作定義データ、仕様データを含む。動作定義データは、画面設計部１２で設定された画面に表示される要素の動作条件（処理条件）、動作内容（処理内容）を定義する情報である。仕様データは、動作定義データに従って起動イベント、条件動作および処理動作を記述した情報である。
【００３５】
条件設定表示部１３は、シミュレーション実行条件を設定する場合、表示部２０に、記憶部１７に記憶した部品の属性のオプションを選択可能に表示させる。
シミュレーション処理部１４は、動作定義データ、部品情報及びシミュレーション実行条件等に基づいて、画面及び部品の機能のシミュレーションを実行（擬似実行）する。シミュレーション処理部１４は、シミュレーション実行の際、条件設定表示部１３で選択したシミュレーション実行条件に基づいて、部品の属性のオプションを変更する。
【００３６】
ＵＩ仕様作成部１５は、部品のオプションと関係付けられた画面情報を、動作条件情報と動作内容情報とから生成される画面間の遷移関係を示す画面遷移情報の一画面を示す情報を生成する。
【００３７】
出力制御部１８は、記憶部１７に記憶された部品情報、動作定義データ、仕様情報等を用いて、ソースコード、ＵＩアプリの画面遷移仕様に関するデータを作成し、表示部２０に出力する。
【００３８】
図４は、本実施形態におけるＵＩ設計支援装置の処理を説明するための図である。画面設計部１２は、表示部２０に画面設計を行う作業用の画面（設計画面）を表示させる。作業者は、画面仕様に応じて、入力部１９を用いて、画面の設計及び画面に配置する部品の設計を行う（Ｓ１）。作業者は、設計画面において、入力部１９を用いて部品を選択し、部品の属性及び動作、発生イベントに伴い実行する処理等を設定する。例えば、作業者は、画面Ａ１に、部品Ｐ１，Ｐ２を配置するとする。
【００３９】
作業者が部品の属性を設定する場合、その属性に対して、複数のオプションからいずれかのオプションを設定したとき、オプション調整部１６により、その選択したオプションに応じて、他の属性に設定可能なオプションが制限されている。そのため、作業者は、部品の属性の設定の際、オプション調整部１６による制限に基づいて、設定可能なオプションを選択して設定することになる（Ｓ１−１）。
【００４０】
すなわち、オプション調整部１６は、オプション同士の依存関係を確認した上でオプションを設定することができる。例えば、グレードに関するオプションが存在する場合に、グレードに応じて設定可能な範囲のオプションが変化するとする。例えば、ＵＩ画面に配置する部品に低いグレードのオプションを設定した場合、オプション調整部１６は、作業者が３Ｄ描画方式のオプションを設定できないようにしてもよい。このように、オプション調整部１６は、オプション同士の依存関係または設定する必要のないオプションなどをチェックする機能を有する。
【００４１】
画面設計部１２は、設計画面に設定された情報を、動作定義データ２１、仕様データ２２、部品情報２３として記憶部１７に登録する（Ｓ２）。動作定義データ２１は、画面設計部１２で設定された画面に表示される部品の動作条件（処理条件）、動作内容（処理内容）を定義する情報である。仕様データ２２は、動作定義データに従って起動イベント、条件動作および処理動作を記述した情報である。部品情報２３は、シミュレーション実行のための情報、仕様書表現のための情報、ソースコード生成のための情報である。
【００４２】
シミュレーションを実行する前には、作業者は、テストの仕様に応じて、入力部１９を用いて、設計画面にシミュレーションの条件を設定する（Ｓ３）。このとき、条件設定表示部１３は、表示部２０に、記憶部１７に記憶した部品の属性のオプションを選択可能に表示させる。作業者は、例えば、部品Ｐ１にオプション１を設定し、部品Ｐ２にオプション５を設定する。また、作業者は、例えば、部品Ｐ１にオプション２を設定し、部品Ｐ２にオプション６を設定する。
【００４３】
シミュレーション処理部１４は、動作定義データ２１、仕様データ２２、部品情報２３、シミュレーションの条件に基づいて、画面及び部品の機能のシミュレーションを実行する（Ｓ４）。シミュレーション処理部１４は、作業者の指示によって画面遷移仕様に則ったＵＩアプリの画面変化をシミュレーションする際に、シミュレーション条件に応じて、各画面に配置する部品のオプションを変更する。
【００４４】
次に、ＵＩ仕様作成部１５は、記憶部１７に記憶された部品情報、動作定義データ、仕様情報を用いて、ＵＩアプリの仕様書データ（画面遷移仕様データ３２、構成部品仕様データ３３、部品属性仕様データ３４）を作成する。出力制御部１８は、表示部２０またはプリンタ等に表示または出力させる。
【００４５】
画面遷移仕様データ３２は、動作定義データ２１、仕様データ２２、部品情報２３に基づくＵＩアプリの機能遷移（アルゴリズム）に沿って、部品を搭載した画面の変化を示す画面遷移の仕様データであり、標準仕様における画面間の遷移関係が記述されている。したがって、オプションの違いによる似通った画面への遷移は、画面遷移仕様データ３２に記述されない。これにより、作業者は、作成された画面遷移データを参照して、ＵＩアプリ機能の本来の画面遷移を確認することができる。
【００４６】
構成部品仕様データ３３は、画面を構成する部品を示す仕様データである。部品属性仕様データ３４は、画面を構成する部品の属性に設定されているオプションの内容を示す。
作業者は、そのＵＩアプリの仕様データ（画面遷移仕様データ３２、構成部品仕様データ３３、部品属性仕様データ３４）を参照して、ＵＩアプリの機能遷移仕様の検討を行うことができる。
【００４７】
図５は、本実施形態における部品情報に含まれる属性情報のデータ構造を示す。属性情報は、その種類の属性で設定可能なバリエーションのオプションと、その設定されたオプションの設定値とを含む。
【００４８】
このように、本実施形態における部品は、設定したオプションの内容を含めた形で情報を記述した構成である。そのため、画面仕様作成工程では、オプションを気にせず同一のＵＩ部品を用いて画面を作成することができる。これにより、オプション毎に似たような画面を作成する必要がない。また、画面遷移仕様作成工程においては、オプション毎に画面遷移を分岐して記述しないため、オプションの違いによって分岐した複雑な遷移仕様を記述する必要がなく、ＵＩアプリの要求仕様に従った画面遷移仕様を作成することができる。また、仕様作成時の検討に際して、シミュレーションの実行の際に、一時的に部品を表示させないといった部品単位の検討を簡単に行うことができる。
【００４９】
なお、製品化する場合には、必要のないオプションが付されている部品オプションを外すことにより、コンパクトな形式の部品を提供することができる。
以下では、図４で説明したＳ１−１処理を、より詳細に説明する。
【００５０】
図６は、本実施形態における画面仕様の設定の一例を説明するための図である。以下では、ボタン部品（部品Ｐ１）及びラベル部品（部品Ｐ２）を含む画面Ａ１の画面設計を例に説明する。
【００５１】
画面設計部１２は、仕様データ２２に基づいて、記憶部１７から部品情報２３を読み出す。画面設計部１２は、仕様データ２２及び部品情報２３に基づいて、そのＵＩアプリ画面を作成し、表示部２０に表示させる。
【００５２】
記憶部１７には、ボタン部品（部品Ｐ１）及びラベル部品（部品Ｐ２）等の部品情報が格納されている。ボタン部品は、例えば、「部品有無」、「表示方式」、「表示文言」等についての属性情報を含む。ボタン部品は、その他にも固有の属性を含むが、本実施形態の例では省略する。
【００５３】
属性「部品有無」は、そのボタン部品を表示させるか否かを示す属性を示す。属性「部品有無」のオプションには、そのボタン部品を表示させることを示す「表示」（オプション名：OpA1-p1-a11）及びそのボタン部品を非表示にする「非表示」（オプション名：OpA1-p1-a12）がある。
【００５４】
属性「方式」（表示方式）は、部品を描画する際の方式を設定する属性を示す。「表示方式」のオプションには、例えば、平面的な描画の２Ｄ描画方式（オプション名：OpA1-p1-a21）と、奥行き感のある３Ｄ描画方式（オプション名：OpA1-p1-a21）がある。
【００５５】
属性「文言」（表示文言）は、言語と、その言語を用いてボタン部品に表示する文言を設定する属性を示す。属性「文言」のオプションには、ボタン部品を押下した時の意味する動作を表す語句として、例えば日本語の場合には、「完了」、中国語の場合には、「好」（“対”あるいは“是”）、英語の場合には、「ＯＫ」を設定する。
【００５６】
このように、属性として、使用する言語と、その言語によるオプションごとに表示する表示文言（表示文言情報２５）を設定する。画面設計部１２で部品の属性「文言」を設定する場合に表示文言情報２５の値は、画面上に表示され、いずれかの表示文言を設定すると、部品情報の属性データとして記憶部１７に記憶される。
【００５７】
図７は、本実施形態におけるオプションの種類と、オプションの取り得る値とに関する一覧の一例を示す。図８は、本実施形態における画面Ａｎに配置される部品Ｐ１，Ｐ２についてのオプションの設定例を示す。
【００５８】
図７において、文言（言語）オプションは、ＵＩアプリが表示する文言の言語に関するオプションである。オプション値としては、米語／英語／日本語・・・のように言語を設定する。オプションの指定により実際に各部品において表示される値は、部品ごとに設定された文言になる。
【００５９】
例えば、図８に示すように、画面Ａｎに部品Ｐ１及び部品Ｐ２が存在し、それぞれ、日本語／英語として“完了”／“ＯＫ”、“はい”／“Ｙｅｓ”が用意されている場合を考える。文言オプションを指定する場合において、日本語を表示させたいときには、作業者は、画面設計部１２を用いて、部品Ｐ１については「OpAn-p1-a31」を選択し、部品Ｐ２については「OpAn-p2-a31」を選択する。
【００６０】
図９は、本実施形態におけるオプションの選択可能な組み合わせの一例を説明するための図である。オプション情報には、システムの状態やＵＩアプリケーションを利用する場合の条件に関する情報（例えば、言語オプション）や、部品の表示を切り替える情報（例えば、描画方式オプション）が考えられる。オプション調整部１６は、ＵＩアプリを利用する条件を設定するオプションに応じて、部品の属性についての設定可能なオプションを制限する。
【００６１】
例えば、言語オプションに関して、配送先に関するオプションの違いによって選択可能な言語に制限をかける場合がある。図９（Ａ）のように、画面設計部１２において、部品Ｐ１の配送先オプションに「北米」が設定された場合には、例えば、文言オプションに、米国・カナダで利用される米語と、メキシコの公用語であるスペイン語とが設定可能になる。このように、文言オプションの設定する際の選択の範囲を制限することにより、誤って他の言語の文言を設定されることを防ぐことができる。なお、オプションの設定において、どのように制限がなされるかについては、後述する。
【００６２】
画面設計部１２において、作業者が製品グレードに関するオプションについて高いグレードである“grade A”を設定する場合を考える。このとき、部品の表示方式として３Ｄ描画方式と２Ｄ描画方式の両者の動作が可能なシステムを作成する場合には、オプション調整部１６は、次の処理を行う。すなわち、オプション調整部１６は、画面設計部１２において、作業者が図９（Ｂ）に示すように、３Ｄ描画方式と２Ｄ描画方式の両者を選択できるように制御する。
【００６３】
一方、例えば、グレードオプションについて、ＵＩアプリを搭載させる機器の性能が低く、３Ｄ描画方式が実行できない仕様である“grade C”が設定された場合には、オプション調整部１６は、表示方式オプションに２Ｄ描画方式のみ選択できるように制御する。
【００６４】
また、入力方式として画面の外のスイッチを操作して、ある部品に入力を行う仕様のシステムを設計する場合には、その部品は、画面に表示する必要がない。この場合、オプション調整部１６は、図９（Ｃ）に示すように、画面設計部１２において、作業者が表示方式や文言等の表示属性を選択できないように制御する。
【００６５】
このように、他のオプションの設定値によって別のオプションの設定が影響を受ける場合に、オプション調整部１６は、画面設計部１２を利用して各部品のオプションを設定する際に、不必要な選択を不可能にさせる制御を行う。
【００６６】
図１０は、本実施形態における画面別のオプション選択一覧の一例を示す。例えば、Ａ１画面の部品について設定できるオプションは、図１０のようになっているとする。図１０において、オプションは、次のルールに沿って、命名されている。例えば、オプション“OpA1-p1-a11”は、画面Ａ1内の部品（part）Ｐ１に存在する属性（attribute）ａ１の１番目のオプションであることを示す。また、オプション“OpA1-s1”は、画面表示／非表示のオプションであり、画面Ａ１内の選択（select）意味をすることに由来する。
【００６７】
図９に示したように、画面設計部１２において、画面に配置する部品の属性「入力方式」として「画面外スイッチ」が選択された場合には、部品Ｐ１を表示させなくてもよい。そこで、オプション調整部１６は、部品有無オプションとして「OpA1-p1-a11（非表示）」のみ設定できるように制御する。
【００６８】
同様に、画面設計部１２において、画面に配置する部品の「グレードオプション」として“gradeC”が選択された場合、オプション調整部１６は、部品Ｐ２の方式オプションにおいて、OpA1-p2-a21（２Ｄ表示）のみ設定することができるように制御する。
【００６９】
なお、オプション間の依存関係は、設計するＵＩアプリの仕様やシステムに関する設計条件から抽出されて設定される。
例えば、部品Ｐ１（ボタン部品）及び部品Ｐ２（ラベル部品）からなる画面Ａ１に設定される部品Ｐ１及び部品Ｐ２のオプションは、図１０のようになる。図１０では、Ａ２画面以降のオプションについては省略した。
【００７０】
まず、画面設計部１２を用いて、作業者は、画面非表示／表示を設定するオプションとして、「OpA1-s1」あるいは「OpA1-s2」を指定できる。「OpA1-s1」が指定されると、オプション調整部１６は、Ａ1画面を表示しない。
【００７１】
また、画面設計部１２を用いて、作業者は、部品Ｐ１について、部品非表示／表示を設定するオプションとして「OpA1-p1-a11」／「OpA1-p1-a12」のどちらかを指定することができる。「OpA1-p1-a11」が指定されると、オプション調整部１６は、部品Ｐ１を表示しない。
【００７２】
「OpA1-p1-a12」が指定されると、オプション調整部１６は、部品Ｐ１を表示させるように制御する。このとき、画面設計部１２を用いて、作業者は、表示方式として、「OpA1-p1-a21」／「OpA1-p1-a22」のどちらかを指定することができる。
【００７３】
「OpA1-p1-a21」が指定された場合、その部品は、平面的な２Ｄ描画方式により描画される。「OpA1-p1-a22」が指定された場合、その部品は奥行き感のある３Ｄ描画方式で描画することを指定する。画面設計部１２を用いて、作業者は、表示する文言については、３つ（OpA1-p1-a31／OpA1-p1-a32／OpA1-p1-a33）のオプションのいずれかを指定することができる。「OpA1-p1-a31」が指定された場合は、オプション調整部１６は、“ＯＫ”をその部品に表示させる。「OpA1-p1-a32」が指定された場合には、オプション調整部１６は、“完了”を表示させる。
【００７４】
部品Ｐ２についても同様に、画面設計部１２を用いて、作業者は、部品非表示／表示を設定するオプションとして「OpA1-p2-a11」／「OpA1-p2-a12」のどちらかを指定することができる。ここで、部品Ｐ１の非表示／表示を設定するオプション値とは別の値が設定されることで、部品Ｐ１と部品Ｐ２の表示の有無を独立して制御することができる。
【００７５】
図１１は、本実施形態におけるオプション間の依存関係に基づくオプションの設定について説明するための図である。図１１を用いて、あるオプションの設定値によって、別のオプションの設定値が制限される場合について説明する。例えば、画面設計部１２は、画面上に図１１を表示させ、作業者が各オプション値を、マウスを用いてクリックするなどして設定するようにしてもよい。
【００７６】
例えば、Ａ1画面の部品Ｐ１について、「入力方式」オプションとして「画面外スイッチ」が設定された場合、図９（Ｃ）に示したように、実行時（シミュレーション時も含む）において、Ａ1画面の部品Ｐ１は非表示になる。したがって、部品Ｐ１のその他の属性についての指定は不要になる。
【００７７】
同様に、Ａ1画面の部品Ｐ２について、「グレード」オプションとして“gradeC”が設定された場合、図９（Ｂ）に示したように、実行時（シミュレーション時も含む）において、部品Ｐ２の表示は２Ｄ方式で行う。したがって、部品Ｐ２の方式オプションについての設定は、不要となる。
【００７８】
各オプションの設定方法は、図９に示したように、画面あるいは部品ごとにオプションの選択値一覧が表示され、その中からオプションが指定されるようにしてもよい。
図９に示すように、予め設定されたオプション同士の依存関係がある場合、オプション調整部１６は、作業者により指定されたオプションに応じて、設定する必要のないオプションを検知する。それから、オプション調整部１６は、その検知したオプションを設定できないようにする（図１１では、消し線表示させて表現した。）。
【００７９】
次に、図４で説明したＳ３処理を、より詳細に説明する。
図１２は、本実施形態におけるシミュレーションに際して、ベースとなる画面を共通するが、部品のオプションが異なる画面Ａ１と画面Ａ１’との間における、オプションの変更を説明するための図である。シミュレーションを実行する前には、作業者は、シミュレーション条件に応じて、オプションの設定を行う。
【００８０】
例えば、画面Ａ１についてシミュレーションを実行する場合を考える。事前に、部品Ｐ１の属性「表示の有無」について、「OpA1-p1-a11（非表示）」が設定される。部品Ｐ１の属性「表示方式」について「OpA1-p1-a21（２Ｄ）」が設定される。部品Ｐ１の属性「文言」について、OpA1-p1-a31（完了）」が設定される。部品Ｐ２の属性「表示の有無」について「OpA1-p2-a12（表示）」が設定される。この場合、シミュレーションを実行すると、実行された画面Ａ１上において、部品Ｐ１は非表示になり、その表示方式は２Ｄ描画方式となり、文言として「完了」が表示される。また、この場合、部品Ｐ２は、表示される。
【００８１】
画面Ａ１’についてシミュレーションを実行する場合を考える。事前に、部品Ｐ１の属性「表示の有無」について、「OpA1-p1-a12（表示）」が設定される。部品Ｐ１の属性「表示方式」について「OpA1-p1-a22（３Ｄ）」が設定される。部品Ｐ１の属性「文言」について、「OpA1-p1-a33（OK）」が設定される。部品Ｐ２の属性「表示の有無」について、「OpA1-p2-a11（非表示）」が設定される。この場合、シミュレーションを実行すると、部品Ｐ１は表示され、その表示方式は３Ｄ描画方式であり、文言として「ＯＫ」が表示される。また、この場合、部品Ｐ２は、非表示になる。
【００８２】
このように、シミュレーション対象の画面の各部品のオプションをそれぞれ独立して変更することができる。このように、シミュレーションする際に、その条件に応じて、複数のオプションを様々に変更した上でシミュレーションすることができる。
【００８３】
次に、本実施形態におけるＵＩ設計支援装置の一実施例について説明する。
図１３は、本実施形態の一実施例に係るＵＩ設計支援装置の構成を示すブロック図である。実際のＵＩアプリの仕様設計では、作業者は、ＵＩアプリの処理の流れを遷移仕様に表現し、その中でどんな画面が必要かを設計する。その後、作業者は、オプション付きの表示部品を用いて画面の構成を具体的に設計していく。その際に、新たな部品が必要になった場合には、作業者は、部品開発を行う。ここで、部品とは、仕様を確認できる部品である。ターゲットマシンでの動作モジュールや意匠データは準備しなくてもよい。
【００８４】
一連の画面の準備ができた段階で、作業者は、ＵＩ設計支援装置５１を用いて、例えば、オプションを考慮しない標準仕様の画面を動作させてＵＩ動作が要求仕様通りか検証する。その後、作業者は、様々なオプションに対して動作確認を行った後、ＵＩ設計支援装置５１を用いて、オプション別の仕様書や、オプション別のターゲットマシンで実行するためのソースコードを生成する。
【００８５】
オプション別のソースコード生成では、ＵＩ設計支援装置５１は、各表示部品において、不要なオプションの動作に対して用意されているコードを展開しなくてもよい。
ＵＩ設計支援装置５１は、入力装置７０、表示装置７１と接続されている。ＵＩ設計支援装置５１は、制御部５２、記憶部６０を含む。
【００８６】
入力装置７０は、仕様に関する記述などを入力するものであり、キーボードやマウス、マイクなどである。また、表示装置７１は、後述するように、画面編集ビュー、部品表示設定ビュー、動作定義関係のビューなどを表示するものであり、モニタ（若しくはディスプレイ、タッチパネル）である。
【００８７】
制御部５２は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを含み、種々の処理を実行する。制御部５２は、画面設計部５３、オプション調整部５４、条件設定表示部５５、シミュレーション処理部５６、ソースコード生成部５８、ＵＩ仕様作成部５７を含む。
【００８８】
画面設計部５３は、ＵＩの操作画面に表示される部品が動作する条件に関する情報と、部品が動作する処理の内容に関する情報と、を所定の形式で記述させる動作定義フォーマットを表示し、動作定義フォーマット６１を基に部品の仕様に関する記述を取得する。具体的には、画面設計部５３は、画面上の部品の配置を編集する画面編集ビューと、画面上のＵＩ部品や様々な機能を操作する機能部品を設定する部品表示設定ビューと、動作定義に関係する動作定義関係のビューとを表示装置７１に表示する。また、画面設計部５３は、入力装置７０を介して作業者からの操作指示を取得し、記憶部６０に記憶された動作定義フォーマット６１の選択や部品の属性の編集を行う。
【００８９】
画面設計部１２により表示された画面またはその画面に配置する部品の属性の設定に際して、その属性に複数のオプションからいずれかのオプションを設定したとき、オプション調整部５４は、次の処理を行う。すなわち、オプション調整部５４は、その選択したオプションに応じて、他の属性に設定可能なオプションを制限する。
【００９０】
条件設定表示部１３は、シミュレーション実行条件を設定する場合、表示装置７１に、記憶部１７に記憶した部品の属性のオプションを選択可能に表示させる。例えば、条件設定表示部１３は、画面設計部５３で設定したオプション情報を選択可能な一覧形式で表示させている。これにより、作業者は、シミュレーション実行条件に応じたオプションを、その一覧から選択することができる。
【００９１】
シミュレーション処理部５６は、部品が動作する条件に関する情報と部品が動作する処理の内容に関する情報と、条件設定表示部１３により表示されたオプションから作業者が選択したオプション情報とに基づいて、ユーザインターフェースの操作画面を表示する。これにより、作業者は、ユーザインターフェースの操作画面に表示される部品の動作の検証を行うことができる。
【００９２】
ＵＩ仕様作成部５７は、記憶部６０に記憶された部品情報、動作定義フォーマット、仕様データを用いて、画面遷移仕様データ６４、構成部品仕様データ６５、部品属性仕様データ６６を作成する。
【００９３】
ソースコード生成部５８は、部品が動作する条件に関する情報と、部品が動作する処理の内容に関する情報と、部品の属性に関する情報とを用いて、ソースコード６３を生成する。
【００９４】
記憶部６０は、制御部５２による各種処理に必要なデータおよびプログラムを格納している。また、記憶部６０は、画面データ６７、部品データ６８、動作定義フォーマット６１、仕様データ６２、ソースコード６３、画面遷移仕様データ６４、画面部品仕様データ６５、部品属性仕様データ６６を記憶する。
【００９５】
画面データ６７は、画面のサイズ、色、形状等の画面自体の属性を含むデータである。部品データは、図５で説明した部品の属性に関するデータを含むデータである。
動作定義フォーマット６１は、カテゴリ別に存在する。カテゴリとして、条件動作および処理動作がある。また、条件動作のカテゴリとして、イベント、数値比較、文字列比較があり、処理動作のカテゴリとして、数値セット、文字列セット、メソッド実行、画面遷移がある。仕様データ６２は、例えば、後述するツリー構造の仕様データである。
【００９６】
ソースコード６３は、ソースコード生成部５８によって生成されたソースコードである。
ここで、以下に図を用いて、画面設計部５３が表示する画面編集ビュー、部品表示設定ビュー、動作定義関係のビューについてそれぞれ説明する。
【００９７】
図１４は、本実施形態の一実施例に係る画面編集ビューの表示例を示す図である。画面編集ビュー８０は、「管理情報表示」８１、「部品一覧」８２、「画面レイアウト表示」８６を表示する。「管理情報表示」８１は、編集する画面についての管理情報を表示する。
【００９８】
「部品一覧」８２は、画面に表示することができるＵＩ部品（例えば、システム内のデータベースなどに存在する）の一覧を表示する。図１４には、ＵＩ部品の一例として、ラベル部品８３、リスト表示部品８４、ボタン部品８５が部品一覧８２に表示されている。
【００９９】
「画面レイアウト表示」８６は、画面のレイアウトを表示する。ＵＩ仕様作成者から入力装置７０を介して操作指示を受け付け、部品一覧８２から設定したい部品をドラッグ＆ドロップして画面レイアウト８６に配置し、画面を生成する。図１４の例では、部品一覧８２からラベル部品８３とリスト表示部品８４が取り出され、ラベル部品８３とリスト表示部品８４が、画面レイアウト表示８６に表示された画面Ａに配置されている。
【０１００】
図１５は、本実施形態の一実施例に係る部品の表示設定ビューの表示例を示す図である。部品表示設定ビュー９０は、例えば、画面編集ビューの「画面レイアウト表示」８６において、所定の部品をダブルクリックすることで表示される。部品表示設定ビュー９０では、配置したＵＩ部品の属性（形・色・表示条件など）が指定される。
【０１０１】
続いて、動作定義関係のビューについて説明する。動作定義関係のビューでは、各ＵＩ部品の動きの設定を受け付ける。ＵＩ部品の動きの設定においては、動作の条件および動作の処理という統一した形式であるＵＩ動作定義データとして、ユーザからの指示の形態や処理動作・処理を実行するかどうかの条件動作データが作成される。その際には、動作条件および処理動作の言語表現が付随された形の動作定義フォーマットが利用される。動作定義関係のビューは、動作定義フォーマット選択ビューと部品属性選択ビューから構成される。まず、動作定義フォーマット選択ビューによって、動作定義データを作成するための動作定義フォーマット６１を作業者が選択する。
【０１０２】
図１６は、本実施形態の一実施例に係る動作定義フォーマット選択ビューの表示例を示す図である。まず、画面設計部５３は、動作定義フォーマット選択ビュー１００の左側のカテゴリウィンドウにおいて動作定義フォーマット６１のカテゴリから、条件動作なのか、処理動作なのか、どのような型のプロパティを操作するのか選択指示を受け付ける。そして、動作定義フォーマット選択ビュー１００の左側のカテゴリウィンドウから１つのカテゴリがマウスクリックで選択される。すると、画面設計部５３は、動作定義フォーマット選択ビュー１００の右側に、選択したカテゴリに属する動作定義フォーマット一覧を表示する。その中で、画面設計部５３は、動作定義フォーマット６１の選択を受け付けると、部品属性選択ビューを画面上に表示する。
【０１０３】
図１７は、本実施形態の一実施例に係る部品属性選択ビューの表示例を示す図である。部品属性選択ビュー１１０において、選択した動作定義フォーマット６１内にセットする部品と、部品の属性として、プロパティ、イベント、メソッドを指定する。例えば、部品属性選択ビュー１１０では、ビューの左側に現在仕様を考察している画面上に存在する部品一覧１１１が展開される。この中で対象とする部品の選択が受け付けられると、その部品に登録されている属性一覧１１２が右側のビューに展開される。属性一覧１１２で属性を選択することによって、部品および属性を指定することができる。これにより、最終的に動作定義データを作成することができる。
【０１０４】
図１８は、本実施形態の一実施例に係る動作定義フォーマットの一例を示す。動作定義フォーマット６１は、カテゴリ別に用意されている。カテゴリとして、「条件動作」および「処理動作」がある。「条件動作」は、部品の動作の条件を示す。「処理動作」は、部品の動作内容を示す。
【０１０５】
条件動作のカテゴリとして、イベント、数値比較、文字列比較がある。処理動作のカテゴリとして、数値セット、文字列セット、メソッド実行、画面遷移がある。例えば、ＵＩ設計支援装置５１は、条件動作のイベントのカテゴリでは、「部品のイベントが発生した時」の動作定義フォーマットを記憶している。
【０１０６】
このように、画面設計部５３は、動作定義フォーマット６１に従って起動イベント、条件動作および処理動作を記述させ、記述されたデータを仕様データ６２として記憶部６０に記憶させる。
【０１０７】
図１９及び図２０は、本実施形態の一実施例に係るツリー構造の仕様データの一例を示す図である。画面設計部５３は、図１９及び図２０に示すように、仕様データ６２をツリー構造のデータに変換する。図１９では、画面Ａがトップのノードであり、部品＃１と組み合わせ部品である部品＃２が下位のノードとして画面Ａと接続されている。また、組み合わせ部品である部品＃２には、子部品＃１〜５が下位のノードとして接続されている。
【０１０８】
また、子部品には、条件動作や処理動作が定義されている。例えば、子部品＃１であるラベル＃１は、条件動作として、「子部品＃１のボタン押下イベントが発行されたら、」が定義され、処理動作として、「画面Ｂへ遷移する」が定義されている。このように、画面遷移がある場合には、図２０に例示するように、画面Ａから画面Ｂに遷移するようなツリー構造のデータが作成される。
【０１０９】
シミュレーション処理部５６は、シミュレーション実行条件の一つとして作業者により設定されたオプションと、部品が動作する条件に関する情報と部品が動作する処理の内容に関する情報とに基づいて、ＵＩの操作画面を表示する。作業者は、ＵＩの操作画面に表示される部品の動作の検証を行う。具体的には、シミュレーション処理部５６は、設定されたオプション情報をシミュレーション操作画面に反映させる。シミュレーション処理部５６は、ツリー構造になっている各画面の仕様データ６２に対してトップノードからスキャンし、イベントが設定されている部品を抽出する。そして、シミュレーション処理部５６は、図２１に例示するように、シミュレーション操作画面に、実行中の画面と共にイベントリストを表示する。
【０１１０】
図２１は、本実施形態の一実施例に係るシミュレーション操作画面の一例を示す図である。シミュレーション操作画面を表示後、作業者は、イベント表示画面に表示されるイベントのリストであるイベントリストを参考に、実行画面内のイベントを発行させてＵＩ動作の検証を行う。このようにして、全イベントに対する動作確認を漏れなく行うことができる。そして、シミュレーション処理部５６は、シミュレーション実行画面においてボタン押下などのイベントを発生させることによってシミュレーションの実行を開始すると、各部品へ操作を通知する。各部品には、実行モジュールが付随されており、このモジュールが起動されて条件動作／処理動作が実行される。処理動作の内容によっては、他の部品の動作が指定されている場合がある。その際は、シミュレーション処理部５６は、別部品の実行モジュールへ通知する。例えば、図２１に例示するように、部品＃６の上スクロール部品を押下した時の処理内容をシミュレーション操作画面で確認できる。以下で、図２２を用いて、シミュレーション実行処理について説明する。
【０１１１】
図２２は、本実施形態の一実施例に係るシミュレーション実行処理を説明する図である。作業者の操作によってＵＩ部品Ａの押下があると（図２２の（１）参照）、部品Ａ起動イベントがシミュレータに通知される。そして、シミュレータの実行可能モジュールが、ＵＩ動作定義データの記述に従って動作を実行し、部品Ａ処理結果を出力する（図２２の（２）参照）。また、同様に、ユーザ操作によってＵＩ部品Ｂの押下があると（図２２の（３）参照）、部品Ｂ起動イベントがシミュレータに通知される。そして、シミュレータの実行可能モジュールが、ＵＩ動作定義データの記述に従って動作を実行する。
【０１１２】
次に、ソースコードの生成について説明する。ソースコード生成部５８は、部品が動作する条件に関する情報と、部品が動作する処理の内容に関する情報と、部品の属性に関する情報とを用いて、ソースコードを生成する。具体的には、ソースコード生成部５８は、全画面上に存在する全ＵＩ部品について、まず画面部品のデザイン関連の仕様情報をプロパティから抽出してコード化する。そして、ソースコード生成部５８は、ＵＩ部品に動作定義データが存在する場合には、動作定義の仕様情報をソースコード変換する。続いて、ソースコード生成部５８は、組み合わせ部品のように子ノードが存在する場合には、子ノードについても、デザイン関連のコードと動作定義に関するソースコード６３を生成する。ソースコード生成部５８は、その生成したソースコードを記憶部６０に記憶する。生成されたソースコード６３は、図２３に示すような機能を実現するコードとなる。
【０１１３】
図２３は、本実施形態の一実施例に係るソースコードの構成の一例を示す図である。ソースコード６３は、各画面の部品構成とデザインを指定する「画面構成を表すコード」と、各画面内に含まれる表示処理と画面間の遷移を表す「画面動作を表すコード」を含む。ソースコード生成部５８は、画面上に存在する全ての部品について、ＵＩ部品自体の意匠を指定している仕様情報と、ＵＩ部品のＵＩ動作を指定している制御情報からソースコード６３を生成する。
【０１１４】
図２４は、本実施形態の一実施例に係るＵＩアプリの仕様書の一例を示す。ＵＩ仕様作成部５７は、記憶部６０に記憶された部品データ６８、仕様データ６２を用いて、ＵＩアプリの仕様書（画面遷移仕様データ６４、構成部品仕様データ６５、部品属性仕様データ６６）を作成し、表示装置７１またはプリンタ等の出力装置に出力する。
【０１１５】
画面遷移仕様データ６４は、図２０の仕様データに基づいて作成される画面遷移の仕様であり、オプションに依存しない基本となる画面変化の仕様による画面遷移が記述されている。したがって、オプションの違いによる似通った画面への遷移は、画面遷移仕様データ６４に記述されない。これにより、作業者は、作成された画面遷移仕様を参照して、ＵＩアプリ機能本来の画面遷移を確認することができる。
【０１１６】
構成部品仕様データ６５は、図１９の仕様データに基づいて生成される仕様データであって、画面を構成する部品を示す仕様データである。部品属性仕様データ６６は、画面を構成する部品の属性に設定されているオプションの内容を示す仕様データである。部品属性仕様データ６６は、例えば、画面単位、部品単位、属性単位、オプション単位で出力することもできる。
【０１１７】
なお、画面遷移仕様データ６４、構成部品仕様データ６５、部品属性仕様データ６６の表示形態は、図２４に記載した形態に限定されず、文字、図、帳票形式等、様々な表示形態を用いてよい。また、画面遷移仕様データ６４、構成部品仕様データ６５、部品属性仕様データ６６は、表示装置７１だけなく、プリンタ等の出力装置を用いて出力することもできる。
【０１１８】
次に、本実施形態の一実施例に係るＵＩ設計支援装置５１による処理を説明する。
図２５は、本実施形態の一実施例に係るＵＩ設計支援装置の全体の処理フローを示す。まず、作業者は、画面に表示された画面編集ビュー８０、部品表示設定ビュー９０、動作定義フォーマット選択ビュー１００、部品属性選択ビュー１１０を用いて、ＵＩ部品を作成し、ＵＩ部品を画面へ配置する（Ｓ１１）。ここでは、作業者は、ＵＩ部品を画面に配置し、意匠／サイズ／表示情報などのプロパティを設定する。
【０１１９】
画面設計部５３は、画面に表示されるメニューを構成するために必要なＵＩ部品が選択され、画面上に配置され、大きさ・形・色（通常色、押下色）・表示条件などの設定を受け付ける。画面設計部５３は、画面編集ビュー８０、部品表示設定ビュー９０、動作定義フォーマット選択ビュー１００、部品属性選択ビュー１１０に設定された情報に基づいて、画面の仕様データ６２を生成する。画面にオプションを追加しない場合（Ｓ１２で「Ｎｏ」）、処理がＳ１４へ進む。
【０１２０】
画面にオプションを追加する場合（Ｓ１２で「Ｙｅｓ」）、オプション調整部５４は、次の処理を行う。すなわち、オプション調整部５４は、部品表示設定ビュー９０または部品属性選択ビュー１１０の属性に設定されたオプションに基づいて、図７−図１１で説明したように、オプション同士の依存関係を確認した上でオプションを設定する（Ｓ１３）。
【０１２１】
画面設計部５３は、各々のＵＩ部品に対して、動作定義フォーマット６１を利用して、ＵＩ動作定義の起動イベント、条件動作、処理動作を含む動作定義データを作成する。画面設計部５３は、その動作定義データを用いて仕様データを作成する（Ｓ１４）。
【０１２２】
作業者は、表示装置７１に表示されたシミュレーション対象の画面について、入力装置７０を用いて、シミュレーション実行条件を設定する（Ｓ１５）。ここでは、作業者は、シミュレーション条件に応じて、条件設定表示部１３により表示された、シミュレーション対象の画面内の部品のオプションの設定を行う。
【０１２３】
シミュレーション処理部５６は、作成された仕様データ６２、動作定義データ、及びＳ１５で設定したシミュレーション実行条件を用いて、対象画面についてシミュレーションを実行する（Ｓ１６）。
【０１２４】
作業者は、入力装置７０を用いて、表示装置７１に表示されたシミュレーション画面を操作する。これにより、作業者は、部品レイアウトやＵＩ部品の動作が要求仕様を満たしているか検証する（Ｓ１７）。
【０１２５】
部品レイアウトやＵＩ部品の動作が要求仕様を満たしていない場合（Ｓ１７で「Ｎｏ」）、Ｓ１１へ戻る。部品レイアウトやＵＩ部品の動作が要求仕様を満たしている場合（Ｓ１７で「Ｙｅｓ」）、作業者は、入力装置７０を用いて、ＵＩ設計支援装置５１に、仕様書またはソースコードの出力を指示する。
【０１２６】
ＵＩ仕様作成部５７は、その指示に基づいて、記憶部６０に記憶された部品データ６８、仕様データ６２等を用いて、画面遷移仕様データ６４、構成部品仕様データ６５、部品属性仕様データ６６を作成する（Ｓ１８）。出力制御部５９は、作成された画面遷移仕様データ６４、構成部品仕様データ６５、部品属性仕様データ６６を、表示装置７１に表示またはプリンタ等に出力する。
【０１２７】
また、ソースコード生成部５８は、その指示に基づいて、部品が動作する条件に関する情報と、部品が動作する処理の内容に関する情報と、部品の属性に関する情報とを用いて、ソースコード６３を生成する（Ｓ１９）。出力制御部５９は、生成したソースコード６３を表示装置７１に表示またはプリンタ等より出力させる。
【０１２８】
図２６は、Ｓ１４の処理の詳細の一例を示すフローである。シミュレーション処理部５６は、シミュレーション実行指示及びその実行条件を取得する。シミュレーション処理部５６は、シミュレーションの実行条件を設定する（Ｓ１６−１）。このとき、シミュレーション処理部５６は、条件設定表示部１３により表示されたオプションから作業者が選択したオプション情報に基づいて、オプション情報の変更を行う。
【０１２９】
シミュレーション処理部５６は、仕様データ６２をトップノードからスキャンし、イベントが設定されている部品を抽出する（Ｓ１６−２）。シミュレーション処理部５６は、入力装置７０からの入力情報により、表示装置７１に表示された画面または部品が操作されたか判定する（Ｓ１６−３）。画面または部品が操作された場合には（Ｓ１６−３で「Ｙｅｓ」）、シミュレーション処理部５６は、その画面のＵＩ部品を形成するプログラムにＵＩ動作指示を通知する（Ｓ１６−４）。シミュレーション処理部５６は、動作定義データを用いて、その部品について動作が定義されているか判定する（Ｓ１６−５）。
【０１３０】
この結果、部品について動作が定義されていないと判定された場合には（Ｓ１６−５で「Ｎｏ」）、シミュレーション処理部５６は、Ｓ１６−３に戻って、画面または部品が操作されるのを待つ。また、部品について動作が定義されていると判定された場合には（Ｓ１６−５で「Ｙｅｓ」）、シミュレーション処理部５６は、ＵＩ部品に付随されている実行可能モジュールを用いて動作を実行する（Ｓ１６−６）。
【０１３１】
そして、シミュレーション処理部５６は、シミュレーション終了指示があったかを判定する（Ｓ１６−７）。シミュレーション終了指示がない場合には（Ｓ１６−７で「Ｎｏ」）、シミュレーション処理部５６は、Ｓ１６−５に戻って画面または部品が操作されるのを待つ。シミュレーション終了指示があった場合には（Ｓ１６−７で「Ｙｅｓ」）、本フローを修了する。
【０１３２】
図２７は、Ｓ１８の処理の詳細の一例を示すフローである。ＵＩ仕様作成部５７は、仕様データ及び入力装置７０より指定された画面情報に基づいて、仕様データ６２をトップノードからスキャンし、出力対象画面が存在するか判定する（Ｓ１８−１）。出力対象画面が存在しない場合（Ｓ１８−１で「Ｎｏ」）、処理がＳ１８−１７へ進む。出力対象画面が存在する場合（Ｓ１８−１で「Ｙｅｓ」）、ＵＩ仕様作成部５７は、その出力対象画面を示す情報を画面遷移仕様データファイルに出力する（Ｓ１８−２）。
【０１３３】
次に、ＵＩ仕様作成部５７は、仕様データ６２において、その出力対象画面の配下にＵＩ部品ノードが存在するか判定する（Ｓ１８−２）。ＵＩ部品ノードが存在しない場合には（Ｓ１７−３で「Ｎｏ」）、処理がＳ１８−１７へ進む。また、ＵＩ部品ノードが存在する場合（Ｓ１７−３で「Ｙｅｓ」）、ＵＩ仕様作成部５７は、そのＵＩ部品ノードに対応する動作定義データに画面の表示／非表示動作または画面遷移動作に関するデータが存在するかを判定する（Ｓ１８−４）。そのＵＩ部品ノードに対応する動作定義データに画面の表示／非表示動作または画面遷移動作に関するデータが存在しない場合（Ｓ１８−４で「Ｎｏ」）、処理がＳ１８−７へ進む。
【０１３４】
そのＵＩ部品ノードに対応する動作定義データに画面の表示／非表示動作または画面遷移動作に関するデータが存在する場合（Ｓ１８−４で「Ｙｅｓ」）、ＵＩ仕様作成部５７は、次の処理を行う。すなわち、ＵＩ仕様作成部５７は、画面表示／非表示を示す情報または遷移先画面示す情報を画面遷移仕様データファイルに出力する（Ｓ１８−５）。
【０１３５】
ＵＩ仕様作成部５７は、動作定義データから検索した遷移先画面に対応する仕様データを取得し、その仕様データ６２をトップノードからスキャンし、出力対象画面を検出する（Ｓ１８−６）。その後、処理は、Ｓ１８−３へ戻る。
【０１３６】
ＵＩ仕様作成部５７は、Ｓ１８−１〜Ｓ１８−６を繰り返し、画面遷移仕様データファイルを作成する（Ｓ１８−７）。出力制御部５９は、その画面遷移仕様データファイルを画面遷移仕様データ６４として表示装置７１またはプリンタ等の出力装置に出力する。
【０１３７】
ＵＩ仕様作成部５７は、仕様データから画面内のＵＩ部品データを取得し、そのＵＩ部品データを構成部品仕様データファイルに出力する（Ｓ１８−８）。出力制御部５９は、構成部品仕様データファイルを構成部品仕様データ６５として表示装置７１またはプリンタ等の出力装置に出力する。
【０１３８】
ＵＩ仕様作成部５７は、Ｓ１８−８で取得したＵＩ部品データに対応する部品情報を取得し、その部品情報を部品属性仕様データファイルに出力する（Ｓ１８−９）。出力制御部５９は、部品属性仕様データファイルを部品属性仕様データ６６として表示装置７１またはプリンタ等の出力装置に出力する。
【０１３９】
図２８は、Ｓ１９の処理の詳細の一例を示すフローである。ソースコード生成部５８は、仕様データに出力対象画面が存在するか判定する（Ｓ１９−１）。ソースコード生成部５８は、出力対象画面が存在する場合には（Ｓ１９−１で「Ｙｅｓ」）、仕様データにおいて、その出力対象画面配下にＵＩ部品ノードが存在するか判定する（Ｓ１９−２）。ＵＩ部品ノードが存在しない場合には（Ｓ１９−２で「Ｎｏ」）、処理がＳ１９−１に戻る。また、ソースコード生成部５８は、ＵＩ部品ノードが存在する場合には（Ｓ１９−２で「Ｙｅｓ」）、画面部品のデザイン関連の仕様データをプロパティから抽出してコード化し、ソースコードを出力する（Ｓ１９−３）。
【０１４０】
そして、ソースコード生成部５８は、動作定義が存在するか判定する（Ｓ１９−４）。動作定義が存在する場合には（Ｓ１９−４で「Ｙｅｓ」）、ソースコード生成部５８は、動作定義の仕様情報をソースコード変換してソースコードを出力する（Ｓ１９−５）。その後、ソースコード生成部５８は、子ノードが存在するか判定する（Ｓ１９−６）。子ノードが存在する場合には（Ｓ１９−６で「Ｙｅｓ」）、ソースコード生成部５８は、Ｓ１９−３の処理に戻って、子ノードについても、デザイン関連のコードと動作定義に関するコードを生成する。その後、ソースコード生成部５８は、子ノードが存在しない場合には（Ｓ１９−６で「Ｎｏ」）、ステップＳ１９−１に戻る。ソースコード生成部５８は、Ｓ１９−１において、ソースコード出力を行っていない画面が存在しない場合には（Ｓ１９−１で「Ｎｏ」）、処理を終了する。
【０１４１】
図２９は、本実施形態の一実施例に係るコンピュータのハードウェア環境の構成ブロック図である。コンピュータ２００は、本実施形態の処理を行うプログラムを読み込むことにより、ＵＩ設計支援装置５１として機能する。
【０１４２】
コンピュータ２００は、出力Ｉ／Ｆ２０１、ＣＰＵ２０２、ＲＯＭ２０３、通信Ｉ／Ｆ２０４、入力Ｉ／Ｆ２０５、ＲＡＭ２０６、記憶装置２０７、読み取り装置２０８、バス２０９を含む。コンピュータは、出力機器２１１、入力機器２１２と接続されている。
【０１４３】
ここで、ＣＰＵは、中央演算装置を示す。ＲＯＭは、リードオンリメモリを示す。ＲＡＭは、ランダムアクセスメモリを示す。Ｉ／Ｆは、インターフェースを示す。バス２０９には、出力Ｉ／Ｆ２０１、ＣＰＵ２０２、ＲＯＭ２０３、通信Ｉ／Ｆ２０４、入力Ｉ／Ｆ２０５、ＲＡＭ２０６、記憶装置２０７、読み取り装置２０８が接続されている。読み取り装置２０８は、可搬型記録媒体を読み出す装置である。出力機器２１１は、出力Ｉ／Ｆ２０１に接続されている。入力機器２１２は、入力Ｉ／Ｆ２０５に接続にされている。
【０１４４】
記憶装置２０７としては、ハードディスクドライブ、フラッシュメモリ装置、磁気ディスク装置など様々な形式の記憶装置を使用することができる。記憶装置２０７またはＲＯＭ２０３には、例えば、本実施形態で説明した処理を実現するプログラムが格納されている。また、記憶装置２０７またはＲＯＭ２０３は、画面データ６７、部品データ６８、動作定義データ、動作定義フォーマット６１、仕様データ６２、ソースコード６３、画面遷移仕様データ６４、画面部品仕様データ６５、部品属性仕様データ６６等を記憶する。
【０１４５】
ＣＰＵ２０２は、記憶装置２０７またはＲＯＭ２０３に格納した本実施形態で説明した処理を実現するプログラムを読み出し、当該プログラムを実行する。具体的には、ＣＰＵ２０２は、当該プログラムを実行することにより、画面設計部５３、オプション調整部５４、シミュレーション処理部５６、ＵＩ仕様作成部５７ソースコード生成部５８、出力制御部５９として機能する。
【０１４６】
本実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク２１０、および通信Ｉ／Ｆ２０４を介して、例えば記憶装置２０７に格納してもよい。また、本実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置２０８にセットされて、ＣＰＵ２０２によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣカード、ＵＳＢメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置２０８によって読み取られる。
【０１４７】
また、入力機器２１２には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレット、タッチパネルなどを用いることが可能である。また、出力機器２１１には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク２１０は、インターネット、ＬＡＮ、ＷＡＮ、専用線、有線、無線等の通信網であってよい。
【０１４８】
本実施形態によれば、画面遷移仕様において、ＵＩアプリの画面変化と、オプションによる分岐動作を分離させ、本来のＵＩアプリの画面変化を分かりやすくした画面遷移仕様を出力することができる。一方、オプションによる分岐動作の仕様については、シミュレーション実行前に、部品に設定したオプションを選択可能なように画面に表示させている。これにより、実行条件に応じて、いずれかのオプションを選択して、シミュレーションを実行して仕様の確認をすることができる。その結果、視認しやすい画面遷移仕様を作成することができると共に、オプション仕様も担保することができる。
【０１４９】
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１５０】
１      表示制御装置
２      取得部
３      第１の出力制御部
４      第２の出力制御部
１１    ＵＩ設計支援装置
１２    画面設計部
１３    条件設定表示部
１４    シミュレーション処理部
１５    ＵＩ仕様作成部
１６    オプション調整部
１７    記憶部
１８    出力制御部
１９    入力部
２０    表示部
５１    ＵＩ設計支援装置
５２    制御部
５３    画面設計部
５４    オプション調整部
５５    条件設定表示部
５６    シミュレーション処理部
５７    ＵＩ仕様作成部
５８    ソースコード生成部
５９    出力制御部
６０    記憶部
６１    動作定義フォーマット
６２    仕様データ
６３    ソースコード
６４    画面遷移仕様データ
６５    画面部品仕様データ
６６    部品属性仕様データ
７０    入力装置
７１    表示装置
【図１】
0005903276.tif 000002
【図２】
0005903276.tif 000003
【図３】
0005903276.tif 000004
【図４】
0005903276.tif 000005
【図５】
0005903276.tif 000006
【図６】
0005903276.tif 000007
【図７】
0005903276.tif 000008
【図８】
0005903276.tif 000009
【図９】
0005903276.tif 000010
【図１０】
0005903276.tif 000011
【図１１】
0005903276.tif 000012
【図１２】
0005903276.tif 000013
【図１３】
0005903276.tif 000014
【図１４】
0005903276.tif 000015
【図１５】
0005903276.tif 000016
【図１７】
0005903276.tif 000017
【図２０】
0005903276.tif 000018
【図２２】
0005903276.tif 000019
【図２３】
0005903276.tif 000020
【図２４】
0005903276.tif 000021
【図２５】
0005903276.tif 000022
【図２６】
0005903276.tif 000023
【図２７】
0005903276.tif 000024
【図２８】
0005903276.tif 000025
【図２９】
0005903276.tif 000026
【図１６】
0005903276.tif 000027
【図１８】
0005903276.tif 000028
【図１９】
0005903276.tif 000029
【図２１】
0005903276.tif 000030