(57)【要約】【課題】プロジェクト毎に、作業者の進捗状況を正確に把握する。【解決手段】タスク定義部２００が、タスク定義情報をレポジトリ１０９に登録し、タスク通知部１０２が、レポジトリ１０９から自分宛のタスク定義情報を取得する。オペレーティングシステム１０８が、実行したアプリケーションによって表示されたウィンドウに関するウィンドウメッセージを出力する。ウィンドウ階層検索部１０５が、表示されたウィンドウの階層情報を生成する。タスク−ウィンドウ関連付け部１０３が、上位のウィンドウがタスクとの関連付けのなされていない新規のウィンドウである場合に、該新規のウィンドウをタスク定義情報と関連付けるための処理を行う。ウィンドウメッセージフィルタリング部１０４が、ウィンドウメッセージの内容と階層情報とに基づいて、アプリケーションの稼動時間を求める。【選択図】図１
2007272655.tif 000002
【特許請求の範囲】
【請求項１】
サーバと、該サーバと接続される管理者端末および作業者端末とを有するプロジェクト管理システムであって、
前記管理者端末は、
プロジェクトを識別可能なプロジェクト識別情報と、該プロジェクトに関する作業を行うためのタスクを識別可能なタスク識別情報と、作業者を識別可能な作業者識別情報とを含むタスク定義情報の入力がなされると、該タスク定義情報を前記サーバに登録するタスク定義部と、
前記サーバに登録された作業実績情報を取得するタスク管理部と、を有し、
前記作業者端末は、
前記サーバに登録されるタスク定義情報を監視し、予め与えられた作業者識別情報と合致する作業者識別情報を含むタスク定義情報が前記サーバに登録されると、該登録されたタスク定義情報を取得するタスク通知部と、
アプリケーションを実行する旨の入力がなされると、該アプリケーションを実行するとともに、該実行したアプリケーションによって表示されたウィンドウに関するアクティブ状態および非アクティブ状態をそれぞれ示す情報を、該ウィンドウを識別可能なウィンドウ識別情報と関連付けてメッセージとして出力するオペレーティングシステムと、
前記アプリケーションによって上位のウィンドウと該上位のウィンドウに属する少なくとも１つの下位のウィンドウが表示された場合に、該上位および下位のウィンドウそれぞれのウィンドウ識別情報を上位および下位の関係に従って複数の階層に位置付けた階層情報を生成するウィンドウ階層検索部と、
前記上位のウィンドウがタスクとの関連付けのなされていない新規のウィンドウである場合に、該新規のウィンドウを前記タスク通知部で取得したタスク定義情報と関連付けるための情報を入力する画面を表示し、該画面上で情報の入力がなされると、該入力情報に基づいて、前記新規のウィンドウを対応するタスク定義情報と関連付けるタスク−ウィンドウ関連付け部と、
前記オペレーティングシステムから出力されるメッセージの内容を検出するメッセージ検出部と、
前記メッセージ検出部にて検出されたメッセージの内容に基づいて、前記上位および下位のウィンドウのそれぞれにおけるアクティブ状態および非アクティブ状態を判断し、前記メッセージに含まれるウィンドウ識別情報と前記ウィンドウ階層検索部にて生成されたアプリケーション毎の階層情報とに基づいて、アクティブ状態または非アクティブ状態になったウィンドウがどのアプリケーションに属するかを判断し、アプリケーション毎に、前記上位および下位のウィンドウのアクティブとなった期間を集計してアプリケーションの稼動時間を求めるウィンドウメッセージフィルタリング部と、
前記タスク−ウィンドウ関連付け部により関連付けられた上位のウィンドウとタスク定義情報との対応関係に基づいて、タスク単位に、前記ウィンドウメッセージフィルタリング部で求めたアプリケーションの稼動時間を前記作業実績情報として前記サーバに登録する実績通知部と、を有する、プロジェクト管理システム。
【請求項２】
前記実績通知部は、前記作業実績情報を予め与えられた暗号鍵で暗号化する、請求項１に記載のプロジェクト管理システム。
【請求項３】
前記オペレーティングシステムは、表示されたウィンドウ上で現在処理されているファイルの識別情報および該ファイルをその保存先から読み出して実行するのに必要なファイルパスの情報を含む前記メッセージを出力し、
前記作業者端末は、
前記メッセージに含まれるファイルの識別情報に基づいて、現在表示されているウィンドウに関するファイルを列挙するオープンファイル検出部と、
前記オープンファイル検出部で検出したファイルに関するファイルパスの情報を前記メッセージから取得するファイル検索部と、
前記オープンファイル検出部にて検出されたファイルと前記ファイル検索部にて取得したファイルパスの情報とに基づいて、前記オペレーティングシステムによって実行されたアプリケーションの実行パスと該アプリケーションに関するファイルをペアにして特定の画面上にショートカットを作成するショートカット作成部と、をさらに有する、請求項１に記載のプロジェクト管理システム。
【請求項４】
前記サーバは、前記作業者端末から供給された作業実績情報を前記タスク定義部によって登録されたタスク定義情報と関連付けて格納し、
前記タスク管理部は、前記プロジェクト識別情報に基づいて、前記サーバから取得した作業実績情報をプロジェクト毎に管理する、請求項１に記載のプロジェクト管理システム。
【請求項５】
前記タスク定義部は、前記タスクに関する優先順位を示す情報を含む前記タスク定義情報を前記サーバに登録し、
前記タスク通知部は、前記サーバから取得したタスク定義情報を前記優先順位を示す情報に基づいて優先順位の高い順にソートする、請求項１に記載のプロジェクト管理システム。
【請求項６】
前記タスク−ウィンドウ関連付け部は、前記画面上で、タスクを終了する旨の入力がなされると、その旨を示すタスク終了通知イベント信号を前記実績通知部に送信し、
前記実績通知部は、前記タスク終了通知イベント信号を受信すると、対応するタスクの作業実績情報に作業終了を示す情報を付与し、
前記管理者端末は、前記タスク管理部がサーバから取得したタスクの作業実績情報のうち、前記作業終了を示す情報が付与された作業実績情報を、予め与えられた秘密鍵を用いて暗号し、該暗号化した作業実績情報を承認データとして前記サーバに格納する、請求項１に記載のプロジェクト管理システム。
【請求項７】
サーバと、該サーバと接続される管理者端末および作業者端末とを有するシステムにおいて行われるプロジェクト管理方法であって、
前記管理者端末によって行われる管理ステップと、
作業者端末によって行われる作業ステップと、を含み、
前記管理ステップは、
プロジェクトを識別可能なプロジェクト識別情報と、該プロジェクトに関する作業を行うためのタスクを識別可能なタスク識別情報と、作業者を識別可能な作業者識別情報とを含むタスク定義情報の入力がなされると、該タスク定義情報を前記サーバに登録する登録ステップと、
前記サーバに登録された作業実績情報を取得するタスク管理ステップと、を含み、
前記作業ステップは、
前記サーバに登録されるタスク定義情報を監視し、予め与えられた作業者識別情報と合致する作業者識別情報を含むタスク定義情報が前記サーバに登録されると、該登録されたタスク定義情報を取得するタスク通知ステップと、
アプリケーションを実行する旨の入力がなされると、該アプリケーションを実行するとともに、該実行したアプリケーションによって表示されたウィンドウに関するアクティブ状態および非アクティブ状態をそれぞれ示す情報を、該ウィンドウを識別可能なウィンドウ識別情報と関連付けてメッセージとして出力するオペレーティング処理ステップと、
前記アプリケーションによって上位のウィンドウと該上位のウィンドウに属する少なくとも１つの下位のウィンドウが表示された場合に、該上位および下位のウィンドウそれぞれのウィンドウ識別情報を上位および下位の関係に従って複数の階層に位置付けた階層情報を生成するウィンドウ階層検索ステップと、
前記上位のウィンドウがタスクとの関連付けのなされていない新規のウィンドウである場合に、該新規のウィンドウを前記タスク通知部で取得したタスク定義情報と関連付けるための情報を入力する画面を表示し、該画面上で情報の入力がなされると、該入力情報に基づいて、前記新規のウィンドウを対応するタスク定義情報と関連付けるタスク−ウィンドウ関連付けステップと、
前記オペレーティング処理ステップにより出力されるメッセージの内容を検出するメッセージ検出ステップと、
前記メッセージステップにて検出されたメッセージの内容に基づいて、前記上位および下位のウィンドウのそれぞれにおけるアクティブ状態および非アクティブ状態を判断し、前記メッセージに含まれるウィンドウ識別情報と前記ウィンドウ階層検索ステップにて生成されたアプリケーション毎の階層情報とに基づいて、アクティブ状態または非アクティブ状態になったウィンドウがどのアプリケーションに属するかを判断し、アプリケーション毎に、前記上位および下位のウィンドウのアクティブとなった期間を集計してアプリケーションの稼動時間を求めるウィンドウメッセージフィルタリング処理ステップと、
前記タスク−ウィンドウ関連付けステップにより関連付けられた上位のウィンドウとタスク定義情報との対応関係に基づいて、タスク単位に、前記ウィンドウメッセージフィルタリング処理ステップで求めたアプリケーションの稼動時間を前記作業実績情報として前記サーバに登録する実績通知ステップと、を含む、プロジェクト管理方法。
【請求項８】
前記実績通知ステップは、前記作業実績情報を予め与えられた暗号鍵で暗号化するステップを含む、請求項７に記載のプロジェクト管理方法。
【請求項９】
前記オペレーティングシステム処理ステップは、表示されたウィンドウ上で現在処理されているファイルの識別情報および該ファイルをその保存先から読み出して実行するのに必要なファイルパスの情報を含む前記メッセージを出力するステップを含み、
前記作業処理ステップは、
前記メッセージに含まれるファイルの識別情報に基づいて、現在表示されているウィンドウに関するファイルを列挙するオープンファイル検出ステップと、
前記オープンファイル検出ステップで検出したファイルに関するファイルパスの情報を前記メッセージから取得するファイル検索ステップと、
前記オープンファイル検出ステップにて検出されたファイルと前記ファイル検索ステップにて取得したファイルパスの情報とに基づいて、前記オペレーティングシステムによって実行されたアプリケーションの実行パスと該アプリケーションに関するファイルをペアにして特定の画面上にショートカットを作成するショートカット作成ステップと、をさらに含む、請求項７に記載のプロジェクト管理方法。
【請求項１０】
前記サーバが、前記作業者端末から供給された作業実績情報を前記管理者端末によって登録されたタスク定義情報と関連付けて格納するステップを、さらに含み、
前記タスク管理ステップは、前記プロジェクト識別情報に基づいて、前記サーバから取得した作業実績情報をプロジェクト毎に管理するステップを含む、請求項７に記載のプロジェクト管理方法。
【請求項１１】
前記タスク定義ステップは、前記タスクに関する優先順位を示す情報を含む前記タスク定義情報を前記サーバに登録するステップを含み、
前記タスク通知ステップは、前記サーバから取得したタスク定義情報を前記優先順位を示す情報に基づいて優先順位の高い順にソートするステップを含む、請求項７に記載のプロジェクト管理方法。
【請求項１２】
前記タスク−ウィンドウ関連付けステップは、前記画面上で、タスクを終了する旨の入力がなされると、その旨を示すタスク終了通知イベント信号を出力するステップを含み、
前記実績通知ステップは、前記タスク終了通知イベント信号を受信すると、対応するタスクの作業実績情報に作業終了を示す情報を付与するステップを含み、
前記管理ステップは、前記タスク管理ステップで前記サーバから取得したタスクの作業実績情報のうち、前記作業終了を示す情報が付与された作業実績情報を、予め与えられた秘密鍵を用いて暗号し、該暗号化した作業実績情報を承認データとして前記サーバに格納するステップを含む、請求項７に記載のプロジェクト管理方法。
【請求項１３】
プロジェクトを識別可能なプロジェクト識別情報と、該プロジェクトに関する作業を行うためのタスクを識別可能なタスク識別情報と、作業者を識別可能な作業者識別情報とを含むタスク定義情報が登録されるサーバと接続される作業者端末であって、
前記サーバに登録されるタスク定義情報を監視し、予め与えられた作業者識別情報と合致する作業者識別情報を含むタスク定義情報が前記サーバに登録されると、該登録されたタスク定義情報を取得するタスク通知部と、
アプリケーションを実行する旨の入力がなされると、該アプリケーションを実行するとともに、該実行したアプリケーションによって表示されたウィンドウに関するアクティブ状態および非アクティブ状態をそれぞれ示す情報を、該ウィンドウを識別可能なウィンドウ識別情報と関連付けてメッセージとして出力するオペレーティングシステムと、
前記アプリケーションによって上位のウィンドウと該上位のウィンドウに属する少なくとも１つの下位のウィンドウが表示された場合に、該上位および下位のウィンドウそれぞれのウィンドウ識別情報を上位および下位の関係に従って複数の階層に位置付けた階層情報を生成するウィンドウ階層検索部と、
前記上位のウィンドウがタスクとの関連付けのなされていない新規のウィンドウである場合に、該新規のウィンドウを前記タスク通知部で取得したタスク定義情報と関連付けるための情報を入力する画面を表示し、該画面上で情報の入力がなされると、該入力情報に基づいて、前記新規のウィンドウを対応するタスク定義情報と関連付けるタスク−ウィンドウ関連付け部と、
前記オペレーティングシステムから出力されるメッセージの内容を検出するメッセージ検出部と、
前記メッセージ検出部にて検出されたメッセージの内容に基づいて、前記上位および下位のウィンドウのそれぞれにおけるアクティブ状態および非アクティブ状態を判断し、前記メッセージに含まれるウィンドウ識別情報と前記ウィンドウ階層検索部にて生成されたアプリケーション毎の階層情報とに基づいて、アクティブ状態または非アクティブ状態になったウィンドウがどのアプリケーションに属するかを判断し、アプリケーション毎に、前記上位および下位のウィンドウのアクティブとなった期間を集計してアプリケーションの稼動時間を求めるウィンドウメッセージフィルタリング部と、
前記タスク−ウィンドウ関連付け部により関連付けられた上位のウィンドウとタスク定義情報との対応関係に基づいて、タスク単位に、前記ウィンドウメッセージフィルタリング部で求めたアプリケーションの稼動時間を前記作業実績情報として前記サーバに登録する実績通知部と、を有する、作業者端末。
【請求項１４】
前記実績通知部は、前記作業実績情報を予め与えられた暗号鍵で暗号化する、請求項１３に記載の作業者端末。
【請求項１５】
前記オペレーティングシステムは、表示されたウィンドウ上で現在処理されているファイルの識別情報および該ファイルをその保存先から読み出して実行するのに必要なファイルパスの情報を含む前記メッセージを出力し、
前記メッセージに含まれるファイルの識別情報に基づいて、現在表示されているウィンドウに関するファイルを列挙するオープンファイル検出部と、
前記オープンファイル検出部で検出したファイルに関するファイルパスの情報を前記メッセージから取得するファイル検索部と、
前記オープンファイル検出部にて検出されたファイルと前記ファイル検索部にて取得したファイルパスの情報とに基づいて、前記オペレーティングシステムによって実行されたアプリケーションの実行パスと該アプリケーションに関するファイルをペアにして特定の画面上にショートカットを作成するショートカット作成部と、をさらに有する、請求項１３に記載の作業者端末。
【請求項１６】
前記タスク定義部は、前記タスクに関する優先順位を示す情報を含む前記タスク定義情報を前記サーバに登録し、
前記タスク通知部は、前記サーバから取得したタスク定義情報を、該タスク定義情報に含まれるタスクに関する優先順位を示す情報に基づいて優先順位の高い順にソートする、請求項１３に記載の作業者端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発などのプロジェクトにおける作業の進捗状況などの情報を管理するプロジェクト管理システムに関する。
【背景技術】
【０００２】
作業の進捗状況を随時把握して、プロジェクトの進行状況を正確に把握したいという要望がある。プロジェクトの管理方法として、作業者の報告に基づいて進捗状況を管理する手法がある。しかし、複数のタスクを実行している場合に、作業者が正確に各タスクの作業時間を計上し報告するのは困難である。また、管理者が、どのタスクにどのくらいの作業時間を要したのかを、報告者の報告に基づいて計算するため、不正確な報告があった場合に、新規のタスクの工数を見積もることが困難である。このようなことから、作業者の報告に基づく管理方法では、作業者の実績を正しく判断できないために、プロジェクトの進行状況を正確に把握できない場合がある。
【０００３】
そこで、作業者の報告によらず、作業の進捗状況を管理することのできるシステムが提案されている。
【０００４】
特許文献１には、要求仕様ライブラリ、プロジェクト対応データベース、およびルールライブラリを備えるソフトウェア開発プロセス管理支援システムが記載されている。要求仕様ライブラリには、機能分割され形式化されてモジュール単位に表された機能仕様と、この機能仕様に対応して形式化されたプログラム仕様群と、これら機能仕様およびプログラム仕様群に基づいて計算された機能量とが格納される。プロジェクト対応データベースには、ソフトウェア開発のプロジェクトに対応するように要求仕様ライブラリを用いて作成された仕様書、プログラムおよびプロジェクトに対応して計算された総機能量が格納される。ルールライブラリには、要求仕様ライブラリの機能仕様およびプログラム仕様群からプロジェクト対応データベースの仕様書およびプログラムを作成するための形式的ルールと、要求仕様ライブラリの機能量およびプロジェクト対応データベースの総機能量を計算するための計算ルールとが予め格納されている。このソフトウェア開発プロセス管理支援システムでは、プロジェクト対応データベースの総機能量に基づいてソフトウェア開発プロセスが管理される。
【０００５】
特許文献２には、業務時間管理サーバと業務時間管理装置からなる業務時間管理システムが記載されている。業務時間管理サーバは、プロジェクトへの担当者のログインを管理するログイン管理部と、プロジェクトに関する担当者の業務実績を受信してプロジェクト毎に格納する業務実績格納部とを有する。業務時間管理装置は、プロジェクトへの担当者のログインがログイン管理部により許可された場合に、プロジェクトに属する業務を実施するためのプログラムを実行するプログラム実行部と、プログラムの実行に伴って生じるタスクの稼動時間を計測し、計測時間を担当者の業務実績として業務時間管理サーバに送信する計測部とを有する。この業務時間管理システムでは、担当者が業務を実施するためのプログラムを実行すると、タスクの稼動時間がその担当者の業務実績として業務実績格納部に格納される。業務実績格納部には、担当者の業務実績がプロジェクト毎に格納されるので、プロジェクト毎の業務実績管理が可能である。
【０００６】
特許文献３には、アプリケーションの起動やウィドウの切り替えを示すウィンドウメッセージを調べたり、業務項目についてのボタンがクリックされたことを検出したりすることで、どのようなウィンドウをどのくらい表示したかを記録するシステムが記載されている。このシステムでは、記録した情報に基づいて、業務内容を把握し、作業時間データを得ることができる。
【特許文献１】特開2004-280295号公報
【特許文献２】特開2004-302796号公報
【特許文献３】特開2002-107473号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来のシステムには、以下のような問題がある。
【０００８】
特許文献１に記載のシステムにおいては、ソフトウェア開発量を各モジュールの機能の量から試算しているだけで、実際の作業者の実績などを把握するようにはなっていないため、正確な作業実績に基づいた開発完了期日を予測することは困難である。
【０００９】
特許文献２に記載のシステムにおいては、プロジェクト毎にログインを行い、ログイン後に編集できる業務リソースとログイン後に実行できる業務アプリケーションを用いて、業務時間を計測している。しかしながら、プロジェクト毎にログインを行うことは、作業者にとって煩わしい。また、このシステムでは、作業者が、ログイン後に実行できる業務アプリケーション以外のアプリケーションを用いた場合には、業務時間を計測することはできない。このように、作業者の利用できるアプリケーションが、ログイン後に実行できる業務アプリケーションに制限されるため、作業者は、業務遂行時に使用するアプリケーションを自由に選択することができない。
【００１０】
特許文献３に記載のシステムにおいては、ウィンドウタイトルを用いて作業時間を計測している。しかし、階層的なウィンドウによって構成されるアプリケーションについては、下位のウィンドウのタイトルまで管理するようにはなっていない。このため、下位のウィンドウを用いた作業時間につては計測されず、その分、計測した作業時間が実作業時間よりも少なくなり、不正確なものとなっていた。
【００１１】
本発明の目的は、上記各問題を解決し、タスクに関する作業を実施するために、作業者が所望のアプリケーションを利用することができ、かつ、プロジェクト毎に、作業者の進捗状況を正確に把握することのできるプロジェクト管理システムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明のプロジェクト管理システムは、
サーバと、該サーバと接続される管理者端末および作業者端末とを有するプロジェクト管理システムであって、
前記管理者端末は、
プロジェクトを識別可能なプロジェクト識別情報と、該プロジェクトに関する作業を行うためのタスクを識別可能なタスク識別情報と、作業者を識別可能な作業者識別情報とを含むタスク定義情報の入力がなされると、該タスク定義情報を前記サーバに登録するタスク定義部と、
前記サーバに登録された作業実績情報を取得するタスク管理部と、を有し、
前記作業者端末は、
前記サーバに登録されるタスク定義情報を監視し、予め与えられた作業者識別情報と合致する作業者識別情報を含むタスク定義情報が前記サーバに登録されると、該登録されたタスク定義情報を取得するタスク通知部と、
アプリケーションを実行する旨の入力がなされると、該アプリケーションを実行するとともに、該実行したアプリケーションによって表示されたウィンドウに関するアクティブ状態および非アクティブ状態をそれぞれ示す情報を、該ウィンドウを識別可能なウィンドウ識別情報と関連付けてメッセージとして出力するオペレーティングシステムと、
前記アプリケーションによって上位のウィンドウと該上位のウィンドウに属する少なくとも１つの下位のウィンドウが表示された場合に、該上位および下位のウィンドウそれぞれのウィンドウ識別情報を上位および下位の関係に従って複数の階層に位置付けた階層情報を生成するウィンドウ階層検索部と、
前記上位のウィンドウがタスクとの関連付けのなされていない新規のウィンドウである場合に、該新規のウィンドウを前記タスク通知部で取得したタスク定義情報と関連付けるための情報を入力する画面を表示し、該画面上で情報の入力がなされると、該入力情報に基づいて、前記新規のウィンドウを対応するタスク定義情報と関連付けるタスク−ウィンドウ関連付け部と、
前記オペレーティングシステムから出力されるメッセージの内容を検出するメッセージ検出部と、
前記メッセージ検出部にて検出されたメッセージの内容に基づいて、前記上位および下位のウィンドウのそれぞれにおけるアクティブ状態および非アクティブ状態を判断し、前記メッセージに含まれるウィンドウ識別情報と前記ウィンドウ階層検索部にて生成されたアプリケーション毎の階層情報とに基づいて、アクティブ状態または非アクティブ状態になったウィンドウがどのアプリケーションに属するかを判断し、アプリケーション毎に、前記上位および下位のウィンドウのアクティブとなった期間を集計してアプリケーションの稼動時間を求めるウィンドウメッセージフィルタリング部と、
前記タスク−ウィンドウ関連付け部により関連付けられた上位のウィンドウとタスク定義情報との対応関係に基づいて、タスク単位に、前記ウィンドウメッセージフィルタリング部で求めたアプリケーションの稼動時間を前記作業実績情報として前記サーバに登録する実績通知部と、を有する。
【００１３】
上記構成によれば、管理者によって入力されたタスク定義情報は、タスク定義部によってサーバに登録される。このように、管理者は、所望のタスク定義情報をサーバに登録することができる。一方、作業者の使用する作業者端末では、作業者宛のタスク定義情報がサーバに登録されると、タスク通知部によって、その登録されたタスク定義情報が読み出される。作業者は、こうして読み出されたタスク定義情報を参照して、所望のアプリケーションを実行する。
【００１４】
作業者端末において、アプリケーションはオペレーティングシステムによって実行される。オペレーティングシステムは、実行したアプリケーションによって表示されたウィンドウに関するメッセージを出力する。このメッセージは、ウィンドウの状態（アクティブ状態または非アクティブ状態）を示す情報とウィンドウ識別情報とを含む。よって、メッセージの内容を調べることで、表示されたウィンドウがアクティブ状態または非アクティブ状態のいずれの状態にあるかを知ることができる。加えて、ウィンドウがアクティブ状態となっている期間を調べることで、そのウィンドウにおける作業時間を知ることができる。
【００１５】
アプリケーションによって、上位のウィンドウと下位のウィンドウとからなる複数のウィンドウが表示された場合には、ウィンドウ階層検索部によって、表示された上位および下位のウィンドウそれぞれのウィンドウ識別情報を上位および下位の関係に従って複数の階層に位置付けた階層情報が生成される。この階層情報は、アプリケーション毎に生成される。
【００１６】
上位のウィンドウがタスクとの関連付けのなされていない新規のウィンドウである場合には、タスク−ウィンドウ関連付け部によって、該新規のウィンドウをタスク定義情報と関連付けるための情報を入力する画面が表示される。作業者は、この表示画面上で、新規のウィンドウをタスク定義情報と関連付けるための必要な情報を入力する。タスク−ウィンドウ関連付け部は、作業者が入力した情報に基づいて、新規のウィンドウを対応するタスク定義情報と関連付ける。タスク定義情報との関連付けは、上位のウィンドウに対してのみ行われる。下位のウィンドウについては、タスク定義情報との関連付けを行う必要はない。
【００１７】
ウィンドウメッセージフィルタリング部が、メッセージの内容とアプリケーション毎の階層情報とに基づいて、アクティブ状態または非アクティブ状態になったウィンドウがどのアプリケーションに属するかを判断し、アプリケーション毎に、上位および下位のウィンドウのアクティブとなった期間を集計してアプリケーションの稼動時間を求める。このように、作業者は、下位のウィンドウをタスク定義情報と関連付けるための情報入力を行わなくても、アプリケーション毎に、下位のウィンドウのアクティブとなった期間が自動的に集計される。こうして、アプリケーションの稼動時間が計測される。計測されたアプリケーションの稼動時間は、実績通知部によって、タスク単位に、作業実績情報としてサーバに登録される。
【００１８】
以上のように、作業者は、通知されたタスクに関する作業を、所望のアプリケーションを利用して実施することが可能であり、プロジェクト毎にログインを行う必要もない。
【００１９】
また、作業者端末上で表示されるウィンドウと管理者が指定したタスクの関連付けを行うことで、ウィンドウのアクティブな期間が自動的に計測され、集計されて、アプリケーションの稼動時間として計上されるので、作業者による作業時間の報告は必要ない。
【００２０】
階層的なウィンドウによって構成されるアプリケーションについても、下位のウィンドウを含めた作業実績の計上が可能である。
【発明の効果】
【００２１】
本発明によれば、作業時間をタスク単位に自動計測することができるので、信頼性の高い、かつ、正確な作業実績情報を取得することができる。
【００２２】
階層的なウィンドウによって構成されるアプリケーションについても、下位のウィンドウを含めた作業実績の計上が可能であるので、従来のものより、正確な作業実績を計上することができる。
【００２３】
加えて、下位のウィンドウについては、タスクとの関連付けを行う必要がないので、その分、操作が簡単である。
【発明を実施するための最良の形態】
【００２４】
次に、本発明の実施形態について図面を参照して説明する。
【００２５】
図１は、本発明の一実施形態であるプロジェクト管理システムの構成を示すブロック図である。
【００２６】
図１に示すプロジェクト管理システムは、サーバと、このサーバと相互に通信可能な作業用クライアントおよび管理用クライアントとを有する。図１に示されていないが、サーバ、作業用クライアント、および管理用クライアントのそれぞれは、その基本構成として、プログラムや情報などを蓄積する記憶部、キーボードやマウスなどの入力部、ＣＲＴやＬＣＤなどの表示部、プリンタなどの出力部および入力部からの入力を受け付けて、記憶部、表示部、出力部の各部の動作を制御する制御部を有する。図１には、サーバ、作業用クライアント、および管理用クライアントのそれぞれの主要な部分が示されている。
【００２７】
図１において、サーバは、レポジトリ１０９を有する。作業用クライアントは、作業者コンピュータであって、実績通知部１０１、タスク通知部１０２、タスク−ウィンドウ関連付け部１０３、ウィンドウメッセージフィルタリング部１０４、ウィンドウ階層検索部１０５、ウィンドウメッセージ検出部１０６、アプリケーションウィンドウ部１０７、オペレーティングシステム（ウィンドウフレームワーク）１０８、ショートカット作成部１１０、オープンファイル検出部１１１、およびファイル検索部１１２を有する。管理用クライアントは、管理者コンピュータであって、タスク定義部２００、タスク管理部２０１、およびタスク完了承認部２０２を有する。
【００２８】
以下、作業者コンピュータ、管理者コンピュータおよびサーバの各部の動作を、タスクの新規定義からタスク完了後の承認までの一連の処理に沿って説明する。
【００２９】
タスク定義部２００は、タスクを定義する部分である。タスクの定義に必要な情報は、管理者が、管理者コンピュータの入力部を通じて入力する。この定義情報の入力の際、タスク定義部２００が、定義情報を入力するためのタスク定義画面情報を管理者コンピュータの記憶部から読み出して表示部に表示する。タスク定義画面には、タスクを定義するのに必要な入力項目（ユーザ名、プロジェクトＩＤ、タスクＩＤ、タスク名、プライオリティ、期日、説明のデータなど項目）が設けられている。管理者は、タスク定義画面上で、必要な項目の入力を行う。タスク定義部２００にて定義されたタスクは、一旦、レポジトリ１０９に格納される。
【００３０】
タスク通知部１０２は、常時、レポジトリ１０９に格納されるタスクを監視しており、自分宛（作業者宛（ユーザ名））のタスクが新たに格納された場合に、そのタスクを取得して作業者コンピュータの表示部へ表示する。ユーザ名は、作業者コンピュータを起動する際に作業者によって与えられる。タスク通知部１０２は、その与えられたユーザ名を参照して自分宛のタスクを判断する。作業者は、表示部に表示された新しいタスクに応じて作業を始めるために、作業者コンピュータの入力部を通じて、所望のアプリケーションを立ち上げるための入力操作を行う。
【００３１】
オペレーティングシステム１０８は、アプリケーションを実行する旨の入力がなされると、該アプリケーションを実行するとともに、該実行したアプリケーションによって表示されたウィンドウに関するアクティブ状態および非アクティブ状態をそれぞれ示す情報を、該ウィンドウを識別可能なウィンドウ識別情報と関連付けてメッセージとして出力する。メッセージには、この他、表示されたウィンドウ上で現在処理されているファイルの識別情報（ファイル名など）および該ファイルをその保存先から読み出して実行するのに必要なファイルパスの情報など、様々な情報が含まれる。アプリケーションウィンドウ部１０７は、その入力操作に応じて、対応するアプリケーソンのウィンドウを表示部に表示する。
【００３２】
アプリケーションウィンドウ部１０７にて、新規のアプリケーションのウィンドウが立ち上げられた場合は、その新規のウィンドウはタスクと関連づけられていない。タスク−ウィンドウ関連付け部１０３は、新規のウィンドウが表示された際に、そのウィンドウをタスクと関連付けるためのタスク／ウィンドウ関連付け画面情報を作業者コンピュータの記憶部から読み出して表示部に表示する。作業者は、入力部を通じて、表示されたタスク／ウィンドウ関連付け画面上でタスクとウィンドウを関連付けるための入力操作を行う。タスク／ウィンドウ関連付け画面には、タスクとウィンドウを関連付けるのに必要な入力項目が用意されており、作業者は、その入力項目に情報を入力する。
【００３３】
表示されたウィンドウが新規のウィンドウであるか否かの判断は、ウィンドウメッセージフィルタリング部１０４が行う。ウィンドウメッセージフィルタリング部１０４は、ウィンドウ階層検索部１０５とウィンドウメッセージ検出部１０６から取得したウィンドウ情報に基づいて、新規のウィンドウであるか否かの判断を行う。アプリケーションウィンドウ部１０７にて新規にウィンドウが立ち上がったときに、ウィンドウ階層検索部１０５およびウィンドウメッセージ検出部１０６が、オペレーティングシステム１０８が出力するウィンドウメッセージを検知する。この検知したウィンドウメッセージの内容から、新規のウィンドウであるか否かの判断を行うことができる。
【００３４】
一旦タスクと関連付けられたウィンドウのタイトルには、ファイル名とそのファイルを作成しているアプリケーション名が記載される。このウィンドウのタイトルは、タスクの完了まで変更されない。よって、複数のタスクを作業している場合でも、ウィンドウのタイトルをキーとして、各ウィンドウのタイトルのフォーカス時間を計上することで、各ウィンドウの全作業時間を集計することが可能である。仮に、１つのタスクが複数のアプリケーションによって遂行されている場合は、１つのタスクに複数のウィンドウを割り当て、各ウィンドウの作業時間の合計が、そのタスクの遂行時間となる。
【００３５】
オープンファイル検出部１１１は、作業者コンピュータ上で現在開いているファイルを列挙することができる。ファイル検索部１１２は、現在開いているファイルのファイル名からファイルパスを列挙することができる。ショートカット作成部１１０は、オープンファイル検出部１１１にて列挙されたファイルとファイル検索部１１２で列挙されたファイルパスとに基づいて、各アプリケーションの実行パスと、各アプリケーションの編集ファイルをペアにして、表示部上に表示されたデスクトップ画面上にショートカットを作成する。
【００３６】
作業者コンピュータでは、上記のような各部の動作により、タスクの遂行時間が集計される。そして、作業者が入力部を通じてタスクを終了する旨を入力すると、実績通知部１０１が、集計結果（作業時間）をレポジトリ１０９に格納する。
【００３７】
タスク管理通知２０１は、レポジトリ１０９から、作業の終了したタスクを検索し、管理者コンピュータの表示部にその検索結果を表示する。管理者は、タスクのアウトプットを検査し、終了していると判断した場合には、タスク完了承認部２０２による、承認作業を実行させる。この承認結果は、タスク管理部１１１を通じて、レポジトリ１０９に登録される。レポジトリ１０９には、承認済み作業タスクが記録され、作業者は自身の実績として、いつでも履歴を見ることができるとともに、履歴書として取り出すことが可能である。取り出された履歴書は、別のプロジェクト参加のための指標として利用できる。
【００３８】
次に、本実施形態のプロジェクト管理システムの動作をさらに具体的に説明する。
【００３９】
［タスク定義／通知］
図２に、タスクの追加を作業者へ通知する際のタスク通知部１０２およびタスク定義部２００の動作を模式的に示す。図２には、管理者によって定義された新規タスクがタスク定義部２００によってレポジトリ１０９に格納され、その格納されたタスクがタスク通知部１０２によって読み出される様子が示されている。タスクは、ユーザ名、プロジェクトＩＤ、タスクＩＤ、タスク名、プライオリティ、期日、説明のデータなど項目から構成される。
【００４０】
作業者は、タスク通知部１０２を利用し、定期的にレポジトリを検索する。タスク通知部１０２は、作業者のタスクがレポジトリ１０９に追加されているかどうか確認し、もし追加されていれば、作業中のタスクと作業予定のタスク、および新規タスクのプライオリティをソートする。
【００４１】
図３に、タスク通知部１０２によって行われるソートの仕組みを模式的に示す。図３に示す画面は、タスク通知画面の一例である。図３に示すように、タスク通知部１０２は、作業者に対して、新しいプライオリティ順でタスクを表示する。具体的には、タスク通知部１０２は、新規タスクよりも優先順位の低いタスクがある場合は、そのタスクについて、期日の再計算（延長）を行って、再計算により得られた新しい期日を表示する。再計算手法は、新規タスクの登録日および期日から作業日数を割り出し、その作業日数を新規タスクより優先度の低いタスクの期日に加算する。これにより、優先度の高いタスクから順番に実行される。既存のタスクに新規タスクと同じプライオリティがあった場合には、期日によって順位を決定する。例えば、同じプライオリティで期日が短いタスクと期日の長いタスクがある場合、期日が短いタスクの優先度が、期日の長いタスクの優先度より高くなるように定義し、期日の再計算を行う。別のプロジェクトのタスクが新規に追加された場合は、対応するプロジェクトにおいて、上記のようなソートを行い、他のプロジェクトにおける期日の変更は行わない。
【００４２】
なお、ここでは、タスク通知部１０２は、定期的にレポジトリ１０９を監視する、としたが、ＲＳＳによる配信や、新規タスクの追加イベントに応じて、タスク通知部１０２へタスクを通知するPush型配信を、タスク通知部１０２によるタスク通知に適用してもよい。
【００４３】
［ウィンドウ／タスク関連付け］
図４に、作業画面とタスクの関係を模式的に示し、図５に、タスク／ウィンドウ関連付け画面の一例を示し、図６に、作業画面の一構成例を示す。
【００４４】
図４に示すように、作業者は、与えられた複数のタスクを遂行するために、文書作成アプリケーションや開発アプリケーションを利用する。各アプリケーションはウィンドウを持ち、それぞれのウィンドウタイトルには、作業中のドキュメント名や実装中のモジュール名が表示される。一方、管理者は、複数のプロジェクトを平行して管理する場合、例えば、xxxプロジェクトのタスクの進捗状況やyyyプロジェクトの進捗状況を把握する必要がある。すなわち、複数の作業者が実行する複数のアプリケーションと、複数のプロジェクトを構成する複数のタスクを関連付ける必要がある。
【００４５】
図５を参照して、その関連付けの手法について説明する。図５に示すタスク／ウィンドウ関連付け画面は、タスク−ウィンドウ関連付け部１０３によって提示される画面である。
【００４６】
タスク−ウィンドウ関連付け部１０３は、作業者コンピュータ上で起動されるアプリケーションを監視し、タスクに関連付けられていないアプリケーションが起動された場合には、作業者に対して、どのタスクに関連したアプリケーションであるか問い合わせを行うウィンドウ（タスク／ウィンドウ関連付け画面）を表示する。このウィンドウには、タスクの横にラジオボタンを設けてあり、作業者がそのラジオボタンを選択すると、タスクの下にアプリケーションタイトル名が登録される。図５には、「yyy説明図.ppt - Microsft PowerPoint」というアプリケーションタイトル名が、「PRJ-1 R-0030 RRR設計(Priority 1)」に割り当てられる様子が示されている。
【００４７】
タスク／ウィンドウ関連付け画面は、管理者が想定していないタスクを作業者が新規に追加できるように、新規タスク項目も選択できるようになっている。新規タスク項目を選択した場合には、作業者が自らタイトル名と対象プロジェクトを指定する必要がある。この場合、タスク／ウィンドウ関連付け画面上にプロジェクト名リストが表示される。タスク通知部１０２がレポジトリ１０９に格納された全てのプロジェクト名を取得し、取得しプロジェクト名リストをタスク-ウィンドウ関連付け部１０３に通知する。タスク-ウィンドウ関連付け部１０３は、タスク通知部１０２から通知されたプロジェクト名リストをタスク／ウィンドウ関連付け画面上に表示する。
【００４８】
作業者は、プロジェクト名リストの中から適切なものを選択することが可能である。また、各タスクには、チェックボックスが設けてあり、タスクが終了した場合に、作業者がチェックをつけることができる。チェックボックスがチェックされると、タスク-ウィンドウ関連付け部１０３は、実績通知部１０１に対してタスク終了通知のイベントを送信する。
【００４９】
図６には、作業者のコンピュータ上で起動しているアプリケーションの画面として、「xxxプロジェクトタスク１」の作業画面１ａと「yyyプロジェクトタスク３」の作業画面１ｂとが示されている。作業者は、１つのタスクを遂行するために、複数のアプリケーションを起動することがある。また、作業者は、別のタスクを遂行するために、複数のアプリケーションを起動することがある。各アプリケーションは、作業内容をウィンドウタイトルに表示する機能を持っている。例えば、文書作成アプリケーションであれば、作成している文書名とアプリケーション名をタイトルに表示する。作業画面１ａの場合、文書作成アプリケーションのウィンドウタイトルに、「xxxプロジェクト基本設計書」というファイル名と「Word」というアプリケーション名が表示されており、作業者が文書を作成していることがわかる。また、同じタスク１において、開発アプリケーションのウィンドウタイトルには、「Java - ppp.java EclipseSDK」というファイル名とアプリケーション名が表示されている。さらに、作業画面１ａには、作業中のアプリケーション内で開発アプリケーションの作業を進めるために、「設定」という、ウィンドウタイトルを持つウィンドウが表示されている。これは、作業者が１つのアプリケーションで作業を行う場合であっても、作業するウィンドウは複数表示されることがあるため、作業中のウィンドウタイトルが頻繁に変わることを示している。
【００５０】
［ウィンドウとタスクの自動割り付け］
上記のウィンドウ／タスク関連付けでは、ウィンドウタイトルとタスクを関連付けているため、頻繁にウィンドウタイトルが変更されると、そのつど、作業者は、タスクとウィンドウを関連付けるための入力操作を行う必要がある。そのような作業は、作業者にとって負担となる。作業者の負担を軽減するために、タスク-ウィンドウ関連付け部１０３は、特定のウィンドウについて、ウィンドウとタスクの関連付けを自動で行う。
【００５１】
以下、タスク-ウィンドウ関連付け部１０３によるウィンドウとタスクの自動割り付けの仕組みを説明する。
【００５２】
図７に、ウィンドウメッセージ検知部１０６によって検知される、作業者コンピュータのオペレーティングシステム上で流れているウィンドウメッセージの一例を示す。ウィンドウメッセージには、マウスイベントやキーボードイベント、メニューが選択されたことを示すイベント、再描画領域が変更されたことを示すイベント、ウィンドウがアクティブになったことを示すイベント、非アクティブになったことを示すイベントなど、種類のイベントがある。ウィンドウメッセージは、ウィンドウＩＤとメッセージの内容が関連付けた情報を含む。作業者が、アプリケーション上での作業を実行すると、必ず、なんらかのウィンドウがアクティブになったことを示すメッセージがオペレーティングシステム上に流れる。ウィンドウメッセージ検知部１０６は、このオペレーティングシステム上に流れるウィンドウメッセージを検知する。
【００５３】
図８に、「Java - ppp.java - Eclipse SDK」というウィンドウタイトルを持つアプリケーションに関する階層構造の一例を示す。このアプリケーションは、複数の階層化されたウィンドウを生成しており、ウィンドウ階層検索部１０５は、その階層構造に従って、アクティブになったウィンドウがどのアプリケーションから生成されたものであるかを判定することができる。階層化された各ウィンドウＩＤは、図７で示したメッセージのウィンドウＩＤと一致しており、ウィンドウＩＤに基づいて、アクティブになったウィンドウがどのアプリケーションに属しているのかを判定することができる。
【００５４】
ウィンドウメッセージフィルタリング部１０４は、ウィンドウメッセージ検出部１０６にて得られるウィンドウメッセージ情報（ウィンドウＩＤを含む）およびウィンドウ階層検索部１０５にて得られるウィンドウ階層情報（ウィンドウＩＤを含む）を用いて作業中のコンピュータでアクティブになったウィンドウがどのアプリケーションに属するものかを判断する。
【００５５】
［フィルタリング／時間計上］
図９に、ウィンドウメッセージフィルタリング部１０４のフィルタリングを模式的に示す。ウィンドウメッセージフィルタリング部１０４は、ウィンドウメッセージ検出部１０６にて得られるウィンドウメッセージ情報およびウィンドウ階層検索部１０５にて得られるウィンドウ階層情報を用いて、作業中のコンピュータでアクティブになったウィンドウがどのアプリケーションに属するものかを判断し、アプリケーション毎に、各ウィンドウのアクティブな時間を計測することで、各アプリケーションのアクティブだった時間を計上する。
【００５６】
図１０に、ウィンドウメッセージフィルタリング部１０４のフィルタリング手順を示す。ステップＳ１で、ウィンドウメッセージ検出部１０６からメッセージを受信する。ステップＳ２で、ウィンドウがアクティブになったメッセージとウィンドウが非アクティブになったメッセージのみを選択する。ステップＳ３で、メッセージからアクティブになったウィンドウＩＤを取得する。ステップＳ４で、ウィンドウ階層検索部１０５で求められた階層構造を祖先方向に辿り、アプリケーションのウィンドウＩＤを取得する。ステップ５で、アプリケーションのウィンドウＩＤに関連付けて、アクティブになった時刻を記録する。非アクティブのウィンドウメッセージが生成された場合にも、ステップＳ１〜Ｓ５の処理を実行し、非アクティブになった時刻を記録する。全てのウィンドウにおいて、アクティブな状態から、非アクティブの状態に遷移するため、アクティブになった時刻と非アクティブになった時刻のペアを計上することで、アプリケーションのアクティブな時刻（アプリケーション稼動時間）を求めることができる。
【００５７】
以上のようにして、ウィンドウメッセージフィルタリング部１０４が、作業者コンピュータ上のアプリケーション稼動時間を計上し、タスク−ウィンドウ関連付け部１０３が、複数のアプリケーションの稼働時間を計上することで、各タスクの作業時間を計上することができる。
【００５８】
［作業者実績登録］
各タスクの作業時間は、実績通知部１０１によって計上され、レポジトリ１０９に格納される。
【００５９】
図１１に、実績通知部１０１による作業者実績登録を模式的に示す。作業者の秘密鍵は予め作業者コンピュータの記憶部に格納されている。実績通知部１０１は、その秘密鍵を用いて、各作業日における各タスクの作業時間を集計したデータに署名を行い、署名したデータをレポジトリ１０９に格納する。各作業者の署名をつけることで、作業時間の改ざんを防止する。各タスクの作業時間データは、プロジェクトＩＤ、タスクＩＤとその日の作業時間、完了状態などの情報を含む。また、タスク−ウィンドウ関連付け部１０３から、タスクの完了通知があった場合には、完了状態のフラグをＯＮにする。
【００６０】
［タスク管理］
図１２に、タスク管理部２０１によるタスク管理を模式的に示す。タスク管理部２０１は、作業者が登録したタスク作業時間データをレポジトリ１０９から取得し、プロジェクトごとに分類する。タスク管理部２０１は、管理者コンピュータの表示部に、図１２に示すような、各プロジェクトの管理画面を表示する。各プロジェクトの管理画面では、プライオリティと時間を軸にしたグラフが表示される。このグラフでは、作業実績時間と作業予定時間とが同時に表示されており、管理者は、作業者がどのタスクにどれだけ時間をかけているのかを容易に把握することが可能である。
【００６１】
ここでは、タスクの期日を設定する際に、タスクを割り当てた日と期日から作業日数を計算し、１日あたりの作業時間を８時間としてタスクの期日を割り当てている。この割り当てたタスクの期日が、図１２中の点線で示す作業予定時間である。一方、作業実績を１時間ごとに矩形で区切って作業予定時間の枠に重ねて表示しており、これにより、管理者は、作業者がどのタスクにどれだけ時間をかけているかを判断することができ、各タスクの進捗率を把握することができる。
【００６２】
タスクの進捗状況をより的確に判断するために、タスク管理部２０１により次のような表示処理を実行する。作業時間が予定時間をオーバーした場合には、そのタスクを赤く表示し、他のタスクの作業予定時間を、オーバーした時間を考慮して後ろにずらして表示する。作業時間が予定時間よりも早く終わった場合には、そのタスクを青く表示し、早く終わった時間分だけ、他のタスクの作業予定時間を前にずらして表示する。なお、この場合の処理はいずれも、タスクの優先順位が高いものから順に実行する処理を仮定している。作業者によりタスクが完了したとの通知をレポジトリ１０９に登録されたデータから検出すると、そのタスクを緑色に表示し、作業が完了したことを管理者へ通知する。
【００６３】
管理画面上で、タスク名をクリックすると、対応するタスクの詳細内容を表示することができる。詳細内容は、タスクＩＤ、成果目標ＵＲＬ、優先順位、作業予定時間、作業実績時間などの情報を含む。管理者は、優先順位と作業予定時間を自由に変更することができる。優先順位の変更は、管理画面上に反映され、各タスクの作業時間エリアが優先度の高いものが左上へソートされて配置される。タスクの作業予定時間を変更した場合は、そのタスクより順位の低いタスクの作業予定時間が、その変更した時間分だけ、右にずれて表示される。これらの表示の変更も、タスク管理部２０１により行われる。
【００６４】
［タスク完了承認］
図１３に、タスク完了承認部２０２のタスク完了承認の動作を模式的に示す。作業が完了したタスクについて、管理者がチェックを行い、問題がなければ、成果目標ＵＲＬにコメントを追加し、レポジトリ１０９に登録する。承認データは、プロジェクトＩＤ、タスクＩＤ、作業時間、成果実績ＵＲＬなどの情報を含む。タスク完了承認部２０２は、あらかじめ登録された承認者の秘密鍵を用いて承認データを署名し、署名した承認データをレポジトリ１０９に登録する。これにより、登録データの改ざんが困難となる。
【００６５】
作業者は、レポジトリから自身の作業に関する実績を検索し、実績表として取り出すことができる。この際に、署名済み作業時間データや署名済み承認データに改ざんがあった場合には、その旨を通知し、実績表から取り除かれる。
【００６６】
図１４に、タスク実績表の一例を示す。タスク実績表は、タスク内容と作業時間、作業者、承認者の情報を含む。タスク内容は、成果目標ＵＲＬからプロジェクト名とタスクの内容を記述した文章と、承認者のコメントを足し合わせた内容である。タスク実績表を取り出した時点で、さらに作業者の秘密鍵でダイジェスト値を計算し、作業者の証明書を付加することで、実績表自体の改ざんが行われていないことを保障する。
【００６７】
［オープンファイル検出］
図１５に、オープンファイル検出部１１１によって検出されるオープンファイルの一覧を示す。オープンファイル検出部１１１は、作業者がアプリケーションを開いている最中に、システムが現在開いているファイルを検索する。検索結果のデータは、ファイルのＩＤと、そのファイルを利用するプロセス名と、現在開いているファイルの情報を含む。
【００６８】
［ショートカット作成］
図１６に、ショートカット作成部１１０によるショートカット作成手順を示す。ステップＳ１１で、タスク-ウィンドウ関連付け部１０３からパスを除くファイル名とアプリケーション名（図５参照）を取得する。ステップＳ１２で、オープンファイル検出部１１１から、先に取得したファイル名「ｘｘｘプロジェクト基本設計書.doc」とファイル名が合致するパス「F:\ｘｘｘプロジェクト基本設計書.doc」を取得する。ステップＳ１３で、プロセス名「WINWORD.EXE」をキーにして、ファイル検索部１１２が、アプリケーションのパスを取得する。ステップＳ１４で、タスクが複数のアプリケーションから構成されることを想定して、タスク名のディレクトリ「PRJ-1  R-0030 RRR設計」をデスクトップに作成する。ステップＳ１５で、先に求められたアプリケーションのパスと編集対象のファイルのパスを引数にして「C:\Program Files\Microsoft\Office\Word\winword.exe F:\ｘｘｘプロジェクト基本設計書.doc」というショートカットを作成する。
【００６９】
図５に示した画面上で、タスク名をクリックすると、ショートカットを格納するフォルダが表示される。また、タスクを構成するアプリケーションタイトル名をクリックすると、ショートカットを起動する。これによって、作業者が次の日に作業を再開する場合にも、作業ファイルを検索する手間を省くことができる。特に、タスクが複数のアプリケーションによって遂行される場合でも、それぞれのショートカットを作成することで、実在ファイルの場所によらず、作業を再開することが可能である。このショートカットは、タスクにウィンドウを関連付けたときに自動的に作成される。
【００７０】
本実施形態のプロジェクト管理システムによれば、以下のような効果を奏する。
【００７１】
第一の効果は、作業遂行時間をタスクごとに自動的に分類して登録できることである。その理由は、あらかじめタスクとウィンドウタイトルを割り当てておくことで、作業者コンピュータに常駐したモジュールが、ウィンドウがフォーカスを持っている時間を計測し、タスクに計上するからである。
【００７２】
第二の効果は、作業者が全てのウィンドウに対してタスクと関連付ける必要がないことである。その理由は、ウィンドウハンドルの親子関係（上位および下位の関係）をオペレーティングシステムのウィンドウ管理フレームワークから取得し判定することで、あるアプリケーションが生成するウィンドウなのか、別のアプリケーションが起動したために生成されるウィンドウなのかを判別できるからである。
【００７３】
第三の効果は、管理者のタスク完了予測時間のずれを最小にできることである。その理由は、作業者の正確な作業時間を元に、予定工数と実績工数を比較しつつ、作業の困難さ、担当者の過去の実績をもとに再考することができるからである。
【００７４】
第四の効果は、タスクの再開を容易にできることである。その理由は、タスクとウィンドウ関連付けの際に、利用するアプリケーション名と、編集対象のファイルをペアにしたショートカットをタスクごとに作成することができるからである。
【００７５】
第五の効果は、信頼性の高い作業者の実績データを随時取り出せることである。その理由は、作業完了時の報告データに作業者の秘密鍵で署名をつけ、また作業完了承認時の承認データに管理者の秘密鍵で署名をつけることで、改ざんを防止することができるからである。
【００７６】
以上説明した本実施形態のプロジェクト管理システムは、本発明の一例であり、その構成および動作は、発明の趣旨を逸脱しない範囲で適宜変更することができる。
【００７７】
例えば、図２において、タスク通知部は定期的にレポジトリを検査するとしたが、RSSによる配信や、新規タスクの追加イベントによってタスク通知部へタスクを通知するPush型配信機能を用いてもよい。
【００７８】
図１０において、フィルタリング手順のステップＳ４は、図８のウィンドウ階層検索部を利用して親アプリケーションのウィンドウを決定するとしたが、ウィンドウ階層検索部を利用せずに、ウィンドウがアクティブ、非アクティブになるたびに、ウィンドウ生成時に階層関係データを記憶しておき、アクティブ、非アクティブになったときは、その記憶した階層関係データを用いて親アプリケーションのウィンドウを決定するようにしてもよい。
【産業上の利用可能性】
【００７９】
本発明によれば、ソフトウェア開発の分野において、作業者のタスク遂行時間を特定することで、工数見積もりのための基礎データを収集できるとともに、作業履歴書を作成し、別のプロジェクトへ参加する際の判断材料として利用することができる。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施形態であるプロジェクト管理システムの構成を示すブロック図である。
【図２】図１に示すタスク通知部およびタスク定義部の動作を説明するための模式図である。
【図３】図１に示すタスク通知部において行われるソートの仕組みを説明するための模式図である。
【図４】作業画面とタスクの関係を示す模式図である。
【図５】タスク／ウィンドウ関連付け画面の一例を示す模式図である。
【図６】作業画面の一構成例を示す模式図である。
【図７】図１に示すウィンドウメッセージ検知部によって検知されるウィンドウメッセージの一例を示す模式図である。
【図８】ウィンドウタイトルを持つアプリケーションに関する階層構造の一例を示す模式図である。
【図９】図１に示すウィンドウメッセージフィルタリング部のフィルタリング動作を説明するための模式図である。
【図１０】図１に示すウィンドウメッセージフィルタリング部のフィルタリング手順を示すフローチャートである。
【図１１】図１に示す実績通知部による作業者実績登録を説明するための模式図である。
【図１２】図１に示すタスク管理部によるタスク管理を説明するための模式図である。
【図１３】図１に示すタスク完了承認部のタスク完了承認の動作を説明するための模式図である。
【図１４】タスク実績表の一例を示す図である。
【図１５】図１に示すオープンファイル検出部によって検出されるオープンファイルの一覧を示す模式図である。
【図１６】図１に示すショートカット作成部によるショートカット作成手順を示すフローチャートである。
【符号の説明】
【００８１】
１０１  実績通知部
１０２  タスク通知部
１０３  タスク−ウィンドウ関連付け部
１０４  ウィンドウメッセージフィルタリング部
１０５  ウィンドウ階層検索部
１０６  ウィンドウメッセージ
１０７  アプリケーションウィンドウ
１０８  オペレーションシステム（ウィンドウフレームワーク）
１０９  レポジトリ
１１０  ショートカット作成部
１１１  オープンファイル検出部
１１２  ファイル検索部
２００  タスク定義部
２０１  タスク管理部
２０２  タスク完了承認部
【図１】
2007272655.tif 000003
【図２】
2007272655.tif 000004
【図３】
2007272655.tif 000005
【図４】
2007272655.tif 000006
【図５】
2007272655.tif 000007
【図６】
2007272655.tif 000008
【図７】
2007272655.tif 000009
【図８】
2007272655.tif 000010
【図９】
2007272655.tif 000011
【図１０】
2007272655.tif 000012
【図１１】
2007272655.tif 000013
【図１２】
2007272655.tif 000014
【図１３】
2007272655.tif 000015
【図１４】
2007272655.tif 000016
【図１５】
2007272655.tif 000017
【図１６】
2007272655.tif 000018