(57)【要約】【課題】開発プロジェクトにおいて、作業者が実際に手を下した作業工数を反映した作業の報告書を生成する。【解決手段】プロジェクトの各工程の作業によって生成される成果物または工程の作業を実施する際に参照される参照物を含む操作対象物を示す情報を含むプロジェクト情報を、予め登録しておくプロジェクト情報管理ＤＢと、プロジェクトの各工程の作業を行う作業用端末から取得された、操作日時、作業者が操作した操作対象物、および操作対象物に対して作業者が行った操作名を示す情報を含む操作履歴情報を格納する操作履歴情報ＤＢと、プロジェクト情報と操作履歴情報とに基づいてプロジェクトの各工程における工数を算出する工数算出部と、プロジェクト情報と工数算出部が算出した工数とに基づいて、プロジェクトについて作業者が作業を行った工程及び当該工程の工数を記載した報告書を生成する報告書生成部とを備える。【選択図】図１
2014142885.tif 000002
【特許請求の範囲】
【請求項１】
プロジェクトの工程ごとに、当該工程の識別情報と当該工程の作業において作業者によって操作される操作対象物を示す情報を含むプロジェクト情報を、予め登録しておくプロジェクト情報管理データベースと、
前記プロジェクトの各工程の作業を行う作業用端末から取得された操作履歴情報であって、作業者が操作した操作対象物を示す情報と当該操作対象物の操作時間とを含む操作履歴情報を格納する操作履歴情報データベースと、
前記プロジェクト情報と前記操作履歴情報とに基づいて、前記プロジェクト情報が示すプロジェクトの各工程における工数を算出する工数算出部と、
前記プロジェクト情報と前記工数算出部が算出した工数とに基づいて、当該プロジェクト情報が示すプロジェクトについて、前記作業者が作業を行った工程及び当該工程の工数を記載した報告書を生成する報告書生成部と
を備えることを特徴とする文書生成装置。
【請求項２】
前記作業者から前記プロジェクトの工程の作業を行った工数の入力を受け付ける工数入力部を備え、
前記報告書生成部は、前記プロジェクト情報が示すプロジェクトについて、前記作業者が作業を行った工程に関連付けて、前記工数入力部が入力を受け付けた工数と前記工数算出部が算出した工数とを記載した報告書を生成する
ことを特徴とする請求項１に記載の文書生成装置。
【請求項３】
前記プロジェクト情報が示すプロジェクトの各工程についての作業を依頼するための依頼書を生成する依頼書生成部
を備えることを特徴とする請求項１または請求項２に記載の文書生成装置。
【請求項４】
前記作業者による操作に従って、前記報告書生成部が生成した報告書を修正する報告書修正部と、
前記依頼書生成部が前記依頼書を生成したときの前記プロジェクト情報の各工程と、前記報告書修正部が修正した報告書に記載された各工程とを比較し、前記作業者によって前記報告書に追加または削除された工程を表示する差分工程表示部と
を備えることを特徴とする請求項３に記載の文書生成装置。
【請求項５】
前記報告書生成部が生成した報告書と前記報告書修正部が修正した報告書とを比較し、前記作業者によって前記報告書に追加または削除された項目を表示する差分項目表示部と
を備えることを特徴とする請求項４に記載の文書生成装置。
【請求項６】
プロジェクト情報管理データベースに、プロジェクトの工程ごとに、当該工程の識別情報と当該工程の作業において作業者によって操作される操作対象物を示す情報を含むプロジェクト情報を、予め登録しておくステップと、
操作履歴情報データベースに、前記プロジェクトの各工程の作業を行う作業用端末から取得された操作履歴情報であって、作業者が操作した操作対象物を示す情報と当該操作対象物の操作時間とを含む操作履歴情報を格納するステップと、
前記プロジェクト情報と前記操作履歴情報とに基づいて、前記プロジェクト情報が示すプロジェクトの各工程における工数を算出する工数算出ステップと、
前記プロジェクト情報と前記工数算出ステップにおいて算出した工数とに基づいて、当該プロジェクト情報が示すプロジェクトについて、前記作業者が作業を行った工程及び当該工程の工数を記載した報告書を生成する報告書生成ステップと
を含むことを特徴とする文書生成方法。
【請求項７】
プロジェクト情報管理データベースに、プロジェクトの工程ごとに、当該工程の識別情報と当該工程の作業において作業者によって操作される操作対象物を示す情報を含むプロジェクト情報を、予め登録しておくステップと、
操作履歴情報データベースに、前記プロジェクトの各工程の作業を行う作業用端末から取得された操作履歴情報であって、作業者が操作した操作対象物を示す情報と当該操作対象物の操作時間とを含む操作履歴情報を格納するステップと、
前記プロジェクト情報と前記操作履歴情報とに基づいて、前記プロジェクト情報が示すプロジェクトの各工程における工数を算出する工数算出ステップと、
前記プロジェクト情報と前記工数算出ステップにおいて算出した工数とに基づいて、当該プロジェクト情報が示すプロジェクトについて、前記作業者が作業を行った工程及び当該工程の工数を記載した報告書を生成する報告書生成ステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書生成装置、文書生成方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、ソフトウェアの開発においては、開発費用の低減や開発納期の短縮のために、的確に開発プロジェクトの管理を行うことが重要となってきている。従来のソフトウェアの開発プロジェクトの管理では、開発工数の見積もりや進捗の管理を行うため、ＷＢＳ（Ｗｏｒｋ  Ｂｒｅａｋｄｏｗｎ  Ｓｔｒｕｃｔｕｒｅ）を用いた手法が広く用いられている。しかし、開発プロジェクトの作業者から提出される作業報告に間違いなどがあれば、プロジェクトの管理者であるプロジェクトマネージャが正しく進捗管理をすることができない。
【０００３】
特許文献１には、作業者がセンサを装着することで、センサが装着された時刻、位置、加速度を計測し、当該計測されたデータから、作業実績時間と作業内容とを推定し、記録するシステムが開示されている。
特許文献２には、ユーザ操作に基づいてアプリケーションが実行したジョブの記録に基づいて日報を生成するシステムが開示されている。特許文献２に記載のシステムでは、アプリケーション名とジョブとを関連付けて、当該アプリケーションの総実行時間をジョブの実行時間としている。
【０００４】
また近年、ソフトウェアの開発において、チケット駆動開発と呼ばれる開発手法が用いられることがある。チケット駆動開発とは、チケット管理システム（例えば、非特許文献１を参照）を用いて、プロジェクトの工程ごとに当該工程を示す「チケット」と呼ばれる情報を生成し、当該工程を終えたときに作業者が当該チケットに工程を終えたことを示す情報を付加することで、プロジェクトの工程を管理する手法である。このチケットに、工程の実行期限や作業者の作業時間を記載することで、チケット管理システムを用いて工程の作業時間を管理することができる。
特許文献３には、作業識別情報と日報とを関連付けて作業を管理するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２５８１１８号公報
【特許文献２】特開２０１０−１２９０５６号公報
【特許文献３】特開２００６−１６３５８０号公報
【非特許文献】
【０００６】
【非特許文献１】“Ｒｅｄｍｉｎｅ．ＪＰ”，ファーエンドテクノロジー株式会社，［平成２５年１月１日検索］，インターネット，＜http://redmine.jp/＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ソフトウェアの開発においては、作業用端末の稼働時間と作業者の実際の稼働時間とは異なっていることが一般的である。ソフトウェアの開発工程は、いずれもコンピュータの操作によって行うため、特許文献１に開示されている技術のようにセンサデータによって工程を判別することは困難である。また、特許文献２に開示されている技術のように作業者が実行したアプリケーション名に基づいて工程を判別しようとすると、異なる工程において同一のアプリケーションを用いる場合に、当該アプリケーションの実行が何れの工程に属するかを判別することができないという問題がある。
【０００８】
また、非特許文献１に示すようなチケット管理システムにおいては、作業者の作業時間の入力を受け付け、チケットに反映することができるが、当該作業時間は作業者の自己申告によるものであり、正当性および精度が担保できないという問題がある。また、特許文献３に開示されている技術についても、日報は作業者の手作業によって作成するものであるため、正当性および精度が担保できないという問題がある。つまり、非特許文献１や特許文献３に開示されている技術では、作業者が実際に手を下した作業工数を正確に反映した文書を作成することができないという問題がある。
【０００９】
本発明は、上記の課題認識に基づいてなされたものであり、開発プロジェクトにおいて、作業者が実際に手を下した作業工数を正確に反映した文書を作成する文書生成装置、文書生成方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明は上記の課題を解決するためになされた文書生成装置であり、プロジェクトの工程ごとに、当該工程の識別情報と当該工程の作業において作業者によって操作される操作対象物を示す情報を含むプロジェクト情報を、予め登録しておくプロジェクト情報管理データベースと、前記プロジェクトの各工程の作業を行う作業用端末から取得された操作履歴情報であって、作業者が操作した操作対象物を示す情報と当該操作対象物の操作時間とを含む操作履歴情報を格納する操作履歴情報データベースと、前記プロジェクト情報と前記操作履歴情報とに基づいて、前記プロジェクト情報が示すプロジェクトの各工程における工数を算出する工数算出部と、前記プロジェクト情報と前記工数算出部が算出した工数とに基づいて、当該プロジェクト情報が示すプロジェクトについて、前記作業者が作業を行った工程及び当該工程の工数を記載した報告書を生成する報告書生成部とを備えることを特徴とする。
【００１１】
また、本発明は、前記作業者から前記プロジェクトの工程の作業を行った工数の入力を受け付ける工数入力部を備え、前記報告書生成部は、前記プロジェクト情報が示すプロジェクトについて、前記作業者が作業を行った工程に関連付けて、前記工数入力部が入力を受け付けた工数と前記工数算出部が算出した工数とを記載した報告書を生成することを特徴とする。
【００１２】
また、本発明は、前記プロジェクト情報が示すプロジェクトの各工程についての作業を依頼するための依頼書を生成する依頼書生成部を備えることを特徴とする。
【００１３】
また、本発明は、前記作業者による操作に従って、前記報告書生成部が生成した報告書を修正する報告書修正部と、前記依頼書生成部が前記依頼書を生成したときの前記プロジェクト情報の各工程と、前記報告書修正部が修正した報告書に記載された各工程とを比較し、前記作業者によって前記報告書に追加または削除された工程を表示する差分工程表示部とを備えることを特徴とする。
【００１４】
また、本発明は、前記報告書生成部が生成した報告書と前記報告書修正部が修正した報告書とを比較し、前記作業者によって前記報告書に追加または削除された項目を表示する差分項目表示部とを備えることを特徴とする。
【００１５】
また、本発明は、プロジェクト情報管理データベースに、プロジェクトの工程ごとに、当該工程の識別情報と当該工程の作業において作業者によって操作される操作対象物を示す情報を含むプロジェクト情報を、予め登録しておくステップと、操作履歴情報データベースに、前記プロジェクトの各工程の作業を行う作業用端末から取得された操作履歴情報であって、作業者が操作した操作対象物を示す情報と当該操作対象物の操作時間とを含む操作履歴情報を格納するステップと、前記プロジェクト情報と前記操作履歴情報とに基づいて、前記プロジェクト情報が示すプロジェクトの各工程における工数を算出する工数算出ステップと、前記プロジェクト情報と前記工数算出ステップにおいて算出した工数とに基づいて、当該プロジェクト情報が示すプロジェクトについて、前記作業者が作業を行った工程及び当該工程の工数を記載した報告書を生成する報告書生成ステップとを含むことを特徴とする文書生成方法である。
【００１６】
また、本発明は、プロジェクト情報管理データベースに、プロジェクトの工程ごとに、当該工程の識別情報と当該工程の作業において作業者によって操作される操作対象物を示す情報を含むプロジェクト情報を、予め登録しておくステップと、操作履歴情報データベースに、前記プロジェクトの各工程の作業を行う作業用端末から取得された操作履歴情報であって、作業者が操作した操作対象物を示す情報と当該操作対象物の操作時間とを含む操作履歴情報を格納するステップと、前記プロジェクト情報と前記操作履歴情報とに基づいて、前記プロジェクト情報が示すプロジェクトの各工程における工数を算出する工数算出ステップと、前記プロジェクト情報と前記工数算出ステップにおいて算出した工数とに基づいて、当該プロジェクト情報が示すプロジェクトについて、前記作業者が作業を行った工程及び当該工程の工数を記載した報告書を生成する報告書生成ステップとをコンピュータに実行させることを特徴とするプログラムである。
【発明の効果】
【００１７】
本発明によれば、開発プロジェクトにおいて、作業者が実際に手を下した作業工数を正確に反映した文書を作成することができるという効果が得られる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態における文書生成システムの概略構成を示したブロック図である。
【図２】本実施形態の文書生成システムにおける機能ブロックの概略構成を示したブロック図である。
【図３】本実施形態の文書生成システムにおいて取得する対象の情報の一例を示した図である。
【図４】本実施形態の文書生成システムにおけるプロジェクト情報の登録処理の流れを示したシーケンス図である。
【図５】本実施形態の文書生成システムにおいて情報管理ＤＢに格納するプロジェクト情報のデータ構成の一例を示した図である。
【図６】本実施形態の文書生成システムにおける依頼書の生成処理の流れを示したシーケンス図である。
【図７】本実施形態の文書生成システムが生成する依頼書の一例を示す図である。
【図８】本実施形態の文書生成システムにおける操作履歴情報の収集処理の流れを示したシーケンス図である。
【図９】本実施形態の文書生成システムにおいて情報管理ＤＢに格納する操作履歴情報のデータ構成の一例を示した図である。
【図１０】本実施形態の文書生成システムにおける工数の算出処理の流れを示したシーケンス図である。
【図１１】本実施形態の文書生成システムにおける工数算出処理のアルゴリズムの概要を示した図である。
【図１２】本実施形態の文書生成システムにおいて工数算出処理を行う際に用いられる情報の一例を示した図である。
【図１３】本実施形態の文書生成システムにおいて工数算出処理アルゴリズムを実施した場合の一例を説明する図である。
【図１４】本実施形態の文書生成システムにおいて工数算出処理アルゴリズムを実施した場合の別の一例を説明する図である。
【図１５】本実施形態の文書生成システムにおける工数の算出処理の処理手順を示したフローチャートである。
【図１６】本実施形態の文書生成システムにおいて工数算出処理を行う際に用いられる情報または工数算出処理によって得られる結果の情報の一例を示した図である。
【図１７】操作対象物とＷＢＳとを関連付けるための画面の一例を示す図である。
【図１８】本実施形態の文書生成システムにおける報告書の生成処理の流れを示したシーケンス図である。
【図１９】本実施形態の文書生成システムが生成する報告書の一例を示す図である。
【図２０】本実施形態の文書生成システムにおける報告書の差分表示処理の流れを示したシーケンス図である。
【図２１】本実施形態の文書生成システムが生成する差分工程の表示情報の一例を示す図である。
【図２２】本実施形態の文書生成システムが生成する差分項目の表示情報の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態における文書生成システムの概略構成を示したブロック図である。図１において、文書生成システム１０は、操作履歴収集装置１００と、操作履歴管理装置２００と、情報管理データベース（以下、「情報管理ＤＢ」という）３００と、文書生成装置４００と、プロジェクト情報管理装置５００とを備えている。図１に示した文書生成システム１０では、各装置および情報管理ＤＢ３００が、ネットワークを介して接続されている。また、文書生成システム１０には、プロジェクトの管理者であるプロジェクトマネージャが使用するＷｅｂブラウザ２０が、ネットワークを介して接続されている。
【００２０】
操作履歴収集装置１００は、作業者であるユーザの操作履歴を収集する装置である。この操作履歴収集装置１００は、例えば、作業者が開発作業を行うときに使用するＰＣなどの作業用端末である。操作履歴収集装置１００には、作業者による操作を検知するエージェントソフトウェアが常駐しており、エージェントソフトウェアが検知した作業者の操作履歴の情報（以下、「操作履歴情報」という）を、操作履歴管理装置２００に送信する。
【００２１】
なお、操作履歴収集装置１００が収集した操作履歴情報を操作履歴管理装置２００に送信する契機は、操作履歴収集装置１００が常時ネットワークに接続されているか否かによって異なる。例えば、操作履歴収集装置１００が常時ネットワークに接続されている場合には、作業者によって操作される毎の任意の契機や、一定間隔（例えば、１分間隔）の契機で、収集した操作履歴情報を操作履歴管理装置２００に送信する。また、例えば、操作履歴収集装置１００が常時ネットワークに接続されておらず、不定期にネットワークに接続される場合には、操作履歴収集装置１００がネットワークに接続されたときを契機として、収集した操作履歴情報を操作履歴管理装置２００に送信する。
【００２２】
また、操作履歴収集装置１００が、作業者が開発作業に使用する作業用端末である場合、図１には図示していないが、文書生成システム１０は、複数の操作履歴収集装置１００を備えていると考えられる。この場合、複数の操作履歴収集装置１００のそれぞれは、検知した操作履歴情報をそれぞれ操作履歴管理装置２００に送信する。
【００２３】
操作履歴管理装置２００は、操作履歴収集装置１００からネットワークを介して送信されてきた操作履歴情報を受信し、受信した操作履歴情報を、情報管理ＤＢ３００に格納（蓄積）させる装置である。なお、操作履歴管理装置２００は、常時ないしは不定期にネットワークに接続され、ネットワークに接続されたときに、受信した操作履歴情報を、ネットワークを介して情報管理ＤＢ３００に格納させる。
【００２４】
情報管理ＤＢ３００は、操作履歴管理装置２００から送信されてきた操作履歴情報、後述する文書生成装置４００によって算出された工数の情報、後述するプロジェクト情報管理装置５００から送信されたプロジェクトに関する情報（以下、「プロジェクト情報」という）を格納（蓄積）するデータベースである。
【００２５】
文書生成装置４００は、情報管理ＤＢ３００に格納されている操作履歴情報およびプロジェクト情報を取得し、プロジェクトの依頼書（作業指示書）及び報告書を生成する装置である。文書生成装置４００が生成する報告書には、プロジェクトの工数が含まれる。なお、文書生成装置４００によるプロジェクトの工数の算出方法に関する詳細な説明は、後述する。
【００２６】
プロジェクト情報管理装置５００は、Ｗｅｂブラウザ２０からネットワークを介して送信されたプロジェクトに関する情報を、プロジェクト情報として情報管理ＤＢ３００に格納（蓄積）させる装置である。このプロジェクト情報管理装置５００は、例えば、チケット管理システムを用いて実現することができる。
【００２７】
次に、本実施形態の文書生成システム１０の機能ブロックについて説明する。図２は、本実施形態の文書生成システム１０における機能ブロックの概略構成を示したブロック図である。
【００２８】
操作履歴収集装置１００は、操作履歴収集部１１０と、情報送信部１２０とを備えている。なお、以下の説明において、操作履歴収集装置１００は、作業者が開発作業を行うときに使用するパーソナルコンピュータ（ＰＣ）であるものとする。操作履歴収集部１１０は、常駐しているエージェントソフトウェアによって、作業者がプロジェクトの開発作業を行うときの操作履歴情報を収集する。操作履歴収集部１１０が収集する操作履歴情報には、作業者を識別する情報、作業者が使用しているアプリケーションの名称、作業者がアクセスしたファイル名、作業者によるキータッチ回数やマウスの操作時間などのファイルに対する操作内容などが含まれている。
【００２９】
ここで、操作履歴収集部１１０が収集する操作履歴情報について説明する。図３は、本実施形態の文書生成システム１０に備えた操作履歴収集部１１０が取得する対象の情報の一例を示した図である。図３では、操作履歴を収集するアプリケーションの一例と、それぞれのアプリケーションから取得する情報（操作）の一例とを示している。図３に示したように、操作履歴収集部１１０が収集する操作履歴情報は、作業者が使用しているアプリケーション毎に取得対象の情報が異なる。
【００３０】
図３に示した一例では、作業者が使用しているアプリケーションに係わらず、「操作者名（ログイン名）」、「使用マシン名」、「操作日時」、「アプリケーション（ＡＰ）起動、終了フラグ」などの共通の情報を取得する場合を示している。
【００３１】
また、作業者が使用しているアプリケーションが「文書作成アプリケーション」である場合には、共通の情報に加えて、操作内容として「ファイル名」、「操作時間（ウインドウアクティブ時間）」、「キータッチ回数」、「操作名（ファイルオープン／クローズ）」や、操作結果として「ファイルサイズ」、「ページ数」などを取得する場合を示している。
【００３２】
また、作業者が使用しているアプリケーションが「ウェブブラウザ」である場合には、共通の情報に加えて、操作内容として「操作対象物名（ＵＲＬ）」、「操作時間（ウインドウアクティブ時間）」、「キータッチ回数」、「操作名（入力時のテキストボックス名）」などを取得する場合を示している。
【００３３】
また、作業者が使用しているアプリケーションが「開発ツールアプリケーション」である場合には、共通の情報に加えて、操作内容として「操作対象物名（パースペクティブ名＋ファイル名）」、「操作時間（ウインドウアクティブ時間）」、「キータッチ回数」、「操作名（ファイルオープン／クローズ／試験実行／パースペクティブ切替）」や、操作結果として「文字数」、「ライン数」、「試験実行数，テストエラー数，テスト失敗数」などを取得する場合を示している。
【００３４】
また、作業者が使用しているアプリケーションが「メールアプリケーション」である場合には、共通の情報に加えて、操作内容として「操作対象物名（閲覧／作成）」、「操作時間（ウインドウアクティブ時間）」、「キータッチ回数」などを取得する場合を示している。また、「メールの送信先アドレス」や、「メールの題名のテキスト」などの情報を取得してもよい。
【００３５】
情報送信部１２０は、作業者が使用しているアプリケーション毎に操作履歴収集部１１０が収集した、それぞれのアプリケーションに応じた操作履歴情報を、ネットワークを介して操作履歴管理装置２００に送信する。情報送信部１２０は、操作履歴収集装置１００が常時ネットワークに接続されている場合には、任意の契機（例えば、毎分）で、操作履歴収集装置１００が不定期にネットワークに接続される場合には、操作履歴収集装置１００がネットワークに接続されたときを契機として、操作履歴情報を操作履歴管理装置２００に送信する。
【００３６】
操作履歴管理装置２００は、情報送受信部２１０と、ＤＢアクセス部２２０とを備えている。情報送受信部２１０は、操作履歴収集装置１００に備えた情報送信部１２０から送信された操作履歴情報を受信し、受信した操作履歴情報を、ＤＢアクセス部２２０に出力する。ＤＢアクセス部２２０は、情報送受信部２１０から入力された操作履歴情報を、情報管理ＤＢ３００に格納（蓄積）させる。なお、ＤＢアクセス部２２０が操作履歴情報を情報管理ＤＢ３００に格納する際には、入力された様々な形式の操作履歴情報の形式を揃えるためのフォーマット変換などが行われる。そして、ＤＢアクセス部２２０は、フォーマット変換した後の操作履歴情報を、情報管理ＤＢ３００に格納させる。なお、操作履歴管理装置２００が情報管理ＤＢ３００に格納する操作履歴情報に関する詳細な説明は、後述する。
【００３７】
プロジェクト情報管理装置５００は、情報送受信部５１０と、ＤＢアクセス部５２０と、チケット管理部５３０とを備えている。情報送受信部５１０は、プロジェクトマネージャによってＷｅｂブラウザ２０から入力されたプロジェクトに関する情報を受け付け、受け付けた情報に基づいてチケットを生成し、当該チケットを含むプロジェクト情報を、ＤＢアクセス部５２０に出力する。チケットとは、あるプロジェクトの工程について、実施状態、実施者及び工数を関連付けた情報である。なお、チケットの実施状態の初期値は「未着手」であり、工数の初期値は「０」である。また、予め工程を実施する作業者が決まっている場合には、チケットの実施者に当該工程を実施する作業者の名前を記録しておいても良い。ここで、プロジェクトマネージャがＷｅｂブラウザ２０から入力するプロジェクト情報には、プロジェクトの工程としてＷＢＳ（Ｗｏｒｋ  Ｂｒｅａｋｄｏｗｎ  Ｓｔｒｕｃｔｕｒｅ）情報が含まれている。そして、ＷＢＳ情報には、現在行っているプロジェクトのＷＢＳを実施したときの成果として生成される成果物の情報や、ＷＢＳを実施した成果をして生成されるものではないが、現在のプロジェクトのＷＢＳを実施する際に参照される、ＷＢＳの前工程あるいは予め生成されていた参照物の情報などが、管理の対象物として含まれている。なお、プロジェクト情報管理装置５００が情報管理ＤＢ３００に格納するプロジェクト情報に関する詳細な説明は、後述する。
また、プロジェクト情報管理装置５００のチケット管理部５３０は、作業者が工程の実施を開始すると、実施を開始した工程が示すチケットの実施状態を「着手中」に書き換える。また、プロジェクト情報管理装置５００のチケット管理部５３０は、作業者が工程の実施を完了すると、実施を完了した工程が示すチケットの実施状態を「完了」に書き換える。
【００３８】
ＤＢアクセス部５２０は、チケット管理部５３０が生成したチケットを含むプロジェクト情報を、情報管理ＤＢ３００に格納（蓄積）させる。なお、ＤＢアクセス部５２０がプロジェクト情報を情報管理ＤＢ３００に格納する際には、入力されたプロジェクト情報の形式を揃えるためのフォーマット変換などを行い、フォーマット変換した後のプロジェクト情報を、情報管理ＤＢ３００に格納させてもよい。
【００３９】
情報管理ＤＢ３００は、操作履歴情報ＤＢ３１０と、プロジェクト情報管理ＤＢ３２０と、工数管理ＤＢ３３０と、書類管理ＤＢ３４０とを備えている。操作履歴情報ＤＢ３１０は、操作履歴管理装置２００に備えたＤＢアクセス部２２０から入力された、操作履歴情報を格納する。プロジェクト情報管理ＤＢ３２０は、プロジェクト情報管理装置５００に備えたＤＢアクセス部５２０から入力されたプロジェクト情報を格納する。工数管理ＤＢ３３０は、文書生成装置４００が算出した工数の算出結果を格納する。なお、工数管理ＤＢ３３０が格納する工数の算出結果に関する詳細な説明は、後述する。書類管理ＤＢ３４０は、文書生成装置４００が生成した依頼書、報告書、修正した報告書、報告書の差分などの文書を格納する。
【００４０】
文書生成装置４００は、情報送受信部４１０と、ＤＢアクセス部４２０と、工数算出部４３０と、工数入力部４４０と、報告書生成部４５０と、報告書修正部４６０と、依頼書生成部４７０と、差分項目表示部４８０と、差分工程表示部４９０とを備えている。情報送受信部４１０は、Ｗｅｂブラウザ２０を介してプロジェクトマネージャから入力された情報に基づいて、文書生成装置４００における工数の算出処理の実行するための指示をＤＢアクセス部４２０および工数算出部４３０に出力する。また、情報送受信部４１０は、工数算出部４３０による工数の算出結果を、Ｗｅｂブラウザ２０に送信し、表示させる。
【００４１】
ＤＢアクセス部４２０は、情報送受信部４１０から入力された工数の算出処理の実行指示に応じて、情報管理ＤＢ３００に備えた操作履歴情報ＤＢ３１０とプロジェクト情報管理ＤＢ３２０とから、工数を算出するために必要な情報を取得し、情報送受信部４１０を介して、工数算出部４３０に出力する。より具体的には、ＤＢアクセス部４２０は、操作履歴情報ＤＢ３１０から操作履歴情報を取得し、プロジェクト情報管理ＤＢ３２０からプロジェクト情報を取得し、それぞれの情報を工数算出部４３０に出力する。
【００４２】
また、ＤＢアクセス部４２０は、情報送受信部４１０を介して入力された工数算出部４３０による工数の算出結果を、情報管理ＤＢ３００に備えた工数管理ＤＢ３３０に格納（蓄積）させる。
【００４３】
また、ＤＢアクセス部４２０は、工数管理ＤＢ３３０に格納された工数の算出結果を取得し、情報送受信部４１０を介してＷｅｂブラウザ２０に出力することによって、工数算出部４３０による工数の算出結果を、Ｗｅｂブラウザ２０に表示させる。
【００４４】
工数算出部４３０は、操作履歴情報およびプロジェクト情報に基づいて、プロジェクト情報に対応するプロジェクトの開発作業の工数を算出する。なお、工数算出部４３０によるプロジェクトの工数の算出方法に関する詳細な説明は、後述する。
【００４５】
工数入力部４４０は、情報送受信部４１０を介して作業者からプロジェクトの開発作業の工数の入力を受け付ける。報告書生成部４５０は、情報送受信部４１０を介して作業者から報告の対象となるプロジェクトの指定を受けて、当該プロジェクトについての報告書を生成する。報告書修正部４６０は、情報送受信部４１０を介した作業者の操作に従って、報告書生成部４５０が生成した報告書を修正する。依頼書生成部４７０は、情報送受信部４１０を介してプロジェクトマネージャから依頼の対象となるプロジェクトの指定を受けて、当該プロジェクトについての依頼書を生成する。差分項目表示部４８０は、報告書生成部４５０が生成した報告書と報告書修正部４６０が修正した報告書との差分を表示する差分項目情報を生成する。差分工程表示部４９０は、依頼書生成部４７０が生成した依頼書と報告書修正部４６０が修正した報告書との差分を表示する差分工程情報を生成する。
【００４６】
次に、本実施形態の文書生成システム１０における報告書生成処理について説明する。文書生成システム１０では、以下のような処理によって、作業の報告書を生成する。
【００４７】
（処理１）：事前に、プロジェクトマネージャがＷｅｂブラウザ２０からプロジェクトに関する情報を入力することによって、プロジェクト情報管理装置５００を介して、プロジェクト情報を情報管理ＤＢ３００内のプロジェクト情報管理ＤＢ３２０に格納（登録）しておく。
（処理２）：プロジェクトマネージャの指示によって、文書生成装置４００がプロジェクトの開発作業の指示書を生成して、情報管理ＤＢ３００内の書類管理ＤＢ３４０に格納する。
（処理３）：操作履歴収集装置１００が、作業者によるプロジェクトの開発作業における操作履歴情報を収集し、操作履歴管理装置２００を介して、操作履歴情報を情報管理ＤＢ３００内の操作履歴情報ＤＢ３１０に格納する。
（処理４）：文書生成装置４００が工数の算出処理を実行し、工数の算出結果を、情報管理ＤＢ３００内の工数管理ＤＢ３３０に格納する。
（処理５）：文書生成装置４００が、情報管理ＤＢ３００内の工数管理ＤＢ３３０に格納された工数の算出結果を取得し、当該工数を含む報告書を、情報管理ＤＢ３００内の書類管理ＤＢ３４０に格納する。
（処理６）：文書生成装置４００が、情報管理ＤＢ３００内の書類管理ＤＢ３４０に格納された依頼書及び報告書を取得し、修正前後の報告書の差分、及び依頼書と報告書の差分を、情報管理ＤＢ３００内の書類管理ＤＢ３４０に格納する。
【００４８】
最初に、プロジェクト情報を情報管理ＤＢ３００に登録する処理（処理１）について説明する。図４は、本実施形態の文書生成システム１０におけるプロジェクト情報の登録処理の流れを示したシーケンス図である。
【００４９】
まず、プロジェクト情報管理装置５００は、Ｗｅｂブラウザ２０にプロジェクト情報の入力画面を表示させる（ステップＳ１０１）。そして、プロジェクトマネージャは、表示された入力画面の表示に従って、チケットを含むプロジェクト情報を入力する。その後、Ｗｅｂブラウザ２０は、入力されたプロジェクト情報をプロジェクト情報管理装置５００に送信する（ステップＳ１０２）。
【００５０】
続いて、プロジェクト情報管理装置５００は、受信したプロジェクト情報を、情報管理ＤＢ３００に送信して格納させる（ステップＳ１０３）。情報管理ＤＢ３００は、プロジェクト情報を蓄積する（ステップＳ１０４）。そして、プロジェクト情報管理装置５００は、プロジェクト情報を正しく格納できたか否かを表す情報をＷｅｂブラウザ２０に表示させる（ステップＳ１０５）。なお、プロジェクト情報を正しく情報管理ＤＢ３００に格納できなかった場合には、プロジェクト情報管理装置５００は、再度ステップＳ１０１と同様に、Ｗｅｂブラウザ２０にプロジェクト情報の入力画面の表示をさせてもよい。
【００５１】
このようなシーケンスによって、文書生成システム１０における工数算出処理に必要なプロジェクト情報を、事前に情報管理ＤＢ３００に登録しておく。図５に、本実施形態の文書生成システム１０において、プロジェクト情報管理装置５００が情報管理ＤＢ３００に格納するプロジェクト情報のデータ構成の一例を示す。図５（ａ）には、プロジェクトのプロフィール情報のデータ構成の一例を示し、図５（ｂ）には、プロジェクトを実行する作業者の個人プロフィール情報のデータ構成の一例を示している。
【００５２】
なお、図５に示したプロジェクト情報のデータ構成の一例では、それぞれの情報を複数のレベルに分割して登録する場合の一例を示している。例えば、「プロジェクトプロフィール」には、「プロジェクトコード」、「名称」、「開始日（計画）」、「終了日（計画）」、「グループ」、「ＷＢＳ」、「管理対象物」などが、下位のレベルとして登録されている。また、例えば、「グループ」には、「グループＩＤ」、「グループ名称」、「親グループ」、「活動開始日（計画）」、「活動終了日（計画）」、「メンバ」などが下位のレベルとして登録され、さらに、「メンバ」には、「社員番号」、「ロール」、「リーダフラグ」、「所属開始日」、「所属終了日」などが下位のレベルとして登録されている。
【００５３】
なお、図５（ａ）に示したプロジェクトのプロフィール情報、および図５（ｂ）に示した個人プロフィール情報の各項目に登録されるデータは、図５内の各項目に対応して示した「説明」の内容を表すデータである。
【００５４】
次に、プロジェクトの開発作業の依頼書を生成して情報管理ＤＢ３００に格納する処理（処理２）について説明する。図６は、本実施形態の文書生成システム１０における依頼書の生成処理の流れを示したシーケンス図である。
【００５５】
まず、文書生成装置４００は、Ｗｅｂブラウザ２０に依頼書の条件入力画面を表示させる（ステップＳ１０６）。そして、プロジェクトマネージャは、表示された条件入力画面の表示に従って、作業を依頼する作業者、及びプロジェクトを構成する複数の項目のうち作業を依頼する項目の条件を入力する。作業を依頼する項目の条件の例としては、作業予定期間、作業者、作業者の属するグループなどが挙げられる。その後、Ｗｅｂブラウザ２０は、入力された作業者及び条件を文書生成装置４００に送信する（ステップＳ１０７）。
【００５６】
続いて、文書生成装置４００は、情報管理ＤＢ３００からプロジェクト情報を全て読み出す（ステップＳ１０８）。次に、文書生成装置４００は、読み出したプロジェクト情報の中から、ステップＳ１０７で受信した条件に合致するプロジェクト情報を抽出する（ステップＳ１０９）。そして、文書生成装置４００は、ステップＳ１０７で受信した作業者に対してステップＳ１０９で抽出したプロジェクト情報が示す項目の作業を依頼する依頼書を生成し、当該依頼書を、情報管理ＤＢ３００に送信して格納させる（ステップＳ１１０）。なお、生成した依頼書には、依頼書に固有のＩＤである依頼番号が付与され、また各項目には当該項目に対応するチケットのチケットＩＤが付与される。情報管理ＤＢ３００は、依頼書を蓄積する（ステップＳ１１１）。そして、文書生成装置４００は、情報管理ＤＢ３００に格納した依頼書を、Ｗｅｂブラウザ２０に表示させる（ステップＳ１１２）。
【００５７】
ここで、文書生成装置４００が生成する依頼書の例を示す。図７は、本実施形態の文書生成システム１０が生成する依頼書の一例を示す図である。
図７に示すように、文書生成装置４００が生成する依頼書には、依頼番号、依頼先の作業者、作業期間、及び作業項目が記載される。また、依頼書の各作業項目の末尾には、当該作業項目に対応するチケットのチケットＩＤが記載される。
【００５８】
次に、プロジェクトの開発作業における操作履歴情報を収集して情報管理ＤＢ３００に格納する処理（処理３）について説明する。図８は、本実施形態の文書生成システム１０における操作履歴情報の収集処理の流れを示したシーケンス図である。
【００５９】
まず、作業者がプロジェクトの開発作業において、操作履歴収集対象となる操作を行っている（ステップＳ２０１）とき、操作履歴収集装置１００は、作業者による操作対象物に対する操作を、エージェントソフトウェアによって検知する（ステップＳ２０２）。そして、操作履歴収集装置１００は、検知した操作対象物に対する操作内容を収集する（ステップＳ２０３）。その後、操作履歴収集装置１００は、収集した操作内容の情報を、操作履歴情報として操作履歴管理装置２００に送信する（ステップＳ２０４）。
【００６０】
続いて、操作履歴管理装置２００は、受信した操作履歴情報のフォーマット変換を行う（ステップＳ２０５）。その後、操作履歴管理装置２００は、操作履歴情報の蓄積要求を情報管理ＤＢ３００に出力し、フォーマット変換した後の操作履歴情報を情報管理ＤＢ３００に送信して格納させる（ステップＳ２０６）。情報管理ＤＢ３００は、フォーマット変換した後の操作履歴情報を蓄積する（ステップＳ２０７）。
【００６１】
この操作履歴情報の収集処理シーケンスは、作業者によって収集対象となっている何らかの操作が行われるたびに実行され、文書生成システム１０における工数算出処理に必要な操作履歴情報が、情報管理ＤＢ３００に格納される。図９に、本実施形態の文書生成システム１０において、操作履歴収集装置１００が収集し、操作履歴管理装置２００が情報管理ＤＢ３００に格納する操作履歴情報のデータ構成の一例を示す。図９（ａ）には、操作履歴情報のデータ構成の一例を示し、図９（ｂ）には、作業者が使用しているアプリケーションの操作に伴うパラメータの一例を示し、図９（ｃ）には、アプリケーションの操作結果の情報の一例を示している。
【００６２】
なお、図９（ａ）に示した操作履歴情報のデータ構成の一例では、それぞれの情報を複数のレベルに分割して登録する場合の一例を示している。例えば、最上位のレベルの情報として、「ヘッダ情報」、「アプリケーション操作情報」、「操作結果情報」が収集されている。また、例えば、「アプリケーション操作情報」には、「アプリケーション名」、「起動フラグ」、「終了フラグ」、「操作内容」などが下位のレベルの情報として収集され、さらに、「操作内容」には、「操作対象物名」、「操作時間」、「キー回数」、「詳細操作内容」などが下位のレベルの情報として収集されている。さらに、「詳細操作内容」には、「操作名」、「操作パラメータ」などが下位のレベルの情報として収集され、さらに、「操作パラメータ」には、「パラメータ名」、「パラメータ値」などが下位のレベルの情報として収集されている。
【００６３】
また、図９（ｂ）に示したアプリケーションの操作に伴うパラメータの一例では、それぞれの「対象アプリケーション」毎に、アプリケーションの操作名とパラメータ名とが登録されている場合の一例を示している。例えば、「ウェブブラウザ」では、操作名として「閲覧」と「入力」が登録され、「入力」のパラメータ名として「対象オブジェクト名」が登録されている。
【００６４】
また、図９（ｃ）に示したアプリケーションの操作結果の情報の一例では、それぞれの「対象アプリケーション」毎に、アプリケーションの動作の契機名とパラメータ名とが登録されている場合の一例を示している。例えば、「文書作成アプリケーション」では、契機名として「ファイルオープン」、「ファイルクローズ」が登録され、それぞれのパラメータ名として「ファイルサイズ」、「ページ数」が登録されている。
【００６５】
なお、図９（ａ）に示した操作履歴情報、図９（ｂ）に示したアプリケーションの操作に伴うパラメータ、図９（ｃ）に示したアプリケーションの操作結果の各項目に登録されるデータは、図９内の各項目に対応して示した「説明」の内容を表すデータである。
【００６６】
次に、文書生成装置４００による工数の算出処理（処理４）について説明する。図１０は、本実施形態の文書生成システム１０において、文書生成装置４００が行う工数の算出処理の流れを示したシーケンス図である。
【００６７】
まず、文書生成装置４００は、Ｗｅｂブラウザ２０に工数を算出する期間の情報を入力するための入力画面を表示させる（ステップＳ３０１）。そして、プロジェクトマネージャは、表示された入力画面の表示に従って、工数の算出期間の情報を入力する。その後、Ｗｅｂブラウザ２０は、入力された工数の算出期間の情報を文書生成装置４００に送信する（ステップＳ３０２）。
【００６８】
続いて、文書生成装置４００は、入力された工数の算出期間の情報に基づいて、情報管理ＤＢ３００から、工数算出処理に必要な操作履歴情報（ステップＳ３０３）と、プロジェクト情報（ステップＳ３０４）とを取得する。その後、文書生成装置４００は、取得した操作履歴情報およびプロジェクト情報に基づいて、プロジェクト情報に対応するプロジェクトにおける、入力された工数の算出期間の開発作業の工数を算出する（ステップＳ３０５）。
【００６９】
続いて、文書生成装置４００は、工数の算出結果を情報管理ＤＢ３００に送信して格納させる（ステップＳ３０６）。情報管理ＤＢ３００は、工数の算出結果を蓄積する（ステップＳ３０７）。そして、文書生成装置４００は、工数を正しく算出できたか否かを表す情報をＷｅｂブラウザ２０に表示させる（ステップＳ３０８）。なお、工数を正しく算出できなかった場合には、文書生成装置４００は、再度ステップＳ３０１と同様に、Ｗｅｂブラウザ２０に工数を算出する期間の入力画面の表示をさせてもよい。
【００７０】
このようなシーケンスによって、文書生成システム１０における工数算出処理が行われ、算出結果を情報管理ＤＢ３００に格納しておく。なお、文書生成装置４００が工数の算出処理を開始する契機は、図１０に示したシーケンスのように、工数の算出期間の情報の入力を契機とすることに限定されるものではない。例えば、他の何らかの操作であってもよく、予め定めた一定間隔毎でもよい。
【００７１】
ここで、図１０に示したシーケンス図におけるステップＳ３０５の工数算出の処理について説明する。工数算出処理においては、収集された操作履歴が、プロジェクトの作業（ＷＢＳ）におけるいずれの作業であるかを特定する。そして、操作履歴情報に記録されている操作が、プロジェクトのＷＢＳを特定するためにＷＢＳ毎に定義した、ＷＢＳの作業を実施した結果である設計書やソースファイルなどの成果物、あるいは作業を実施するために参照される参照物に対する操作である場合には、操作履歴情報に記録されている操作の内容に基づいて、ＷＢＳの工数の算出を行う。なお、以下の説明においては、ＷＢＳで定義された成果物や参照物などの管理対象の物を、「管理対象物」という。
【００７２】
図１１は、本実施形態の文書生成システム１０における工数算出処理のアルゴリズムの概要を示した図である。また、図１２は、本実施形態の文書生成システム１０において工数算出処理を行う際に用いられる情報の一例を示した図である。
【００７３】
文書生成システム１０における工数算出処理においては、まず、ステップＳ３０５１において、プロジェクト作業の判定を行う。プロジェクト作業の判定では、作業者によるＰＣ（操作履歴収集装置１００）の操作が、工数を算出する対象のプロジェクトのＷＢＳに該当するか否かを判定する。より具体的には、操作履歴情報に含まれている操作対象物が、今回工数を算出するプロジェクトの管理対象物に相当するか否かを判定することによって、今回の操作が対象のプロジェクト作業であるかそれ以外の作業（プロジェクト外作業）であるかを判定する。
【００７４】
図１１に示したステップＳ３０５１においては、プロジェクト作業の判定の際に、予め定めた「管理対象物判定基準」（図１２（ａ）参照）を用いた場合を示している。この管理対象物判定基準は、管理対象物を判定するための情報が記載されており、例えば、管理対象物のファイル名に含まれる特定の文字列が記載された表（データ）である。そして、プロジェクト作業の判定においては、操作対象物のファイル名に、この管理対象物判定基準に記載された特定の文字列が含まれているか否かを判別することによって、操作履歴情報に含まれている操作対象物が対象プロジェクトの管理対象物であるか否かを機械的に判定する。この管理対象物判定基準は、プロジェクト情報と同様に、プロジェクトマネージャが事前に情報管理ＤＢ３００に登録してもよいし、ＷＢＳ情報に含まれる管理対象物の情報に基づいて事前に作成してもよい。
【００７５】
ステップＳ３０５１において、工数を算出する対象のプロジェクト作業であると判定された操作履歴情報は、続くステップＳ３０５２以降において、操作履歴情報に含まれている操作内容が、プロジェクトの中のいずれのＷＢＳの作業であるかを判定する。なお、それぞれのＷＢＳの作業には、固有の特徴（以下、「作業種別」という。例えば、コーディング、試験、レビューなど）があり、その特徴によって成果物や参照物に対する操作種別（編集や閲覧など）が異なる。そこで、操作内容のＷＢＳ作業の判定においては、まず、ステップＳ３０５２において、操作履歴情報に含まれている操作内容を用いて操作対象物に対する操作種別を判定する。
【００７６】
図１１に示したステップＳ３０５２においては、操作種別を判定の際に、予め定めた「操作種別判定基準」（図１２（ｂ）参照）を用いた場合を示している。この操作種別判定基準は、操作対象物に対する操作種別を判定する際の基準が記載されており、例えば、操作対象物に対する操作であると判定される「操作時間（ウィンドウのアクティブ時間）」や「キータッチ回数」などの値が含まれている。そして、操作種別の判定においては、操作対象物のファイルに対する操作が、操作種別判定基準に含まれる値以上であるか否かを判別することによって、操作種別を機械的に判定する。この操作種別判定基準の値は、予め定めておいてもよいが、例えば、実験などによって決定してもよい。
【００７７】
続いて、ステップＳ３０５３において、操作履歴情報に基づいてプロジェクト作業のＷＢＳの特定を行う。図１１に示したステップＳ３０５３においては、ＷＢＳの特定の際に、予め定めたプロジェクト情報に含まれている「ＷＢＳ情報」（図１２（ｃ）参照）を用いた場合を示している。より具体的には、操作履歴情報に含まれている操作対象物と、ＷＢＳ情報に含まれる管理対象物とを比較し、操作対象物と同じ管理対象物を含むＷＢＳを選択する。
【００７８】
続いて、ステップＳ３０５４において、操作対象物に対する操作種別に基づいて、ＷＢＳ作業の実施の判定を行う。ＷＢＳ作業の実施判定では、操作履歴情報に含まれる操作内容が、ＷＢＳ作業を実施するための操作であるか否かを判定する。
【００７９】
図１１に示したステップＳ３０５４においては、ＷＢＳ作業の実施判定の際に、予め定めた「ＷＢＳ作業実施判定基準」（図１２（ｄ）参照）を用いた場合を示している。このＷＢＳ作業実施判定基準は、管理対象物に対する操作について、操作種別によってＷＢＳ作業を実施したか否かを判定する基準が記載されており、例えば、ＷＢＳの成果物に対する操作種別（図１２（ｂ）に示した操作種別判定基準における操作種別）が記載されている。そして、ＷＢＳ作業の実施判定においては、ＷＢＳ作業実施判定基準に合致した操作がなされたか否かを判別することによって、操作履歴情報に含まれている操作がＷＢＳ作業を実施したか否かを判定する。ここで、ＷＢＳ作業を実施したと判定された操作履歴情報に記録されている操作を、ＷＢＳの作業として、工数の算出に使用する。また、ＷＢＳ作業を実施しなかったと判定された操作履歴情報は、ＷＢＳ以外のプロジェクトに関する作業として、工数の算出には使用しない。
【００８０】
ここで、操作履歴情報に含まれている操作がＷＢＳ作業を実施したか否かを判定する場合の例について説明する。図１３は、本実施形態の文書生成システム１０において工数算出処理アルゴリズムを実施した場合の一例を説明する図である。図１３に示した一例は、１つの操作対象物への操作（日別操作ＩＤ＝００００１）がどのＷＢＳ作業実施に相当するのかを判定する場合の処理の例である。なお、図１３には、図１３（ａ）に操作履歴情報、図１３（ｂ）に管理対象物判定基準、図１３（ｃ）に操作種別判定基準、図１３（ｄ）にＷＢＳ作業実施判定基準、図１３（ｅ）にプロジェクト情報のＷＢＳ情報を、それぞれ示している。また、図１３には、それぞれの処理において用いられる情報も示している。
【００８１】
まず、処理Ｓ１で、プロジェクト作業の判定を行う（図１１のステップＳ３０５１参照）。処理Ｓ１では、管理対象物判定基準から、日別操作ＩＤ＝００００１が「αプロジェクトのＡＢＣ機能プログラム」であると判定される。
【００８２】
続いて、処理Ｓ２で、操作種別の判定を行う（図１１のステップＳ３０５２参照）。処理Ｓ２では、操作種別判定基準から、日別操作ＩＤ＝００００１の操作種別は「デバッグ」であると判定される。
【００８３】
続いて、処理Ｓ３で、ＷＢＳの特定を行う（図１１のステップＳ３０５３参照）。処理Ｓ３−１では、処理Ｓ１の結果から、日別操作ＩＤ＝００００１の管理対象物が「ＡＢＣ機能プログラム」であると特定される。ここで、「ＡＢＣ機能プログラム」は、プロジェクト情報のＷＢＳ情報に「ＡＢＣ機能試験の参照物」として登録されている。このことから、処理Ｓ３−１では、日別操作ＩＤ＝００００１のＷＢＳは「ＡＢＣ機能試験」であると特定される。また、ＷＢＳ「ＡＢＣ機能試験」の作業種別は「試験」であるため、処理Ｓ３−２では、ＷＢＳ作業実施判定基準から、ＷＢＳ「ＡＢＣ機能試験」のＷＢＳ作業実施判定基準は参照物「ＡＢＣ機能プログラム」に対する「参照物＝デバッグ」であることがわかる。
【００８４】
続いて、処理Ｓ４で、ＷＢＳ作業の実施判定を行う（図１１のステップＳ３０５４参照）。処理Ｓ２の結果から、日別操作ＩＤ＝００００１では「デバッグ」を行ったと判定されている。すなわち、日別操作ＩＤ＝００００１は、ＷＢＳ作業実施判定基準の「参照物＝デバッグ」を満足する。このことから、処理Ｓ４では、日別操作ＩＤ＝００００１では、ＷＢＳ「ＡＢＣ機能試験」のＷＢＳ作業を実施したと判定される。
【００８５】
次に、操作履歴情報に含まれている操作がＷＢＳ作業を実施したか否かを判定する場合の別の例について説明する。図１４は、本実施形態の文書生成システム１０において工数算出処理アルゴリズムを実施した場合の別の一例を説明する図である。図１４に示した一例は、２つの操作対象物への操作（日別操作ＩＤ＝００００２および日別操作ＩＤ＝００００３）を判定する場合の処理の例である。なお、図１４には、図１４（ａ）に操作履歴情報、図１４（ｂ）に管理対象物判定基準、図１４（ｃ）に操作種別判定基準、図１４（ｄ）にＷＢＳ作業実施判定基準、図１４（ｅ）にプロジェクト情報のＷＢＳ情報を、それぞれ示している。また、図１４には、それぞれの処理において用いられる情報も示している。
【００８６】
まず、処理Ｓ１で、プロジェクト作業の判定を行う（図１１のステップＳ３０５１参照）。処理Ｓ１−１では、管理対象物判定基準から、日別操作ＩＤ＝００００２が「βプロジェクトのレビュー結果表」であると判定される。また、処理Ｓ１−２では、管理対象物判定基準から、日別操作ＩＤ＝００００３が「βプロジェクトのユーザマニュアル」であると判定される。
【００８７】
続いて、処理Ｓ２で、操作種別の判定を行う（図１１のステップＳ３０５２参照）。処理Ｓ２−１では、操作種別判定基準から、日別操作ＩＤ＝００００２の操作種別は「編集」であると判定される。また、処理Ｓ２−２では、操作種別判定基準から、日別操作ＩＤ＝００００３の操作種別は「閲覧」であると判定される。
【００８８】
続いて、処理Ｓ３で、ＷＢＳの特定を行う（図１１のステップＳ３０５３参照）。処理Ｓ３−１−１では、処理Ｓ１−１の結果から、日別操作ＩＤ＝００００２の管理対象物が「レビュー結果表」であると特定される。ここで、「レビュー結果表」は、プロジェクト情報のＷＢＳ情報に「ユーザマニュアルレビューの成果物」として登録されている。このことから、処理Ｓ３−１−１では、日別操作ＩＤ＝００００２のＷＢＳは「ユーザマニュアルレビュー」であると特定される。また、ユーザマニュアルレビューの作業種別は「レビュー」であるため、処理Ｓ３−１−２では、ＷＢＳ作業実施判定基準から、ＷＢＳ「ユーザマニュアルレビュー」のＷＢＳ作業実施判定基準の１つ目が成果物「レビュー結果表」に対する編集「成果物＝編集」であることがわかる。
【００８９】
また、処理Ｓ３−２−１では、処理Ｓ１−２の結果から、日別操作ＩＤ＝００００３の管理対象物が「ユーザマニュアル」であると特定される。ここで、「ユーザマニュアル」は、プロジェクト情報のＷＢＳ情報に「ユーザマニュアルレビューの参照物」として登録されている。このことから、処理Ｓ３−２−１では、日別操作ＩＤ＝００００３のＷＢＳは「ユーザマニュアルレビュー」であると特定される。また、ユーザマニュアルレビューの作業種別は「レビュー」であるため、処理Ｓ３−２−２では、ＷＢＳ作業実施判定基準から、ＷＢＳ「ユーザマニュアルレビュー」のＷＢＳ作業実施判定基準の２つ目が参照物「ユーザマニュアル」に対する「参照物≠編集」であることがわかる。
【００９０】
続いて、処理Ｓ４で、ＷＢＳ作業の実施判定を行う（図１１のステップＳ３０５４参照）。処理Ｓ２−１の結果から、日別操作ＩＤ＝００００２では「編集」を行ったと判定されている。また、処理Ｓ２−２の結果から、日別操作ＩＤ＝００００３では「閲覧」を行ったと判定されている。すなわち、日別操作ＩＤ＝００００２は、ＷＢＳ作業実施判定基準の１つ目の条件「成果物＝編集」を満足し、日別操作ＩＤ＝００００３は、ＷＢＳ作業実施判定基準の２つ目の条件「すべての参照物≠編集」を満足する。このことから、日別操作ＩＤ＝００００２および日別操作ＩＤ＝００００３を合わせると、処理Ｓ４では、ＷＢＳ「ユーザマニュアルレビュー」のＷＢＳ作業を実施したと判定される。
【００９１】
次に、ＷＢＳの工数の算出処理について説明する。図１５は、本実施形態の文書生成システム１０における工数の算出処理の処理手順を示したフローチャートの一例である。また、図１６は、本実施形態の文書生成システム１０において工数算出処理を行う際に用いられる情報または工数算出処理によって得られる結果の情報の一例を示した図である。
【００９２】
操作履歴情報に基づいて、各工数集計単位（操作単位、日別操作単位、管理対象物別作業単位、ＷＢＳ別作業単位）について工数を算出し、それぞれの算出結果を、工数管理ＤＢ３３０に格納（蓄積）する。また、同じＷＢＳ作業を実施していると判定された操作履歴のデータ同士の合算などが行われる。
【００９３】
まず、ステップＳ３０２において、Ｗｅｂブラウザ２０から工数の算出期間が入力されると、文書生成装置４００は、入力された全ての算出期間内の操作履歴情報に基づいて、ステップＳ３５１に示した操作単位算出の処理を行う。なお、ステップＳ３５１の操作単位算出の処理ループは、ステップＳ３０２において入力された算出期間の操作単位の算出が終了するまで繰り返される。
【００９４】
ここで、操作単位とは、同一の作業者が同一のアプリケーションで、同一のアプリケーション利用種別で、同一の管理対象物に対して「同一の作業」を行ったときの一連、すなわち時間的に隣接する作業のことをいう。なお、「同一の作業」とは、アプリケーションやアプリケーションに対する操作によって定義され、例えば、時刻ｔでの操作履歴情報と隣接する時刻ｔ＋１分での操作履歴情報とで、ＰＣ（操作履歴収集装置１００）にスクリーンセーバが起動されておらず、かつ同じ管理対象物に対しての操作が行われている（ウィンドウがアクティブになっている）場合をいう（図１６（ａ）参照）。
【００９５】
また、操作単位の算出においては、同一の作業者が、異なるＰＣ（操作履歴収集装置１００）の別のアカウントを用いて同じ管理対象物を操作したときも、「同一の作業」であると判定する。例えば、アカウントＡとアカウントＢとが同一の作業者のアカウントであるか否かの判定は、プロジェクト情報に含まれる個人プロフィール情報内の「アカウント情報」に記載されている情報に基づいて判定する。また、時刻ｔと時刻ｔ＋１分との日付が異なる場合には、時刻ｔと時刻ｔ＋１分とは連続していないものと判定する。すなわち、操作単位は、同一の日付における作業を１つの単位とし、日付を跨いだ作業は、異なる操作単位として分割する。
【００９６】
ステップＳ３５１の操作単位算出の処理では、まず、ステップＳ３５１１において、文書生成装置４００内のＤＢアクセス部４２０が、操作履歴情報ＤＢ３１０から全ての算出期間内の操作履歴情報を取得し、情報送受信部４１０を介して工数算出部４３０に出力する。続いて、ステップＳ３５１２において、工数算出部４３０は、入力された全ての操作履歴情報を、図１１に示したアルゴリズムによって、工数算出処理に使用する操作履歴情報を判定し、操作単位を算出する。そして、工数算出部４３０は、操作単位の算出結果（図１６（ｂ）参照）を、情報送受信部４１０およびＤＢアクセス部４２０を介して、工数管理ＤＢ３３０に格納（蓄積）する。
【００９７】
ステップＳ３５１の操作単位算出の処理ループが終了すると、続いて、文書生成装置４００は、算出した操作単位の算出結果に基づいて、ステップＳ３５２に示した日別操作単位算出の処理を行う。なお、ステップＳ３５２の日別操作単位算出の処理ループは、ステップＳ３０２において入力された算出期間の日別操作単位の算出が終了するまで繰り返される。
【００９８】
ここで、日別操作単位とは、各操作単位について、「作業者」、「日」、「操作対象物」、および「アプリケーション利用種別」が同一のものについて集計した結果のことをいう。なお、同一の作業者が同一のアプリケーションで同一の管理対象物を同じ日に操作している場合は、同じ日別操作単位に属するものとする。
【００９９】
ステップＳ３５２の日別操作単位算出の処理では、まず、ステップＳ３５２１において、文書生成装置４００内のＤＢアクセス部４２０が、工数管理ＤＢ３３０から、ステップＳ３５１で格納した全ての操作単位を取得し、情報送受信部４１０を介して工数算出部４３０に出力する。続いて、ステップＳ３５２２において、工数算出部４３０は、入力された全ての操作単位に基づいて、日別操作単位を算出する。そして、工数算出部４３０は、日別操作単位の算出結果（図１６（ｃ）参照）を、情報送受信部４１０およびＤＢアクセス部４２０を介して、工数管理ＤＢ３３０に格納（蓄積）する。
【０１００】
ステップＳ３５２の日別操作単位算出の処理ループが終了すると、続いて、文書生成装置４００は、算出した日別操作単位の結果に基づいて、ステップＳ３５３に示した管理対象物別作業単位算出および操作種別判定の処理を行う。なお、ステップＳ３５３の管理対象物別作業単位算出および操作種別判定の処理ループは、ステップＳ３０２において入力された算出期間の管理対象物別作業単位算出および操作種別判定が終了するまで繰り返される。
【０１０１】
ここで、管理対象物別作業単位とは、各日別操作単位について、「作業者」および「管理対象物」が同一のものについて集計した結果のことをいう。より具体的には、例えば、プロジェクト情報として登録されている管理対象物判定基準に、日別操作単位に含まれる操作対象物がマッチするか否かによって、同じ管理対象物別作業単位に含まれるか否かを判定する。また、管理対象物別作業単位に含まれる「操作時間」や「キータッチ回数」の情報に基づいて、例えば、図１２（ｂ）に示した操作種別判定基準に従って判定を行い、各管理対象物別作業単位の操作種別を決定する。
【０１０２】
ステップＳ３５３の管理対象物別作業単位算出および操作種別判定の処理では、まず、ステップＳ３５３１において、文書生成装置４００内のＤＢアクセス部４２０が、工数管理ＤＢ３３０から、ステップＳ３５２で格納した全ての日別操作単位を取得し、情報送受信部４１０を介して工数算出部４３０に出力する。続いて、ステップＳ３５３２において、文書生成装置４００内のＤＢアクセス部４２０が、プロジェクト情報管理ＤＢ３２０からプロジェクト情報を取得し、情報送受信部４１０を介して工数算出部４３０に出力する。続いて、ステップＳ３５３３において、工数算出部４３０は、入力された全ての日別操作単位およびプロジェクト情報に基づいて、管理対象物別作業単位の算出および操作種別の判定を行う。そして、工数算出部４３０は、操作種別の判定結果を合わせた管理対象物別作業単位の算出結果（図１６（ｄ）参照）を、情報送受信部４１０およびＤＢアクセス部４２０を介して、工数管理ＤＢ３３０に格納（蓄積）する。
【０１０３】
ステップＳ３５３の管理対象物別作業単位算出および操作種別判定の処理ループが終了すると、続いて、文書生成装置４００は、算出した管理対象物別作業単位の結果に基づいて、ステップＳ３５４に示したＷＢＳ別作業単位算出の処理を行う。なお、ステップＳ３５４のＷＢＳ別作業単位算出の処理ループは、ステップＳ３０２において入力された算出期間のＷＢＳ別作業単位算出が終了するまで繰り返される。
【０１０４】
ここで、ＷＢＳ別作業単位とは、各管理対象物別作業単位について、「作業者」および「ＷＢＳ」が同一のものについて集計した結果のことをいう。なお、ＷＢＳ別作業単位の算出は、ＷＢＳ毎に行われるが、算出の対象となるＷＢＳは最下層のＷＢＳである（ＷＢＳのツリーにおいて、葉ノードに相当する）場合と、それ以外（ＷＢＳのツリーにおいて、内部ノードに相当する）の場合とで異なる。ステップＳ３５４のＷＢＳ別作業単位算出の処理では、最下層のＷＢＳを算出の対象として、ＷＢＳ作業実施判定基準を満たしたＷＢＳについて、管理対象物別作業単位を集計する。ＷＢＳ別作業単位の集計の対象にならなかった管理対象物別作業単位は、ＷＢＳ作業を実施したと判定されなかったプロジェクト作業として合算する。
【０１０５】
また、最下層のＷＢＳでない、すなわち、ＷＢＳのツリーにおいて内部ノードに相当するＷＢＳに対するＷＢＳ別作業単位の算出は、ＷＢＳのツリーにおいて葉ノードに相当するステップＳ３５４のＷＢＳ別作業単位の算出結果を、後述するステップＳ３５５において合算することによって、ＷＢＳ別作業単位の算出を行う。
【０１０６】
ステップＳ３５４のＷＢＳ別作業単位算出の処理、すなわち、葉ノードのＷＢＳ別作業単位算出の処理では、まず、ステップＳ３５４１において、文書生成装置４００内のＤＢアクセス部４２０が、工数管理ＤＢ３３０から、ステップＳ３５３で格納した全ての管理対象物別作業単位を取得し、情報送受信部４１０を介して工数算出部４３０に出力する。
続いて、ステップＳ３５４２において、文書生成装置４００内のＤＢアクセス部４２０が、プロジェクト情報管理ＤＢ３２０からプロジェクト情報を取得し、情報送受信部４１０を介して工数算出部４３０に出力する。続いて、ステップＳ３５４３において、工数算出部４３０は、入力された全ての管理対象物別作業単位およびプロジェクト情報に基づいて、葉ノードのＷＢＳ別作業単位の算出を行う。そして、工数算出部４３０は、葉ノードのＷＢＳ別作業単位の算出結果（図１６（ｅ）参照）を、情報送受信部４１０およびＤＢアクセス部４２０を介して、工数管理ＤＢ３３０に格納（蓄積）する。
【０１０７】
ステップＳ３５４の葉ノードのＷＢＳ別作業単位算出の処理ループが終了すると、続いて、文書生成装置４００は、算出した葉ノードのＷＢＳ別作業単位の結果に基づいて、ステップＳ３５５において、内部ノードのＷＢＳ別作業単位の算出（合算）処理を行う。ステップＳ３５５の内部ノードのＷＢＳ別作業単位の算出（合算）処理によって、葉ノードのＷＢＳ別作業単位から、上位のノードのＷＢＳ別作業単位を算出する。
【０１０８】
ステップＳ３５５の内部ノードのＷＢＳ別作業単位算出（合算）の処理では、文書生成装置４００内のＤＢアクセス部４２０が、工数管理ＤＢ３３０から、ステップＳ３５４で格納した全ての葉ノードのＷＢＳ別作業単位を取得し、情報送受信部４１０を介して工数算出部４３０に出力する。そして、工数算出部４３０は、入力された全ての葉ノードのＷＢＳ別作業単位を合算して、内部ノードのＷＢＳ別作業単位の算出を行い、内部ノードのＷＢＳ別作業単位の算出結果を、情報送受信部４１０およびＤＢアクセス部４２０を介して、工数管理ＤＢ３３０に格納（蓄積）する。なお、内部ノードのＷＢＳ別作業単位の合算では、例えば、「プロジェクト情報の親ＷＢＳＩＤ」が同一のものを合算する。また、内部ノードのＷＢＳ別作業単位の算出結果の形式は、図１６（ｅ）に示した葉ノードのＷＢＳ別作業単位の算出結果の形式と同様であるため、図示を省略する。
【０１０９】
このように、本実施形態の文書生成システム１０における工数の算出処理では、「ＷＢＳ」、「作業者」、および「日（時間）」がそれぞれ対応付けられた工数の算出結果を得る。これにより、文書生成システム１０では、「ＷＢＳ」、「作業者」、および「日（時間）」の関係を示す。
【０１１０】
なお、図１１及び図１５に示した工数算出処理では、操作種別及び作業種別を判別した上で工数を算出する場合について説明したが、これに限られず操作種別及び作業種別の判別を省略して工数の算出を行っても良い。この場合、例えば、以下に示す方法で操作対象物とＷＢＳとを関連付けることができる。
【０１１１】
操作種別及び作業種別の判別を省略して工数の算出を行う場合、プロジェクト情報管理ＤＢ３２０は、操作対象物とＷＢＳ名とを関連付けたＷＢＳ割当テーブルを記憶する。ＷＢＳ割当テーブルには、操作対象物として操作対象物のファイル名もしくは操作対象物を示すファイルの拡張子、操作対象物を格納するフォルダ名、または操作対象物を示すＵＲＬが格納される。
【０１１２】
そして、文書生成装置４００は、ＷＢＳ割当テーブルが記憶するファイル名の操作対象物が操作された場合、その操作時間を当該ファイル名に関連付けられたＷＢＳの工数として算出する。また、文書生成装置４００は、ＷＢＳ割当テーブルが記憶する拡張子を有する操作対象物が操作された場合、その操作時間を当該拡張子に関連付けられたＷＢＳの工数として算出する。また、文書生成装置４００は、ＷＢＳ割当テーブルが記憶するフォルダ名のフォルダに格納された操作対象物が操作された場合、その操作時間を当該フォルダ名に関連付けられたＷＢＳの工数として算出する。また、文書生成装置４００は、ＷＢＳ割当テーブルが記憶するＵＲＬが閲覧された場合、その閲覧時間を当該ＵＲＬに関連付けられたＷＢＳの工数として算出する。
【０１１３】
図１７は、操作対象物とＷＢＳとを関連付けるための画面の一例を示す図である。
ここで、ＷＢＳ割当テーブルへの情報の記録方法について説明する。
プロジェクト情報管理装置５００は、図１７に示すＷＢＳ割当画面を生成し、操作履歴収集装置１００またはＷｅｂブラウザ２０による操作を受け付け、操作対象物とＷＢＳとを関連付けてＷＢＳ割当テーブルに記録する。ＷＢＳ割当画面は、図１７に示すように、未割当ファイル一覧、ＷＢＳ一覧、及びＷＢＳ割当一覧の３つの情報を表示する画面である。
【０１１４】
未割当ファイル一覧は、作業者が操作を行った操作対象物のうち、ＷＢＳに割り当てられていないもののファイル名、及び当該操作対象物を格納するフォルダのフォルダ名を、当該操作対象物の操作に用いられたアプリケーションごとに示した一覧である。なお、未割当ファイル一覧においては、操作対象物のファイル名に関連付けて当該操作対象物の操作時間が表示され、フォルダ名に関連付けて、当該フォルダ名のフォルダに格納された全ての操作対象物の総操作時間が表示される。
ＷＢＳ一覧は、プロジェクト情報管理ＤＢ３２０が記憶するＷＢＳの一覧である。
ＷＢＳ割当一覧は、上記テーブルにおいて既にＷＢＳに関連付けられている操作対象物の一覧である。
【０１１５】
ここで、図１７に示すＷＢＳ割当画面の操作により操作対象物とＷＢＳとを関連付ける方法を説明する。
ＷＢＳ割当画面においては、未割当ファイル一覧に含まれるファイル名、フォルダ名及びアプリケーション名が、ドラッグ・アンド・ドロップ可能に表示される。これにより、作業者が操作履歴収集装置１００を操作して、またはプロジェクトマネージャがＷｅｂブラウザ２０を操作して、ファイル名、フォルダ名及びアプリケーション名をドラッグすることができる。ここで、ファイル名またはフォルダ名が、ＷＢＳ一覧に含まれる何れかのＷＢＳの上でドロップされると、プロジェクト情報管理装置５００は、ドラッグ・アンド・ドロップされたファイル名またはフォルダ名と、当該ファイル名またはフォルダ名をドロップされたＷＢＳとを関連付けて、ＷＢＳ割当テーブルに記録する。
【０１１６】
また、アプリケーション名が、ＷＢＳ一覧に含まれる何れかのＷＢＳの上でドロップされると、プロジェクト情報管理装置５００は、ドラッグ・アンド・ドロップされたアプリケーション名が示すアプリケーションに関連付けられた拡張子（アプリケーションがＷｅｂブラウザである場合は、ＵＲＬ）を全て、そのＷＢＳに関連付けてＷＢＳ割当テーブルに記録する。すなわち、これによりアプリケーションで操作したファイルを一括してＷＢＳに割り当てることができる。
【０１１７】
そして、プロジェクト情報管理装置５００は、ファイル名または拡張子をＷＢＳに関連付けられた場合、当該ファイル名または当該拡張子を含むファイル名を、未割当ファイル一覧から削除する。このとき、当該ファイル名が示す操作対象物を格納するフォルダが、他に未割当の操作対象物を格納していない場合、当該フォルダも未割当ファイル一覧から削除する。また、プロジェクト情報管理装置５００は、フォルダ名をＷＢＳに関連付けた場合、当該フォルダ名及び当該フォルダ名が示すフォルダに格納されている操作対象物のファイル名及びフォルダのフォルダ名を、未割当ファイル一覧から削除する。
【０１１８】
上記処理を、未割当ファイル一覧が空になるまで繰り返すことで、操作された全ての操作対象物をＷＢＳ割当テーブルに記録することができる。
【０１１９】
なお、図１５に示した工数算出処理の処理手順では、それぞれの算出処理のステップにおいて得られた算出結果を、都度、工数管理ＤＢ３３０に格納（蓄積）する場合について説明したが、例えば、文書生成装置４００内に算出結果を保持する記憶領域を備え、算出結果を記憶領域に保持する構成としてもよい。この場合には、記憶領域に保持している前の算出処理のステップの算出結果を、次の算出処理のステップで使用する。
【０１２０】
また、図１０および図１５に示した工数算出処理では、プロジェクトマネージャによる工数算出処理の実行要求に応じて、文書生成装置４００が工数の算出処理を実行する場合について説明したが、プロジェクトマネージャによる工数算出処理の実行要求がない場合にも自動で工数の算出処理を実行する構成としてもよい。例えば、夜間などに、情報管理ＤＢ３００に格納（蓄積）されている１日分の操作履歴情報に基づいて、事前に１日分の工数算出処理を実行し、工数の算出結果を情報管理ＤＢ３００に格納（蓄積）しておく。
【０１２１】
次に、工数を含む報告書を生成して書類管理ＤＢ３４０に格納する処理（処理５）について説明する。図１８は、本実施形態の文書生成システム１０における報告書の生成処理の流れを示したシーケンス図である。
【０１２２】
まず、文書生成装置４００は、操作履歴収集装置１００に報告の対象となるプロジェクトの項目（報告対象項目）を特定するための情報の入力画面を表示させる（ステップＳ４０１）。そして、作業者は、表示された入力画面の表示に従って、報告対象項目を特定するための情報を入力する。報告対象項目を特定するための情報の例としては、依頼書に記載された依頼番号や、対象となる期間や、項目そのものなどが挙げられる。その後、操作履歴収集装置１００は、入力された情報を文書生成装置４００に送信する（ステップＳ４０２）。
【０１２３】
続いて、文書生成装置４００は、入力された報告対象項目を特定するための情報に基づいて報告対象項目を特定し、情報管理ＤＢ３００から、当該報告対象項目の工数情報（工数算出処理における算出結果）を取得する（ステップＳ４０３）。なお、報告対象項目を特定するための情報が依頼番号である場合、文書生成装置４００は、情報管理ＤＢ３００において当該依頼番号に関連付けられた依頼書から期間を抽出し、入力した作業者を作業実施者とし、かつ当該期間内に開始日及び終了日が含まれるＷＢＳが示す項目を報告対象項目と特定する。また、報告対象項目を特定するための情報が期間である場合、文書生成装置４００は、入力した作業者を作業実施者とし、かつ当該期間内に開始日及び終了日が含まれるＷＢＳが示す項目を報告対象項目と特定する。また、本実施形態では、作業者に報告対象項目を特定するための情報を入力させる場合について説明したが、例えば当該情報の入力を省略し、当該作業者について最後に生成した依頼書が示す期間内に開始日及び終了日が含まれるＷＢＳが示す項目を報告対象項目と特定しても良い。
【０１２４】
続いて、文書生成装置４００は、操作履歴収集装置１００に、特定した報告対象項目それぞれについての工数の入力画面を表示させる（ステップＳ４０４）。そして、作業者は、表示された入力画面の表示に従って、報告対象項目それぞれについての工数を入力する。その後、操作履歴収集装置１００は、入力された工数の情報を文書生成装置４００に送信する（ステップＳ４０５）。
【０１２５】
その後、文書生成装置４００は、情報管理ＤＢ３００から取得した工数情報及び作業者が入力した工数情報に基づいて、報告書を生成する（ステップＳ４０６）。
ここで、文書生成装置４００が生成する報告書の例を示す。図１９は、本実施形態の文書生成システム１０が生成する報告書の一例を示す図である。
図１９に示すように、文書生成装置４００が生成する報告書には、作業者、対象年月、並びに、対象年月の日ごとに、作業開始時刻、作業終了時刻、休憩時間、稼働時間、作業内容、自動計測工数（文書生成装置４００が計算した工数）及び申告工数（作業者が入力した工数）が記載される。また、報告書の各作業内容の末尾には、当該作業した項目に対応するチケットのチケットＩＤが記載される。なお、休憩時間は、作業開始時刻から作業終了時刻までの間におけるスクリーンセーバの延べ実行時間によって算出される時間である。また、稼働時間は、作業開始時刻から作業終了時刻までの時間から休憩時間を差し引いた時間である。
【０１２６】
このように、報告書に作業者が申告した工数と自動計測した工数とを表示することで、作業者が工数を偽って報告したか否かを、プロジェクトマネージャが把握しやすくすることができる。なお、自動計測した工数はあくまで作業者が操作履歴収集装置１００を用いて作業した工数を示すものであって、会議など操作履歴収集装置１００を用いない作業の工数は含まれない。したがって、作業者が工数を偽らずに報告をした場合であっても、作業者が申告した工数と自動計測した工数とは一致するとは限らない。
【０１２７】
次に、文書生成装置４００は、当該報告書を、情報管理ＤＢ３００に送信して格納させる（ステップＳ４０７）。情報管理ＤＢ３００は、報告書を蓄積する（ステップＳ４０８）。そして、文書生成装置４００は、情報管理ＤＢ３００に格納した報告書を、操作履歴収集装置１００に表示させる（ステップＳ４０９）。
【０１２８】
次に、作業者は、操作履歴収集装置１００に表示された報告書の修正事項を入力する。修正事項の例としては、報告対象項目を削除する修正や、報告対象項目にコメントなどの付記事項を追加する修正などが挙げられる。その後、操作履歴収集装置１００は、入力された修正事項を文書生成装置４００に送信する（ステップＳ４１０）。
【０１２９】
その後、文書生成装置４００は、作業者が入力した修正事項に基づいて、報告書を修正する（ステップＳ４１１）。次に、文書生成装置４００は、修正した報告書を、情報管理ＤＢ３００に送信して格納させる（ステップＳ４１２）。情報管理ＤＢ３００は、報告書を蓄積する（ステップＳ４１３）。なお、このとき情報管理ＤＢ３００は、修正前の報告書に修正後の報告書を上書きせず、別の文書として記録する。そして、文書生成装置４００は、情報管理ＤＢ３００に格納した修正後の報告書を、操作履歴収集装置１００に表示させる（ステップＳ４１４）。
【０１３０】
次に、修正前後の報告書の差分、及び依頼書と報告書の差分を表示する処理（処理６）について説明する。図２０は、本実施形態の文書生成システム１０における報告書の差分表示処理の流れを示したシーケンス図である。
【０１３１】
まず、文書生成装置４００は、Ｗｅｂブラウザ２０に比較を行う報告書を特定するための情報の入力画面を表示させる（ステップＳ５０１）。そして、プロジェクトマネージャは、表示された入力画面の表示に従って、報告書を特定するための情報を入力する。報告書を特定するための情報の例としては、報告書に記載された契約番号や、対象となる期間や、対応する依頼書の依頼番号などが挙げられる。その後、Ｗｅｂブラウザは、入力された情報を文書生成装置４００に送信する（ステップＳ５０２）。
【０１３２】
続いて、文書生成装置４００は、入力された報告書を特定するための情報に基づいて対象となる報告書を特定し、情報管理ＤＢ３００から、修正前の報告書、修正後の報告書及び当該報告書に係る依頼書を取得する（ステップＳ５０３）。
【０１３３】
続いて、文書生成装置４００は、取得した依頼書に記載されたチケットＩＤと修正後の報告書に記載されたチケットＩＤとの差分をとり、依頼書で依頼した内容に対して追加された工程及び削除された工程を特定する。そして、文書生成装置４００は、追加された工程及び削除された工程を強調した依頼書及び報告書を並べた表示情報を生成する（ステップＳ５０４）。
【０１３４】
ここで、文書生成装置４００が生成する差分工程の表示情報の例を示す。図２１は、本実施形態の文書生成システム１０が生成する差分工程の表示情報の一例を示す図である。
図２１に示すように、差分工程の表示情報において追加または削除された工程を強調する方法の一例としては、報告書及び依頼書に記載された工程のうち、追加された工程及び削除された工程に所定の色の枠を描画する方法が挙げられる。例えば、報告書に記載された工程のうち追加された工程に緑色の枠を描画し、依頼書に記載された工程のうち削除された工程に赤色の枠を描画することができる。このとき、図２１に示すように、依頼書と報告書とで共通の工程に、水色の枠など、追加または削除された工程の枠と異なる色の枠を描画しても良い。
【０１３５】
これにより、プロジェクトマネージャは、依頼したのに実行されなかった工程や、作業者によりチケットが追加された工程を把握することができる。なお、本実施形態では、依頼書と修正後の報告書との比較を行う場合について説明したが、これに限られず例えば依頼書と修正前の報告書との比較を行っても良い。また、依頼書生成時に、文書生成装置４００が依頼書生成時のチケットＩＤを情報管理ＤＢ３００に記録しておき、当該情報と報告書の生成に用いたチケットＩＤとの比較を行うことで、差分工程の表示情報を生成しても良い。
【０１３６】
次に、文書生成装置４００は、生成した差分工程の表示情報を、情報管理ＤＢ３００に送信して格納させる（ステップＳ５０５）。情報管理ＤＢ３００は、差分工程の表示情報を蓄積する（ステップＳ５０６）。
【０１３７】
続いて、文書生成装置４００は、修正前の報告書の記載項目と修正後の報告書の記載項目との差分をとり、自動生成された報告書に対して追加された項目及び削除された項目を特定する。そして、文書生成装置４００は、修正後の報告書の記載項目のうち追加された項目及び削除された項目を強調した表示情報を生成する（ステップＳ５０７）。
【０１３８】
ここで、文書生成装置４００が生成する差分項目の表示情報の例を示す。図２２は、本実施形態の文書生成システム１０が生成する差分項目の表示情報の一例を示す図である。
図２２に示すように、差分項目の表示情報において追加された項目を強調する方法の一例としては、補正後の報告書のうち追加された項目に下線を引く方法が挙げられる。この方法以外にも、削除された項目の文字色を変える方法や枠を描画する方法などを用いても良い。また、図２２に示すように、差分項目の表示情報において削除された項目を強調する方法の一例としては、補正後の報告書のうち削除された項目を取り消し線とともに表示する方法が挙げられる。この方法以外にも、削除された項目を背景色と同系統の文字色を用いて表示する方法などを用いても良い。
これにより、プロジェクトマネージャは、作業者によって報告書に追記されたコメントなどの付記事項を容易に確認することができる。
【０１３９】
次に、文書生成装置４００は、生成した差分項目の表示情報を、情報管理ＤＢ３００に送信して格納させる（ステップＳ５０８）。情報管理ＤＢ３００は、差分項目の表示情報を蓄積する（ステップＳ５０９）。そして、文書生成装置４００は、情報管理ＤＢ３００に格納した差分工程及び差分項目の表示情報を、Ｗｅｂブラウザ２０に表示させる（ステップＳ５１０）。
【０１４０】
上記に述べたとおり、本発明を実施するための形態によれば、作業者が開発作業を行うときに使用する作業用端末の操作履歴情報を自動的に収集する。そして、収集した操作履歴情報に基づいて、作業者が実施した作業の工数を、ＷＢＳの単位で機械的に算出し、報告書に記載する。
この工数の算出においては、作業者が実際に開発作業を行うときに操作を行う作業用端末の操作履歴情報を、工数算出の対象にするため、より正確な作業工数の把握を行うことができる。
【０１４１】
また、本発明を実施するための形態によれば、自動算出された作業工数を含む報告書を参照することで、プロジェクトの管理者が、作業者毎の正確な作業内容や作業時間を把握することができる。また、プロジェクトの管理者は、作業項目毎に、作業に要した実際の作業時間の情報を参照することができる。これにより、プロジェクトの工数管理や進捗管理、またはリスクの早期発見など、プロジェクト管理の支援を行うことができる。このことにより、従来のプロジェクトの進捗管理において作業者本人の自己申告に依存していた作業内容の把握を、本発明を実施するための形態では自動的に行うことができ、ソフトウェアの開発におけるリスクを早期に発見することを容易にすることができる。なお、本発明を実施するための形態の適用範囲は、ソフトウェアの開発に限定されるものではなく、一般的な業務にも容易に適用することができる。
【０１４２】
なお、本発明を実施するための形態では、操作履歴管理装置２００と、情報管理ＤＢ３００と、文書生成装置４００と、プロジェクト情報管理装置５００とが、それぞれ別の端末装置で構成された文書生成システム１０の場合について説明したが、文書生成システム１０の装置構成は、本発明を実施するための形態に限定されるものではない。例えば、操作履歴管理装置２００と、情報管理ＤＢ３００と、文書生成装置４００と、プロジェクト情報管理装置５００とを同一の端末装置で構成した場合においても、同一の端末装置内で本発明を実施するための形態と同様の機能を実現する構成であれば、同様の処理を行うことができ、同様の結果を得ることができる。
【０１４３】
なお、本発明を実施するための形態では、作業者が工数を偽ったか否かの判定の参考として自動計測した工数を表示する場合について説明したが、これに限られず、作業者による作業時間の申告の補助として当該自動計測した工数を用いても良い。この場合、ステップＳ４０４の工数の入力画面に、ステップＳ４０３で取得した工数を表示することで、作業者は、自動計測した工数を参考にして実際の工数の入力をすることができる。
また、本発明を実施するための形態では、作業者に工数を入力させる場合について説明したが、これに限られず、当該入力を省略して自動計測した工数のみを報告書に表示させても良い。
【０１４４】
なお、図１および図２に示した文書生成システム１０内の各構成要素による処理を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、文書生成システム１０に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１４５】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１４６】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【０１４７】
１０・・・文書生成システム
１００・・・操作履歴収集装置
１１０・・・操作履歴収集部
１２０・・・情報送信部
２００・・・操作履歴管理装置
２１０・・・情報送受信部
２２０・・・ＤＢアクセス部
３００・・・情報管理ＤＢ
３１０・・・操作履歴情報ＤＢ
３２０・・・プロジェクト情報管理ＤＢ
３３０・・・工数管理ＤＢ
４００・・・文書生成装置
４１０・・・情報送受信部
４２０・・・ＤＢアクセス部
４３０・・・工数算出部
４４０・・・工数入力部
４５０・・・報告書生成部
４６０・・・報告書修正部
４７０・・・依頼書生成部
４８０・・・差分項目表示部
４９０・・・差分工程表示部
５００・・・プロジェクト情報管理装置
５１０・・・情報送受信部
５２０・・・ＤＢアクセス部
２０・・・Ｗｅｂブラウザ
【図１】
2014142885.tif 000003
【図２】
2014142885.tif 000004
【図３】
2014142885.tif 000005
【図４】
2014142885.tif 000006
【図５】
2014142885.tif 000007
【図６】
2014142885.tif 000008
【図７】
2014142885.tif 000009
【図８】
2014142885.tif 000010
【図９】
2014142885.tif 000011
【図１０】
2014142885.tif 000012
【図１１】
2014142885.tif 000013
【図１２】
2014142885.tif 000014
【図１３】
2014142885.tif 000015
【図１４】
2014142885.tif 000016
【図１５】
2014142885.tif 000017
【図１６】
2014142885.tif 000018
【図１７】
2014142885.tif 000019
【図１８】
2014142885.tif 000020
【図１９】
2014142885.tif 000021
【図２０】
2014142885.tif 000022
【図２１】
2014142885.tif 000023
【図２２】
2014142885.tif 000024