(57)【特許請求の範囲】
【請求項１】
システム開発にかかる工数の推定値を算出する工数見積装置であって、
過去に実施されたシステム開発における、工数の実績値と、当該工数の実績値である目的変数に対する説明変数となり得る複数の項目の実績値とが記憶されている実績値記憶部と、
前記実績値に基づいて算出される回帰モデルが記憶される回帰モデル記憶部と、
前記実績値を、前記回帰モデルに対する外れ値とする水準を示す水準値が記憶されている水準値記憶部と、
前記実績値記憶部に記憶されている前記実績値を読み出し、読み出した当該実績値に基づいて回帰分析を行い、前記実績値記憶部に記憶されている複数の前記説明変数のうち、前記水準値記憶部に記憶されている前記水準値を満たす説明変数を選択して回帰モデルを算出し、前記回帰モデル記憶部に記憶させる回帰モデル算出処理を行う回帰モデル算出部と、
前記実績値記憶部に記憶されている前記実績値のうち、前記回帰モデルに対する前記水準値に基づく外れ値である実績値を抽出し、当該外れ値に基づいて、前記回帰モデル算出部に前記回帰モデル算出処理を行わせる外れ値抽出部と、
複数の前記説明変数のうち、任意の説明変数の想定値の入力を受付ける入力部と、
前記入力部に入力された前記説明変数に対応する前記回帰モデルを、前記回帰モデル記憶部から読み出し、当該回帰モデルに基づいて、前記入力部に入力された前記説明変数の想定値に対応する目的変数である工数を算出する見積工数算出部と、
を備えることを特徴とする工数見積装置。
【請求項２】
前記実績値記憶部に記憶されている前記説明変数となり得る複数の項目には、開発対象であるシステムの非機能に関する要求レベルの高低を示す情報と、非機能要求を実現する設計結果を示す情報とが含まれ、
前記入力部に入力される前記想定値は、開発対象であるシステムの非機能に関する要求レベルの高低を示す情報と、非機能要求を実現する設計結果を示す情報とのいずれかまたは双方である
ことを特徴とする請求項１に記載の工数見積装置。
【請求項３】
前記実績値記憶部には、前記システム開発における複数の工程毎に対応する実績値が記憶され、
前記回帰モデル算出部は、前記工程毎の実績値に基づいて、工程毎の回帰モデルを算出して前記回帰モデル記憶部に記憶させる
ことを特徴とする請求項１または請求項２のいずれかに記載の工数見積装置。
【請求項４】
過去に実施されたシステム開発における、工数の実績値と、当該工数の実績値である目的変数に対する説明変数となり得る複数の項目の実績値とが記憶されている実績値記憶部と、前記実績値に基づいて算出される回帰モデルが記憶される回帰モデル記憶部と、前記実績値を、前記回帰モデルに対する外れ値とする水準を示す水準値が記憶されている水準値記憶部と、を備えた工数見積装置の工数見積方法であって、
前記実績値記憶部に記憶されている前記実績値を読み出し、読み出した当該実績値に基づいて回帰分析を行い、前記実績値記憶部に記憶されている複数の前記説明変数のうち、前記水準値記憶部に記憶されている前記水準値を満たす説明変数を選択して回帰モデルを算出し、前記回帰モデル記憶部に記憶させる回帰モデル算出処理を行うステップと、
前記実績値記憶部に記憶されている前記実績値のうち、前記回帰モデルに対する前記水準値に基づく外れ値である実績値を抽出し、当該外れ値に基づいて、前記回帰モデル算出処理を繰り返すステップと、
複数の前記説明変数のうち、任意の説明変数の想定値の入力を受付けるステップと、
前記入力を受付けた前記説明変数に対応する前記回帰モデルを、前記回帰モデル記憶部から読み出し、当該回帰モデルに基づいて、前記入力を受付けた前記説明変数の想定値に対応する目的変数である工数を算出するステップと、
を備えることを特徴とする工数見積方法。
【請求項５】
過去に実施されたシステム開発における、工数の実績値と、当該工数の実績値である目的変数に対する説明変数となり得る複数の項目の実績値とが記憶されている実績値記憶部と、前記実績値に基づいて算出される回帰モデルが記憶される回帰モデル記憶部と、前記実績値を、前記回帰モデルに対する外れ値とする水準を示す水準値が記憶されている水準値記憶部と、を備えた工数見積装置のコンピュータに、
前記実績値記憶部に記憶されている前記実績値を読み出し、読み出した当該実績値に基づいて回帰分析を行い、前記実績値記憶部に記憶されている複数の前記説明変数のうち、前記水準値記憶部に記憶されている前記水準値を満たす説明変数を選択して回帰モデルを算出し、前記回帰モデル記憶部に記憶させる回帰モデル算出処理を行うステップと、
前記実績値記憶部に記憶されている前記実績値のうち、前記回帰モデルに対する前記水準値に基づく外れ値である実績値を抽出し、当該外れ値に基づいて、前記回帰モデル算出処理を繰り返すステップと、
複数の前記説明変数のうち、任意の説明変数の想定値の入力を受付けるステップと、
前記入力を受付けた前記説明変数に対応する前記回帰モデルを、前記回帰モデル記憶部から読み出し、当該回帰モデルに基づいて、前記入力を受付けた前記説明変数の想定値に対応する目的変数である工数を算出するステップと、
を実行させる工数見積プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム開発における工数の見積を行う技術に関する。
【背景技術】
【０００２】
ソフトウェア等のシステム開発における開発工数の見積を行う方法として、いくつかの方法が提案されている。例えば、特許文献１には、いわゆるＦＰ（ファンクションポイント）法に基づいて、ユースケースの記述中に使用されたキーワードおよびエンティティ名を利用して、所定単位のトランザクションをそれぞれ内外入出力、論理ファイル等に分類してＦＰを算出することが記載されている。特許文献２には、システムの規模を予測するためのパラメータおよび確率分布を入力し、ＦＰ法に基づいてシステム規模の予測値の確率分布を算出して工数を予測することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１１７７６３号公報
【特許文献２】特開２００４−１９９１１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のようにＦＰ法に基づく場合には、要件等がある程度固まってきてからでないと見積ができず、要件があいまいな段階で見積を行うことができない。例えば、特許文献１は、ユースケース図を描ける程度にシステムの要件が明確になってからでないと適用できない。特許文献２は、個々の入力パラメータの要件が明確になってからでないと適用できない。すなわち、このような要件があいまいな初期の段階では工数の見積を行うことができず、妥当な見積工数を提示できなかった。そこで、要件があいまいな初期の段階で、ある程度妥当な工数見積を行うことが望ましい。
【０００５】
本発明は、このような状況に鑑みてなされたもので、要件があいまいな初期の段階で、ある程度妥当な工数見積を行う工数見積装置、工数見積方法、工数見積プログラムを提供する。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明は、システム開発にかかる工数の推定値を算出する工数見積装置であって、過去に実施されたシステム開発における、工数の実績値と、工数の実績値である目的変数に対する説明変数となり得る複数の項目の実績値とが記憶されている実績値記憶部と、実績値に基づいて算出される回帰モデルが記憶される回帰モデル記憶部と、実績値を、回帰モデルに対する外れ値とする水準を示す水準値が記憶されている水準値記憶部と、実績値記憶部に記憶されている実績値を読み出し、読み出した実績値に基づいて回帰分析を行い、実績値記憶部に記憶されている複数の説明変数のうち、水準値記憶部に記憶されている水準値を満たす説明変数を選択して回帰モデルを算出し、回帰モデル記憶部に記憶させる回帰モデル算出処理を行う回帰モデル算出部と、実績値記憶部に記憶されている実績値のうち、回帰モデルに対する水準値に基づく外れ値である実績値を抽出し、外れ値に基づいて、回帰モデル算出部に回帰モデル算出処理を行わせる外れ値抽出部と、複数の説明変数のうち、任意の説明変数の想定値の入力を受付ける入力部と、入力部に入力された説明変数に対応する回帰モデルを、回帰モデル記憶部から読み出し、回帰モデルに基づいて、入力部に入力された説明変数の想定値に対応する目的変数である工数を算出する見積工数算出部と、を備えることを特徴とする。
【０００７】
また、本発明は、実績値記憶部に記憶されている説明変数となり得る複数の項目には、開発対象であるシステムの非機能に関する要求レベルの高低を示す情報と、非機能要求を実現する設計結果を示す情報とが含まれ、入力部に入力される想定値は、開発対象であるシステムの非機能に関する要求レベルの高低を示す情報と、非機能要求を実現する設計結果を示す情報とのいずれかまたは双方であることを特徴とする。
【０００８】
また、本発明は、実績値記憶部には、システム開発における複数の工程毎に対応する実績値が記憶され、回帰モデル算出部は、工程毎の実績値に基づいて、工程毎の回帰モデルを算出して回帰モデル記憶部に記憶させることを特徴とする。
【０００９】
また、本発明は、過去に実施されたシステム開発における、工数の実績値と、工数の実績値である目的変数に対する説明変数となり得る複数の項目の実績値とが記憶されている実績値記憶部と、実績値に基づいて算出される回帰モデルが記憶される回帰モデル記憶部と、実績値を、回帰モデルに対する外れ値とする水準を示す水準値が記憶されている水準値記憶部と、を備えた工数見積装置の工数見積方法であって、実績値記憶部に記憶されている実績値を読み出し、読み出した実績値に基づいて回帰分析を行い、実績値記憶部に記憶されている複数の説明変数のうち、水準値記憶部に記憶されている水準値を満たす説明変数を選択して回帰モデルを算出し、回帰モデル記憶部に記憶させる回帰モデル算出処理を行うステップと、
実績値記憶部に記憶されている実績値のうち、回帰モデルに対する水準値に基づく外れ値である実績値を抽出し、外れ値に基づいて、回帰モデル算出処理を繰り返すステップと、複数の説明変数のうち、任意の説明変数の想定値の入力を受付けるステップと、入力を受付けた説明変数に対応する回帰モデルを、回帰モデル記憶部から読み出し、回帰モデルに基づいて、入力を受付けた説明変数の想定値に対応する目的変数である工数を算出するステップと、を備えることを特徴とする。
【００１０】
また、本発明は、過去に実施されたシステム開発における、工数の実績値と、工数の実績値である目的変数に対する説明変数となり得る複数の項目の実績値とが記憶されている実績値記憶部と、実績値に基づいて算出される回帰モデルが記憶される回帰モデル記憶部と、実績値を、回帰モデルに対する外れ値とする水準を示す水準値が記憶されている水準値記憶部と、を備えた工数見積装置のコンピュータに、実績値記憶部に記憶されている実績値を読み出し、読み出した実績値に基づいて回帰分析を行い、実績値記憶部に記憶されている複数の説明変数のうち、水準値記憶部に記憶されている水準値を満たす説明変数を選択して回帰モデルを算出し、回帰モデル記憶部に記憶させる回帰モデル算出処理を行うステップと、実績値記憶部に記憶されている実績値のうち、回帰モデルに対する水準値に基づく外れ値である実績値を抽出し、外れ値に基づいて、回帰モデル算出処理を繰り返すステップと、複数の説明変数のうち、任意の説明変数の想定値の入力を受付けるステップと、入力を受付けた説明変数に対応する回帰モデルを、回帰モデル記憶部から読み出し、回帰モデルに基づいて、入力を受付けた説明変数の想定値に対応する目的変数である工数を算出するステップと、を実行させる工数見積プログラムである。
【発明の効果】
【００１１】
以上説明したように、本発明によれば、過去に実施されたシステム開発における、工数の実績値と、工数の実績値である目的変数に対する説明変数となり得る複数の項目の実績値とを記憶し、実績値を、回帰モデルに対する外れ値とする水準を示す水準値が記憶し、実績値に基づいて回帰分析を行い、複数の説明変数のうち水準値を満たす説明変数を選択して回帰モデルを算出し、実績値のうち、回帰モデルに対する水準値に基づく外れ値である実績値を抽出し、外れ値に基づいて、回帰モデル算出処理を行い、任意の説明変数の想定値の入力を受付け、入力された説明変数に対応する回帰モデルを、回帰モデル記憶部から読み出し、回帰モデルに基づいて、入力部に入力された説明変数の想定値に対応する目的変数である工数を算出するようにしたので、要件があいまいな初期の段階で、ある程度妥当な工数見積を行うことが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態による工数推定装置の構成例を示すブロック図である。
【図２】本発明の一実施形態によるクレンジングルールのデータ例を示す図である。
【図３】本発明の一実施形態による実績値のデータ例を示す図である。
【図４】本発明の一実施形態による水準値のデータ例を示す図である。
【図５】本発明の一実施形態による抽出条件のデータ例を示す図である。
【図６】本発明の一実施形態による回帰モデルのデータ例を示す図である。
【図７】本発明の一実施形態によるモデル診断結果のデータ例を示す図である。
【図８】本発明の一実施形態による見積結果のデータ例を示す図である。
【図９】本発明の一実施形態により出力するグラフの例を示す図である。
【図１０】本発明の一実施形態による工数推定装置の動作例を示すフローチャートである。
【図１１】本発明の一実施形態による工数推定装置の動作例を示すフローチャートである。
【図１２】本発明の一実施形態による工数推定装置の処理遷移を示す図である。
【図１３】本発明の一実施形態により出力するグラフの例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態について、図面を参照して説明する。
図１は、本実施形態による工数推定装置１００の構成を示すブロック図である。工数推定装置１００は、システム開発にかかる工数の推定値を算出するコンピュータ装置であり、入力部１０１と、実績値修正部１０２と、実績値記憶部１０３と、水準値記憶部１０４と、回帰モデル算出部１０５と、回帰モデル記憶部１０６と、外れ値抽出部１０７と、見積工数算出部１０８と、出力部１０９とを備えている。
【００１４】
入力部１０１は、キーボードやマウス等のデバイスを備えており、情報の入力を受付ける。例えば、入力部１０１には、過去に実施されたシステム開発における、工数の実績値と、工数の実績値である目的変数（従属変数）に対する説明変数（独立変数）となり得る複数の項目の実績値とが入力される。例えば、ディスプレイである出力部１０９が、実績値の入力画面を表示させると、入力部１０１は、表示された入力画面に応じてユーザから入力される実績値の入力を受付ける。入力される実績値とは、例えば、システム開発のプロジェクトを識別するプロジェクト名と、このプロジェクトに対応する、（１）非機能に関する要求レベルの高低を示す情報、（２）非機能要求を実現する設計や構築の結果を示す情報、（３）要件定義、設計、構築、テスト等のシステム開発に要した工数を示す情報、などである。
【００１５】
ここで、説明変数である実績値の項目としてどのような情報を収集するかは、見積を実施しうる各段階での使用可否や、工数への影響度合い、収集コストの妥当性等を考慮して予め決定しておく。例えば、（１）の例として、稼働率やサービス中断時間、処理速度等の情報、（２）の例として、論理サーバ台数やパッケージプログラム種類、プログラミング言語、ＳＬＯＣ（source lines of code）、ＦＰ等の情報が挙げられる。
【００１６】
また、入力部１０１には、実績値に基づいて算出される回帰モデルに対して実績値を外れ値とする水準を示す水準値が入力される。入力部１０１は、入力された水準値を水準値記憶部１０４に記憶させる。
また、入力部１０１には、回帰モデル記憶部１０６に記憶されている回帰モデルに含まれる複数の説明変数のうち、工数の推定値の算定根拠である任意の説明変数の想定値が入力される。入力される想定値は、（１）非機能に関する要求レベルの高低を示す情報、（２）非機能要求を実現する設計や構築の結果を示す情報、のいずれかまたは双方である。
【００１７】
実績値修正部１０２は、入力部１０１に入力された実績値に、表記揺れや単位不統一などが存在する場合、これらを一定のルールに従って修正して統一するクレンジング処理を行う。実績値修正部１０２は、自身の記憶領域にこのようなクレンジングルールを予め記憶しておく。図２は、実績値修正部１０２に記憶されているクレンジングルールのデータ例を示す図である。ルール適用対象項目は、クレンジングルールによるクレンジング処理を行う対象である項目を示す情報である。適用条件は、入力された実績値がその適用条件に一致する場合に、修正を行うことを示す。クレンジング式は、適用条件に一致する実績値の修正後の値を示す。例えば、項目が「プログラミング言語」である実績値が「ＶＢ２００８」である場合、実績値を「Ｖｉｓｕａｌ  Ｂａｓｉｃ  ２００８」（Ｖｉｓｕａｌ  Ｂａｓｉｃは登録商標）に修正することを示す。
【００１８】
実績値記憶部１０３には、入力部１０１に入力され、実績値修正部１０２によって修正された実績値が記憶される。図３は、実績値記憶部１０３に記憶される実績値のデータ例を示す図である。実績値には、プロジェクト名、信頼性要件（稼働率）、性能要件（処理速度）、サーバ台数、規模、規模単位、開発期間等の項目と、工数を示す情報が対応付けられる。ここでは、このような項目を実績値の例として示すが、項目は予め任意に決定して良い。
【００１９】
水準値記憶部１０４には、入力部１０１に入力された水準値が記憶される。図４は、水準値記憶部１０４に記憶される水準値のデータ例を示す図である。ここで、本実施形態による回帰モデル算出処理に用いる評価指標、水準値について説明する。評価指標、水準値は、見積モデルの用途等に応じて、予め定められる。評価指標は、例えば、（１）実績値の特徴に応じた見積精度を示すＭＭＲＥ（相対誤差絶対値の平均値）、ＭｄＭＲＥ（相対誤差絶対値の中央値）、（２）実績値の数と項目の数のバランスを示す検定力１−β、有意水準α、効果量θ、（３）回帰モデルのロバストネス（頑健性）を示す自由度調整済み決定係数Ｒ２、赤池情報量基準ＡＩＣなどが適用できる。
【００２０】
例えば、（１）については、実績値の工数分布を正規分布で近似できる場合はＭＭＲＥ、そうでない場合はＭｄＭＲＥを適用する。水準値は、構築する回帰モデルの利用時期、見積結果の用途などに応じて、任意の値を予め入力部１０１に入力し、設定する。（２）については、目標とする見積精度に基づいて、効果量θの水準値を予め入力部１０１に入力し、設定する。第１種の過誤（不適切な回帰モデルを選ぶ過誤）を避けたい場合は有意水準αを適用する。第２種の過誤（適切な回帰モデルを選ばない過誤）を避けたい場合は、検定力１−βを適用する。（３）については、回帰モデルとして線形モデルのみを仮定し、かつ実績値が母集団の十分な割合を含む場合、自由度調整済み決定係数Ｒ２を選択できる。非線形モデルまたは実績値が母集団に比べ小さい場合、赤池情報量基準ＡＩＣを選択する。これらは、回帰モデル候補を相対的に比較するための指標であるため、水準値の設定は不要である。
【００２１】
回帰モデル算出部１０５は、実績値記憶部１０３に記憶されている実績値を読み出し、読み出した実績値に基づいて回帰分析を行い、実績値記憶部１０３に記憶されている複数の説明変数のうち、水準値記憶部１０４に記憶されている水準値を満たす説明変数を選択して回帰モデルを算出し、回帰モデル記憶部１０６に記憶させる回帰モデル算出処理を行う。すなわち、回帰モデル算出部１０５は、工数を目的変数とし、他の複数の項目を説明変数とした重回帰分析を行う。回帰モデル算出部１０５は、実績値記憶部１０３に記憶されている実績値に、数値で表されない質的データが含まれている場合、実績値に含まれる質的データを回帰分析による分析可能なデータとすべく、自身の記憶領域に予め記憶している変換テーブルを参照して適当な数量に変換する。量的データについては、実績値が正規分布となるように変換（Ｂｏｘ−Ｃｏｘ変換）する。これにより、実績値を一括して分析等の処理を行う。
【００２２】
また、回帰モデル算出部１０５は、（１）総当り法、（２）ステップワイズ変数選択法のいずれかの方法により、回帰モデルの説明変数を選択する。ここで、選択する説明変数の個数は、全ての組み合わせを試しても良い。回帰モデル算出部１０５は、工数の実績値を目的変数として、選択した説明変数による回帰分析を行い、回帰係数を決定する。回帰モデル算出部１０５は、決定した回帰係数に基づく回帰モデルに基づく評価指標を算出し、水準値を満たしているか否かを判定する。満たしていると判定すれば、回帰モデルを決定して回帰モデル記憶部１０６に記憶させる。満たしていないと判定すれば、他の説明変数を選択して、回帰モデルを算出し、水準値を満たしているか否かを判定する処理を繰り返す。
【００２３】
ここで、回帰モデル算出部１０５は、後述する外れ値抽出部１０７によって抽出された回帰モデルの外れ値に基づいて、同様に回帰モデル算出処理を行い、新たな回帰モデルを算出して回帰モデル記憶部１０６に記憶させる。このとき、回帰モデル算出部１０５は、外れ値を抽出する抽出条件を自身の記憶領域に記憶し、この抽出条件に基づいて実績値記憶部１０３から実績値を抽出する。図５は、このような抽出条件のデータ例を示す図である。初回の回帰モデル算出処理については、全ての実績値を対象として回帰モデルを算出するため抽出条件はない（ＮＵＬＬである）が、外れ値に基づく層別の回帰モデルを抽出する際には、自身の記憶領域に記憶された層別の抽出条件に基づいて実績値を抽出し、回帰モデル算出処理を行う。
【００２４】
回帰モデル記憶部１０６には、実績値記憶部１０３に記憶されている実績値に基づいて回帰モデル算出部１０５によって算出された回帰モデルが記憶される。図６は、回帰モデル記憶部１０６に記憶される回帰モデルの例を示す図である。回帰モデルは、以下式により表される。
目的変数（工数）＝説明変数１×偏回帰係数１＋説明変数２×偏回帰係数２＋説明変数３×偏回帰係数３＋・・・説明変数Ｎ×偏回帰係数Ｎ＋定数項
【００２５】
外れ値抽出部１０７は、回帰モデル算出部１０５によって算出された回帰モデルを、水準値記憶部１０４に記憶されている水準値に基づいて診断するモデル診断を行い、モデル診断結果を回帰モデル記憶部１０６に記憶させる。図７は、モデル診断結果のデータ例を示す図である。また、外れ値抽出部１０７は、実績値記憶部１０３に記憶されている実績値のうち、回帰モデル算出部１０５によって算出された回帰モデルに対する水準値に基づく外れ値である実績値を抽出し、抽出した外れ値に基づいて、回帰モデル算出部１０５に回帰モデル算出処理を行わせる。すなわち、外れ値抽出部１０７は、回帰モデル算出部１０５による回帰分析により、評価指標を大きく悪化させている実績値を特定する。回帰モデル算出部１０５は、特定した実績値を外れ値として抽出する判別分析を行う。
【００２６】
ここで、外れ値抽出部１０７は、回帰モデルを水準値から外す原因となっている実績値である外れ値を判定し、実績値記憶部１０３に記憶されている実績値から、外れ値を抽出する抽出条件を生成し、回帰モデル算出部１０５の記憶領域に記憶させる。そして、回帰モデル算出部１０５に、外れ値である実績値に基づく新たな回帰モデルを算出させる。これにより、回帰モデル算出部１０５は、層別の複数の回帰モデルを算出する。例えば、システム開発において所定のバージョンのＯＳ（Operating System）を使用している場合や、所定の製品の組み合わせを使用している場合などにこのような外れ値になると考えられる。
【００２７】
見積工数算出部１０８は、入力部１０１に入力された説明変数に対応する回帰モデルを、回帰モデル記憶部１０６から読み出し、回帰モデルに基づいて、入力部１０１に入力された説明変数の想定値に対応する目的変数である工数を算出する。ここで、見積工数算出部１０８は、入力された想定値と、回帰モデル算出部１０５に記憶されているデータ抽出条件とを比較し、分類可能な実績値を実績値記憶部１０３から読み出し、その実績値に対応する複数の回帰モデルを回帰モデル記憶部１０６から読み出す。また、見積工数算出部１０８は、読み出した複数の回帰モデルに対応するモデル診断結果を回帰モデル記憶部１０６から読み出し、読み出した複数の回帰モデルのうち最も精度の良い回帰モデルの説明変数の入力画面を出力部１０９に表示させる。この際、既に想定値が入力されている説明変数については、既に入力されている値を表示させる。説明変数に想定値が入力されない場合、入力がないと算出する工数の精度が悪くなる（ばらつきが大きくなる）ことを示す警告文を出力部１０９に表示させ、入力を促す。ただし、想定値の入力は必須ではなく、入力されない場合は、デフォルト値（例えば、平均値や中央値など）を自動的に入力して適用する。見積工数算出部１０８は、入力された想定値を回帰モデルにあてはめ、目的変数である工数を算出する。算出した工数は、想定値に対する工数の推定値であり、見積結果である。見積工数算出部１０８は、このような見積結果を、自身の記憶領域に記憶させる。図８は、見積結果のデータ例を示す図である。
【００２８】
出力部１０９は、情報を出力するディスプレイであり、見積工数算出部１０８によって算出された見積結果を表示する。例えば、出力部１０９は、入力された想定値に対して算出された工数を表示させるともに、回帰モデルに基づく最尤推定値、信頼区間の確率分布、経験分布（実績値データの分布）などを示すグラフを表示させるようにしても良い。図９は、このようなグラフの例を示す図である。横軸は工数（人月）を示し、線グラフは回帰モデルに基づく確率分布を示し、腺グラフは実績値のデータ件数の分布を示す。さらに、算出された確率分布に基づき、所定の確率の範囲にある点を、上限値、中間値、下限値として提示することができる。
【００２９】
これにより、要件があいまいな状態でも、最も工数がかかる場合、通常の場合等を示すことができる。これにより、例えば要件定義を進めていく段階で、工数の幅がどこに収束していくかといった観点で、要件を取捨選択する等、システムの開発側と顧客側との見積りに対する意識合わせが容易になる。さらに、想定値が不明であった説明変数が存在する場合、その説明変数の想定値を入力することにより、確率分布がどのように変化するかを示すことができる。
【００３０】
次に、本実施形態による工数推定装置１００の動作例を説明する。図１０は、工数推定装置１００による回帰モデル算出処理の動作例を示すフローチャートである。まず、入力部１０１は、工数等の実績値の入力を受付ける（ステップＳ１）。実績値修正部１０２は、予め定められたクレンジングルールに基づいて、入力部１０１に入力された実績値のクレンジング処理を行い、実績値記憶部１０３に記憶させる（ステップＳ２）。回帰モデル算出部１０５は、水準値記憶部１０４に記憶されている水準値と、実績値記憶部１０３に記憶されている実績値とに基づいて回帰モデルを算出し、算出した回帰モデルを回帰モデル記憶部１０６に記憶させる（ステップＳ３）。外れ値抽出部１０７は、算出された回帰モデルのモデル診断を行い、回帰モデルの再算出を行なうと判定すると（ステップＳ４：ＹＥＳ）、外れ値を抽出する抽出条件を生成する。外れ値抽出部１０７は、生成した抽出条件を回帰モデル算出部１０５に記憶させ（ステップＳ５）、ステップＳ３に戻る。回帰モデル算出部１０５は、生成された抽出条件に基づいて、回帰モデル抽出処理を行う。外れ値抽出部１０７が、回帰モデルの再算出を行なわないと判定すると（ステップＳ４：ＮＯ）、処理を終了する。
【００３１】
図１１は、工数推定装置１００による工数見積処理の動作例を示すフローチャートである。入力部１０１は、ユーザからの説明変数の想定値の入力を受付ける（ステップＳ１０）。見積工数算出部１０８は、入力された想定値に対応する回帰モデルを回帰モデル算出部１０５から抽出する（ステップＳ１１）。見積工数算出部１０８は、入力された想定値を、抽出した回帰モデルに当てはめ、工数の推定値（見積工数）を算出する（ステップＳ１２）。出力部１０９は、見積工数を出力してユーザに提示し（ステップＳ１３）、処理を終了する。
【００３２】
図１２は、工数推定装置１００による各処理の遷移を示す図である。まず、ＰＭ（プロジェクトマネージャ）等が、過去のシステム開発における実績値（生データ）を工数推定装置１００に入力し（ステップＳ２１）、モデル構築者がクレンジングルールを工数推定装置１００に入力する（ステップＳ２２）。工数推定装置１００の実績値修正部１０２は、入力された生データとクレンジングルールとを読み出し（ステップＳ２３、ステップＳ２４）、クレンジング処理を行う。クレンジング処理により修正された実績値は、実績値記憶部１０３に記憶される（ステップＳ２５）。回帰モデル算出部１０５は、データ抽出条件を読み出し（ステップＳ２６）、読み出したデータ抽出条件に応じた実績値を、実績値記憶部１０３から読み出す（ステップＳ２７）。
【００３３】
回帰モデル算出部１０５は、読み出した実績値に基づいて回帰分析を行い（ステップＳ２８、２９）、回帰モデルを算出して回帰モデル記憶部１０６に記憶させる（ステップＳ３０）。ここで、入力部１０１は、モデル構築者からの水準値の入力を受付け、入力された水準値を水準値記憶部１０に記憶させる（ステップＳ３１）。外れ値抽出部１０７は、回帰モデル記憶部１０６に記憶された回帰モデルを読み出し（ステップＳ３２）、水準値記憶部１０４に記憶された水準値を読み出して（ステップＳ３３）、モデル診断を行い、モデル診断結果を回帰モデル記憶部１０６に記憶させる（ステップＳ３４）、
【００３４】
外れ値抽出部１０７は、モデル診断結果を読み出し（ステップＳ３５）、実績値記憶部１０３に記憶されている実績値を読み出して外れ値の抽出条件を生成し、回帰モデル算出部１０５に記憶させる（ステップＳ３７）。以降、層別の回帰モデルを算出し、回帰モデル記憶部１０６に記憶させる。このようにして回帰モデルが算出され記憶されると、入力部１０１は、見積り実施者からの見積条件（想定値）の入力を受付ける（ステップＳ３８）。見積工数算出部１０８は、回帰モデル算出部１０５に記憶されている抽出条件と、回帰モデル算出部１０５に記憶されている回帰モデルと、回帰モデル記憶部１０６に記憶されているモデル診断結果とを読み出し（ステップＳ３９、４０、４１）、回帰モデルに想定値を当てはめて、工数の推定値を算出する（ステップＳ４２）。見積工数算出部１０８は、見積結果を自身の記憶領域に記憶させ（ステップＳ４３）、出力部１０９に表示させて見積り実施者に提示する（ステップＳ４４）。
【００３５】
なお、上述の実施形態では、システム開発全体における工数の実績値を入力し、実績値に基づく工数の推定値を算出する処理を行う例を示したが、システム開発における複数の工程毎に、これらの処理を行うようにしても良い。この場合、実績値記憶部１０３には、システム開発における複数の工程毎に対応する実績値が記憶される。回帰モデル算出部１０５は、工程毎の実績値に基づいて、工程毎の回帰モデルを算出して回帰モデル記憶部１０６に記憶させる。入力部１０１は、工程毎の任意の説明変数の想定値の入力を受付ける。見積工数算出部１０８は、工程毎の想定値に対応する回帰モデルを読み出して、工数の推定値を算出する。図１３は、例えば要件定義（ｙ１）、設計（ｙ２）、製造（ｙ３）の３工程毎に回帰モデルが算出される場合のグラフの例を示す図である。ここで、回帰モデルがｆｎ（ｘ１、ｘ２、ｘ３、・・・、ｘｍ）（ｎ：工程数、ｍ：項目数）であるとすると、Σｆｉのブートストラップまたは畳み込みにより、図９に示したような全体の確率分布が算出できる。
【００３６】
以上説明したように、本実施形態によれば、要件があいまいな段階でも、入力された想定値に基づいた工数の推定値を算出して提示することができる。また、工数の上限、下限を提示することもでき、見積に対する開発側と顧客側との意識合わせを行なうことができ、明らかにしなければならない要件について明確にすることもできる。さらに、プロジェクトの進行に合わせて工数を再度見積もることもでき、問題や変更が発生したときに、現段階での工数に対する影響を提示することができる。
【００３７】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより工数の算出を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３８】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００３９】
１００  工数推定装置
１０１  入力部
１０２  実績値修正部
１０３  実績値記憶部
１０４  水準値記憶部
１０５  回帰モデル算出部
１０６  回帰モデル記憶部
１０７  外れ値抽出部
１０８  見積工数算出部
１０９  出力部
【図１】
0005560220.tif 000002
【図２】
0005560220.tif 000003
【図３】
0005560220.tif 000004
【図４】
0005560220.tif 000005
【図５】
0005560220.tif 000006
【図６】
0005560220.tif 000007
【図７】
0005560220.tif 000008
【図８】
0005560220.tif 000009
【図９】
0005560220.tif 000010
【図１０】
0005560220.tif 000011
【図１１】
0005560220.tif 000012
【図１２】
0005560220.tif 000013
【図１３】
0005560220.tif 000014