以下、本発明の実施の形態について、図面を用いて説明する。すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
なお、各実施形態の情報処理装置を構成する各部は、制御部、メモリ、メモリにロードされたプログラム、プログラムを格納するハードディスク等の記憶ユニット、ネットワーク接続用インターフェースなどからなり、ハードウェアとソフトウェアの任意の組合せによって実現される。そして特に断りのない限り、その実現方法、装置は限定されない。
また、各実施形態の説明において利用するブロック図は、ハードウェア単位の構成ではなく機能単位のブロックを示している。これらの機能ブロックはハードウェア、ソフトウェアの任意の組み合わせによって実現される。また、これらの図においては、各実施形態の構成部は物理的に結合した一つの装置により実現されるよう記載されている場合もあるが、その実現手段はこれに限定されない。すなわち、二つ以上の物理的に分離した装置を有線または無線で接続し、これら複数の装置により、各実施形態のシステムを実現してもよい。
<実施の形態1>
以下、発明を実施するための最良の形態について図面を参照して詳細に説明する。
図1を参照すると、本発明の第1の実施の形態におけるGUI解析装置10は、操作部品検出部20と、部品マッチング部25とを備えている。具体的な構成として、図2に示すように、部品マッチング部25はテキスト類似度計算部30と、画像類似度計算部40と、依存関係類似度計算部50と、部品対応判定部60と、を備える。また、図1に示すように、GUI解析装置10を含む全体システムは、プログラム制御により動作する端末装置300と、マウスやキーボードなどの入力装置100と、表示画面を備えたディスプレイ装置などの出力装置200とから構成されていてもよい。
GUI解析装置10は、端末装置300に備えられていてもよい。例えば、GUI解析装置10は、端末装置300上で、後述する本実施の形態1におけるプログラムを実行することにより構築されている。また、各システム400は、GUI解析装置10の外部にあるシステムである。各システム400は、端末装置300上で別のプログラム(例えば、アプリケーションプログラム)を実行することによって構築されていてもよい。
また、図1に示すように、本実施の形態にかかるGUI解析装置10は、端末装置300を介して、入力装置100と出力装置200とに接続されている。ユーザは、入力装置100を用いて、端末装置300上で実行されるシステム400に対して操作を行うことができる。また、出力装置200は、端末装置300上で実行されるシステム400が出力する操作部品を表示する。
操作部品検出部20は、端末装置300上で動作し、出力装置200の表示画面に表示されている第1のシステムおよび第2のシステムの操作部品を特定する情報(以下、「操作部品情報」とする)を取得する。例えば、操作部品検出部20は、操作部品種別、ラベル文字列、ポップアップヒント文字列、アイコン画像、部品の依存関係、操作方法を少なくとも取得する。操作部品種別とは、「プッシュボタン」や「メニュー」、「リストボックス」など操作部品の種類である。ラベル文字列とは、ボタン内に表示される文字列など、操作部品に付与された表示文字列である。ポップアップヒント文字列は、操作部品上にマウスカーソルをマウスオーバーさせた際に、その操作部品を説明するためにポップアップ表示される文字列である。アイコン画像は、操作部品をツールバーなどに配置する際に付与された画像である。部品の依存関係とは、メニューの階層構造や、グループ化されたボタンなど部品のグループ構造などである。操作方法は、マウスによるシングルクリックやダブルクリック、左クリックや右クリック、ボタンの長押し、キーボードによる入力、キーボードの特定キーを押下しながらのクリック操作などマウスとキーボードを組み合わせた操作、タッチパネルでのフリック、ピンチイン、ピンチアウトなど、ユーザの部品に対する入力操作の方法などである。
テキスト類似度計算部30は、前記操作部品検出部20が取得した操作部品情報のうち、ラベル文字列やポップアップヒント文字列などのテキスト情報について、第1のシステムのGUI上の操作部品と第2のシステムのGUI上の操作部品との類似度を計算する。テキスト類似度計算部30は、具体的な類似度の計算には、例えば「編集距離」などの技術を用いればよい。
ここで、編集距離は、文字の挿入や削除、置換によって、ある文字列を別の文字列に変形するのに必要な手順の最小回数として与えられる。例えば、"kitten"を"sitting"に変形する場合には、(1)"k"を"s"に置換して"kitten"→"sitten"、(2)"e"を"i"に置換して"sitten"→"sittin"、(3)"g"を挿入して"sittin"→"sitting"、というように最低でも3回の手順が必要とされるので、編集距離は3となる。
画像類似度計算部40は、前記操作部品検出部20が取得した操作部品情報のうち、アイコンなどの画像情報について、第1のシステムのGUI上の、即ち、表示画面上に表示されている操作部品と第2のシステムのGUI上の操作部品との類似度を計算する。画像類似度計算部40は、具体的な類似度の計算には、色に関する特徴量抽出結果を用いる手法や、色と構図から特徴量を抽出した結果を用いる手法など、類似画像検索の分野での技術を用いればよい。
また、前記テキスト類似度計算部30および前記画像類似度計算部40は、各操作部品に対して複数の操作方法が実行可能な場合には、それら操作方法別に類似度を計算してもよい。例えば、テキスト類似度計算部30および前記画像類似度計算部40は、操作部品Aに対して、ユーザが、マウス左ボタンのダブルクリック、マウス右ボタンのシングルクリック、ドラッグ&ドロップなど複数の操作が可能ならば、その操作ごとに対応関係を判定して類似度を計算する。これにより、テキスト類似度計算部30および前記画像類似度計算部40は、同一部品かつ同一操作の部品について対応付けを行なった上で部品のテキスト類似度や画像類似度を計算することができる。したがって、GUI解析装置10は、GUI上の同一の部品であっても、その部品に対する操作方法が異なれば、異なる部品として扱うことができる。
依存関係類似度計算部50は、前記操作部品検出部20が取得した操作部品情報のうち、部品の依存関係に基づいて、第1のシステムのGUI上の操作部品と第2のシステムのGUI上の操作部品との類似度(依存関係の類似度)を計算する。依存関係類似度計算部50は、具体的な類似度の計算には、例えば階層構造を持つ操作部品の類似度であれば、木構造データの構造(木の形状)の類似度を計算する「木の編集距離」などの技術を用いればよい。
木の編集距離は、木を構成するノードの挿入や削除、置換によって、ある木を別の木に変形するのに必要な手順の最小回数として与えられる。例えば、図4に示す例では、(a)に示す木構造データT1から(b)に示す木構造データT2へ変形するために、(1)ノードCを削除、(2)ノードEを挿入、(3)ノードAをノードFで置換、というように、編集距離は3となる。
また、依存関係類似度計算部50は、階層構造を持つ操作部品の類似度計算の方法として、木を構成するノードとなる操作部品全体のテキスト類似度や画像類似度を用いることもできる。例えば、図5は、ラベル文字列が付与された2つの木構造を持つ操作部品の集合(以下、部品ツリー)T3とT4で、それぞれ同じラベル文字列を持つ2つのノードaaaの組み合わせについて、部品ツリーの類似度を計算例を示している。図5(a)は着目するノードの対応を示す図である。図5(b)は着目したノードの先祖および子孫のノードの対応を示す図である。このとき、依存関係類似度計算部50は、それぞれの部品ツリーで注目するノードの先祖のノード集合、および子孫のノード集合同士で最も高い類似度を持つノードの組み合わせを特定する。図5の例では、T3の先祖のノード集合は(bbb)、T4の先祖のノード集合は(bbc)となり、この場合は要素がそれぞれ1つずつしかないため、これら2つのノードの組み合わせが、先祖のノード集合同士で最も高い類似度を持つノードの組み合わせとなる。また、T3の子孫のノード集合は(ccc, ddd)、T4の子孫のノード集合は(xxx, cbc, yyy, zzz, ddddd)となる。この場合は、cccとcbc、dddとdddddの組み合わせが、子孫のノード集合同士で最も高い類似度を持つノードの組み合わせとなる。
以上の結果から、部品ツリーの類似度として特定したノードの組み合わせの編集距離の和を用いるとすると、T3とT4の類似度は、bbbとbbcの編集距離1、cccとcbcの編集距離1、dddとdddddの編集距離2の和4となる。このように、依存関係類似度計算部50は、テキスト類似度計算部30や画像類似度計算部40における計算結果が同一または非常に近い部品の組み合わせが複数存在する場合に、部品の階層構造に基づく操作部品の類似度を計算することができる。
なお、上記の例ではテキスト類似度計算部30や画像類似度計算部40が操作部品の類似度を計算し、それを基に同じラベル文字列を持つ2つのノードaaaの組み合わせについて、依存関係類似度計算部50が部品ツリーの類似度を計算する例を示したが、これに限られない。例えば、類似度計算部50は、木を構成するノードとなる操作部品全体のテキスト類似度や画像類似度を用いて、第一のシステムの操作部品と第二のシステムの操作部品との依存関係の類似度を全ての操作部品の組み合わせについて総当り的に計算しても良い。また、依存関係類似度計算部50は、先祖ノード集合や子孫ノード集合内での階層構造の深さを加味して類似度を計算しても良い。例えば上記の例では、図5のT3におけるノードdddとT4におけるdddddとは、基準となるノードaaaから見て階層が1つ異なる。このような場合には、編集距離としてさらに1を加えても良い。具体的には、上記の例ではdddとdddddの編集距離は2であるが、これに階層の深さの違いである1を加えて、編集距離を3としても良い。
依存関係類似度計算部50は、例えば、「設定」という同一のラベル文字列を付与された操作部品が複数存在した場合に、「書式」というラベル文字列を付与された親の部品を持つ部品と、「罫線」というラベル文字列を付与された親の部品を持つ部品を区別することができる。
また、依存関係類似度計算部50は、グループ構造を持つ操作部品の類似度計算の方法としては、前記の階層構造を持つ操作部品において、木を構成するノードとなる操作部品全体のテキスト類似度や画像類似度を用いる場合と同様に計算できる。このとき、比較対象となる2つの操作部品を含むそれぞれのグループに属する部品について、前記の部品ツリーでの先祖のノード集合、あるいは子孫のノード集合とみなせばよい。
部品対応判定部60は、前記テキスト類似度計算部30、画像類似度計算部40、および依存関係類似度計算部50それぞれの出力結果を統合して、最終的に第1のシステムのGUI上の操作部品と第2のシステムのGUI上の操作部品との対応関係を判定する。類似度計算結果の統合はさまざまな方法があるが、例えば、部品対応判定部60は、テキスト類似度Stext、画像類似度Simage、部品ツリーの構造の類似度Stree_struct、部品ツリーの内容の類似度Stree_contentの重み付け総和として、αStext + βSimage + γStree_struct + δStree_contentなどを用いればよい。なお、α、β、γ、δはそれぞれ各類似度に付与する重みである。
次に、図2及び図3のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、操作部品検出部20は、出力装置200を監視し、ユーザが入力装置100を介した操作によって、第1のシステムと第2のシステムからそれぞれ出力装置200の表示画面に表示されている操作部品を検出し、各操作部品の部品情報を取得する(図3のステップA1)。
図6は第1のシステムの表示画面の例を示している。また、図7、図8、図9は、操作部品検出部20が第1のシステムから検出して取得する操作部品情報の例を示している。
図7は、テキスト情報に関する操作部品情報の例を示している。具体的には、図7は、ウインドウ名"X-Editor"を持つウインドウ上に配置され、部品種別が"メニュー"で、ラベル文字列"ファイル"、"編集"、"検索"などを持つ操作部品の情報が操作部品検出部20によって取得されている。
図8は、画像を付与された操作部品情報の例を示している。具体的には、図8は、ウインドウ名"X-Editor"を持つウインドウ上に配置され、ラベル文字列"新規作成"、"開く"、"検索"などを持つ操作部品の情報が取得されている例を示している。また、それぞれの操作部品についてポップアップヒントとして表示される文字列も操作部品検出部20によって取得されている。ポップアップヒントは、操作部品上にマウスカーソルをマウスオーバーさせた際に、その操作部品を説明するためにポップアップ表示される情報である。図10はその一例を示している。具体的には、図10の例は、図6に示したGUIの印刷アイコンボタンのポップアップヒントが表示されている様子を示している。
図9は、部品ツリーの例を示している。具体的には、図9では、ルートウィンドウとしてウインドウ名"X-Editor"を持つウインドウが示されており、また、ルートノードの子ノードとして"ファイル"、"編集"、"検索"などのメニューや、"新規作成"、"開く"、"検索"などのアイコンボタンが示されており、さらに、"ファイル"メニューの子ノードとして"新規作成"、"開く..."、"上書き保存"などのメニューが示されている。図9は、これら操作部品の木構造が、操作部品検出部20によって取得されている例を示している。この場合、図9は、図11に示すようにファイルメニューの下に"新規作成"、"開く..."、"上書き保存"などの操作部品があることを意味している。
また、図12は第2のシステムの表示画面の例を示している。第1のシステムと同様にして、操作部品検出手部20が第2のシステムのGUI上の操作部品を検出し、各操作部品の部品情報を取得する。第2のシステムのGUI上の操作部品情報の例を図13、図14、図15に示す。図13はテキスト情報に関する操作部品情報、図14は画像を付与された操作部品情報、図15は部品ツリーをそれぞれ示している。
次に、テキスト類似度計算部30が、前記操作部品検出部20が取得した第1のシステムの操作部品と第2のシステムの操作部品のテキスト情報の類似度を計算する(ステップA2)。より具体的には、テキスト類似度計算部30は、図7に示したテキスト情報と、図13に示したテキスト情報のすべての操作部品の組み合わせについて類似度を計算する。
具体的な類似度の計算の一例を以下に説明する。まず、テキスト類似度計算部30は、類似度の計算には例えば、上述の編集距離を用いる。しかし、編集距離は実際には非類似度(どれだけ類似していないかを示す値。値が大きくなるほど類似しないことを意味する)であるので、計算式には編集距離の逆数を用いる。また、図7および図13に示した例ではすべての操作部品についてラベル文字列が完全に一致する組み合わせがある。例えば、"ファイル"というラベル文字列についてはX_T1とY_T1、"編集"というラベル文字列についてはX_T2とY_T2などという組み合わせがあり、このような場合、編集距離は0となる。従って、テキストの類似度Stextの計算式は、編集距離をdとしたとき、Stext = 1 / (d+1)とする。このとき、完全に文字列が一致する場合に最大の類似度1をとる。
前記の計算式を用いると、図7と図13に示した例では、例えばX_T1とY_T1の類似度が1などと計算される。
また、"貼付け"と"ペースト"のように同義語がまったく類似しないものとして計算されてしまうのを防ぐために、テキスト類似度計算部30は、類似度の計算の前に辞書を用いて同義語を同じラベル文字列に変換してから類似度計算を行うようにしてもよい。
また、テキスト類似度計算部30は、例えば、"終了"と"終了する"のように同一の部分文字列が存在する場合には、一致する部分文字列の長さに応じて類似度を加点するようにしてもよい。また、この処理は編集距離の計算において、置換、挿入、削除の各手順に重みを与えるようにしても実現できる。
また、画像類似度計算部40が、前記操作部品検出部20が取得した第1のシステムの操作部品と第2のシステムの操作部品について付与された画像の類似度を計算する(ステップA3)。より具体的には、画像類似度計算部40は、図8に示した画像情報と、図14に示した画像情報のすべての操作部品の組み合わせについて類似度を計算する。
具体的な画像類似度の計算は、上述の様々な公知の計算方法を用いて可能であるから説明は省略する。なお、図8と図14の例では、操作部品に画像だけでなく、ラベル文字列あるいはポップアップヒント文字列が付与されているので、ステップA2と同様にテキスト文字列の類似度計算も行うことができる。
なお、テキストの類似度を計算するステップA2と、画像の類似度を計算するステップA3の順序は入れ替わっても、2つのステップを並行に処理してもよい。
次に、GUI解析装置10は、ステップA2のテキスト類似度あるいはステップA3の画像類似度の計算結果から、それぞれ一定以上の値を持つ操作部品の組み合わせを抽出する(ステップA4)。例えば、図7と図13のテキスト類似度については、しきい値を0.8とすると、(X_T1, Y_T1)など完全に一致するラベル文字列を持つ操作部品の組み合わせのみが抽出される。しかし、これらの例では、"設定..."というラベル文字列を持つ操作部品の組み合わせとして(X_T14, Y_T15)、(X_T14, Y_T16)、(X_T17, Y_T15)、(X_T17, Y_T16)が抽出され、重複して抽出される操作部品が存在する(これについては後述)。
図8と図14の画像類似度についても、同様にして、(X_I1, Y_I1)、(X_I2, Y_I2)、(X_I3, Y_I3)、(X_I4, Y_I4)などのように適切な組み合わせが抽出される。
次に、依存関係類似度計算部50が、ステップA4で抽出した操作部品の組み合わせのうち、1対1でない操作部品について依存関係類似度を計算する(ステップA5)。これまでの例では、(X_T14, Y_T15)、(X_T14, Y_T16)、(X_T17, Y_T15)、(X_T17, Y_T16)の組み合わせが操作部品が1対1でないものとして対象となる。
具体的な部品ツリー類似度の計算の一例を以下に説明する。まず、GUI解析装置10は、組み合わせ中の各操作部品の部品ツリーから、その操作部品と、その先祖および子孫からなる部分部品ツリーを抽出する。例えば、GUI解析装置10は、組み合わせ(X_T14, Y_T15)については、X-Editor - 編集[X_T2] - 設定...[X_T14]、およびY-Editor - 編集[Y_T2] - 設定...[Y_T15]を抽出する。同様に、組み合わせ(X_T14, Y_T16)については、X-Editor - 編集[X_T2] - 設定...[X_T14]、およびY-Editor - ウィンドウ[Y_T3] - 設定...[Y_T16]を抽出する(図16参照)。
次に、依存関係類似度計算部50は、抽出した部分部品ツリーの構造の類似度を計算する。上述の例では、(X_T14, Y_T15)、(X_T14, Y_T16)の組み合わせとも、図16に示すようにツリー構造は等しいので、木の編集距離はゼロとなる。従って、どちらの組み合わせともに、構造の類似度は1となる。
次に、依存関係類似度計算部50は、抽出した部分部品ツリーの内容の類似度を計算する。まず、依存関係類似度計算部50は、X_T14およびY_T15それぞれの先祖のノード集合、子孫のノード集合同士で最も高い類似度を持つノードの組み合わせを特定する。先祖のノードには、ルートノードとしてウインドウが含まれるが、今回の例ではそれぞれのシステムの画面が唯一のウインドウのみを表示するので、類似度計算は行わなくてもよい。システムの画面が複数のウインドウを表示する場合には、依存関係類似度計算部50は、例えばウインドウタイトル文字列の編集距離を用いるなどして類似度を求める。結果、X_T14の先祖ノード集合は{編集...[X_T2]}、Y_T15の先祖ノード集合は{編集...[Y_T2]}となり、これらのノードの組み合わせが、編集距離ゼロ、すなわち類似度1で、最も高い類似度を持つノードの組み合わせとなる。また、この例では、子孫ノードはX_T14、Y_T15のどちらも持たないので類似度計算は行わない。なお、このような場合には、子孫ノードは完全に一致するとみなして類似度を1としてもよい。以上の結果、部分部品ツリーの内容の類似度は、先祖ノードの類似度1+子孫ノードの類似度1=2となる。同様にX_T14およびY_T16の部品ツリーの内容の類似度を考えると、先祖ノードの組み合わせが"編集..."[X_T2]と"ウィンドウ"[Y_T3]となるので、先祖ノードの類似度は編集距離5、すなわち類似度1/6(≒0.1667)となる。子孫ノードの類似度は1であるので、部品ツリーの類似度は1+1/6≒1.1667となる。
以上の結果から、部分ツリーの類似度として、構造の類似度と内容の類似度の和をとるとすると、(X_T14, Y_T15)の組み合わせについては1+2=3、(X_T14, Y_T16)の組み合わせについては1+1.1667=2.1667となる。
最後に、部品対応判定部60は、前記の各ステップで計算した類似度を統合して操作部品の対応関係を判定する(ステップA6)。本実施の形態では、第1のシステムX-Editorの表示画面と第2のシステムY-Editorの表示画面に表示されている操作部品間で、まず、テキスト類似度の計算により"設定..."を除いて、ラベル文字列を持つ操作部品が1対1に対応付けられ、また、画像類似度計算により画像を付与された操作部品が1対1に対応付けられる。次に、部品対応判定部60は、テキスト類似度計算で1対1に対応付けられなかった"設定..."というラベル文字列を持つ操作部品間で、部品ツリー類似度の計算結果により対応付けを判定する。例えば、最も高い類似度を持つ組み合わせで対応付けを行うとすると、図16に示すX_T14とY_15の組み合わせが対応付けられる。同様にしてX_T17とY_T16の組み合わせが対応付けられる。以上の結果から、最終的に図17に示すように第1のシステムX-Editorと第2のシステムY-EditorのGUI上の操作部品が1対1に対応付けられる。
次に、本実施の形態の効果について説明する。本実施の形態では、GUI解析装置10が、操作部品に付与されたテキストや画像の類似度だけでなく、操作部品に対する操作方法や操作部品の依存関係の類似度を用いて対応関係を判定するように構成されている。そのため、GUI解析装置10は、複数のシステムのGUI間で類似する操作部品を対応付けることができる。また、GUI解析装置10は、見た目の類似度だけでなく、同一の操作を実行するための部品であるか否かという意味まで含めて操作部品の対応関係を判定することができる。このため、GUI解析装置10は複数のシステムのGUI間で同一の操作を実行する操作部品を対応付けることができる。
<実施の形態2>
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。
図18を参照すると、第2の実施の形態におけるGUI解析装置11は、図2に示したGUI解析装置10と異なる構成を備えている。すなわち、GUI解析装置11は、図2に示された操作部品検出部20に替えて、操作部品情報記憶部21を備えている。
なお、上記の相違点以外については、GUI解析装置11は、図2に示したGUI解析装置10と同様の構成を備えている。また、GUI解析装置11も、端末装置300上でプログラムを実行することによって構築されている。以下、実施の形態1との相違点を中心に説明する。
操作部品情報記憶部21は、前記の第1の実施の形態における操作部品検出部20の出力結果をあらかじめ記憶する。あるいは、図7ないし図9、図13ないし図15に示したような情報を人手で作成したものを記憶するようにしてもよい。
次に、図18及び図19のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、操作部品情報記憶部21は第1のシステムのGUI上の操作部品情報および第2のシステムのGUI上の操作部品情報をあらかじめ記憶している(図19のステップB1)。このとき、操作部品情報は、図2に示した操作部品検出部20の出力結果を保存しておいたものを用いてもよいし、図7ないし図9、図13ないし図145の形式に準じたものを人手で作成したものを使用してもよい。
続くステップB2からステップB6までの各ステップは、図3に示したステップA2からステップA6までの各ステップとそれぞれ同様のステップであるので説明を省略する。なお、GUI解析装置11は、操作部品検出部20と操作部品情報記憶部21の両方を備えた構成であってもよい。この場合、操作部品検出部20が取得した端末装置300上で動作するシステム400のGUIの操作部品情報と、操作部品情報記憶部21が格納する操作部品情報検出部20の出力結果である操作部品情報(あるいは人手で作成した操作部品情報)とを用いて、部品対応判定部60が操作部品の対応付けを行うことにしてもよい。
本実施の形態では、GUI解析装置11が、あらかじめ用意しておいた操作部品情報を用いて異なるシステムのGUI間の操作部品を対応付けるように構成されている。そのため、GUI解析装置11は、解析対象のシステムを動作させることなく操作部品を対応付けることができる。
本実施の形態かかるGUI解析装置11は、端末装置300上で動作させることができないシステムであっても操作部品情報を人手で作成すれば、操作部品の対応付けを行うことができる。例えば、GUI解析装置11は、携帯電話など専用のハードウェア上で動作するようなシステムについても解析を行うことができる。
また、GUI解析装置11は、システムのマニュアルなどから操作部品情報を人手で作成すれば、端末装置300上でシステムを動作させることなく解析を行うことができる。
<実施の形態3>
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
図20を参照すると、本発明の第3の実施の形態におけるGUI解析装置12は、図2に示したGUI解析装置10と異なる構成を備えている。すなわち、GUI解析装置12は、図2に示された構成に加えて、操作検出部70と、対応操作部品表示部80を備えている。
なお、上記の相違点以外については、GUI解析装置12は、図2に示したGUI解析装置10と同様の構成を備えている。また、GUI解析装置12も、端末装置300上でプログラムを実行することによって構築されている。以下、実施の形態1との相違点を中心に説明する。
操作検出部70は、出力装置200の表示画面に表示されているシステム400の操作部品に対して、ユーザが入力装置100を介して行った操作入力を検出する。具体的には、操作検出部70は、ユーザが、例えば第1のシステムのGUI上の操作部品を選択した場合に、選択された操作部品を特定する情報を取得する。なお、操作部品の選択は、例えば、ユーザが入力装置100によって、マウスポインタを配置(マウスオーバー)したり、キーボードからフォーカスを与えたりすることによって行うことができる。
対応操作部品表示部80は、まず、前記操作検出部70で取得した操作部品情報を用いて、部品対応判定部60が出力する判定結果を参照する。次に、対応操作部品表示部80は、前記操作部品情報で特定される操作部品に対応する別システムの操作部品を特定する。そして、対応操作部品表示部80は出力装置200の表示画面に表示されている別システムのGUI上で、特定した操作部品を目立たせて表示させる。
次に、図20及び図21のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、ユーザが入力装置100を介して、端末装置300上で第1のシステム400のGUI制御部と第2のシステム400のGUI制御部を起動し、出力装置200の表示画面に操作部品を表示する。ここで、第1のシステム400は、例えばユーザが既知のシステムであり、そのGUIも使い慣れていて操作部品の配置も十分に理解しているものとする。また、第2のシステム400は、例えば前記第1のシステムがバージョンアップしたシステム、あるいは前記第1のシステムと同じ種類だが異なるシステムとし、そのGUIはユーザが使い慣れておらず操作部品の配置も理解出来ていないものとする。
GUI解析装置12は、図3に示したステップA1からステップA6の各ステップとそれぞれ同様のステップであるステップC1からステップC6の処理を行い、第1のシステム400のGUI上の操作部品と第2のシステム400のGUI上の操作部品との対応付けを行う(図21のステップC1ないしC6)。ステップC1からステップC6までの各ステップは、図3に示したステップA1からステップA6までの各ステップとそれぞれ同様のステップであるので説明を省略する。
次に、ユーザが入力装置100を介して、出力装置200の表示画面に表示されている第1のシステム400のGUIの操作部品を選択する操作を行うと、操作検出部70が前記操作を検出する。(ステップC7のYES、およびステップC8)。なお、ユーザが操作を行っていないときは、表示画面の監視を継続する(ステップC7のNO)。
次に、対応操作部品表示部80は、部品対応判定部60が出力する判定結果を参照し、ステップC7で特定した第1のシステム400のGUI上の操作部品に対応する第2のシステム400のGUI上の操作部品を取得する(ステップC9)。例えば、第1のシステム400の表示画面を図6に示したX-Editorとし、第2のシステム400の表示画面を図12に示したY-Editorとして、ユーザがマウス操作によってX-Editorの「検索/置換」メニューの「検索...」にマウスオーバーしたとする(図22参照)。このとき、操作検出部70は選択されたX-Editorの「検索」メニューを検出する。対応操作部品表示部80は、図17に示した部品対応判定部60の判定結果を参照し、X-Editorの「検索」メニュー(図17のX-Editor→検索/置換→検索...、図7の部品ID X_T15)の操作部品に対応するY-Editorの「検索...」メニュー(図17のY-Editor→編集→検索...、図13の部品ID Y_T13)を取得する。
続いて、対応操作部品表示部80が、出力装置200の表示画面上で、ステップC9で特定した操作部品を強調表示する(ステップC10)。図23に、対応操作部品表示部80が行う強調表示の例を示す。図23は、出力装置200の表示画面にX-EditorとY-Editorが表示されている場面を表している。図23の例では、ユーザが、X-Editorの「検索/置換」メニューの「検索...」にマウスオーバーすると、Y-Editorの「編集」メニューの「検索...」が強調表示されている例を示している。
本実施の形態では、互いに対応付けられた異なるシステムのGUIの操作部品のうち、ユーザが一つのシステムのGUIの操作部品を選択すると、選択された操作部品に対応する別システムの操作部品を表示画面上で強調表示するようにGUI解析装置12は構成されている。そのため、ユーザは異なるシステム間で互いに対応する操作部品をひと目で把握することができる。
<実施の形態4>
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。
図24を参照すると、本発明の第4の実施の形態におけるGUI解析装置13は、図2に示したGUI解析装置10と異なる構成を備えている。すなわち、GUI解析装置13は、図2に示された構成に加えて、操作系列入力部71と、GUI評価部90を備えている。
なお、上記の相違点以外については、GUI解析装置13は、図2に示したGUI解析装置10と同様の構成を備えている。また、GUI解析装置13も、端末装置300上でプログラムを実行することによって構築されている。以下、実施の形態1との相違点を中心に説明する。
操作系列入力部71は、端末装置300上で動作しているシステム400の操作部品に対する一連の操作手順を指定する。例えば、操作手順の指定は「ボタンAをマウスでシングルクリックした後、次にボタンBをマウスでシングルクリックする」などである。操作系列入力部71は、ユーザが実際に入力装置100を介してシステム400の操作部品に対して操作を行い、その一連の操作を記録するようにしてもよいし、「マウスシングルクリック(ボタンA)→マウスシングルクリック(ボタンB)」のようにあらかじめ定めた形式に従ってテキストで記述するようにしてもよい。この場合は、1つの操作を、<ユーザの操作>+"("+<操作部品>+")"という文字列で指定し、さらに"→"で複数の操作の順序を表している。
GUI評価部90は、操作部品の操作性を評価する。評価の指標としては、さまざまなものが考えられるが、例えば、操作効率を挙げることができる。操作効率は、GUIに対して一連の操作を行った場合に、それら操作が完了するまでの操作時間で表すことができる。
GUI上で、マウスなどの入力装置100を用いて操作部品を選択する時間を予測するためのモデルとしてFittsの法則が知られている。Fittsの法則では、時間をtとすると、操作部品を選択する時間tはt = a + b*log2(A/W+1)として算出される。ただし、Aはマウスカーソルと対象となる操作部品との距離、Wは操作部品のサイズ、aとbは経験的定数である。
また、GUI上での操作手順を分割し、単位あたりの所要時間の和をとることによって、一連の操作の実行時間を予測するキーストロークレベルモデルもよく知られている。キーストロークレベルモデルでは、実行時間をTeとすると、Te = ΣTk + ΣTp + ΣTb + ΣTbb + ΣTh + ΣTm + ΣTrとして算出される。ただし、Tkはキー入力時間、Tpはマウスカーソルの移動に要する時間、Tbはマウスボタンをはなすのに要する時間、Tbbはマウスクリックに要する時間、Thはマウスからキーボードへ、あるいはキーボードからマウスへ手を移動するのに要する時間、Tmは次の操作を思考判断するために要する時間、Trはシステムの応答時間である。
次に、図24及び図25のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、ユーザが入力装置100を介して、端末装置300上で第1のシステム400のGUIと第2のシステム400のGUIを起動し、出力装置200の表示画面に表示する。
次に、操作部品検出部22は、出力装置200の表示画面に表示されている第1のシステムのGUIと第2のシステムのGUIからそれぞれ操作部品を検出し、各操作部品の部品情報を取得する(図25のステップD1)。このとき、本発明の第4の実施の形態における操作部品検出部22は、第1の実施の形態において取得した図7、図8、あるいは図13、図14の情報に加えて、各操作部品の位置、サイズなどの情報も同時に取得する。例えば、操作部品検出部22は、位置情報として操作部品が配置されているウインドウにおける操作部品の中心座標、あるいは操作部品が配置されているウインドウにおける操作部品の左上および右下の座標を取得し、サイズは操作部品の面積を取得する。
次に、GUI解析装置13は、図3に示したステップA2からステップA6の各ステップとそれぞれ同様のステップであるステップD2からステップD6の処理を行い、第1のシステム400のGUI上の操作部品と第2のシステム400のGUI上の操作部品との対応付けを行う(図25のステップD2ないしD6)。ステップD2からステップD6までの各ステップは、図3に示したステップA2からステップA6までの各ステップとそれぞれ同様のステップであるので説明を省略する。
次に、ユーザは入力装置100を介して操作系列入力部71を用いて、第1のシステムの操作部品に対する一連の操作手順の指定を行う(ステップD7)。いま、例えば図26の(a)、(b)に示すように、第1のシステムの操作部品としてウインドウSystemA、第2のシステムの操作部品としてウインドウSystemBが出力装置200の表示画面上に表示されているとする。このとき、ユーザは、操作系列入力部71を用いて、「SystemAのButton1を押下した後、SystemAのButton2を押下する」という一連の操作を指定する。操作の指定は、実際にユーザがマウスを用いて、マウスカーソルをウインドウSystemAのボタンButton1上に移動させてマウスクリックした後、さらにマウスカーソルをウインドウSystemAのボタンButton2上に移動させてマウスクリックするようにしてもよいし、「マウスシングルクリック(SystemA:ButtonA)→マウスシングルクリック(SystemA:ButtonB)」のようにあらかじめ定めた形式に従ってテキストで記述するようにしてもよい。
次に、GUI評価部90は、ステップD7で指定した第1のシステムの操作部品に対する操作系列を用いて、前記部品対応判定部60の出力結果である操作部品の対応関係を参照し、指定した操作系列に対応する第2のシステムの操作部品に対する操作系列を取得する(ステップD8)。例えば、前記の例では、第1のシステムの操作系列内の2つのボタンButton1とButton2を用いて、部品対応判定部60の出力結果を参照すると、それぞれラベル文字列が一致する第2のシステムの操作部品Button1、Button2を取得する。その結果、第1のシステムの操作部品に対する操作系列「マウスシングルクリック(SystemA:ButtonA)→マウスシングルクリック(SystemA:ButtonB)」に対応する第2のシステムの操作部品に対する操作系列「マウスシングルクリック(SystemB:ButtonA)→マウスシングルクリック(SystemB:ButtonB)」を取得することができる。
次に、GUI評価部90は、ステップD8で取得した操作系列を各システムのGUI上で実行した場合の評価を算出する(ステップD9)。例えば、ユーザが操作効率を評価するために操作部品に対して一連の操作を行うとする。この一連の操作手順をキーストロークレベルモデルで表すと、(1)ユーザがマウスに手を置く(2)マウスカーソルをButton1に移動(3)Button1をマウスクリック(4)システムの応答(5)マウスカーソルをButton2に移動(6)Button2をマウスクリック(7)システムの応答となる。キーストロークレベルモデルではすべてのキー入力とクリックの前には心理的準備時間(M)を挿入することになっているので、その点を加味すると上記一連の操作手順は以下のようになる。すなわち、操作手順は(1)ユーザがマウスに手を置く(M)心理的準備時間(2)マウスカーソルをButton1に移動(M)心理的準備時間(3)Button1をマウスクリック(4)システムの応答(M)心理的準備時間(5)マウスカーソルをButton2に移動(M)心理的準備時間(6)Button2をマウスクリック(7)システムの応答となる。いま、マウスへの手の移動に要する時間Th=0.4秒とする。また、心理的準備時間Tm=1.35秒、マウスクリックに要する時間Tbb=0.2秒、システムの応答時間Tr=0.1秒とする。また、Fittsの法則から算出した第1のシステムのGUIのSystemAウインドウにおいてマウスカーソルを現在位置からButton1へ移動するのに要する時間Tp_A1=1.0秒、Button1からButton2へ移動するのに要する時間Tp_A2=0.3秒、第2のシステムのGUIのSystemBウインドウにおいてマウスカーソルを現在位置からButton1へ移動するのに要する時間Tp_B1=1.1秒、Button1からButton2へ移動するのに要する時間Tp_B2=0.7秒とする。この場合、第1のシステムのGUIにおいて操作系列を実行するのに要する時間は、Th + Tm + Tp_A1 + Tm + Tbb + Tr + Tm + Tp_A2 + Tm + Tbb + Tr= 0.4 + 1.35 + 1.0 + 1.35 + 0.2 + 0.1 + 1.35 + 0.3 + 1.35 + 0.2 + 0.1 = 7.7秒となる。また、同様に、第2のシステムのGUIにおいて操作系列を実行するのに要する時間はTh + Tm + Tp_B1 + Tm + Tbb + Tr + Tm + Tp_B2 + Tm + Tbb + Tr= 0.4 + 1.35 + 1.1 + 1.35 + 0.2 + 0.1 + 1.35 + 0.7 + 1.35 + 0.2 + 0.1 = 8.2秒となる。
従って、GUI評価部90は、ステップD7で指定した操作系列に関しては、第2のシステムのGUIに比べて第1のシステムのGUIのほうが操作効率が良いと評価でき、操作系列の予測実行時間は第1のシステムのGUIでは7.7秒、第2のシステムのGUIでは8.2秒と算出される。
また、GUI解析装置13は、図24に示した操作部品検出部22に替えて、操作部品情報記憶部21を備えた構成、あるいは操作部品検出部22と操作部品情報記憶部21の両方を備えた構成であってもよい。前者の構成の場合、前者の構成の場合、操作部品情報記憶部21が格納する、操作部品検出部22の出力結果である操作部品情報(あるいは人手で作成した操作部品情報)を用いて、部品対応判定部60が操作部品の対応付けを行ってもよい。そして、その結果を用いてGUI評価部90がGUIの評価を行ってもよい。後者の構成の場合、操作部品検出部22が取得した端末装置300上で動作するシステム400のGUIの操作部品情報と、操作部品情報記憶部21が格納する操作部品情報検出部22の出力結果である操作部品情報(あるいは人手で作成した操作部品情報)とを用いて、部品対応判定部60が操作部品の対応付けを行ってもよい。そして、その結果を用いてGUI評価部90がGUI評価を行ってもよい。
本実施の形態にかかるGUI解析装置13は、GUIの評価を行う際に、第1のシステムのGUIに対して操作系列を指定すると、第1のシステムのGUIの操作部品に対応する別システムのGUIの操作部品で操作系列を置き換えて、別システムのGUI上での評価を行うように構成されている。そのため、GUI解析装置13は、ある一つのシステムのGUIの評価を命令するだけで、自動的に他のシステムのGUIでの評価を算出することができる。
また、GUI解析装置13は、人手で作成した操作部品情報を用いることによって、現在稼働中のシステムをバージョンアップした設計段階の未完成なシステムのGUIについても、現在稼働中のシステムのGUIの操作部品を対応付けて、比較評価を行うことができる。
<実施の形態5>
次に、本発明の第5の実施の形態について図27を参照して説明する。
本発明の第5の実施の形態におけるGUI解析装置14は、図20に示された実施の形態3におけるGUI解析装置12の構成の対応操作部品表示部80に替えて、対応操作実行部81を備えている。
なお、上記の相違点以外については、GUI解析装置14は、図20に示した第3の実施の形態のGUI解析装置10と同様の構成を備えている。また、GUI解析装置14も、端末装置300上でプログラムを実行することによって構築されている。本実施の形態においても、実施の形態3と同様に、第1のシステム400はユーザが既知のシステムであり、そのGUIはユーザが使い慣れていて操作部品の配置も十分に理解しているものとする。また、第2のシステム400は、前記第1のシステムがバージョンアップしたシステム、あるいは前記第1のシステムと同じ種類だが異なるシステムとし、そのGUIはユーザが使い慣れておらず操作部品の配置が理解出来ていないものとする。
対応操作実行部81は、操作検出部70で取得した操作部品情報を用いて、部品対応判定部60が出力する判定結果を取得する。次に、対応操作実行部81は、前記操作部品情報で特定される操作部品に対応する別システムの操作部品を特定する。そして、対応操作実行部81は、出力装置200の表示画面に表示されている別システムのGUI上で、前記特定した操作部品に対し、第1のシステムのGUIの操作部品に対するユーザの操作(マウスによるシングルクリック、マウスによるダブルクリックなど)と同じ操作を、第1のシステムのGUIの操作部品と対応する第2のシステムのGUIの操作部品に対して行う。他の部分に関しては実施の形態3と同様であるから説明を省略する。
本実施の形態にかかるGUI解析装置14は、ユーザが互いに対応付けられた異なるシステムのGUIの操作部品のうち、一つのシステムのGUIの操作部品を操作すると、操作された操作部品に対応する別システムの操作部品に対して同様の操作を実行することができる。このようにすれば、ユーザは使い慣れた第1のシステムのGUIに対して操作を行うだけで、第2のシステムを操作することが可能となる。
<実施の形態6>
本発明の第6の実施の形態におけるGUI解析装置15は、依存関係類似度計算部50と、部品対応判定部60とを備える。その他については実施の形態1と概略同様であるから、説明を省略する。この構成により、第1のシステムから取得した階層的な関係を有する操作部品の1つであって画面表示されている第1の操作部品の上位(下位)の階層に位置する操作部品の集合に含まれる操作部品と、第2のシステムから取得した階層的な関係を有する操作部品の1つであって画面表示されている第2の操作部品の上位(下位)の階層に位置する操作部品の集合に含まれる操作部品の組み合わせのうちで、最も高い操作部品類似度を持つ操作部品の組み合わせを特定し、最も高い前記操作部品類似度に基づき計算した評価値を、前記第1の操作部品と前記第2の操作部品の依存関係の類似度として出力する依存関係類似度計算手段と、前記依存関係の類似度に基づき、前記第1のシステムの操作部品と前記第2のシステムの操作部品とを対応付けて、その対応結果を出力する部品対応判定手段と、を備えるGUI解析装置が提供される。
本実施の形態にかかるGUI解析装置15によれば、複数のシステムのGUI間で類似の操作部品を対応付けることができる。
(実施形態の他の表現)
上記実施形態の一部または全部は、以下の付記ようにも記載されうる(以下に限定されない)。
(付記)
依存関係類似度計算手段は、比較対象となる第1のシステムのGUIの操作部品を含む依存関係の一部分と、第2のシステムのGUIの操作部品を含む依存関係の一部分とを用いて操作部品の依存関係の類似度を計算するGUI解析装置。
第1のシステムのGUIと第2のシステムのGUIそれぞれの操作部品を特定する操作部品情報をあらかじめ記憶する操作部品情報記憶手段を、操作部品検出手段に替えて、あるいは、操作部品検出手段に加えて備え、部品対応判定手段は操作部品情報記憶手段に記憶された操作部品情報にもとづき前記第1のシステムのGUIの操作部品と前記第2のシステムのGUIの操作部品とを対応づけて出力するGUI解析装置。
(a)外部システムの一つである第1のシステムのGUIの操作部品と第2のシステムのGUIの操作部品との間で、それぞれの操作部品に付与された文字列の類似度を計算するステップと、(b)前記第1のシステムのGUIの操作部品と前記第2のシステムのGUIの操作部品との間で、それぞれの操作部品に付与された画像の類似度を計算するステップと、(c)前記第1のシステムのGUIの操作部品の依存関係と前記第2のシステムのGUIの操作部品の依存関係との類似度を計算するステップと、(d)前記(a)〜(c)のステップのそれぞれの出力結果を組み合わせて、操作部品間の総合的な類似度を計算し、前記第1のシステムのGUIの操作部品と前記第2のシステムのGUIの操作部品との対応関係を判定するステップと,を有するGUI解析方法。
(a)前記外部システムの一つである第1のシステムのGUIの操作部品と第2のシステムのGUIの操作部品との間で、それぞれの操作部品に付与された文字列の類似度を計算するステップと、(b)前記第1のシステムのGUIの操作部品と前記第2のシステムのGUIの操作部品との間で、それぞれの操作部品に付与された画像の類似度を計算するステップと、(c)前記第1のシステムのGUIの操作部品の依存関係と、前記第2のシステムのGUIの操作部品の依存関係の類似度を計算するステップと、(d)前記(a)〜(c)のステップのそれぞれの出力結果を組み合わせて、操作部品間の総合的な類似度を計算し、前記第1のシステムのGUIの操作部品と前記第2のシステムのGUIの操作部品との対応関係を判定するステップと、をコンピュータに実行させるプログラム。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解しうる様々な変更をすることができる。