JP2016224623A - 画面ui検証装置、画面ui検証方法、及びプログラム - Google Patents

画面ui検証装置、画面ui検証方法、及びプログラム Download PDF

Info

Publication number
JP2016224623A
JP2016224623A JP2015108948A JP2015108948A JP2016224623A JP 2016224623 A JP2016224623 A JP 2016224623A JP 2015108948 A JP2015108948 A JP 2015108948A JP 2015108948 A JP2015108948 A JP 2015108948A JP 2016224623 A JP2016224623 A JP 2016224623A
Authority
JP
Japan
Prior art keywords
screen
state
event
widget
design information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015108948A
Other languages
English (en)
Inventor
卓弥 岩塚
Takuya Iwatsuka
卓弥 岩塚
剛志 大島
Tsuyoshi Oshima
剛志 大島
俊文 榎本
Toshibumi Enomoto
俊文 榎本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015108948A priority Critical patent/JP2016224623A/ja
Publication of JP2016224623A publication Critical patent/JP2016224623A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】画面UIのモデル検査において、画面UIの操作順序に関する一部の制約条件について明示的に記述することなく、自動的に制約条件を推測して検証することにより、人手で入力する制約条件を削減する。
【解決手段】画面UIの設計の検証を行うための画面UI検証装置において、前記画面UIの設計情報を記憶する記憶手段と、前記設計情報を用いて、前記画面UIにおいて依存性を有するウィジェット間の遷移関係を計算し、当該遷移関係の遷移先状態であるイベント処理実行後の状態において、当該イベントの発生源であるウィジェットについての所定の条件が満たされているという制約条件を作成する作成手段と、前記制約条件を含むモデル検査用モデルを入力することによりモデル検査を実行する検査実行手段とを備える。
【選択図】図4

Description

