(57)【要約】【課題】画面ＵＩの設計として自然な形式で記述された設計情報を入力として、画面状態表及び状態遷移表に相当する情報を持つ画面ＵＩの状態遷移モデルを人手を介さずに作成する。【解決手段】画面ＵＩの状態遷移モデルを作成する状態遷移モデル作成装置において、前記画面ＵＩを構成するウィジェットのイベント設計情報と、イベントの発生条件に関わる所定の条件とを含む設計情報を記憶する記憶手段と、前記設計情報を用いて、前記画面ＵＩにおける各ウィジェットのプロパティごとに、プロパティ値を状態とする有限状態遷移系を作成し、各有限状態遷移系における遷移の実行可能条件を評価して、評価結果が真となる遷移関係からなる有限状態遷移系を前記画面ＵＩの状態遷移モデルとして作成する作成手段と、前記作成手段により作成された前記状態遷移モデルの出力を行う出力手段とを備える。【選択図】図５
2016224624.tif 000002
【特許請求の範囲】
【請求項１】
画面ＵＩの状態遷移モデルを作成する状態遷移モデル作成装置であって、
前記画面ＵＩを構成するウィジェットのイベント設計情報と、イベントの発生条件に関わる所定の条件とを含む設計情報を記憶する記憶手段と、
前記設計情報を用いて、前記画面ＵＩにおける各ウィジェットのプロパティごとに、プロパティ値を状態とする有限状態遷移系を作成し、各有限状態遷移系における遷移の実行可能条件を評価して、評価結果が真となる遷移関係からなる有限状態遷移系を前記画面ＵＩの状態遷移モデルとして作成する作成手段と、
前記作成手段により作成された前記状態遷移モデルの出力を行う出力手段と
を備えることを特徴とする状態遷移モデル作成装置。
【請求項２】
前記作成手段は、前記状態遷移モデル作成装置が保持しているデフォルトのイベント設計情報を用いて、ウィジェットのデフォルトの動作に関する遷移関係を作成する
ことを特徴とする請求項１に記載の状態遷移モデル作成装置。
【請求項３】
前記出力手段は、前記状態遷移モデルを用いて前記画面ＵＩの画面状態表及び状態遷移表を作成し、当該画面状態表及び状態遷移表を出力する
ことを特徴とする請求項１又は２に記載の状態遷移モデル作成装置。
【請求項４】
画面ＵＩの状態遷移モデルを作成する状態遷移モデル作成装置が実行する状態遷移モデル作成方法であって、
前記状態遷移モデル作成装置は、前記画面ＵＩを構成するウィジェットのイベント設計情報と、イベントの発生条件に関わる所定の条件とを含む設計情報を記憶する記憶手段を備えており、
前記設計情報を用いて、前記画面ＵＩにおける各ウィジェットのプロパティごとに、プロパティ値を状態とする有限状態遷移系を作成し、各有限状態遷移系における遷移の実行可能条件を評価して、評価結果が真となる遷移関係からなる有限状態遷移系を前記画面ＵＩの状態遷移モデルとして作成する作成ステップと、
前記作成ステップにより作成された前記状態遷移モデルの出力を行う出力ステップと
を備えることを特徴とする状態遷移モデル作成方法。
【請求項５】
前記作成ステップにおいて、前記状態遷移モデル作成装置は、当該状態遷移モデル作成装置が保持しているデフォルトのイベント設計情報を用いて、ウィジェットのデフォルトの動作に関する遷移関係を作成する
ことを特徴とする請求項４に記載の状態遷移モデル作成方法。
【請求項６】
前記出力ステップにおいて、前記状態遷移モデル作成装置は、前記状態遷移モデルを用いて前記画面ＵＩの画面状態表及び状態遷移表を作成し、当該画面状態表及び状態遷移表を出力する
ことを特徴とする請求項４又は５に記載の状態遷移モデル作成方法。
【請求項７】
コンピュータを、請求項１ないし３のうちいずれか1項に記載の状態遷移モデル作成装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＧＵＩアプリケーションの設計・開発手法の分野で、画面ＵＩを設計・実装するにあたり、設計情報から並行動作する複数の有限状態遷移系から成る、設計情報の管理を行うための無矛盾なモデルを生成する技術に関連するものである。
【背景技術】
【０００２】
以下、状態遷移表を用いた画面ＵＩの設計、先行技術について説明する。
【０００３】
（状態遷移表を用いた画面ＵＩの設計）
画面ＵＩとはアプリケーションにおいて、ユーザが情報を入力し、アプリケーションに実行させる処理を選択するために、画面上に表示されるインタフェースを指す。画面ＵＩでは、情報の入力や処理の選択のために、開発に利用するライブラリ等によって予め定義された、テキストフィールドやボタン等の有限種類のウィジェットが組み合わされて利用される。画面上のウィジェット配置の例を図１に示す。図１にはウィジェットの例としてチェックボックスとボタンが示されている。
【０００４】
ウィジェットはそれぞれの性質を表すためのプロパティを持ち、プロパティ値を変更することによって状態が変化する。例えば、チェックボックスはチェック状態というプロパティを持ち、チェック有りとチェック無しの二つのプロパティ値の間で変化する。その他、画面上に表示するか否か、操作可能か否かといった状態もプロパティとして扱われる。
【０００５】
プロパティ値は多くの場合、ユーザによるウィジェットの操作によって発生するイベントを契機として変化する。ウィジェット自身のプロパティ値の変化については、イベント発生時のデフォルトの処理が予め定義されている。例えば、チェックボックスの場合には、クリック時にチェック状態を反転させる処理が行われる。
【０００６】
画面ＵＩの設計者は、ユーザが情報の入力及び処理の選択を直感的に行うことができるように、処理内容に応じて必要なウィジェットのみを表示・操作可能な状態とし、他のウィジェットを非表示・操作不能な状態にするといった設計を行う。
【０００７】
画面ＵＩの設計では、ある時点におけるアプリケーション上の画面表示全体を確認するために、アプリケーションの表示全体を画面ＵＩの状態と定め、各状態でのウィジェットのプロパティや表示状態・操作可能状態のプロパティ値等を記述した画面状態表を作成する。また、画面ＵＩの状態間の遷移関係を確認するために、画面状態表に加え、各状態におけるイベント処理実行後の遷移先状態を記述した状態遷移表を作成する場合が多い。
【０００８】
チェックボックスとボタンが配置された画面ＵＩの、画面状態表と状態遷移表の例をそれぞれ図２、図３に示す。図２には、状態１においてチェックボックスのチェック状態というプロパティがチェック無しというプロパティ値をとることが記されている。図３には、状態１においてチェックボックスをクリックした際に状態２に遷移することが記されている。
【０００９】
画面状態表は、画面上のウィジェット数が増加するとそのプロパティ値等の組み合わせにより項目数が爆発的に増大する。その際、状態遷移表も状態数とイベント数に応じて項目数が増大する。また、ウィジェットの表示状態や操作可能状態によって各状態で発生する可能性のあるイベントが細かく変更されるため、状態遷移表の作成にあたってはイベントの発生する条件と遷移先の状態という二つを同時に考慮する必要があり、複雑な設計を記述しなければならない。そのため、画面状態表及び状態遷移表による画面ＵＩの設計では、表の作成に大きな手間がかかり、かつ状態の漏れや誤記入による矛盾、不整合が生じるという問題点があった。
【００１０】
（先行技術）
画面ＵＩの設計を行うにあたり、ウィジェットのプロパティ値に着目してウィジェットごとに表示・非表示、操作可能・操作不能、入力の妥当性の規則の集合を記述し、実行可能なプログラムを生成する装置が提案されている（例えば、非特許文献１）。かかる技術によれば、個々のウィジェットに対する規則の設計を組み合わせることで画面ＵＩの状態を機械的に計算することが可能である。
【００１１】
また、画面ＵＩの設計に限らない技術として、複数の要素の組み合わせから成るシステムにおいて、到達可能な状態を網羅した状態遷移表を作成するにあたり、初期状態から順に個々の要素の状態遷移の規則に従って遷移先の状態を計算していく検証支援装置が提案されている（例えば、特許文献１）。かかる装置によれば、個々の要素に対する状態遷移規則を設計することで状態の漏れや不整合のない状態遷移表を作成することが可能である。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】Matthias Book, Tobias Bruckmann, Volker Gruhn, and Malte Hulder. Specification and control of interface responses to user input in rich internet applications. In Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, ASE '09, pp. 321-331, Washington, DC, USA, 2009. IEEE Computer Society.
【特許文献】
【００１３】
【特許文献１】特開平６−１６１７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
規模の大きい画面状態表や状態遷移表を人手により直接作成する場合の手間や不整合の混入を避けるため、可能な限り少ない入力から機械的にこれらの表を作成することが求められる。また、特定の一部のウィジェットに着目して動作を検証・修正する際に、巨大な画面状態表や状態遷移表では視認性が悪く作業効率が低下する。同一の設計情報を基に用途に応じて出力形式を変えるために、画面状態表及び状態遷移表と同等の情報を持ち、かつ細分化可能なモデルとして設計情報が表現されることが望ましい。
【００１５】
非特許文献１のような従来技術では、ウィジェットとイベントの関係、イベントとプロパティ値の変化の関係が対応付けられていない。そのため、設計した表示条件や操作可能条件の通りに振る舞うプログラムを生成することは可能であるが、状態遷移表を作成することができなかった。
【００１６】
特許文献１のような従来技術では、状態遷移規則を個々の要素ごとの状態遷移表又はｉｆ〜ｔｈｅｎの形式で記述していた。画面ＵＩにおいては、イベントの発生源となるウィジェットが、他のウィジェットのプロパティの変化にともなって表示状態・操作可能状態が変更されることが多い。
【００１７】
従来技術を画面ＵＩ設計に適用する場合、非特許文献１のように個々の要素ごとの状態遷移表を用いる方法では他のウィジェットのプロパティに依存した条件を記述することができない。特許文献１のようにｉｆ〜ｔｈｅｎの形式を用いる方法では、イベントの発生源となるウィジェットの表示条件・操作可能条件とイベントによるプロパティ値の変化の分岐を混在させて記述させる必要があり、画面ＵＩの設計情報としては不自然な記述を行わなければならないという問題がある。また、ウィジェットごとにプロパティ値やイベント処理をすべて入力する必要があるため、大きな手間がかかる点も依然として課題である。
【００１８】
本発明は上記の点に鑑みてなされたものであり、画面ＵＩの設計として自然な形式で記述された設計情報を入力として、画面状態表及び状態遷移表に相当する情報を持つ画面ＵＩの状態遷移モデルを人手を介さずに作成することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の実施の形態によれば、画面ＵＩの状態遷移モデルを作成する状態遷移モデル作成装置であって、
前記画面ＵＩを構成するウィジェットのイベント設計情報と、イベントの発生条件に関わる所定の条件とを含む設計情報を記憶する記憶手段と、
前記設計情報を用いて、前記画面ＵＩにおける各ウィジェットのプロパティごとに、プロパティ値を状態とする有限状態遷移系を作成し、各有限状態遷移系における遷移の実行可能条件を評価して、評価結果が真となる遷移関係からなる有限状態遷移系を前記画面ＵＩの状態遷移モデルとして作成する作成手段と、
前記作成手段により作成された前記状態遷移モデルの出力を行う出力手段と
を備えることを特徴とする状態遷移モデル作成装置が提供される。
【００２０】
また、本発明の実施の形態によれば、画面ＵＩの状態遷移モデルを作成する状態遷移モデル作成装置が実行する状態遷移モデル作成方法であって、
前記状態遷移モデル作成装置は、前記画面ＵＩを構成するウィジェットのイベント設計情報と、イベントの発生条件に関わる所定の条件とを含む設計情報を記憶する記憶手段を備えており、
前記設計情報を用いて、前記画面ＵＩにおける各ウィジェットのプロパティごとに、プロパティ値を状態とする有限状態遷移系を作成し、各有限状態遷移系における遷移の実行可能条件を評価して、評価結果が真となる遷移関係からなる有限状態遷移系を前記画面ＵＩの状態遷移モデルとして作成する作成ステップと、
前記作成ステップにより作成された前記状態遷移モデルの出力を行う出力ステップと
を備えることを特徴とする状態遷移モデル作成方法が提供される。
【発明の効果】
【００２１】
本発明の実施の形態によれば、画面ＵＩの設計として自然な形式で記述された設計情報を入力として、画面状態表及び状態遷移表に相当する情報を持つ画面ＵＩの状態遷移モデルを人手を介さずに作成することを可能とする技術が提供される。
【図面の簡単な説明】
【００２２】
【図１】ウィジェット配置の例を示す図である。
【図２】画面状態表の例を示す図である。
【図３】状態遷移表の例を示す図である。
【図４】本実施の形態に係る技術と従来技術との差を説明するための図である。
【図５】本実施の形態における状態遷移モデル作成装置１００の構成図である。
【図６】設計情報の構成例を示す図である。
【図７】本実施の形態における状態遷移モデル作成装置１００の動作を説明するためのフローチャートである。
【図８】本実施の形態における状態遷移モデル作成装置１００の動作を説明するためのフローチャート（状態遷移モデル作成・表示フロー）である。
【図９】本実施の形態における状態遷移モデル作成装置１００の動作を説明するためのフローチャート（状態遷移モデル作成詳細フロー）である。
【図１０】ウィジェット配置設定情報を示す図である。
【図１１】初期値表を示す図である。
【図１２】定義値表を示す図である。
【図１３】表示条件・操作可能条件表を示す図である。
【図１４】イベント表を示す図である。
【図１５】プロパティに対応する有限状態遷移系を示す図である。
【図１６】画面ＵＩ有限状態遷移系を有向グラフで示した図である。
【図１７】画面状態表を示す図である。
【図１８】状態遷移表を示す図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００２４】
（実施の形態における用語の説明）
本発明の実施の形態の内容を説明する前に、まず、主な用語についての定義を説明する。
【００２５】
ウィジェット：ユーザによる情報の入力や処理の実行を行うために、画面ＵＩに用いられる部品。開発に利用するライブラリ等によって複数種類のウィジェットが予め用意されている。
【００２６】
プロパティ：ウィジェットごとに定義されている、ウィジェットの状態を表す属性。
【００２７】
ユーザ定義値：セレクトボックスの選択値等、ユーザが定めるプロパティ値。
【００２８】
表示状態：ウィジェットが画面に表示されているか、非表示であるかの別。表示、非表示という二つの表示状態値のいずれかを指す。
【００２９】
操作可能状態：ウィジェットが操作可能であるか、操作不能であるかの別。操作可能、操作不能という二つの操作可能状態値のいずれかを指す。
【００３０】
イベント：ウィジェットの操作等により発生する処理の契機となる事象。
【００３１】
画面ＵＩの状態：画面上に配置されたウィジェットのある時点におけるプロパティ値及び表示状態値・操作可能状態値の集合。
【００３２】
画面状態表：設計するアプリケーションにおいて到達し得る画面ＵＩの状態を網羅した表。列タイトルに状態名、行タイトルにウィジェットのプロパティ種別又は表示状態、操作可能状態を持つ。画面ＵＩの状態におけるウィジェットのプロパティ値、表示状態値、操作可能状態値が記述される。
【００３３】
状態遷移表：画面ＵＩの状態間の遷移関係を網羅した表。列タイトルに状態名、行タイトルにイベント名を持つ。画面ＵＩの状態におけるイベント発生時の遷移先の状態が記述される。
【００３４】
状態の漏れ：画面状態表及び状態遷移表において、初期状態から到達し得る画面状態の記載が抜けること。
【００３５】
状態の誤記入：画面状態表及び状態遷移表において、ある状態におけるウィジェットのプロパティ値、表示状態値、操作可能状態値、遷移先状態に適切でない記述を行うこと。
【００３６】
一階の述語論理式：「ＸはＹである。」といった命題と、命題の論理和、論理積、論理否定、及び「すべての〜について」「ある〜について」といった限量子から構成される、真偽の定まる式。述語を引数にとる述語は一階の述語論理式には含まれない。
【００３７】
論理式の評価：論理式内の変数に現在の状態を当てはめ、式全体が真であるか、偽であるかを判定すること。
【００３８】
走査：集合、列など複数の要素から成る構造に対して、各要素一つひとつを取り出して順に処理を行うこと。
【００３９】
有限状態遷移系：状態の有限集合、初期状態、遷移関係の集合の３つ組から成る系。初期状態から開始し、遷移関係によって現在の状態が遷移する。
【００４０】
有限状態遷移系における状態：ある時点における系の性質を他の時点の性質と区別するための単位。
【００４１】
遷移関係：遷移元状態、遷移ラベル、遷移先状態の３つ組。
【００４２】
遷移の実行：有限状態遷移系において現在の状態が遷移関係の遷移元状態と一致している場合に、当該有限状態遷移系の現在の状態を遷移先状態に変化させること。実行する遷移に遷移ラベルがついている場合、ラベルによる遷移の実行と呼ぶ。
【００４３】
遷移ラベル：有限状態遷移系の遷移につけられたラベル。複数の有限状態遷移系において、現在の状態を遷移元状態とする同一の遷移ラベルを持つ遷移関係がそれぞれ定義されている場合、当該遷移ラベルによる遷移は同時に実行される。
【００４４】
（実施の形態の概要）
本実施の形態では、ＧＵＩアプリケーションの設計において、画面上に配置されるウィジェットに着目し、各ウィジェットの表示条件・操作可能条件やイベント設計情報を入力として、状態遷移モデルを作成する。作成される状態遷移モデルは複数の有限状態遷移系から成り、これらを組み合わせて状態遷移表及び画面状態表の出力や、機械による自動検証に用いることができる。ウィジェットのプロパティの変化を表すイベント設計情報と、イベントの発生可否を表すウィジェットの表示条件・操作可能条件を分離して記述することで、デフォルトのイベント設計情報の記述の省略や、表示条件・操作可能条件の冗長な記述を防ぐことによって設計記述量を削減し、かつ画面ＵＩの設計として記述しやすい形で体系化されている。以下、本実施の形態の内容を説明する。
【００４５】
まず、概要を説明する。本実施の形態では状態遷移モデル作成装置１００が提供される。当該状態遷移モデル作成装置１００は、画面ＵＩの設計において用いられるウィジェット配置設計情報、画面上に配置されたウィジェットについて表示条件及び操作可能条件の規則を記した表示条件・操作可能条件設計情報、イベント発生時のウィジェットの状態の変化を記したイベント設計情報を記憶する機構と、ウィジェットごとに暗黙的に設定されている設計情報を記憶する機構と、設計情報を用いて、同期して遷移する複数の有限状態遷移系を作成する機構と、当該有限状態遷移系を記憶する機構及び表示する機構を有する。
【００４６】
本実施の形態では、既に説明したように有限状態遷移系を状態の集合、初期状態、遷移関係の集合の３つ組として定義する。遷移関係は遷移元状態、遷移ラベル、遷移先状態の３つ組と定義する。有限状態遷移系の現在の状態は初期状態から開始し、遷移関係によって遷移する。有限状態遷移系が複数ある場合、一つの有限状態遷移系がある遷移ラベルを持つ遷移関係によって遷移するとき、他の有限状態遷移系が同じ遷移ラベルを持つ遷移関係を持ち、かつ現在の状態からその遷移関係による遷移が可能な場合、それらの有限状態遷移系は同じ遷移ラベルを持つ遷移関係によって同時に遷移を起こすものとする。
【００４７】
本実施の形態における状態遷移モデル作成装置１００へのウィジェット配置設計情報、及び表示条件・操作可能条件設計情報の入力方式については、非特許文献１のような従来技術と同様の方法を用いることができる。また、有限状態遷移系は特許文献１の入力に相当する情報を持つため、状態遷移モデル作成におけるモデル構築の処理では、特許文献１のような従来技術における状態遷移生成処理を利用することができる。
【００４８】
本実施の形態に係る状態遷移モデル作成装置１００では、ユーザからウィジェット配置設計情報の入力を受けると、ウィジェットのデフォルトの設計情報を用いて、ウィジェットのプロパティとイベントの設計情報を記憶する。ウィジェットごとに予め定義されたプロパティ値とイベントによるプロパティ値の変化を利用することで、ユーザが入力する設計情報を削減できる。ユーザはウィジェットのプロパティに対するユーザ定義値や初期値を差分設計情報として入力する。
【００４９】
イベントの発生源となるウィジェットが非表示又は操作不能の場合、当該イベントは発生しない。そのため、本実施の形態においては、ウィジェットが表示されているか否か、又はウィジェットが操作可能か否かいう状態を、それぞれ表示状態、操作可能状態として他のプロパティとは区別して扱っている。
【００５０】
本実施の形態に係る状態遷移モデル作成装置１００では、各ウィジェットのプロパティごとに、プロパティ値を状態とする有限状態遷移系を作成する。このとき、有限状態遷移系の遷移関係はイベント設計情報及び表示条件・操作可能条件を組み合わせることで作成される。これにより、入力時に分離して設計したイベントの発生条件とプロパティ値の変化が、一つのモデルに反映されることとなる。
【００５１】
各ウィジェットの状態遷移を組み合わせ、画面ＵＩの画面状態表、状態遷移表と等価な有限状態遷移系を作成するため、各有限状態遷移系の初期状態から、それぞれの現在の状態を用いて各遷移関係の実行条件を評価し、評価結果が真となる遷移関係を再帰的に辿る。各有限状態遷移系の現在の状態について、新しい組み合わせが現れなくなるまで遷移関係を辿ることで、画面ＵＩの有限状態遷移系が作成される。
【００５２】
本実施の形態における重要なポイントの一つは、ウィジェットのイベント設計情報及び表示条件・操作可能条件をプロパティ値を用いて設計した上で、個々のプロパティを並行動作する有限状態遷移系としてモデル化することである。従来技術では画面遷移表等の形式で複合的に表現されていた遷移条件と遷移関係を、本実施の形態では、イベントによるプロパティ値の変化の設計と表示条件・操作可能条件設計によるイベントの実行可否の設計として分離して記述することで画面ＵＩの設計を体系化し、設計効率を向上させる。作成した有限状態遷移系は状態遷移表として表示する他、有向グラフ等の他の表現によって表示することができる。
【００５３】
図４に、本実施の形態に係る技術と特許文献１のような従来技術との差を示す。図４の左はウィジェットの配置例であり、１はラジオボタングループ、２はセレクトボックス、３はチェックボックスである。チェックボックスはラジオボタングループの選択値がａの場合に表示され、かつ、セレクトボックスの選択値が１の場合に操作可能になるとする。
【００５４】
図４の右上が従来技術によるチェックボックスのクリック時の設計情報である。図４の右下は同様にチェックボックスのクリックイベントについて、本実施の形態に技術に基づいて記述する設計情報である。図４の右上に示す従来技術では、イベントが発生する条件、処理の分岐条件、プロパティ値の変化が複合的に記述されている。これに対し、図４の右下に示す本実施の形態による方法では、ウィジェットの表示条件、操作可能条件を個別に定めている。また、デフォルトの設計情報を用いることで、プロパティ値の変化を省略している。
【００５５】
画面ＵＩにおいては、各ウィジェットのプロパティ値に従ってウィジェットの表示状態や操作可能状態が定まり、表示されておりかつ操作可能なウィジェットを操作することでイベントが発生する。イベントが発生すると処理が実行されてプロパティ値が変化する。そのため、表示条件・操作可能条件とイベント処理は分けて考える方が適切である。本実施の形態による方法は、従来技術よりも画面ＵＩの設計としてより自然な形式であり、かつ表示条件・操作可能条件を一箇所にまとめて記述するため冗長な記述が減り、同じ情報をより少ない設計記述から得ることができることが分かる。
【００５６】
本実施の形態において、イベントの発生条件に関わる状態として表示条件、操作可能条件を用いているが、これら二種の状態に限定するものではなく、他にイベントの発生条件に関わる状態が存在する場合は、これら二種の状態と同様に扱う。
【００５７】
本実施の形態における状態遷移モデル作成装置１００により、例えば、画面ＵＩの設計として自然な形式で記述された設計情報を入力として、初期状態から到達可能な画面ＵＩの状態を網羅した、無矛盾な画面状態表及び状態遷移表に相当する情報を持つ画面ＵＩの状態遷移モデルを人手を介さずに作成することが可能となる。
【００５８】
以下、本実施の形態に係る状態遷移モデル作成装置１００の構成及び動作をより詳細に説明する。
【００５９】
（装置構成）
図５に、本実施の形態に係る状態遷移モデル作成装置１００の構成を示す。図４に示す通り、本実施の形態に係る状態遷移モデル作成装置１００は、ウィジェット配置設計部１０１、表示条件・操作可能条件設計部１０２、イベント設計部１０３、デフォルト設計記憶部１０４、設計情報記憶部１０５、状態遷移モデル作成部１０６、状態遷移モデル記憶部１０７、及び状態遷移モデル表示部１０８を備える。
【００６０】
ウィジェット配置設計部１０１は、ユーザの操作により画面上のウィジェットの配置を設計するインタフェースである。表示条件・操作可能条件設計部１０２は、ユーザの操作によりウィジェットの表示条件・操作可能条件を設計するインタフェースである。イベント設計部１０３は、ユーザの操作によりイベント発生時の処理を設計するインタフェースである。
【００６１】
デフォルト設計記憶部１０４は、ウィジェットのデフォルトの設計情報を記憶する。設計情報記憶部１０５は、ウィジェット配置設計部１０１、表示条件・操作可能条件設計部１０２、イベント設計部１０３で設計を行った設計情報を記憶する。
【００６２】
状態遷移モデル作成部１０６は設計情報から状態遷移モデルを作成し、状態遷移モデル記憶部１０７は、作成した状態遷移モデルを記憶する。また、状態遷移モデル表示部１０８は、状態遷移モデルを状態遷移表として整形して表示する。
【００６３】
なお、図５に示す機能区分は一例に過ぎない。本実施の形態で説明する処理を実行できるのであれば、図５に示す機能区分に限られず、任意の機能区分としてよい
本実施の形態に係る状態遷移モデル作成装置１００は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、状態遷移モデル作成装置１００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００６４】
（設計情報）
本実施の形態における状態遷移モデル作成装置１００において用いる設計情報の構成を図６に示す。図６においてＳｅｔ［Ｔ］はＴの有限個の集合を表し、Ｔｕｐｌｅ［Ｔ１，...，Ｔｎ］はＴ１，...，Ｔｎから成るｎ組を表し、Ｓｅｑ［Ｔ］はＴの長さ０以上の列を表す。Ｔは変数であり、例えば、Ｓｅｔ［ウィジェット設計情報］はウィジェット設計情報の有限個の集合を意味する。設計情報はウィジェット設計情報の集合である。ウィジェット設計情報は、ウィジェットＩＤ、ウィジェット種別、イベント設計情報の集合、プロパティ設計情報の集合、表示条件、操作可能条件の組で構成される。ウィジェットＩＤはウィジェットを一意に識別するための識別子である。ウィジェット種別は、テキストフィールドやチェックボックス、セレクトボックス等、画面ＵＩとして利用可能な種別が予め定義されている。
【００６５】
イベント設計情報はイベント種別と、処理命令の列の２つ組で構成される。イベント種別は、ｏｎＣｌｉｃｋやｏｎＣｈａｎｇｅ等、ウィジェットごとに有効な種別が予め定義されている。処理命令は、ウィジェットＩＤ、プロパティ種別、プロパティ値の組で表される。これはウィジェットＩＤとプロパティ種別によって特定されるプロパティ値を変更することを表現している。プロパティ設計情報はプロパティ種別、プロパティ値、プロパティ値の集合の組として表現される。３つ組の２つ目はプロパティ初期値を表している。プロパティ種別は、チェックボックスのチェック状態やセレクトボックスの選択値等、ウィジェットごとに有効な種別が予め定義されている。プロパティ値にはチェック状態のチェック有・チェック無等の予め定義された値と、テキストフィールドの入力値である文字列等のユーザによって定義されるユーザ定義値がある。表示条件・操作可能条件は、論理式として表される。ここでの論理式はウィジェットＩＤとプロパティ種別とプロパティ値を用いて記述された述語である。
【００６６】
（状態遷移モデル作成装置１００の動作概要）
次に、図７及び図８を参照して、本実施の形態に係る状態遷移モデル作成装置１００の動作概要を説明する。
【００６７】
状態遷移モデル作成装置１００は、ユーザの操作を待機し（図７のステップＳ１０１）、ユーザがウィジェット配置設計部１０１、表示条件・操作可能条件設計部１０２、イベント設計部１０３への入力情報の更新を行うたびにそれぞれ設計情報記憶部１０５の設計情報を更新する（ステップＳ１０２、Ｓ１０３、Ｓ１０４、Ｓ１０５）。
【００６８】
状態遷移モデル作成装置１００は、設計情報記憶部１０５に記憶された設計情報から、各ウィジェットのプロパティを表現する有限状態遷移系を作成する（図８のステップＳ２０１、Ｓ２０２）。その後、設計情報に含まれる各ウィジェットの表示条件・操作可能条件を用いて、各ウィジェットに対応する有限状態遷移系の初期状態から遷移可能な画面ＵＩの状態を網羅的に辿り、一つの有限状態遷移系を作成する（ステップＳ２０３、Ｓ２０４）。さらに、作成した有限状態遷移系を状態遷移表にマッピングして出力する（ステップＳ２０５）。
【００６９】
（動作の詳細）
以下、本実施の形態に係る状態遷移モデル作成装置１００の動作を詳細に説明する。
【００７０】
＜ウィジェット配置：Ｓ１０１、Ｓ１０２、Ｓ１０３＞
本実施の形態の状態遷移モデル作成装置１００がステップＳ１０１においてユーザの操作を待機している状態にあるとき、ステップＳ１０２において、ユーザはウィジェット配置設計部１０１の機能を用いて例えば図１０に示すように、画面上のウィジェット配置設計情報を入力することができる。
【００７１】
図１０中の１はラジオボタングループであり、１'及び１"はラジオボタンであり、２及び４はチェックボックスであり、３はセレクトボックスであり、５及び６はボタンである。ウィジェットにはそれぞれ一意に識別可能なウィジェットＩＤが定められる。１のウィジェットＩＤをラジオボタングループ１とし、１'及び１"のウィジェットＩＤをそれぞれラジオボタン１'、ラジオボタン１"とし、２及び４のウィジェットＩＤをそれぞれチェックボックス２、チェックボックス４とし、３のウィジェットＩＤをセレクトボックス３とし、５及び６のウィジェットＩＤをそれぞれボタン５、ボタン６とする。
【００７２】
また、画面上に配置したウィジェットについて、ウィジェット種別、プロパティ種別に応じて、必要な場合には図１２に示すようにユーザ定義値を入力する。任意の文字列を入力可能なテキストエリア等のウィジェットの入力文字列プロパティに対しては、ユーザ定義値として任意の文字列を示す特別な値を設定する。更に、ウィジェット種別、プロパティ種別に応じて、必要な場合には図１１に示すようにプロパティ初期値を入力する。
【００７３】
状態遷移モデル作成装置１００は、入力されたウィジェット配置設計情報、ユーザ定義値、プロパティ初期値を用い、ステップＳ１０３において、設計情報記憶部１０５に記憶された設計情報を更新する。設計情報記憶部１０５では、画面上に配置されたウィジェットに対してウィジェットの識別子を設定し、ウィジェット種別に応じて、ウィジェット設計情報に有効なイベント種別、プロパティ種別、有効なプロパティ値の集合を設定する。ここでの設定において、デフォルト設計記憶部１０４に記憶されているデフォルトの設計情報が用いられる。
【００７４】
その後、ステップＳ２０１〜ステップＳ２０５の状態遷移モデル作成・表示フローに従って状態遷移モデルを作成する。ステップＳ２０１〜ステップＳ２０５の詳細は後述する。
【００７５】
＜表示条件・操作可能条件設計：Ｓ１０１、Ｓ１０２、Ｓ１０４＞
状態遷移モデル作成装置１００がステップＳ１０１においてユーザの操作を待機している状態にあるとき、ステップＳ１０２において、表示条件・操作可能条件設計部１０２はユーザに対して設計情報中から表示条件・操作可能条件の記述に使用可能なウィジェット、プロパティ種別、プロパティ値を提示し、ユーザはそれらを用いて図１３に示すように、ウィジェットの表示条件・操作可能条件を入力する。表示条件・操作可能条件は一意に意味の定まる一階の述語論理式に対応付けられる形式で記述を行う。
【００７６】
状態遷移モデル作成装置１００は、入力された表示条件・操作可能条件を用い、ステップＳ１０４において、設計情報記憶部１０５に記憶された設計情報を更新する。具体的には入力された表示条件・操作可能条件を論理式に変換し、設計情報中のウィジェット設計情報の表示条件・操作可能条件にそれぞれ設定する。
【００７７】
表示条件・操作可能条件中に出現するウィジェットのウィジェット種別、プロパティ種別に対して、ユーザ定義値として任意の文字列が許されている場合、プロパティ値として任意の文字列を使用することができる。その場合、プロパティ値として使用した文字列を当該ウィジェット設計情報のユーザ定義値に追加する。
【００７８】
＜イベント設計：Ｓ１０１、Ｓ１０２、Ｓ１０５＞
イベント設計において、ユーザは、イベント発生時のウィジェットのプロパティ値の変化を設計する。ウィジェットのデフォルトの動作については、ウィジェット種別ごとに暗黙的に定義されているため、ユーザはウィジェットの一般的な動作から外れたプロパティ値の変化のみを入力する。デフォルトの動作に関する設計情報はデフォルト設計記憶部１０４に記憶されており、対象とする画面ＵＩ設計に関わるデフォルトの設計情報は、デフォルト設計記憶部１０４から設計情報記憶部１０５に格納される。
【００７９】
状態遷移モデル作成装置１００がステップＳ１０１においてユーザの操作を待機している状態にあるとき、ステップＳ１０２において、イベント設計部１０３はユーザに対して設計情報からイベント設計情報の記述に使用可能なウィジェット、プロパティ種別、プロパティ値を提示し、ユーザはそれらを用いて例えば図１４に示すように、イベント設計情報を入力する。図１４は、ラジオボタン２をクリックした場合に、チェックボックス４のチェックが無しになり、ラジオボタン４をクリックした場合に、チェックボックス４のチェックが有りになることを示している。
【００８０】
状態遷移モデル作成装置１００は、入力されたイベント設計情報を用い、ステップＳ１０５において、設計情報記憶部１０５に記憶された設計情報を更新する。具体的には、入力されたイベント設計情報を内部モデル中のウィジェット設計情報のイベント設計情報として設定する。
【００８１】
イベント設計情報中に出現するウィジェットのウィジェット種別、プロパティ種別に対して、ユーザ定義値として任意の文字列が許されている場合、プロパティ値として任意の文字列を使用することができる。その場合、プロパティ値として使用した文字列を当該ウィジェット設計情報のユーザ定義値に追加する。
【００８２】
従来技術では、図１３に相当する条件の設計の記述と、図１４に相当するプロパティ値変化の記述と、本実施の形態に係る技術では記述を省略可能なウィジェットのデフォルト動作に関する記述とが混在した形式で設計を記述していた。これに対し、本実施の形態に係る技術では、表示条件・操作可能条件設計、イベント設計の記述を分離し、デフォルト動作の記述を省略することで入力が最少化され、かつ画面ＵＩの設計として自然な形式での設計記述となっている。
【００８３】
＜ウィジェットのプロパティに対応する状態の集合の作成：Ｓ２０１＞
ステップＳ２０１において、状態遷移モデル作成部１０６は、設計情報記憶部１０５に記憶された設計情報中に含まれる各ウィジェットを走査し、ウィジェットのプロパティ設計ごとに対応する状態の集合をそれぞれ作成する。
【００８４】
すなわち、ウィジェットのプロパティ設計で設定されたプロパティ値の集合に含まれる各プロパティ値に対して対応する状態を作成し、作成された状態の集合をウィジェットのプロパティ設計に対応する有限状態遷移系の状態の集合として設定するために利用する。
【００８５】
＜イベント設計情報に対応した遷移関係の作成：Ｓ２０２＞
ステップＳ２０２において、状態遷移モデル作成部１０６は、内部モデルのウィジェット配置設計情報に含まれる各ウィジェットを走査し、ウィジェット設計情報に含まれるイベント設計情報を用いて、ステップＳ２０１で作成した状態の集合に含まれる状態間の遷移関係を作成する。
【００８６】
まず、各イベント設計情報に対し、対応するラベルを作成する。次に、各イベント設計情報の処理命令の列を走査し、遷移関係を作成する。遷移関係の遷移先状態は処理命令に含まれるプロパティ値に対応する状態を遷移先状態とし、ラベルはイベント設計情報に対応するラベルとし、遷移先状態は処理命令に含まれるウィジェット設計情報とプロパティ種別に対応する有限状態遷移系の持つ状態の集合に含まれる状態とする。
【００８７】
ステップＳ２０１で作成した状態の集合と、ステップＳ２０２で作成した遷移関係を用いて、ウィジェットの各プロパティに対応した有限状態遷移系を作成する。有限状態遷移系の初期状態は、プロパティ設計に設定されたプロパティ初期値に対応する状態とする。
【００８８】
＜デフォルトのイベント設計に対応した遷移の作成：Ｓ２０３＞
ステップＳ２０３において、状態遷移モデル作成部１０６は、内部モデルのウィジェット配置設計情報に含まれるウィジェットを走査し、各ウィジェットのウィジェット種別、イベント種別に対して暗黙的（デフォルト）に定義されたイベントを用いて、有限状態遷移系の遷移関係を作成する。作成する遷移関係の遷移元状態、遷移先状態は、イベント種別にしたがって適切に設定する。
【００８９】
例えば、ウィジェット種別がチェックボックスであり、イベント種別がＯｎＣｈａｎｇｅのとき、遷移元状態としてプロパティ値「チェック有り」に対応する状態、遷移先状態としてプロパティ値「チェック無し」に対応する状態を設定した遷移関係と、遷移元状態と遷移先状態を入れ替えた遷移関係の、二つの遷移関係を作成する。
【００９０】
ステップＳ２０１〜ステップＳ２０３で作成した有限状態遷移系をラベル付き有向グラフで表現した例を図１５に示す。（ａ）、（ｂ）、（ｃ）、（ｄ）はそれぞれラジオボタングループ１の選択値、チェックボックス２のチェック状態、セレクトボックス３の選択値、チェックボックス４の選択値に対応する。尚、二重線になっている状態は初期状態を表す。
【００９１】
＜画面ＵＩ有限状態遷移系の作成：Ｓ２０４＞
ステップＳ２０１〜ステップＳ２０３で作成した有限状態遷移系の持つ遷移関係には、設計情報中のイベント設計情報に対応したラベルが付けられており、遷移元状態及び遷移先状態はそれぞれプロパティ値に対応している。すなわち、イベント発生時のウィジェットのプロパティ値の変化が有限状態遷移系としてモデル化されている。これらすべての有限状態遷移系の現在の状態の組は、画面ＵＩの状態に対応する。
【００９２】
実際のアプリケーションにおいて、イベントは常にすべてが実行され得るとは限らず、ウィジェット設計情報の表示条件・操作可能条件に従い、非表示又は操作不能のウィジェットに起因するイベントは発生しない。ステップＳ２０４において、状態遷移モデル作成部１０６は、これをシミュレートし、ある画面ＵＩの状態から実行可能な遷移の中から一つを選択して遷移する有限状態遷移系を作成する。この有限状態遷移系は初期状態から到達可能な画面ＵＩの状態のみを状態として持つ。
【００９３】
まず、ステップＳ２０１〜ステップＳ２０３で作成した有限状態遷移系の集合を走査し、すべての遷移関係の集合を作成する。それぞれの遷移関係に対応するイベント設計情報を持つウィジェットの表示条件と操作可能条件の論理積をとり、遷移の実行可能条件とする。例えば、遷移関係Ａに対応するイベント設計情報を持つウィジェットがラジオボタンＢであるとし、ラジオボタンＢの表示条件が「（Ｘ）のとき」であり、操作可能条件が「（Ｙ）のとき」である場合、当該遷移関係Ａの遷移の実行可能条件は「（ＸかつＹ）のとき」である。
【００９４】
その後の処理手順を図９を用いて説明する。
【００９５】
図９（ａ）に示すように、状態の集合（以下Ｓ）、遷移関係（以下Ｒ）の集合を空集合とし、初期状態が未設定の有限状態遷移系を作成する（ステップＳ２０４０１）。
【００９６】
ステップＳ２０１〜ステップＳ２０３で作成した有限状態遷移系の初期状態の集合を一つの状態ｓ０とし、有限状態遷移系の初期状態に設定し、Ｓに加える（ステップＳ２０４０２、Ｓ２０４０３、Ｓ２０４０４）。このとき、画面状態表として出力する際に表示状態や操作可能状態を含めるために、ｓ０に各ウィジェットの表示条件・操作可能条件の評価結果を含める。
【００９７】
次に、図９（ｂ）に示すように、初期状態を入力としてステップＳ３０１からステップＳ３０７の以下の手続きを実行する。
【００９８】
ステップＳ３０１では与えられた状態ｐにおいてすべての遷移の実行可能条件を評価し、結果が真となる遷移関係のラベル集合（以下Ｌ）を作成する。Ｌに含まれるラベルそれぞれについて、ステップＳ３０２〜ステップＳ３０７を繰り返す。
【００９９】
ステップＳ３０２ではＬからラベルを一つ取り出す（以下ｌ）。ステップＳ３０３では、ステップＳ２０１〜ステップＳ２０３で作成した有限状態遷移系のｌによる遷移後の状態の集合を計算し、これを状態ｑとする。ステップＳ３０４で遷移元状態をｐ、ラベルをｌ、遷移先状態をｑとする遷移関係を作成し、Ｒに追加する。
【０１００】
ステップＳ３０５において、ｑがＳに含まれているかどうかで処理を分岐する。含まれている場合にはステップＳ３０７へジャンプする。含まれていない場合にはステップＳ３０６において状態ｑについて再帰的にステップＳ３０１〜ステップＳ３０７を実行する。Ｓに追加される可能性のある状態は、ステップＳ２０１〜ステップＳ２０３で作成した有限状態遷移系の状態の組み合わせであることから有限であるため、この手続きはいずれ必ず停止する。
【０１０１】
本実施例における画面ＵＩ有限状態遷移系を有向グラフで表現すると図１６の通りとなる。単純化するため遷移のラベル記述を省略している。各状態は図１５の各有限状態遷移系の現在の状態の集合を表しており、画面状態表及び状態遷移表と同等の情報を持つ。
【０１０２】
＜状態遷移表出力：Ｓ２０５＞
ステップＳ２０５において、状態遷移モデル表示部１０８は、ステップＳ２０４で作成した有限状態遷移系（これを状態遷移モデルと呼んでもよい）を画面状態表及び状態遷移表として出力する。有限状態遷移系の各状態にそれぞれ識別名を定め画面状態表の列名とし、各ウィジェットのプロパティにそれぞれ識別名を定め、画面状態表の行名とする。
【０１０３】
ステップＳ２０４で作成した有限状態遷移系の状態はウィジェットのプロパティに対応する有限状態遷移系の状態の集合であるため、その情報を利用して画面状態表中のすべての空欄を記入する。一部を省略した画面状態表を図１７に示す。
【０１０４】
次に、画面状態表と同一の列を持つ状態遷移表を作成し、ステップＳ２０４で作成した有限状態遷移系の各遷移関係のラベルを状態遷移表の行名とする。各遷移関係について、遷移元状態の列におけるラベルの行に該当する欄に遷移先状態の列名を記入する。すべての遷移関係について状態遷移表への記述が終了した後、状態遷移表に空欄があれば、すべての空欄に"／"を記入する。一部を省略した状態遷移表を図１８に示す。図１８において、例えば、遷移元状態が状態１であり、ラジオボタン１'ＯｎＣｌｉｃｋのイベント（ラベル）で状態３に遷移することが示されている。
【０１０５】
＜入出力の形式＞
本実施の形態に係る状態遷移モデル作成装置１００ではプロパティ初期値、ユーザ定義値、表示条件・操作可能条件、イベント設計情報は表形式で入力しているが、入力の形式は表に限るものではなく、独自の入力インタフェースを使用しても良い。また、出力形式は画面状態表、状態遷移表に限るものではなく、有向グラフとしてグラフィカルに表示する等、他の形式で出力しても良い。
【０１０６】
（実施の形態の効果）
本実施の形態によれば、画面ＵＩの設計情報として自然な形式であるウィジェットのプロパティ値の遷移及びイベント発生条件の記述から、矛盾を含まない画面状態表及び状態遷移表に相当する状態遷移モデルを生成し、モデルを加工することで画面状態表及び状態遷移表を出力することができる。
【０１０７】
また、ウィジェットのデフォルトの設計情報を用いることで、入力する設計情報が最少化されるため、画面ＵＩ設計に要する手間の大幅な削減に寄与する。プロパティごとの小さな有限状態遷移系の集合としてモデル化されているため、画面ＵＩの部分的な振る舞いの確認、修正を行いやすい。
【０１０８】
作成した有限状態遷移系は、表形式で出力する以外に設計情報の機械による自動検証に利用することができる。
【０１０９】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【０１１０】
１００  状態遷移モデル作成装置
１０１  ウィジェット配置設計部
１０２  表示条件・操作可能条件設計部
１０３  イベント設計部
１０４  デフォルト設計記憶部
１０５  設計情報記憶部
１０６  状態遷移モデル作成部
１０７  状態遷移モデル記憶部
１０８  状態遷移モデル表示部
【図１】
2016224624.tif 000003
【図２】
2016224624.tif 000004
【図３】
2016224624.tif 000005
【図４】
2016224624.tif 000006
【図５】
2016224624.tif 000007
【図６】
2016224624.tif 000008
【図７】
2016224624.tif 000009
【図８】
2016224624.tif 000010
【図９】
2016224624.tif 000011
【図１０】
2016224624.tif 000012
【図１１】
2016224624.tif 000013
【図１２】
2016224624.tif 000014
【図１３】
2016224624.tif 000015
【図１４】
2016224624.tif 000016
【図１５】
2016224624.tif 000017
【図１６】
2016224624.tif 000018
【図１７】
2016224624.tif 000019
【図１８】
2016224624.tif 000020