(57)【要約】【課題】各グループのウィンドウがアクティブ状態であった時間を求めることができるようにする。【解決手段】算出プログラムは、コンピュータ上で開いた、アプリケーションまたはファイルに対応する複数のウィンドウに対する操作情報を記憶部に記憶し(図6A-6B) 、記憶部に記憶された操作情報に基づいて、交互にアクティブ状態になったウィンドウまたは一方から他方へデータのコピーまたは移動が行われたウィンドウを、ウィンドウグループにグループ化し(図10A-10C)、グループ化した前記ウィンドウグループについて、記憶部に記憶された操作情報に基づいて、ウィンドウグループに属するウィンドウがアクティブ状態であった時間を算出する(図23A)処理を実行させる。【選択図】図１０Ａ
2016126532.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
前記コンピュータ上で開いた、アプリケーションまたはファイルに対応する複数のウィンドウに対する操作情報を記憶部に記憶し、
前記記憶部に記憶された前記操作情報に基づいて、交互にアクティブ状態になったウィンドウまたは一方から他方へデータのコピーまたは移動が行われたウィンドウを、ウィンドウグループにグループ化し、
グループ化した前記ウィンドウグループについて、前記記憶部に記憶された前記操作情報に基づいて、前記ウィンドウグループに属するウィンドウがアクティブ状態であった時間を算出する
処理を実行させることを特徴とする算出プログラム。
【請求項２】
さらに、ハイパーリンクのクリックが行われたウィンドウと、前記ハイパーリンクのクリックによってアクティブ状態になったウィンドウとを、同じウィンドウグループにグループ化する処理を、前記コンピュータに実行させることを特徴とする、請求項１に記載の算出プログラム。
【請求項３】
さらに、ファイルのフォルダまたはＵＲＬが同じであるウィンドウを、同じウィンドウグループにグループ化する処理を、前記コンピュータに実行させることを特徴とする、請求項１または２に記載の算出プログラム。
【請求項４】
さらに、類似性のあるタイトルを有するウィンドウを、同じウィンドウグループにグループ化する処理を、前記コンピュータに実行させることを特徴とする、請求項１乃至３のいずれかに記載の算出プログラム。
【請求項５】
さらに、前記ウィンドウグループに属するウィンドウのタイトルに含まれるテキストに基づいて、前記ウィンドウグループに作業識別情報を対応付ける処理を、前記コンピュータに実行させることを特徴とする、請求項１乃至４のいずれかに記載の算出プログラム。
【請求項６】
さらに、前記ウィンドウグループに属するウィンドウのアクティブ状態であった時間の合計時間を、前記ウィンドウグループの作業時間として算出する処理を、前記コンピュータに実行させることを特徴とする、請求項１乃至５のいずれかに記載の算出プログラム。
【請求項７】
アプリケーションまたはファイルに対応する開いた複数のウィンドウに対する操作情報を記憶する記憶部と、
前記記憶部に記憶された前記操作情報に基づいて、交互にアクティブ状態になったウィンドウまたは一方から他方へデータのコピーまたは移動が行われたウィンドウを、ウィンドウグループにグループ化する第１の処理部と、
グループ化した前記ウィンドウグループについて、前記記憶部に記憶された前記操作情報に基づいて、前記ウィンドウグループに属するウィンドウがアクティブ状態であった時間を算出する第２の処理部と、
を含むことを特徴とする情報処理装置。
【請求項８】
コンピュータが、
前記コンピュータ上で開いた、アプリケーションまたはファイルに対応する複数のウィンドウに対する操作情報を記憶部に記憶し、
前記記憶部に記憶された前記操作情報に基づいて、交互にアクティブ状態になったウィンドウまたは一方から他方へデータのコピーまたは移動が行われたウィンドウを、ウィンドウグループにグループ化し、
グループ化した前記ウィンドウグループについて、前記記憶部に記憶された前記操作情報に基づいて、前記ウィンドウグループに属するウィンドウがアクティブ状態であった時間を算出する
処理を実行することを特徴とする算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算出プログラム、情報処理装置、および算出方法に関する。
【背景技術】
【０００２】
例えばパーソナル・コンピュータの操作者は、パーソナル・コンピュータ上で行った１つ以上の作業項目について、それぞれの作業項目毎に費やした時間を集計することがある。
【０００３】
既知のプロジェクト管理方法では、クライアントが、ディスプレイに表示された全てのウィンドウのタイトル情報と、ウィンドウがアクティブ状態となっていた時間を示す時間情報を、ログ領域に記録するログ記録部を含んでいる。クライアントは、さらに、プロジェクトに関連するキーワードを設定するキーワード設定部を含んでいる。クライアントは、さらに、ログ領域の中から、タイトル情報にキーワードが含まれるログを抽出し、抽出した各ログの時間情報を累計することにより、プロジェクトの作業累計時間を算出する累計作業時間算出部を含んでいる。それによって、コンピュータを用いたプロジェクトの作業時間の集計が正確に行える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−  ５２９３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
発明者たちは、パーソナル・コンピュータ上で或る期間において複数の異なるグループのウィンドウの操作に費やされた時間をグループ別に操作者が集計することがあるが、人がその集計のための余分な作業を行うことは望ましくない、と認識した。
【０００６】
１つの観点では、本発明の目的は、関連性を有するウィンドウをグループ化したグループそれぞれについて、アクティブ状態であった時間を求めることができるようにすることである。
【課題を解決するための手段】
【０００７】
実施形態の一態様によれば、コンピュータに、コンピュータ上で開いた、アプリケーションまたはファイルに対応する複数のウィンドウに対する操作情報を記憶部に記憶し、記憶部に記憶された操作情報に基づいて、交互にアクティブ状態になったウィンドウまたは一方から他方へデータのコピーまたは移動が行われたウィンドウを、ウィンドウグループにグループ化し、グループ化したウィンドウグループについて、記憶部に記憶された操作情報に基づいて、ウィンドウグループに属するウィンドウがアクティブ状態であった時間を算出する処理を実行させることを特徴とする算出プログラムが提供される。
【発明の効果】
【０００８】
実施形態の一観点によれば、関連性を有するウィンドウをグループ化したグループそれぞれについて、アクティブ状態であった時間を求めることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態による、情報処理装置の概略的構成（configuration）の例を示している。
【図２】図２は、実施形態による、情報処理装置およびサーバ装置を含むシステムの概略的構成（configuration）の例を示している。
【図３】図３は、情報処理装置のプロセッサの概略的な構成（configuration）の例を示している。
【図４】図４は、サーバ装置のプロセッサの概略的な構成（configuration）の例を示している。
【図５Ａ】図５Ａおよび５Ｂは、情報処理装置における複数のウィンドウ間でのアクティブ（活動）状態の遷移のシーケンスの例を示している。
【図５Ｂ】(図5Aで説明)
【図６Ａ】図６Ａおよび６Ｂは、情報処理装置によって実行される、情報処理装置の操作者の操作イベント情報を処理して操作情報のテーブルを生成するための処理のフローチャートの例を示している。
【図６Ｂ】(図6Aで説明)
【図７】図７は、操作情報のテーブルの例を示している。
【図８】図８は、情報処理装置によって実行される、操作情報のテーブルに基づいて、アクティブ状態になった各ウィンドウの直前にアクティブ状態であったウィンドウの発生回数を計数するための処理のフローチャートの例を示している。
【図９】図９は、連続的な１対のウィンドウの発生回数のテーブルの例を示している。
【図１０Ａ】図１０Ａ〜１０Ｃは、情報処理装置によって実行される、操作情報のテーブルに基づいて、操作情報に基づいて、或る時間期間における複数のウィンドウをグループ化するための処理のフローチャートの例を示している。
【図１０Ｂ】(図10Aで説明)
【図１０Ｃ】(図10Aで説明)
【図１１】図１１は、図１０Ａのステップ５０６のペースト判定処理のための具体的なフローチャートの例を示している。
【図１２】図１２は、図１０Ａのステップ５１０のハイパーリンク判定処理のための具体的なフローチャートの例を示している。
【図１３】図１３は、図１０Ｂのステップ５２２のウィンドウ間交互判定処理のための具体的なフローチャートの例を示している。
【図１４Ａ】図１４Ａ〜１４Ｃは、図１０Ｃのステップ５４０のウィンドウ・タイトル類似性判定処理のための具体的なフローチャートの例を示している。
【図１４Ｂ】(図14Aで説明)
【図１４Ｃ】(図14Aで説明)
【図１５Ａ】図１５Ａおよび１５Ｂは、図１０Ａのステップ５１４、図１０Ｂのステップ５２６、および図１０Ｃのステップ５４８におけるウィンドウのグループ化処理のための具体的なフローチャートの例を示している。
【図１５Ｂ】(図15Aで説明)
【図１６】図１６Ａは、相違するブロックが書き込まれた後の、ウィンドウ・タイトルの相違リストの例を示している。図１６Ｂは、ウィンドウ・タイトルの類似性判定用の文字列リストの例を示している。
【図１７Ａ】図１７Ａは、ウィンドウ・グループ表の例を示している。
【図１７Ｂ】図１７Ｂは、図１７Ａのウィンドウ・グループ表にアクティブ時間の合計を書き込み、時間の長さの順にレコードを並び替えたウィンドウ・グループ表の例を示している。
【図１８】図１８は、作業項目決定用のテーブルの例を示している。
【図１９Ａ】図１９Ａ〜１９Ｃは、情報処理装置によって実行される、作業項目決定用のテーブルに基づいて、ウィンドウ・グループの作業項目名を決定するための処理のフローチャートの例を示している。
【図１９Ｂ】(図19Aで説明)
【図１９Ｃ】(図19Aで説明)
【図２０】図２０は、図１９Ａ〜１９Ｃの処理によって作業項目が決定された後のウィンドウ・グループ表の例を示している。
【図２１】図２１Ａは、ウィンドウ・グループ別の時間集計表の例を示している。図２１Ｂは、時間集計後のウィンドウ・グループ別の時間集計表の例を示している。図２１Ｃは、統合後のウィンドウ・グループ別の時間集計表の例を示している。
【図２２】図２２は、階層別注目レコード保存表の例を示している。
【図２３Ａ】図２３Ａおよび２３Ｂは、情報処理装置によって実行される、ウィンドウ・グループ別の時間を集計するための処理のフローチャートの例を示している。
【図２３Ｂ】(図23Aで説明)
【発明を実施するための形態】
【００１０】
発明の目的および利点は、請求の範囲に具体的に記載された構成要素および組み合わせによって実現され達成される。
前述の一般的な説明および以下の詳細な説明は、典型例および説明のためのものであって、本発明を限定するためのものではない。
【００１１】
本発明の非限定的な実施形態を、図面を参照して説明する。図面において、同様のコンポーネントおよび素子には同じ参照番号が付されている。
【００１２】
例えば、パーソナル・コンピュータ上で複数のアプリケーションまたはファイルを利用する操作において、対応する複数のウィンドウ中の１つのウィンドウが、操作者によって選択的に切り替えられて、排他的にアクティブ状態になる。そのようなアクティブ状態のウィンドウ上で操作者によって操作が行われる。また、パーソナル・コンピュータ上で１つのウィンドウでの操作中に、操作者の操作によって、関連する別のウィンドウが割り込んでアクティブ状態になることがある。このような場合、相互に関連するウィンドウの操作項目毎の時間測定または工数計測のために、パーソナル・コンピュータが、例えば次の２段階の処理を実行することが想定される。
【００１３】
（１）パーソナル・コンピュータが、操作者の操作に関して、例えば、アプリケーション名、ウィンドウ・タイトル、およびウィンドウがアクティブ状態になった時刻を、自動的に記録する。
（２）パーソナル・コンピュータが、アプリケーション名またはウィンドウ・タイトルと、特定の作業項目名との間の予め設定された関連付け情報に基づいて、操作された各作業項目を記録し、各作業項目別の作業時間を求める。
ここで、ウィンドウ・タイトルは、ＯＳ（Operating System）によって各ウィンドウに付与されるウィンドウの名称であり、多くのアプリケーションではウィドウの上部に表示される。また、ウィンドウは、アクティブ状態にあるとき、表示画面上に同時に複数のウィンドウが表示されるマルチウィンドウ環境において、入力または操作の対象となり、重なっている複数のウィンドウの中のアクティブ状態にあるウィンドウが手前に表示される。
【００１４】
しかし、そのような処理では、例えば次のような問題が生じる。
（１）例えば、“電子メール”、“帳票管理”、“顧客情報入力”、“文書作成”、“ウェブ検索”のような、概略的な作業項目別でしか、作業時間が測定できない。例えば、“Ａ顧客向け作業”、“Ｂ顧客向け作業”、“社外Ｃアドホック作業”、“社内ＤＷＧ”のような、詳細な作業項目別の作業時間が測定できない。
（２）多くのアプリケーションでは、ウィンドウ・タイトルがそのアプリケーションで使用中のファイル名と同じになることが多い。この場合、作成される全てのファイル名を予め決定し、かつ、それらの膨大なファイルと作業項目名の関連付け情報を予め作成することが求められる。しかし、作成されるファイル名は事前には不確定であり、そのような作業は現実的でない。
（３）１つの作業項目に分類されるファイルが作成されるとき、同時に並行して参考または調査のために、別のファイルが開かれることがある。しかし、その別のファイルに対して、作業項目名が決定できないか、または誤った作業項目名が決定される可能性がある。従って、各作業項目の作業時間が正しく測定できない。
【００１５】
また、発明者たちは、パーソナル・コンピュータ上での作業時間算出の際に、或る期間において開いた複数のウィンドウを相互の関連性に基づいてグループ化できる、と認識した。また、発明者たちは、そのグループ内のウィンドウ・タイトルを分析することによって、グループに対応する実際の作業項目を関連づけでき、関連づけした作業項目毎に時間を集計できる、と認識した。
【００１６】
図１は、実施形態による、情報処理装置１０の概略的構成（configuration）の例を示している。
【００１７】
図１において、情報処理装置１０は、例えば、デスクトップ型、ノートブック型またはタブレット型のパーソナル・コンピュータであってもよい。情報処理装置１０は、例えば、プロセッサ１０２、記憶部１０４、内部バス、ネットワーク・インタフェース（ＮＷ／ＩＦ）１０８、入力部１２２、表示部１２４、音響部１２６、およびＵＳＢ通信部１３２を含んでいる。ネットワーク・インタフェース１０８は、ネットワーク（５）に接続可能である。
【００１８】
ＵＳＢ通信部１３２は、外付けドライブ１３４に接続可能である。ドライブ１３４は、ソフトウェアが記録された例えば光ディスクまたは磁気ディスクのような記録媒体１３６を読み取るためのものであってもよい。そのソフトウェアは、例えば、ＯＳ、データベース管理システム（ＤＢＭＳ）、アプリケーション・プログラム、等を含んでいてもよい。アプリケーション・プログラムは、ウィンドウ・グループ毎または作業項目毎の作業時間を計算するためのアプリケーションを含んでいてもよい。記憶部１０４は、データベースを含んでいてもよい。
【００１９】
プロセッサ１０２は、コンピュータ用のＣＰＵ（Central Processing Unit）であってもよい。記憶部１０４には、例えば、主記憶装置および半導体メモリ等が含まれる。記憶部１０４には、例えばＳＤ（セキュア・ディジタル）メモリまたはＵＳＢメモリ等のフラッシュ・メモリのような半導体メモリ、および／またはハードディスク・ドライブ（ＨＤＤ）が含まれていてもよい。
【００２０】
プロセッサ１０２は、例えば集積回路として実装された専用のプロセッサであってもよい。また、プロセッサ１０２は、記憶部１０４に格納されたアプリケーション・プログラムに従って動作するものであってもよい。アプリケーション・プログラムは、記録媒体１３６に格納されていて、ドライブ１３４によって記録媒体１３６から読み出されて情報処理装置１０にインストールされてもよい。
【００２１】
入力部１２２は、例えば、複数のキー、タッチパッド、テンキー、キーボード、タッチパネル、および／またはポインティング・デバイスを含んでいてもよい。表示部１２４は、例えば、液晶表示装置、またはタッチパネル付き液晶表示装置であってもよい。音響部１２６は、例えば、マイクロホン、スピーカ、およびレシーバを含んでいてもよい。
【００２２】
図２は、実施形態による、情報処理装置１０およびサーバ装置２０を含むシステム２の概略的構成（configuration）の例を示している。
【００２３】
システム２は、ネットワーク５に接続された、情報処理装置１０およびサーバ装置２０を含んでいる。ネットワーク５は、例えば、イントラネットまたはＬＡＮ（ローカルエリア・ネットワーク）またはインターネットのようなＩＰ（Internet Protocol）ネットワークであってもよい。サーバ装置２０および情報処理装置１０は、それぞれ、サーバ−クライアント・システムのサーバおよびクライアントであってもよい。
【００２４】
サーバ装置２０は、情報処理装置であり、例えば、プロセッサ２０２、メモリ２０４、内部バス、記憶装置２０６、ネットワーク・インタフェース（ＮＷ Ｉ／Ｆ）２０８、およびＵＳＢ通信部２３２を含むコンピュータであってもよい。また、サーバ装置２０は、例えば、１つ以上のサーバ・ユニットまたはサーバ・ブレードを含むものであってもよい。
【００２５】
ＵＳＢ通信部２３２は、外付けドライブ２３４に接続可能である。ドライブ２３４は、ソフトウェアが記録された、例えば光ディスクまたは磁気ディスクのような記録媒体２３６を読み取るためのものであってもよい。そのソフトウェアは、例えば、ＯＳ、データベース管理システム（ＤＢＭＳ）、アプリケーション・プログラム、等を含んでいてもよい。アプリケーション・プログラムは、ウィンドウのグループ化およびウィンドウ・グループ毎の作業時間を計算する機能を含んでいてもよい。記憶装置２０６は、データベースを含んでいてもよい。サーバ装置２０の記憶装置２０６におけるデータベースは、図１の情報処理装置１０の記憶部１０４におけるデータベースの少なくとも一部を含むものであってもよい。なお、図１の情報処理装置１０の記憶部１０４は、図２のサーバ装置２０のメモリ２０４および記憶装置２０６にそれぞれ対応するメモリおよび記憶装置を含んでいてもよい。
【００２６】
プロセッサ２０２は、コンピュータ用のＣＰＵ（Central Processing Unit）であってもよい。メモリ２０４には、例えば、主記憶装置および半導体メモリ等が含まれる。記憶装置２０６には、例えばＳＤ（セキュア・ディジタル）メモリまたはＵＳＢメモリ等のフラッシュ・メモリのような半導体メモリ、および／またはハードディスク・ドライブ（ＨＤＤ）が含まれていてもよい。
【００２７】
プロセッサ２０２は、例えば集積回路として実装された専用のプロセッサであってもよい。また、プロセッサ２０２は、記憶部としてのメモリ２０４および／または記憶装置２０６に格納されたアプリケーション・プログラムに従って動作するものであってもよい。アプリケーション・プログラムは、記録媒体２３６に格納されていて、ドライブ２３４によって記録媒体２３６から読み出されてサーバ装置２０にインストールされてもよい。
【００２８】
図３は、情報処理装置１０のプロセッサ１０２の概略的な構成（configuration）の例を示している。
【００２９】
プロセッサ１０２は、制御部１０２０、アプリケーション部１０２４、操作情報記録部１０２６、ウィンドウ・グループ化部１０２８、作業時間算出部１０３０、およびその他の処理部１０３２を含んでいる。制御部１０２０は、操作情報記録部１０２６、ウィンドウ・グループ化部１０２８、作業時間算出部１０３０および処理部１０３２に制御信号を供給して、これらの要素の動作を制御してもよい。
【００３０】
代替形態として、情報処理装置１０は、サーバ−クライアント・システムにおけるクライアントとして動作してもよい。この場合、情報処理装置１０のプロセッサ１０２は、送受信部１０１２、入力処理部１０１４、および表示処理部１０１６を少なくとも含んでいてもよい。入力処理部１０１４は、ユーザによる入力部１２２の入力操作に応じて入力情報を生成し一時的に格納する。送受信部１０１２は、入力情報をサーバ装置２０へ送信し、サーバ装置２０からアプリケーションの表示画面情報を受信する。表示処理部１０１６は、サーバ装置２０から受信したアプリケーションの表示画面情報を復号し処理してアプリケーションの表示画面を再生成して表示部１２４に表示する。制御部１０２０は、さらに、送受信部１０１２、入力処理部１０１４および表示処理部１０１６に制御信号を供給して、これらの要素の動作を制御してもよい。
【００３１】
また、サーバ装置２０は、サーバ−クライアント・システムにおけるサーバとして動作し、図１の情報処理装置１０用のソフトウェアの少なくとも一部または全ての機能を実行してもよい。
【００３２】
図４は、サーバ装置２０のプロセッサ２０２の概略的な構成（configuration）の例を示している。
【００３３】
サーバ装置２０のプロセッサ２０２は、制御部２０２０、アプリケーション部２０２４、操作情報記録部２０２６、ウィンドウ・グループ化部２０２８、作業時間算出部２０３０、およびその他の処理部２０３２を含んでいてもよい。操作情報記録部２０２６、ウィンドウ・グループ化部２０２８および作業時間算出部２０３０は、それぞれ、情報処理装置１０の操作情報記録部１０２６、ウィンドウ・グループ化部１０２８および作業時間算出部１０３０の機能に対応する機能を有する。プロセッサ２０２は、さらに、送受信部２０１２、入力受付部２０１４および表示処理部２０１６を少なくとも含んでいてもよい。送受信部２０１２は、情報処理装置１０からユーザの入力操作情報を受信し、生成されたアプリケーションの表示画面情報を情報処理装置１０へ送信してもよい。入力受付部２０１４は、受信した入力操作情報を受け付けて、アプリケーション部２０２４、操作情報記録部２０２６、ウィンドウ・グループ化部２０２８、作業時間算出部２０３０、および処理部２０３２、等に渡す。表示処理部２０１６は、アプリケーション部１０２４、作業時間算出部２０３０、等の表示画面の画像データを生成する。制御部２０２０は、アプリケーション部２０２４、操作情報記録部２０２６、ウィンドウ・グループ化部２０２８、作業時間算出部２０３０および処理部２０３２に制御信号を供給して、これらの要素の動作を制御してもよい。
【００３４】
次は、図１の情報処理装置１０について説明する。
記憶部１０４のデータベースは、作業項目決定用のテーブル、およびウィンドウ・タイトルの類似性判定用の文字列リストを含んでいる。
【００３５】
図１８は、上述の作業項目決定用のテーブルの例を示している。図１６Ｂは、上述のウィンドウ・タイトルの類似性判定用の文字列リストの例を示している。
【００３６】
作業項目決定用のテーブルは、複数のキーワードの組合せから、そのキーワードの組合せに対応する作業項目名を決定するために使用される。ウィンドウ・タイトルの類似性判定用の文字列リストは、２つのウィンドウ・タイトルの類似性を、正規表現を用いて判定するために使用される。ここで、文字列は、例えば正規表現形式の文字列である。
【００３７】
記憶部１０４は、操作情報のテーブル、連続的にアクティブ状態となった１対（ペア）のウィンドウの発生回数のテーブル、ウィンドウ・グループ表、ウィンドウ・グループ別の時間集計表、および階層別注目レコード保存表を格納する。
【００３８】
図７は、上述の操作情報のテーブルの例を示している。図９は、上述の連続的な１対のウィンドウの発生回数のテーブルの例を示している。図１７Ａは、上述のウィンドウ・グループ表の例を示している。図２１Ａは、上述のウィンドウ・グループ別の時間集計表の例を示している。図２２は、上述の階層別注目レコード保存表の例を示している。
【００３９】
操作情報のテーブルは、情報処理装置１０上での操作者の操作を記録するために使用される。連続的な１対すなわち２つのウィンドウの発生回数のテーブルは、２つのウィンドウ間での交互のまたは往復のアクティブ状態への切替え操作の発生回数を判定するために使用される。ウィンドウ・グループ表は、同じ作業項目と推定される複数のウィンドウをグループ化するために使用される。ウィンドウ・グループ別の時間集計表は、ウィンドウ・グループ別の作業項目名と作業時間または工数を記録するために使用される。階層別注目レコード保存表は、作業項目名を決定する手順において、作業項目決定用のテーブルにおける階層毎の参照箇所を一時的に記憶するために使用される。
【００４０】
図５Ａおよび５Ｂは、情報処理装置１０において開かれて表示部１２４に表示された複数のウィンドウ間でのアクティブ（活動）状態の遷移のシーケンスの例を示している。
【００４１】
次は、図５Ａおよび５Ｂを参照して、ウィンドウのグループ化の手順の例を概略的に説明する。
【００４２】
図５Ａにおいて、ウィンドウ識別子“１”〜“１２”のウィンドウは、操作者による、例えばポインティング・デバイスの操作に従って、各時点において１つのウィンドウが排他的にアクティブ状態となる。ここで、ウィンドウ識別子は、ＯＳによって一意的に付与されるウィンドウの識別番号であってもよい。
【００４３】
例えば、ウィンドウ識別子“１”のウィンドウは、アプリケーション“Ｅｘｃｅｌ”（エクセル）のウィンドウであり、ウィンドウ・タイトル“Ｂシステム設計要項＿Ｖ２．００”を有する。ウィンドウ識別子“２”のウィンドウは、アプリケーション“Ｅｘｃｅｌ”のウィンドウであり、ウィンドウ・タイトル“Ｂシステム設計要項＿Ｖ１．００”を有する。ウィンドウ識別子“３”のウィンドウは、アプリケーション“Ｗｏｒｄ”（ワード）のウィンドウであり、ウィンドウ・タイトル“Ａ商事Ｂ第２期開発 基本設計書”を有する。ウィンドウ識別子“４”のウィンドウは、アプリケーション“Ｅｘｃｅｌ”のウィンドウであり、ウィンドウ・タイトル“Ｅシステム詳細設計書”を有する。ここで、ウィンドウ識別子“１”〜“４”のウィンドウのグループは、同じ１つのプロジェクトまたは作業項目名の互いに関連するファイルのウィンドウであるものとする。
【００４４】
情報処理装置１０の表示部１２４上で、期間Ｗ１とＷ２において順に開いてアクティブ状態になったウィンドウ識別子“１”と“２”のウィンドウは、それぞれ“Ｂシステム設計要項＿Ｖ２．００”と“Ｂシステム設計要項＿Ｖ１．００”を有する。これらのウィンドウ・タイトルには、類似性があるので、関連性があると判定される。
【００４５】
ウィンドウ識別子“１”と“３”のウィンドウは、期間Ｗ３〜Ｗ１１で閾値以上の回数で交互にアクティブ状態になったものとする。閾値は、例えば２回または３回であってもよい。この場合、ウィンドウ識別子“１”と“３”のウィンドウは、操作者によって交互に参照されたものと推定されたものであり、互いに関連性があると判定される。
【００４６】
期間Ｗ１２とＷ１３で順にアクティブ状態になったウィンドウ識別子“４”と“１”のウィンドウでは、期間Ｗ１２にコピーが行われ、期間Ｗ１３にペーストが行われたものとする。この場合、ウィンドウ識別子“４”と“１”のウィンドウは、関連性があると判定される。
【００４７】
これらの判定に基づいて、ウィンドウ識別子“１”〜“４”のウィンドウは、同じ作業に関するウィンドウ・グループ１（図５Ｂ、右側）に属すると判定できる。
【００４８】
図５Ｂにおいて、例えば、ウィンドウ識別子“５”のウィンドウは、アプリケーション“Ｅｘｃｅｌ”のウィンドウであり、ウィンドウ・タイトル“Ａ商事Ｂシステム障害記録”を有する。ウィンドウ識別子“６”のウィンドウは、アプリケーション“Ｅｘｃｅｌ”のウィンドウであり、ウィンドウ・タイトル“Ｆシステム問題一覧”を有する。ウィンドウ識別子“７”のウィンドウは、アプリケーション“ＥＸＣＥＬ”のウィンドウであり、ウィンドウ・タイトル“ＢシステムＸＸ障害について（報告）”を有する。ウィンドウ識別子“８”のウィンドウは、アプリケーション“ＥＸＣＥＬ”のウィンドウであり、ウィンドウ・タイトル“社内是正記録”を有する。ここで、ウィンドウ識別子“５”〜“８”のウィンドウのグループは、同じ１つのプロジェクトまたは作業項目名の互いに関連するファイルのウィンドウであるものとする。
【００４９】
期間Ｗ１４とＷ１５で順にアクティブ状態になったウィンドウ識別子“５”と“６”のウィンドウでは、期間Ｗ１４におけるハイパーリンクのクリック操作によって、期間Ｗ１５でウィンドウ識別子“６”のウィンドウが開いてアクティブ状態になったものとする。この場合、ウィンドウ識別子“５”と“６”のウィンドウは、関連性があると判定される。
【００５０】
ウィンドウ識別子“５”と“７”のウィンドウは、同じフォルダ内のファイルのウィンドウであるものとする。この場合、ウィンドウ識別子“５”と“７”のウィンドウは、関連性があると判定される。
【００５１】
期間Ｗ１７とＷ１８で順にアクティブ状態になったウィンドウ識別子“５”と“８”のウィンドウでは、期間Ｗ１７におけるハイパーリンクのクリック操作によって、期間Ｗ１８においてウィンドウ識別子“８”のウィンドウが開いてアクティブ状態になったものとする。この場合、ウィンドウ識別子“５”と“８”のウィンドウは、関連性があると判定される。
【００５２】
これらの判定に基づいて、ウィンドウ識別子“５”〜“８”のウィンドウは、同じ作業に関するウィンドウ・グループ２（図５Ｂ、右側）に属すると判定される。
【００５３】
また、例えば、ウィンドウ識別子“９”のウィンドウは、アプリケーション“Ｏｕｔｌｏｏｋ”（アウトルック）のウィンドウであり、ウィンドウ・タイトル“従業員向け特価販売について”を有する。ここで、ウィンドウ識別子“９”のウィンドウのグループは、１つのプロジェクトまたは作業項目名のファイルのウィンドウであるものとする。ウィンドウ識別子“９”のウィンドウは、期間Ｗ２０において他のウィンドウとの関連性なしでアクティブ状態となったものとする。この場合、ウィンドウ識別子“９”のウィンドウは、単独の作業項目に関するウィンドウ・グループ３（図５Ｂ、右側）に属すると判定される。
【００５４】
ウィンドウ識別子“１０”のウィンドウは、アプリケーション“メモ帳”のウィンドウであり、ウィンドウ・タイトル“ＢＤ設計個人メモ”を有する。ウィンドウ識別子“１１”のウィンドウは、アプリケーション“Ｗｏｒｄ”のウィンドウであり、ウィンドウ・タイトル“Ｇシステム．．．について”を有する。ウィンドウ識別子“１２”のウィンドウは、アプリケーション“Ｗｏｒｄ”のウィンドウであり、ウィンドウ・タイトル“０００１−０１＿システム構成草案”を有する。ここで、ウィンドウ識別子“１０”〜“１２”のウィンドウのグループは、同じ１つのプロジェクトまたは作業項目名の互いに関連するファイルのウィンドウであるものとする。
【００５５】
期間Ｗ２２とＷ２３で順にアクティブ状態になったウィンドウ識別子“１０”と“１１”のウィンドウでは、期間Ｗ２２にコピーが行われ、期間Ｗ２３にペーストが行われたものとする。この場合、ウィンドウ識別子“１０”と“１１”のウィンドウは、関連性があると判定される。
【００５６】
期間Ｗ２５とＷ２６で順にアクティブ状態になったウィンドウ識別子“１０”と“１２”のウィンドウでは、期間Ｗ２５にコピーが行われ、期間Ｗ２６にペーストが行われたものとする。この場合、ウィンドウ識別子“１０”と“１２”のウィンドウは、関連性があると判定される。
【００５７】
これらの判定に基づいて、ウィンドウ識別子“１０”〜“１２”のウィンドウは、同じ作業に関するウィンドウ・グループ４（図５Ｂ、右側）に属すると判定される。
【００５８】
このようにして、ウィンドウ識別子“１”〜“１２”のウィンドウが、４つのウィンドウ・グループ１〜４にグループ化できる。さらに、後で説明するような手順で、ウィンドウ・グループ１〜４にそれぞれの作業項目名および作業コードが付与され、ウィンドウ・グループ１〜４のそれぞれの作業時間が算出される。
【００５９】
次は、ウィンドウのグループ化の前に行われる、各ウィンドウに関する操作情報の生成および収集について説明する。
【００６０】
情報処理装置１０は、起動されると、情報処理装置１０上で操作者によって開かれて表示部１２４に表示されたアクティブ状態にあるウィインドウに関する操作イベントの発生を監視し、操作イベントに対応する操作情報を生成して操作情報のテーブルに記録する。その際、情報処理装置１０は、例えば、アクティブ状態のウィンドウの切替え、コピー、カット（切り取り）、ペースト（貼り付け）、ハイパーリンク・クリックを検出する。また、情報処理装置１０は、例えば、操作の日時、ウィンドウ識別子、ウィンドウ・タイトル、操作種別、および使用中のファイルのパス名およびファイル名を記録する。また、情報処理装置１０は、例えば、アクティブ状態にある現在のウィンドウの直前にアクティブ状態であったウィンドウのウィンドウ識別子（以下、“直前ウィンドウ識別子”とも称する）、およびそのアクティブ状態の継続時間を記録する。
【００６１】
図７に例示された操作情報のテーブルは、情報処理装置１０において収集されて記憶部１０４に格納される。図７において、図７のテーブルにおける左側の行識別番号Ｔ１Ｒ１〜Ｔ１Ｒ２４で表される複数のレコードを含み、各レコードは、上側の列Ｔ１Ｃ１〜Ｔ１Ｃ７の複数のフィールド列を含んでいる。ここで、レコード識別番号またはレコード識別情報は、行識別番号または行識別情報で表されるものとする。また、行Ｔ１ＥＯＦの“ＥＯＦ”は、図７のテーブルのレコードの終了位置を示している。他の図のテーブルまたは表における行識別番号および行識別番号についても、同様である。
【００６２】
図６Ａおよび６Ｂは、情報処理装置１０によって実行される、情報処理装置１０の操作者の操作イベント情報を処理して、例えば図７のような操作情報のテーブルを生成するための処理のフローチャートの例を示している。
【００６３】
図６Ａを参照すると、ステップ４０２において、情報処理装置１０のプロセッサ１０２（またはその操作情報記録部１０２６）は、ＯＳから今回の新しい操作イベント情報およびその時刻または日時を取得する。例えば、図７において、新しい操作イベントの時刻は行Ｔ１Ｒ２４のレコードにおける１：４８（１時４８分０秒）である。但し、時刻は、実際には日付および秒の単位も含むが、簡単化のために省略されている。
【００６４】
ステップ４０４において、プロセッサ１０２（操作情報記録部１０２６）は、操作イベントがアクティブ・ウィンドウの切替えであるかどうかを判定する。ここで、アクティブ・ウィンドウは、アクティブ状態となっているウィンドウを表す。操作イベントがアクティブ・ウィンドウの切替えであると判定された場合、手順はステップ４０６に進む。操作イベントがアクティブ・ウィンドウの切替えでないと判定された場合、手順はステップ４２０に進む。
【００６５】
ステップ４０６において、プロセッサ１０２（操作情報記録部１０２６）は、操作情報のテーブルにおける前回のまたは最後のレコードの操作種別とその時刻を取得する。図７において、例えば、前回の最後の行Ｔ１Ｒ２３のレコードの“操作種別”は“ハイパーリンク・クリック元”であり、時刻は１：４６である。
【００６６】
ステップ４０８において、プロセッサ１０２（操作情報記録部１０２６）は、取得した操作種別が“ハイパーリンク・クリック元”であるかどうかを判定する。操作種別が“ハイパーリンク・クリック元”であると判定された場合、手順はステップ４１０に進む。操作種別が“ハイパーリンク・クリック元”でないと判定された場合、手順はステップ４１４に進む。
【００６７】
ステップ４１０において、プロセッサ１０２（操作情報記録部１０２６）は、今回の新しい操作情報の時刻と、操作情報の前回の最後のレコードの時刻との間の時間差が閾値以下かどうかを判定する。閾値は、ハイパーリンクをクリックしてからリンク先のウィンドウが開くまでの充分な時間で、かつ、長すぎない値が設定される（例えば、２〜３秒）が、閾値は適宜変更可能である。時間差が閾値以下であると判定された場合、手順はステップ４１２に進む。この場合、新しい操作情報と、最後の操作情報とは、ハイパーリンクのクリック先とクリック元の関係にある。時間差が閾値以下でない、即ち閾値より大きいと判定された場合、手順はステップ４１４に進む。
【００６８】
ステップ４１２において、プロセッサ１０２（操作情報記録部１０２６）は、新しい操作情報の操作種別を“ハイパーリンク・クリック先”と決定する。一方、ステップ４１４において、プロセッサ１０２（操作情報記録部１０２６）は、新しい操作情報の操作種別を“ウィンドウ切替え”と決定する。その後、手順は図６Ｂのステップ４３２に進む。
【００６９】
ステップ４２０において、プロセッサ１０２（操作情報記録部１０２６）は、新しい操作情報の操作がコピー、カットまたはペーストのいずれかであるかどうかを判定する。操作がコピー、カットまたはペーストのいずれかであると判定された場合、手順はステップ４２２に進む。操作がコピー、カットまたはペーストのいずれでもないと判定された場合、手順は図６Ｂのステップ４２４に進む。
【００７０】
ステップ４２２において、プロセッサ１０２（操作情報記録部１０２６）は、操作がコピー、カットまたはペーストの場合、操作種別を、対応する“コピー”、“カット”または“ペースト”と決定する。その後、手順は図６Ｂのステップ４３４に進む。
【００７１】
図６Ｂを参照すると、ステップ４２４において、プロセッサ１０２（操作情報記録部１０２６）は、新しい操作情報の操作がクリックかどうかを判定する。操作がクリックであると判定された場合、手順はステップ４２６に進む。操作がクリックでないと判定された場合、手順は図６Ａおよび６Ｂのルーチンを出る。
【００７２】
ステップ４２６において、プロセッサ１０２（操作情報記録部１０２６）は、クリックされた文字列がファイル・パスまたはＵＲＬ（Uniform Resource Locator）かどうかを判定する。クリックされた文字列がファイル・パスまたはＵＲＬであると判定された場合、手順はステップ４２８に進む。クリックされた文字列がファイル・パスとＵＲＬのいずれでもないと判定された場合、手順は図６Ａおよび６Ｂのルーチンを出る。
【００７３】
ステップ４２８において、プロセッサ１０２（操作情報記録部１０２６）は、新しい操作情報の操作種別を、“ハイパーリンク・クリック元”と決定する。その後、手順はステップ４３４に進む。
【００７４】
ステップ４３２において、プロセッサ１０２（操作情報記録部１０２６）は、操作情報のテーブルにおいて操作種別が“ウィンドウ切替え”または“ハイパーリンク・クリック先”である直近のレコードを取得する。例えば、操作種別が“ウィンドウ切替え”である行Ｔ１Ｒ２２のレコードが取得される。次いで、プロセッサ１０２（操作情報記録部１０２６）は、取得したレコードの時刻と現在の時刻との間の差をアクティブ状態の継続時間（以下、“アクティブ継続時間”とも称する）として算出して操作情報のテーブルに設定する。例えば、図７の行Ｔ１Ｒ２２のレコードにアクティブ継続時間“０：０１”（１分）が設定される。
【００７５】
ステップ４３４において、プロセッサ１０２（操作情報記録部１０２６）は、操作情報のテーブルに新しいレコードを追加する。新しいレコードは、例えば、図７の行Ｔ１Ｒ２４のレコードである。次いで、プロセッサ１０２（操作情報記録部１０２６）は、新しいレコードに、新しい操作の時刻およびその操作種別を記録する。プロセッサ１０２（操作情報記録部１０２６）は、さらに、新しい操作に関する、取得した、ウィンドウ識別子、ウィンドウ・タイトル、ファイル・パスまたはＵＲＬ名、および直前ウィンドウ識別子を記録する。その後、手順は図６Ａおよび６Ｂのルーチンを出る。このようにして、図６Ａおよび６Ｂの処理が繰り返し実行されて、例えば図７のような操作情報のテーブルが生成される。
【００７６】
情報処理装置１０での作業の終了後で情報処理装置１０の使用終了の前に、情報処理装置１０は、操作情報のテーブルに基づいて、アクティブ・ウィンドウをグループ化し、各ウィンドウ・グループの作業項目名と作業時間を決定するための一連の処理を開始する。
【００７７】
情報処理装置１０は、先ず、操作情報のテーブルに基づいて、アクティブ状態になった各ウィンドウとその直前にアクティブ状態であったウィンドウのペアの発生回数を計数する。換言すれば、順に排他的にアクティブ状態に切り替えられた前後２つのウィンドウのペアまたは組の発生回数が計数される。
【００７８】
図８は、情報処理装置１０によって実行される、操作情報のテーブルに基づいて、アクティブ状態になった各ウィンドウとその直前にアクティブ状態であったウィンドウのペアの発生回数を計数するための処理のフローチャートの例を示している。
【００７９】
図９に例示された連続的な１対または２つのウィンドウの発生回数のテーブルは、図７のような操作情報のテーブルに基づいて図８の処理に従って生成された、連続的に排他的にアクティブ状態になった前後２つのウィンドウのペアの発生回数を示している。図９において、列Ｔ２Ｃ１のフィールドは、アクティブ状態となった各ウィンドウのウィンドウ識別子であり、列Ｔ２Ｃ２のフィールドは、各ウィンドウの直前にアクティブ状態であったウィンドウのウィンドウ識別子（直前ウィンドウ識別子）である。また、列Ｔ２Ｃ３のフィールドは、列Ｔ２Ｃ１とＴ２Ｃ２のそれぞれのウィンドウのペアが発生した回数を表している。
【００８０】
例えば、図９において、ウィンドウ識別子“１”とその直前ウィンドウ識別子“３”のウィンドウのペア、が発生した回数は、４回である。また、図９において、逆に、ウィンドウ識別子“３”とその直前ウィンドウ識別子“１”のウィンドウのペア、が発生した回数は、４回である。従って、ウィンドウ識別子“１”とウィドウ識別子“３”のウィンドウ間で、連続的な４回の交互のまたは往復の切り替えが発生したことが分かる。
【００８１】
図８を参照すると、ステップ４５２において、プロセッサ１０２（またはそのウィンドウ・グループ化部１０２８）は、操作情報のテーブルから最初のレコードを取得する。例えば、図７における最初のレコードは、行Ｔ１Ｒ１のレコードである。
【００８２】
ステップ４５４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、例えば図７の操作情報のテーブルのレコードが終了した（ＥＯＦ）かどうかを判定する。レコードが終了したと判定された場合、手順は図８のルーチンを出る。レコードが終了していない判定された場合、手順はステップ４５６に進む。
【００８３】
ステップ４５６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したレコードから、ウィンドウ識別子および直前ウィンドウ識別子を取得する。
【００８４】
ステップ４５８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、連続的な１対のウィンドウの発生回数のテーブル中に、取得したウィンドウ識別子と直前ウィンドウ識別子のペアが既に存在するかどうかを判定する。ウィンドウ識別子と直前ウィンドウ識別子のペアが未だ存在しないと判定された場合、手順はステップ４６０に進む。ウィンドウ識別子と直前ウィンドウ識別子のペアが既に存在すると判定された場合、手順はステップ４６２に進む。
【００８５】
ステップ４６０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、連続的な１対のウィンドウの発生回数のテーブルに、新しいレコードを追加して、新しいレコードにおいてウィンドウ識別子と直前ウィンドウ識別子のペアを設定する。例えば、図９において、行Ｔ２Ｒ３のレコードが追加されて、ウィンドウ識別子“１”と直前ウィンドウ識別子“４”のペアが格納される。その後、手順はステップ４６２に進む。
【００８６】
ステップ４６２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、対応するレコードの回数に１を加算する。ここで、回数の初期値は“０”（ゼロ）である。
【００８７】
ステップ４６４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブルから次のレコードを取得する。次のレコードは、例えば、図７の行Ｔ１Ｒ２のレコードである。その後、手順はステップ４５４に戻る。
【００８８】
このように、図８の処理によって、情報処理装置１０は、連続的に排他的にアクティブ状態に切り替えられた２つの特定のウィンドウの各ペアの発生回数（例えば、図９）を求めることができる。
【００８９】
次は、操作情報のテーブルにおけるウィンドウをグループ化しまたはウィンドウ・グループに分類するための手順について説明する。
【００９０】
情報処理装置１０は、操作情報のテーブルに基づいて、例えば次の５つの判定条件により、ウィンドウ間の関連性を判定してウィンドウをグループ化して、ウィンドウ・グループ表を生成する。
【００９１】
判定条件１：コピーまたはカットが発生したウィンドウと、ペーストした発生したウィンドウ、
判定条件２：ハイパーリンクがクリックされたウィンドウと、それに応答して開いたウィンドウ、
判定条件３：アクティブ状態が交互にまたは往復して閾値回数以上発生した２つのウィンドウ、
判定条件４：それぞれのファイルのフォルダが同じである２つのウィンドウ、
判定条件５：類似性のあるウィンドウ・タイトルを有する２つのウィンドウ。
ここで、判定条件３において、例えば図９のような、連続的な１対のウィンドウの発生回数のテーブルが用いられる。
【００９２】
図１０Ａ〜１０Ｃは、情報処理装置１０によって実行される、操作情報のテーブルおよび連続的な１対のウィンドウの発生回数のテーブルに基づいて、或る時間期間における複数のウィンドウをグループ化するための処理のフローチャートの例を示している。
【００９３】
図１０Ａを参照すると、ステップ５０２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、例えば図７のような操作情報のテーブルから、最初の行のレコードを、第１の注目レコードとして取得する。ここで、第１の注目レコードは変数である。
【００９４】
ステップ５０４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブルにおける操作情報のレコードが終了（ＥＯＦ）したかどうかを判定する。レコードが終了したと判定された場合、手順は図１０Ａ〜１０Ｃのルーチンを出る。レコードが終了していない、即ち未だレコードが存在すると判定された場合、手順はステップ５０６に進む。
【００９５】
ステップ５０６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得レコードについて、ウィンドウでの操作が２つのウィンドウ間でのコピーとペーストまたはカットとペーストであるか否かを判定するペースト判定処理を行う（図１１）。コピーとペーストによって、１つのウィンドウにおけるデータが捕捉またはコピーされて別のウィンドウ上で貼り付けられることによって、１つのウィンドウのファイルの位置のデータが別のウィンドウのファイルの位置にコピーまたは複製される。また、カットとペーストによって、１つのウィンドウにおけるデータが切り取られて別のウィンドウ上で貼り付けられることによって、１つのウィンドウのファイルの位置のデータが別のウィンドウのファイルの位置に移動される。
【００９６】
ステップ５０８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウにおける操作が２つのウィンドウ間でのデータのコピーまたはカットとペーストであるか、即ちデータのコピーまたは移動であるかどうかを判定する。操作がコピーまたはカットとペーストでないと判定された場合、手順はステップ５１０に進む。操作がコピーまたはカットとペーストであると判定された場合、手順はステップ５１４に進む。
【００９７】
ステップ５１０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したレコードについて、ウィンドウにおける操作がハイパーリンクのクリックであるかどうかを判定するためのハイパーリンク判定処理を行う（図１２）。ステップ５１２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウにおける操作がハイパーリンクのクリックであるかどうかを判定する。操作がハイパーリンクのクリックであると判定された場合、手順はステップ５１４に進む。操作がハイパーリンクのクリックでないと判定された場合、手順はステップ５１６に進む。
【００９８】
ステップ５１４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、一方から他方へデータのコピー又は移動が行われた２つのウィンドウ、またはハイパーリンク元とハイパーリンク先の２つのウィンドウをグループ化する（図１５Ａ、１５Ｂ）。その際、処理対象のウィンドウのウィンドウ識別子は、既存のまたは新しいウィンドウ・グループにグループ化されまたは分類される。このようにして、ウィンドウ間でデータのコピーもしくは移動が発生したか、または或るウィンドウにおいて別のウィンドウを開くハイパーリンクのクリックが発生したかどうかが判定されて、２つのウィンドウがグループ化される。その後、手順はステップ５１６に進む。
【００９９】
ステップ５１６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、連続的な１対のウィンドウの発生回数のテーブルから、操作情報のテーブルの第１の注目レコードのウィンドウに対する直前ウィンドウのリストを取得する。直前ウィンドウのリストは、例えば、図９におけるウィンドウ識別子“１”に関する行Ｔ２Ｒ１〜Ｔ２Ｒ３の３つのレコードを含むリストであり、直前ウィンドウ識別子“２”、“３”および“４”を含んでいる。
【０１００】
ステップ５１８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したリスト中の最初のレコードを第３の注目レコードとして取得する。ここで、第３の注目レコードは変数である。最初のレコードは、例えば、図９における行Ｔ２Ｒ１の、１対のウィンドウ識別子“１”と“２”を含むレコードである。
【０１０１】
図１０Ｂを参照すると、ステップ５２０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したリストのレコードが終了（ＥＯＦ）したかどうかを判定する。レコードが終了したと判定された場合、手順は図１０Ｃのステップ５３２に進む。レコードが終了していない、即ち未だレコードが存在すると判定された場合、手順はステップ５２２に進む。
【０１０２】
ステップ５２２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、２つのウィンドウが交互にまたは往復してアクティブ状態になったかどうかを判定するためのウィンドウ間交互判定処理を行う（図１３）。ステップ５２４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、２つのウィンドウが交互にアクティブ状態になった回数が閾値以上発生したかどうかを判定する。回数が閾値以上発生したと判定された場合、手順はステップ５２６に進む。回数が閾値以上発生しなかったと判定された場合、手順はステップ５２８に進む。
【０１０３】
ステップ５２６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、交互にアクティブ状態になった回数が閾値以上の２つのウィンドウをグループ化する（図１５Ａ、１５Ｂ）。その際、グループ化されるウィンドウのウィンドウ識別子は、既存のまたは新しいウィンドウ・グループに分類される。その後、手順はステップ５２８に進む。
【０１０４】
ステップ５２８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したリスト中の次の行のレコードを第３の注目レコードとして取得する。その後、手順はステップ５２０に戻る。それによって、各ウィンドウ識別子に関するレコードのリスト中の全てのウィンドウ識別子について、２つのウィンドウが交互にアクティブ状態になったかどうかが判定されて、ウィンドウがグループ化される。
【０１０５】
図１０Ｃを参照すると、ステップ５３２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブルから最初のレコードを、第２の注目レコードとして取得する。ここで、第２の注目レコードは変数である。
【０１０６】
ステップ５３４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のレコードが終了（ＥＯＦ）したかどうかを判定する。レコードが終了したと判定された場合、手順はステップ５５２に進む。操作情報のレコードが終了していないと判定された場合、手順はステップ５３６に進む。
【０１０７】
ステップ５３６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと第２の注目レコードが同じレコードであるかどうかを判定する。第１の注目レコードと第２の注目レコードが同じであると判定された場合、手順はステップ５５０に進む。第１の注目レコードと第２の注目レコードが同じでない即ち異なると判定された場合、手順はステップ５３８に進む。
【０１０８】
ステップ５３８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと第２の注目レコードのファイル・パスまたはＵＲＬが同じかどうかを判定する。ファイル・パスまたはＵＲＬが同じであると判定された場合、手順はステップ５４８に進む。ファイル・パスまたはＵＲＬが異なると判定された場合、手順はステップ５４０に進む。
【０１０９】
ステップ５４０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと第２の注目レコードのウィンドウ・タイトルの類似性を判定するためのウィンドウ・タイトル類似性判定処理を行う（図１４Ａ〜１４Ｃ）。ステップ５４２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと第２の注目レコードのウィンドウ・タイトルが類似するかどうかを判定する。ウィンドウ・タイトルが類似すると判定された場合、手順はステップ５４８に進む。ウィンドウ・タイトルが類似しないと判定された場合、手順はステップ５５０に進む。
【０１１０】
ステップ５４８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ファイル・パスもしくはＵＲＬが同じまたはウィンドウ・タイトルが類似する２つのウィンドウをグループ化する（図１５Ａ、１５Ｂ）。その際、グループ化されるウィンドウのウィンドウ識別子は、既存のまたは新しいウィンドウ・グループに分類される。それによって、操作情報のテーブル中の各ウィンドウについて、他のウィンドウのフォルダまたはＵＲＬとの同一性またはウィンドウ・タイトルとの類似性が判定されて、ウィンドウがグループ化される。その後、手順はステップ５５０に進む。
【０１１１】
ステップ５５０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブル中の次のレコードを第２の注目レコードとして取得する。その後、手順はステップ５３４に戻る。
【０１１２】
ステップ５５２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブル中の次のレコードを第１の注目レコードとして取得する。その後、手順は図１０Ａのステップ５０４に戻る。このようにして、操作情報のテーブル中の全てのウィンドウについて相互の関連性が判定されて、アクティブ状態になった全てのウィンドウがグループ化できる。
【０１１３】
図１１は、図１０Ａのステップ５０６のペースト判定処理のための具体的なフローチャートの例を示している。
【０１１４】
図１１を参照すると、ステップ５６２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードの操作種別がペーストであるかどうかを判定する。操作種別がペーストであると判定された場合、手順はステップ５６４に進む。操作種別がペーストでないと判定された場合、手順はステップ５７０に進む。
【０１１５】
ステップ５６４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブルから、操作種別がコピーまたはカットである直前のレコードを取得する。
【０１１６】
ステップ５６６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと、取得したレコードとを比較して、双方のレコードのウィンドウ識別子が異なるかどうかを判定する。ウィンドウ識別子が異なると判定された場合、手順はステップ５６８に進む。ウィンドウ識別子が同じであると判定された場合、手順はステップ５７０に進む。
【０１１７】
ステップ５７０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、同じウィンドウ上でのコピーまたはカットとペーストが発生しただけであり、異なるウィンドウ間でのコピーまたはカットとペーストが無いと判定する。その後、手順は図１１のサブルーチンを出る。
【０１１８】
ステップ５６８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、異なるウィンドウ間でのコピーまたはカットとペーストが有ると判定する。
【０１１９】
ステップ５７２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、グループ化対象の第１の操作情報レコードに、第１の注目レコードを設定し、グループ化対象の第２の操作情報レコードに、取得したレコードを設定する。ここで、第１の操作情報レコードおよび第２の操作情報レコードは、操作情報のテーブルにおいてグループ化される１対（ペア）のレコードであり、変数である。その後、手順は図１１のサブルーチンを出る。このようにして、コピーまたはカットとペーストの関係にある２つのウィンドウについて相互の関連性が判定できる。
【０１２０】
図１２は、図１０Ａのステップ５１０のハイパーリンク判定処理のための具体的なフローチャートの例を示している。
【０１２１】
図１２を参照すると、ステップ５８２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードの操作種別がハイパーリンク先であるかどうかを判定する。操作種別がハイパーリンク先であると判定された場合、手順はステップ５８４に進む。操作種別がハイパーリンク先でないと判定された場合、手順はステップ５８８に進む。
【０１２２】
ステップ５８４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブルから、操作種別がハイパーリンク元である直前のレコードを検索し、そのようなレコードがあればそのレコードを取得する。
【０１２３】
ステップ５８６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ハイパーリンク元である直前のレコードがあるかどうかを判定する。ハイパーリンク元のレコードが無いと判定された場合、手順はステップ５８８に進む。ハイパーリンク元のレコードが有ると判定された場合、手順はステップ５９０に進む。
【０１２４】
ステップ５８８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ハイパーリンク元のレコードが無いので、ハイパーリンクのクリックが無いと判定する。その後、手順は図１２のサブルーチンを出る。
【０１２５】
ステップ５９０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ハイパーリンクのクリックが有ると判定する。ステップ５９２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、グループ化対象の第１の操作情報レコードに、第１の注目レコードを設定し、グループ化対象の第２の操作情報レコードに、取得したレコードを設定する。このようにして、ハイパーリンク元とハイパーリンク先の関係にある２つのウィンドウについて相互の関連性が判定できる。
【０１２６】
図１３は、図１０Ｂのステップ５２２のウィンドウ間交互判定処理のための具体的なフローチャートの例を示している。
【０１２７】
図１３を参照すると、ステップ６０２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、連続的な１対のウィンドウの発生回数のテーブルにおける上述の第３の注目レコード中の回数を取得する。例えば、図９における行Ｔ２Ｒ２のレコードの回数“４”が取得される。
【０１２８】
ステップ６０４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第３の注目レコード中の回数が閾値以上かどうかを判定する。閾値は、例えば２回または３回であってもよい。第３の注目レコード中の回数が閾値以上であると判定された場合、手順はステップ６０６に進む。第３の注目レコード中の回数が閾値未満であると判定された場合、手順はステップ６１２に進む。
【０１２９】
ステップ６０６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、連続的な１対のウィンドウの発生回数のテーブルから、第３の注目レコードのウィンドウ識別子と直前ウィンドウのウィンドウ識別子のペアと逆の関係にあるレコードを取得する。例えば、図９における行Ｔ２Ｒ２のレコードのウィンドウ識別子“１”と直前ウィンドウ識別子“３”（破線）と逆の組合せであるウィンドウ識別子“３”と直前ウィンドウ識別子“１”（破線）を含む行Ｔ２Ｒ５のレコードが取得される。
【０１３０】
ステップ６０８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したレコードにおける回数を取得する。即ち、連続的な１対のウィンドウの発生回数のテーブルから、取得した直前ウィンドウのウィンドウ識別子に対してその直前にアクティブ状態であった第３の注目レコードのウィンドウ識別子の回数が取り出される。例えば、図９において、行Ｔ２Ｒ２のレコード（ウィンドウ識別子“１”と直前ウィンドウ識別子“３”）と逆の組合せの行Ｔ２Ｒ５のレコード（ウィンドウ識別子“３”と直前ウィンドウ識別子“１”）の回数“４”（破線）が取り出される。
【０１３１】
ステップ６１０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したレコードにおける回数が閾値以上かどうかを判定する。回数が閾値以上であると判定された場合、手順はステップ６１４に進む。回数が閾値未満であると判定された場合、手順はステップ６１２に進む。
【０１３２】
ステップ６１２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、２つのウィンドウが交互にアクティブ状態になることがなかったと判定する。その後、手順は図１３のサブルーチンを出る。
【０１３３】
ステップ６１４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、２つのウィンドウが交互にアクティブ状態になったと判定する。
【０１３４】
ステップ６１６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブルから、ウィンドウ識別子が第３の注目レコード中の直前ウィンドウ識別子と同じである最初のレコードを取得する。ステップ６１８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、グループ化対象の第１の操作情報レコードに、第１の注目レコードを設定し、グループ化対象の第２の操作情報レコードに、取得したレコードを設定する。このようにして、交互してアクティブ状態になった２つのウィンドウについて相互の関連性が判定できる。
【０１３５】
図１４Ａ〜１４Ｃは、図１０Ｃのステップ５４０のウィンドウ・タイトル類似性判定処理のための具体的なフローチャートの例を示している。
【０１３６】
図１４Ａを参照すると、ステップ６３２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードおよび第２の注目レコードから、ぞれぞれのウィンドウ・タイトルを取得する。ステップ６３４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得した２つのウィンドウ・タイトルを比較する。
【０１３７】
ステップ６３６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと第２の注目レコードのウィンドウ・タイトルが相違するかどうかを判定する。ウィンドウ・タイトルが相違しない、即ち同じであると判定された場合、手順は図１４Ｃのステップ６９２に進む。ウィンドウ・タイトルが相違すると判定された場合、手順はステップ６４０に進む。
【０１３８】
ステップ６４０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、２つのウィンドウ・タイトルの間で、一致するブロックが１つだけあるかどうかを判定する。ここで、各ウィンドウ・タイトルの文字列は２つ以上の部分的な文字のブロックに分割可能であり、各ブロックは、各ウィンドウ・タイトルの文字列の複数のブロックの中の１つである。一致するブロックが１つだけあると判定された場合は、手順はステップ６４４に進む。一致するブロックがないと判定された場合は、手順はステップ６４２に進む。
【０１３９】
ステップ６４２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと第２の注目レコードのウィンドウ・タイトルには類似性がないと判定する。その後、手順は図１４Ａ〜１４Ｃのサブルーチンを出る。
【０１４０】
ステップ６４４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、２つのウィンドウ・タイトル間で互いに相違するブロックの文字列を列挙するための、ウィンドウ・タイトルの相違リストを生成する。リストは初期状態では空きである。ここで、各ブロックは、少なくとも１つの文字を含んでいる。
【０１４１】
図１６Ａは、後述する手順によって、ウィンドウ・タイトルの相違リストに相違したブロックが書き込まれた後の例を示している。
【０１４２】
ステップ６４６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードのウィンドウ・タイトルの先頭に相違ブロックがあるかどうかを判定する。ウィンドウ・タイトルの先頭に相違ブロックがあると判定された場合、手順はステップ６４８に進む。ウィンドウ・タイトルの先頭に相違ブロックがないと判定された場合、手順は図１２Ｂのステップ６５０に進む。
【０１４３】
ステップ６４８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの相違リストに、第１の注目レコードの先頭ブロックの相違文字列を追加する。その後、手順は図１２Ｂのステップ６５０に進む。
【０１４４】
図１４Ｂを参照すると、ステップ６５０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第２の注目レコードのウィンドウ・タイトルの先頭に相違ブロックがあるかどうかを判定する。ウィンドウ・タイトルの先頭に相違ブロックがあると判定された場合、手順はステップ６５２に進む。ウィンドウ・タイトルの先頭に相違ブロックが無いと判定された場合、手順はステップ６５４に進む。
【０１４５】
ステップ６５２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの相違リストに、第２の注目レコードの先頭ブロックの相違文字列を追加する。その後、手順はステップ６５４に進む。
【０１４６】
ステップ６５４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードのウィンドウ・タイトルの末尾に相違ブロックがあるかどうかを判定する。ウィンドウ・タイトルの末尾に相違ブロックがあると判定された場合、手順はステップ６５６に進む。ウィンドウ・タイトルの先頭に相違ブロックが無いと判定された場合、手順はステップ６５８に進む。
【０１４７】
ステップ６５６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの相違リストに、第１の注目レコードの末尾ブロックの相違文字列を追加する。その後、手順はステップ６５８に進む。
【０１４８】
ステップ６５８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第２の注目レコードのウィンドウ・タイトルの末尾に相違ブロックがあるかどうかを判定する。ウィンドウ・タイトルの末尾に相違ブロックがあると判定された場合、手順はステップ６６０に進む。ウィンドウ・タイトルの先頭に相違ブロックが無いと判定された場合、手順はステップ６６２に進む。
【０１４９】
ステップ６６０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの相違リストに、第２の注目レコードの末尾ブロックの相違文字列を追加する。その後、手順はステップ６６２に進む。
【０１５０】
例えば、図１６Ａのウィンドウ・タイトルの相違リストにおいて、最初の行Ｔ３３Ｒ１のレコードに、第１の注目レコードにおけるウィンドウ・タイトルの末尾ブロックの相違文字列“＿Ｖ１．００”が追加されている。また、図１６Ａのウィンドウ・タイトルの相違リストにおいて、行Ｔ３３Ｒ２のレコードに、第２の注目レコードにおけるウィンドウ・タイトルの末尾ブロックの相違文字列“＿Ｖ２．００”が追加されている。
【０１５１】
ステップ６６２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの相違リストの最初のレコードを、第４の注目レコードとして取得する。ここで、第４の注目レコードは変数である。その後、手順は図１４Ｃのステップ６６４に進む。
【０１５２】
図１４Ｃを参照すると、ステップ６６４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの相違リストのレコードが終了（ＥＯＦ）したかどうかを判定する。レコードが終了したと判定された場合、手順はステップ６９２に進む。レコードが終了していないと判定され、即ち未だレコードが存在すると判定された場合、手順はステップ６７０に進む。
【０１５３】
ステップ６７０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの類似性判定用の文字列リストから、最初のレコードを第５の注目レコードとして取得する。ここで、第５の注目レコードは変数である。
【０１５４】
図１６Ｂに例示されたウィンドウ・タイトルの類似性判定用の文字列リストは、類似性判定用の複数の正規表現文字列を含んでいる。図１６Ｂにおいて、正規表現は、関連性を表し得る一部の文字または文字列“ＯＬＤ”、“没”、“Ｖ”および“ＲＥＶ”を含むが、これに限定されることなく、例えば、“旧”、“修正”、“改訂”、“版”のようなその他の一部の文字または文字列を含んでもよい。
【０１５５】
ステップ６７２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの類似性判定用の文字列リストのレコードが終了（ＥＯＦ）したかどうかを判定する。レコードが終了したと判定された場合、手順はステップ６７４に進む。レコードが終了していない、即ち未だレコードが存在すると判定された場合、手順はステップ６７６に進む。
【０１５６】
ステップ６７４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと第２の注目レコードのウィンドウ・タイトルには類似性が無いと判定する。その後、手順は図１４Ａ〜１４Ｃのサブルーチンを出る。
【０１５７】
ステップ６７６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの相違リストにおける第４の注目レコードの相違文字列と、第５の注目レコードの正規表現文字列とを比較する。例えば、図１６Ａにおける行Ｔ３３Ｒ１の相違文字列“＿Ｖ１．００”または行Ｔ３３Ｒ２の相違文字列“＿Ｖ２．００”と、図１６Ｂにおける行Ｔ３１Ｒ３のレコードの正規表現文字列“［−＿］？［Ｖ］？［０−９￥．］＋＄”とが比較される。
【０１５８】
ステップ６７８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第４の注目レコードの相違文字列と、第５の注目レコードの正規表現文字列とがマッチまたは整合するかどうかを判定する。双方の文字列がマッチしないと判定された場合、手順はステップ６８０に進む。双方の文字列がマッチすると判定された場合、手順はステップ６８２に進む。例えば、図１６Ａにおける行Ｔ３３Ｒ１の相違文字列“＿Ｖ１．００”または行Ｔ３３Ｒ２の相違文字列“＿Ｖ２．００”と、図１６Ｂにおける行Ｔ３１Ｒ３のレコードの正規表現文字列“［−＿］？［Ｖ］？［０−９￥．］＋＄”とがマッチすると判定される。
【０１５９】
ステップ６８０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、類似性判定用の文字列リストから、第５の注目レコードとして次のレコートを取得する。その後、手順はステップ６７２に戻る。それによって、第４の注目レコードの文字列が、類似性判定用の文字列リストにおける各正規表現文字列と順に比較される。
【０１６０】
ステップ６８２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・タイトルの相違リストから、第４の注目レコードとして次のレコートを取得する。その後、手順はステップ６６４に戻る。それによって、ウィンドウ・タイトルの相違リストにおける各文字列が、順に、類似性判定用の文字列リストにおける各正規表現文字列と比較できる。
【０１６１】
ステップ６９２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第１の注目レコードと第２の注目レコードのウィンドウ・タイトルには類似性があると判定する。例えば、図７の操作情報のテーブルにおける行Ｔ１Ｒ２のウィンドウ・タイトル“Ｂシステム設計要領＿Ｖ１．００”と、行Ｔ１Ｒ４のウィンドウ・タイトル“Ｂシステム設計要領＿Ｖ２．００”には、類似性があると判定される。
【０１６２】
ステップ６９４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、グループ化対象の第１の操作情報レコードに、第１の注目レコードを設定し、グループ化対象の第２の操作情報レコードに、第２の注目レコードを設定する。その後、手順は図１４Ａ〜１４Ｃのサブルーチンを出る。このようにして、２つのウィンドウのウィンドウ・タイトルの類似性による相互の関連性が判定できる。
【０１６３】
次は、グループ化対象の第１の操作情報レコードと第２の操作情報レコードをグループ化してウィンドウ・グループ表を生成する手順について説明する。
【０１６４】
図１５Ａおよび１５Ｂは、図１０Ａのステップ５１４、図１０Ｂのステップ５２６、および図１０Ｃのステップ５４８におけるウィンドウのグループ化処理のための具体的なフローチャートの例を示している。
【０１６５】
図１５Ａを参照すると、ステップ７０２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、グループ化対象の第１の操作情報レコードおよび第２の操作情報レコードから、それぞれのウィンドウ識別子を取得する。
【０１６６】
ステップ７０４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、作成中のウィンドウ・グループ表から、グループ化対象の第１の操作情報レコードのウィンドウ識別子を検索する。プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、検索に成功し、即ち同じウィンドウ識別子が既にある場合には、そのウィンドウ識別子を取得する。作成中のウィンドウ・グループ表は、例えば、図１７Ａのウィンドウ・グループ表の形式のものであってもよい。作成中のウィンドウ・グループ表は、最初はレコードが存在しない。
【０１６７】
ステップ７０６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表に、第１の操作情報レコードのウィンドウ識別子があるかどうかを判定する。ウィンドウ識別子があると判定された場合、手順はステップ７０８に進む。ウィンドウ識別子がないと判定された場合、手順は図１５Ｂのステップ７１８に進む。
【０１６８】
ステップ７０８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表から、第１の操作情報レコードのウィンドウ識別子に対応するウィンドウ・グループの識別番号を取得する。次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表から、取得したウィンドウ・グループと同じウィドウ・グループのレコードのリストを取得する。例えば、図１７Ａにおいて、ウィンドウ・グループの識別番号“１”が付与された行Ｔ３２Ｒ１〜Ｔ３２Ｒ４のレコードのリストが取得される。
【０１６９】
ステップ７１０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したレコードのリストから、グループ化対象の第２の操作情報レコードのウィンドウ識別子を検索する。プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、検索に成功し、即ち同じウィンドウ識別子が既にある場合には、そのウィンドウ識別子を取得する。
【０１７０】
ステップ７１２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得したレコードのリストに、第２の操作情報レコードのウィンドウ識別子があるかどうかを判定する。ウィンドウ識別子があると判定された場合、手順は図１３Ａおよび１３Ｂのサブルーチンを出る。この場合、２つのウィンドウは既にグループ化済みである。ウィンドウ識別子がないと判定された場合、手順はステップ７１４に進む。
【０１７１】
ステップ７１４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表に新しいレコードを追加する。次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、新しいレコードにおいて、取得したウィンドウ・グループの識別番号と、グループ化対象の第２の操作情報レコードのウィンドウ識別子およびウィンドウ・タイトルとを書き込む。このようにして、１つのウィンドウが、既にあるウィンドウ・グループに追加できる。その後、手順は図１５Ａ〜１５Ｃのルーチンを出る。
【０１７２】
図１５Ｂを参照すると、ステップ７１８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表から、グループ化対象の第２の操作情報レコードのウィンドウ識別子を検索する。プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、検索に成功し、即ち同じウィンドウ識別子が既にある場合には、そのウィンドウ識別子を取得する。
【０１７３】
ステップ７２０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表に、第２の操作情報レコードのウィンドウ識別子があるかどうかを判定する。ウィンドウ識別子があると判定された場合、手順はステップ７２２に進む。ウィンドウ識別子がないと判定された場合、手順はステップ７３２に進む。
【０１７４】
ステップ７２２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表から、グループ化対象の第２の操作情報レコードのウィンドウ識別子のウィンドウ・グループの識別番号を取得する。
【０１７５】
ステップ７２４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表に新しいレコードを追加する。次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、新しいレコードにおいて、取得したウィンドウ・グループの識別番号と、グループ化対象の第１の操作情報レコードのウィンドウ識別子およびウィンドウ・タイトルとを書き込む。このようにして、１つのウィンドウが、既にあるウィンドウ・グループに追加できる。その後、手順は図１５Ａ〜１５Ｃのルーチンを出る。
【０１７６】
ステップ７３２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、新しいウィンドウ・グループの識別番号を生成する。
【０１７７】
ステップ７３４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表に新しいレコードを追加する。次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、新しいレコードに、生成したウィンドウ・グループの識別番号と、グループ化対象の第１の操作情報レコードのウィンドウ識別子およびウィンドウ・タイトルを書き込む。
【０１７８】
ステップ７３６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表に新しいレコードを追加する。次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、新しいレコードに、生成したウィンドウ・グループの識別番号と、グループ化対象の第２の操作情報レコードのウィンドウ識別子およびウィンドウ・タイトルを書き込む。このようにして、ウィンドウ・グループ表に新しいウィンドウ・グループとしての２つのウィンドウが追加できる。その後、手順は図１５Ａ〜１５Ｃのルーチンを出る。
【０１７９】
図１７Ａに例示されたウィンドウ・グループ表は、図１５Ａ〜１５Ｃの処理によってウィンドウがグループ化された後のものである。図１７Ａのウィンドウ・グループ表は、ウィンドウ・グループ、ウィンドウ識別子、アクティブ時間合計、ウィンドウ・タイトル、および作業項目決定結果のフィールドを含んでいる。ここで、各行の各レコードにおけるアクティブ時間合計および作業項目決定結果のフィールドは未だ空白である。
【０１８０】
次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、操作情報のテーブルのアクティブ継続時間に基づいて、ウィンドウ・グループ表のウィンドウ識別子毎のアクティブ時間の合計を求めて書き込む。次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、各ウィンドウ・グループにおいてアクティブ時間の合計の長い順にレコードを並び替えてもよい。それによって、アクティブ時間のより長いウィンドウを、作業項目を決定するのに有用なウィンドウとして、より高い優先度で配置することが可能となる。
【０１８１】
図１７Ｂに例示されたウィンドウ・グループ表は、図１７Ａのウィンドウ・グループ表にアクティブ時間の合計を書き込み、時間の長さの順にレコードを並び替えたものである。
【０１８２】
例えば、図７の操作情報のテーブルにおいて、ウィンドウ識別子が“１”のレコードは、行Ｔ１Ｒ１、Ｔ１Ｒ４、Ｔ１Ｒ６、Ｔ１Ｒ１０のレコードである。これらのレコードのアクティブ継続時間を合計すると０：３０（３０分）となり、図１７Ｂのウィンドウ・グループ表においてウィンドウ識別子“１”のレコードＴ３２Ｒ１のアクティブ時間の合計として０：３０が書き込まれる。
【０１８３】
次は、形成された各ウィンドウ・グループに対する作業項目名の決定のしかたについて説明する。
【０１８４】
プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表において、ウィンドウ・グループ毎に作業項目を決定する。その際、作業項目決定用のテーブルに従って、各ウィンドウ・グループの１つ以上のウィンドウのウィンドウ・タイトルにおける任意の数のキーワードの組合せに対して１つの作業項目が決定される。
【０１８５】
図１８に例示された作業項目決定用のテーブルは、階層別に、テーブル・アドレス、キーワード、継続指標、リンク・アドレス、作業項目名、および作業コードの各フィールドを含んでいる。作業項目決定用のテーブルは、組み合わされるキーワードの数に応じた可変な数の階層を有する。作業項目決定用のテーブルは、１つのレコード内に下位の階層テーブルへの継続の有無を示す継続指標と、下位の階層テーブルのリンク先にリンクするリンク・アドレスとを含んでいる。継続指標には、例えば、下位継続、決定終了、未決定終了、および上位継続がある。作業項目決定用のテーブルによって、任意の数のキーワードの組合せで１つの作業項目を決定することが可能になる。情報処理装置１０は、ウィンドウ・タイトルの文字列に含まれるキーワードの有無に基づいて、作業項目決定用のテーブルの各階層のキーワードをリンク・アドレスに従って順に辿ることによって、キーワードに対応する作業項目名を決定することができる。
【０１８６】
例えば図１７Ｂのようなウィンドウ・グループ表の各ウィンドウのウィンドウ・タイトルが検索されて、ウィンドウ・タイトル中に、作業項目決定用のテーブルに含まれるキーワードの組合せが含まれるかどうかが判定される。検索の順序は、ウィンドウについて、ウィンドウ・グループの識別番号の昇順かつウィンドウ・グループ内でアクティブ時間の合計の降順である。また、検索の順序は、キーワードについて、作業項目決定用のテーブルの階層１からより下位の大きい番号の階層２、３・・・のテーブルへと向かう。また、検索の順序は、同じ階層のテーブルでは、作業項目決定用のテーブルのレコードの上から下へと向かう。ウィンドウ・タイトル中にキーワードの組合せが含まれていれば、キーワードの組合せに対応する作業項目名が決定され、ウィンドウ・グループ表の作業項目決定結果に決定結果が書き込まれる。決定された作業項目名は、ウィンドウ・グループの作業項目として、例えば図２１のようなウィンドウ・グループ別の時間集計表の作業項目名および作業コードに書き込まれる。
【０１８７】
例えば、図１７Ｂのウィンドウ・グループ表におけるウィンドウ・グループの識別番号“１”について、行Ｔ３２Ｒ２のレコードのウィンドウ・タイトルは“Ｂシステム設計要項＿Ｖ１．００”である。一方、図１８の作業項目決定用のテーブルの階層１の行Ｔ４Ｒ１のレコードのキーワードは、Ａ商事である。図１８の作業項目決定用のテーブルの階層１の注目レコードのレコード識別番号が“Ｔ４Ｒ１”であることが、図２２の層別注目レコード保存表に記録される。次いで、“Ｂシステム設計要項＿Ｖ１．００”にキーワード“Ａ商事”が含まれるか検索される。キーワードの検索結果は検索不成功となる。従って、図１８の作業項目決定用のテーブルの階層１の次の行Ｔ４Ｒ２のレコードに注目レコードが変更される。同様に、図２２の階層別注目レコード保存表にレコード“Ｔ４Ｒ２”が記録され、“Ｂシステム設計要項＿Ｖ１．００”にキーワード“０００１−０１”が含まれるか検索される。検索不成功となる間は、図１８の作業項目決定用のテーブルにおける次レコードに対して同様の検索が繰り返される。
【０１８８】
この場合、図１８の作業項目決定用のテーブルの階層１のテーブルのキーワードは、“Ａ商事”、“０００１−０１”、“技術展”、“社内発表”、“効率化見える化の取り組”であり、ウィンドウ・タイトル“Ｂシステム設計要項＿Ｖ１．００”に含まれていない。階層１のテーブルのストッパである行Ｔ４Ｒ６のレコードに達したとき、そのレコードの継続指標が未決定終了なので、そのウィンドウ・タイトルでは作業項目が未決定となる。従って、図２０のようなウィンドウ・グループ表の作業項目決定結果に、“未決定”が書き込まれる。
【０１８９】
このように作業項目が未決定となった場合、図１７Ｂまたは２０のウィンドウ・グループ表の次の行Ｔ３２Ｒ１のレコードについて、同様の検索が行われる。ウィンドウ・タイトル“Ｂシステム設計要項＿Ｖ２．００”でも作業項目が未決定となる。
【０１９０】
図１７Ｂまたは２０のウィンドウ・グループ表の行Ｔ３２Ｒ３のレコードのウィンドウ・タイトル“Ａ商事様Ｂ＿第２期開発基本設計書”に対して検索が行われる。この場合、“Ａ商事様Ｂ_第２期開発基本設計書”には、図１８の作業項目決定用のテーブルのキーワード“Ａ商事”が含まれていると判定される。図２０の行Ｔ４Ｒ１のレコードの継続指標は下位継続であり、階層２のテーブルへのリンク・アドレスは“ＬＩＮＫ２０”である。この場合、テーブル・アドレス“ＬＩＮＫ２０”の行Ｔ４Ｒ７のレコードへ注目レコードが変更され、図１８の作業項目決定用のテーブルの階層２の注目レコードの行Ｔ４Ｒ７のレコード“Ｔ４Ｒ７”が、図２２の階層別注目レコード保存表に記録される。行Ｔ４Ｒ７のレコードのキーワード“Ｂ”は、“Ａ商事様Ｂ_第２期開発基本設計書”に含まれており、このレコードの継続指標は、下位継続である。この場合、階層３のテーブルへのリンク・アドレス“ＬＩＮＫ３０”の示すレコードへ注目レコードが変更され、“作業項目決定用のテーブル”の階層３の注目レコードの行Ｔ４Ｒ１１のレコード“Ｔ４Ｒ１１”が図２２の階層別注目レコード保存表に記録される。このようにして、次の行Ｔ４Ｒ１２の作業項目決定用のテーブル階層３のキーワード“第２期開発”が検索されて、検索が成功する。このレコードの継続指標は、決定終了である。
【０１９１】
次いで、決定終了のレコード中の図１８の作業項目決定用のテーブルの作業項目名“Ａ商事向けＢシステム第２期開発”と作業コード“０００１−０２”とが取得されて、図２０のウィンドウ・グループ表の作業項目決定結果として“決定”が書き込まれる。このようにして、例えば図２１Ａのウィンドウ・グループ別の時間集計表に新しいレコードが追加されて、新しいレコードにウィンドウ・グループの識別番号“１”、作業項目名“Ａ商事向けＢシステム第２期開発”および作業コード“０００１−０２”が書き込まれる。
【０１９２】
このようにして、図２１Ａにおいて、３つのキーワード“Ａ商事”、“Ｂ”、“第２期開発”の組合せを含むウィンドウ・タイトルの作業項目名“Ａ商事向けＢシステム第２期開発”が決定される。
【０１９３】
別の例として、図１７Ｂのウィンドウ・グループ表におけるウィンドウ・グループの識別番号“５”について、行Ｔ３２Ｒ１３のレコードのウィンドウ・タイトルは“Ａ商事様Ｄシステム（Ｂとの比較）”である。ウィンドウ・タイトル“Ａ商事様Ｄシステム（Ｂとの比較）”は、図１８の作業項目決定用のテーブルの階層１のキーワード“Ａ商事”を含み、階層２のキーワード“Ｂ”を含み、階層３のいずれのキーワードも含んでいない。検索が、図１８の作業項目決定用のテーブルにおいて、階層３のストッパに達して、そのレコードの継続指標が上位継続であり、上位階層は階層２である。従って、図２２の階層別注目レコード保存表に保存された上位階層の行Ｔ４Ｒ７の注目レコードが取得され、その次のレコードに注目レコードが変更され、検索が継続される。
【０１９４】
このようにして図１８の作業項目決定用のテーブルの行Ｔ４Ｒ９のレコードのキーワード“Ｄ”に達したとき、継続指標は決定終了である。従って、ウィンドウ・グループの識別番号“５”に対して、行Ｔ４Ｒ９のレコードにおける作業項目名“Ａ商事向けＤシステム開発”および作業コード“０００３−０１”が決定される。
【０１９５】
このように、階層２以降の下位の階層のテーブルのストッパでの継続指標が上位継続であることによって、ウィンドウ・タイトル中に、作業項目決定用のテーブル上で一部のキーワードの組合せが含まれるが（Ａ商事、Ｂ)、全てのキーワードの組合せは含まない。それでも、後続の別のキーワードの組合せ （Ａ商事、Ｄ）で作業項目が決定できる。
【０１９６】
さらに別の例として、図１７Ｂのウィンドウ・グループ表におけるウィンドウ・グループの識別番号“６”について、行Ｔ３２Ｒ１６のレコードのウィンドウ・タイトルは“Ａ商事Ｃシステム開発ロードマップ”である。ウィンドウ・グループ表のウィンドウ・タイトル“Ａ商事Ｃシステム開発ロードマップ”に対して検索が行われる。この場合、ウィンドウ・タイトル“Ａ商事Ｃシステム開発ロードマップ”には、図１８の作業項目決定用のテーブルの階層１のキーワード“Ａ商事”と階層２のキーワード“Ｃ”が含まれる。しかし、ウィンドウ・タイトル“Ａ商事Ｃシステム開発ロードマップ”には、階層３のキーワード“第１期開発”または“第２期開発”が含まれない。検索が行Ｔ４Ｒ１８のレコードのストッパに達したとき、継続指標は決定終了なので、作業項目名“Ａ商事向けＣシステム開発共通作業”および作業コード“０００２−０３”が決定される。
【０１９７】
このように、階層２のテーブル以降のストッパの継続指標を決定終了と設定することができる。それによって、ウィンドウ・タイトル中に作業項目決定用のテーブルに、一部のキーワードの組合せが含まれるが（Ａ商事、Ｃ)、全てのキーワードの組合せが含まれない場合でも、一部の組合せのみで作業項目が決定できる。
【０１９８】
図１９Ａ〜１９Ｃは、情報処理装置１０によって実行される、作業項目決定用のテーブルに基づいて、ウィンドウ・グループの作業項目名を決定するための処理のフローチャートの例を示している。
【０１９９】
図１９Ａを参照すると、ステップ７４２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表から、最初の１つのウィンドウ・グループのレコードのリストを取得する。レコードのリストは、ウィンドウ・グループ表から取り出された１つのウィンドウ・グループの１つ以上のウィンドウに関するレコードを含んでいる。例えば、図１７Ｂのウィンドウ・グループ表において、最初のレコード・リストは、行Ｔ３２Ｒ１〜Ｔ３２Ｒ４におけるウィンドウ・グループの識別番号“１”のウィンドウ識別子“２”、“１”、“３”および“４”の４つのレコードを含んでいる。
【０２００】
ステップ７４４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表におけるウィンドウ・グループが終了したかどうかを判定する。ウィンドウ・グループが終了したと判定された場合、手順は図１９Ａ〜１９Ｃのルーチンを出る。ウィンドウ・グループが終了していないと判定された場合、手順はステップ７４６に進む。
【０２０１】
ステップ７４６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第６の注目レコードとして、取得したレコードのリストにおける最初のレコードを取得する。ここで、第６の注目レコードは変数である。最初のレコードは、例えば、図１７Ｂにおける行Ｔ３２Ｒ２のウィンドウ・グループの識別番号“１”のウィンドウ識別子“２”のレコードである。
【０２０２】
ステップ７４８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ別の時間集計表に新しいレコードを追加し、新しいレコードに第６の注目レコードのウィンドウ・グループの識別番号を書き込む。例えば、図２１Ａのウィンドウ・グループ別の時間集計表に、行Ｔ６１Ｒ１の新しいレコードが追加され、ウィンドウ・グループの識別番号“１”が書き込まれる。
【０２０３】
ステップ７５０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、レコードのリストにおけるレコードが終了したかどうかを判定する。レコードが終了したと判定された場合、手順はステップ７５２に進む。レコードが終了していないと判定された場合、手順はステップ７５４に進む。
【０２０４】
ステップ７５２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表から、次の１つのウィンドウ・グループのレコードのリストを取得する。その後、手順はステップ７４４に戻る。
【０２０５】
ステップ７５４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第６の注目レコードのウィンドウ・タイトルを取得する。
【０２０６】
ステップ７５６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、作業項目決定用のテーブルから、最初のレコードを第７の注目レコードとして取得し、第７の注目レコードの階層を階層１と設定する。例えば図１８のような作業項目決定用のテーブルにおける最初のレコードの階層は１である。ここで、第７の注目レコードは変数である。次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、階層別注目レコード保存表において、第７の注目レコードの階層１に第７の注目レコードのレコード識別番号または行識別番号を記録する。次いで、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、作業項目決定用のテーブルから、第７の注目レコードの継続指標を取得する。その後、手順は図１９Ｂのステップ７６０に進む。
【０２０７】
図２２に例示された階層別注目レコード保存表において、第７の注目レコードについて、例えば、階層１に、作業項目決定用のテーブルの行Ｔ４Ｒ１のレコード識別番号“Ｔ４Ｒ１”が保存される。図１８の作業項目決定用のテーブルにおいて、第７の注目レコードのレコード識別番号“Ｔ４Ｒ１”の継続指標は“下位継続”である。
【０２０８】
図１９Ｂを参照すると、ステップ７６０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第７の注目レコードの継続指標が未決定終了であるかどうかを判定する。継続指標が未決定終了であると判定された場合、手順はステップ７６２に進む。継続指標が未決定終了でないと判定された場合、手順はステップ７６６に進む。
【０２０９】
ステップ７６２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表の第６の注目レコードの作業項目決定結果に“未決定”を書き込む。例えば、図２０のウィンドウ・グループ表において、行３２Ｒ２のレコードに“未決定”が書き込まれる。ステップ７６４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第６の注目レコードとして、レコードのリストにおける次のレコードを取得する。その後、手順は図１９Ａのステップ７５０に戻る。
【０２１０】
ステップ７６６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第７の注目レコードの継続指標が上位継続かどうかを判定する。継続指標が上位継続であると判定された場合、手順はステップ７６８に進む。継続指標が上位継続でないと判定された場合、手順はステップ７７４に進む。
【０２１１】
ステップ７６８において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第７の注目レコードの階層から１を減算し、第７の注目レコードの階層を１つ上位のまたは小さい階層に変更する。ステップ７７０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、階層別注目レコード保存表から、第７の注目レコードの階層に対応する第７の注目レコードのレコード識別番号を取得する。
【０２１２】
ステップ７７２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、作業項目決定用のテーブルから、第７の注目レコードとして次のレコードを取得する。その後、手順は図１９Ｃのステップ７８４に進む。
【０２１３】
ステップ７７４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第６の注目レコードのウィンドウ・タイトルに、第７の注目レコードのキーワードが含まれているかどうかを判定する。第６の注目レコードのウィンドウ・タイトルに第７の注目レコードのキーワードが含まれると判定された場合、手順は図１９Ｃのステップ７７６に進む。第６の注目レコードのウィンドウ・タイトルに第７の注目レコードのキーワードが含まれていないと判定された場合、手順はステップ７７２に進む。
【０２１４】
図１９Ｃを参照すると、ステップ７７６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第７の注目レコードの継続指標が決定終了であるかどうかを判定する。継続指標が決定終了でないと判定された場合は、手順はステップ７８０に進む。この場合、継続指標は下位継続である。継続指標が決定終了であると判定された場合は、手順はステップ７９２に進む。
【０２１５】
ステップ７８０において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第７の注目レコードの階層に１を加算する。ステップ７８２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、第７の注目レコードのリンク・アドレスが指すレコードを第７の注目レコードとして取得する。例えば、図１８において、行ＴＲ１のレコードにおけるリンク・アドレス“ＬＩＮＫ２０”が指す階層２のテーブルのテーブル・アドレス“ＬＩＮＫ２０”を有する行Ｔ４Ｒ７のレコードが、第７の注目レコードとして取得される。
【０２１６】
ステップ７８４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、階層別注目レコード保存表において、第７の注目レコードの階層に、対応する第７の注目レコードのレコード識別番号を保存する。
【０２１７】
図２２に例示された階層別注目レコード保存表は、例えば図１８のような作業項目決定用のテーブルにおける第７の注目レコードの階層を示している。例えば、図２２の階層別注目レコード保存表における階層２のレコード識別番号は、図１８の作業項目決定用のテーブル中の階層２のテーブルの行Ｔ４Ｒ７のレコード識別番号“Ｔ４Ｒ７”である。
【０２１８】
ステップ７８６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、作業項目決定用のテーブルから、第７の注目レコードの継続指標を取得する。その後、手順は図１９Ｂのステップ７６０に戻る。
【０２１９】
ステップ７９２において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、作業項目決定用のテーブルから、第７の注目レコードにおける作業項目名および作業コードを取得する。ステップ７９４において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、ウィンドウ・グループ表の第６の注目レコードの作業項目決定結果に“決定”を書き込む。ステップ７９６において、プロセッサ１０２（ウィンドウ・グループ化部１０２８）は、取得した作業項目名および作業コードを、ウィンドウ・グループ別の時間集計表における、ステップ７４８で追加した新しいレコードに書き込む。その後、手順は図１９Ａのステップ７５２に戻る。
【０２２０】
このようにして、ウィンドウ・グループ表の各ウィンドウ・グループのウィンドウ・タイトルに基づいて、作業項目決定用のテーブルに従って、各ウィンドウ・グループに対する作業項目名および作業コードを含むウィンドウ・グループ別の時間集計表が形成できる。
【０２２１】
図２０は、図１９Ａ〜１９Ｃの処理によって作業項目が決定された後のウィンドウ・グループ表の例を示している。図２１Ａに例示されたウィンドウ・グループ別の時間集計表は、図１９Ａ〜１９Ｃの処理によって生成された作業項目名および作業コードが決定された後でかつ作業時間集計前のものである。
【０２２２】
次は、ウィンドウ・グループ別の作業時間の集計について説明する。
【０２２３】
図２１Ｂは、時間集計後のウィンドウ・グループ別の時間集計表の例を示している。
図２０のようなウィンドウ・グループ表に基づいて、各ウィンドウ・グループのウィンドウ識別子に対応するアクティブ時間の合計が、計算されて、図２１Ａのような作業時間集計前のウィンドウ・グループ別の時間集計表の作業時間に書き込まれる。それによって、例えば図２１Ｂのような、時間集計後のウィンドウ・グループ別の時間集計表が形成される。
【０２２４】
例えば、図２０のウィンドウ・グループ“１”のウィンドウ識別子“２”、“１”，“３”および“４”のアクティブ状態の合計時間の合計は、１：２０＋０：３０＋０：２０＋０：０２＝２：１２（２時間１２分）である。この時間が、図２１Ｂのウィンドウ・グループ表の作業時間に書き込まれる。その後、同じ作業項目名の２つのウィンドウ・グループが１つのウィンドウ・グループに統合される。例えば、図２１Ｂにおいて、行Ｔ６１Ｒ１およびＴ６１Ｒ４のレコードのウィンドウ・グループ“１”とウィンドウ・グループ“４”が同じ作業項目名“Ａ商事向けＢシステム第２期開発”を有し、１つのウィンドウ・グループ“１”に統合され、作業時間２：１２および０：１５が合計されて２：２７（２時間２７分）となる。それによって、例えば図２１Ｃのような、統合後のウィンドウ・グループ別の時間集計表が形成される。
【０２２５】
図２３Ａおよび２３Ｂは、情報処理装置１０によって実行される、ウィンドウ・グループ別の時間を集計するための処理のフローチャートの例を示している。
【０２２６】
図２３Ａを参照すると、ステップ８０２において、プロセッサ１０２（またはその作業時間算出部１０３０）は、例えば図２０のようなウィンドウ・グループ表から最初のレコードを取得する。
【０２２７】
ステップ８０４において、プロセッサ１０２（作業時間算出部１０３０）は、レコードが終了（ＥＯＦ）したかどうかを判定する。レコードが終了したと判定された場合、手順は図２３Ｂのステップ８１２に進む。レコードが終了していない、即ち未だレコードが存在すると判定された場合、手順はステップ８０６に進む。
【０２２８】
ステップ８０６において、プロセッサ１０２（作業時間算出部１０３０）は、ウィンドウ・グループ表の現在のレコードから、各ウィンドウ・グループの識別番号とアクティブ状態の合計時間とを取得する。ステップ８０８において、プロセッサ１０２（作業時間算出部１０３０）は、取得したアクティブ状態の合計時間を、ウィンドウ・グループ別の時間集計表（図２１Ａ）におけるウィンドウ・グループの識別番号の作業時間（初期値０）に加算する。
【０２２９】
ステップ８１０において、プロセッサ１０２（作業時間算出部１０３０）は、ウィンドウ・グループ表から次のレコードを取得する。その後、手順はステップ８０４に戻る。それによって、例えば図２１Ｂのようなウィンドウ・グループ別の時間集計表におけるウィンドウ・グループ別の作業時間が集計できる。
【０２３０】
図２３Ｂを参照すると、ステップ８１２において、プロセッサ１０２（作業時間算出部１０３０）は、ウィンドウ・グループ別の時間集計表から、最初のレコードを取得する。
【０２３１】
ステップ８１４において、プロセッサ１０２（作業時間算出部１０３０）は、レコードが終了（ＥＯＦ）したかどうかを判定する。レコードが終了したと判定された場合、手順は図２３Ａおよび２３Ｂのルーチンを出る。レコードが終了していない、即ち未だレコードが存在すると判定された場合、手順はステップ８１６に進む。
【０２３２】
ステップ８１６において、プロセッサ１０２（作業時間算出部１０３０）は、ウィンドウ・グループ別の時間集計表における取得したレコードの作業コードを取得する。
【０２３３】
ステップ８１８において、プロセッサ１０２（作業時間算出部１０３０）は、例えば図２１Ｂのようなウィンドウ・グループ別の時間集計表に、同じ作業コードまたは作業項目名を有するウィンドウ・グループがあるかどうかを判定する。同じ作業コードまたは作業項目名を有するウィンドウ・グループがあると判定された場合、手順はステップ８２０に進む。同じ作業コードまたは作業項目名を有するウィンドウ・グループがないと判定された場合、手順はステップ８２２に進む。
【０２３４】
ステップ８２０において、プロセッサ１０２（作業時間算出部１０３０）は、同じ作業コードまたは作業項目名を有するウィンドウ・グループを統合する。その際、現在のウィンドウ・グループの作業時間に、同じ作業コードを有する他のウィンドウ・グループの作業時間が加算され、他のウィンドウ・グループのレコードが削除される。それによって、同じ作業コードおよび同じ作業項目名を有する複数のウィンドウ・グループが１つのウィンドウ・グループに統合できる。その後、手順はステップ８２２に進む。
【０２３５】
ステップ８２２において、プロセッサ１０２（作業時間算出部１０３０）は、ウィンドウ・グループ別の時間集計表から、次のレコードを取得する。その後、手順は、ステップ８１４に戻る。それによって、ウィンドウ・グループ別の時間集計表の全てのレコードについてステップ８１６〜８２０が実行される。
【０２３６】
図２１Ｃは、統合後のウィンドウ・グループ別の時間集計表の例を示している。
図２１Ｃの統合後のウィンドウ・グループ別の時間集計表は、ウィンドウ・グループ別に、重複が排除された作業項目名および作業コードと、統合された作業時間とを含んでいる。
【０２３７】
上述の例では、操作情報の生成、ウィンドウのグループ化、ウィンドウ・グループに対応する作業項目の決定、および、作業項目別の時間集計を含む全ての処理が情報処理装置１０によって実行された。代替形態として、処理の少なくとも一部または全てがサーバ装置２０によって実行されて処理結果等が情報処理装置１０に表示されてもよい。
【０２３８】
このようにして、実施形態によれば、ウィンドウ・グループ別に、予め設定された作業項目名および作業コードが付与でき、合計作の業時間が得られる。それによって、操作者は、作業項目別の作業時間の集計作業から解放される。
【０２３９】
ここで挙げた全ての例および条件的表現は、発明者が技術促進に貢献した発明および概念を読者が理解するのを助けるためのものであり、ここで具体的に挙げたそのような例および条件に限定することなく解釈すべきである。また、明細書におけるそのような例の編成は本発明の優劣を示すこととは関係ない。本発明の実施形態を詳細に説明したが、本発明の精神および範囲から逸脱することなく、それに対して種々の変更、置換および変形を施すことができると理解すべきである。
【０２４０】
以上の実施例を含む実施形態に関して、さらに以下の付記を開示する。
（付記１）コンピュータに、
前記コンピュータ上で開いた、アプリケーションまたはファイルに対応する複数のウィンドウに対する操作情報を記憶部に記憶し、
前記記憶部に記憶された前記操作情報に基づいて、交互にアクティブ状態になったウィンドウまたは一方から他方へデータのコピーまたは移動が行われたウィンドウを、ウィンドウグループにグループ化し、
グループ化した前記ウィンドウグループについて、前記記憶部に記憶された前記操作情報に基づいて、前記ウィンドウグループに属するウィンドウがアクティブ状態であった時間を算出する
処理を実行させることを特徴とする算出プログラム。
（付記２）さらに、ハイパーリンクのクリックが行われたウィンドウと、前記ハイパーリンクのクリックによってアクティブ状態になったウィンドウとを、同じウィンドウグループにグループ化する処理を、前記コンピュータに実行させることを特徴とする、付記１に記載の算出プログラム。
（付記３）さらに、ファイルのフォルダまたはＵＲＬが同じであるウィンドウを、同じウィンドウグループにグループ化する処理を、前記コンピュータに実行させることを特徴とする、付記１または２に記載の算出プログラム。
（付記４）さらに、類似性のあるタイトルを有するウィンドウを、同じウィンドウグループにグループ化する処理を、前記コンピュータに実行させることを特徴とする、付記１乃至３のいずれかに記載の算出プログラム。
（付記５）前記タイトルの類似性が正規表現を用いて判定されることを特徴とする、付記４に記載の算出プログラム。
（付記６）前記交互にアクティブ状態になったウィンドウは、閾値以上の回数、交互にアクティブ状態になったウィンドウであることを特徴とする、付記１乃至５のいずれかに記載の算出プログラム。
（付記７）さらに、前記ウィンドウグループに属するウィンドウのタイトルに含まれるテキストに基づいて、前記ウィンドウグループに作業識別情報を対応付ける処理を、前記コンピュータに実行させることを特徴とする、付記１乃至６のいずれかに記載の算出プログラム。
（付記８）さらに、同じ作業識別情報の２つ以上のウィンドウグループを１つのウィンドウグループに統合する処理を、前記コンピュータに実行させることを特徴とする、付記７に記載の算出プログラム。
（付記９）さらに、前記ウィンドウグループに属するウィンドウのアクティブ状態であった時間の合計時間を、前記ウィンドウグループの作業時間として算出する処理を、前記コンピュータに実行させることを特徴とする、付記１乃至８のいずれかに記載の算出プログラム。
（付記１０）アプリケーションまたはファイルに対応する、開いた複数のウィンドウに対する操作情報を記憶する記憶部と、
前記記憶部に記憶された前記操作情報に基づいて、交互にアクティブ状態になったウィンドウまたは一方から他方へデータのコピーまたは移動が行われたウィンドウを、ウィンドウグループにグループ化する第１の処理部と、
グループ化した前記ウィンドウグループについて、前記記憶部に記憶された前記操作情報に基づいて、前記ウィンドウグループに属するウィンドウがアクティブ状態であった時間を算出する第２の処理部と、
を含むことを特徴とする情報処理装置。
（付記１１）コンピュータが、
前記コンピュータ上で開いた、アプリケーションまたはファイルに対応する複数のウィンドウに対する操作情報を記憶部に記憶し、
前記記憶部に記憶された前記操作情報に基づいて、交互にアクティブ状態になったウィンドウまたは一方から他方へデータのコピーまたは移動が行われたウィンドウを、ウィンドウグループにグループ化し、
グループ化した前記ウィンドウグループについて、前記記憶部に記憶された前記操作情報に基づいて、前記ウィンドウグループに属するウィンドウがアクティブ状態であった時間を算出する
処理を実行することを特徴とする算出方法。
【符号の説明】
【０２４１】
１０  情報処理装置
１０２  プロセッサ
１０４  記憶部
１０８  ネットワーク・インタフェース
１２２  入力部
１２４  表示部
１２６  音響部
５  ネットワーク
２０  サーバ装置
２０２  プロセッサ
２０４  メモリ
２０６  記憶装置
２０８  ネットワーク・インタフェース
【図１】
2016126532.tif 000003
【図２】
2016126532.tif 000004
【図３】
2016126532.tif 000005
【図４】
2016126532.tif 000006
【図５Ａ】
2016126532.tif 000007
【図５Ｂ】
2016126532.tif 000008
【図６Ａ】
2016126532.tif 000009
【図６Ｂ】
2016126532.tif 000010
【図７】
2016126532.tif 000011
【図８】
2016126532.tif 000012
【図９】
2016126532.tif 000013
【図１０Ａ】
2016126532.tif 000014
【図１０Ｂ】
2016126532.tif 000015
【図１０Ｃ】
2016126532.tif 000016
【図１１】
2016126532.tif 000017
【図１２】
2016126532.tif 000018
【図１３】
2016126532.tif 000019
【図１４Ａ】
2016126532.tif 000020
【図１４Ｂ】
2016126532.tif 000021
【図１４Ｃ】
2016126532.tif 000022
【図１５Ａ】
2016126532.tif 000023
【図１５Ｂ】
2016126532.tif 000024
【図１６】
2016126532.tif 000025
【図１７Ａ】
2016126532.tif 000026
【図１７Ｂ】
2016126532.tif 000027
【図１８】
2016126532.tif 000028
【図１９Ａ】
2016126532.tif 000029
【図１９Ｂ】
2016126532.tif 000030
【図１９Ｃ】
2016126532.tif 000031
【図２０】
2016126532.tif 000032
【図２１】
2016126532.tif 000033
【図２２】
2016126532.tif 000034
【図２３Ａ】
2016126532.tif 000035
【図２３Ｂ】
2016126532.tif 000036