本発明は、GUIアプリケーションの設計手法の分野で、画面UIの設計を検証するにあたり、設計情報から画面UIの操作順序に関する制約を推測し、制約を含めたモデル検査用のモデルを作成してモデル検査を行う技術に関連するものである。
以下、画面UIの設計、モデル検査、先行技術について説明する。
(画面UIの設計)
画面UIとはアプリケーションにおいて、ユーザが情報を入力し、アプリケーションに実行させる処理を選択するために、画面上に表示されるインタフェースを指す。画面UIでは、情報の入力や処理の選択のために、開発に利用するライブラリ等によって予め定義された、テキストフィールドやボタン等の有限種類のウィジェットが組み合わされて利用される。
ウィジェットはそれぞれの性質を表すためのプロパティを持ち、プロパティ値を変更することによって状態が変化する。例えば、チェックボックスはチェック状態というプロパティを持ち、チェック有りとチェック無しの二つのプロパティ値の間で変化する。プロパティ値は、ユーザによるウィジェットの操作によって発生するイベントを契機として変化する。一般的には、画面上に表示するか否か、操作可能か否かといった状態もプロパティとして扱われるが、これらの状態はイベントの発生条件に関わるため、ここではそれぞれ表示状態、操作可能状態として他のプロパティとは分けて扱う。
画面UIの例を図1に示す。図1(a)に示す画面UI状態1ではチェックボックスとボタンが表示されており、チェックボックスは操作可能でボタンは操作不能である。ここでチェックボックスをクリックすると図1(b)の画面UI状態2に遷移するものとする。画面UI状態2ではチェックボックスのチェック状態がチェック有りになっており、それに伴いボタンが操作可能になっている。ここでボタンをクリックすると図1(c)の画面UI状態3に遷移するものとする。画面UI状態3では新たにテキストフィールドが表示されている。このように、画面UIの設計者は、処理内容に応じて必要なウィジェットのみを表示・操作可能な状態とし、他のウィジェットを非表示・操作不能な状態にすることでユーザによる画面UIの操作順序に制限を課す。ユーザは、設計者の意図した操作順序に従うことにより、情報の入力及び処理の選択を直感的に行うことができる。
設計者は各ウィジェットの表示状態や操作可能状態の組み合わせと状態の遷移について、画面状態表及び状態遷移表と呼ばれる表を作成する。図1に対応する画面状態表、状態遷移表の一部の例を図2と図3にそれぞれ示す。
設計者は、画面UI設計の際には、設計者の意図していない画面UIの操作手順によって不正な画面UIの状態に到達しないことを検査するために、画面状態表と状態遷移表を目視で確認する。画面上に多数のウィジェットが配置される場合、画面状態表、状態遷移表の項目数が爆発的に増大するため、目視による検査には大きな手間を要する。また目視による検査では、ユーザが設計者の意図しない順序で操作を行うことにより不正な状態へと遷移する可能性を見落としてしまうといった問題点がある。
(モデル検査)
モデル検査は、有限状態遷移系として記述されたモデルが、時相論理式として記述された仕様を満たすか否かを、網羅的に検査することにより判定する技術である。有限状態遷移系とは、状態の有限集合、初期状態、遷移関係の集合の3つ組から成る系であり、初期状態から開始し、遷移関係によって現在の状態が遷移する。また、時相論理式とは、「すべての時点でXが成り立つ」「ある時点でYが成り立つ」等の時間によって真偽が変化する命題を記述するための論理式である。モデル検査では線形時相論理(LTL)や計算木論理(CTL)といった時相論理が用いられる。なお、本明細書で使用する主な用語の定義についてはまとめて実施の形態の冒頭で説明する。
モデル検査技術の実装であるモデル検査器を利用することにより、検査は自動的に実行できる。ハードウェア及びソフトウェアの設計情報を有限状態遷移系としてモデル化し、モデル検査器による検査を行うことで、人間によるレビューでは見落としやすい不具合を早期に発見することができるというメリットがある。
ただし、ハードウェアやソフトウェアの設計情報が有限状態遷移系として与えられることは稀であるため、モデル検査を行う際には、通常の設計作業とは別に設計情報のモデル化を行う場合が多い。また、検査すべき仕様を時相論理式で記述した制約条件として与える必要がある。モデル及び制約条件は使用するモデル検査器によって定められた特別な記述言語で記述しなければならず、モデル検査器に精通していない設計者にとっては扱いづらいという問題がある。
(先行技術)
アプリケーションの操作順序に関して検証を行う方法としては、Webアプリケーションにおいて、画面間の遷移が予め定義した遷移順序等の遷移規則に従って遷移を行うか否かをモデル検査により検証する方法が提案されている(例えば、非特許文献1)。
上記のような装置や方法を用いて、モデル検査で設計者の意図しない状態への到達を検査することにより、目視では見落としやすい遷移も手間をかけずに漏れなく発見することができる。
Minmin Han and Christine Hofmeister. Modeling and verification of adaptive navigation in web applications. In Proceedings of the 6th International Conference on Web Engineering, ICWE '06, pp. 329-336, New York, NY, USA, 2006. ACM.
非特許文献1に開示されているような従来技術では、モデル検査を行うためには制約条件として遷移順序を設計者が与える必要があった。また、画面間の遷移における順序関係を検証することはできるが、同一画面内での動的な画面UIの変化による操作順序の検証を行うことはできない。具体的には、例えば図1において、テキストフィールドの入力文字列の変化はボタンをクリックした後で行われるといった検証に対応していない。
画面UIの設計において、設計者は画面UIの操作順序を想定して設計を行うが、これを制約条件として網羅的に明記するには大きな手間を要し、また、設計者の意図しない手順による遷移はそもそも設計者の考えから漏れている場合が多く、記述漏れが生じるという課題がある。
本発明は上記の点に鑑みてなされたものであり、画面UIのモデル検査において、画面UIの操作順序に関する一部の制約条件について明示的に記述することなく、自動的に制約条件を推測して検証することにより、人手で入力する制約条件を削減することを可能とする技術を提供することを目的とする。
本発明の実施の形態によれば、画面UIの設計の検証を行うための画面UI検証装置であって、
前記画面UIの設計情報を記憶する記憶手段と、
前記設計情報を用いて、前記画面UIにおいて依存性を有するウィジェット間の遷移関係を計算し、当該遷移関係の遷移先状態であるイベント処理実行後の状態において、当該イベントの発生源であるウィジェットについての所定の条件が満たされているという制約条件を作成する作成手段と、
前記制約条件を含むモデル検査用モデルを入力することによりモデル検査を実行する検査実行手段と
を備えることを特徴とする画面UI検証装置が提供される。
また、本発明の実施の形態によれば、画面UIの設計の検証を行うための画面UI検証装置が実行する画面UI検証方法であって、
画面UI検証装置が備える記憶手段に格納された設計情報を用いて、前記画面UIにおいて依存性を有するウィジェット間の遷移関係を計算し、当該遷移関係の遷移先状態であるイベント処理実行後の状態において、当該イベントの発生源であるウィジェットについての所定の条件が満たされているという制約条件を作成する作成ステップと、
前記制約条件を含むモデル検査用モデルを用いてモデル検査を実行する検査実行ステップと
を備えることを特徴とする画面UI検証方法が提供される。
本発明の実施の形態によれば、画面UIのモデル検査において、画面UIの操作順序に関する一部の制約条件について明示的に記述することなく、自動的に制約条件を推測して検証することにより、人手で入力する制約条件を削減することを可能とする技術が提供される。
画面UIの例を示す図である。 画面状態表の例を示す図である。 状態遷移表の例を示す図である。 本実施の形態における画面UI検証装置100の構成図である。 設計情報の構成例を示す図である。 本実施の形態における画面UI検証装置100の動作を説明するためのフローチャートである。 本実施の形態における画面UI検証装置100の動作を説明するためのフローチャートである。 ウィジェット配置設計情報を示す図である。 初期値表を示す図である。 定義値表を示す図である。 表示条件・操作可能条件表を示す図である。 イベント表を示す図である。 イベント順序情報を示す図である。 画面UI状態遷移モデルを示す図である。 イベント実行状態有限状態遷移系に相当するモデル記述を示す図である。 ウィジェットのプロパティに対応する有限状態遷移系に相当するモデル記述を示す図である。 状態遷移を制御する有限状態遷移系に相当するモデル記述を示す図である。 画面UIの操作順序制約を示す図である。 モデル検査実行部による出力を示す図である。 モデル検査実行部による出力(設計情報の記法)を示す図である。
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
(実施の形態における用語の説明)
本発明の実施の形態の内容を説明する前に、まず、主な用語についての定義を説明する。
ウィジェット:ユーザによる情報の入力や処理の実行を行うために、画面UIに用いられる部品。開発に利用するライブラリ等によって複数種類のウィジェットが予め用意されている。
プロパティ:ウィジェットごとに定義されている、ウィジェットの状態を表す属性。
表示状態:ウィジェットが画面に表示されているか、非表示であるかの別。表示、非表示という二つの表示状態値のいずれかを指す。
操作可能状態:ウィジェットが操作可能であるか、操作不能であるかの別。操作可能、操作不能という二つの操作可能状態値のいずれかを指す。
イベント:ウィジェットの操作等により発生する処理の契機となる事象。
画面UIの状態:画面上に配置されたウィジェットのある時点におけるプロパティ値及び表示状態値・操作可能状態値の集合。
画面状態表:設計するアプリケーションにおいて到達し得る画面UIの状態を網羅した表。列タイトルに状態名、行タイトルにウィジェットのプロパティ種別又は表示状態、操作可能状態を持つ。画面UIの状態におけるウィジェットのプロパティ値、表示状態値、操作可能状態値が記述される。
状態遷移表:画面UIの状態間の遷移関係を網羅した表。列タイトルに状態名、行タイトルにイベント名を持つ。画面UIの状態におけるイベント発生時の遷移先の状態が記述される。
画面遷移:サーバに新しい画面を表示するための資源へのアクセスを要求し、その結果として現在の画面に代わり新しい画面をディスプレイに表示すること。
ウィジェット間の依存性:ウィジェットAを操作するために、ウィジェットBのプロパティが特定のプロパティ値であることが要求される場合、ウィジェットAとウィジェットBの間に依存性があると定義する。
画面UIの操作順序:入力する情報や実行する処理の間に依存関係が存在する場合に、アプリケーションのユーザが操作すべきウィジェットの順序。設計者は、使用性を高めるために、依存関係のないウィジェットについては操作順序を制限せず、依存関係のあるウィジェットでは依存元のウィジェットを操作するまで依存先のウィジェットを非表示又は操作不能状態にすることで操作順序を暗黙的に規定する。
操作の実行状態:画面UIに操作順序がある場合において、どの操作が実行され、どの操作が実行されていないかを区別した状態。
一階の述語論理式:「XはYである。」といった命題と、命題の論理和、論理積、論理否定、及び「すべての〜について」「ある〜について」といった限量子から構成される式。述語を引数にとる述語は一階の述語論理式には含まれない。
時相論理式:「すべての時点でXが成り立つ」「ある時点でYが成り立つ」等の時間によって真偽が変化する命題を記述するための論理式。モデル検査では線形時相論理(LTL)や計算木論理(CTL)といった時相論理が用いられる。
走査:集合、列など複数の要素から成る構造に対して、各要素一つひとつを取り出して順に処理を行うこと。
有限状態遷移系:状態の有限集合、初期状態、遷移関係の集合の3つ組から成る系。初期状態から開始し、遷移関係によって現在の状態が遷移する。
有限状態遷移系における状態:ある時点における系の性質を他の時点の性質と区別するための単位。
遷移関係:遷移元状態、遷移ラベル、遷移先状態の3つ組。
遷移の実行:有限状態遷移系において現在の状態が遷移関係の遷移元状態と一致している場合に、当該有限状態遷移系の現在の状態を遷移先状態に変化させること。実行する遷移に遷移ラベルがついている場合、ラベルによる遷移の実行と呼ぶ。
遷移ラベル:有限状態遷移系の遷移につけられたラベル。複数の有限状態遷移系において、現在の状態を遷移元状態とする同一の遷移ラベルを持つ遷移関係がそれぞれ定義されている場合、当該遷移ラベルによる遷移は同時に実行される。
マッピング:キーと値の2つ組。
マッピングのキー:マッピングの集合があるとき、個々のマッピングを一意に識別するための要素。そのため、マッピングの集合中でキーが重複することは許されない。
NuSMV:モデル検査器の一つ。
(実施の形態の概要)
本実施の形態では、GUIアプリケーションの設計時に、画面上に配置されるウィジェットに着目し、各ウィジェットの表示条件・操作可能条件やイベント設計情報を入力として、操作順序に関する設計上の制約条件を推測する。推測した制約条件をモデル検査器によって自動的に検証することができる。すなわち、ウィジェットの表示状態や操作可能状態の変化と操作順序の関連を用いることにより、操作順序に関する制約条件について、設計者が明示的に与えることなく、設計情報を基に自動的に推測することができる。以下、本実施の形態の内容を説明する。
まず、概要を説明する。本実施の形態では画面UI検証装置100が提供される。当該画面UI検証装置100は、画面UIの設計において用いられるウィジェットの配置設計情報、画面上に配置されたウィジェットについて表示条件及び操作可能条件の規則を記した表示条件・操作可能条件設計情報、イベント発生時のウィジェットの状態の変化を記したイベント設計情報を記憶する機構と、画面上に配置されたウィジェットのプロパティの遷移を有限状態遷移系としてモデル化した画面UI遷移モデルを記憶する機構と、画面UIの操作順序に関する暗黙的な制約条件を導出する機構と、画面UIの操作順序に従って状態遷移をする有限状態遷移系を作成する機構と、有限状態遷移系と制約条件をモデル検査器に入力する形式に変換する機構と、モデル検査を実行する機構とを含む。
本実施の形態では、既に説明したとおり、有限状態遷移系を状態の集合、初期状態、遷移関係の集合の3つ組として定義する。遷移関係は遷移元状態、遷移ラベル、遷移先状態の3つ組と定義する。有限状態遷移系の現在の状態は初期状態から開始し、遷移関係によって遷移する。有限状態遷移系が複数ある場合、一つの有限状態遷移系がある遷移ラベルを持つ遷移関係によって遷移するとき、他の有限状態遷移系が同じ遷移ラベルを持つ遷移関係を持ち、かつ現在の状態からその遷移関係による遷移が可能な場合、それらの有限状態遷移系は同じ遷移ラベルを持つ遷移関係によって同時に遷移を起こすものとする。
本実施の形態に係る画面UI検証装置100では、画面上のウィジェットのプロパティ値の集合と対応した状態を持ち、イベントと対応したラベルの付いた遷移関係を持つ有限状態遷移系を画面UI状態遷移モデルとして検証に利用する。この有限状態遷移系は入力としてユーザから受け取っても良いし、ウィジェット配置設計情報や表示条件・操作可能条件といった他の設計情報から機械的に作成しても良い。
画面UIにおいて、ウィジェットは他のウィジェットのプロパティ値に依存して表示状態及び操作可能状態等の、イベントの発生条件に関わる状態を変化させることが多い。そのため、設計者はウィジェットの表示条件・操作可能条件等はウィジェットのプロパティ値を利用して記述する。また、ウィジェットの表示状態や操作可能状態等は、プロパティ値に依存せず、ボタンクリック等のイベントの発生のみを契機として変化する場合もある。この場合、イベント設計情報に表示条件・操作可能条件等の変化を記述する。ユーザはウィジェット配置設計情報、表示条件・操作可能条件等及びイベント設計情報を画面UI検証装置100に入力する。
画面UIの設計時には、操作順序に関する制約を明示する代わりに、表示条件・操作可能条件とイベント設計情報によって表示状態、操作可能状態等のイベントの発生条件に関わる状態を変化させ、ウィジェット間に依存関係を持たせる。つまり、画面UIの操作順序に関する制約は表示条件・操作可能条件やイベント設計情報という形式で設計情報に暗黙的に含まれていると言える。本実施の形態では、表示条件・操作可能条件とイベント設計情報からウィジェットの依存関係を計算し、設計情報に含まれている操作順序の制約を推測する。
具体的には、画面UIの操作によってある前提条件を満たした後に、あるイベントを実行させることを意図した設計を行う場合、前提条件をイベントの発生源となるウィジェットの表示条件・操作可能条件に設定することで操作順序を制限する。
この設計に対して、本実施の形態に係る画面UI検証装置100は表示条件・操作可能条件からウィジェットの依存関係を計算し、イベント処理実行後の状態においては、イベントの発生源であるウィジェットの表示条件・操作可能条件が満たされていることが期待されていると推測する。
例えば図1の例では、設計情報より、テキストフィールドが表示された状態においては、ボタンの操作可能条件であるチェックボックスのチェック状態がチェック有りとなっていることが期待されていると推測される。従って、ボタンのクリック後の状態においてチェックボックスのチェック状態がチェック有りであることを操作順序に関する制約とする。
推測した制約条件についてモデル検査を行うために、ウィジェットの表示状態・操作可能状態を変化させるイベントについて、実行前の状態と実行後の状態のそれぞれの状態を持つ有限状態遷移系を作成する。また、あるイベントの実行が他のイベントの必要条件となっている場合、前者の実行後の状態と後者の実行前の状態をマージして一つの有限状態遷移系とする。この有限状態遷移系は画面UIにおける操作の実行状態を表す。
入力された画面UI状態遷移モデルである有限状態遷移系と、作成した実行状態の有限状態遷移系及び導出した制約条件をモデル検査器の入力となる記述に変換して、モデル検査を実行し、結果を出力する。
なお、本実施の形態において、イベントの発生条件に関わる状態として表示条件、操作可能条件を用いているが、これら二種の状態に限定するものではなく、他にイベントの発生条件に関わる状態が存在する場合は、これら二種の状態と同様に扱う。
以下、本実施の形態における画面UI検証装置100の構成と動作をより詳細に説明する。
(装置構成)
図4に、本実施の形態における画面UI検証装置100の構成例を示す。図4に示す通り、本実施の形態の画面UI検証装置100は、設計情報記憶部101、画面UI状態遷移モデル記憶部102、操作順序制約作成部103、実行状態モデル作成部104、モデル検査用モデル作成部105、及びモデル検査実行部106を備える。
設計情報記憶部101は、入力された画面上のウィジェット配置設計情報、ウィジェットの表示条件・操作可能条件設計情報、及びイベント設計情報を記憶する。画面UI状態遷移モデル記憶部102は画面UI状態遷移モデルを記憶する。操作順序制約作成部103は、入力された設計情報から操作順序に関する制約を作成する。実行状態モデル作成部104は、画面UI操作の実行状態を表現する実行状態モデルを作成する。モデル検査用モデル作成部105は、記憶された画面UI状態遷移モデルと作成された実行状態モデル及び順序制約からモデル検査用のモデルを作成する。モデル検査実行部106は当該モデルに基づきモデル検査を行う。
なお、図4に示す機能区分は一例に過ぎない。本実施の形態で説明する処理を実行できるのであれば、図4に示す機能区分に限られず、任意の機能区分としてよい。
本実施の形態に係る画面UI検証装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、画面UI検証装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
(設計情報)
本実施の形態の画面UI検証装置100において用いる設計情報の構成例を図5に示す。図5においてSet[T]はTの有限個の集合を表し、Tuple[T,...,T]はT,...,Tから成るn組を表し、Seq[T]はTの0以上の列を表す。Tは変数であり、例えば、Set[ウィジェット設計情報]はウィジェット設計情報の有限個の集合を意味する。
設計情報はウィジェット設計情報の集合である。UI Designは設計情報であり、その実体はウィジェットの集合である。ウィジェット設計情報は、ウィジェットID、ウィジェット種別、イベント設計情報の集合、プロパティ設計情報の集合、表示条件、操作可能条件の組で構成される。ウィジェットIDはウィジェットを一意に識別するための識別子である。ウィジェット種別は、テキストフィールドやチェックボックス、セレクトボックス等、画面UIとして利用可能な種別が予め定義されている。イベント設計情報はイベント種別と、処理命令の列の2つ組で構成される。
イベント種別は、onClickやonChange等、ウィジェットごとに有効な種別が予め定義されている。処理命令は、ウィジェットID、プロパティ種別、プロパティ値の組、又はウィジェットID、条件種別、真理値の組で表される。条件種別は表示状態か操作可能状態のいずれかであり、真理値は真か偽のいずれかである。これはウィジェットIDのウィジェットのプロパティ種別の与えられたプロパティ値を変更するか又は表示条件・操作可能状態を与えられた真理値に変更することを表現している。
プロパティ設計情報はプロパティ種別、プロパティ値、プロパティ値の集合の組として表現される。3つ組の2つ目はプロパティ初期値を表している。プロパティ種別は、チェックボックスのチェック状態やセレクトボックスの選択値等、ウィジェットごとに有効な種別が予め定義されている。プロパティ値にはチェック状態のチェック有・チェック無等の予め定義された値と、テキストフィールドの入力値である文字列等のユーザによって定義されるユーザ定義値がある。
表示条件・操作可能条件は、論理式として表される。ここでの論理式はウィジェットIDとプロパティ種別とプロパティ値を用いて記述された述語である。イベント順序情報は、ウィジェットIDとイベント種別の2つ組からウィジェットIDの集合へのマッピングとして表される。ウィジェットIDとイベント種別の2つ組によりイベントを一意に識別し、イベントによって表示状態又は操作可能状態が変化するウィジェットの集合をウィジェットIDの集合で表している。
(画面UI検証装置100の動作概要)
次に、図6及び図7を参照して、本実施の形態に係る画面UI検証装置100の動作の概要を説明する。
図6に示すように、画面UI検証装置100は、ユーザの入力を待機し(ステップS101)、ユーザがウィジェット配置設計情報、表示条件・操作可能条件設計情報、イベント設計情報の入力を行うたびにそれぞれ設計情報記憶部101の設計情報を更新する(ステップS102、S103)。更に画面UI検証装置100は、更新された設計情報を基に、イベント順序情報を更新する(ステップS104)。また、画面UI検証装置100は、画面UI状態遷移モデルの入力を受けて画面UI状態遷移モデル記憶部102に記憶されたモデルを更新する(ステップS102、S105)。
必要な情報が入力されると(ステップS106のYes)、画面UI検証装置100は、イベント順序情報を用いてイベントの実行状態を区別するための有限状態遷移系を作成し(図7のステップS201)、イベント順序情報と表示条件・操作可能条件から操作順序に関する制約条件を作成し(ステップS202)、各種有限状態遷移系と制約条件、表示条件・操作可能条件を用いてモデル検査実行部106(モデル検査器)への入力となるモデル記述を作成する(ステップS203)。画面UI検証装置100は、モデル検査を実行した後、モデル記述と設計情報の対応関係を利用して検証結果の可読性を高め、出力する(ステップS204)。
(動作の詳細)
以下に各ステップの処理を詳細に説明する。
<ウィジェット配置設計情報の入力:S101、S102、S103>
画面UI検証装置100がステップS101においてユーザの操作を待機している状態にあるとき、ステップS102において、ユーザは例えば図8に示すように、画面上のウィジェット配置設計情報を入力することができる。
図8中の1はラジオボタングループ、1'及び1"はラジオボタン、2、5及び7はボタン、3はチェックボックス、4はテキストフィールド、6はセレクトボックスである。
ウィジェットにはそれぞれ一意に識別可能な識別子が定められる。本例では、1の識別子をラジオボタングループ1とし、1'及び1"の識別子をそれぞれラジオボタン1'、ラジオボタン1"とし、2、5、7の識別子をそれぞれボタン2、ボタン5、ボタン7とし、3の識別子をチェックボックス3とし、4の識別子をテキストフィールド4とし、6の識別子をセレクトボックス6とする。
また、画面上に配置されたウィジェットについて、ウィジェット種別、プロパティ種別に応じて、必要な場合には図10に示すようにユーザ定義値を入力する。更に、ウィジェット種別、プロパティ種別に応じて、必要な場合には図9に示すようにプロパティ初期値を入力する。
画面UI検証装置100は、入力されたウィジェット配置設計情報、ユーザ定義値、プロパティ初期値を用い、ステップS103において、設計情報記憶部101に記憶された設計情報を更新する。設計情報記憶部101では、画面上のウィジェットに対してウィジェット種別に応じて、ウィジェット設計情報に有効なイベント種別、プロパティ種別、有効なプロパティ値の集合を設定する。
<表示条件・操作可能条件設計情報の入力:S101、S102、S103>
画面UI検証装置100がステップS101においてユーザの操作を待機している状態にあるとき、ステップS102において、ユーザは図11に示すように、ウィジェットの表示条件・操作可能条件を入力する。表示条件・操作可能条件は一意に意味の定まる一階の述語論理式に対応付けられる形式で記述されているものとする。
入力された表示条件・操作可能条件を用い、ステップS103では設計情報記憶部101に記憶された設計情報を更新する。具体的には入力された表示条件・操作可能条件を論理式に変換し、設計情報中のウィジェット設計情報の表示条件・操作可能条件にそれぞれ設定する。
表示条件・操作可能条件中に出現するウィジェットのウィジェット種別、プロパティ種別に対して、ユーザ定義値として任意の文字列が許されている場合、プロパティ値として任意の文字列を使用することができる。その場合、プロパティ値として使用した文字列を当該ウィジェット設計情報のユーザ定義値に追加する。
<イベント設計情報の入力:S101、S102、S103>
設計者はまずイベント発生時のウィジェットのプロパティ値の変化を設計する。本実施の形態では、ウィジェットの一般的な動作については、ウィジェット種別ごとに暗黙的に定義されているため、ユーザはウィジェットの一般的な動作から外れたプロパティ値の変化のみを入力する。
画面UI検証装置100がステップS101においてユーザの操作を待機している状態にあるとき、ステップS102において、ユーザは例えば図12に示すように、イベント設計情報を入力する。
画面UI検証装置100は、入力されたイベント設計情報を用い、ステップS103において、設計情報記憶部101に記憶された設計情報を更新する。具体的には、入力されたイベント設計情報を内部モデル中のウィジェット設計情報のイベント設計情報として設定する。
イベント設計情報中に出現するウィジェットのウィジェット種別、プロパティ種別に対して、ユーザ定義値として任意の文字列が許されている場合、プロパティ値として任意の文字列を使用することができる。その場合、プロパティ値として使用した文字列を当該ウィジェット設計情報のユーザ定義値に追加する。
イベント設計情報の処理命令中に、表示状態・操作可能状態を変化させる処理が記述されている場合、変化対象のウィジェットの表示条件・操作可能条件にイベント実行前後の条件を追加する。
<ベント順序情報の更新:S104>
画面UI検証装置100は、ステップS104において、イベント設計情報からイベント順序情報を作成する。
イベントの処理命令によってウィジェットが表示又は操作可能になる場合、当該ウィジェットの操作はイベント実行後に行われることが期待されていると推測できる。そのため、各ウィジェットのイベント設計情報に含まれる処理命令を走査し、表示状態又は操作可能状態を真に設定する処理命令があれば、イベントの発生源であるウィジェットのウィジェットIDとイベント種別の組から表示状態・操作可能状態が変化させられるウィジェットのウィジェットIDの集合へのマッピングをイベント順序情報に加える。
例として、図13に、図12のイベント設計情報から作成されるイベント順序情報を示す。ボタン2のonClickではチェックボックス3、テキストフィールド4、ボタン5が表示され、ボタン5のonClickではセレクトボックス6とボタン7が表示されるため、イベント順序情報にイベントとウィジェットIDのマッピングが追加されている。この情報から、例えば、ボタン2のonClick実行後にボタン5を発生源とするイベントが実行可能になることが分かるため、イベント実行順序としては、ボタン2のonClick、ボタン5のonClickという制約があるものと推測される。
<画面UI状態遷移モデルの入力:S101、S102、S105>
画面UI検証装置100がステップS101においてユーザの操作を待機している状態にあるとき、ステップS102において、ユーザは図14に示すように、画面UI状態遷移モデルを入力する。
図14(a)におけるラベル付き有限状態遷移系の各状態は、画面上に配置されたウィジェットのプロパティ値及び表示状態値・操作可能状態値の集合に対応している。例えば、1とラベル付けられた状態では、図14(b)の表に示す通り、ラジオボタングループ1の選択値が未選択、表示状態は表示、操作可能状態は操作可能、ボタン2の表示状態は表示、操作可能状態が操作不能である。
また、図14(a)に示す遷移に付けられたラベルはイベントと対応しており、例えば、aとラベル付けられた遷移は図14(c)の表に示す通り、ラジオボタン1'のOnClickイベントと対応する。
<入力情報のチェック:S106>
画面UI検証装置100は、ステップS106において、設計情報記憶部101及び画面UI状態遷移モデル記憶部102にウィジェット配置設計情報、表示条件・操作可能条件設計情報、イベント設計情報、画面UI状態遷移モデルが記憶されている場合、ステップS201〜ステップS204のモデル検査フローを実施し、そうでない場合はステップS101の待機状態に戻る。
<イベント実行状態有限状態遷移系の作成:S201>
ステップS201では、実行状態モデル作成部104が、ステップS104で作成されたイベント順序情報を用いて有限状態遷移系を作成する。
具体的には、実行状態モデル作成部104は、イベント順序情報に含まれるマッピングを走査し、マッピングのキー中のウィジェットIDが、マッピングの値であるウィジェットIDの集合に一度も現れないキーの集合を作成し、この集合に含まれるそれぞれのキーを唯一の要素とする列を作成する。図13の例では、キーの中のボタン5はイベント順序情報の値の中に現れるため、ボタン2のみを要素とした集合が作成されたのち、(ボタン2,OnClick)のみを要素とする列が一つ作成される。
そして、作成した列に含まれるキーをイベント順序情報のキーから取り除いたマッピングを作成する。図13の例では、キー(ボタン5,OnClick)とその値からなるマッピングが作成される。先に作成した列に含まれるキーそれぞれについて、イベント順序情報のマップ先の値のウィジェットIDの集合に含まれるウィジェットIDが、新しく作成したマッピングのキー中に現れる場合、そのキーを列に追加する。図13の例では、先に作成した列のキー(ボタン2,OnClick)について、イベント順序情報のマップ先の値のウィジェットIDの集合に含まれるウィジェットID{チェックボックス3、テキストフィールド4、ボタン5}のうち、ボタン5が、新しく作成したマッピングのキー中に現れるので、(ボタン2,OnClick)の次に(ボタン5,OnClick)が続く列が作成される。これは、ボタン2とボタン5の依存関係が計算されたことに相当する。
作成した列それぞれに対して、列に含まれる組数に1を加算した数の状態を持つ有限状態遷移系を作成する。列に含まれる組に対してラベルを対応付け、初期状態から列に含まれる順にラベル遷移を行うように遷移関係を追加する。図13に示す本実施例では初期状態から、ボタン2のOnClick実行後かつボタン5のOnClick実行前の状態に遷移し、さらにボタン5のOnClick実行後の状態に遷移する有限状態遷移系が作られる。これは、依存性を有するウィジェット間の遷移関係が計算されたことに相当する。
<制約条件の作成:S202>
ステップS202では、操作順序制約作成部103が、ステップS201で作成された有限状態遷移系と表示条件・操作可能条件を用いて画面UI操作順序に関する制約条件を作成する。具体的には、ステップS201で作成された有限状態遷移系の遷移関係それぞれに対し、現在の状態が遷移先状態ならばラベルに対応するイベントの発生源と成るウィジェットの表示条件・操作可能条件が満たされているという制約を作成する。
本実施例では、ボタン2のOnClickイベントの発生源のウィジェットであるボタン2の操作可能条件が図11で「ラジオボタングループ1の選択値が"b"である」と定義されているため、「ボタン2のOnClick実行後かつボタン5のOnClick実行前の状態においてラジオボタングループ1の選択値が"b"である」という制約が作成される。さらに、この制約条件に、ボタン5のOnClickイベントの発生源のウィジェットであるボタン5の操作可能条件を加えて、「ボタン5のOnClick実行後の状態において、OnClick実行前の状態においてラジオボタングループ1の選択値が"b"かつ、(チェックボックス3のチェック状態がチェック無しであるか、又はチェック有りでかつテキストフィールド4の入力文字列が空文字列でない)」という条件が作成される。尚、条件文中の括弧は結合順序を表している。
<モデル検査用モデルの作成:S203>
ステップS203では、モデル検査用モデル作成部105が、ステップS105で記憶された画面UI状態遷移モデルとステップS201で作成した有限状態遷移系及びステップS202で作成した制約条件を、モデル検査実行部106(例:モデル検査器NuSMV)に入力するための特別な記法で出力する。
図15はステップS201で作成した有限状態遷移系をモデル検査器NuSMVへの入力形式で出力したものの一部である。図16、図17は、ステップS105で入力された状態遷移モデルをモデル検査器NuSMVへの入力形式で出力したものの一部である。また、図18はステップS202で作成した制約条件を同様にNuSMVの入力形式で出力したものの一部ある。
画面UI状態遷移モデルは、各状態がウィジェットのプロパティ値の集合と対応付けられ、各遷移がイベントと対応付けられている。そのため、各ウィジェットのプロパティに対応する有限状態遷移系の集合と、それらの現在の状態から実行可能なイベントに対応するラベルを一つ選択して状態遷移を制御する有限状態遷移系に分離して記述する。
上述したとおり、図15はステップS201で作成した有限状態遷移系に対応する記述である。図15において、2行目〜3行目でs1、s2、s3の3状態を定義している。5行目は初期状態がs1であることを示す。7行目〜19行目では遷移関係を記述しており、現在の状態がs1のとき3というラベルによってs2に遷移し、現在の状態がs2のとき6というラベルによってs3に遷移することが記されている。ここでは、ボタン2のOnClickがラベルの3と対応付けられており、ボタン5のOnClickがラベルの6と対応付けられている。
図16はチェックボックス3のチェック状態に対応する有限状態遷移系の記述である。1行目のst_checkbox_1は有限状態遷移系の識別子である。直後のかっこ中のeはこの有限状態遷移系に外部から渡されるパラメータを表す。外部からのパラメータとしては、イベントに対応するラベルが渡される。
2行目〜3行目で状態の集合を定義している。checked、uncheckedの二つの状態を持つことが3行目に記されており、これはそれぞれ「チェック有り」、「チェック無し」のプロパティ値に対応している。5行目は初期状態の指定であり、ここではuncheckedを指定している。
6行目から14行目は状態の遷移の記述である。7行目から12行目が、e=4のときの遷移の記述である。ここで、4はチェックボックス3のOnClickに対応するラベルである。9行目の記述は、この有限状態遷移系の現在の状態がcheckedのとき、遷移先の状態として集合{unchecked}が与えられていることを意味する。遷移先の集合から非決定的に一つを選択して遷移する。この場合は集合の要素がuncheckedのみであるため、必ずuncheckedに遷移する。10行目も同様に現在の状態がuncheckedのときの遷移を記述している。11行目は、現在の状態がchecked、uncheckedのいずれでもない場合の遷移の記述であるが、この有限状態遷移系ではこれらの状態以外に遷移しないため、この遷移が起きることはない。
14行目はeが4でない場合の遷移の記述であり、その場合この有限状態遷移系は現在の状態と同じ状態に遷移することが記されている。
図17は状態遷移を制御する有限状態遷移系の記述である。3行目の記述は、イベントに対応するラベルの集合である。
4行目から8行目までは、実行可能なイベントを判別するために必要な、他の有限状態遷移系の状態を参照するための記述である。
10行目は次に実行するイベントに対応するラベルの初期値の設定であり、初期値としていずれのイベントにも対応しないラベルである−1を指定している。11行目は次に実行するイベントに対応するラベルの遷移の記述であり、12行目から47行目の記述で定義されている集合next_eventから非決定的に一つを選択する。
13行目、14行目の記述では、ラジオボタン1'のOnClickとラジオボタン1"のOnClickがそれぞれラベル1、2と対応付けられている。15行目から19行目の記述はボタン1のOnClickのラベルとの対応づけに関する記述である。ボタン2は図11より、ラジオボタングループ1の選択値が"b"の場合のみ操作可能となる。また、ステップS106で追加された表示条件・操作可能条件により、ボタン2をクリックした後には操作不能になる。そのため、17行目の記述により、ラジオボタングループ1の選択値に対応する有限状態遷移系とイベント実行状態に対応する有限状態遷移系に関する条件が満たされた場合にのみイベントがラベル3と対応付けられる。そうでない場合はイベントが実行できないことを表すために−1と対応付ける。24行目から39行目では同様に他のイベントとラベルを対応付けている。40行目から47行目で、next_eventが実行可能なイベントに対して対応づけられたラベルの集合として定義される。この中から一つのラベルを選択し、すべての有限状態遷移系が同期的に状態遷移を行う。
図18は制約条件の記述例を示す。例えば図18の1行目は、ボタン2のOnClick実行後かつボタン5のOnClick実行前の状態において、ラジオボタングループ1の選択値が"b"であるという制約条件を表す。
<モデル検査の実行:S207>
ステップS207ではステップS206で作成したモデルをモデル検査実行部106(モデル検査器)に入力し、結果を出力する。モデル検査実行部106は入力した制約条件に対する反例となるトレースを結果として出力する。
モデル検査の結果はモデル検査用モデルの記法に合わせて出力されるため、これを設計情報の記法に変換することで可読性を高める。具体的には、モデル検査実行部106の出力に含まれるラベルや状態を対応するイベントやプロパティ値に置換し、イベントによる画面UIの変化を表現した出力に変換する。
モデル検査実行部106による検証結果の出力と、設計情報の記法への変換後の出力をそれぞれ図19と図20に示す。図19と図20はいずれもイベント実行状態がボタン2のOnClick実行後でボタン5のOnClick実行前の状態のとき、ボタン2の実行前提となるラジオボタングループ1の選択値がbであるという条件が成り立たない場合のトレースを表している。これは、図14において1、3、5、4の順に遷移したトレースにあたる。
3つ以上の遷移の順序に関する制約条件を人手により作成することは一般には容易ではなく、これを自動で推測し、検査できるという点において本実施の形態の画面UIの検証装置100は画面UIの設計の検証に有用である。
(実施の形態の効果)
本実施の形態によれば、画面UIの設計情報に暗黙的に定義された画面UIの操作順序に関する制約の一部を推測し、制約条件を明示することなくモデル検査用モデルを自動的に作成することにより、検証を行うことができる。これによって、例えば、制約を一切記述することなく設計者の意図しない操作順序による不正な画面状態への到達を発見することが可能となる。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
100 画面UI検証装置
101 設計情報記憶部
102 画面UI状態遷移モデル記憶部
103 操作順序制約作成部
104 実行状態モデル作成部
105 モデル検査用モデル作成部
106 モデル検査実行部

