(57)【要約】      （修正有）【課題】ソフトウェア開発プロジェクトにおける作業計画策定時の作業時間の時系列分布の見積り精度を向上させる。【解決手段】回帰分析部２は、完了したソフトウェア開発プロジェクトの作業時間データをワイブルモデル等のモデル係数を有する時系列モデルで回帰分析し、完了プロジェクト毎にモデル係数と再利用率を係数データベース４に格納する。係数推定部６は、新規プロジェクトの再利用率と完了プロジェクトの再利用率及びモデル係数とから新規プロジェクトのモデル係数を推定する。総作業時間算出部７は新規プロジェクトの作業開始日と作業完了日と規模とから作業期間と総作業時間を算出する。時系列分布算出部８は推定したモデル係数と算出した作業期間と総作業時間とから時系列モデルを用いて作業時間の時系列分布を求める。【選択図】図１
2008152350.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを開発するプロジェクトに係る作業時間を、処理部および出力部を有するコンピュータを用いて見積もるための作業時間見積もり装置であって、
前記ソフトウェアの開発が完了している完了プロジェクトに対応した再利用率およびモデル係数を入力する係数入力手段と、
新たな前記ソフトウェアの開発を予定する新規の前記プロジェクトに関する情報を処理する本処理手段とを備え、
前記モデル係数は、前記完了プロジェクトの各期間の作業時間データを、各期間を変数とし、且つ１つ以上の係数を有する関数で回帰分析することにより算出される、前記関数の係数を指し、
前記再利用率は、前記完了プロジェクトにより開発が完了した完了ソフトウェアのうち作成したソフトウェアの規模を指す作成規模データと、既存の別のソフトウェアを再利用した規模を指す再利用規模データとに基づき、前記完了ソフトウェアの全体の規模に対する再利用された規模の割合を指し、
前記新規のプロジェクトのために予定される前記再利用率は、前記完了プロジェクトの前記再利用率と一致または近似し、
前記本処理手段は、
新規の前記プロジェクトの作業開始予定日、作業完了予定日、予定される前記作成規模データおよび予定される前記再利用規模データを入力する見積り条件入力部と、
前記見積もり条件入力部から入力した前記作業開始予定日と前記作業完了予定日と前記作成規模データと前記再利用規模データとに基づき、前記処理部を用いて、前記新規プロジェクトの作業期間と所定算出式に従う総作業時間とを算出する総作業時間算出部と、
前記総作業時間算出部で算出された前記総作業時間と前記作業期間と、前記モデル係数とに基づき、前記処理部を用いて、前記新規プロジェクトの各期間の作業時間を算出する時系列分布算出部と、
前記各期間について、時系列に、前記新規プロジェクトについて予定される作業可能時間と前記時系列分布算出部で算出された前記完了プロジェクトの作業時間とを関連付けて、前記出力部を介して提示する見積り結果出力部とを有する、作業時間見積り装置。
【請求項２】
前記完了プロジェクトに関する情報を処理する事前処理手段をさらに備え、
前記事前処理手段は、
前記完了プロジェクトの各期間の作業時間データと、当該完了プロジェクトにより開発が完了した完了ソフトウェアについての前記作成規模データと前記再利用規模データとが格納されたプロジェクトデータベースと、
前記処理部を用いて、前記プロジェクトデータベースから読出した前記完了プロジェクトの各期間の作業時間データを、各期間を変数とし、且つ１つ以上の係数を有する関数で回帰分析することにより、前記関数の係数である前記モデル係数を算出する回帰分析部と、
前記処理部を用いて、前記プロジェクトデータベースから読出した前記完了プロジェクトの前記作成規模データと前記再利用規模データとに基づき、前記完了ソフトウェアの全体の規模に対する再利用された規模の割合を指す前記再利用率を算出する再利用率算出部と、を有する、請求項１に記載の作業時間見積り装置。
【請求項３】
前記プロジェクトデータベースに、複数種類の前記完了プロジェクトそれぞれに対応して、各期間の作業時間データと、前記作成規模データと、前記再利用規模データとが格納される場合において、
前記回帰分析部は、
前記処理部を用いて、前記完了プロジェクトのそれぞれについて、前記プロジェクトデータベースから読出した各期間の作業時間データを、各期間を変数とし、且つ１つ以上の係数を有する関数で回帰分析することにより、前記関数の係数であるモデル係数を算出し、
前記再利用率算出部は、
前記処理部を用いて、前記完了プロジェクトそれぞれについて、前記プロジェクトデータベースから読出した前記作成規模データと前記再利用規模データとに基づき、前記完了ソフトウェアの全体の規模に対する再利用された規模の割合を指す再利用率を算出し、
前記本処理手段は、
前記見積り条件入力部から入力した予定される前記作成規模データおよび予定される前記再利用規模データに基づき、前記新規プロジェクトの予定される前記再利用率を算出する予定再利用率算出部と、
前記複数種類の完了プロジェクトについて算出された前記再利用率のうち、前記予定される再利用率よりも大きく且つ当該予定再利用率に最も近似する前記再利用率と、前記予定される再利用率よりも小さく且つ当該予定再利用率に最も近似する前記再利用率とを選択し、選択された再利用率と対応する前記モデル係数とで示される線形関係に従い、前記予定される再利用率に対応する前記モデル係数を算出する予定モデル係数算出部とを有し、
前記時系列分布算出部は、前記総作業時間算出部で算出された前記総作業時間と前記作業期間と、前記予定モデル係数算出部により算出される前記モデル係数とに基づき、前記処理部を用いて、前記新規プロジェクトの各期間の作業時間を算出する、請求項２に記載の作業時間見積り装置。
【請求項４】
前記各期間について、前記新規プロジェクトについて予定される作業可能時間は、当該期間の予定作業者数と１作業者当たりの標準作業時間とに基づき算出される、請求項１から３のいずれか１項に記載の作業時間見積もり装置。
【請求項５】
ソフトウェアを開発するプロジェクトに係る作業時間を、処理部および出力部を有するコンピュータを用いて見積もるための作業時間見積もり方法であって、
前記ソフトウェアの開発が完了している完了プロジェクトに対応した再利用率およびモデル係数を入力する係数入力ステップと、
前記ソフトウェアの開発を予定する新規の前記プロジェクトに関する情報を処理する本処理ステップとを備え、
前記モデル係数は、前記完了プロジェクトの各期間の作業時間データを、各期間を変数とし、且つ１つ以上の係数を有する関数で回帰分析することにより算出される、前記関数の係数を指し、
前記再利用率は、前記完了プロジェクトにより開発が完了した完了ソフトウェアのうち作成したソフトウェアの規模を指す作成規模データと、既存の別のソフトウェアを再利用した規模を指す再利用規模データとに基づき、前記完了ソフトウェアの全体の規模に対する再利用された規模の割合を指し、
前記新規のプロジェクトのために予定される前記再利用率は、前記完了プロジェクトの前記再利用率と一致または近似し、
前記本処理ステップは、
新規の前記プロジェクトの作業開始予定日、作業完了予定日、予定される前記作成規模データおよび予定される前記再利用規模データを入力する見積り条件入力ステップと、
前記見積もり条件入力ステップにより入力した前記作業開始予定日と前記作業完了予定日と前記作成規模データと前記再利用規模データとに基づき、前記処理部を用いて、前記新規プロジェクトの作業期間と所定算出式に従う総作業時間とを算出する総作業時間算出ステップと、
前記総作業時間算出ステップで算出された前記総作業時間と前記作業期間と、前記モデル係数とに基づき、前記処理部を用いて、前記新規プロジェクトの各期間の作業時間を算出する時系列分布算出ステップと、
前記各期間について、時系列に、前記新規プロジェクトについて予定される作業可能時間と前記時系列分布算出ステップで算出された前記完了プロジェクトの作業時間とを関連付けて、前記出力部を介して提示する見積り結果出力ステップとを有する、作業時間見積り方法。
【請求項６】
請求項５に記載の作業時間見積もり方法をコンピュータに実行させるためのプログラム。
【請求項７】
請求項５に記載の作業時間見積もり方法をコンピュータに実行させるためのプログラムを記録した機械読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業時間見積もり装置、作業時間見積もり方法、プログラムおよび機械読取り可能な記録媒体に関し、特に、ソフトウェア開発プロジェクトの作業時間を管理するための作業時間見積もり装置、作業時間見積もり方法、プログラムおよび機械読取り可能な記録媒体に属する。
【背景技術】
【０００２】
従来より、ソフトウェア開発のための事業、仕事などのプロジェクトの作業計画策定の精度を向上させるため、プロジェクトの作業計画策定時に用いるさまざまな見積もり手法が提案されている。
【０００３】
プロジェクトの作業計画策定時に作業時間の時系列分布をマクロ的に見積もる手法として、例えば非特許文献１ではソフトウェア開発方程式と呼ばれるモデルを用いてソースコード行数と作業期間から総作業時間を見積もり、それをノーデン・レーリー・モデルと呼ばれる時系列モデルを用いて作業時間の時系列分布を見積もる方法が提案されている。
【非特許文献１】L.H.Putnam: ”A General Empirical Solution to the Macro Software Sizing and Estimating Problem”, IEEE Trans. on Software Engineering, VOL.SE-4, No.4, pp.345-361, July 1978.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年のソフトウェア開発プロジェクトにおいては総作業時間または作業期間を短縮するため、既存のソフトウェアを流用して新たなソフトウェアを作成する場合が多い。つまり、新たなソフトウェアは、流用元のソフトウェアに対して新たに追加された、または流用元のソフトウェアを変更した部分（作成部分という）と再利用部分とからなる。再利用部分は、流用元の既存のソフトウェアの一部分をそのまま利用している部分を指す。これにより、ソフトウェア開発において再利用部分に関しては設計または実装に要する作業時間が小さくなるため総作業時間に占めるテストの作業時間の割合が大きくなる。テストは主としてプロジェクト期間の後半で行われるためプロジェクトの後半での作業時間の割合が大きくなる。したがって、開発対象であるソフトウェア全体に占める再利用部分の割合を指す再利用率によってソフトウェア開発プロジェクトに必要とされる作業時間の時系列分布は変化する。
【０００５】
しかし、非特許文献１に記載されているような従来技術においては、作業時間の時系列分布を見積もる際に再利用率が考慮されていない。そのため、たとえば、再利用率の高いプロジェクトに従来の見積もり方法を適用した場合には、プロジェクト前半での作業時間の割合が過大に、またプロジェクト後半での作業時間の割合が過小に見積られてしまい、全体としての見積もり精度は低下する。作業時間の見積もりに大きな誤差が生じると、プロジェクトにかける予算および作業人数などの計画値に大きな誤差が含まれることになり、既存ソフトウェアを流用して作業期間の短縮を図ろうとしていたのもかかわらず、多大な損失をこうむることになる。
【０００６】
それゆえに、この発明の目的は、再利用率に基づいた作業時間の時系列分布の見積もりが可能となる作業時間見積もり装置、作業時間見積もり方法、プログラムおよび当該プログラムを記録した機械読取り可能な記録媒体を提供することである。
【課題を解決するための手段】
【０００７】
この発明のある局面に従うと、ソフトウェアを開発するプロジェクトに係る作業時間を、処理部および出力部を有するコンピュータを用いて見積もるための作業時間見積もり装置は、前記ソフトウェアの開発が完了している完了プロジェクトに対応した再利用率およびモデル係数を入力する係数入力手段と、新たな前記ソフトウェアの開発を予定する新規の前記プロジェクトに関する情報を処理する本処理手段とを備える。
【０００８】
前記モデル係数は、前記完了プロジェクトの各期間の作業時間データを、各期間を変数とし、且つ１つ以上の係数を有する関数で回帰分析することにより算出される、前記関数の係数を指し、前記再利用率は、前記完了プロジェクトにより開発が完了した完了ソフトウェアのうち作成したソフトウェアの規模を指す作成規模データと、既存の別のソフトウェアを再利用した規模を指す再利用規模データとに基づき、前記完了ソフトウェアの全体の規模に対する再利用された規模の割合を指す。
【０００９】
また、前記新規のプロジェクトのために予定される前記再利用率は、前記完了プロジェクトの前記再利用率と一致または近似する。
【００１０】
前記本処理手段は、新規の前記プロジェクトの作業開始予定日、作業完了予定日、予定される前記作成規模データおよび予定される前記再利用規模データを入力する見積り条件入力部と、前記見積もり条件入力部から入力した前記作業開始予定日と前記作業完了予定日と前記作成規模データと前記再利用規模データとに基づき、前記処理部を用いて、前記新規プロジェクトの作業期間と所定算出式に従う総作業時間とを算出する総作業時間算出部と、前記総作業時間算出部で算出された前記総作業時間と前記作業期間と、前記モデル係数とに基づき、前記処理部を用いて、前記新規プロジェクトの各期間の作業時間を算出する時系列分布算出部と、前記各期間について、時系列に、前記新規プロジェクトについて予定される作業可能時間と前記時系列分布算出部で算出された前記完了プロジェクトの作業時間とを関連付けて、前記出力部を介して提示する見積り結果出力部とを有する。
【００１１】
好ましくは、前記完了プロジェクトに関する情報を処理する事前処理手段をさらに備える。前記事前処理手段は、前記完了プロジェクトの各期間の作業時間データと、当該完了プロジェクトにより開発が完了した完了ソフトウェアについての前記作成規模データと前記再利用規模データとが格納されたプロジェクトデータベースと、前記処理部を用いて、前記プロジェクトデータベースから読出した前記完了プロジェクトの各期間の作業時間データを、各期間を変数とし、且つ１つ以上の係数を有する関数で回帰分析することにより、前記関数の係数である前記モデル係数を算出する回帰分析部と、前記処理部を用いて、前記プロジェクトデータベースから読出した前記完了プロジェクトの前記作成規模データと前記再利用規模データとに基づき、前記完了ソフトウェアの全体の規模に対する再利用された規模の割合を指す前記再利用率を算出する再利用率算出部と、を有する。
【００１２】
好ましくは、前記プロジェクトデータベースに、複数種類の前記完了プロジェクトそれぞれに対応して、各期間の作業時間データと、前記作成規模データと、前記再利用規模データとが格納される場合において、前記回帰分析部は、前記処理部を用いて、前記完了プロジェクトのそれぞれについて、前記プロジェクトデータベースから読出した各期間の作業時間データを、各期間を変数とし、且つ１つ以上の係数を有する関数で回帰分析することにより、前記関数の係数であるモデル係数を算出する。
【００１３】
前記再利用率算出部は、前記処理部を用いて、前記完了プロジェクトそれぞれについて、前記プロジェクトデータベースから読出した前記作成規模データと前記再利用規模データとに基づき、前記完了ソフトウェアの全体の規模に対する再利用された規模の割合を指す再利用率を算出する。
【００１４】
前記本処理手段は、前記見積り条件入力部から入力した予定される前記作成規模データおよび予定される前記再利用規模データに基づき、前記新規プロジェクトの予定される前記再利用率を算出する予定再利用率算出部と、前記複数種類の完了プロジェクトについて算出された前記再利用率のうち、前記予定される再利用率よりも大きく且つ当該予定再利用率に最も近似する前記再利用率と、前記予定される再利用率よりも小さく且つ当該予定再利用率に最も近似する前記再利用率とを選択し、選択された再利用率と対応する前記モデル係数とで示される線形関係に従い、前記予定される再利用率に対応する前記モデル係数を算出する予定モデル係数算出部とを有する。
【００１５】
前記時系列分布算出部は、前記総作業時間算出部で算出された前記総作業時間と前記作業期間と、前記予定モデル係数算出部により算出される前記モデル係数とに基づき、前記処理部を用いて、前記新規プロジェクトの各期間の作業時間を算出する。
【００１６】
好ましくは、前記各期間について、前記新規プロジェクトについて予定される作業可能時間は、当該期間の予定作業者数と１作業者当たりの標準作業時間とに基づき算出される。
【００１７】
この発明の他の局面に従うと、ソフトウェアを開発するプロジェクトに係る作業時間を、処理部および出力部を有するコンピュータを用いて見積もるための作業時間見積もり方法は、前記ソフトウェアの開発が完了している完了プロジェクトに対応した再利用率およびモデル係数を入力する係数入力ステップと、前記ソフトウェアの開発を予定する新規の前記プロジェクトに関する情報を処理する本処理ステップとを備える。
【００１８】
前記モデル係数は、前記完了プロジェクトの各期間の作業時間データを、各期間を変数とし、且つ１つ以上の係数を有する関数で回帰分析することにより算出される、前記関数の係数を指し、前記再利用率は、前記完了プロジェクトにより開発が完了した完了ソフトウェアのうち作成したソフトウェアの規模を指す作成規模データと、既存の別のソフトウェアを再利用した規模を指す再利用規模データとに基づき、前記完了ソフトウェアの全体の規模に対する再利用された規模の割合を指し、前記新規のプロジェクトのために予定される前記再利用率は、前記完了プロジェクトの前記再利用率と一致または近似する。
【００１９】
前記本処理ステップは、新規の前記プロジェクトの作業開始予定日、作業完了予定日、予定される前記作成規模データおよび予定される前記再利用規模データを入力する見積り条件入力ステップと、前記見積もり条件入力ステップにより入力した前記作業開始予定日と前記作業完了予定日と前記作成規模データと前記再利用規模データとに基づき、前記処理部を用いて、前記新規プロジェクトの作業期間と所定算出式に従う総作業時間とを算出する総作業時間算出ステップと、前記総作業時間算出ステップで算出された前記総作業時間と前記作業期間と、前記モデル係数とに基づき、前記処理部を用いて、前記新規プロジェクトの各期間の作業時間を算出する時系列分布算出ステップと、前記各期間について、時系列に、前記新規プロジェクトについて予定される作業可能時間と前記時系列分布算出ステップで算出された前記完了プロジェクトの作業時間とを関連付けて、前記出力部を介して提示する見積り結果出力ステップとを有する。
【００２０】
この発明のさらに他の局面に従うと、上記の作業時間見積もり方法をコンピュータに実行させるためのプログラムが提供される。
【００２１】
この発明のさらに他の局面に従うと、上記の作業時間見積もり方法をコンピュータに実行させるためのプログラムを記録した機械読取り可能な記録媒体が提供される。
【発明の効果】
【００２２】
発明によれば、再利用率に基づいた作業時間の時系列分布の見積もりが可能となるため精度の高い見積もりが可能となる。
【発明を実施するための最良の形態】
【００２３】
この発明の実施の形態について図面を参照し説明する。
（実施の形態１）
本実施の形態に係る作業時間見積もり装置は、ソフトウェア開発プロジェクトの管理システム等に利用可能である。
【００２４】
図１は本実施の形態に係る作業時間見積もり装置の機能構成を指し、図２は本実施の形態に係る作業時間見積もり装置が搭載されるコンピュータの構成図である。
【００２５】
図２を参照してコンピュータは、キーボード６５０およびマウス６６０を有する入力部７００、該コンピュータの各部を集中的に制御および管理するためのＣＰＵ（Central Processing Unit）６２２、ＲＯＭ（Read  Only  Memory）またはＲＡＭ（Random Access Memory）を含んで構成されるメモリ６２４、固定ディスク６２６、ＦＤ（Flexible Disk）６３２が着脱自在に装着されて、装着されたＦＤ６３２をアクセスするＦＤ駆動装置６３０、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）６４２が着脱自在に装着されて、装着されたＣＤ−ＲＯＭ６４２をアクセスするＣＤ−ＲＯＭ駆動装置６４０、通信回線３００と該コンピュータとを通信接続するための通信インターフェィス６８０およびプリンタ６９０を含む。これらの各部はバスを介して通信接続される。通信回線３００にはインターネットなどの有線または無線の各種回線を適用することができる。
【００２６】
図１を参照して作業時間見積もり装置１００は、メモリ６２４または固定ディスク６２６に対応するプロジェクトデータベース１および係数データベース４、ＣＰＵ６２２の機能として実現される回帰分析部２、再利用率算出部３、係数推定部６、総作業時間算出部７、時系列分布算出部８および作業可能時間算出部１０、入力部７００を用いて実現される見積もり条件入力部５およびリソース条件入力部９、プリンタ６０９またはディスプレイ６１０を用いて実現される見積もり結果出力部１１を備える。
【００２７】
プロジェクトデータベース１には完了したプロジェクトの規模データと作業時間データとが記憶されている。図３はプロジェクトデータベース１に記憶されている規模データ２１の一例である。また図４はプロジェクトデータベース１に記憶されている作業時間データ２２の一例である。
【００２８】
図３を参照してプロジェクトデータベース１では、プロジェクトとしてのソフトウェアの開発事業が完了している複数種類のプロジェクトのそれぞれに対応して規模データ２１を格納する。規模データ２１は、当該プロジェクトを識別する情報であるプロジェクト名データ２１１、開発により完成したソフトウェアのうち新たに追加または変更されて実質的に作成したソフトウェアの規模を指すデータ（以下、更新規模データという）２１２および再利用されたソフトウェアの規模を指す規模データ２１３を含む。なお、規模データ２１２と２１３の単位であるKSLOC（1000 Software Lines Of Code）は１０００行単位でのソースコード行数を示す尺度を指す。
【００２９】
図４を参照してプロジェクトデータベース１においては、作業時間データ２２は既に完了している複数種類のソフトウェア開発プロジェクトのそれぞれに対応して格納される。作業時間データ２２は、対応するプロジェクトを識別する情報であるプロジェクト名データ２２１、当該プロジェクトのソフトウェア開発のための作業の日付と、各作業日に対応して作業者名および当該作業者の作業時間を指す作業日データ２２２、作業者名データ２２３および時間データ２２４を含む。
【００３０】
回帰分析部２ではプロジェクトデータベース１に記憶されている作業時間データ２２を時系列モデルで回帰分析することによりモデル係数が求められる。
【００３１】
再利用率算出部３ではプロジェクトデータベース１に記憶されている規模データ２１から再利用率が算出される。
【００３２】
係数データベース４には回帰分析部２で求められたモデル係数と再利用率算出部３で算出された再利用率とが記憶される。図７は係数データベース４に記憶されている係数データの一例である。
【００３３】
見積もり条件入力部５では見積もり担当者により入力部７００が操作されて新規プロジェクトの見積もりに必要なデータが入力される。図８は見積もり担当者により入力される入力データの一例である。
【００３４】
係数推定部６では係数データベース４に記憶されている係数データと見積もり条件入力部５で入力された入力データとから新規プロジェクトのモデル係数を推定（算出）する。
【００３５】
総作業時間算出部７では見積もり条件入力部５で入力された入力データから既存技術により作業期間と総作業時間とが算出される。
【００３６】
時系列分布算出部８では係数推定部６で推定されたモデル係数と総作業時間算出部７で算出された作業期間と総作業時間とを、回帰分析部２で用いた時系列モデルに適用することにより各期間の作業時間が算出される。図１０は時系列分布算出部８で生成される作業時間データの一例である。
【００３７】
リソース条件入力部９では見積もり担当者により入力部７００が操作されて新規プロジェクトのリソース条件が入力される。図１１は見積もり担当者により入力される入力データの一例である。
【００３８】
作業可能時間算出部１０ではリソース条件入力部９で入力されたデータから各期間の作業可能時間が算出される。図１２は作業可能時間算出部１０で生成される作業可能時間データの一例である。
【００３９】
見積もり結果出力部１１では時系列分布算出部８および作業可能時間算出部１０で生成されたデータが併されてグラフ形式等の形式でディスプレイ６１０またはプリンタ６９０に出力される。図１３には見積もり結果出力部１１で出力されるグラフ形式の出力データの一例が示される。
【００４０】
作業時間見積もり装置１００の処理は、プロジェクトデータベース１に記憶されているデータに基づき係数データベース４に記憶されるべきデータを生成する事前処理と、係数データベース４に記憶されているデータと見積もり条件入力部５を介して入力されたデータとから見積もり結果出力部８で出力されるべきデータを生成する本処理に分けられる。
【００４１】
なお事前処理はプロジェクトデータベース１に記憶されている完了したプロジェクトのデータセットが更新される度に見積もり担当者により入力部７００を介して与えられる指示に応じて開始される。また、本処理は見積もり担当者により見積もり条件入力部５からデータが入力される度に行われる。
【００４２】
（事前処理）
まず事前処理の動作を示すフローチャートである図６を用いて事前処理の動作を詳細に説明する。図６のフローチャートを指すプログラムは予めメモリ６２４等に格納されており、ＣＰＵ６２２が当該プログラムの各命令コードを読出し実行することにより図６の処理が実現される。ここでは、事前処理開始時にはプロジェクトデータベース１には図３および図４に示した規模データ２１おとび作業時間データ２２が予め記憶されていると想定する。
【００４３】
事前処理は、担当者が入力部７００を操作して図３または図４のデータの更新（変更）を指示すると、ＣＰＵ６２２はメモリ６２４または固定ディスク６２６のプロジェクトデータベース１から規模データ２１または作業時間データ２２を読出し、読出した内容を入力部７００から入力されたデータに基づき更新（変更）し、変更後のデータをメモリ６２４または固定ディスク６２６のプロジェクトデータベース１に格納する。このようなプロジェクトデータベース１のデータの更新がされる毎に、または更新がされる毎に入力部７００を介して指示が与えられるので当該指示に応じて、ＣＰＵ６２２はプロジェクトデータベース１に格納された全てのプロジェクトのデータを対象にして事前処理を実行開始する。
【００４４】
まず、ステップ１０１で回帰分析部２は、プロジェクトデータベース１から１つの完了したプロジェクトの作業時間データ２２を読出す。たとえば、プロジェクトＴｉの作業時間データ２２が読出されたと想定する。続いて、ステップ１０２で回帰分析部２は読出した作業時間データ２２の作業日データ２２２のうち最も早い日付を指すデータ２２２の作業日を作業開始日と決定する。
【００４５】
ステップ１０３で回帰分析部２は読出した作業時間データ２２を日付毎に集計して累積し、たとえば図５に示すような累積作業時間データ２３を生成する。累積作業時間データ２３は、対応するプロジェクトのプロジェクト名データ２３１、作業日データ２３２、各作業日に対応して経過日数データ２３３および累積時間データ２３４を含む。経過日数データ２３３は、上述のようにして決定された作業開始日から対応の作業日までの経過日数を指す。累積時間データ２３４は、上述のようにして決定された作業開始日から対応の作業日までの作業時間の累積値を指す。各プロジェクト毎に生成された累積作業時間データ２３はメモリ６２４などに格納される。
【００４６】
ステップ１０４で回帰分析部２はメモリ６２４から読出した累積作業時間データ２３を処理して、作業日データ２３２が示す日付のうち、たとえば対応の累積時間データ２３４が指す時間が総作業時間の９９．９％となる日付を検出して、作業完了日と決定する。具体的には、累積作業時間データ２３の作業日データ２３２のうち最終の作業日を指すデータ２３２に対応する累積時間データ２３４を総作業時間として読出し、読出した総作業時間の９９．９％に相当する時間を算出し、算出した時間と累積時間データ２３４のそれぞれとを比較し、比較結果に基づき算出した時間に最も近似する累積時間を指すデータ２３４を検出して、検出した累積時間データ２３４に対応する作業日データ２３２を累積作業時間データ２３から読出す。このようにして読出された作業日データ２３２が指す日付は当該プロジェクトの作業完了日として決定される。
【００４７】
次に、ステップ１０５で回帰分析部２はステップ１０２で決定した作業開始日とステップ１０４で決定した作業完了日の差を計算することにより作業期間を算出する。
【００４８】
ステップ１０６で回帰分析部２は、たとえばワイブルモデル等の少なくとも1つ以上のモデル係数を有する時系列分布モデルを用いて累積作業時間データ２３の回帰分析を行いそのモデル係数を算出する。ワイブルモデルとは式１で表される時系列モデルである。
【００４９】
【数１】
2008152350.tif 000003
【００５０】
上述の式１はαとβの２つのモデル係数を有する。ここでｔは回帰分析における説明変数に対応しており経過期間を指す。また、変数Ｋ（ｔ）は回帰分析における目的変数（従属変数）に対応しており経過期間ｔにおける累積作業時間を指す。また、変数Ｋは総作業時間を指し、変数Ｔｄは定数である作業期間を指す。したがって、変数Ｋならびに係数αおよびβが回帰分析により算出されるべき値となる。
【００５１】
ここでは、ステップ１０４で累積作業時間が総作業時間の９９．９％になる日付を作業完了日としたことにより、ｔ＝ＴｄにおいてＫ（ｔ）/Ｋ＝０．９９９となる。したがって、式１は次の式２へと変換される。
【００５２】
【数２】
2008152350.tif 000004
【００５３】
式２で係数βは係数αの関数として示される。このため係数αの値が決定されると自動的に係数βの値が決定（算出）される。算出された係数αのデータはメモリ６２４に格納される。
【００５４】
ステップ１０７で、再利用率算出部３はプロジェクトデータベース１からステップ１０１で読出した作業時間データ２２と同じプロジェクトの規模データ２１を読出す。ここでは、ステップ１０１ではプロジェクト名Ｔｉの作業時間データ２２が読出されたので、プロジェクト名データ２１１が‘Ｔｉ’を指す規模データ２１がプロジェクトデータベース１から読出される。
【００５５】
ステップ１０８で再利用率算出部３は式３に従い、開発したソフトウェアにおけるソースコード行数のうち、再利用したソースコード行数が占める割合を指す再利用率を算出する。算出した再利用率のデータがメモリ６２４などに格納される。
【００５６】
【数３】
2008152350.tif 000005
【００５７】
ステップ１０９で回帰分析部２と再利用率算出部３は、ステップ１０６とステップ１０８で算出したモデル係数αと再利用率のデータをメモリ６２４から読出し、そしてプロジェクト名のデータと対応付けてモデル係数と再利用率のデータを係数データベース４へ格納する。
【００５８】
図７を参照して係数データベース４には、各プロジェクトに対応して、プロジェクト名データ２４１と、当該プロジェクトについて回帰分析部２と再利用率算出部３により算出されたモデル係数αと再利用率のデータ２４３と２４２が格納される。
【００５９】
ステップ１１０で回帰分析部２はプロジェクトデータベース１にデータが格納されたすべてのプロジェクトに対して、ステップ１０１〜１０９の事前処理が行われたかを判定する。すべて行われたと判定した場合は（ステップ１１０で‘はい’）、事前処理を終了し、そうでない場合は（ステップ１１０で‘いいえ’）プロジェクトデータベース１中の残りのプロジェクトのデータに対してステップ１０１〜ステップ１０９の処理を繰返し行う。
【００６０】
なお、ステップ１１０における終了の判断は、たとえばプロジェクトデータベース１に格納されている規模データ２１または作業時間データ２２の総個数を予めカウントしておき、ステップ１０１〜１０９の処理がカウント値の回数だけ実行されたときに、終了と判断するようにしてよい。なお、判断方法はこれに限定されない。
【００６１】
プロジェクトデータベース１に図３および図４の規模データ２１および作業時間データ２２が格納されていた場合には、図６の事前処理の終了後、係数データベース４にはたとえば図７に示すような係数データが記憶される。
【００６２】
（本処理）
次に本処理の動作を示すフローチャートである図９を用いて本処理の動作を詳細に説明する。図９のフローチャートを指すプログラムは予めメモリ６２４等に格納されており、ＣＰＵ６２２が当該プログラムの各命令コードを読出し実行することにより図９の処理が実現される。ここでは、本処理開始時にはプロジェクトデータベース１には図３および図４に示した規模データ２１および作業時間データ２２が予め記憶されていて、係数データベース４には図７に示すデータが格納されていると想定する。
【００６３】
ステップ２０１で見積もり担当者は入力部７００を操作して、たとえば図８に示すような条件データ２５を見積もり条件入力部５を介して入力する。条件データ２５はメモリ６２４に格納される。
【００６４】
条件データ２５は、新たに予定しているソフトウェア開発プロジェクトに係るデータであって、作業時間の見積もりの為の条件を指し、具体的には、当該プロジェクトの作業の開始予定日付および完了予定日付を指すデータ２５１および２５２、完成予定のソフトウェアのうち新たに追加または変更を予定するソフトウェアの規模を指すデータ（以下、更新予定規模データという）２５３および再利用を予定するソフトウェアの規模を指す再利用予定規模データ２５４を含む。なお、規模データ２５３と２５４の単位はいずれもKSLOCである。
【００６５】
ステップ２０２で係数推定部６は、メモリ６２４から条件データ２５を読出し、読出した条件データ２５の更新予定規模データ２５３および再利用予定規模データ２５４を用いて、事前処理のステップ１０８と同じ計算方法に従い、予定される再利用率（％）を算出する。たとえば、図８の条件データ２５の場合では更新予定規模データ２５３および再利用予定規模データ２５４がそれぞれ１０００（KSLOC）および４０００（KSLOC）であるので、予定される再利用率は４０００÷（１０００＋４０００）×１００＝８０．０（％）と算出される。算出された再利用率は予定再利用率データ２６としてメモリ６２４に格納される。
【００６６】
ステップ２０３で係数推定部６は、新たなソフトウェアに関するプロジェクトのためのモデル係数を算出（推定）する。まず、ステップ２０２で算出された予定再利用率データ２６をメモリ６２４から読出し、読出した予定再利用率データ２６が指す再利用率に基づき、係数データベース４を検索する。具体的には、予定再利用率データ２６が指す再利用率よりも大きい値の再利用率を指すデータ２４２のうち予定再利用率データ２６に最も近似するデータ２４２と、それよりも小さい値の再利用率を指すデータ２４２のうち予定再利用率データ２６に最も近似するデータ２４２との２つのプロジェクトのデータを係数データベース４より読出す。たとえば図７の係数データベース４では再利用率９５．２（％）のプロジェクトＰａのデータと再利用率７２．０（％）のプロジェクトＴｉのデータがそれぞれ読出される。ここでは、係数データベース４には、算出された予定再利用率データ２６と同じ値を指すデータ２４２は格納されていなかったと想定する。
【００６７】
ステップ２０４で係数推定部６は、ステップ２０３で読出した２つのプロジェクトＰａとＴｉのデータを線形補間することにより再利用率８０．０（％）におけるモデル係数αを推定する。具体的には、再利用率が９５．２％のときのモデル係数が６．４２、かつ再利用率が７２％のときのモデル係数が５．２４であるので、再利用率をｘ（％）およびモデル係数をｙとすると、ｙ＝０．０５０９ｘ＋１．５７７９との線形関係で表わすことができる。この関係式に目的の再利用率である８０（％）を代入するとｙ＝５．６４９９≒５．６５となる。このように線形補間をすることで再利用率８０．０（％）であるプロジェクトにためのモデル係数αは約５．６５と推定（算出）することができる。
【００６８】
なお、再利用率とモデル係数が値域全体にわたって線形の関係を有することはないが、目的の再利用率の近傍の２点という極めて近接した間では、上述の線形関係を有しているとみなしても問題がない。したがって、本実施の形態では、この２点で規定される上述の線形関係式に従いモデル係数推定（算出）することとしている。
【００６９】
ステップ２０５で総時間算出部７は、ステップ２０１で入力された（メモリ６２４に格納された）条件データ２５からデータ２５１と２５２を読出し、読出したこれらデータが指す作業開始予定日と作業完了予定日との差を計算することにより予定作業期間２８を算出してメモリ６２４に格納する。たとえば図８の条件データ２５の場合には、データ２５１と２５２が示す作業開始予定日が２００６年９月２１日で作業完了予定日が２００６年１２月２５日となっているため予定作業期間２８は９６（日間）と算出される。
【００７０】
ステップ２０６で総作業時間算出部７は、ステップ２０１で入力された条件データ２５のデータ２５３および２５４が指す追加または変更予定規模と再利用予定規模とステップ２０５で算出された予定作業期間２８とに基づき、既存技術を用いて、たとえば非特許文献１で示されているソフトウェア開発方程式を指す次の式４を用いて総作業時間を算出する。ここでは、追加変更された規模と再利用された規模とのそれぞれについて式４を適用して、それぞれ総作業時間Ｋを算出する。
【００７１】
【数４】
2008152350.tif 000006
【００７２】
ここで、変数Ｓｓは総ソースコード行数を、変数Ｋは算出するべき総作業時間を、変数ｔｄは定数である作業期間２８をそれぞれ指す。また、変数Ｃｋは予め定められた生産性係数を指し追加変更された規模と再利用された規模とのそれぞれについて、異なる係数値が適用される。
【００７３】
ステップ２０７で時系列分布算出部８は、事前処理のステップ１０６で用いたものと同じ時系列分布モデルにステップ２０４で推定されたモデル係数とステップ２０５で算出された予定作業期間とステップ２０６で算出された総作業時間とを当てはめることにより経過日数に対する累積作業時間を算出する。また作業日間の累積作業時間の差を計算することにより各作業日の作業時間を算出する（見積もる）。これらにより、たとえば図１０に示すような作業時間データ３０が生成されてメモリ６２４に格納される。
【００７４】
図１０の作業時間データ３０は、作業日のデータ３０１と、作業日のそれぞれについて作業開始日からの経過日数を指すデータ３０２、作業開始日から当該作業日までの作業時間の累積を指すデータ３０３および当該作業日の作業時間を指すデータ３０３を含む。
【００７５】
ステップ２０８で見積もり担当者は入力部７００を操作して、たとえば図１１に示すようなリソース条件データ３１をリソース条件入力部９に入力する。
【００７６】
リソース条件データ３０１は、作業日のデータ３１１と、作業日のそれぞれについて予定される作業者の人数を指すデータ３１２および作業者１人当たりの標準作業時間を指すデータ３１３を含む。
【００７７】
ステップ２０９で作業可能時間算出部１０はステップ２０８で入力された各作業日の予定作業者数と標準作業時間との積を計算することにより、たとえば図１２に示すような作業可能時間データ３２を生成し、メモリ６２４に格納する。
【００７８】
図１２の作業可能時間データ３２は、作業日のデータ３２１と、作業日のそれぞれについて作業可能時間を指すデータ３２２を含む。作業可能時間データ３２２は、対応する作業日の作業者人数を指すデータ３１２×作業者１人当たりの標準作業時間を指すデータ３１３で示される。
【００７９】
ステップ２１０で見積もり結果出力部１１は、ステップ２０７で生成された見積もりの作業時間データ３０とステップ２０９で生成された作業可能時間データ３２を関連付けて、たとえば図１３に示すようなグラフ形式でディスプレイ６１０の画面やプリンタ６９０等に出力する。
【００８０】
図１３では、グラフの横軸に作業日付データ３０１と３２１が指す日付をとり、縦軸に作業時間をとっている。横軸の各日付に対応して、見積もりの作業時間データ３０が指す作業時間データ３０３が棒グラフで、かつ作業可能時間データ３２が指す作業可能時間データ３２２が折れ線グラフで作業日に従い時系列に関連付けて示されている。
【００８１】
見積もり担当者は、見積もり結果出力部１１により出力された図１３に示すような出力データを確認することにより、各作業日について作業時間と作業可能時間との差異を確認することが可能となる。たとえば、図１３では横軸が指す作業期間の後半はソフトウェアのテスト期間に相当し、前半は設計または実装に要する期間に相当する。グラフからは、設計または実装の期間においては充てることが可能な作業時間が見積もられた作業時間よりも多いので、予定する作業者人数を削減してもよいことが把握できる。また、テスト期間においては見積もられた作業時間が充てることが可能な作業時間よりも多くなっている部分があるので、この部分には予定する作業者人数を増加させる、たとえば前半期間で余った作業時間を後半のテスト期間に移動させるべきであることが容易に把握できる。
【００８２】
（他の実施例）
図１では、係数推定部６は線形補間によりモデル係数を推定（算出）していたが、次のようにしてもよい、つまり、新規のプロジェクトのために予定される再利用率が、完了したプロジェクトの再利用率と一致または近似している場合には、線形補間によることなく、当該完了プロジェクトについて回帰分析部２で算出されているモデル係数を、用いても良い。この場合には、完了プロジェクトについてのモデル係数および再利用率は入力部７００から入力される。
【００８３】
（実施の形態２）
本実施の形態では、実施の形態１の作業時間見積もり装置１００を実現するプログラムは図２のコンピュータで読取可能な記録媒体に格納される。
【００８４】
なお、一般的傾向として、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュールを用意しておき、アプリケーションプログラムはこれらモジュールを所定の配列で必要なときに呼出して処理を進める方式が一般的である。そうした場合、当該作業時間見積もり装置１００を実現するためのソフトウェア自体にはそうしたモジュールは含まれず、当該コンピュータでオペレーティングシステムと協働してはじめて作業時間見積もり装置１００が実現することになる。しかし、一般的なプラットホームを使用する限り、そうしたモジュールを含ませたソフトウェアを流通させる必要はなく、それらモジュールを含まないソフトウェア自体およびそれらソフトウェアを記録した記録媒体（およびそれらソフトウェアがネットワーク上を流通する場合のデータ信号）が実施の形態を構成すると考えることができる。
【００８５】
本実施の形態では、この記録媒体として、図２に示されているコンピュータで処理が行なわれるために必要なメモリ、たとえばメモリ６２４のようなそのものがプログラムメディアであってもよい。または、外部記憶装置としてＦＤ駆動装置６３０およびＣＤ−ＲＯＭ駆動装置６４０などのプログラム読取装置が設けられ、そこに記憶媒体であるＦＤ６３２およびＣＤ−ＲＯＭ６４２がそれぞれ挿入されることで読取可能なプログラムメディアであってもよい。いずれの場合においても、格納されているプログラムはＣＰＵ６４２がアクセスして実行させる構成であってもよいし、あるいはいずれの場合もプログラムが一旦読出されて、読出されたプログラムは、図２の所定のプログラム記憶エリアにロードされて、ＣＰＵ６４２により読出されて実行される方式であってもよい。
【００８６】
ここで、上述したプログラムメディアはコンピュータ本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープなどのテープ系、ＦＤなどの磁気ディスクやＣＤ−ＲＯＭ６４２／ＭＯ（Magnetic  Optical  Disc）／ＭＤ（Mini  Disc）／ＤＶＤ（Digital  Versatile  Disc）などの光ディスクのディスク系、ＩＣカード（メモリカードを含む）／光カードなどのカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Erasable  and  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ(Electrically  ＥＰＲＯＭ)、フラッシュＲＯＭなどによる半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
【００８７】
また、図２のコンピュータはインターネットを含む通信回線３００と通信インターフェィス６８０を介して接続可能な構成が採用されているから、これら通信ネットワークからプログラムがダウンロードされることにより流動的にプログラムを担持する媒体であってもよい。
【００８８】
なお記録媒体に格納されている内容としてはプログラムに限定されず、データであってもよい。
【００８９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００９０】
【図１】本実施の形態に係る作業時間見積もり装置の機能構成図である。
【図２】本実施の形態に係るコンピュータの構成図である。
【図３】プロジェクトデータベース内の規模データの一例を示す図である。
【図４】プロジェクトデータベース内の作業時間データの一例を示す図である。
【図５】累積作業時間データの一例を示す図である。
【図６】事前処理の動作を示すフローチャートである。
【図７】係数データベースの内容例を示す図である。
【図８】条件データの一例を示す図である。
【図９】本処理の動作を示すフローチャートである。
【図１０】作業時間データの一例を示す図である。
【図１１】リソース条件データの一例を示す図である。
【図１２】作業可能時間データの一例を示す図である。
【図１３】見積もり結果出力部により出力される内容例を示す図である。
【符号の説明】
【００９１】
１  プロジェクトデータベース、２  回帰分析部、３  再利用率算出部、４  係数データベース、５  見積もり条件入力部、６  係数推定部、７  総作業時間算出部、８  時系列分布算出部、９  リソース条件入力部、１０  作業可能時間算出部、１１  見積もり結果出力部、１００  作業時間見積もり装置。
【図１】
2008152350.tif 000007
【図２】
2008152350.tif 000008
【図３】
2008152350.tif 000009
【図４】
2008152350.tif 000010
【図５】
2008152350.tif 000011
【図６】
2008152350.tif 000012
【図７】
2008152350.tif 000013
【図８】
2008152350.tif 000014
【図９】
2008152350.tif 000015
【図１０】
2008152350.tif 000016
【図１１】
2008152350.tif 000017
【図１２】
2008152350.tif 000018
【図１３】
2008152350.tif 000019