(57)【要約】【課題】プロジェクト作業の正確な作業実績を収集する際、作業者の負担軽減のため、コンピュータ上のファイル編集作業時間を自動収集する従来技術では、自動化を行う際のシステム上の制約として、作業に用いるプログラムを自由に選べず、また、作業実績管理システムに接続されていないコンピュータ上で作業することはできない。【解決手段】作業実績自動記録装置（105）により作業者のコンピュータ（101）で行われる全てのファイル編集作業の作業時間を作業実績履歴（108）としてファイルに直接記録し、ファイルが成果物管理装置（109）に登録される際、プロジェクトの作業と対応付けて管理する。これにより、作業者に任意のプログラムの利用を可能とし、また、作業実績管理システムと未接続のコンピュータにファイルを持ち出して作業することを可能とする。【選択図】図１
2009123038.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で行われるプロジェクト作業の作業実績を機械的に記録する作業実績自動記録装置において、作業者のコンピュータ上で行われる全てのファイル編集作業の作業時間を計測する手段と、計測した作業時間と作業者の識別ID情報を作業実績履歴としてファイルの管理情報領域に記録する手段とを有することを特徴とする作業実績自動記録装置と、
作業に対応付けてその成果物のファイルを共有管理する成果物管理装置において、成果物管理装置に登録されたファイルに対して前記の作業実績自動記録装置によって記録された作業実績履歴を集計し作業ごとの作業実績を算出する手段を有することを特徴とする成果物管理装置と、
から構成される、プロジェクト作業実績管理システム。
【請求項２】
請求項１記載の作業実績自動記録装置において、ファイル管理情報として計測された時間と作業者の識別ＩＤに加えてファイルの編集に利用されたプログラム名の情報をファイルに記録し、また、請求項１記載の成果物共有管理装置において、ファイルが成果物管理装置から取り出される際にファイルに記録されたプログラム名の情報を利用者の多い順にソートして表示する手段を持つことを特徴とする、プロジェクト作業実績管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロジェクトの進捗管理技術、特に、作業の実績管理を行う技術に関する。
【背景技術】
【０００２】
プロジェクトの進捗管理において、各工程およびその工程の各作業の作業実績を、作業ごとにあるいは作業者ごとに正確に把握することは、的確な進捗管理を行ううえで最も基本的な情報収集である。従来、作業実績の記録は各作業者がノートに記録したり、頭で記憶したりするといった方法がとられた。この方法では作業者全員に付加的な作業を要求するといった問題や、人手による記録は誤差が大きいといった問題があった。
【０００３】
近年、オフィスの作業環境では、作業者一人一人が専用のコンピュータを有し、コンピュータ上の作業によりプロジェクトが進められることが一般的となっている。プロジェクトの成果物は電子的なファイルであり、複数の作業者が同じ成果物に対して作業を行えるよう、成果物のファイルは共有管理装置によって管理される。
【０００４】
このようなコンピュータ化を背景として、作業者のコンピュータ上の操作を監視して作業時間を自動で記録する方法が考案されている。特開２００２−２４５０４号公報のプロジェクト管理システムでは、作業ごとに成果物のファイル名を事前に定義しておき、作業者のコンピュータでそのファイルが編集されている場合、そのファイルの編集に要した時間を作業実績として計測し、システムに設けられたプロジェクト情報データベースに記録する方法がとられている。
【０００５】
【特許文献１】特開２００２−２４５０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特開２００２−２４５０４号公報に示される従来技術では、作業者がコンピュータ上で編集するファイルが何の作業に対応するものかを識別するために、各作業とその作業で生成すべきファイルの種別・名称を事前に定義し、ファイルの編集時間を計測する方法がとられている。この方法には、作業者がファイル編集を行うプログラムを自由に選択できないという課題がある。対象ファイルの種別が決っているため、作業者はそれに対応したプログラムを利用する必要があるからである。
【０００７】
また、特開２００２−２４５０４号公報に示される従来技術では、収集した作業実績情報は成果物と切り離されたデータベースで一元管理される。そのため、作業者のコンピュータがデータベースと接続された状態であれば作業実績を格納できるが、作業者が出張する場合や自宅で仕事を行う場合など、システムと未接続のコンピュータで作業を行う場合、データベースに情報が格納できない。つまり、作業実績を記録するためには、作業者のコンピュータはプロジェクト管理システムと接続された環境になければならず、作業環境が限定されるという課題がある。
【０００８】
本発明の目的は、作業者が任意のプログラムを用いて行った作業の正確な作業時間の計測を行うことを可能にし、また、プロジェクト情報を管理するシステムと未接続の環境で作業者が成果物を編集しても、実績情報を漏らさず記録することを可能にすることである。
【課題を解決するための手段】
【０００９】
本発明では、プロジェクト作業の成果物を共有管理装置で管理する方法として、例えばWork Breakdown Structure（参考文献：Project Management Institute著,『プロジェクトマネジメント知識体系ガイド 第3版』, Project Management Institute, 2005）のような、階層構造で定義された作業単位で成果物を管理する方法をとる。この方法により、作業者自身が成果物を登録する際に作業と成果物の対応付けを行うため、従来のように作業と成果物の種別・名称との対応を事前に定義する必要がなくなる。この場合、各作業者のコンピュータで監視すべき対象が限定できないため、本発明の作業実績自動記録装置は、作業者のコンピュータで編集されるすべてのファイルについて作業時間を記録する。成果物ファイルに記録された作業実績情報は、本発明の成果物管理装置によって抽出され、作業ごとに集計される。これにより、プロジェクトの管理者は作業ごとの作業実績を得ることができる。
【００１０】
本発明では、作業実績の情報を成果物自体に直接記録して管理し、作業時間の収集には作業者のコンピュータで動作する作業実績記録装置のみが関係することから、作業実績の記録にあたって、作業者のコンピュータがシステムに接続された状態である必要はない。
【発明の効果】
【００１１】
本発明のプロジェクト作業実績管理システムを用いることにより、作業者は任意のツールを用いて成果物を作成することができるという効果がある。また、成果物ファイルをシステムから切り離された環境に持っていっても、そこで行われた成果物に対する作業をもらさず記録できるため、作業者の作業環境を限定しないという効果がある。
【発明を実施するための最良の形態】
【００１２】
（実施例１）
図１は、本発明のプロジェクト作業実績管理システムの構成を示す図である。
【００１３】
プロジェクト作業実績管理システムは、各作業者のコンピュータ（101）で動作する複数の作業実績自動記録装置（105）と、各作業者のコンピュータ（101）とネットワークで接続された１つの成果物管理装置（109）とから構成される。成果物管理装置（109）はさらに、作業階層定義DB（110）と、成果物ファイル管理部（111）と、作業実績集計部（112）と、成果物・作業対応情報DB（113）と、成果物ファイルDB（114）とから構成される。
【００１４】
作業実績自動記録装置（105）は、作業者のコンピュータ（101）で行われる全てのファイル編集作業の作業時間を計測し、HDD（104）にファイルが出力されるタイミングで、計測した作業時間と作業者IDの情報を作業実績履歴（108）としてファイルに書き込む処理を行うものである。作業実績自動記録装置（105）は、各作業者のコンピュータ（101）のメモリ（102）上で動作する常駐プログラムであり、オペレーティングシステム（以下、ＯＳ）のマルチウィンドウシステム（106）とファイルシステム（103）を常時監視する。そして、マルチウィンドウシステム（106）においてアクティブなプログラムが切り替わったとき発生する割り込みと、ファイルシステム（103）においてファイルの入出力が発生したとき発生する割り込みによって処理が誘発される。
【００１５】
作業階層定義DB（110）は、プロジェクトにおいて実施される全作業を大分類、中分類、小分類といった形式で階層的に定義した作業階層定義情報を管理するものである。この定義情報はプロジェクトで１つの情報であり、プロジェクト管理者によって定義され、作業階層定義DB（110）に格納される。
【００１６】
成果物ファイルDB（114）は、作業者のコンピュータ（101）から成果物管理装置（109）に転送されてきたファイルを格納するものである。
【００１７】
成果物・作業対応情報DB（113）は、成果物ファイルDB（114）に格納された各成果物ファイルと作業階層定義DB（110）で定義された作業との対応付けの情報を管理するものである。
【００１８】
成果物ファイル管理部（111）は、作業者が作業者のコンピュータ（101）のHDD（104）に保存されたファイルを作業の成果物として成果物ファイル管理部（111）に登録する場合、および、成果物ファイル管理部（111）からコンピュータ（101）のHDD（104）に成果物ファイルを取得する場合の成果物の転送処理や、ファイル登録時に成果物ファイルDB（114）と作業階層定義DB（110）を参照して成果物・作業対応情報DB（113）で管理される対応付け情報を更新する処理を行うものである。
【００１９】
作業実績集計部（112）は、成果物ファイルDB（114）と作業対応情報DB（113）を参照し、各成果物ファイルに記録された作業実績履歴（108）の作業時間を集計し、作業階層定義DB（110）で定義された作業ごとの作業実績を算出する処理を行うものである。
【００２０】
図２は、作業実績自動記録装置（105）によって記録される作業実績履歴情報の構成とデータ例である。作業実績履歴情報は、ファイルに対する編集作業の履歴を管理するものであり、作業実績履歴情報の1レコードは、作業者ID（205）、プログラム名（206）、および、累積作業時間（207）の３つの情報で構成される。作業者ID（205）は、ファイルの編集を行った作業者を一意に識別するための識別子である。プログラム名（206）は、作業者がファイルの編集を行うのに利用したプログラムのプログラム名である。累積作業時間（207）は、作業者がそのプログラムでファイルを編集するのに要した累積時間である。作業実績履歴情報のレコードは、どのレコードの作業者IDとも一致しない作業者IDをもつ作業者によって編集作業が行われるか、または作業者IDの一致するレコードはあってもプログラム名までは一致しない場合に追加される。作業者IDもプログラム名も一致するレコードがある場合、既存のレコードの作業時間に当該の作業時間が累積される。図２のデータ例では、作業者ID「ID001」の作業者がプログラム名「ワープロソフト」のプログラムにより累積作業時間1時間10分32秒で編集作業を行い（201）、作業者ID「UID002」の作業者が、プログラム名「ワードパッド」のプログラムにより、累積作業時間3分1秒で編集作業を行った（202）といって情報が履歴として記録されている。
【００２１】
図３は、作業実績自動記録装置（105）によって記録される作業実績履歴（108）のファイルへの格納形式を示す。一般的なオペレーティングシステム（以下、OS）が扱うファイルは、管理情報領域（301）と内容領域（302）とから構成され、ファイル管理情報領域（301）にはOSがファイルを管理する上で必要な管理情報が格納され、内容領域（302）にはファイルのデータ内容本体が格納される。また、一般に管理情報領域（301）は、ファイル名や更新日時等やアクセス権限等の基本的な属性情報を格納する基本情報領域（303）と、表題やコメントなど利用者が任意に値を指定できる情報を格納する拡張情報領域（304）とから構成される。本発明の作業実績自動記録装置は、この拡張情報領域に作業実績履歴（108）を格納する。
【００２２】
図４は、作業階層定義DB（110）で管理される作業階層定義情報の構成とデータ例である。作業階層定義情報は、一般的な例としてはWork Breakdown Structureのようなものであり、プロジェクトで実施すべき作業を分類し、分類したそれぞれの作業をさらに分類し、といった方法でそれ以上分類できない最小単位の作業まで分類して階層的に作業を定義したものであり、最小の作業単位には具体的な成果物が対応する。図４のデータ例では、プロジェクトの作業を設計、製造、検査の３つに分類され、設計はさらに機能設計と詳細設計に分類され、機能設計はさらに仕様検討と仕様書作成の２つに分類されるといったことが定義されている。仕様検討と仕様書作成という最小の作業単位には、それぞれに何らかの作業成果物が対応し、例えば、仕様検討であれば検討過程のメモ、仕様書作成であれば仕様書などが考えられる。
【００２３】
図５は、作業・成果物対応情報DB（113）で管理される作業・成果物対応情報の構成とデータ例である。作業・成果物対応情報は、成果物ファイルDB（114）に格納された成果物ファイルと作業階層定義情報の作業との対応を管理するものである。作業・成果物対応情報の1レコードは、作業名（508）と成果物ファイル名（509）で構成される。作業名（508）は作業階層定義情報で定義された作業のうち、最小単位となる作業名称を作業階層定義ツリーにおけるフルパス名で表現したものである。成果物ファイル名（509）は成果物ファイルDB（114）に格納されたいずれかのファイルのファイル名である。1つのレコードが1つの成果物ファイルに関する対応付けの情報を示す。成果物が対応しない作業についてはレコードが存在しない。図５の例では、作業「／設計／機能設計／仕様検討」には成果物として２つのファイルNNN.txt」および「DM_MMM.doc」が対応づいており（501、502）、作業「／設計／機能設計／仕様書作成」には成果物としてファイル「FS_AAA.doc」が対応づいている（503）といった情報が作業・成果物対応情報として記録されている。
【００２４】
図６は、作業実績集計部（112）によって得られる作業実績集計情報の構成とデータ例である。この情報は、プロジェクト管理者がネットワークに接続された別の端末から成果物管理装置（109）に接続し作業実績集計情報を要求すると、作業実績集計部によってその都度、最新の情報が集計され、要求のあった端末に情報が転送される。作業実績集計情報は、作業階層定義DB（110）で定義された作業階層の任意の作業を基点とする部分階層について、その階層に属する全作業の作業実績を集計した情報である。図６の例に基づき具体的に説明する。作業実績情報の1レコードは、作業（607）と作業実績（608）で構成される。図６の例は、作業「設計」を基点とした部分階層構造に関する作業実績集計情報である。最小分類の作業である「設計／機能設計／仕様検討」（603）および「設計／機能設計／仕様書作成」(604)の作業実績は、それぞれに対応する成果物ファイルの作業実績履歴（108）に基づき算出された値である。これらの1つ上位の作業単位である「設計／機能設計」（602）の作業実績は、「設計／機能設計／仕様検討」（603）と「設計／機能設計／仕様書作成」(604)の作業実績の合計である。同様に、「設計」（601）の作業実績は、それ以下の全作業に関する作業実績の合計である。
【００２５】
図７は作業実績自動記録装置（105）の詳細な構成図である。作業実績自動記録装置（105）は、プログラム稼動履歴更新処理部（701）と、割り込み監視処理部（702）と、プログラム稼動履歴DB（703）と、作業実績収集・記録処理部（704）とから構成される。
【００２６】
割り込み監視処理部（702）は、マルチウィンドウシステム（106）とファイルシステム（103）で起こるイベントによって発生する割り込みを常時監視し、割り込みの種別に応じてプログラム稼動履歴更新処理部（701）または作業実績収集・記録処理部（704）を呼び出す処理を行うものである。
【００２７】
プログラム稼動履歴更新処理部（701）は、プログラム稼動履歴DB（703）の更新処理を行うものであり、レコード追加処理とレコード削除処理の2種類の処理を持つ。
【００２８】
作業実績収集・記録処理部（704）は、プログラム稼動履歴DB（703）の情報を参照して、作業者がファイル編集を行っていた時間を算出し、対象のファイルに作業実績履歴（108）として書き出すものである。
【００２９】
プログラム稼動履歴DB（703）は、ファイル編集を行うプログラムがアクティブになった時刻またはファイルをオープンした時刻の履歴を逐一記録したものであり、この情報を参照して作業実績収集・記録処理部（704）は作業者のコンピュータ（101）で行われるファイル編集時間を算出する。プログラム稼動履歴DB（703）が管理するプログラム稼動履歴情報の構成とデータ例を図１３に示す。プログラム稼動履歴情報の1レコードは、割り込み発生日時（1301）、プログラム名（1302）、および、編集ファイル名（1303）の３つの情報で構成される。割り込み発生日時（1301）は、割り込み監視処理部（702）が割り込みを受けた日時である。プログラム名（1302）は、割り込みが発生した時にアクティブになっているプログラムの名称である。アクティブなプログラムが切り替わった際に発生する割り込みの場合、切り替わった後のプログラムがアクティブになっているプログラムである。編集ファイル名（1303）は、アクティブなプログラムが編集しているファイルの名称である。
【００３０】
次に、作業実績自動記録装置（105）が、作業者のコンピュータ（101）で行われる全てのファイル編集作業の作業時間を計測し、作業実績履歴（108）としてファイルの管理情報領域に記録する手順について、図８〜図１２のフローチャートを用いて説明する。
【００３１】
まず始めに、作業実績自動記録装置（105）の実行開始時の処理について説明する。作業実績自動記録装置（105）のプログラムが作業者のコンピュータ（101）にインストールされ動作を開始すると、作業者のコンピュータ（101）のメモリ（102）に常駐し（ステップ801）、割り込み監視処理部（702）がマルチウィンドウシステム（106）とファイルシステム（103）からの割り込みを監視する（ステップ802）。割り込み監視処理部（702）何らかの割り込みが発生するまで何もしない（ステップ803）。割り込みが発生すると、ステップ804〜ステップ807において割り込みの種別に応じて処理を分岐する。アクティブなプログラムが切り替わった場合の割り込みとファイルオープンの割り込みに対しては稼動履歴更新処理部（701）の追加処理が呼び出される（ステップ804、ステップ807）。ファイルクローズの割り込みに対しては、稼動履歴更新処理部（701）の削除処理が呼び出される（ステップ806）。ファイル書込みの割り込みに対しては、作業実績収集・記録処理部（704）が呼び出される（ステップ805）。
【００３２】
次に、作業者が複数のファイルの編集作業を行っている最中に行われる処理手順について説明する。以下では具体的に処理手順を説明するため、作業者ID「UID001」の作業者がプログラム「ワープロソフト」により、ファイル「FS_AAA.doc」を編集し、プログラム「表計算ソフト」によりファイル「PCL_YYY.xls」を編集する以下のような一連の作業例を考える。始めに、日時2007/08/27 12:00:00に作業者UID001がプログラム「表計算ソフト」によりファイルPCL_YYY.xlsをオープンしたとする。このとき、ファイルオープン割り込みが発生し、割り込み監視処理部（702）はプログラム稼動履歴更新処理部（701）の追加処理を呼び出す（ステップ804）。プログラム履歴更新処理部（701）は、図９に示す追加処理のフローチャートに従い、ステップ901〜ステップ903において、アクティブなプログラム名「表計算ソフト」とそのプログラムが編集しているファイル名「PCL_YYY.xls」、および割り込み発生日時「2007/08/27 12:00:00」を取得し、ステップ904でこれらの情報をプログラム稼動履歴DB（703）にレコード1304として追加する。やがて、日時2007/08/27 12:10:00に、ファイルPCL_YYY.xlsの編集を中断して、FS_AAA.docを編集するためにプログラム「ワープロソフト」によりファイルFS_AAA.docがオープンされたとする。このとき、ファイルオープン割り込みが発生するため、先ほどの場合と同様の処理によって、プログラム稼動履歴DB（703）にレコード1305が追加される。やがて、日時2007/08/27 12:20:00に、ファイルPCL_YYY.xlsの編集を再開するためプログラム「表計算ソフト」に画面が切り替えられたとする。このとき、アクティブプログラム切替え割り込みが発生し、ファイルオープン割り込みの場合と同様、割り込み監視処理部（702）はプログラム稼動履歴更新処理部（701）の追加処理を呼び出され（ステップ807）、今までの場合と同様の処理によってプログラム稼動履歴DB（703）にレコード1306が追加される。やがて、日時2007/08/27 12:30:00に、再度FS_AAA.docの編集を行うためプログラム「ワープロソフト」に画面を切り替えたとすると、レコード1306の場合と同じ処理によって、プログラム稼動履歴DB（703）にレコード1307が追加される。以上述べたようにして、作業者がファイルの編集作業を行っているとき、プログラムの稼動状況に従って、プログラム稼動履歴DB（703）の内容が更新されていく。
【００３３】
次に、作業者がファイルの編集を完了しファイルを保存する際に、作業実績自動記録装置（105）がファイルの編集時間を算出し、ファイルに作業実績履歴（108）として格納する処理手順について説明する。先ほどから考えている例において、プログラム稼動履歴DB（703）にレコード1307が追加された後、日時2007/08/27 12:40:00にファイルFS_AAA.docの保存が行われたとする。このとき、ファイル書込み割り込みが発生し、割り込み監視処理部（702）は作業実績収集・記録処理部（704）を呼び出す（ステップ805）。作業実績収集・記録処理部（704）は、図１１に示すフローチャートに従って、ファイル編集時間の算出処理を行う。まず、ステップ1101でプログラム更新履歴処理部（701）の追加処理が呼び出され、割り込み発生日時「2007/08/27 12:40:00」、プログラム名「ワープロソフト」、ファイル名「FS_AAA.doc」でプログラム稼動履歴DB（703）にレコードが追加される（レコード1308）。次にファイルの編集時間合計を集計する変数Aを0に初期化し（ステップ1102）、ステップ1103〜ステップ1107のループによりプログラム稼動履歴DB（703）のレコードを走査して変数Aにファイル編集時間を集計する。このループで行っているのは、保存しようとするファイルを編集しているプログラムのプログラム名とファイル名の両方に一致するレコードを見つけ（1104）、そのレコードと次のレコードの割り込み発生日時の差を累計する処理である（1105）。プログラム稼動履歴DB（703）の連続する２レコードの割り込み発生日時の差は、あるファイルの編集作業が開始されてから、別のファイルの編集作業が開始されるまでの時間である。言い換えれば、あるファイルが継続して編集されていた時間である。ステップ1103~ステップ1107のループ処理では、これらの時間を累計することで、ファイルがオープンされてから最終的に保存されるまでの編集作業の累積時間を算出している。今考えている例では、ファイルFS_AAA.docの編集作業の累積時間は、レコード1305とレコード1306の割り込み発生日時の差00:10:00（ファイルがオープンされてから別のファイルPCL_YYY.xlsの編集を行うために編集が中断されるまでの時間）と、レコード1307とレコード1308の割り込み発生日時の差00:10:00（ファイルの編集作業が再開されてから保存が行われるまで）の時間の合計00:20:00が編集作業の累計時間としてループ処理終了後に変数Aに格納される。ループ処理が終了した後、ステップ1108において、ファイルに作業実績履歴（108）を格納するため、変数Aに集計されたファイル編集時間を引数として作業実績収集・記録処理部（704）の作業実績履歴格納処理が呼び出される（1108）。作業実績履歴（108）の格納処理は図１２に示すフローチャートに従って行われる。ステップ1201とステップ1202において、作業者の作業者IDとアクティブなプログラム名を取得する。今の例では、作業者IDは「UID001」であり、アクティブなプログラム名はファイルを保存しようとしている「ワープロソフト」である。ステップ1203〜ステップ1206のループでは、格納対象ファイルの作業実績履歴（108）から、作業を行っていた作業者の作業者IDとアクティブなプログラム名の両方に一致するレコードを探し（ステップ1204）、もしあれば、そのレコードの累積作業時間に引数で渡された値（当該のファイル編集作業における作業時間）を加算して（ステップ1205）この処理を終了し、なければ、作業実績履歴（1207）に新たなレコードとして追加して（ステップ1108）この処理を終了する。今の例では、作業実績履歴（108）を格納しようとしているファイルはFS_AAA.docであるが、この作業実績履歴（108）が図２のようであったとする。すると、作業者ID（205）が「UID001」、プログラム名（206）が「ワープロソフト」のレコード201が存在することから、このレコード201の累積作業時間01:10:32に、今の例における引数Aの値00:20:00が加算され、累積作業時間が01:30:32に更新される。以上述べたようにして、作業者がファイル編集を終えて保存を行う際、ファイルの編集時間が算出されてファイルに作業実績履歴（108）として格納される。なお、作業実績履歴（108）がファイルに格納された直後は、プログラム稼動履歴DB（703）からはファイル保存を行ったプログラム名およびそのファイル名に一致する履歴は、ファイル保存時に追加されたレコード1308を除いて全て削除される（ステップ1103〜ステップ1107の編集時間を算出するループ処理におけるステップ1106の処理）ため、再度同じプログラムが同じファイルに保存を行ったとしても、レコード1308以前の作業時間が重複して編集時間として集計されることはない。
【００３４】
次に、作業者がファイルの編集作業を中止し、ファイルを保存せずにプログラムを終了する場合の処理手順について説明する。この場合、編集作業の成果はファイルに何も反映されないため、作業実績としてはゼロであり、ファイルの作業実績履歴（108）は更新されず、以下に述べるようなプログラム稼動履歴DB（703）のレコード削除処理が行われる。先ほどから考えている例で、ファイルFS_AAA.docの保存が完了した後、ファイルPCL_YYY.xlsの編集内容を無効とするためファイルを保存せず閉じたとする。このとき、まず、プログラム「表計算ソフト」がアクティブになってプログラム稼動履歴DB（703）に新たにレコードが追加された後、ファイルが閉じられた際に発生するファイルクローズ割り込みにより、割り込み監視処理部（702）がプログラム稼動履歴更新処理部（701）の削除処理を呼び出す（ステップ806）。プログラム稼動履歴更新処理部（701）は図１０に示す削除処理のフローチャートに従って次の処理を行う。まず、ステップ1001、ステップ1002においてアクティブなプログラム名「表計算ソフト」とそのプログラムが編集しているファイル名「PCL_YYY.xls」を取得する。次に、ステップ1003〜ステップ1006のループ処理において、プログラム稼動履歴DB（703）の全レコードを走査し、いま取得したプログラム名とファイル名の両方と一致するレコードを全て削除する（ステップ1104、ステップ1105）。以上説明した処理によって、編集を無効としてファイルを閉じるとレコードが削除されるため、再度同じプログラムで同じファイルが編集されたとしてもファイル編集時間に集計されることはない。
【００３５】
以上に説明したようにして、作業実績自動記録装置（105）は作業者のコンピュータ（101）で行われるすべてのファイル編集作業の作業時間を漏らさず正確に計測し、作業実績履歴（108）としてファイルに格納することができる。作業時間の自動記録に必要となるのは作業者のコンピュータ（101）にインストールされた作業実績自動記録装置（105）のみであることから、本発明のように作業実績履歴（108）をファイルに直接格納することにより、作業者のコンピュータ（101）がプロジェクト作業実績管理システムと切り離された環境下にあったとしても編集作業の実績を漏らさず記録することが可能である。そのため、例えばある作業者が出張を行うためネットワークに未接続のモバイルコンピュータにファイルを移動して編集作業を行うといった場合などでも作業実績の記録が可能となり、作業者の作業環境が限定されないという効果がある。
【００３６】
次に、作業者が作業者のコンピュータ（101）のHDD（104）に保存されたファイルをプロジェクト作業の成果物として共有するため成果物ファイル管理部（111）に登録する場合の成果物ファイル管理部（111）の処理について説明する。成果物ファイル管理部（111）は、作業者のコンピュータの画面に作業階層定義DB（110）で定義された作業階層を表示し、作業者に登録しようとする成果物ファイルと作業との対応を指定させる。作業者が作業を指定するとともに成果物ファイルの登録処理を要求すると、成果物ファイル管理部（111）は成果物ファイルと作業との対応情報と成果物ファイル自体をネットワーク経由で受取り、成果物ファイルは成果物ファイルDB（114）に格納し、また、成果物ファイルと作業との対応情報は成果物・作業対応情報DB（113）に格納する。以上に説明したように、本発明では、作業者はファイルを作成した後で作業とその実績情報の対応付けを行うという特徴がある。この特徴により、作業者がファイル編集作業を行う際、そのファイルの名称やプログラムは自由に選択できるという効果がある。
【００３７】
次に、作業実績集計部（112）が成果物管理装置（109）に登録された成果物ファイルの作業実績を集計して作業実績集計情報を生成する手順について説明する。プロジェクト管理者が作業実績の集計情報の取得を行う際、作業実績集計部（112）は、取得したい作業実績集計情報の基点となる作業の指定とともに処理を要求され、その作業を基点とした作業実績集計情報を生成し、要求元に転送する。以下、図１４に示す作業実績集計部（112）のフローチャートに従って説明する。作業実績集計部（112）の処理は再帰処理である。基点作業Ｗが最小の作業単位ではなく、さらにいくつかの作業w_1〜w_nに分類される場合（ステップ1402でNOの場合）、ステップ1403〜ステップ1405のループ処理によって、作業w_1〜w_nの各々を基点とする作業階層のそれぞれについて作業実績集計部（112）を呼び出し（ステップ1404）、返り値として得られる各作業の作業実績集計を合計して作業Wの作業実績集計とする。基点作業Wがそれ以上分類できない最小の作業単位であるなら（ステップ1402でYESの場合）、その作業Wに対応付けられた成果物ファイルの作業実績を算出し（ステップ1406、ステップ1407）、それを作業Wの作業実績とする。成果物ファイルの作業実績を求める処理は、成果物ファイルの作業実績履歴（108）を抽出し（ステップ1406）、その作業実績履歴（108）の全レコードの累積作業実績を合計する（ステップ1407）という方法で行われる。いま、例として作業階層DB（110）には図４に示すデータ例の作業階層が定義されているものとし、また、成果物・作業対応DB（113）には、図５に示すデータ例のような作業・成果物ファイルの対応情報が格納されているものとする。このとき、作業「設計」の作業実績は、その直下の作業「設計／機能設計」および「設計／詳細設計」の各々を基点として作業実績集計部（112）を呼び出すことで得られる作業実績集計03:00:00および01:30:00の合計04:30:00として得られる。さらに、作業「設計／機能設計」の作業実績集計03:00:00は、その直下の作業である「設計／機能設計／仕様検討」および「設計／機能設計／仕様書作成」の各々を基点として作業実績集計部（112）を呼び出すことで得られる作業実績集計01:00:00および02:00:00の合計03:00:00として得られる。これらの作業は最小の作業単位であるため、その作業実績集計は成果物ファイルの実績情報履歴（108）から算出される。
（実施例２）
本発明の第２の実施例について、図１５および図１６を用いて説明する。
【００３８】
本実施例は、作業者が成果物ファイルを取得する際、成果物ファイル管理部（111）によって行われる処理に、取得対象ファイルから実績情報履歴（108）を抽出し、プログラム名を利用者数の多い順にソートした情報を表示する処理を加えたものである。
【００３９】
図１５は、本実施例における成果物ファイル管理部（111）のファイル取得処理のフローチャートである。
【００４０】
図１６は、成果物ファイル管理部（111）のファイル取得処理がプログラム名ごとの利用者数を集計するために内部的に生成するプログラム利用者数テーブルである。
【００４１】
以下、本実施例におけるファイル取得処理の処理手順を図１５と図１６に基づいて説明する。処理手順を具体的に説明するため、例として、図２の作業実績履歴（108）に対して処理を行う場合を考える。まず、ステップ1501において、取得対象ファイルから作業実績履歴（108）を抽出する。次に、ステップ1502〜ステップ1506のループ処理において、抽出した作業実績履歴（108）を1レコードずつ調べ（ステップ1503）、プログラム名ごとの利用者数を集計する（ステップ1504、ステップ1505）。今の例では、まず、レコード201からレコード203までの処理では、プログラム利用者数テーブルにはプログラム名の一致するレコードがないため、新たにレコード1603〜1605が追加される（ステップ1505）。追加されるレコードでは、プログラム名（1601）は各レコード201〜203のプログラム名となり、また、利用者数（1602）は値１となる。次に、レコード204の処理では、プログラム利用者数テーブルには既にプログラム名「ワープロソフト」のレコード1603が存在することから、その利用者数を1増加させ、利用者数は2となる（ステップ1504）。作業実績履歴（108）の全てのレコードに関する処理が終了したら、プログラム利用者数テーブルを利用者の多い順にソートする（ステップ1507）。そして、ソート結果を作業者のコンピュータ（101）の画面に表示するとともに（ステップ1508）、成果物ファイルを成果物ファイルDB（114）から作業者のコンピュータに転送する（ステップ1509）。
【００４２】
以上に説明したように、本実施例では、作業者がファイルを成果物管理装置（109）から取得する際、ファイルを取得するのに加え、そのファイルを編集するために他の作業者が使用しているプログラム名の情報を得ることができる。この情報によって、作業者は、自分の利用しているプログラムより作業効率が良い可能性のある別のプログラムを知ることができるという効果がある。
【図面の簡単な説明】
【００４３】
【図１】本発明のシステム構成。
【図２】作業実績履歴情報。
【図３】作業実績履歴情報のファイルへの格納形式。
【図４】作業階層定義情報の構成。
【図５】作業・成果物対応情報の構成。
【図６】作業実績集計情報の構成。
【図７】作業実績自動記録装置の詳細構成。
【図８】作業実績自動記録装置の処理フローチャート。
【図９】プログラム稼動履歴更新部の追加処理のフローチャート。
【図１０】プログラム稼動履歴更新部の削除処理のフローチャート。
【図１１】作業実績収集・記録処理部の編集時間算出処理のフローチャート。
【図１２】作業実績収集・記録処理部の作業実績履歴格納処理のフローチャート。
【図１３】プログラム稼動履歴の構成。
【図１４】作業実績集計部の処理フローチャート。
【図１５】実施例２における成果物ファイル取得処理のフローチャート。
【図１６】プログラム利用者数テーブルの構成。
【符号の説明】
【００４４】
101…作業者のコンピュータ、102…メモリ、103…ファイルシステム、104…ＨＤＤ、105…作業実績自動記録装置、106…マルチウィンドウシステム、107…プログラム、108…作業実績履歴、109…成果物管理装置、110…作業階層定義DB、111…成果物ファイル管理部、112…作業実績集計部、113…成果物・作業対応情報DB、114…成果物ファイルDB。
【図１】
2009123038.tif 000003
【図２】
2009123038.tif 000004
【図３】
2009123038.tif 000005
【図４】
2009123038.tif 000006
【図５】
2009123038.tif 000007
【図６】
2009123038.tif 000008
【図７】
2009123038.tif 000009
【図８】
2009123038.tif 000010
【図９】
2009123038.tif 000011
【図１０】
2009123038.tif 000012
【図１１】
2009123038.tif 000013
【図１２】
2009123038.tif 000014
【図１３】
2009123038.tif 000015
【図１４】
2009123038.tif 000016
【図１５】
2009123038.tif 000017
【図１６】
2009123038.tif 000018