Claims (7)

  1. 画面UIの設計の検証を行うための画面UI検証装置であって、
    前記画面UIの設計情報を記憶する記憶手段と、
    前記設計情報を用いて、前記画面UIにおいて依存性を有するウィジェット間の遷移関係を計算し、当該遷移関係の遷移先状態であるイベント処理実行後の状態において、当該イベントの発生源であるウィジェットについての所定の条件が満たされているという制約条件を作成する作成手段と、
    前記制約条件を含むモデル検査用モデルを入力することによりモデル検査を実行する検査実行手段と
    を備えることを特徴とする画面UI検証装置。
  2. 前記所定の条件は、前記イベントの発生源であるウィジェットについての表示条件又は操作可能条件である
    ことを特徴とする請求項1に記載の画面UI検証装置。
  3. 前記設計情報は、ウィジェットの配置設計情報と、画面上に配置されたウィジェットについての表示条件及び操作可能条件と、イベント発生時のウィジェットの状態の変化を表すイベント設計情報とを含み、
    前記作成手段は、前記表示条件及び操作可能条件と前記イベント設計情報とに基づいて前記遷移関係を計算する
    ことを特徴とする請求項1又は2に記載の画面UI検証装置。
  4. 画面UIの設計の検証を行うための画面UI検証装置が実行する画面UI検証方法であって、
    画面UI検証装置が備える記憶手段に格納された設計情報を用いて、前記画面UIにおいて依存性を有するウィジェット間の遷移関係を計算し、当該遷移関係の遷移先状態であるイベント処理実行後の状態において、当該イベントの発生源であるウィジェットについての所定の条件が満たされているという制約条件を作成する作成ステップと、
    前記制約条件を含むモデル検査用モデルを用いてモデル検査を実行する検査実行ステップと
    を備えることを特徴とする画面UI検証方法。
  5. 前記所定の条件は、前記イベントの発生源であるウィジェットについての表示条件又は操作可能条件である
    ことを特徴とする請求項4に記載の画面UI検証方法。
  6. 前記設計情報は、ウィジェットの配置設計情報と、画面上に配置されたウィジェットについての表示条件及び操作可能条件と、イベント発生時のウィジェットの状態の変化を表すイベント設計情報とを含み、
    前記作成ステップにおいて、前記画面UI検証装置は、前記表示条件及び操作可能条件と前記イベント設計情報とに基づいて前記遷移関係を計算する
    ことを特徴とする請求項4又は5に記載の画面UI検証方法。
  7. コンピュータを、請求項1ないし3のうちいずれか1項に記載の画面UI検証装置の各手段として機能させるためのプログラム。
