(57)【要約】【課題】画面遷移による動的なＵＩの変化によりＵＩの特定を誤ることによる誤制御を防止可能としたＵＩ制御を実現すること。【解決手段】ＵＩ情報取得部１１によりＵＩ制御プログラムから制御対象ソフトウェアのＵＩの情報を取得し、ＵＩ予測ロジック１２により特徴量ベクタ算出部１５およびＵＩ予測部１６を用いて操作対象のＵＩを予測し、誤制御判定部１３により予測結果の一意性または操作対象のＵＩを特定した特定結果との比較に基づいて誤制御の発生を判定し、誤制御が発生したと判定した場合はＵＩ制御プログラムによるＵＩ制御を停止し、誤制御は発生していないと判定した場合は制御対象ソフトウェアの操作対象のＵＩに対してＵＩ制御プログラムに記載された操作を実行させる。【選択図】図１１
2014160402.tif 000002
【特許請求の範囲】
【請求項１】
制御対象ソフトウェアのユーザインタフェースを制御することで当該制御対象ソフトウェアに対する作業を自動化するＵＩ制御プログラムにおける誤制御を防止するためのユーザインタフェース制御方法であって、
ＵＩ制御プログラムを入力として、ＵＩ情報取得部により、制御対象ソフトウェアのＵＩの情報の配列を取得する第１のステップと、
前記ＵＩの情報の配列を入力として、ＵＩ予測ロジックにより、操作対象のＵＩを予測し、操作対象としての適合度が高い順に整列されたＵＩの一時的な識別子の配列およびその適合度の配列を出力する第２のステップと、
前記ＵＩの一時的な識別子の配列およびその適合度の配列と、誤制御判定方式および当該誤制御判定方式に応じたパラメータとを入力として、誤制御判定部により、誤制御の発生を判定し、その判定結果および特定したＵＩの一時的な識別子を出力する第３のステップと、
誤制御が発生したと判定された場合はＵＩ制御を停止し、誤制御が発生していないと判定された場合は前記特定した一時的な識別子のＵＩに対してＵＩ自動操作部によりＵＩ制御プログラムに記載された操作を実行する第４のステップと、を具備する
ことを特徴とするユーザインタフェース制御方法。
【請求項２】
前記第１のステップの前に実行すべきステップとして、
表示装置上に２つのソフトウェアの画面を左右に並べて表示させ、各画面のＵＩの中から同じ意味を有するＵＩを入力装置を介して指定させるステップと、
前記指定された左右のＵＩの情報から特徴量ベクタを算出するステップと、
特徴量ベクタを入力として、特徴量ベクタに対する適合度を出力するＵＩ予測部を機械学習法により学習させるステップとを含む
ことを特徴とする請求項１に記載のユーザインタフェース制御方法。
【請求項３】
前記第１のステップにあっては、
ＵＩの一時的な識別子および取得するＵＩの情報の種類を入力として、ＵＩの位置、大きさ、種類名等のＵＩの情報と、木構造で表現されるＵＩの構造情報との中から任意の組み合わせでＵＩの情報の配列を取得する
ことを特徴とする請求項１に記載のユーザインタフェース制御方法。
【請求項４】
前記第２のステップは、
表示装置に表示された制御対象ソフトウェアに存在する全てのＵＩの情報を、ＵＩ情報取得部によりテーブル形式で取得するステップと、
各々のＵＩに対応する一時的な識別子の配列を取得するステップと、
テーブル形式で取得した全ＵＩの情報から取り出した一つのＵＩの情報の配列と、入力されたＵＩの情報の配列とを入力として、特徴量ベクタ算出部により、特徴量ベクタを取得するステップと、
特徴量ベクタをテーブル形式で取得した全ＵＩに対して取得して特徴量ベクタの配列を作成するステップと、
特徴量ベクタの配列と、一時的な識別子の配列を入力として、ＵＩ予測部により降順に整列された適合度の配列と、同様に整列された一時的な識別子の配列を取得するステップとを含む
ことを特徴とする請求項１に記載のユーザインタフェース制御方法。
【請求項５】
前記テーブル形式で取得した全ＵＩの情報から取り出した一つのＵＩの情報の配列と、入力されたＵＩの情報の配列とを入力として、特徴量ベクタ算出部により、特徴量ベクタを取得するステップにあっては、
ＵＩの情報の種類毎に定義する２入力１出力の特徴量算出関数を、入力された２つの配列の各要素に適用し各々の特徴量を求め、特徴量ベクタを算出する
ことを特徴とする請求項４に記載のユーザインタフェース制御方法。
【請求項６】
前記特徴量ベクタの配列と、一時的な識別子の配列を入力として、ＵＩ予測部により降順に整列された適合度の配列と、同様に整列された一時的な識別子の配列を取得するステップは、
特徴量ベクタの配列から、特徴量ベクタを一つずつ取り出し、ＵＩ予測部に入力して適合度を取得して適合度の配列に格納するステップと、
適合度の配列を降順に整列し、同じ順番で入力された一時的な識別子の配列を整列するステップとを含む
ことを特徴とする請求項４に記載のユーザインタフェース制御方法。
【請求項７】
前記第３のステップは、
誤制御判定方式が“突合”のとき、ＵＩ制御プログラム記載のＵＩの情報を入力として、任意のＵＩ特定ロジックによる特定結果とＵＩ予測ロジックの出力との突合により誤制御の発生を判定するステップと、
誤制御判定方式が“一意性”のとき、ＵＩ予測ロジックの結果の一意性から誤制御の発生を判定するステップと、
それら判定方式の組み合わせにより誤制御の発生を判定するステップとを含む
ことを特徴とする請求項１に記載のユーザインタフェース制御方法。
【請求項８】
制御対象ソフトウェアのユーザインタフェースを制御することで当該制御対象ソフトウェアに対する作業を自動化するＵＩ制御プログラムにおける誤制御を防止するためのユーザインタフェース制御装置であって、
ＵＩ制御プログラムを入力として、制御対象ソフトウェアのＵＩの情報の配列を取得するＵＩ情報取得部と、
２つのＵＩの情報の配列を入力として特徴量ベクタを算出する特徴量ベクタ算出部、並びに特徴量ベクタを入力として適合度を算出するＵＩ予測部を具備し、前記ＵＩの情報の配列を入力として操作対象のＵＩを予測し、操作対象としての適合度が高い順に整列されたＵＩの一時的な識別子の配列およびその適合度の配列を出力するＵＩ予測ロジックと、
前記ＵＩの一時的な識別子の配列およびその適合度の配列と、誤制御判定方式および当該誤制御判定方式に応じたパラメータとを入力として誤制御の発生を判定し、その判定結果および特定したＵＩの一時的な識別子を出力する誤制御判定部と、
誤制御が発生したと判定された場合はＵＩ制御を停止し、誤制御が発生していないと判定された場合は前記特定した一時的な識別子のＵＩに対してＵＩ制御プログラムに記載された操作を実行するＵＩ制御部とを備えた
ことを特徴とするユーザインタフェース制御装置。
【請求項９】
誤制御判定方式が“突合”のとき、ＵＩ制御プログラム記載のＵＩの情報を入力として、任意のＵＩ特定ロジックによる特定結果とＵＩ予測ロジックの出力との突合により誤制御の発生を判定し、誤制御判定方式が“一意性”のとき、ＵＩ予測ロジックの結果の一意性から誤制御の発生を判定し、それら判定方式の組み合わせにより誤制御の発生を判定する誤制御判定部を備えた
ことを特徴とする請求項８に記載のユーザインタフェース制御装置。
【請求項１０】
前記に加え、
表示装置上に２つのソフトウェアの画面を左右に並べて表示させ、各画面のＵＩの中から同じ意味を有するＵＩを入力装置を介して指定させ、前記指定された左右のＵＩの情報から特徴量ベクタを算出し、特徴量ベクタを入力として、特徴量ベクタに対する適合度を出力するＵＩ予測部を機械学習法により学習させるＵＩ予測部の作成部を備えた
ことを特徴とする請求項８に記載のユーザインタフェース制御装置。
【請求項１１】
コンピュータを、請求項８乃至１０のいずれかに記載のユーザインタフェース制御装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインタフェースをソフトウェア（エージェント）により制御する技術に関する。
【背景技術】
【０００２】
ソフトウェアを制御するためのインタフェースは数多く存在するが、ほとんどのソフトウェアが具備しているインタフェースとして、人による操作を想定したユーザインタフェース（ＵＩ）がある。このＵＩを、人ではなく他のソフトウェア（エージェント）が制御することで、ＵＩを具備するソフトウェアを人を介さずに操作し、当該ソフトウェアに対する作業を自動化する応用が近年開発されている。
【０００３】
ＵＩを制御するためには「操作対象のＵＩを特定」し、そのＵＩに対して「データを渡す（テキストボックスへの値の代入やコンボボックスの要素選択など）」または「データを参照する（ＵＩに表示された情報を読み取る）」または「機能を実行する（ボタンを押す、スクロールするなど）」を実行し、それらに伴い次の画面へとＵＩが遷移するという処理の繰り返しが必要である。しかし、ＵＩの制御においてＵＩの特定を誤り、誤制御が発生する場合がある。誤制御が発生すると、ソフトウェアに対して誤った操作が行われ、データベースの汚れや重大なシステムトラブルに繋がる可能性がある。
【０００４】
［従来技術］
従来技術として、ＵＩを制御するためのツール、プラットフォームが提案されている。これらＵＩを制御するツールでは、ＵＩへの制御内容（ＵＩの特定、ＵＩへのデータ渡し／データ参照／機能実行）をシナリオやスクリプトといった独自の制御プログラムで記述し、当該制御プログラムに沿って対象のＵＩを操作する機能を有する。ここでは、従来技術とそれらの問題点を説明する。
【０００５】
非特許文献１に記載の技術では、制御プログラムの作成が不慣れな人にも可読性が高い、図１に示すような「シナリオ」という形式でＵＩの制御プログラムを記述している。シナリオでは、当該シナリオを構成する各ブロックに操作対象のＵＩを指定する情報と、ＵＩの制御内容とが記述されている。また、シナリオでは、図２に示すようにＵＩを指定する情報として「Instance（ＵＩの生成番号）」、「Text（ＵＩが有するテキスト情報）」、「Position（ＵＩが配置された座標）」が使用できる。それぞれの情報を用いてＵＩの指定を行った場合に、どのようなＵＩが対象として特定されるかを表したのが図３、図４、図５である。
【０００６】
１．Instance“３”を用いてＵＩを指定した場合、図３に示すように現在の画面において生成された順番が“３”のＵＩが操作対象として特定される。
【０００７】
２．Text“実行”を用いてＵＩを指定した場合、図４に示すように現在の画面において“実行”のテキスト情報を有するＵＩが操作対象として特定される。
【０００８】
３．Position“(80,100)”を用いてＵＩを指定した場合、図５に示すように現在の画面において座標“(80,100)”の直下に存在するＵＩが操作対象として特定される。
【０００９】
非特許文献１の技術の問題は、ＵＩの制御時に制御プログラムにおいて想定していなかった画面遷移が発生し、ＵＩの状態が図６に示すような「状態１」から「状態２」へ変化した場合にＵＩの特定を間違え、誤制御が発生する点である。図７、図８、図９は制御時に決定される変数（コンボボックスの選択項目）によってＵＩが変化した場合を示したものである。
【００１０】
図７の場合、Instance“３”でＵＩを指定しているが、ＵＩの生成順番が変化したことにより間違ったＵＩが特定され、誤制御が発生する。図８の場合、Text“実行”でＵＩを指定しているが、同じ内容のTextを有するＵＩが追加されたことにより間違ったＵＩが特定され、誤制御が発生する。図９の場合、Position“(80,100)”でＵＩを指定しているが、ＵＩの座標が変化したことにより間違ったＵＩが特定され（またはＵＩを特定できず）、誤制御が発生する。
【００１１】
非特許文献２に記載の技術では、スクリプトによってＵＩの制御プログラムを記述する。非特許文献２において、操作対象のＵＩを指定し制御するスクリプトの関数として、CLKITEM、CHKBTN、GETITEMが存在するが、それらは非特許文献１で用いたテキスト情報と、「左上から各々のＵＩを数えた場合の番号」とによってＵＩを指定する。非特許文献２の技術の問題は、非特許文献１と同様に、ＵＩの制御時にＵＩの状態が変化した場合、ＵＩの特定を間違えて誤制御が発生する点である。
【００１２】
即ち、テキスト情報で指定する場合は、非特許文献１におけるテキスト情報を用いた場合（図８）と同様に間違ったＵＩが特定され、誤制御が発生する。また、「左上から各々のＵＩを数えた場合の番号」によってＵＩを指定する場合は、非特許文献１におけるInstanceを用いた場合（図７）と同様に間違ったＵＩが特定され、誤制御が発生する。
【００１３】
ＵＩの状態変化によりＵＩの特定が失敗する根本的な原因は、永続的にＵＩを特定できる識別子が存在しないことである。図１０に示すように、ソフトウェアに存在する各種のＵＩは様々な情報１０１を有しており、その中には「その瞬間」においてＵＩを一意に特定できる識別子１０２が存在する。しかし、識別子１０２は、次にソフトウェアが起動したタイミングでは値が変わっており、制御プログラムで対象を指定する情報として用いることができない「一時的な識別子（ｔID）」である。なお、図１０において、１０３は木構造で表現されるＵＩの構造情報である。
【００１４】
非特許文献１や非特許文献２に記載のＵＩ制御ツールは、永続的にＵＩを特定できる識別子が存在しないために、InstanceやTextなどのＵＩの情報を用いて特定を試みているが、図７、８、９に挙げたように、制御時に決定される変数（制御時にテキストボックスに代入される文字列、ドロップボックスの選択項目、チェックボックスのＯＮ／ＯＦＦの状態など）によってＵＩの状態が変化する場合にはＵＩの特定に失敗し、誤制御が発生してしまう。
【００１５】
制御プログラム作成時にＵＩの状態の変化を想定することで、ある程度誤制御の発生を回避することは可能であるが、制御時に決定される変数の取り得る値を全て把握し、それら全ての値に応じて画面遷移がどのように発生するかを制御プログラム作成時に想定するのは困難であり、誤制御が絶対に発生しない制御プログラムを作成することは事実上不可能である。そして誤制御が発生すると、データベースの汚れやシステムトラブル等の重大な悪影響を及ぼしてしまう。
【発明の概要】
【発明が解決しようとする課題】
【００１６】
そこで本発明では、画面遷移による動的なＵＩの変化により発生する誤制御を防止可能なＵＩ制御を実現するという課題を解決する。
【課題を解決するための手段】
【００１７】
本発明では、画面遷移による動的なＵＩの変化によりＵＩの特定を誤ることによる誤制御を防止可能としたＵＩ制御を実現するという課題を解決するために、以下の特徴を有する。
【００１８】
本発明の第一の発明として、
制御対象ソフトウェアのユーザインタフェースを制御することで当該制御対象ソフトウェアに対する作業を自動化するＵＩ制御プログラムにおける誤制御を防止するためのユーザインタフェース制御方法であって、
ＵＩ制御プログラムを入力として、ＵＩ情報取得部により、制御対象ソフトウェアのＵＩの情報の配列を取得する第１のステップと、
前記ＵＩの情報の配列を入力として、ＵＩ予測ロジックにより、操作対象のＵＩを予測し、操作対象としての適合度が高い順に整列されたＵＩの一時的な識別子の配列およびその適合度の配列を出力する第２のステップと、
前記ＵＩの一時的な識別子の配列およびその適合度の配列と、誤制御判定方式および当該誤制御判定方式に応じたパラメータとを入力として、誤制御判定部により、誤制御の発生を判定し、その判定結果および特定したＵＩの一時的な識別子を出力する第３のステップと、
誤制御が発生したと判定された場合はＵＩ制御を停止し、誤制御が発生していないと判定された場合は前記特定した一時的な識別子のＵＩに対してＵＩ自動操作部によりＵＩ制御プログラムに記載された操作を実行する第４のステップと、を具備する
ことを特徴とする。
【００１９】
本発明の第二の発明として、
前記第１のステップの前に実行すべきステップとして、
表示装置上に２つのソフトウェアの画面を左右に並べて表示させ、各画面のＵＩの中から同じ意味を有するＵＩを入力装置を介して指定させるステップと、
前記指定された左右のＵＩの情報から特徴量ベクタを算出するステップと、
特徴量ベクタを入力として、特徴量ベクタに対する適合度を出力するＵＩ予測部を機械学習法により学習させるステップとを含む
ことを特徴とする。
【００２０】
本発明の第三の発明として、
前記第１のステップにあっては、
ＵＩの一時的な識別子および取得するＵＩの情報の種類を入力として、ＵＩの位置、大きさ、種類名等のＵＩの情報と、木構造で表現されるＵＩの構造情報との中から任意の組み合わせでＵＩの情報の配列を取得する
ことを特徴とする。
【００２１】
本発明の第四の発明として
前記第２のステップは、
表示装置に表示された制御対象ソフトウェアに存在する全てのＵＩの情報を、ＵＩ情報取得部によりテーブル形式で取得するステップと、
各々のＵＩに対応する一時的な識別子の配列を取得するステップと、
テーブル形式で取得した全ＵＩの情報から取り出した一つのＵＩの情報の配列と、入力されたＵＩの情報の配列とを入力として、特徴量ベクタ算出部により、特徴量ベクタを取得するステップと、
特徴量ベクタをテーブル形式で取得した全ＵＩに対して取得して特徴量ベクタの配列を作成するステップと、
特徴量ベクタの配列と、一時的な識別子の配列を入力として、ＵＩ予測部により降順に整列された適合度の配列と、同様に整列された一時的な識別子の配列を取得するステップとを含む
ことを特徴とする。
【００２２】
本発明の第五の発明として
前記テーブル形式で取得した全ＵＩの情報から取り出した一つのＵＩの情報の配列と、入力されたＵＩの情報の配列とを入力として、特徴量ベクタ算出部により、特徴量ベクタを取得するステップにあっては、
ＵＩの情報の種類毎に定義する２入力１出力の特徴量算出関数を、入力された２つの配列の各要素に適用し各々の特徴量を求め、特徴量ベクタを算出する
ことを特徴とする。
【００２３】
本発明の第六の発明として
前記特徴量ベクタの配列と、一時的な識別子の配列を入力として、ＵＩ予測部により降順に整列された適合度の配列と、同様に整列された一時的な識別子の配列を取得するステップは、
特徴量ベクタの配列から、特徴量ベクタを一つずつ取り出し、ＵＩ予測部に入力して適合度を取得して適合度の配列に格納するステップと、
適合度の配列を降順に整列し、同じ順番で入力された一時的な識別子の配列を整列するステップとを含む
ことを特徴とする。
【００２４】
本発明の第七の発明として、
前記第３のステップは、
誤制御判定方式が“突合”のとき、ＵＩ制御プログラム記載のＵＩの情報を入力として、任意のＵＩ特定ロジックによる特定結果とＵＩ予測ロジックの出力との突合により誤制御の発生を判定するステップと、
誤制御判定方式が“一意性”のとき、ＵＩ予測ロジックの結果の一意性から誤制御の発生を判定するステップと、
それら判定方式の組み合わせにより誤制御の発生を判定するステップとを含む
ことを特徴とする。
【００２５】
本発明の第八の発明として、
制御対象ソフトウェアのユーザインタフェースを制御することで当該制御対象ソフトウェアに対する作業を自動化するＵＩ制御プログラムにおける誤制御を防止するためのユーザインタフェース制御装置であって、
ＵＩ制御プログラムを入力として、制御対象ソフトウェアのＵＩの情報の配列を取得するＵＩ情報取得部と、
２つのＵＩの情報の配列を入力として特徴量ベクタを算出する特徴量ベクタ算出部、並びに特徴量ベクタを入力として適合度を算出するＵＩ予測部を具備し、前記ＵＩの情報の配列を入力として操作対象のＵＩを予測し、操作対象としての適合度が高い順に整列されたＵＩの一時的な識別子の配列およびその適合度の配列を出力するＵＩ予測ロジックと、
前記ＵＩの一時的な識別子の配列およびその適合度の配列と、誤制御判定方式および当該誤制御判定方式に応じたパラメータとを入力として誤制御の発生を判定し、その判定結果および特定したＵＩの一時的な識別子を出力する誤制御判定部と、
誤制御が発生したと判定された場合はＵＩ制御を停止し、誤制御が発生していないと判定された場合は前記特定した一時的な識別子のＵＩに対してＵＩ制御プログラムに記載された操作を実行するＵＩ制御部とを備えた
ことを特徴とする。
【００２６】
本発明の第九の発明として
誤制御判定方式が“突合”のとき、ＵＩ制御プログラム記載のＵＩの情報を入力として、任意のＵＩ特定ロジックによる特定結果とＵＩ予測ロジックの出力との突合により誤制御の発生を判定し、誤制御判定方式が“一意性”のとき、ＵＩ予測ロジックの結果の一意性から誤制御の発生を判定し、それら判定方式の組み合わせにより誤制御の発生を判定する誤制御判定部を備えた
ことを特徴とする。
【００２７】
本発明の第十の発明として、
前記に加え、
表示装置上に２つのソフトウェアの画面を左右に並べて表示させ、各画面のＵＩの中から同じ意味を有するＵＩを入力装置を介して指定させ、前記指定された左右のＵＩの情報から特徴量ベクタを算出し、特徴量ベクタを入力として、特徴量ベクタに対する適合度を出力するＵＩ予測部を機械学習法により学習させるＵＩ予測部の作成部を備えた
ことを特徴とする。
【００２８】
本発明の第十一の発明として、
コンピュータを、第八乃至第十の発明のいずれかに記載のユーザインタフェース制御装置の各部として機能させるためのプログラムを提案する。
【発明の効果】
【００２９】
本発明により、ＵＩをソフトウェア（エージェント）から制御するときに、画面遷移によってＵＩの状態が変化する場合においても、誤制御の発生を防止してＵＩ制御をすることが可能になる。
【図面の簡単な説明】
【００３０】
【図１】従来のシナリオ形式のＵＩ制御プログラムの一例を示す説明図
【図２】シナリオを構成するブロック中のＵＩを指定する情報の一例を示す説明図
【図３】ＵＩを指定する情報によるＵＩ特定の一例を示す説明図
【図４】ＵＩを指定する情報によるＵＩ特定の他の例を示す説明図
【図５】ＵＩを指定する情報によるＵＩ特定の更に他の例を示す説明図
【図６】想定外の画面遷移に伴うＵＩの状態変化の一例を示す説明図
【図７】ＵＩの状態変化に伴うＵＩの特定誤りの一例を示す説明図
【図８】ＵＩの状態変化に伴うＵＩの特定誤りの他の例を示す説明図
【図９】ＵＩの状態変化に伴うＵＩの特定誤りの更に他の例を示す説明図
【図１０】ＵＩが有する情報の概要を示す説明図
【図１１】本発明のユーザインタフェース制御方法を実施する装置の実施の形態の一例を示す構成図
【図１２】ＵＩ情報取得部で取得するＵＩの情報の形式を示す説明図
【図１３】本発明におけるＵＩ制御プログラムの構成を示す説明図
【図１４】ＵＩ制御プログラム中の制御ブロックが保持する情報の詳細を示す説明図
【図１５】ＵＩ制御部の動作フローチャート
【図１６】ＵＩ予測ロジックの動作フローチャート
【図１７】特徴量ベクタ算出部の動作フローチャート
【図１８】ＵＩ予想部の動作フローチャート
【図１９】誤制御判定部の動作フローチャート
【図２０】ＵＩ予測部の作成部の動作フローチャート
【図２１】実施例１におけるＵＩ制御プログラムの構成を示す説明図
【図２２】実施例１におけるＵＩの状態変化の一例を示す説明図
【図２３】実施例１における具体的な処理およびその際のＵＩ制御プログラムの説明図
【図２４】実施例１における具体的な処理およびその際の情報テーブルの説明図
【図２５】実施例１における具体的な処理およびその際のＵＩ制御プログラムの説明図
【図２６】実施例１における具体的な処理およびその際のＵＩ制御プログラムの説明図
【図２７】実施例１における具体的な処理およびその際のＵＩ制御プログラムの説明図
【図２８】実施例１における具体的な処理およびその際の情報テーブルの説明図
【図２９】実施例１における具体的な処理およびその際のＵＩ制御プログラムの説明図
【図３０】実施例１における具体的な処理およびその際のＵＩ制御プログラムの説明図
【図３１】誤制御の判定にＵＩ特定ロジックを用いない場合の図２５と同様の図
【図３２】誤制御の判定にＵＩ特定ロジックを用いない場合の図２９と同様の図
【図３３】実施例１におけるＵＩ予測部作成時の表示画面を示す説明図
【図３４】実施例１におけるＵＩ予測部作成時の表示画面を示す説明図
【図３５】実施例１におけるＵＩ予測部作成時の処理の具体例を示す説明図
【図３６】実施例１におけるＵＩ予測部作成時の表示画面を示す説明図
【図３７】実施例１におけるＵＩ予測部作成時の表示画面を示す説明図
【発明を実施するための形態】
【００３１】
図１１は本発明のユーザインタフェース制御方法を実施する装置の実施の形態の一例、ここでは周知のコンピュータ上に実現した例を示すもので、図中、１は入力装置、２は記憶装置、３は表示装置、４はコンピュータである。
【００３２】
入力装置１はマウスやキーボードを指し、後述する誤制御判定部における誤制御判定方式および当該誤制御判定方式に応じたパラメータや、ＵＩ予測部の作成部における正しいＵＩの組み合わせの教示を入力するために用いる。
【００３３】
記憶装置２はメモリの主記憶装置やＨＤＤなどの補助記憶装置を指し、ＵＩ制御プログラムや後述するＵＩ情報取得部が取得したＵＩの情報を格納する。
【００３４】
表示装置３は液晶ディスプレイ、ＣＲＴ等を指し、後述するＵＩ予測部の作成における教示用のソフトウェア画面や誤制御発生時におけるアラートを表示する。
【００３５】
コンピュータ４は、各装置１〜３を制御するとともに、ＵＩ制御部５およびＵＩ予測部の作成部６を構成する。
【００３６】
ＵＩ制御部５は、ＵＩ情報取得部１１、ＵＩ予測ロジック１２、誤制御判定部１３およびＵＩ自動操作部１４を含んで構成され、図１３に示す任意の形式的ＵＩ制御プログラムＳ１を実行できる。形式的ＵＩ制御プログラムＳ１は、制御時に値が決定する変数列と、制御ブロックｂS1[i]（１＜ｉ＜Ｎ＝ブロック数）とで構成され、制御ブロックｂS1[i]はＵＩの情報の配列ＬS1,biと、ＵＩに対する制御内容ＡS1,biとによって構成される（図１４）。ＵＩ制御部５の具体的な動作については、各構成要素について述べた後に記述する。
【００３７】
ＵＩ情報取得部１１は、ＵＩ制御プログラムを入力として、制御対象ソフトウェアのＵＩの情報を取得し、記憶装置２に記憶するが、この際、２つの形式においてＵＩの情報を取得できる。ここで、図１０に示したＵＩの情報１０１およびＵＩの構造情報１０３の両方をあわせて「ＵＩの情報」と定義する。
【００３８】
図１２に示すように、取得形式１においては、ＵＩの一時的な識別子ｔIDを入力１、取得するＵＩの情報の種類を入力２として、入力１の識別子ｔIDのＵＩが保持している入力２で指定された種類のＵＩの情報の配列として取得することができる。また、取得形式２においては、ソフトウェア（ウィンドウ）の識別子（ウィンドウタイトル名、ＰIDなど）を入力１、取得するＵＩの情報の種類を入力２として、表示装置３に表示されている入力１で指定されたソフトウェアに存在する全てのＵＩに対して、入力２で指定された種類のＵＩの情報を取得し、ＵＩ情報のテーブルとして取得できる。
【００３９】
ＵＩ予測ロジック１２は、ＵＩの情報の配列から操作対象のＵＩを予測する際に利用され、特徴量ベクタ算出部１５およびＵＩ予測部１６を含んで構成される。
【００４０】
具体的にはＵＩの情報の配列ＬS1,biを入力として、図１６の手続きを実行する。即ち、表示装置３に現在表示されている制御対象ソフトウェアから、ＵＩ情報取得部１１によって形式２のＵＩの情報テーブルを取得し、Ｔとする。このとき、ＵＩの情報Ｔ[j]（１≦ｊ≦Ｎ＝ソフトウェア中のＵＩ数）の情報を、保持していたＵＩの一時的な識別子ｔID[j]を要素に有する配列ｔID（要素数Ｎ）とし（図１６のＣ１）、特徴量ベクタ算出部１５により入力Ｌ1＝ＬS1,bi、Ｌ2＝Ｔ[j]として図１７の手続きを実行し、特徴量ベクタＦを得る。
【００４１】
具体的な図１７の手続きは、ＵＩの情報の配列Ｌ1，Ｌ2の入力に対し、特徴量ベクタＦ＝［ value１＝ｆ１（Ｌ1[1]，Ｌ2[1]），value２＝ｆ２（Ｌ1[2]，Ｌ2[2]），…valueＮ＝ｆＮ（Ｌ1[N]，Ｌ2[N]）］を算出する（図１７のＣ１）。このとき、各valueは実数値であり、ｆ１〜ｆＮは各ＵＩの情報の種類（図１０の情報１０１のNumberやTextなど）に応じた特徴量算出関数であり、２つの情報を受け取って実数値を返す任意の関数である（例えば、Positionの場合はユーグリッド距離関数など）。次のステップにおいて、特徴量ベクタＦを出力する（図１７のＣ２）。これを全てのｊに対して実行し、特徴量ベクタの配列ＦA（要素数Ｎ）とする（図１６のＣ２）。
【００４２】
次に、学習済みのＵＩ予測部１６により、ＦAとｔIDを入力として図１８の手続きを実行し、降順に整列された適合度の配列ＶS1,Ri（要素数Ｎ）と、対応する一時的なＵＩの識別子の配列ｔIDS1,Riを得て出力する（ｔIDS1,Ri[j]の適合度＝ＶS1,Ri[j]，１≦ｊ≦Ｎ）（図１６のＣ３、Ｃ４）。
【００４３】
具体的な図１８の手続きは、ｉ＝１および適合度の配列ＶS1,Ri（要素数Ｎ）を用意し（図１８のＣ１）、ｉ≦Ｎかを判定し（図１８のＣ２）、YesであればＵＩ予測部１６にＦA[i]を入力し、適合度ｖを得て、Ｖ[i]＝ｖとし（図１８のＣ３）、ｉ＝ｉ＋１（図１８のＣ４）として図１８のＣ２のステップに戻る。ｉ≦Ｎの判定でNoとなったら、ＶS1,Riを降順に整列し、同じ順番でｔIDも整列してｔIDS1,Riとして出力する（図１８のＣ５、Ｃ６）。
【００４４】
誤制御判定部１３は、ＵＩ特定ロジック（既存）１７を具備し、ｔIDS1,Ri，ＶS1,Riおよび誤制御判定方式Ｍとそのパラメータの配列Ｐを入力として図１９の手続きを実行し、出力として誤制御判定結果Ｅと、特定されたＵＩの一時的な識別子ｔIDを得る。Ｍ＝“突合”のとき、パラメータ配列としてＰ＝［ＬS1,bi］が入力され、ＵＩ特定ロジック１７によりＰ[1]を入力としてＵＩを特定し、特定されたＵＩの一時的な識別子ｔIDS1,biとする（図１９のＣ２）。
【００４５】
次に、ｔIDS1,biとｔIDS1,Ri[1]を比較し（図１９のＣ３）、同じであればＥ＝０、ｔID＝ｔIDS1,Ri[1]とし（図１９のＣ４）、異なればＥ＝１、ｔID＝−１とし、出力する（図１９のＣ５、Ｃ６）。Ｍ＝“一意性のとき”のとき、パラメータ配列としてＰ＝［Ｐ0（１≦Ｐ0≦Ｎ）、Ｐ1（実数値）］が入力され、ＶS1,Ri[1]−ＶS1,Ri［Ｐ[1]］＞Ｐ[2]を判定し（図１９のＣ７）、YesであればＥ＝０、ｔID＝ｔIDS1,Ri[1]とし（図１９のＣ４）、NoであればＥ＝１、ｔID＝−１とし、出力する（図１９のＣ５、Ｃ６）。
【００４６】
ＵＩ自動操作部１４は、一時的なＵＩの識別子ｔIDと制御内容ＡS1,biを入力として、表示装置３に表示されているＵＩの中からｔIDを現在保持しているＵＩに対しＡS1,biの内容を自動操作することができる。
【００４７】
ＵＩ制御部５の具体的な動作は、これまで説明した構成要素のＵＩ情報取得部１１、予測ロジック１２、誤制御判定部１３、ＵＩ自動操作部１４を用いて、図１５を実行する。
【００４８】
即ち、制御ブロックのカウンタｉ＝１とし（図１５のＣ１）、ｉが制御ブロックの数Ｎ以下であるかを判定し（図１５のＣ２）、Noであれば終了し、YesであればＳ１の制御ブロックｂS1[i]からＵＩの情報の配列ＬS1,biを取り出し（図１５のＣ３）、ＵＩ予測ロジック１２により、ＬS1,biを入力として図１６の手続きを実行してＵＩを予測し、出力ｔIDS1,Ri，ＶS1,Riを得る（図１５のＣ４）。
【００４９】
次に誤制御判定部１３により、ｔIDS1,Ri，ＶS1,Riおよび誤制御判定方式Ｍとパラメータの配列Ｐを入力として図１９の手続きを実行し、出力として誤制御判定結果Ｅと、特定されたＵＩの一時的な識別子ｔIDを得て（図１５のＣ５）、Ｅ＝１であるかを判定し（図１５のＣ６）、YesであればＵＩ制御を停止し（図１５のＣ７）、終了する。Noであれば、Ｓ１の制御ブロックｂS1[i]からＵＩに対する制御内容ＡS1,biを取り出し、ＵＩ自動操作部１４によってｔIDのＵＩに対してＡS1,biの内容を実行し（図１５のＣ８）、ｉ＝ｉ＋１を実行（図１５のＣ９）して図１５のＣ２のステップに戻る。
【００５０】
ＵＩ予測部の作成部６は、ＵＩの情報から特定すべき対象のＵＩがどれであるかを予測するＵＩ予測部１６を作成する際に利用され、具体的には図２０の手続きが実行される。
【００５１】
即ち、人による教示（学習）が必要な回数行われたかを判定し（図２０のＣ１）、Yesの場合は終了し、Noの場合は、入力装置１より表示装置３に表示されたソフトウェアの中から、Query（左画面）とAnswer（右画面）用にそれぞれソフトウェアを選択し、表示装置３に左右に並べてＵＩを表示し（図２０のＣ２）、左画面と右画面のＵＩにおいてユーザが同じものと判断するＵＩを入力装置１によって選択（クリック）して教示し、このときの左画面の選択ＵＩの一時的な識別子ｔIDL、右画面の選択ＵＩの一時的な識別子ｔIDRとし（図２０のＣ３）、ＵＩ情報取得部１１により、ｔIDLとｔIDRを入力として、それぞれ形式１のＵＩの情報の配列ＬLとＬRを得て（図２０のＣ４）、特徴量ベクタ算出部１５により入力Ｌ1＝ＬL、Ｌ2＝ＬRとして図１７の手続きを実行して特徴量ベクタＦとし（図２０のＣ５）、特徴量ベクタを入力として適合度を出力するＵＩ予測部１６に対し、（入力，教示）＝（Ｆ，True）の組み合わせを任意の機械学習法によって学習し、Ｆのときに高い適合度が得られるようにＵＩ予測部１６を更新し（図２０のＣ６）、Ｃ１のステップに戻る。
【実施例１】
【００５２】
図２１に示す２つの制御ブロック（ｂS2[1]，ｂS2[2]）から構成される形式的制御プログラムＳ２により、図２２に示す制御対象ソフトウェアに対してＵＩ制御を行う例について説明する。図２２の制御対象ソフトウェアは、コンボボックスの値が“グループ６”のときにＵＩの状態が図２２(a)から図２２(b)に変化することにより、従来のＵＩ制御ツールによってＳ２が実行された場合、図７、８、９に示したように誤ったＵＩが特定され、誤制御が発生する。
【００５３】
本発明を適用することにより、上記誤制御の発生を検知し、防止することができる。
【００５４】
まず、図２０の手続きに従って予めＵＩ予測部１６の作成を行う。入力装置１により、表示装置３に表示されたソフトウェアの中から、図３３に示すようにQuery（左画面）とAnswer（右画面）用にそれぞれソフトウェアを選択し、表示装置３に左右並べてＵＩを表示する（図２０のＣ２）。このときＵＩ予測部作成に用いるソフトウェアはＳ２の制御対象ソフトウェア（図２２のソフトウェア）である必要はなく、どのようなソフトウェアでも良い。
【００５５】
次に、図３４に示すように左画面と右画面のＵＩにおいてユーザが同じものと判断するＵＩを入力装置１によって選択（クリック）して教示し、このときの左画面の選択ＵＩの一時的な識別子ｔIDL、右画面の選択ＵＩの一時的な識別子ｔIDRとする（図２０のＣ３）。
【００５６】
次に、図３５に示すようにＵＩ情報取得部１１により、ｔIDLとｔIDRを入力として、それぞれ形式１のＵＩの情報の配列ＬLとＬRを得て（図２０のＣ４）、特徴量ベクタ算出部１５により、入力Ｌ1＝ＬL、Ｌ2＝ＬRとして図１７の手続きを実行し、特徴量ベクタＦを得て（図２０のＣ５）、（入力，教示）＝（Ｆ，True）の組み合わせを任意の機械学習法によって学習し、Ｆのときに高い適合度が得られるようにＵＩ予測部１６を更新する（図２０のＣ６）。
【００５７】
このような操作を必要な回数、様々なソフトウェアやＵＩ（図３６）、正常系／異常系（図３７）に対して行うことで予測精度が向上する。
【００５８】
次に作成されたＵＩ予測部１６を用いて、ＵＩ制御部５が実行される。
【００５９】
最初に図１５の手続きにシナリオＳ２が入力され、ブロック数Ｎ＝２となり、ｉ＝１が代入される。次に、Ｓ２のｂS2[1]よりＬS2,b1＝［ Instance＝１，Text＝“グループ１”，Position＝(30,30)，Type＝“ComboBox”，Size＝(150,20）］を取り出す。次に、ＬS2,b1を入力として図１６のステップに移る（ここまで図２３）。
【００６０】
次に、ＵＩ情報取得部１１によって上記のＵＩの情報テーブルＴを取得し、対応する一時的な識別子の配列ｔIDを得る。次に、図１７の手続きにより、特徴量ベクタＦA[1]＝［1，1，0，1，1.0］，ＦA[2]＝［0，0，50，1，1.5］，ＦA[3]＝［0，0，86，0，2.1］を要素に有する特徴量ベクタの配列ＦAを得る（実施例において、図１７のｆ１，ｆ２，ｆ４は２つの入力が同じならば１、異なれば０を返す関数。ｆ３はユークリッド距離、ｆ４は面積比）。
【００６１】
次に、図１８の手続きにより、特徴量ベクタの配列ＦA（要素数３）とｔID（要素数３）を入力し、それぞれの適合度の降順にされた配列ＶS2,R1および、対応するＵＩの一時的な識別子の配列ｔIDS2,R1としてＶS2,R1＝［1.0，0.4，0.3］，ｔIDS2,R1＝［ID_1，ID_2，ID_3］を得て出力する（ここまで図２４）。
【００６２】
次に、誤制御判定方式Ｍ＝“突合”の場合、図１５（Ｃ５）により、Ｍおよびパラメータの配列Ｐ＝［ＬS2,b1］、ｔIDS2,R1，ＶS2,R1を入力として、図１９の手続きに移る。ここで、Ｍ＝“突合”なので図１９（Ｃ２）のステップに移り、ＵＩ特定ロジック（実施例においてはInstanceの一致による特定ロジック）により、Ｐ[1]＝ＬS2,b1＝［ Instance＝１，Text＝“グループ１”，Position＝(30,30)，Type＝“ComboBox”，Size＝(150,20）］を入力としてＵＩを特定すると、ｔIDS1,b1＝ID_1となる。次に、ｔIDS1,b1（＝ID_1）とｔIDS2,R1[1]（＝ID_1）を比較すると、ともにID_1で同じなので図１９（Ｃ４）のステップに移る。Ｅ＝０，ｔID＝ID_1となり、図１９（Ｃ６）のステップよりＥとｔIDを出力する（ここまで図２５）。
【００６３】
次に、Ｅ＝０なので誤制御は発生していないと判定され、ｂS1[i]から制御内容ＡS2,b1を取り出してＵＩ自動操作部１４によって実行し、ｔID＝ID_1のＵＩに対して変数１（＝グループ６）の値を設定し、ｉ＝ｉ＋１＝２として図１５（Ｃ２）のステップに移る（ここまで図２６）。
【００６４】
次に、ｉ（＝２）≦Ｎ（＝２）なので制御ブロック２に移り、ｂS2[2]よりＬS2,b2＝［ Instance＝３，Text＝“実行”，Position＝(80,100)，Type＝“Button”，Size＝(70,20)］を取り出す。次に、ＬS2,b2を入力として図１６のステップに移る（ここまで図２７）。
【００６５】
次に、ＵＩ情報取得部１１によって上記のＵＩの情報テーブルを取得し、Ｔおよび一時的な識別子の配列ｔIDを得て、図１７の手続きにより、特徴量特徴量ベクタＦA[1]＝［0，0，86，0，0.47］，ＦA[2]＝［0，1，40，1，1.0］，ＦA[3]＝［1，0，22，0，0.7］，ＦA[4]＝［0，1，20，1，1.0］を要素に有する特徴量ベクタの配列ＦAを得る（実施例において、図１７のｆ１，ｆ２，ｆ４は２つの入力が同じならば１、異なれば０を返す関数。ｆ３はユークリッド距離、ｆ４は面積比）。次に、図１８の手続きにより、特徴量ベクタＦA（要素数４）とｔID（要素数４）を入力し、それぞれの適合度の降順にされた配列ＶS2,R2および対応するＵＩの一時的な識別子の配列ｔIDS2,R2としてＶS2,R2＝［0.8，0.6，0.4，0.3］，ｔIDS2,R2＝［ID_4，ID_2，ID_3，ID_1］を得て出力する（ここまで図２８）。
【００６６】
次に、誤制御判定方式Ｍ＝“突合”の場合、図１５（Ｃ５）により、Ｍおよびパラメータの配列Ｐ＝［ＬS2,b2］、ｔIDS2,R2，ＶS2,R2を入力として、図１９の手続きに移る。Ｍ＝“突合”なので図１９（Ｃ２）のステップに移り、ＵＩ特定ロジック（実施例においてはInstanceの一致による特定ロジック）により、Ｐ[0]＝ＬS2,b2＝［ Instance＝３，Text＝“実行”，Position＝(80,100)，Type＝“Button”，Size＝(70,20)］を入力としてＵＩを特定すると、ｔIDS1,b2＝ID_3となる。ｔIDS1,b2とｔIDS2,R2[1]を比較すると値が異なるため、Ｅ＝１、ｔID＝−1を出力する（ここまで図２９）。
【００６７】
Ｅ＝１となり誤制御が検知されたためＡS2,b2は実行されず、ＵＩ制御を停止する。これにより、ｂS2[2]は実行されずに、従来技術では実行されていた誤制御の実行を防止できる（ここまで図３０）。
【００６８】
なお、誤制御判定方式Ｍ＝“一意性”のとき、図２５に示した処理が図３１に置き換わり、図２９に示した処理が図３２に置き換わる。
【００６９】
なお、本発明は、周知のコンピュータに媒体もしくは通信回線を介して、図１１の構成図に示された機能を実現するプログラムあるいは図１５〜図２０のフローチャートに示された手順を備えるプログラムをインストールすることによっても実現可能である。
【符号の説明】
【００７０】
１：入力装置、２：記憶装置、３：表示装置、４：コンピュータ、５：ＵＩ制御部、６：ＵＩ予測部の作成部、１１：ＵＩ情報取得部、１２：ＵＩ予測ロジック、１３：誤制御判定部、１４：ＵＩ自動操作部、１５：特徴量ベクタ算出部、１６：ＵＩ予測部、１７：ＵＩ特定ロジック。
【先行技術文献】
【非特許文献】
【００７１】
【非特許文献１】横瀬、田中、豊田、堀田、井上、杉本、「端末操作自動化ソフトＵＭＳの概要と適用事例」、信学技法、信学技報、vol.111、no.488、ICM2011-73、2012年3月、pp.149-154
【非特許文献２】”Windows自動化ソフト ＵＷＳＣ”、［ｏｎｌｉｎｅ］、umiumi、［平成２５年２月５日検索］、インターネット＜ＵＲＬ：http://www.uwsc.info/＞
【図１】
2014160402.tif 000003
【図２】
2014160402.tif 000004
【図３】
2014160402.tif 000005
【図４】
2014160402.tif 000006
【図５】
2014160402.tif 000007
【図６】
2014160402.tif 000008
【図７】
2014160402.tif 000009
【図８】
2014160402.tif 000010
【図９】
2014160402.tif 000011
【図１０】
2014160402.tif 000012
【図１１】
2014160402.tif 000013
【図１２】
2014160402.tif 000014
【図１３】
2014160402.tif 000015
【図１４】
2014160402.tif 000016
【図１５】
2014160402.tif 000017
【図１６】
2014160402.tif 000018
【図１７】
2014160402.tif 000019
【図１８】
2014160402.tif 000020
【図１９】
2014160402.tif 000021
【図２０】
2014160402.tif 000022
【図２１】
2014160402.tif 000023
【図２２】
2014160402.tif 000024
【図２３】
2014160402.tif 000025
【図２４】
2014160402.tif 000026
【図２５】
2014160402.tif 000027
【図２６】
2014160402.tif 000028
【図２７】
2014160402.tif 000029
【図２８】
2014160402.tif 000030
【図２９】
2014160402.tif 000031
【図３０】
2014160402.tif 000032
【図３１】
2014160402.tif 000033
【図３２】
2014160402.tif 000034
【図３３】
2014160402.tif 000035
【図３４】
2014160402.tif 000036
【図３５】
2014160402.tif 000037
【図３６】
2014160402.tif 000038
【図３７】
2014160402.tif 000039