JP6107337B2 - 操作記録装置、操作記録方法及び操作記録プログラム - Google Patents

操作記録装置、操作記録方法及び操作記録プログラム Download PDF

Info

Publication number
JP6107337B2
JP6107337B2 JP2013076487A JP2013076487A JP6107337B2 JP 6107337 B2 JP6107337 B2 JP 6107337B2 JP 2013076487 A JP2013076487 A JP 2013076487A JP 2013076487 A JP2013076487 A JP 2013076487A JP 6107337 B2 JP6107337 B2 JP 6107337B2
Authority
JP
Japan
Prior art keywords
event
information
recording
gui
type
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.)
Active
Application number
JP2013076487A
Other languages
English (en)
Other versions
JP2013239155A (ja
Inventor
好邦 佐藤
好邦 佐藤
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2013076487A priority Critical patent/JP6107337B2/ja
Publication of JP2013239155A publication Critical patent/JP2013239155A/ja
Application granted granted Critical
Publication of JP6107337B2 publication Critical patent/JP6107337B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、操作記録装置、操作記録方法及び操作記録プログラムに関し、特に、GUIアプリケーションにおけるユーザ操作を記録する操作記録装置、操作記録方法及び操作記録プログラムに関する。
GUI(Graphical User Interface)を用いたアプリケーションにおいて、ユーザの操作の履歴を取得して保管する仕組みが存在する。ユーザの操作は、アプリケーションを構成するGUI要素において発生するイベント(例えば、「確認」ボタン上でのマウスの左ボタンのクリックや、テキストボックス内でのキーボード入力操作等)を検出することによって、取得することができる。このようにして取得されたユーザの操作の履歴は、例えば、ユーザの操作に起因して生じたアプリケーションの問題を解析するために用いられる。
特許文献1には、計算機システム内で発生したイベントを検出し、イベントID又はイベントメッセージが所定の条件を満たすイベントを保存する、イベント制御装置が開示されている。
特許文献2には、アプリケーションの起動、ウィンドウのオープン又は文字入力のようなユーザの操作を、アプリケーション又はウィンドウのIDと合わせて記憶する機構が開示されている。
特許第3418034号 特開2004−21438号公報
しかしながら、既存の方法においては、GUI要素において発生するイベントを検出するために、各GUI要素において、イベントを検出して記録する処理を実装する必要があった。このため、GUI要素の追加又は変更が行われるたびに、そのような処理を追加又は変更する必要があり、実装のためのコストがかかっていた。
本発明は、このような問題に鑑みてなされたものであり、GUIアプリケーションのGUI要素ごとにイベント検出処理を実装する必要のない操作記録装置を提供することを目的とする。
上述した課題を解決し目的を達成するため、本発明の一実施形態における操作記録装置は、
一以上のGUI要素を含むGUIアプリケーションにおけるユーザの操作を記録する操作記録装置であって、
前記GUI要素において検出されたイベントのうち、所定の型のイベントを検出するイベント検出手段と、
GUI要素の型の情報を用いて、検出された該イベントから前記ユーザの操作に関するイベントを特定するイベント特定手段と、
特定された前記イベントの情報を記録するイベント情報記録手段と、
を有する。
また、本発明の一実施形態における操作記録方法は、
一以上のGUI要素を含むGUIアプリケーションにおけるユーザの操作を記録する操作記録方法であって、
前記GUI要素において検出されたイベントのうち、所定の型のイベントを検出するイベント検出段階と、
GUI要素の型の情報を用いて、検出された該イベントから前記ユーザの操作に関するイベントを特定するイベント特定段階と、
特定された前記イベントの情報を記録するイベント情報記録段階と、
を有する。
また、本発明の一実施形態における操作記録プログラムは、
一以上のGUI要素を含むGUIアプリケーションにおけるユーザの操作を記録する操作記録方法をコンピュータに実行させる操作記録プログラムであって、
前記GUI要素において検出されたイベントのうち、所定の型のイベントを検出するイベント検出段階と、
GUI要素の型の情報を用いて、検出された該イベントから前記ユーザの操作に関するイベントを特定するイベント特定段階と、
特定された前記イベントの情報を記録するイベント情報記録段階と、
をコンピュータに実行させる、操作記録プログラムである。
本発明によれば、GUIアプリケーションのGUI要素ごとにイベント検出処理を実装する必要のない操作記録装置を提供できる。
本発明の一実施形態における操作記録装置のハードウェア構成の例を表す図。 本発明の一実施形態における操作記録装置の機能ブロックの例を表す図。 GUIアプリケーションを構成するGUI要素の要素ツリーの例を表す図。 本発明の一実施形態における操作記録装置によるGUIアプリケーションの起動時の処理を表すフローチャート。 本発明の一実施形態における操作記録装置によるイベント検出処理を表すフローチャート。 本発明の一実施形態における操作記録装置による操作履歴の記録処理を表すフローチャート。 本発明の一実施形態における操作記録装置による操作履歴の記録処理を表すフローチャート。 本発明の一実施形態における操作記録装置が用いるイベント抽出条件定義テーブルの例を表す図。 本発明の一実施形態における操作記録装置が用いる対象要素型定義テーブルの例を表す図。 本発明の一実施形態における操作記録装置が用いる対象要素テーブルの例を表す図。 本発明の一実施形態における操作記録装置が出力する操作履歴情報の例を表す図。 GUIアプリケーションの表示例を表す図。 GUIアプリケーションのXAMLファイルの例を表す図。 本発明の一実施形態における操作記録装置によるGUIアプリケーションの起動時の処理を表すフローチャート。 本発明の一実施形態における操作記録装置によるイベント検出処理を表すフローチャート。 本発明の一実施形態における操作記録装置が用いる対象要素名定義テーブルの例を表す図。 本発明の一実施形態における操作記録装置が用いる対象要素型定義テーブルの例を表す図。 本発明の一実施形態における操作記録装置が用いる対象要素テーブルの例を表す図。 本発明の一実施形態における操作記録装置が出力する操作履歴情報の例を表す図。
以下、本発明の実施形態を図面に基づいて説明する。
1.概要
2.ハードウェア構成
3.機能構成
4.処理フロー
4.1 GUIアプリケーションの起動時の処理フロー
4.2 イベント検出処理フロー
4.3 操作履歴の記録処理フロー
5.応用例
(1.概要)
まず、本発明の一実施形態における操作記録装置の構成の概要について説明する。当該操作記録装置と、操作の記録対象となるGUIアプリケーションは、Microsoft(登録商標)社によって開発された、WPF(Windows Presentation Foundation)のフレームワークを用いて構成することができる。
WPFにおいては、GUIアプリケーションを構成するGUI要素が、例えば図3で表されるような木構造300(以下、「要素ツリー」と呼ぶ)を構成する。図3の例では、ルート要素310(根ノード)は「Window」要素であり、その子要素(子ノード)として、「Canvas」要素と「Grid」要素が存在する。そして、「Grid」要素の下に、さらに子要素としての「Button」要素と「Checkbox」要素が存在する。WPFでは、これらのGUI要素に対して行われるユーザの入力に応じて、バブルイベントとトンネルイベントの二種類のイベントが発生する。WPFは、バブルイベントが発生すると、最初にイベントの発生元のGUI要素に登録されたイベントハンドラを呼び出し、要素ツリー300のルート要素310に到達するまで、順次、親要素のイベントハンドラを呼び出す。一方、WPFは、トンネルイベントが発生すると、最初にルート要素310に登録されたイベントハンドラを呼び出す。そして、その後、要素ツリー300に従って、イベント発生元の要素まで、順次、子要素のイベントハンドラを呼び出す。これらのイベントの発生に伴って呼び出されたイベントハンドラは、WPFから、イベント発生元であるGUI要素の情報や、GUI要素の状態を示すプロパティ(属性情報)を含む、イベント付帯情報を受信する。なお、要素ツリー300は、WPFによるGUIアプリケーションに含まれる、XAML(Extensible Application Markup Language)形式のファイルから取得することができる。
本発明の一実施形態における操作記録装置は、要素ツリー300のルート要素310に対してイベント検出処理を行うイベントハンドラを登録することで、要素ツリーを構成する全ての子要素におけるトンネルイベントのイベント付帯情報を取得することができる。その結果、要素ツリーを構成するGUI要素ごとに、イベント検出処理を実装する必要がなくなる。
(2.ハードウェア構成)
図1を用いて、本発明の一実施形態における操作記録装置100のハードウェア構成について説明する。図1で例示される操作記録装置100は、CPU102と、ROM104と、RAM106と、HDD108と、通信装置110と、表示装置112と、入力装置114と、バス116を有する。
CPU102は、当該操作記録装置100の動作制御を行うシステムプログラムや、ユーザアプリケーションを実行する。ROM104は、CPU102が実行するシステムプログラム等を記憶する。RAM106は、CPU102のワークエリアを構成する。HDD108は、システムプログラム、ユーザアプリケーション及びユーザデータ等を記憶する。通信装置110は、例えば、有線又は無線の通信インターフェースとその制御装置を含み、外部の装置と通信を行うために用いられる。表示装置112は、例えば、ディスプレイ及びグラフィックスコントローラを含み、ユーザに対して情報を提示する。入力装置114は、例えばキーボードやマウス、タッチパネルのような、ユーザから入力を受け付ける。バス116は、操作記録装置100を構成する上記装置を相互に接続し、データのやり取りを行う。
上記構成により、本発明の一実施形態における操作記録装置100は、GUIアプリケーションのGUI要素ごとにイベント検出処理を実装する必要のない操作記録装置を提供することができる。
(3.機能構成)
次に、図2を用いて、本発明の一実施形態における操作記録装置100の機能ブロックについて説明する。図2には、操作記録装置100が備える様々な要素のうち、本実施形態の説明に特に関連する要素が示されている。図2における操作記録装置100は、入力手段200と、イベント通知手段202と、登録手段204と、対象イベント管理手段206と、イベント検出手段208と、イベント特定手段210と、対象要素管理手段212と、操作履歴記録手段214と、表示手段216を有する。
入力手段200は、GUIアプリケーションを利用するユーザが、入力装置114を通じて行った入力を受け付ける。当該入力の情報(例えば、マウスのどのボタンがクリックされたか、どのキー入力がなされたか、等)は、OS(Operating System)を通じて、イベント通知手段202に通知される。
イベント通知手段202は、入力手段200におけるユーザからの入力を、入力イベントとして、イベント検出手段208に通知する。当該通知は、イベント通知手段202が、後述する登録手段204によってルート要素310に登録された、イベントハンドラとしてのイベント検出手段208を呼び出すことによって行われる。また、イベント通知手段202は、当該通知とともに、イベント付帯情報をイベント検出手段208に渡す。イベント通知手段202は、WPFの機能を用いて実現できる。
登録手段204は、イベント検出手段208を、イベントハンドラとしてイベント通知手段202に登録する。より詳細には、登録手段204は、後述する対象イベント管理手段206において特定されたイベントの型についてのイベントを取得できるよう、イベント検出手段208を、要素ツリーのルート「Window」に対して登録する。WPFにおける、イベントハンドラの登録手続きは、以下の通りである。
要素オブジェクト.イベント型 += イベントハンドラ
要素オブジェクトとは、GUI要素のオブジェクト(インスタンス)を表す。本実施形態では、図3に示すように、ルート要素310である「Window」のオブジェクトを指定する。イベント型とは、ユーザからの入力の態様に応じて予め定義されたイベントの型であり、例えば、「PreviewMouseLeftButtonDown」や、「PreviewKeyDown」等がある。「PreviewMouseLeftButtonDown」は、マウスの左ボタンがクリックされたときに発生するトンネルイベントの型を表す。また、「PreviewKeyDown」は、キーボードのボタンが押下されたときに発生するトンネルイベントを表す。本実施形態では、ルート要素310において、要素ツリー300を構成する子要素全てのイベントを全て検出できるように、トンネルイベントの型を指定する。本実施形態においては、イベントハンドラは、イベント検出手段208に相当する。登録手段204は、後述する対象イベント管理手段206によって特定されたイベント型について、イベント検出手段208を登録する。
対象イベント管理手段206は、登録手段204がイベントハンドラを登録する時に指定すべき、イベントの型を特定する。当該イベントの型は、例えば図8に示されるイベント抽出条件定義テーブル800によって定義される。図8に示されるイベント抽出条件定義テーブル800は、イベントIDと、イベント型と、イベント表記名の項目を含む。イベントIDは、検出されたイベントの型を特定するために付されたIDである。イベント型は、検出対象となるイベントの型を表す。イベント表記名は、イベントの型を、ユーザにとってわかりすい表現にするための表記名である。イベント表記名は、後に、操作の履歴を記録する際に用いられる。先述した登録手段204は、当該対象イベント管理手段206によって特定されたイベントの型の、イベント情報を検出できる。なお、イベント抽出条件定義テーブル800は、ユーザによって予め定義されてもよい。また、対象イベント管理手段206は、必要に応じて、イベント抽出条件定義テーブル800に記載された内容を追加又は削除してもよい。
イベント検出手段208は、イベント通知手段202からの通知を受けて、対象イベント管理手段206によって特定されたイベントの型のイベントを検出する。また、イベント検出手段208は、イベント検知手段204から、イベント発生元要素の情報や、GUI要素の状態を示すプロパティを含む、イベント付帯情報を受け取る。例えば、WPFにおいて、イベントハンドラであるイベント検出手段208は、イベント検知手段204から、イベント付帯情報を含むオブジェクトへの参照を、引数として受け取る。受け取ったイベント付帯情報は、イベント特定手段210に渡される。
イベント特定手段210は、イベント検出手段208からイベント付帯情報を受け取る。そして、受け取ったイベント付帯情報のイベント発生元のGUI要素の型が、後述する対象要素管理手段212によって指定されたGUI要素の型であれば、イベント付帯情報から、所定のプロパティ情報を取得する。所定のプロパティ情報とは、例えば、要素の型が「System.Windows.Controls.Button」である場合には、GUI要素のオブジェクト名及びボタンのラベルであってもよい。取得されるプロパティ情報は任意である。取得すべきプロパティ情報は、後述する対象要素管理手段212によって特定される。取得されたプロパティ情報は、イベント発生日時情報、当該要素型の要素表記名、及び特定されたイベントのイベント表記名とともに、操作履歴情報として、操作履歴記録手段214に渡される。ここで、イベント発生日時情報には、例えば、イベント検出手段208がイベントを検出した日時を格納することができる。イベント発生日時情報は、任意のタイミングで取得することができる。要素表記名は、特定したイベントの発生元要素の要素表記名であり、例えば、後述する対象要素テーブル1000(図10)を参照することで取得できる。イベント表記名は、特定したイベントのイベント表記名であり、例えば、図8のイベント抽出条件定義テーブル800を参照することで取得できる。なお、イベント検出手段208から受け取ったイベント付帯情報が、対象要素管理手段212によって指定された要素の型についての情報を含まない場合には、操作履歴記録手段214に対して、情報は渡されない。
対象要素管理手段212は、操作履歴の記録の対象となるGUI要素の型と、取得すべきGUI要素の状態を表すプロパティを特定する。GUI要素の型は、例えば図10に示される対象要素テーブル1000によって定義される。図10に示される対象要素テーブル1000は、要素IDと、要素型と、要素表記名と、取得プロパティ1と、取得プロパティ2の項目を含む。要素IDは、要素の型を特定するために付されたIDである。要素型は、情報を取得すべき対象となるGUI要素の型である。要素表記名は、GUI要素をわかりすく表現した表記名である。要素表記名は、後に、ユーザの操作の履歴を記録する際に用いられる。取得プロパティ1、2は、GUI要素から取得すべきプロパティを示す。GUI要素から取得可能なプロパティは、GUI要素の型によってそれぞれ異なる。本実施形態において、指定可能なプロパティの種類や個数は、任意である。先述したイベント特定手段210は、受け取ったイベント付帯情報から、イベント発生元の要素の型を特定し、対象要素テーブル1000の要素型の項目を参照することで、当該イベント付帯情報が、操作履歴として記録すべき情報であるかを判定する。なお、図10に示される対象要素テーブル1000は、図9に示される対象要素型定義テーブル900に基づいて、自動的に生成されたものである。対象要素型定義テーブル900は、予めユーザによって定義された、情報を取得すべき要素型を定義したテーブルである。対象要素管理手段212は、予め、対象要素型定義テーブル900で定義された要素型のうち、操作記録の対象であるGUIアプリケーションに含まれる要素型のみを抽出し、対象要素テーブル1000を生成する。なお、GUIアプリケーションに含まれるGUI要素の型は、XAML形式で表現される要素ツリー300の情報として、取得可能である。
操作履歴記録手段214は、イベント特定手段212から受け取った操作履歴情報を記録する。図11は、記録された操作履歴情報をテーブル形式で格納した例を表す。格納される各項目のうち、イベント発生日時、要素表記名、イベント表記名は、上述した通りである。また、取得プロパティ1、2には、対象要素テーブル1000(図10)で指定され、イベント特定手段210において取得されたプロパティの値が格納される。例えば、図11の要素表記名「ボタン」に関する記録は、図10における要素型「System.Windows.Controls.Button」から取得された「Name」プロパティの値は「button1」であり、「Label」プロパティの値は「確認」であったことを示している。また、詳細については後述するが、操作履歴記録手段214は、操作履歴の記録処理に関して、性能重視の方式と、確実性重視の方式の、二通りの形態をとることができる。前者の方式では、当該操作履歴の記録処理命令が、メモリ上に配置されたキューに蓄積され、別スレッドから、キューに蓄積された記録処理が随時実行される。一方、後者の方式では、操作履歴の記録を逐次出力する。なお、操作履歴記録手段214は、例えばファイル形式やデータベースへの書き込みのような、任意の方法で操作履歴情報を記録する。
表示手段216は、ユーザからの指示により、操作履歴記録手段214によって格納された操作履歴を表示装置112上に表示する。
上記構成により、本発明の一実施形態における操作記録装置100は、GUIアプリケーションのGUI要素ごとに操作履歴情報を記録する処理を実装する必要がなくなり、開発コストの低減に寄与する。また、ユーザによって予めイベント抽出条件を定義可能とすることで、ユーザの所望する操作履歴の情報を記録することができる。特に、ユーザは、イベント抽出条件の定義を随時追加又は変更することができ、所望のイベントのみを選択的に記録することが出来る。
なお、イベント特定手段210、操作履歴記録手段214は、イベント検出手段208の一部として実現されてもよい。
(4.処理フロー)
次に、図4−図7を用いて、本発明の一実施形態における操作記録装置100の処理フローについて説明する。
(4.1 GUIアプリケーションの起動時の処理フロー)
まず、図4を用いて、GUIアプリケーションの起動時の処理フローについて説明する。
ステップS400において、操作履歴の記録対象となるGUIアプリケーションが起動されると、当該処理が開始する。
ステップS402において、対象イベント管理手段206は、ユーザによって予め定義されたイベント抽出条件定義テーブル800(図8)を読み込み、操作履歴取得の対象とするイベント(トンネルイベント)を特定する。
ステップS404において、登録手段204は、対象イベント管理手段206によって特定されたイベントのイベント型を対象として、イベントハンドラ(イベント検出手段208)を、要素ツリー300のルート要素310に登録する。
ステップS406において、対象要素管理手段212は、ユーザによって予め定義された対象要素型定義テーブル900(図9)と、GUIアプリケーションを構成するGUI要素の要素ツリー300を照合する。そして、GUIアプリケーションに実際に含まれるGUI要素の中から、操作履歴の対象とすべきGUI要素を抽出して、対象要素テーブル1000(図10)を生成する。
以上により、本発明の一実施形態における操作記録装置100は、GUIアプリケーションで発生したイベントのうち、ユーザによって予め指定されたイベント型のイベントを検出することができる。また、ユーザによって予め指定されたGUI要素のうち、GUIアプリケーションを構成するGUI要素で発生したイベントを検出することができる。
(4.2 イベント検出処理フロー)
次に、図5を用いて、イベント検出処理フローについて説明する。
ステップS500において、GUIアプリケーション上で、ユーザが入力手段200を通じて入力操作を行うと、当該処理が開始する。
ステップS502において、イベント通知手段202は、ユーザからの入力に対応するイベント(トンネルイベント)を、イベント検出手段208(ルート要素310の各イベント型に対して登録されたイベントハンドラ)に通知する。この時、イベント通知手段202は、イベント発生元要素の情報や、GUI要素の状態を示すプロパティを含む、イベント付帯情報を、イベント検出手段208に渡す。
ステップS504において、イベント検出手段208は、イベントを検出し、イベント付帯情報を受け取る。受け取ったイベント付帯情報は、イベント特定手段210に渡される。
ステップS506において、イベント特定手段210は、イベント付帯情報から、イベント発生元であるGUI要素の型についての情報を取得する。
ステップS508において、イベント特定手段210は、イベント発生元要素の型と、対象要素テーブル1000(図10)の要素型を比較して、該当するものがあるか照合を行う。その結果、該当するものがある場合には、ステップS510に進む。該当するものがない場合には、ステップS514に進み、処理を終了する。
ステップS510において、イベント特定手段210は、イベント付帯情報から、イベント発生元要素のプロパティ情報を取得する。取得すべきプロパティ情報は、対象要素テーブル1000(図10)によって定義され、イベント発生元要素の型によって異なる。また、イベント特定手段210は、イベント発生日時情報、イベント発生元要素の要素表記名、特定されたイベントのイベント表記名を取得する。そして、イベント発生日時情報、イベント発生元要素の要素表記名、特定されたイベントのイベント表記名、プロパティ情報を、操作履歴情報として、操作履歴記録手段214に渡す。
ステップS512において、操作履歴記録手段214は、イベント特定手段210から受け取った情報を、操作履歴として記録する。記録された操作履歴を格納するテーブルの例を図11に示す。ここで、操作履歴記録手段214は、操作履歴の記録処理に関して、性能重視の方式と、確実性重視の方式の、二通りの形態をとることができる。それぞれの方式の処理については後述する。
このように、本発明の一実施形態における操作記録装置100は、ユーザによって指定されたイベントの型と要素の型に基づいて、操作履歴を取得することができる。ユーザは、記録された操作履歴を用いて、アプリケーションの実際の利用状況を把握することが可能となる。また、ユーザは、記録された操作履歴を用いて、アプリケーションに問題が発生した場合の原因調査や、問題の再現を行うことができる。
(4.3 操作履歴の記録処理フロー)
次に、図6、7を用いて、操作履歴の記録処理フローについて説明する。上述したように、操作履歴記録手段214は、操作履歴の記録処理に関して、性能重視の方式と、確実性重視の方式の、2種類の実施方式を選択的に利用することができる。記録された操作履歴は、後に、表示手段216によって、ユーザに対して提示されてもよい。
図6は、性能重視の方式における処理フローを表す。当該方式においては、操作履歴記録手段214は、二つのスレッドによる並列処理によって、操作履歴を記録する。
ステップS600において、操作履歴記録手段214の第一スレッドによる処理が開始する。
ステップS602において、操作履歴記録手段214は、イベント特定手段210から受け取った操作履歴情報の記録処理命令を、メモリ上に配置された操作履歴記録キューに記録する。当該記録処理は、後述する第二スレッド(ステップS650−S658)において、並列に処理される。
ステップS604において、当該処理は終了する。
ステップS650において、操作履歴記録手段214の第二スレッドによる処理が開始する。
ステップS652において、操作履歴記録手段214は、操作履歴記録キューを読み込む。
ステップS654において、操作履歴記録キューが空である場合には、ステップS658に進み、処理を終了する。操作履歴記録キューが空でない場合には、ステップS656に進む。
ステップS656において、操作履歴記録手段214は、操作履歴記録キューに記録された、操作履歴情報記録処理を実行し、操作履歴を出力する。図11は、記録された操作履歴情報をテーブル形式で格納した例を表す。その後、ステップS652に戻り、再度操作履歴記録キューを読み込む。
図7は、確実性重視の方式における処理フローを表す。当該方式においては、操作履歴記録手段214は、単一のスレッドにおいて、操作履歴情報を順次出力する。
ステップS700において、当該処理が開始する。
ステップS702において、操作履歴記録手段214は、イベント特定手段210から受け取った操作履歴情報を、操作履歴として出力する。図11は、記録された操作履歴情報をテーブル形式で格納した例を表す。
ステップS704において、当該処理は終了する。
このように、本発明の一実施形態における操作記録装置100は、ユーザが予め指定したイベントを記録するため、記録に必要な操作履歴のデータ容量の削減が可能である。また、ユーザが予め指定したイベントを記録するため、無用な計算機処理を行う必要がなくなり、アプリケーションに負荷を与えることなく操作履歴情報を記録することができる。また、操作記録装置100の性能や、操作を記録するアプリケーションの特性に応じて、二種類の操作履歴の記録方式を選択的に利用することができる。
なお、本実施形態は、WPFに対応したGUIアプリケーションを例に挙げて説明したが、本発明は、その例に限定されない。
(5.応用例)
以上のように、本発明の一実施形態における操作記録装置100は、イベント型とGUI要素の型の情報を元に、操作履歴を取得することにより、GUIアプリケーションのGUI要素ごとにイベント検出処理を実装する必要がなくなる。
ここで、図12は、一般的なGUIアプリケーションによる画面150の表示例を表す。図12の画面150は、登録ボタン151と、中止ボタン152と、テキストボックス153、154と、ラベル155、156を有する。また、この画面150に対応する、XAMLファイルの内容の例を、図13に示す。このような画面150において、上述した操作記録装置100を用い、以下の条件の操作履歴を取得することを考える。
要素型 :「System.Windows.Controls.Buton」(図9参照)
イベント :「PreviewMouseLeftButtonDown」 (図8参照)
結果として、操作記録装置100は、登録ボタン151及び中止ボタン152に関する操作履歴を取得することになる。
このような場合に、ユーザは、何れか一方のボタンのみに関する操作履歴の取得を望む場合がある。そこで、以下では、このような要求に応えるための、応用例による操作記録装置100Aを説明する。なお、操作記録装置100Aのハードウェア構成は、図1に示した例と同様である。また、操作記録装置100Aの機能ブロック図は、図2に示した例と同様であるが、一部の手段の処理内容が相違する。そこで、以下では、相違点に着目して、説明を行う。
(機能構成)
既に説明した、操作記録装置100の対象要素管理手段212は、図10を用いて述べたように、対象要素テーブル1000を用いて、操作履歴の取得対象となるGUI要素を管理する。対象要素テーブルは、図9の対象要素型定義テーブル900に基づいて生成されたものである。
一方、応用例における操作記録装置100Aの対象要素管理手段212において、対象要素テーブルは、対象要素型定義テーブル900と、図16に例示される、対象要素名定義テーブル910とに基づいて生成される。
対象要素名定義テーブル910は、操作履歴の取得対象となる要素を、要素型と要素名を用いて、さらに絞り込むために用いられる。図16の対象要素名定義テーブル910は、要素名IDと、要素名と、要素型の項目を含む。要素名IDは、項目ごとに付されるIDである。要素名は、GUI要素に付される名前であり、図13のXAMLファイルにおいて、「Name」プロパティで示される。また、要素型は、GUI要素の型を表している。対象要素名定義テーブル910は、対象要素型定義テーブル900と同様に、ユーザにより、予め生成される。
図16に例示される対象要素名定義テーブル910は、図12の画面150及び図13のXAMLファイルに対応して作成されたものである。対象要素名定義テーブル910は、要素型「System.Windows.Controls.Button」の要素のうち、要素名が「SubmitBtn」の要素についての操作履歴の取得を目的として生成されている。すなわち、同じ要素型の、要素名「CancelBtn」についての操作履歴は、取得対象とされていない。
図18は、図16の対象要素名定義テーブル910と、図17の対象要素型定義テーブル900とに基づいて生成された、対象要素テーブル1010である。ここで、図17の対象要素型定義テーブル900は、図9の対象要素型定義テーブル900と同様の項目を有するが、一部、異なるデータを含む。図18の対象要素テーブル1010は、図10の対象要素テーブル1000と比べ、新たに「要素名」の項目を有する。この項目は、図16の対象要素名定義テーブル910の項目「要素名」に対応する。
操作記録装置100Aの対象要素管理手段212は、対象要素名定義テーブル910と、要素ツリー300とを照合し、要素ツリー300に含まれる要素から、対象要素名定義テーブル910に定義された要素名を持つ要素を抽出する。そして、抽出した要素を、さらに対象要素型定義テーブル900と照合し、要素型一致するものを抽出して、対象要素テーブル1010を生成する。
図18の対象要素テーブル1010は、要素型「System.Windows.Controls.Button」の要素のうち、要素名が「SubmitBtn」の要素の項目を含むが、図13のXAMLファイルに含まれる、要素名が「CancelBtn」の要素の項目は含まない。
生成された対象要素テーブル1010は、後に、画面150上でイベントが検出された際に参照され、当該イベントの要素名及び要素型が、対象要素テーブル1010に定義されている場合に、当該GUI要素に係る操作履歴が記録される。従って、図18の例では、要素型「System.Windows.Controls.Button」の要素のうち、「SubmitBtn」に関する操作履歴のみが取得され、「CancelBtn」については取得されない。
(GUIアプリケーションの起動時の処理フロー)
図14は、図4に対応し、操作記録装置100Aの、GUIアプリケーションの起動時の処理フローを表す。
ステップS700において、操作履歴の記録対象となるGUIアプリケーションが起動されると、当該処理が開始する。
ステップS702において、対象イベント管理手段206は、ユーザによって予め定義されたイベント抽出条件定義テーブル800(図8)を読み込み、操作履歴取得の対象とするイベント(トンネルイベント)を特定する。
ステップS704において、登録手段204は、対象イベント管理手段206によって特定されたイベントのイベント型を対象として、イベントハンドラ(イベント検出手段208)を、要素ツリー300のルート要素310に登録する。
ステップS706において、対象要素管理手段212は、対象要素名定義テーブル910(図16)と要素ツリー300とを照合し、要素ツリー300に含まれる要素から、対象要素名定義テーブル910(図16)に定義された要素名を持つ要素を抽出する。図16の例では、例えば、要素型「System.Windows.Controls.Button」の要素が抽出される。そして、抽出した要素を、さらに対象要素型定義テーブル900(図17)と照合し、要素型が一致するものを抽出して、対象要素テーブル1010(図18)を生成する。図17は、上記の要素型「System.Windows.Controls.Button」の項目を含むため、図17の同項目を含む対象要素テーブル1010が生成される。
以上により、本発明の一実施形態における操作記録装置100Aは、GUIアプリケーションで発生したイベントのうち、ユーザによって予め指定されたイベント型のイベントを検出することができる。また、ユーザによって予め指定された名前を有するGUI要素に関する操作履歴のみを記録することができる。
なお、対象要素名定義テーブル910がユーザによって生成されていない場合には、ステップS706において、図4のステップS406と同様の処理を行ってもよい。
(イベント検出処理フロー)
図15は、本発明の一実施形態における操作記録装置100Aのイベント検出処理フローのフローチャートである。図15のフローチャートは、既に説明した、図5のフローチャートと対応する。
ステップS800において、GUIアプリケーション上で、ユーザが入力手段200を通じて入力操作を行うと、当該処理が開始する。
ステップS802において、イベント通知手段202は、ユーザからの入力に対応するイベント(トンネルイベント)を、イベント検出手段208(ルート要素310の各イベント型に対して登録されたイベントハンドラ)に通知する。この時、イベント通知手段202は、イベント発生元要素の情報や、GUI要素の状態を示すプロパティを含む、イベント付帯情報を、イベント検出手段208に渡す。
ステップS804において、イベント検出手段208は、イベントを検出し、イベント付帯情報を受け取る。受け取ったイベント付帯情報は、イベント特定手段210に渡される。
ステップS806において、イベント特定手段210は、イベント付帯情報から、イベント発生元であるGUI要素の型についての情報を取得する。
ステップS808において、イベント特定手段210は、イベント発生元要素の型と、対象要素テーブル1010(図18)の要素型を比較して、該当するものがあるか照合を行う。その結果、該当するものがある場合には、ステップS810に進む。該当するものがない場合には、ステップS814に進み、処理を終了する。
ステップS810において、イベント特定手段210は、イベント付帯情報から、イベント発生元要素のプロパティ情報を取得する。取得すべきプロパティ情報は、対象要素テーブル1010によって定義され、イベント発生元要素の型によって異なる。
また、イベント特定手段210は、イベント発生日時情報、イベント発生元要素の要素表記名、特定されたイベントのイベント表記名を取得する。そして、イベント発生日時情報、イベント発生元要素の要素表記名、特定されたイベントのイベント表記名、プロパティ情報を、操作履歴情報として、操作履歴記録手段214に渡す。
ステップS812において、操作履歴記録手段214は、イベント特定手段210から受け取った情報を、操作履歴として記録する。記録された操作履歴を格納するテーブルの例を図19に示す。
図19の操作履歴情報1100は、図12の画面150上の二つのボタンのうち、登録ボタン151についての操作履歴のみを格納する。取得プロパティ1(「SubmitBtn」)及び取得プロパティ2(「登録」)は、図18の対象要素テーブル1010で指定された各プロパティ(「Name」及び「Content」)の値である。ここでは、取得プロパティ1として、図16で用いた要素名が、履歴として出力されている。
このように、本発明の一実施形態における操作記録装置100Aは、ユーザが予め指定したイベントを記録するため、記録に必要な操作履歴のデータ容量の削減が可能である。また、ユーザが予め指定したイベントを記録するため、無用な計算機処理を行う必要がなくなり、アプリケーションに負荷を与えることなく操作履歴情報を記録することができる。
100 操作記録装置
200 入力手段
202 イベント通知手段
204 登録手段
206 対象イベント管理手段
208 イベント検出手段
210 イベント特定手段
212 対象要素管理手段
214 操作履歴記録手段
216 表示手段

Claims (9)

  1. 一以上のGUI要素を含むGUIアプリケーションにおけるユーザの操作を記録する操作記録装置であって、
    前記GUI要素において検出されたイベントのうち、所定の型のイベントを検出するイベント検出手段と、
    GUI要素の型の情報を用いて、検出された該イベントから前記ユーザの操作に関するイベントを特定するイベント特定手段と、
    特定された前記イベントの情報を記録するイベント情報記録手段と、
    を有する、操作記録装置。
  2. 前記イベント特定手段は、前記GUI要素の名称の情報をさらに用いて、前記イベントを特定する、
    請求項1に記載の操作記録装置。
  3. 前記GUI要素の名称の情報は、前記GUI要素に係る属性情報として定義される、
    請求項2に記載の操作記録装置。
  4. 前記所定の型のイベントの発生を前記イベント検出手段に通知するイベント通知手段
    を有し、
    前記イベント通知手段は、木構造を有する前記一以上のGUI要素において発生したイベントを、前記一以上のGUI要素のうちの根ノードのGUI要素に通知する、
    請求項1乃至3何れか一項に記載の操作記録装置。
  5. 前記イベント通知手段が通知する前記イベントは、WPFにおけるトンネルイベントである、
    請求項4に記載の操作記録装置。
  6. 前記イベント特定手段は、前記イベント検出手段が検出した前記イベントの発生した前記GUI要素の型が、予め用意されたGUI要素の型のリストに含まれる場合に、該イベントを前記ユーザの操作に関するイベントと特定する、
    請求項1乃至5何れか一項に記載の操作記録装置。
  7. 前記イベントの情報は、前記GUI要素に係る属性情報の値を含む、
    請求項1乃至6何れか一項に記載の操作記録装置。
  8. 一以上のGUI要素を含むGUIアプリケーションにおけるユーザの操作を記録する操作記録方法であって、
    前記GUI要素において検出されたイベントのうち、所定の型のイベントを検出するイベント検出段階と、
    GUI要素の型の情報を用いて、検出された該イベントから前記ユーザの操作に関するイベントを特定するイベント特定段階と、
    特定された前記イベントの情報を記録するイベント情報記録段階と、
    を有する、操作記録方法。
  9. 一以上のGUI要素を含むGUIアプリケーションにおけるユーザの操作を記録する操作記録方法をコンピュータに実行させる操作記録プログラムであって、
    前記GUI要素において検出されたイベントのうち、所定の型のイベントを検出するイベント検出段階と、
    GUI要素の型の情報を用いて、検出された該イベントから前記ユーザの操作に関するイベントを特定するイベント特定段階と、
    特定された前記イベントの情報を記録するイベント情報記録段階と、
    をコンピュータに実行させる、操作記録プログラム。
JP2013076487A 2012-04-17 2013-04-01 操作記録装置、操作記録方法及び操作記録プログラム Active JP6107337B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013076487A JP6107337B2 (ja) 2012-04-17 2013-04-01 操作記録装置、操作記録方法及び操作記録プログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012094158 2012-04-17
JP2012094158 2012-04-17
JP2013076487A JP6107337B2 (ja) 2012-04-17 2013-04-01 操作記録装置、操作記録方法及び操作記録プログラム

Publications (2)

Publication Number Publication Date
JP2013239155A JP2013239155A (ja) 2013-11-28
JP6107337B2 true JP6107337B2 (ja) 2017-04-05

Family

ID=49764098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013076487A Active JP6107337B2 (ja) 2012-04-17 2013-04-01 操作記録装置、操作記録方法及び操作記録プログラム

Country Status (1)

Country Link
JP (1) JP6107337B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6037397B2 (ja) * 2014-02-17 2016-12-07 日本電信電話株式会社 ユーザ操作のログ記録方法、そのプログラムおよび装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4526354B2 (ja) * 2004-11-12 2010-08-18 日立ソフトウエアエンジニアリング株式会社 画面作成装置
JP5382743B2 (ja) * 2011-11-01 2014-01-08 日本電信電話株式会社 ユーザ操作のログ記録方法およびその装置

Also Published As

Publication number Publication date
JP2013239155A (ja) 2013-11-28

Similar Documents

Publication Publication Date Title
US7805451B2 (en) Ontology-integration-position specifying apparatus, ontology-integration supporting method, and computer program product
US8578328B2 (en) Method for presenting candidate for link target to component in web application, as well as computer program and computer system for the same
US10127241B2 (en) Information processing apparatus, method for controlling the same, and storage medium therefor
JP4935413B2 (ja) アップロード用アドインプログラム、アップロード用補助プログラム及びアップロード方法
US9354770B2 (en) Information processing apparatus displaying path information in reverse hierarchical order
WO2012032705A1 (ja) 表示処理装置、表示処理方法およびプログラム
JP2006260522A (ja) 情報処理装置、情報管理装置、情報管理システム、情報処理方法、情報管理方法、情報処理プログラム、情報管理プログラム及び記録媒体
JP2015219890A (ja) 管理装置、その制御方法およびプログラム
US10884711B2 (en) Code management system and code management method using a visual programming tool
JP5641482B2 (ja) 監視制御システム
JP6198206B2 (ja) ソフトウェアをテストする装置およびプログラム
JP6107337B2 (ja) 操作記録装置、操作記録方法及び操作記録プログラム
JP6015546B2 (ja) 情報処理装置、情報処理方法、プログラム
JP6434435B2 (ja) 情報処理装置、操作支援方法および操作支援プログラム
US8719704B2 (en) Seamless integration of additional functionality into enterprise software without customization or apparent alteration of same
KR101681154B1 (ko) 데이터 수집기 구축 방법, 이를 수행하는 데이터 수집기 구축 서버 및 이를 저장하는 기록매체
JPWO2006114880A1 (ja) 情報連携ウィンドウシステム
JP2005141641A (ja) 情報処理システム、情報登録用情報処理装置、情報検索用情報処理装置、情報登録用情報処理方法、情報検索用情報処理方法、プログラム、及び記録媒体
JP2010152748A (ja) グラフ変換支援システム、グラフ変換支援方法、及びプログラム
WO2016192558A2 (zh) 一种提供对象信息的方法与设备
JP2013105460A (ja) 情報処理装置およびその制御方法、並びにプログラム
JP7327471B2 (ja) テスト装置、テスト方法及びプログラム
JP6247182B2 (ja) 操作手順記録装置、操作手順記録方法及び操作手順記録プログラム
JP6287267B2 (ja) コメント管理システム、コメント管理方法、及び、そのプログラム
JP2024100388A (ja) 情報処理システムおよびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R150 Certificate of patent or registration of utility model

Ref document number: 6107337

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250