JP2015108948A 2015-05-28 2015-05-28 画面ui検証装置、画面ui検証方法、及びプログラム Pending JP2016224623A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015108948A JP2016224623A (ja) 2015-05-28 2015-05-28 画面ui検証装置、画面ui検証方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015108948A JP2016224623A (ja) 2015-05-28 2015-05-28 画面ui検証装置、画面ui検証方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2016224623A true JP2016224623A (ja) 2016-12-28

Family

ID=57748230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015108948A Pending JP2016224623A (ja) 2015-05-28 2015-05-28 画面ui検証装置、画面ui検証方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2016224623A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018158939A1 (ja) * 2017-03-03 2018-09-07 三菱電機株式会社 通信試験装置、通信試験方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018158939A1 (ja) * 2017-03-03 2018-09-07 三菱電機株式会社 通信試験装置、通信試験方法及びプログラム
JPWO2018158939A1 (ja) * 2017-03-03 2019-11-07 三菱電機株式会社 通信試験装置、通信試験方法及びプログラム

Similar Documents

Publication Publication Date Title
US9037595B2 (en) Creating graphical models representing control flow of a program manipulating data resources
JP7178977B2 (ja) 複合コントロール
US9612806B2 (en) Verification of computer-executable code generated from a model
US8516443B2 (en) Context-sensitive analysis framework using value flows
US8869103B2 (en) Using intermediate representations to verify computer-executable code generated from a model
JP6449173B2 (ja) プロセスを構成するためのアプリケーションの構築
US8291372B2 (en) Creating graphical models representing control flow of a program manipulating data resources
US9471211B2 (en) Chaining applications
WO2012057170A1 (ja) ソースコード変換方法およびソースコード変換プログラム
US10719645B1 (en) Model structure analysis with integration of transformed slice
CN113574517A (zh) 生成分布式系统的规则编译器引擎装置、方法、系统和介质
JP2009277225A (ja) データ・フロー及びステートチャート表記を組み合わせた混成図からの検査生成方法及び装置
US10657208B2 (en) Analyzing model based on design interest
TW200844855A (en) Using collaborative development information in a team environment
JP2013156786A (ja) ソフトウェアの構造可視化プログラムおよびシステム
Lu et al. Model-based incremental conformance checking to enable interactive product configuration
US20160292305A1 (en) System, method, and program for storing and analysing a data graph
US8819620B1 (en) Case management software development
JP2018169693A (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN112766505A (zh) 非单调推理在逻辑动作语言系统刻画中的知识表示方法
Febbraro et al. A Visual Interface for Drawing ASP Programs.
JP6427687B2 (ja) システム設計装置及び方法
Luckow et al. Symbolic pathfinder v7
JP2016224623A (ja) 画面ui検証装置、画面ui検証方法、及びプログラム
US10534603B1 (en) Automatic renaming of elements of a graphical modeling environment