(57)【特許請求の範囲】
【請求項１】
ＯＳ及びＯＳ上で動作するアプリケーションプログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備えた計算機におけるユーザ操作を支援する操作支援方法であって、
前記プロセッサが、前記ＯＳ又は前記ＯＳ上で動作するアプリケーションプログラムに対するユーザ操作を収集する手順と、
前記プロセッサが、収集された前記ユーザ操作に対応して実行される操作支援の内容を記述した操作テンプレートに基づいて、次に実行すべき操作支援を実行し、操作支援の実行結果として前記操作テンプレートの評価情報を前記メモリに記録する手順と、
前記プロセッサが、記録された前記操作テンプレートの評価情報に基づいて、当該操作テンプレートにおいて当該ユーザに特化した操作支援の改善内容を定義する操作支援ポリシを生成する手順と、
前記プロセッサが、生成された前記操作支援ポリシを、前記操作テンプレートに適用する手順と、
を含むことを特徴とする操作支援方法。
【請求項２】
前記計算機は、前記操作テンプレートを管理するテンプレートサーバにネットワークを介して接続された複数の計算機の一つであり、
前記計算機が、収集された前記ユーザ操作の履歴を、前記テンプレートサーバに送信する手順と、
前記テンプレートサーバが、前記複数の計算機から受信した複数のユーザ操作の履歴に基づいて、汎用的な前記操作テンプレートを生成する手順と、
前記テンプレートサーバが、生成された前記汎用的な操作テンプレートを、前記複数の計算機の各々に送信する手順と、
を含むことを特徴とする請求項１に記載の操作支援方法。
【請求項３】
前記操作テンプレートは、当該操作テンプレートに記述された各操作支援をノードとし、前記各操作支援の実行順序関係に従って、前記ノード間を有向リンクによって接続した有向グラフによって表されることを特徴とする請求項１に記載の操作支援方法。
【請求項４】
前記操作テンプレートの評価情報は、前記操作テンプレートに記述された各操作支援について、当該操作支援の自動実行回数、当該操作支援による処理時間の改善率を示す処理時間改善率、及び、当該操作支援による操作支援後に発生した操作の手戻り回数のうち少なくともいずれか一つを含むことを特徴とする請求項１に記載の操作支援方法。
【請求項５】
前記操作支援ポリシを生成する手順において、前記プロセッサは、前記自動実行回数、前記処理時間改善率、及び、前記手戻り回数のうち少なくともいずれか一つの値に応じて、前記操作支援ポリシにおいて定義すべき当該操作支援の改善内容を切り替えることを特徴とする請求項４に記載の操作支援方法。
【請求項６】
前記プロセッサが、前記操作テンプレートの評価情報を生成するための基準情報を設定し、且つ、前記操作支援ポリシを管理するための表示データを生成する手順を含むことを特徴とする請求項１に記載の操作支援方法。
【請求項７】
前記プロセッサが、収集された前記ユーザ操作の履歴を、所定の基準により一又は複数の系列に分割する手順と、
前記プロセッサが、分割された一又は複数の系列に基づいて、前記操作テンプレートを生成する手順と、
を含むことを特徴とする請求項１に記載の操作支援方法。
【請求項８】
ＯＳ及びＯＳ上で動作するアプリケーションプログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備えた計算機であって、
前記プロセッサが、
前記ＯＳ又は前記ＯＳ上で動作するアプリケーションプログラムに対するユーザ操作を収集し、
収集された前記ユーザ操作に対応して実行される操作支援の内容を記述した操作テンプレートに基づいて、次に実行すべき操作支援を実行し、操作支援の実行結果として前記操作テンプレートの評価情報を前記メモリに記録し、
記録された前記操作テンプレートの評価情報に基づいて、当該操作テンプレートにおいて当該ユーザに特化した操作支援の改善内容を定義する操作支援ポリシを生成し、
生成された前記操作支援ポリシを、前記操作テンプレートに適用することを特徴とする計算機。
【請求項９】
前記計算機は、
前記操作テンプレートを管理するテンプレートサーバにネットワークを介して接続された複数の計算機の一つであり、
収集された前記ユーザ操作の履歴を、前記テンプレートサーバに送信し、
前記テンプレートサーバから、当該テンプレートサーバが前記複数の計算機から受信した複数のユーザ操作の履歴に基づいて生成した汎用的な前記操作テンプレートを受信することを特徴とする請求項８に記載の計算機。
【請求項１０】
前記操作テンプレートは、当該操作テンプレートに記述された各操作支援をノードとし、前記各操作支援の実行順序関係に従って、前記ノード間を有向リンクによって接続した有向グラフによって表されることを特徴とする請求項８に記載の計算機。
【請求項１１】
前記操作テンプレートの評価情報は、前記操作テンプレートに記述された各操作支援について、当該操作支援の自動実行回数、当該操作支援による処理時間の改善率を示す処理時間改善率、及び、当該操作支援による操作支援後に発生した操作の手戻り回数のうち少なくともいずれか一つを含むことを特徴とする請求項８に記載の計算機。
【請求項１２】
前記プロセッサは、前記操作支援ポリシを生成する場合に、前記自動実行回数、前記処理時間改善率、及び、前記手戻り回数のうち少なくともいずれか一つの値に応じて、前記操作支援ポリシにおいて定義すべき当該操作支援の改善内容を切り替えることを特徴とする請求項１１に記載の計算機。
【請求項１３】
前記プロセッサは、前記操作テンプレートの評価情報を生成するための基準情報を設定し、且つ、前記操作支援ポリシを管理するための表示データを生成することを特徴とする請求項８に記載の計算機。
【請求項１４】
前記プロセッサは、
収集された前記ユーザ操作の履歴を、所定の基準により一又は複数の系列に分割し、
分割された一又は複数の系列に基づいて、前記操作テンプレートを生成することを特徴とすることを特徴とする請求項８に記載の計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作支援方法及び計算機に関する。
【背景技術】
【０００２】
ＩＴ（Information Technology）を用いて実現される様々な業務の効率向上を目的として、計算機上でのユーザ操作を支援する技術が知られている。
【０００３】
ユーザ操作の支援とは、例えばソフトウェアやサービスの使い勝手を向上させたり、単純な入力作業の手間を削減したりすることである。ユーザ操作を支援するためには、ユーザ操作に関する操作手順、操作内容及び支援内容等が示されたテンプレートやスクリプトが用いられる。
【０００４】
また、ＩＴを用いて実現される様々な業務の効率を向上させる技術として、例えば特許文献１、２に開示された技術が知られている。
【０００５】
特許文献１には、運用ポリシに基づいた情報システムの運用実績を記録することによって、その運用ポリシを評価し、新たな運用ポリシを生成する技術が開示されている。また特許文献２には、プログラム自動生成装置において、ユーザのルール変更やルール追加を学習し、ルール変更を自動化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開０６／０９５５０６号公報
【特許文献２】特開２０１０−４９５８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のユーザ操作を支援する技術では、個々のユーザに特化した操作を十分に支援できなかった。
【０００８】
すなわち、例えば上記テンプレートやスクリプトは、予め定められた操作手順や操作内容に対して汎用的に適用可能である。しかしながら、個々のユーザによって操作手順や操作内容が異なる場合（例えば個々のユーザの癖によって操作順序が異なる場合、ユーザの役職によって操作内容が異なる場合）、個々のユーザに特化した操作を十分に支援できなかった。また、業務の変化や、利用するソフトウェア、サービスの変化に対応できなかった。
【０００９】
なお、特許文献１に開示された技術では、情報システムの運用ポリシを対象としている。そのため、ユーザ操作に関する特有のポリシ（例えば手戻りや自動化回数等）を評価することについては考慮されていなかった。また、情報システム毎に運用ポリシを評価しているため、異なる情報システムに対して有効な汎用性を有するものではなかった。
【００１０】
また、特許文献２に開示された技術は、命名規則や文法が明確なプログラムに対して適用可能である。そのため、操作順序や支援内容を定義する必要があるユーザ操作の支援には適用できなかった。
【００１１】
本発明は、上述した問題を考慮したものであって、個々のユーザに特化した操作を支援し、且つ、汎用性を有する操作支援を実行する操作支援方法及び計算機を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ＯＳ及びＯＳ上で動作するアプリケーションプログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備えた計算機におけるユーザ操作を支援する操作支援方法であって、前記プロセッサが、前記ＯＳ又は前記ＯＳ上で動作するアプリケーションプログラムに対するユーザ操作を収集する手順と、前記プロセッサが、収集された前記ユーザ操作に対応して実行される操作支援の内容を記述した操作テンプレートに基づいて、次に実行すべき操作支援を実行し、操作支援の実行結果として前記操作テンプレートの評価を前記メモリに記録する手順と、前記プロセッサが、記録された前記操作テンプレートの評価に基づいて、当該操作テンプレートにおいて当該ユーザに特化した操作支援の改善内容を定義する操作支援ポリシを生成する手順と、前記プロセッサが、生成された前記操作支援ポリシを、前記操作テンプレートに適用する手順と、を含むことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、個々のユーザに特化した操作を支援し、且つ、汎用性を有する操作支援を実行することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態の計算機の構成例を示す図である。
【図２】本発明の第１の実施形態の操作支援ポリシ生成処理を説明するブロック図である。
【図３】本発明の第１の実施形態の操作支援ポリシ生成処理を示すフローチャートである。
【図４】本発明の第１の実施形態の操作履歴情報テーブルの一例を示す図である。
【図５】本発明の第１の実施形態の操作テンプレートテーブルの一例を示す図である。
【図６】本発明の第１の実施形態の操作テンプレートの一例を有向グラフで示す図である。
【図７】本発明の第１の実施形態の操作支援実行部の制御ロジックを示すフローチャートである。
【図８】本発明の第１の実施形態の操作支援結果テーブルの一例を示す図である。
【図９Ａ】本発明の第１の実施形態の操作支援実行結果の記録処理を示すフローチャートである。
【図９Ｂ】本発明の第１の実施形態の操作支援実行結果の記録処理を示すフローチャートである。
【図１０】本発明の第１の実施形態の操作履歴を有向グラフで表現した図である。
【図１１】本発明の第１の実施形態の操作支援の実行例を示す図である。
【図１２】本発明の第１の実施形態の操作支援ポリシテーブルの一例を示す図である。
【図１３】本発明の第１の実施形態の操作支援ポリシ生成部の制御ロジックを示すフローチャートである。
【図１４】本発明の第１の実施形態の操作支援ポリシの整理処理を示すフローチャートである。
【図１５】本発明の第１の実施形態の操作支援ポリシ適用部の制御ロジックを示すフローチャートである。
【図１６】本発明の第１の実施形態の操作支援ポリシの適用前後の操作テンプレートの一例を有向グラフで示す図である。
【図１７】本発明の第１の実施形態の操作支援ポリシを管理するためのユーザインターフェースの一例を示す図である。
【図１８】本発明の第２の実施形態の計算機の構成例を示す図である。
【図１９】本発明の第２の実施形態の操作テンプレート及び操作支援ポリシの生成処理を説明するブロック図である。
【図２０】本発明の第２の実施形態の操作テンプレート生成部の制御ロジックを示すフローチャートである。
【図２１】本発明の第３の実施形態の計算機システムの構成例を示す図である。
【図２２】本発明の第３の実施形態の操作テンプレートの生成処理を説明するブロック図である。
【図２３】本発明の第３の実施形態の操作履歴情報共有テーブルの一例を示す図である。
【図２４】本発明の第３の実施形態の計算機システム１の制御ロジックを示すフローチャートである。
【図２５】本発明の第３の実施形態の操作テンプレート生成部の制御ロジックを示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を用いて説明する。
【００１６】
（第１の実施形態）
図１は、本発明の第１の実施形態の計算機（計算機システム）１００の構成例を示す図である。計算機１００は、業務や各種作業に用いられる例えばＰＣ（Personal Computer）である。
【００１７】
計算機１００は、バスによって相互に接続された出力装置１０１、入力装置１０２、ネットワークインターフェース１０３、ＣＰＵ（Central Processing Unit）１０４、外部記憶装置１０５及びメモリ１０６を備える。
【００１８】
出力装置１０１は、例えばディスプレイなどの表示装置である。この出力装置１０１は、以降説明する方法によって生成された操作支援ポリシや、操作支援ポリシの管理用インターフェース（図１７参照）を表示（提示）する。入力装置１０２は、例えばキーボードやマウスなどの入力装置である。この入力装置１０２を用いて、ユーザは業務や操作支援ポリシを管理するための操作を入力する。ネットワークインターフェース１０３は、外部の計算機（不図示）等と接続し、通信するためのインターフェース装置である。
【００１９】
ＣＰＵ１０４は、メモリ１０６に記憶されているプログラムを処理することによって、各種業務を実行する演算処理装置である。外部記憶装置１０５は、メモリ１０６に記憶されているプログラム本体又はメモリ１０６に記憶されているプログラムによって利用されるデータを格納する記憶装置である。メモリ１０６は、ＣＰＵ１０４によって処理されるプログラム及び使用されるデータを格納する記憶装置である。ＣＰＵ１０４によって処理されないプログラム及びデータは、外部記憶装置１０５に格納される。
【００２０】
メモリ１０６は、ＯＳ（Operating System）２０１、アプリケーション２０２、操作支援ポリシ生成部２０３、ユーザ操作収集部２０４、操作支援実行部２０５、操作支援ポリシ適用部２０６及び操作支援ポリシ生成基準入力部２０７の機能を実現するプログラムを格納する。外部記憶装置１０５は、操作支援ポリシテーブル２０８、操作支援結果テーブル２０９、操作テンプレートテーブル２１０及び操作履歴情報テーブル２１１を格納する。
【００２１】
ＯＳ２０１は、アプリケーション２０２を実行するための基本ソフトウェアである。アプリケーション２０２は、ＯＳ２０１上で動作し、文書作成やメール送受信を実行するアプリケーションプログラムである。なお、アプリケーション２０２の種類は特に限定されない。
【００２２】
操作支援ポリシ生成部２０３は、操作支援ポリシを生成する。操作支援ポリシとは、個々のユーザに特化してユーザ操作を支援するためのポリシである。後述する操作テンプレート中の改善対象の操作支援及び改善内容が定義される。操作支援ポリシ生成部２０３の詳細については、図１３を用いて後述する。
【００２３】
ユーザ操作収集部２０４は、ＯＳ２０１及びアプリケーション２０２に対するユーザの操作を収集（取得）し、収集されたユーザ操作の履歴を操作履歴情報テーブル２１１に格納する。
【００２４】
操作支援実行部２０５は、操作履歴情報テーブル２１１に格納されたユーザ操作の履歴と、操作テンプレートテーブル２１０に格納された操作テンプレートとに基づいて、操作支援を実行し、実行結果を操作支援結果テーブル２０９に格納する。操作支援実行部２０５の詳細については、図７を用いて後述する。
【００２５】
操作支援ポリシ適用部２０６は、操作支援ポリシ生成部２０３によって生成された操作支援ポリシを、操作テンプレートテーブル２１０に格納された操作テンプレートに適用する。すなわち、操作支援ポリシに従って、操作テンプレートを修正する。操作支援ポリシ適用部２０６の詳細については、図１５を用いて後述する。
【００２６】
操作支援ポリシ生成基準入力部２０７は、操作支援ポリシ生成部２０３が操作支援ポリシを生成するために用いる基準をユーザが入力するためのインターフェースを提供する。提供されるインターフェースの一例については、図１７を用いて後述する。
【００２７】
操作支援ポリシテーブル２０８は、操作支援ポリシ生成部２０３によって生成された操作支援ポリシを格納する。操作支援ポリシテーブル２０８の詳細については、図１２を用いて後述する。
【００２８】
操作支援結果テーブル２０９は、操作支援実行部２０５によって実行された操作支援の結果を格納する。操作支援結果テーブル２０９の詳細については、図８を用いて後述する。
【００２９】
操作テンプレートテーブル２１０は、操作支援実行部２０５によって実行される操作支援に関する情報を記述した操作テンプレートを格納する。操作テンプレートテーブル２１０の詳細については、図５を用いて後述する。
【００３０】
操作履歴情報テーブル２１１は、ユーザ操作収集部２０４によって収集されたユーザ操作の履歴を格納する。操作履歴情報テーブル２１１の詳細については、図４を用いて後述する。
【００３１】
図２は、本発明の第１の実施形態の操作支援ポリシ生成処理を説明するブロック図である。図２を用いて、操作支援ポリシ生成方法の全体的な流れを説明する。
【００３２】
ユーザ操作収集部２０４は、ＯＳ２０１及びアプリケーション２０２に対するユーザの操作を収集し、収集されたユーザ操作の履歴を操作履歴情報テーブル２１１に格納する。
【００３３】
操作支援実行部２０５は、操作履歴情報テーブル２１１に格納されたユーザ操作の履歴と、操作テンプレートテーブル２１０に格納された操作テンプレートとに基づいて、操作支援を実行し、実行結果を操作支援結果テーブル２０９に格納する。
【００３４】
操作支援ポリシ生成部２０３は、操作支援結果テーブル２０９及び操作テンプレートテーブル２１０に格納された情報を用いて操作支援ポリシを生成し、操作支援ポリシテーブル２０８に格納する。なお、操作支援ポリシ生成部２０３が操作支援ポリシを生成するために用いる基準は、操作支援ポリシ生成基準入力部２０７を介してユーザによって入力される。
【００３５】
操作支援ポリシ適用部２０６は、操作支援ポリシテーブル２０８に格納された操作支援ポリシを、操作テンプレートテーブル２１０に格納された操作テンプレートに適用する。すなわち、操作支援ポリシに従って、操作テンプレートを修正する。
【００３６】
図３は、本発明の第１の実施形態の操作支援ポリシ生成処理を示すフローチャートである。図３を用いて、図２に示す操作支援ポリシ生成方法の全体的な流れを用いて説明する。
【００３７】
まずステップ３０１において、計算機１００（ユーザ操作収集部２０４）は、ユーザ操作を収集する（３０１）。
【００３８】
次にステップ３０２において、計算機１００（操作支援実行部２０５）は、ステップ３０１で収集されたユーザ操作の履歴と、操作テンプレートテーブル２１０に格納された操作テンプレートとを用いて、操作支援を実行する（３０２）。ステップ３０２の詳細については、図７を用いて後述する。
【００３９】
その後ステップ３０３において、計算機１００（操作支援ポリシ生成部２０３）は、ユーザ操作支援の実行結果に基づいて、操作支援ポリシを生成する（３０３）。ステップ３０３の詳細については、図１３を用いて後述する。
【００４０】
図４は、本発明の第１の実施形態の操作履歴情報テーブル２１１の一例を示す図である。操作履歴情報テーブル２１１には、図３のステップ３０１において収集されたユーザ操作の履歴が格納される。操作履歴情報テーブル２１１における各レコードは、ユーザ操作を示す。
【００４１】
履歴ＩＤ４０１は、各レコードを一意に識別するための識別子（ＩＤ）である。履歴ＩＤ４０１は、各レコードを一意に識別する情報であれば、記号や文字列などでもよい。日時４０２は、操作４０３に示す操作がユーザによって実行された日時である。日時４０２には、操作４０３に示す操作の実行開始日時、実行終了日時又は実行期間が格納されてもよい。操作４０３は、ユーザによって実行された操作の内容である。アプリケーション４０４は、操作４０３に示す操作の対象のアプリケーションである。操作対象４０５は、対象のアプリケーションが備えるボタンやテキスト入力部などの部品のうち、操作４０３に示す操作が実行された部品の名称である。データ４０６は、操作４０３に示す操作によって入力されたテキストや音声等のデータの内容である。
【００４２】
なお、アプリケーション４０４、操作対象４０５及びデータ４０６に「なし」が表記される場合、格納すべき情報が収集されなかったことを示す。なお、格納すべき情報が存在しないことを、他の表記によって示してもよい。
【００４３】
図５は、本発明の第１の実施形態の操作テンプレートテーブル２１０の一例を示す図である。操作テンプレートテーブル２１０における各レコードは、操作テンプレートを構成する各操作支援（操作支援処理）を示す。
【００４４】
処理ＩＤ５０１は、各レコードを一意に識別するための識別子（ＩＤ）である。処理ＩＤ５０１は、各レコードを一意に識別する情報であれば、記号や文字列などでもよい。操作テンプレートＩＤ５０２は、操作テンプレートを一意に識別するための識別子である。図５に示す例では、操作テンプレートＩＤ５０２が“１”と“２”の２種類の操作テンプレートが示されている。
【００４５】
前提処理ＩＤ５０３は、各レコードに記述された操作支援に先行して実行される可能性がある操作支援の処理ＩＤ５０１である。必須処理ＩＤ５０４は、各レコードに記述された操作支援に先行して実行される必要がある操作支援の処理ＩＤ５０１である。終了フラグ５０５は、一連の操作支援が終了したか否かを示すフラグである。この終了フラグ５０５は、真偽値で表現され、値が“ｔｒｕｅ”であれば一連の操作支援が終了したことを示す。値が“ｆａｌｓｅ”であれば一連の操作支援が終了していないことを示す。有効度５０６は、各レコードに記述された操作支援の有効性を示す値である。支援内容５０７は、各レコードに記述された操作支援の形態（内容）である。
【００４６】
なお、前提処理ＩＤ５０３〜有効度５０６に“−”が表記されるレコードは、操作テンプレートＩＤ５０２に示す操作テンプレートによる操作支援に関し、最初に実行される操作支援であることを示す。なお、当該レコードが最初に実行される操作支援であることを、他の表記によって示してもよい。
【００４７】
操作５０８、アプリケーション５０９及び操作対象５１０には、図４の操作４０３、アプリケーション４０４、操作対象４０５と同じ内容の情報が格納される。データ５１１は、図４のデータ４０６と同じ内容の情報、又は、値が限定されない“−”が格納される。なお、値が限定されないことを、他の表記によって示してもよい。元処理時間５１２は、操作支援が実行されない場合における操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１によって示されるユーザ操作の所要時間である。
【００４８】
図６は、本発明の第１の実施形態の操作テンプレートの一例を有向グラフで示す図である。図６では、図５において操作テンプレートＩＤ５０２が“１”の操作テンプレートを有向グラフの形式で表現している。
【００４９】
図６のノード６０１〜６０６は、図５の操作テンプレートテーブル２１０において操作テンプレートＩＤ５０２が“１”の各レコードに相当する。各ノード６０１〜６０６間はリンク（有向リンク）６０７〜６１３によって接続されている。このリンク６０７〜６１３は、各レコードの前提処理ＩＤ５０３を表現するものである。
【００５０】
すなわち、例えば処理ＩＤ５０１が“２”であるノード６０２の前提処理ＩＤ５０３には、“１”が設定されている。これは、処理ＩＤ５０１が“１”であるノード６０１の操作支援が実行された後に、処理ＩＤ５０１が“２”であるノード６０２の操作支援が実行されることを示す。そのため、図６では、処理ＩＤ５０１が“１”であるノード６０１から、処理ＩＤ５０１が“２”であるノード６０２に対するリンク６０７が接続されている。
【００５１】
また、処理ＩＤ５０１が“５”であるノード６０５の必須処理ＩＤ５０４には、“１”、“２”、“３”が設定されている。これは処理ＩＤ５０１が“１”、“２”、“３”それぞれの操作支援又は同等のユーザ操作が実行された後に、処理ＩＤ５０１が“５”であるノード６０５の操作支援が実行されることを示す。なお、ノード６０５の操作支援を実行するためには、処理ＩＤ５０１が“４”であるノード６０４の操作支援の実行は必須ではない。
【００５２】
また、処理ＩＤ５０１が“６”であるレコードの終了フラグ５０５は“ｔｒｕｅ”である。そのため、処理ＩＤ５０１が“６”であるノード６０６は、有向グラフの終端となる。すなわち、ノード６０６以降に実行される操作支援は存在しない。
【００５３】
以上に示すように、操作テンプレートを有向グラフで表現することによって、操作支援の手戻りや各操作支援の順序関係を容易に定義することが可能となる。
【００５４】
図７は、本発明の第１の実施形態の操作支援実行部２０５の制御ロジックを示すフローチャートである。ここでは、操作支援実行部２０５による処理、すなわち図３のステップ３０２の処理について説明する。
【００５５】
まずステップ７０１において、操作支援実行部２０５は、操作テンプレートテーブル２１０（図５参照）から、有効度５０６が“−”の全レコードを抽出する（７０１）。抽出された全レコードの集合を、トリガ操作集合とする。トリガ操作集合とは、操作テンプレートテーブル２１０に格納された各操作テンプレートにおいて、最初に実行される（トリガとなる）操作支援の集合である。
【００５６】
次にステップ７０２において、操作支援実行部２０５は、図３のステップ３０１で予め収集されたユーザ操作に対応する操作４０３、アプリケーション４０４、操作対象４０５及びデータ４０６と、それぞれ一致する操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１のレコードが、ステップ７１０で抽出されたトリガ操作集合に存在するか否か判定する（７０２）。収集されたユーザ操作に対応する操作４０３、アプリケーション４０４、操作対象４０５及びデータ４０６と、トリガ操作集合に含まれる各レコードの操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１とをそれぞれ比較することによって実行する。一致するレコードが存在しない場合（７０２でＮＯ）、処理を終了する。
【００５７】
一方、一致するレコードが存在する場合（７０２でＹＥＳ）、操作支援実行部２０５は、一致するレコードの操作テンプレートＩＤ５０２を取得する（７０３）。これにより、適用すべき操作テンプレートを決定する。
【００５８】
その後ステップ７０４において、操作支援実行部２０５は、操作テンプレートテーブル２１０から、ステップ７０３で取得された操作テンプレートＩＤ５０２にマッチする全てのレコードを読み込む（７０４）。またステップ７０４では、読み込まれた各レコードに対して、操作済フラグという属性を付与し、その値を"ｆａｌｓｅ"に設定する。
【００５９】
その後ステップ７０５において、操作支援実行部２０５は、ステップ７０４で読み込まれたレコードのうち、有効度５０６の値が"−"のレコードの操作済フラグの値を"ｔｒｕｅ"に設定する（７０５）。
【００６０】
その後ステップ７０６において、操作支援実行部２０５は、ステップ７０４で読み込まれた各レコード（ステップ７０３で取得された操作テンプレートＩＤ５０２の操作テンプレート）に基づいて、操作支援を実行し、実行結果を記録する（７０９）。すなわち、操作支援結果テーブル２０９に格納する。ステップ７０６の詳細については、図９Ａ及び図９Ｂを用いて後述する。
【００６１】
その後ステップ７０７において、操作支援実行部２０５は、ステップ７０４で読み込まれたレコードにおいて、終了フラグ５０５、操作済フラグが両方"ｔｒｕｅ"であるレコードが存在するか否か判定する（７０７）。終了フラグ５０５、操作済フラグが両方"ｔｒｕｅ"であるレコードが存在する場合（７０７でＹＥＳ）、処理を終了する。
【００６２】
一方、終了フラグ５０５、操作済フラグが両方“ｔｒｕｅ”であるレコードが存在しない場合（７０７でＮＯ）、操作支援実行部２０５は、ステップ７０３の処理からの経過時間が一定の閾値以上か否かを判定する（７０８）。経過時間が一定の閾値以上である場合（７０８でＹＥＳ）、処理を終了する。これにより、ステップ７０３で取得された操作テンプレートＩＤ５０２の操作テンプレートが適切でない、又はユーザが操作テンプレートに沿った操作を実施しない等の理由により一定時間経過した場合に、操作支援の実行を中止することができる。なお、ユーザによる明示的な指示に基づいて、操作支援の実行を中止してもよい。一方、経過時間が一定の閾値未満である場合（７０８でＮＯ）、ステップ７０６に戻る。
【００６３】
以上に示す処理により、操作支援実行部２０５は、ステップ３０１で収集されたユーザ操作と、操作テンプレートテーブル２１０に格納された操作テンプレートとを用いて、操作支援を実行する。また、操作支援の実行結果を、操作支援結果テーブル２０９に格納する。
【００６４】
図８は、本発明の第１の実施形態の操作支援結果テーブル２０９の一例を示す図である。操作支援結果テーブル２０９には、図７のステップ７０６における操作支援の実行結果が格納される。
【００６５】
結果ＩＤ８０１は、各レコードを一意に識別するための識別子（ＩＤ）である。操作テンプレートＩＤ８０２及び処理ＩＤ８０３は、それぞれ操作テンプレートテーブル２１０内の操作支援と関連付けるための識別子（ＩＤ）、すなわち操作テンプレートＩＤ５０２及び処理ＩＤ５０１と同様の値の識別子である。
【００６６】
手戻り回数８０４は、手戻りの発生回数である。ここでいう手戻り回数とは、処理ＩＤ８０３と同じ値の処理ＩＤ５０１である操作テンプレートテーブル２１０上のレコードに対する操作済フラグが“ｔｒｕｅ”に設定された状態（つまり操作済の状態）で、当該レコードに示す操作支援と同様の操作支援及び同様のユーザ操作が再度実行された回数である。
【００６７】
自動化回数（自動実行回数）８０５は、自動実行の発生回数である。ここでいう自動実行の回数とは、処理ＩＤ８０３と同じ値の処理ＩＤ５０１である操作テンプレートテーブル２１０上のレコードに示す操作支援が自動実行された回数である。
【００６８】
処理時間改善率８０６は、処理時間の改善度を示す指標の一つである改善率である。ここでいう処理時間の改善率とは、処理ＩＤ８０３と同じ値の処理ＩＤ５０１である操作テンプレートテーブル２１０上のレコードに示す操作支援によって、操作支援が実行されない場合よりも改善した時間の割合である。
【００６９】
なお、手戻り回数８０４、自動化回数８０５及び処理時間改善率８０６の計算方法については後述する。
【００７０】
図９Ａ、図９Ｂは、本発明の第１の実施形態の操作支援実行結果の記録処理を示すフローチャートである。ここでは、図７のステップ７０６の詳細について説明する。
【００７１】
まずステップ９０１において、操作支援実行部２０５は、図７のステップ７０４で読み込まれている各レコードに対して、ステップ９０２及びステップ９０３の処理を繰り返す（９０１、９０４）。
【００７２】
すなわち、ステップ９０２において、操作支援実行部２０５は、対象レコードの操作支援が実行可能か否かを判定する（９０２）。対象レコードの操作支援が実行可能とは、対象レコードの操作済フラグが"ｆａｌｓｅ"であり、対象レコードの必須処理ＩＤ５０４に含まれる全レコードの操作済フラグが"ｔｒｕｅ"であり、且つ、対象レコードの操作５０８、アプリケーション５０９及び操作対象５１０が、現時点でユーザによって操作可能であることを示す。
【００７３】
例えば、対象レコードが操作テンプレートＩＤ５０２“１”のレコードである場合、対象レコードのアプリケーション５０９はメーラである。そのため、メーラが起動している必要があり、メーラが起動していない場合には、対象レコードの操作支援は実行不可能と判定される。
【００７４】
ステップ９０２において対象レコードの操作支援が実行不可能と判定された場合（９０２でＮＯ）、操作支援実行部２０５は、次のレコードについてステップ９０２の処理を実行する。一方、ステップ９０２において対象レコードの操作支援が実行可能と判定された場合（９０２でＹＥＳ）、ステップ９０３に進み、実行可能と判定された対象レコードを次操作集合に追加する（９０３）。次操作集合とは、実行可能な操作支援の集合である。その後、次のレコードについてステップ９０２の処理を実行する。
【００７５】
以上のステップ９０１〜９０４の処理により、操作支援実行部２０５は、実行可能な操作支援を次操作集合にまとめる。
【００７６】
その後ステップ９０５において、操作支援実行部２０５は、次操作集合に含まれるレコードのうちの有効度５０６が最大のレコードを、支援レコードとして設定する（９０５）。
【００７７】
その後ステップ９０６において、操作支援実行部２０５は、支援レコードの有効度５０６が予め定められた閾値以上であるか否かを判定する（９０６）。支援レコードの有効度５０６が予め定められた閾値以上である場合（９０６でＹＥＳ）、操作支援実行部２０５は、ステップ９０７以降の処理を実行する。
【００７８】
すなわち、ステップ９０７において、操作支援実行部２０５は、支援レコードの支援内容５０７を実行する（９０７）。その後ステップ９０８において、支援レコードに設定された操作済フラグを"ｔｒｕｅ"に設定する（９０８）。その後９０９において、ステップ９０７で実行された支援内容５０７が自動実行であったか否かを判定する（９０９）。
【００７９】
支援内容５０７が自動実行である場合（９０９でＹＥＳ）、ステップ９１０に進み、操作支援実行部２０５は、支援レコードの処理ＩＤ５０１と同じ値の処理ＩＤ８０３である操作支援結果テーブル２０９上のレコードの自動化回数８０５を１加算する（９１０）。
【００８０】
なお、ステップ９１０では、支援レコードの処理ＩＤ５０１と同じ値の処理ＩＤ８０３である操作支援結果テーブル２０９上のレコードが存在しない場合、新規に操作支援結果テーブル２０９にレコードを挿入し、自動化回数８０５を１加算する。新規に挿入するレコードの操作テンプレートＩＤ８０２及び処理ＩＤ８０３には、支援レコードの操作テンプレートＩＤ５０２及び処理ＩＤ５０１の値をそれぞれ設定する。また、新規に挿入するレコードの手戻り回数８０４、自動化回数８０５及び処理時間改善率８０６には０を設定する。
【００８１】
一方、ステップ９０９において、支援内容５０７が自動実行ではない場合（９０９でＮＯ）、すなわち支援内容５０７がハイライト又はなしの場合、ステップ９１４に進み、操作支援実行部２０５は、次に実行されるユーザ操作を取得する（９１４）。
【００８２】
ステップ９１０又はステップ９１４の処理が終了すると、ステップ９１１に進み、操作支援実行部２０５は、前回の操作支援又はユーザ操作の実行時刻から現在時刻までの経過時間を計測する（９１１）。その後ステップ９１２において、ステップ９１１で計測された時間を、支援レコードの元処理時間５１２で除算した値を、支援レコードの処理時間改善率８０６に設定する（９１２）。
【００８３】
その後ステップ９１３において、操作支援実行部２０５は、支援レコードの処理ＩＤ５０１と同じ値の処理ＩＤ８０３である操作支援結果テーブル２０９上のレコードの処理時間改善率８０６を、ステップ９１２で計算された値で上書きする（９１３）。
【００８４】
なお、ステップ９１３では、支援レコードの処理ＩＤ５０１と同じ値の処理ＩＤ８０３である操作支援結果テーブル２０９上のレコードが存在しない場合、ステップ９１０と同様に新規にレコードを挿入し、挿入されたレコードの処理時間改善率８０６を上書きする。また、ステップ９１２、９１３における処理時間改善率８０６の算出方法及び設定方法は、操作支援の実行による操作に必要な時間の短縮割合が算出できれば、他の算出方法及び設定方法でもよい。
【００８５】
ところで、ステップ９０６において、支援レコードの有効度５０６が予め定められた閾値未満である場合（９０６でＮＯ）、操作支援実行部２０５は、ステップ９１５以降の処理を実行する。
【００８６】
すなわち、ステップ９１５において、操作支援実行部２０５は、次に実行されたユーザ操作を取得する（９１５）。その後ステップ９１６において、ステップ９１５で取得されたユーザ操作と、操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１が一致するレコードが、次操作候補に含まれるレコード、又は、次操作候補に含まれるレコードの前提処理ＩＤ５０３に示されるレコードに存在するか否か判定する（９１６）。該当するレコードが次操作候補に存在しない場合（９１６でＮＯ）、処理を終了する。
【００８７】
一方、該当するレコードが次操作候補に存在する場合（９１６でＹＥＳ）、操作支援実行部２０５は、ステップ９１７以降の処理を実行する。すなわち、ステップ９１７において、操作支援実行部２０５は、一致するレコードの操作済フラグが“ｔｒｕｅ”であるか否か判定する（９１７）。
【００８８】
一致するレコードの操作済フラグが“ｔｒｕｅ”である場合（９１７でＹＥＳ）、ステップ９１８に進み、操作支援実行部２０５は、一致するレコードの処理ＩＤ５０１と同じ値である処理ＩＤ８０３である操作支援結果テーブル２０９上のレコードの手戻り回数８０４を１加算する（９１８）。
【００８９】
なお、ステップ９１８では、一致するレコードの処理ＩＤ５０１と同じ値の処理ＩＤ８０３である操作支援結果テーブル２０９上のレコードが存在しない場合、ステップ９１０と同様に新規にレコードを挿入し、挿入されたレコードの手戻り回数８０４を１加算する。
【００９０】
一方、一致するレコードの操作済フラグが"ｆａｌｓｅ"である場合（９１７でＮＯ）、ステップ９１９に進み、操作支援実行部２０５は、一致するレコードの操作済フラグを"ｔｒｕｅ"に設定する（９１９）。
【００９１】
以上に示す処理により、操作支援実行部２０５は、操作テンプレートを用いた操作支援の結果から、手戻り回数８０４、自動化回数８０５及び処理時間改善率８０６という操作支援に特化した評価を実行することが可能となる。
【００９２】
なお、操作支援実行部２０５は、ステップ９０９において支援内容５０７がハイライトの場合には（ステップ９０９でＮＯ）、ステップ９１４において次のユーザ操作を取得した後に、ステップ９１６の処理に進んでもよい。この場合、支援内容５０７がハイライトである場合の手戻り回数８０４を計算することができる。
【００９３】
図１０及び図１１を用いて操作支援実行部２０５により実行される操作支援の具体例を説明する。
【００９４】
図１０は、本発明の第１の実施形態の操作履歴を有向グラフで表現した図である。図１０では、前述の図７のステップ７０４において操作テンプレートが読み込まれた後に実行された操作支援又はユーザ操作を、有向グラフの形式で示している。
【００９５】
図１０に示す例では、図５の処理ＩＤ５０１が“１”、“２”による操作支援が終了したことを示している。この場合、図９Ａのステップ９０１において、処理ＩＤ５０１が“３”のレコードが抽出される。処理ＩＤ５０１が“３”のレコードが抽出された場合に、メーラの本文入力フォームが存在する場合には、このレコードに対応する操作支援を実行可能である。
【００９６】
そのため、操作支援実行部２０５は、ステップ９０７以降の処理を実行する。具体的には、処理ＩＤ５０１が“３”のレコードの支援内容５０７は"ハイライト"である。そのため、メーラの本文入力フォームをハイライトする。
【００９７】
図１１は、本発明の第１の実施形態の操作支援の実行例を示す図である。図１１では、処理ＩＤ５０１が“３”のレコードの操作支援の実行例を、一般的なメーラによるメールの新規作成画面によって示している。
【００９８】
ウィンドウ１１０１は、主題用テキスト入力フォーム１１０２、宛先用テキスト入力フォーム１１０３及び本文用テキスト入力フォーム１１０４を含む。また、ウィンドウ１１０１は、データを送信確認するための送信確認ボタン１１０５、メールの作成をキャンセルするためのキャンセルボタン１１０６を含む。
【００９９】
図１１に示す例では、本文用テキスト入力フォーム１１０４においてハイライト１１０７が表示されている。このハイライト１１０７によって、本文用テキスト入力フォーム１１０４への入力に係る操作を支援することができる。
【０１００】
図１２は、本発明の第１の実施形態の操作支援ポリシテーブル２０８の一例を示す図である。操作支援ポリシテーブル２０８には、図３のステップ３０３において生成された操作支援ポリシが格納される。
【０１０１】
ポリシＩＤ１２０１は、各レコードを一意に識別するための識別子（ＩＤ）である。前操作１２０２、条件操作１２０３及び後操作１２０４は、各レコードの操作支援ポリシによって定義される操作順序（操作の順序関係）である。
【０１０２】
前操作１２０２及び後操作１２０４には、それぞれ条件操作１２０３の前に実行される操作支援及び後に実行される操作支援の内容（図５の操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１の値）が格納される。条件操作１２０３には、操作支援ポリシを適用する条件となる操作支援の内容（図５の支援内容５０７、操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１の値）が格納される。なお、条件操作１２０３において、支援内容５０７、操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１の値が存在しない場合や値を限定しない場合には、適宜省略してもよい。
【０１０３】
変更項目１２０５は、各レコードの操作支援ポリシによって変更される対象の項目である。変更内容１２０６は、操作支援ポリシによって変更される内容である。
【０１０４】
図１３は、本発明の第１の実施形態の操作支援ポリシ生成部２０３の制御ロジックを示すフローチャートである。ここでは、操作支援ポリシ生成部２０３による処理、すなわち図３のステップ３０３の処理について説明する。
【０１０５】
まずステップ１３０１において、操作支援ポリシ生成部２０３は、操作支援結果テーブル２０９の各レコードに対し、ステップ１３０２からステップ１３１１の処理を繰り返す（１３０１、１３１２）。
【０１０６】
すなわち、ステップ１３０２において、操作支援ポリシ生成部２０３は、対象レコードに対応するレコード（以下、「追加レコード」という。）を、操作支援ポリシテーブル２０８に追加する（１３０２）。具体的には、対象レコードが示す操作支援の直前及び直後に実行された操作支援（又はユーザ操作）を、追加レコードの前操作１２０２、後操作１２０４にそれぞれ設定する。また、対象レコードの処理ＩＤ８０３が示す操作支援を、追加レコードの条件操作１２０３に設定する。対象レコードの処理ＩＤ８０３に対応する支援内容５０７を、追加レコードの変更項目１２０５に設定する。追加レコードの変更内容１２０６には、初期値"−"を設定する。
【０１０７】
なお、前操作１２０２及び後操作１２０４には、操作テンプレートテーブル２１０における操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１のそれぞれを"カラム名＝値"で連結した値を設定する。連結した値の作成方法は、操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１のそれぞれの値を区別することができれば他の方式でもよい。また、条件操作１２０３には、支援内容５０７、操作５０８、アプリケーション５０９、操作対象５１０及びデータ５１１を、前操作１２０２及び後操作１２０４と同様に連結した値を設定する。
【０１０８】
その後ステップ１３０３において、操作支援ポリシ生成部２０３は、対象レコードの手戻り回数８０４が予め設定された値以上か否かを判定する（１３０３）。
【０１０９】
対象レコードの手戻り回数８０４が予め設定された値以上である場合（１３０３でＹＥＳ）、ステップ１３０４に進み、操作支援ポリシ生成部２０３は、対象レコードの処理ＩＤ８０３と同じ値の処理ＩＤ５０１である操作テンプレートテーブル２１０上のレコードの支援内容５０７が自動実行か否かを判定する（１３０４）。支援内容５０７が自動実行である場合（１３０４でＹＥＳ）、ステップ１３０５において、ステップ１３０３で追加されたレコードの変更内容１２０６を"自動実行からハイライト"に変更する（１３０５）。
【０１１０】
一方、支援内容５０７が自動実行ではない場合（１３０４でＮＯ）、ステップ１３０６において、操作支援ポリシ生成部２０３は、支援内容５０７がハイライトか否かを判定する（１３０６）。支援内容５０７がハイライトである場合（１３０６でＹＥＳ）、ステップ１３０７において、操作支援ポリシ生成部２０３は、ステップ１３０３で追加されたレコードの変更内容１２０６を"ハイライトからなし"に変更する（１３０７）。
【０１１１】
一方、支援内容５０７がハイライトでない場合（１３０６でＮＯ）、ステップ１３０８において、操作支援ポリシ生成部２０３は、ステップ１３０３で追加されたレコードの変更内容１２０６を"操作テンプレートから削除"に変更する（１３０８）。
【０１１２】
ところで、ステップ１３０３において、対象レコードの手戻り回数８０４が設定された値未満である場合（１３０３でＮＯ）、操作支援ポリシ生成部２０３は、ステップ１３０９以降の処理を実行する。
【０１１３】
すなわち、ステップ１３０９において、操作支援ポリシ生成部２０３は、対象レコードの処理時間改善率８０６が予め設定された値以下か否かを判定する（１３０９）。対象レコードの処理時間改善率８０６が設定された値以下である場合（１３０９でＹＥＳ）、前述のステップ１３０８の処理を実行する。
【０１１４】
一方、対象レコードの処理時間改善率８０６が設定された値より大きい場合（１３０９でＮＯ）、ステップ１３１０に進み、操作支援ポリシ生成部２０３は、対象レコードの自動化回数８０５が設定された値以上か否かを判定する（１３１０）。対象レコードの自動化回数８０５が設定された値未満である場合（１３１０でＮＯ）、対象レコードの処理を終了する。
【０１１５】
一方、対象レコードの自動化回数８０５が設定された値以上である場合（１３１０でＹＥＳ）、ステップ１３１１において、操作支援ポリシ生成部２０３は、ステップ１３０３で追加されたレコードの変更内容１２０６を"有効度×１．１"に変更する（１３１１）。なお、変更内容１２０６を“有効度に一定値を加算する”等に変更してもよい。その後、対象レコードの処理を終了する。
【０１１６】
以上のステップ１３０１〜１３１１の処理を操作支援結果テーブル２０９の全てのレコードに対して実行した後に、ステップ１３１３において、操作支援ポリシ生成部２０３は、追加された操作支援ポリシを整理する（１３１３）。ステップ１３１３の詳細については、図１４を用いて後述する。
【０１１７】
以上に示す処理により、操作支援ポリシ生成部２０３は、操作テンプレートを用いた操作支援の結果から、手戻り回数８０４、自動化回数８０５及び処理時間改善率８０６という操作支援に特化した評価を用いて操作支援ポリシを生成することが可能となる。
【０１１８】
特に、手戻り回数８０４が設定値以上である場合には（１３０３でＹＥＳ）、操作支援の信頼度が低いので、操作支援のレベルを低下させる操作支援ポリシ（例えば“自動実行からハイライト”）を作成する。また、処理時間改善率８０６が設定値以下である場合には（１３０９でＹＥＳ）、操作支援の信頼度が低いので、操作支援を削除する操作支援ポリシを作成する。また、自動化回数８０５が設定値以上である場合には（１３１０でＹＥＳ）、操作支援の信頼度が高いので、操作支援の使用頻度を向上させるための操作支援ポリシ（有効度を増加させる内容）を作成する。このように、手戻り回数８０４、自動化回数８０５及び処理時間改善率８０６のうち少なくとも一つ以上の評価に応じて、操作支援の改善内容を切り替えている。
【０１１９】
図１４は、本発明の第１の実施形態の操作支援ポリシの整理処理を示すフローチャートである。ここでは、図１３のステップ１３１３の詳細について説明する。
【０１２０】
まずステップ１４０１において、操作支援ポリシ生成部２０３は、図１３のステップ１３０１〜１３１２の処理によって操作支援ポリシテーブル２０８に追加された各レコードに対して、ステップ１４０２以降の処理を繰り返す（１４０１、１４０９）。
【０１２１】
すなわち、まずステップ１４０２において、操作支援ポリシ生成部２０３は、対象レコードと、前操作１２０２、後操作１２０４、変更項目１２０５及び変更内容１２０６が一致するレコードが、操作支援結果テーブル２０９に存在するか否か確認する（１４０２）。
【０１２２】
一致するレコードが操作支援結果テーブル２０９に存在する場合（１４０２でＹＥＳ）、ステップ１４０３において、操作支援ポリシ生成部２０３は、対象レコード及び一致するレコードそれぞれの条件操作１２０３の内容（操作、アプリケーション、操作対象、データ、支援内容）を比較し、内容が異なる項目数をカウントする（１４０３）。
【０１２３】
その後ステップ１４０４及びステップ１４０６において、操作支援ポリシ生成部２０３は、ステップ１４０３でカウントされた異なる項目数の数に応じて、処理を振り分ける。
【０１２４】
異なる項目数が０の場合（１４０４でＹＥＳ）、すなわち対象レコードと完全に一致するレコードが存在する場合、ステップ１４０５に進み、操作支援ポリシ生成部２０３は、対象レコードを削除する（１４０５）。
【０１２５】
異なる項目数が１の場合（１４０６でＹＥＳ）、ステップ１４０７に進み、操作支援ポリシ生成部２０３は、対象レコード及び一致するレコードの両方を削除する（１４０７）。その後ステップ１４０８において、対象レコード及び一致するレコードと、異なる項目を除いて同じ内容のレコードを、操作支援ポリシテーブル２０８に追加する（１４０８）。具体的には、対象レコード及び一致するレコードの２レコードと同じ前操作１２０２、後操作１２０４、変更項目１２０５及び変更内容１２０６を有し、条件操作１２０３から異なる項目を削除したレコードを、操作支援ポリシテーブル２０８に追加する。
【０１２６】
以上に示す処理により、操作支援ポリシ生成部２０３は、生成された個々の操作テンプレートの評価から、汎用的な操作支援ポリシを生成することができる。
【０１２７】
図１５は、本発明の第１の実施形態の操作支援ポリシ適用部２０６の制御ロジックを示すフローチャートである。ここでは、操作支援ポリシ適用部２０６が、図１４に示す処理によって作成された操作支援ポリシを、操作テンプレートテーブル２１０に格納された操作テンプレートに適用する処理を説明する。
【０１２８】
まずステップ１５０１において、操作支援ポリシ適用部２０６は、操作支援ポリシテーブル２０８の各レコードに対し、ステップ１５０２以降の処理を実行する（１５０１、１５０８）。以降、対象となる操作支援ポリシテーブル２０８上のレコードを、「Ｐｌレコード」と呼ぶ。
【０１２９】
ステップ１５０２において、操作支援ポリシ適用部２０６は、操作テンプレートテーブル２１０の各レコードに対し、ステップ１５０３以降の処理を実行する（１５０２、１５０７）。以降、対象となる操作テンプレートテーブル２１０上のレコードを、「Ｔｍｐレコード」と呼ぶ。
【０１３０】
その後ステップ１５０３において、操作支援ポリシ適用部２０６は、Ｔｍｐレコードの処理ＩＤ５０１を取得する（１５０３）。
【０１３１】
その後ステップ１５０４において、操作支援ポリシ適用部２０６は、Ｐｌレコードの前操作１２０２の内容（操作、アプリケーション、操作対象及びデータ）が、Ｔｍｐレコードの前提処理ＩＤ５０３が示すいずれかのレコードと一致するか否かを判定する（１５０４）。
【０１３２】
その後ステップ１５０５において、操作支援ポリシ適用部２０６は、Ｐｌレコードの後操作１２０４の内容（操作、アプリケーション、操作対象及びデータ）が、Ｔｍｐレコードの処理ＩＤ５０１を前提処理ＩＤ５０３として有するいずれかのレコードと一致するか否かを判定する（１５０５）。
【０１３３】
ステップ１５０４においてＹＥＳ、且つ、ステップ１５０５においてＹＥＳの場合、ステップ１５０６において、操作支援ポリシ適用部２０６は、Ｐｌレコードの変更項目１２０５、変更内容１２０６に従って、Ｔｍｐレコードを変更する（１５０６）。一方、ステップ１５０４においてＮＯ、又は、ステップ１５０５においてＮＯの場合、ステップ１５０２に戻る。
【０１３４】
以上に示す処理により、操作支援ポリシ適用部２０６は、図１４に示す処理によって作成された操作支援ポリシを、操作テンプレートテーブル２１０に格納された操作テンプレートに適用する。
【０１３５】
図１６は、本発明の第１の実施形態の操作支援ポリシの適用前後の操作テンプレートの一例を有向グラフで示す図である。図１６では、図１５のステップ１５０６の具体例を示している。
【０１３６】
すなわち、図１６に示す例では、操作支援ポリシ適用前の操作テンプレート１６０１に、ポリシＩＤ１２０１（図１２参照）が“１”の操作支援ポリシを適用することによって、操作支援ポリシ適用後の操作テンプレート１６０２が生成されることを示している。
【０１３７】
ポリシＩＤ１２０１が“１”の操作支援ポリシでは、メーラの本文入力フォームに対する操作支援を、ハイライトからなしに変更することが定義されている。そのため操作テンプレート１６０２では、処理ＩＤ５０１が３のノードの支援内容５０７が“なし”に変更されている。
【０１３８】
図１７は、本発明の第１の実施形態の操作支援ポリシを管理するためのユーザインターフェースの一例を示す図である。操作支援ポリシを管理するためのインターフェースは、操作支援ポリシ生成基準入力部２０７によって提供される。すなわち、図１７に示すような表示画面が生成される。
【０１３９】
ウィンドウ１７０１は、表示フィールド１７０２、操作支援ポリシ生成方針選択フィールド１７０３、手戻り回数フィールド１７０４、処理時間改善率フィールド１７０５、自動化回数フィールド１７０６、操作支援ポリシインポートボタン１７０７、操作支援ポリシエクスポートボタン１７０８及び操作支援ポリシ削除ボタン１７０９を含む。
【０１４０】
表示フィールド１７０２は、既存の操作支援ポリシを表示するためのフィールドである。操作支援ポリシ生成方針選択フィールド１７０３は、ユーザが操作支援ポリシを生成する際の方針を選択するためのフィールドである。操作支援ポリシ生成方針選択フィールド１７０３において選択された方針に応じて、図１３のステップ１３０３、１３０９及び１３１０で用いられる手戻り回数８０４、自動化回数８０５及び処理時間改善率８０６の閾値が設定される。なお、これらの閾値は、手戻り回数フィールド１７０４、処理時間改善率フィールド１７０５及び自動化回数フィールド１７０６の入力ボックスに直接入力することによっても設定可能である。
【０１４１】
操作支援ポリシインポートボタン１７０７は、ユーザが操作支援ポリシをインポート（追加）するための機能を提供するボタンである。操作支援ポリシエクスポートボタン１７０８は、ユーザが操作支援ポリシをエクスポート（保存）するための機能を提供するボタンである。操作支援ポリシ削除ボタン１７０９は、ユーザが操作支援ポリシを削除するための機能を提供するボタンである。
【０１４２】
以上に示すようなインターフェースを用いることにより、操作支援ポリシの管理及び操作支援ポリシの作成方針を容易に設定可能になる。
【０１４３】
以上説明してきた本発明の第１の実施形態によれば、操作支援に特有の手戻り回数や自動化回数などの評価から操作支援ポリシを提供することができる。また、汎用的な操作支援ポリシを生成することによって、システムや業務の変化にも対応可能となる。その結果、個々人に特化した改善を実現する汎用的な操作支援ポリシを提供することができる。
【０１４４】
（第２の実施形態）
前述の第１の実施形態では、操作テンプレートは既に操作テンプレートテーブル２１０に存在する前提であった。第２の実施形態では、操作テンプレートをユーザの操作履歴から生成する形態を説明する。
【０１４５】
図１８は、本発明の第２の実施形態の計算機（計算機システム）１００の構成例を示す図である。なお、以下では図１と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１４６】
第２の実施形態のメモリ１０６は、前述の第１の実施形態（図１参照）の各構成要素に加えて、操作テンプレート生成部１８０１を格納する。
【０１４７】
操作テンプレート生成部１８０１は、操作履歴情報テーブル２１１に格納されたユーザ操作の履歴に基づいて、操作テンプレートを生成する。操作テンプレート生成部１８０１の詳細については、図２０を用いて後述する。
【０１４８】
図１９は、本発明の第２の実施形態の操作テンプレート及び操作支援ポリシの生成処理を説明するブロック図である。図１９を用いて、操作テンプレート及び操作支援ポリシの生成方法の全体的な流れを説明する。なお、以下では図２と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１４９】
操作テンプレート生成部１８０１は、操作履歴情報テーブル２１１に格納されたユーザの操作履歴を用いて操作テンプレートを生成し、操作テンプレートテーブル２１０に格納する。
【０１５０】
図２０は、本発明の第２の実施形態の操作テンプレート生成部１８０１の制御ロジックを示すフローチャートである。ここでは、操作テンプレート生成部１８０１が操作テンプレートを生成する処理について説明する。
【０１５１】
まずステップ２００１において、操作テンプレート生成部１８０１は、操作履歴情報テーブル２１１に格納された全レコードを取得し、取得された全レコードを連続する一つの時系列データとみなし、この時系列データを一定基準で複数の系列（系列データ）に分割する（２００１）。分割方法は、公知のＰｒｅｆｉｘＳｐａｎを用いてもよいし、連続するレコード間で日時４０２の差が一定以上の場合に分割する等の方法でもよい。また、特定の操作に関するレコードを基準として分割してもよい。
【０１５２】
次にステップ２００２において、操作テンプレート生成部１８０１は、ステップ２００１で分割された各系列に基づいて、系列集合を生成する（２００２）。具体的には、分割された各系列の先頭レコードにおいて、履歴ＩＤ４０１、日時４０２及びデータ４０６以外の情報が同一である系列は同一の系列集合に属するとみなすことによって、系列集合を生成する。なお、他の方法によって、系列集合を生成してもよい。
【０１５３】
その後ステップ２００３において、操作テンプレート生成部１８０１は、ステップ２００２で生成された各系列集合に対し、ステップ２００４からステップ２００９の処理を繰り返す（２００３、２０１０）。
【０１５４】
すなわち、ステップ２００４において、操作テンプレート生成部１８０１は、対象系列集合の有向グラフを生成する（２００４）。具体的には、対象系列集合中の各レコードをノードとし、連続したノードが日時４０２の昇順に有向リンクによって接続される、すなわち前後のつながりが有向リンクで示される有向グラフを生成する。
【０１５５】
その後ステップ２００５において、操作テンプレート生成部１８０１は、ノード毎の出現頻度を算出する（２００５）。出現頻度は、計算対象のノードが属する系列集合において計算対象のノードが存在する要素の数を、計算対象のノードが属する系列集合に属する系列のパターン数で除算することによって算出される。
【０１５６】
その後ステップ２００６において、操作テンプレート生成部１８０１は、ステップ２００５で算出された出現頻度が一定閾値以下のノードを削除し、削除されたノードの前後のノードを結合する（２００６）。具体的には、削除されたノードに対する有向リンクの接続元のノードから、削除されたノードの有向リンクの接続先の全てのノードに対する有向リンクを生成する。
【０１５７】
その後ステップ２００７において、操作テンプレート生成部１８０１は、各ノードの有効度５０６に、ステップ２００５で算出された出現頻度を設定する（２００７）。有効度５０６は、公知の媒介中心性や次数中心性等の指標を単独又は複数組み合わせることによって設定してもよい。
【０１５８】
その後ステップ２００８において、操作テンプレート生成部１８０１は、各ノードのうち、いずれのノードからも有向リンクが接続されていないノードの有効度５０６を"−"に設定する（２００８）。
【０１５９】
その後ステップ２００９において、操作テンプレート生成部１８０１は、各ノードの前提処理ＩＤ５０３、必須処理ＩＤ５０４及び終了フラグ５０５を設定する（２００９）。具体的には、前提処理ＩＤ５０３に、設定対象のノードに接続している全てのノードの処理ＩＤ５０１と、設定対象ノードに接続している全てのノードの前提処理ＩＤ５０３とを全てまとめた値を設定する。必須処理ＩＤ５０４に、前提処理ＩＤ５０３として設定された処理ＩＤ５０１のうち、出現頻度が予め定められた値より大きい処理ＩＤ５０１を設定する。また終了フラグ５０５には、接続先のノードが存在しないノードについては"ｔｒｕｅ"、それ以外のノードについては"ｆａｌｓｅ"を設定する。
【０１６０】
以上に示す処理により、操作テンプレート生成部１８０１は、ユーザ操作の履歴に基づいて、操作テンプレートを生成することが可能となる。すなわち、本発明の第２の実施形態によれば、前述の第１の実施形態による利点に加え、ユーザ操作の履歴から操作テンプレートを自動的に生成することが可能となる。
【０１６１】
（第３の実施形態）
前述の第１の実施形態及び第２の実施形態では、１台の計算機１００上での１ユーザの操作を支援する形態について説明した。第３の実施形態では、複数台の計算機１００上での複数のユーザの操作を支援する形態について説明する。
【０１６２】
なお、第３の実施形態では、複数ユーザに共通の汎用的な操作テンプレートを生成し、生成された汎用的な操作テンプレートを複数のユーザが共有し、個々の操作支援ポリシによって個々人に特化した操作テンプレートを作成する形態を説明する。
【０１６３】
図２１は、本発明の第３の実施形態の計算機システム１の構成例を示す図である。なお、以下では図１及び図１８と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１６４】
第３の実施形態の計算機システム１は、ネットワーク２１００を介して接続された複数の計算機１００と、テンプレートサーバ２１０１とを備える。なお、計算機システム１は複数のテンプレートサーバ２１０１を備えてもよい。ネットワーク２１００とは、ＬＡＮ（Local Area Network）やインターネット回線などである。
【０１６５】
各計算機１００のメモリ１０６は、前述の第１の実施形態（図１参照）の各構成要素に加えて、操作履歴情報送信部２１０６を格納する。
【０１６６】
操作履歴情報送信部２１０６は、操作履歴情報テーブル２１１に格納されたユーザ操作の履歴に関する情報を、テンプレートサーバ２１０１に送信する。
【０１６７】
テンプレートサーバ２１０１は、互いにバスによって相互に接続されたメモリ２１０２、ＣＰＵ２１０３、外部記憶装置２１０４及びネットワークインターフェース２１０５を備える。
【０１６８】
メモリ２１０２、ＣＰＵ２１０３、外部記憶装置２１０４及びネットワークインターフェース２１０５は、それぞれ図１のメモリ１０６、ＣＰＵ１０４、外部記憶装置１０５、ネットワークインターフェース１０３と同様の装置であるとして、ここでは説明を省略する。
【０１６９】
メモリ２１０２は、操作テンプレート生成部１８０１、操作テンプレート送信部２１１０を格納する。外部記憶装置２１０４は、操作履歴情報共有テーブル２１０７、操作テンプレート共有テーブル２１０８を格納する。
【０１７０】
操作テンプレート送信部２１１０は、操作テンプレート共有テーブル２１０８に格納された複数のユーザで共有の操作テンプレートを、計算機１００に送信する。
【０１７１】
操作履歴情報共有テーブル２１０７は、複数のユーザの操作履歴を格納する。操作履歴情報共有テーブル２１０７の詳細については、図２３を用いて後述する。
【０１７２】
操作テンプレート共有テーブル２１０８は、操作テンプレート生成部１８０１によって生成される複数のユーザで共有の操作テンプレートを格納する。
【０１７３】
図２２は、本発明の第３の実施形態の操作テンプレートの生成処理を説明するブロック図である。図２２を用いて、操作支援テンプレート生成方法の全体的な流れを説明する。なお、以下では図２及び図１９と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１７４】
操作履歴情報送信部２１０６は、操作履歴情報テーブル２１１に格納されたユーザ操作の履歴情報を取得し、テンプレートサーバ２１０１に送信する。そうすると、テンプレートサーバ２１０１は、受信した操作履歴情報を、操作履歴情報共有テーブル２１０７に格納する。
【０１７５】
操作テンプレート生成部１８０１は、操作履歴情報共有テーブル２１０７に格納された操作履歴情報を用いて操作テンプレートを生成し、操作テンプレート共有テーブル２１０８に格納する。
【０１７６】
操作テンプレート送信部２１１０は、操作テンプレート共有テーブル２１０８に格納された操作テンプレートを、計算機１００に送信する。そうすると、計算機１００は、受信した操作テンプレートを、操作テンプレートテーブル２１０に格納する。
【０１７７】
図２３は、本発明の第３の実施形態の操作履歴情報共有テーブル２１０７の一例を示す図である。この操作履歴情報共有テーブル２１０７は、複数ユーザの操作履歴を格納する。なお、以下では図４と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１７８】
ユーザＩＤ２３０１は、各レコードに示される操作履歴が、どのユーザの操作履歴であるかを一意に識別する識別子（ＩＤ）である。なお、ユーザＩＤ２３０１は、ユーザを一意に識別する情報であれば、計算機１００の名前やユーザ名でもよい。
【０１７９】
図２４は、本発明の第３の実施形態の計算機システム１の制御ロジックを示すフローチャートである。ここでは、計算機１００とテンプレートサーバ２１０１との間のデータの送受信処理について説明する。
【０１８０】
まずステップ２２０１において、計算機１００（操作履歴情報送信部２１０６）は、操作履歴情報テーブル２１１上の全てのレコードを、テンプレートサーバ２１０１に送信する（２２０１）。なお、ステップ２２０１では、全てのレコードにユーザＩＤ２３０１を付与する。そうすると、テンプレートサーバ２１０１は、受信した全てのレコードを操作履歴情報共有テーブル２１０７に格納する。
【０１８１】
次にステップ２２０２において、計算機１００（操作履歴情報送信部２１０６）は、操作履歴情報テーブル２１１上の全てのレコードを削除する（２２０２）。
【０１８２】
その後ステップ２２０３において、テンプレートサーバ２１０１（操作テンプレート生成部１８０１）は、操作履歴情報共有テーブル２１０７に格納された全てのレコードを用いて操作テンプレートを生成し、操作テンプレート共有テーブル２１０８に格納する（２２０３）。ステップ２２０３の詳細については、図２５を用いて後述する。
【０１８３】
その後ステップ２２０４において、テンプレートサーバ２１０１（操作テンプレート送信部２１１０）は、ステップ２２０３で生成された操作テンプレートを計算機１００に送信する（２２０４）。そうすると、計算機１００は、受信した操作テンプレートを、操作テンプレートテーブル２１０に格納する。
【０１８４】
その後ステップ２２０５において、計算機１００（操作支援ポリシ適用部２０６）は、操作テンプレートテーブル２１０に格納された操作テンプレートに対し、操作支援ポリシを適用する（２２０５）。
【０１８５】
以上に示す処理により、計算機システム１では、例えばプロジェクトチームや部署により共通の操作テンプレートを作成するとともに、個々人固有の操作支援ポリシを適用することが可能となる。
【０１８６】
図２５は、本発明の第３の実施形態の操作テンプレート生成部１８０１の制御ロジックを示すフローチャートである。なお、以下では図２０と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１８７】
まずステップ２５０１において、操作テンプレート生成部１８０１は、操作履歴情報共有テーブル２１０７に存在する各ユーザＩＤ（以降、「ＵＩＤ」と呼ぶ）に対して、ステップ２５０２の処理を繰り返す（２５０１、２５０３）。
【０１８８】
ステップ２５０２において、操作テンプレート生成部１８０１は、操作履歴情報共有テーブル２１０７に格納されたレコードのうち、ユーザＩＤ２３０１がＵＩＤである全レコードを取得し、取得された全レコードを連続する一つの時系列データとみなし、この時系列データを一定基準で複数の系列（系列データ）に分割する（２５０２）。分割方法は、図２０のステップ２００１と同様である。
【０１８９】
以上説明してきた第３の実施形態によれば、例えばプロジェクトチームや部署を構成する複数ユーザで共通の業務に対して、個人の癖や立場を反映した操作支援が可能になる。
【０１９０】
以上、本発明の各実施形態について説明したが、上記各実施形態は本発明の適用例の一つを示したものであり、本発明の技術的範囲を上記各実施形態の具体的構成に限定する趣旨ではない。
【符号の説明】
【０１９１】
１     計算機システム
１００  計算機（計算機システム）
２０１  ＯＳ
２０２  アプリケーション
２０３  操作支援ポリシ生成部
２０４  ユーザ操作収集部
２０５  操作支援実行部
２０６  操作支援ポリシ適用部
２０７  操作支援ポリシ生成基準入力部
２０８  操作支援ポリシテーブル
２０９  操作支援結果テーブル
２１０  操作テンプレートテーブル
２１１  操作履歴情報テーブル
１８０１  操作テンプレート生成部
２１０１  テンプレートサーバ
２１０６  操作履歴情報送信部
２１０７  操作履歴情報共有テーブル
２１０８  操作テンプレート共有テーブル
２１１０  操作テンプレート送信部
【図１】
0005651873.tif 000002
【図２】
0005651873.tif 000003
【図３】
0005651873.tif 000004
【図４】
0005651873.tif 000005
【図５】
0005651873.tif 000006
【図６】
0005651873.tif 000007
【図７】
0005651873.tif 000008
【図８】
0005651873.tif 000009
【図９Ａ】
0005651873.tif 000010
【図９Ｂ】
0005651873.tif 000011
【図１０】
0005651873.tif 000012
【図１１】
0005651873.tif 000013
【図１２】
0005651873.tif 000014
【図１３】
0005651873.tif 000015
【図１４】
0005651873.tif 000016
【図１５】
0005651873.tif 000017
【図１６】
0005651873.tif 000018
【図１７】
0005651873.tif 000019
【図１８】
0005651873.tif 000020
【図１９】
0005651873.tif 000021
【図２０】
0005651873.tif 000022
【図２１】
0005651873.tif 000023
【図２２】
0005651873.tif 000024
【図２３】
0005651873.tif 000025
【図２４】
0005651873.tif 000026
【図２５】
0005651873.tif 000027