(57)【要約】【課題】ソフトウェア開発プロジェクトに適切な見積支援を行うことができる技術を提供する。【解決手段】  見積支援装置であって、開発プロジェクトの実績値として、コンピューター言語と、成果物の特性値と、を対応づけて格納する見積実績テーブル記憶部と、コンピューター言語と、成果物の特性値と、の入力を受け付ける受付部と、コンピューター言語が共通するプロジェクトの実績値を見積実績テーブル記憶部から抽出する実績抽出部と、実績抽出部が抽出したプロジェクトの実績値のうち、成果物の特性値が類似するプロジェクトの実績値を抽出する類似案件抽出部と、類似案件抽出部が抽出したプロジェクトの実績値を用いて見積工数を算出する見積工数算出部と、成果物の特性値と類似案件抽出部が抽出したプロジェクトの実績値との差分と、見積工数と、を含むレポート情報を作成するレポート作成部と、を備える。【選択図】図１
2020017148.tif 000002
【特許請求の範囲】
【請求項１】
開発プロジェクトの実績値として、開発に利用するコンピューター言語と、所定の成果物の特性値と、を対応づけて格納する見積実績テーブル記憶部と、
前記開発に利用するコンピューター言語と、前記所定の成果物の特性値と、の入力を受け付ける受付部と、
前記コンピューター言語が共通する開発プロジェクトの実績値を前記見積実績テーブル記憶部から抽出する実績抽出部と、
前記実績抽出部が抽出した前記開発プロジェクトの実績値のうち、前記成果物の特性値が類似する前記開発プロジェクトの実績値を抽出する類似案件抽出部と、
前記類似案件抽出部が抽出した前記開発プロジェクトの実績値を用いて見積工数を算出する見積工数算出部と、
前記成果物の特性値と前記類似案件抽出部が抽出した前記開発プロジェクトの実績値との差分と、前記見積工数と、を含むレポート情報を作成するレポート作成部と、
を備えることを特徴とする見積支援装置。
【請求項２】
請求項１に記載の見積支援装置であって、
前記成果物の特性値および前記開発プロジェクトの実績値には、少なくとも、入出力項目数と、データ項目数と、処理単位数と、が含まれ、
前記見積工数算出部は、前記開発プロジェクトの実績値のうち、少なくとも、入出力項目数と、データ項目数と、処理単位数と、を用いて前記見積工数を算出する、
ことを特徴とする見積支援装置。
【請求項３】
請求項１に記載の見積支援装置であって、
前記成果物の特性値および前記開発プロジェクトの実績値には、少なくとも、参照処理および更新処理のそれぞれにおける入出力項目数と、データ項目数と、処理単位数と、が含まれ、
前記見積工数算出部は、前記開発プロジェクトの実績値のうち、少なくとも、前記参照処理および更新処理のそれぞれにおける入出力項目数と、データ項目数と、処理単位数と、を用いて前記見積工数を算出する、
ことを特徴とする見積支援装置。
【請求項４】
請求項１に記載の見積支援装置であって、
前記開発プロジェクトの実績値には、少なくとも、開発担当者の開発スキルの構成員比が含まれ、
前記見積工数算出部は、前記開発担当者の開発スキルの構成員比に応じて前記開発プロジェクトの実績値に重み付けを行い、前記見積工数を算出する、
ことを特徴とする見積支援装置。
【請求項５】
請求項１に記載の見積支援装置であって、
前記成果物の特性値および前記開発プロジェクトの実績値には、少なくとも、入出力項目数と、データ項目数と、処理単位数と、が含まれ、
前記類似案件抽出部は、
前記実績抽出部が抽出した前記開発プロジェクトの実績値のうち、前記成果物の特性値ごとに、近似する前記開発プロジェクトを類似する開発プロジェクトとして一件または複数件抽出する、
ことを特徴とする見積支援装置。
【請求項６】
請求項１に記載の見積支援装置であって、
前記成果物の特性値および前記開発プロジェクトの実績値には、少なくとも、入出力項目数と、データ項目数と、処理単位数と、が含まれ、
前記類似案件抽出部は、
前記実績抽出部が抽出した前記開発プロジェクトの実績値のうち、前記成果物の特性値ごとに、所定の重みを付けた値を用いて近似する前記開発プロジェクトを類似する開発プロジェクトとして一件または複数件抽出する、
ことを特徴とする見積支援装置。
【請求項７】
コンピューターに見積を支援させる見積支援プログラムであって、
前記コンピューターは、制御部と、開発プロジェクトの実績値として、開発に利用するコンピューター言語と、所定の成果物の特性値と、を対応づけて格納する見積実績テーブル記憶部と、を備え、
前記制御部に、
前記開発に利用するコンピューター言語と、前記成果物の特性値と、の入力を受け付ける受付ステップと、
前記コンピューター言語が共通する開発プロジェクトの実績値を抽出する実績抽出ステップと、
前記実績抽出ステップで抽出した前記開発プロジェクトの実績値のうち、前記成果物の特性値が類似する前記開発プロジェクトの実績値を抽出する類似案件抽出ステップと、
前記類似案件抽出ステップで抽出した前記開発プロジェクトの実績値を用いて見積工数を算出する見積工数算出ステップと、
前記成果物の特性値と前記類似案件抽出ステップで抽出した前記開発プロジェクトの実績値との差分と、前記見積工数と、を含むレポート情報を作成するレポート作成ステップと、
を実施させることを特徴とする見積支援プログラム。
【請求項８】
コンピューターに見積を支援させる見積支援方法であって、
前記コンピューターは、制御部と、開発プロジェクトの実績値として、開発に利用するコンピューター言語と、所定の成果物の特性値と、を対応づけて格納する見積実績テーブル記憶部と、を備え、
前記制御部に、
前記開発に利用するコンピューター言語と、前記成果物の特性値と、の入力を受け付ける受付ステップと、
前記コンピューター言語が共通する開発プロジェクトの実績値を抽出する実績抽出ステップと、
前記実績抽出ステップで抽出した前記開発プロジェクトの実績値のうち、前記成果物の特性値が類似する前記開発プロジェクトの実績値を抽出する類似案件抽出ステップと、
前記類似案件抽出ステップで抽出した前記開発プロジェクトの実績値を用いて見積工数を算出する見積工数算出ステップと、
前記成果物の特性値と前記類似案件抽出ステップで抽出した前記開発プロジェクトの実績値との差分と、前記見積工数と、を含むレポート情報を作成するレポート作成ステップと、
を実施させることを特徴とする見積支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、見積支援装置、見積支援システムおよび見積支援方法に関するものである。
【背景技術】
【０００２】
特許文献１には、「過去プロジェクトと見積対象プロジェクトの類似性を判定するためには、プロジェクト特性項目を一致させて、項目毎に比較評価しないと、精度の良い見積推定が行えなかった。」こと、「旧プロジェクト特性項目と旧プロジェクト特性データを、新規プロジェクト特性項目と新規プロジェクト特性データに変換する手段と、変換後の旧プロジェクト特性項目における比較評価により見積対象プロジェクトの類似プロジェクトを抽出する手段と、全く新規に追加された新規追加プロジェクト特性項目における比較評価により見積対象プロジェクトの類似プロジェクトを抽出する手段と、各抽出された類似プロジェクトの見積偏差を合成し、見積対象プロジェクトの見積偏差を算出する手段とを有する見積支援システム」こと、について記載がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１７３８２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記技術は、プロジェクト特性を変換して差異を吸収することでプロジェクトの類否判断を可能としているが、プロジェクト特性の質や重要度の差異まで考慮した変換を行うにはすべての変換ルールを適切に作成する必要がある。
【０００５】
本発明の目的は、ソフトウェア開発プロジェクトに適切な見積支援を行うことができる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。本発明の一態様に係る見積支援装置は、開発プロジェクトの実績値として、開発に利用するコンピューター言語と、所定の成果物の特性値と、を対応づけて格納する見積実績テーブル記憶部と、上記開発に利用するコンピューター言語と、上記所定の成果物の特性値と、の入力を受け付ける受付部と、上記コンピューター言語が共通する開発プロジェクトの実績値を上記見積実績テーブル記憶部から抽出する実績抽出部と、上記実績抽出部が抽出した上記開発プロジェクトの実績値のうち、上記成果物の特性値が類似する上記開発プロジェクトの実績値を抽出する類似案件抽出部と、上記類似案件抽出部が抽出した上記開発プロジェクトの実績値を用いて見積工数を算出する見積工数算出部と、上記成果物の特性値と上記類似案件抽出部が抽出した上記開発プロジェクトの実績値との差分と、上記見積工数と、を含むレポート情報を作成するレポート作成部と、を備えることを特徴とする。
【０００７】
また、上記の見積支援装置であって、上記成果物の特性値および上記開発プロジェクトの実績値には、少なくとも、入出力項目数と、データ項目数と、処理単位数と、が含まれ、上記見積工数算出部は、上記開発プロジェクトの実績値のうち、少なくとも、入出力項目数と、データ項目数と、処理単位数と、を用いて上記見積工数を算出する、ことを特徴とするものであってもよい。
【０００８】
また、上記の見積支援装置であって、上記成果物の特性値および上記開発プロジェクトの実績値には、少なくとも、参照処理および更新処理のそれぞれにおける入出力項目数と、データ項目数と、処理単位数と、が含まれ、上記見積工数算出部は、上記開発プロジェクトの実績値のうち、少なくとも、上記参照処理および更新処理のそれぞれにおける入出力項目数と、データ項目数と、処理単位数と、を用いて上記見積工数を算出する、ことを特徴とするものであってもよい。
【０００９】
また、上記の見積支援装置であって、上記開発プロジェクトの実績値には、少なくとも、開発担当者の開発スキルの構成員比が含まれ、上記見積工数算出部は、上記開発担当者の開発スキルの構成員比に応じて上記開発プロジェクトの実績値に重み付けを行い、上記見積工数を算出する、ことを特徴とするものであってもよい。
【００１０】
また、上記の見積支援装置であって、上記成果物の特性値および上記開発プロジェクトの実績値には、少なくとも、入出力項目数と、データ項目数と、処理単位数と、が含まれ、上記類似案件抽出部は、上記実績抽出部が抽出した上記開発プロジェクトの実績値のうち、上記成果物の特性値ごとに、近似する上記開発プロジェクトを類似する開発プロジェクトとして一件または複数件抽出する、ことを特徴とするものであってもよい。
【００１１】
また、上記の見積支援装置であって、上記成果物の特性値および上記開発プロジェクトの実績値には、少なくとも、入出力項目数と、データ項目数と、処理単位数と、が含まれ、上記類似案件抽出部は、上記実績抽出部が抽出した上記開発プロジェクトの実績値のうち、上記成果物の特性値ごとに、所定の重みを付けた値を用いて近似する上記開発プロジェクトを類似する開発プロジェクトとして一件または複数件抽出する、ことを特徴とするものであってもよい。
【００１２】
また、本発明の別の態様にかかる見積支援プログラムは、コンピューターに見積を支援させる見積支援プログラムであって、上記コンピューターは、制御部と、開発プロジェクトの実績値として、開発に利用するコンピューター言語と、所定の成果物の特性値と、を対応づけて格納する見積実績テーブル記憶部と、を備え、上記制御部に、上記開発に利用するコンピューター言語と、上記成果物の特性値と、の入力を受け付ける受付ステップと、上記コンピューター言語が共通する開発プロジェクトの実績値を抽出する実績抽出ステップと、上記実績抽出ステップで抽出した上記開発プロジェクトの実績値のうち、上記成果物の特性値が類似する上記開発プロジェクトの実績値を抽出する類似案件抽出ステップと、上記類似案件抽出ステップで抽出した上記開発プロジェクトの実績値を用いて見積工数を算出する見積工数算出ステップと、上記成果物の特性値と上記類似案件抽出ステップで抽出した上記開発プロジェクトの実績値との差分と、上記見積工数と、を含むレポート情報を作成するレポート作成ステップと、を実施させることを特徴とする。
【００１３】
また、本発明の別の態様に係る見積支援方法は、コンピューターに見積を支援させる見積支援方法であって、上記コンピューターは、制御部と、開発プロジェクトの実績値として、開発に利用するコンピューター言語と、所定の成果物の特性値と、を対応づけて格納する見積実績テーブル記憶部と、を備え、上記制御部に、上記開発に利用するコンピューター言語と、上記成果物の特性値と、の入力を受け付ける受付ステップと、上記コンピューター言語が共通する開発プロジェクトの実績値を抽出する実績抽出ステップと、上記実績抽出ステップで抽出した上記開発プロジェクトの実績値のうち、上記成果物の特性値が類似する上記開発プロジェクトの実績値を抽出する類似案件抽出ステップと、上記類似案件抽出ステップで抽出した上記開発プロジェクトの実績値を用いて見積工数を算出する見積工数算出ステップと、上記成果物の特性値と上記類似案件抽出ステップで抽出した上記開発プロジェクトの実績値との差分と、上記見積工数と、を含むレポート情報を作成するレポート作成ステップと、を実施させることを特徴とする。
【発明の効果】
【００１４】
本発明によると、ソフトウェア開発プロジェクトに適切な見積支援を行うことができる技術を提供することができる。
【００１５】
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１６】
【図１】実施形態に係るソフトウェア開発見積支援システムのブロック図である。
【図２】見積依頼テーブル記憶部のデータ構造例を示す図である。
【図３】見積実績テーブル記憶部のデータ構造を示す図である。
【図４】スキル係数記憶部のデータ構造を示す図である。
【図５】データフローの例を示す図である。
【図６】見積支援装置のハードウェア構成例を示す図である。
【図７】見積処理のフローの例を示す図である。
【図８】類似案件レポート画面の例を示す図である。
【図９】見積分析レポート画面の例を示す図である。
【発明を実施するための形態】
【００１７】
以下に、本発明の一態様に係る実施形態を適用したソフトウェア開発見積支援システム１について、図面を参照して説明する。以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
【００１８】
また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１９】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。
【００２０】
同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは特に明示した場合および原理的に明らかにそうではないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００２１】
また、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２２】
図１は、本実施形態に係るソフトウェア開発見積支援システムのブロック図である。ソフトウェア開発見積支援システム１は、利用者１０が見積支援装置１００を直接操作して利用するものであるが、これに限られず、図示しない情報処理端末を用いてブラウザ等を介して見積支援装置１００に接続して利用するものであってもよい。
【００２３】
なお、図示しないが、情報処理端末から見積支援装置１００に接続する際には、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、携帯電話網等、あるいはこれらが複合した通信網であるネットワークを介して接続される。なお、当該ネットワークは、携帯電話通信網等の無線通信網上のＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）等であってもよい。
【００２４】
ソフトウェア開発見積支援システム１の応用例を挙げると、ソフトウェア開発見積支援システム１は、所定のソフトウェアプロダクトを自社開発する場合にその見積もりに用いる場合や、所定の顧客の経営課題を解決するためのオンデマンド開発における見積もりに用いる場合等、さまざまな状況におけるソフトウェア開発の見積もりに用いることができる。
【００２５】
その際には、利用者１０は、一般に各種の見積もり方法を用いることができるが、その一つに、開発物の量に応じてコストを見積もる方法がある。例えば、画面の数、画面項目の数、データベーステーブルの数、データベーステーブル内の項目数、ビジネスロジック等の処理数、開発言語、開発者スキル等の要素を用いてコストを見積もる。また、さらに精度の高い見積もり方法として、画面数、画面項目数、処理数のそれぞれについて、参照のみを行う処理に付随するものか、あるいは更新処理を伴うものか、を区別する方法がある。一般に、更新処理を伴うものは更新前後のデータの整合性を確保する必要があるため、試験を含む開発工数が大きくなる傾向にあり、これらを区別する情報があれば正確な見積もりを期待できる。
【００２６】
利用者１０は、通常、自身の経験を考慮してソフトウェア成果物の量を予測し、その予測からさらに予測を重ねて見積もりを行うことが多く、利用者１０の知識と経験に拠らなければ精度高く見積もりを行うことができなかった。
【００２７】
さらに、完全に過去に行った開発と同一のソフトウェア開発を行うことはなく、通常は似ていても詳細が異なる。例えば、データベースの設計やソフトウェアの保守体制によってはモジュール化の区分や、更新処理の設計方針が異なったりするため、利用者１０の知識と経験に拠る部分のウェイトは大きかった。
【００２８】
一方で、開発対象物が詳細に決定できれば、見積もりの実績値と対比して精度高く見積もることができる場合も多い。
【００２９】
見積支援装置１００は、記憶部１１０と、制御部１２０と、入力部１３０と、出力部１４０と、が互いにバス等で通信可能に接続される。
【００３０】
記憶部１１０には、見積依頼テーブル記憶部１１１と、見積実績テーブル記憶部１１２と、スキル係数記憶部１１３と、が含まれる。
【００３１】
図２は、見積依頼テーブル記憶部のデータ構造例を示す図である。見積依頼テーブル記憶部１１１には、見積対象のソフトウェア開発についての入力値が保存される。見積依頼テーブル記憶部１１１には、プロジェクト識別子１１１Ａと、顧客名１１１Ｂと、参照画面数（割合）１１１Ｃと、参照画面項目数（割合）１１１Ｄと、更新画面数（割合）１１１Ｅと、更新画面項目数（割合）１１１Ｆと、テーブル数（割合）１１１Ｇと、テーブル項目数（割合）１１１Ｈと、参照処理数（割合）１１１Ｊと、更新処理数（割合）１１１Ｋと、開発言語１１１Ｍと、高スキル開発者割合１１１Ｎと、標準スキル開発者割合１１１Ｐと、不慣れ開発者割合１１１Ｑと、が含まれる。
【００３２】
プロジェクト識別子１１１Ａは、ソフトウェア開発のプロジェクトを他のプロジェクトから区別する識別子である。顧客名１１１Ｂは、ソフトウェア開発のプロジェクトが特定の顧客向けのシステムである場合に、対象の顧客名の情報である。参照画面数（割合）１１１Ｃと、参照画面項目数（割合）１１１Ｄとは、開発する成果物の、参照用の画面の数の総量と、その画面内の参照項目の数の総量とをそれぞれ示す情報である。なお、（割合）との表記がある項目は、絶対数に加えて、（割合）表記のある項目の絶対数の総量に対する割合が付記されるという意味である。
【００３３】
更新画面数（割合）１１１Ｅと、更新画面項目数（割合）１１１Ｆとは、開発する成果物の、更新用の画面の数の総量と、その画面内の更新項目の数の総量とをそれぞれ示す情報である。テーブル数（割合）１１１Ｇと、テーブル項目数（割合）１１１Ｈとは、開発する成果物の、データベースのテーブルの総量と、そのデータベース内の項目の数の総量とをそれぞれ示す情報である。
【００３４】
参照処理数（割合）１１１Ｊと、更新処理数（割合）１１１Ｋとは、開発する成果物の、参照用の処理の数の総量と、更新用の処理の数の総量とをそれぞれ示す情報である。なお、この処理の数は、例えばファンクション数、プロシージャ数、メソッド数あるいはＳＱＬ数に相当するものであってもよい。
【００３５】
開発言語１１１Ｍは、ソフトウェア開発に用いるコンピューター言語である。高スキル開発者割合１１１Ｎと、標準スキル開発者割合１１１Ｐと、不慣れ開発者割合１１１Ｑとは、開発メンバー数に占める開発スキル区分別の開発者の割合である。
【００３６】
図３は、見積実績テーブル記憶部のデータ構造例を示す図である。見積実績テーブル記憶部１１２には、見積済みのソフトウェア開発についての実績値が保存される。見積実績テーブル記憶部１１２には、プロジェクト識別子１１２Ａと、顧客名１１２Ｂと、参照画面数１１２Ｃと、参照画面項目数１１２Ｄと、更新画面数１１２Ｅと、更新画面項目数１１２Ｆと、テーブル数１１２Ｇと、テーブル項目数１１２Ｈと、参照処理数１１２Ｊと、更新処理数１１２Ｋと、開発言語１１２Ｍと、高スキル開発者割合１１２Ｎと、標準スキル開発者割合１１２Ｐと、不慣れ開発者割合１１２Ｑと、が含まれる。また、見積実績テーブル記憶部１１２には、実績工数（人日）１１２Ｒと、開始日１１２Ｓと、終了日１１２Ｔと、特記事項１（１１２Ｕ）と、特記事項２（１１２Ｗ）と、特記事項３（１１２Ｘ）と、が含まれる。
【００３７】
プロジェクト識別子１１２Ａと、顧客名１１２Ｂと、参照画面数１１２Ｃと、参照画面項目数１１２Ｄと、更新画面数１１２Ｅと、更新画面項目数１１２Ｆと、テーブル数１１２Ｇと、テーブル項目数１１２Ｈと、参照処理数１１２Ｊと、更新処理数１１２Ｋと、開発言語１１２Ｍと、高スキル開発者割合１１２Ｎと、標準スキル開発者割合１１２Ｐと、不慣れ開発者割合１１２Ｑとは、それぞれ、見積依頼テーブル記憶部１１１のプロジェクト識別子１１１Ａと、顧客名１１１Ｂと、参照画面数（割合）１１１Ｃと、参照画面項目数（割合）１１１Ｄと、更新画面数（割合）１１１Ｅと、更新画面項目数（割合）１１１Ｆと、テーブル数（割合）１１１Ｇと、テーブル項目数（割合）１１１Ｈと、参照処理数（割合）１１１Ｊと、更新処理数（割合）１１１Ｋと、開発言語１１１Ｍと、高スキル開発者割合１１１Ｎと、標準スキル開発者割合１１１Ｐと、不慣れ開発者割合１１１Ｑと、同様の項目である。
【００３８】
実績工数（人日）１１２Ｒは、開発プロジェクトにおいての工数の実績値である。開始日１１２Ｓ、終了日１１２Ｔは、それぞれプロジェクトの開始日と終了日である。特記事項１（１１２Ｕ）と、特記事項２（１１２Ｗ）と、特記事項３（１１２Ｘ）とは、その他のリスク情報等のフリーテキスト情報である。
【００３９】
図４は、スキル係数記憶部のデータ構造例を示す図である。スキル係数記憶部１１３には、所定の区分のスキルレベルに応じて、工数係数が格納される。工数係数は、標準レベルの技術者が行う場合を基準として、工数をみなし算出する際の係数である。例えば、標準レベルの技術者が「１０人日」の工数をかけて作業を行う場合と、高レベルの技術者が「８人日」の工数をかけて作業を行う場合とが同等である場合に、この工数係数を「０．８」とするものである。
【００４０】
制御部１２０には、見積依頼データ入力受付部１２１と、実績抽出部１２２と、類似案件抽出部１２３と、見積工数算出部１２４と、レポート作成部１２５と、見積実績登録部１２６と、が含まれる。
【００４１】
見積依頼データ入力受付部１２１は、見積もる対象のソフトウェア開発プロジェクトに関して、開発に利用するコンピューター言語と、前記所定の成果物の特性値等見積もりに関する因子と、の入力を受け付ける。具体的には、見積依頼データ入力受付部１２１は、参照画面数と、参照画面項目数と、更新画面数と、更新画面項目数と、テーブル数と、テーブル項目数と、参照処理数と、更新処理数と、開発言語と、高スキル開発者割合と、標準スキル開発者割合と、不慣れ開発者割合と、の入力を受け付けて、見積依頼テーブル記憶部１１１に格納する。その際、見積依頼データ入力受付部１２１は、（割合）との表記がある項目について、絶対数に加えて、（割合）表記のある項目の絶対数の総量に対する割合を算出して付帯させて格納する。
【００４２】
実績抽出部１２２は、見積実績テーブル記憶部１１２から、コンピューター言語が見積依頼と共通する開発プロジェクトを一件または複数件抽出する。または、実績抽出部１２２は、見積実績テーブル記憶部１１２から、コンピューター言語が共通する開発プロジェクトであって、見積依頼と所定以上近い実績値を一件または複数件抽出する。なお、見積依頼と見積実績との近さの判定には、さまざまな基準を用いることができる。例えば、実績抽出部１２２は、各因子の差分の絶対値の累積を用いて近さを判定するようにしてもよいし、各因子の絶対値の累積を用いて近さを判定するようにしてもよい。あるいは、各因子の割合についての差分の絶対値の累積を用いて近さを判定するようにしてもよいし、各因子の割合に所定の重み付けを行うようにしてもよい。
【００４３】
またあるいは、実績抽出部１２２は、各プロジェクトを所定のルールでモデリングし、モデル間距離を所定の方法で算出するようにしてもよい。例えば、各データの性質の差の２乗和の平方根を求めるユークリッド距離を求めてモデル間距離とするようにしてもよいし、相関が強い方向の距離は実際の距離よりも相対的に短くするマハラノビス距離を求めて、画面と画面項目数の相関性やテーブルとテーブル項目数の相関性を考慮した距離を用いるようにしてもよい。
【００４４】
類似案件抽出部１２３は、実績抽出部１２２が抽出した開発プロジェクトの実績値のうち、成果物の特性値が類似する開発プロジェクトの実績値を一件または複数件抽出する。例えば、類似案件抽出部１２３は、実績抽出部１２２と同様に見積依頼と見積実績との近さを判定し、近いものから順に一件または複数件所定件数抽出してもよいし、これに加えて因子ごとに近い実績値を所定件数抽出してもよい。また、類似案件抽出部１２３は、成果物の特性値（因子）ごとに、所定の重みを付けた値を算出し、見積実績との近さを判定するようにしてもよい。
【００４５】
見積工数算出部１２４は、類似案件抽出部１２３が抽出した開発プロジェクトの実績値を用いて見積工数を算出する。例えば、見積工数算出部１２４は、類似案件抽出部１２３が抽出した類似の各開発プロジェクトの実績工数を取得して、開発者のスキル割合を逆算して標準工数に換算した上で、平均値を算出するようにしてもよい。また、算出した平均値は標準工数であるため、見積工数算出部１２４は、見積依頼プロジェクトの開発者のスキル割合に応じて工数を算出する。
【００４６】
レポート作成部１２５は、成果物の特性値と類似案件抽出部１２３が抽出した開発プロジェクトの実績値との差分と、見積工数と、を含むレポート情報を作成する。
【００４７】
見積実績登録部１２６は、実施したプロジェクトが完了した後、そのプロジェクトに関する実績値の入力を受け付けて、見積実績テーブル記憶部１１２に格納する。
【００４８】
入力部１３０は、見積支援装置１００への利用者１０からの入力を受け付ける。例えば、入力部１３０は、タイピングやタッチ、フリック入力等の各種の接触入力、あるいは音声入力、または視線入力等の各種の入力を受け付ける。
【００４９】
出力部１４０は、見積支援装置１００からの利用者１０への出力を行う。出力される情報は、画面や帳票等の各種出力情報である。
【００５０】
図５は、データフローの例を示す図である。見積依頼データ入力受付部１２１は、画面数、画面項目数を画面の種類に応じて、テーブル数、テーブル項目数と、処理の種類に応じて処理数と、開発言語と、開発者スキルの情報の入力を受け付けて、見積依頼テーブル記憶部１１１に格納する。実績抽出部１２２は、見積依頼テーブル記憶部１１１と、見積実績テーブル記憶部１１２と、を読み出して見積実績抽出データを作成する。類似案件抽出部１２３は、見積実績抽出データから見積実績類似抽出データを作成し、類似案件レポートを作成する。見積工数算出部１２４は、見積実績類似抽出データから見積工数を算出する。レポート作成部１２５は、見積工数を用いて見積分析・リスクレポートを作成する。
【００５１】
図６は、見積支援装置のハードウェア構成例を示す図である。見積支援装置１００は、いわゆるサーバー装置、ワークステーション、パーソナルコンピュータ、スマートフォンあるいはタブレット端末の筐体により実現されるハードウェア構成を備える。見積支援装置１００は、演算装置１０１と、主記憶装置１０２と、補助記憶装置１０３と、入力装置１０４と、表示装置１０５と、印刷装置１０６と、各装置をつなぐバス１０７と、を備える。また他に、見積支援装置１００は、ネットワークを介して他の装置と通信する通信装置を備えるものであってもよい。なお、印刷装置は必須ではなく、レポートを印刷する場合に必要に応じて接続するものであってもよい。
【００５２】
演算装置１０１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置である。
【００５３】
主記憶装置１０２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリ装置である。
【００５４】
補助記憶装置１０３は、デジタル情報を記憶可能な、いわゆるハードディスク（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）あるいはフラッシュメモリなどの不揮発性記憶装置である。
【００５５】
入力装置１０４には、キーボードやマウス、タッチパネル、マイク等の各種入力装置が含まれる。表示装置１０５には、液晶ディスプレイ、有機ＥＬディスプレイ等の出力装置が含まれる。印刷装置１０６には、有線接続、無線接続またはネットワーク接続のプリンター装置等が含まれる。
【００５６】
演算装置１０１と、主記憶装置１０２と、補助記憶装置１０３と、入力装置１０４と、表示装置１０５と、印刷装置１０６とは、バス１０７等の接続導線により互いに接続される。
【００５７】
上記した見積支援装置１００の見積依頼データ入力受付部１２１と、実績抽出部１２２と、類似案件抽出部１２３と、見積工数算出部１２４と、レポート作成部１２５と、見積実績登録部１２６とは、演算装置１０１に処理を行わせるプログラムによって実現される。このプログラムは、主記憶装置１０２、補助記憶装置１０３または図示しないＲＯＭ装置内に記憶され、実行にあたって主記憶装置１０２上にロードされ、演算装置１０１により実行される。
【００５８】
また、見積支援装置１００の記憶部１１０は、主記憶装置１０２及び補助記憶装置１０３により実現される。また、入力部１３０および出力部１４０は、入力装置１０４および表示装置１０５、印刷装置１０６により実現される。以上が、見積支援装置１００のハードウェア構成例である。
【００５９】
見積支援装置１００の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。
【００６０】
また、各制御部（見積依頼データ入力受付部１２１と、実績抽出部１２２と、類似案件抽出部１２３と、見積工数算出部１２４と、レポート作成部１２５と、見積実績登録部１２６）は、それぞれの機能を実現する専用のハードウェア（ＡＳＩＣ、ＧＰＵなど）により構築されてもよい。また、各制御部の処理が一つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００６１】
次に、本実施形態におけるソフトウェア開発見積支援システム１の動作を説明する。
【００６２】
図７は、見積支援処理のフローの例を示す図である。見積支援処理は、利用者１０からの開始指示に応じて起動される。
【００６３】
まず、見積依頼データ入力受付部１２１は、見積依頼データ入力受付処理を行う（ステップＳ００１）。具体的には、見積依頼データ入力受付部１２１は、所定の画面を提示して、見積もる対象のソフトウェア開発プロジェクトに関して、開発に利用するコンピューター言語と、所定の成果物の特性値等見積もりに関する因子と、の入力を受け付ける。より具体的には、見積依頼データ入力受付部１２１は、参照画面数と、参照画面項目数と、更新画面数と、更新画面項目数と、テーブル数と、テーブル項目数と、参照処理数と、更新処理数と、開発言語と、高スキル開発者割合と、標準スキル開発者割合と、不慣れ開発者割合と、の入力を受け付けて、見積依頼テーブル記憶部１１１に格納する。なお、成果物の特性値には、少なくとも、参照処理および更新処理のそれぞれにおける入出力項目数と、データ項目数と、処理単位数と、が含まれる。
【００６４】
その際、見積依頼データ入力受付部１２１は、（割合）との表記がある項目について、絶対数に加えて、（割合）表記のある項目の絶対数の総量に対する割合を算出して付帯させて格納する。例えば、参照画面数が「２０」、参照画面項目数が「１００」、更新画面数が「３０」、更新画面項目数が「１００」、テーブル数が「３０」、テーブル項目数が「３００」、参照処理数が「５０」、更新処理数が「５０」のソフトウェア開発案件については、それぞれの割合は、参照画面数が「０．０２９」、参照画面項目数が「０．１４７」、更新画面数が「０．０４４」、更新画面項目数が「０．１４７」、テーブル数が「０．０４４」、テーブル項目数が「０．４４１」、参照処理数が「０．０７５」、更新処理数が「０．０７５」、として算出される。なお、上記の割合では有効桁数を小数第三位としたが、これに限られるものではなく、有効桁数は小数第２位まででもよいし、それ以上であってもよい。また、百分率で表されるものであってもよいことはいうまでもない。
【００６５】
そして、実績抽出部１２２は、実績母集団を抽出する（ステップＳ００２）。具体的には、実績抽出部１２２は、見積実績テーブル記憶部１１２の開発言語１１２Ｍが、ステップＳ００１にて受け付けた開発に利用するコンピューター言語と一致するレコードを、実績母集団として抽出する。
【００６６】
そして、実績抽出部１２２は、差分値を算出する（ステップＳ００３）。具体的には、実績抽出部１２２は、抽出した実績母集団に属する開発プロジェクトのそれぞれについて、ステップＳ００１において受け付けた所定の成果物の特性値等見積もりに関する因子との差分の絶対値を算出する。
【００６７】
そして、実績抽出部１２２は、割合差分値を算出する（ステップＳ００４）。具体的には、実績抽出部１２２は、抽出した実績母集団に属する開発プロジェクトのそれぞれについて、ステップＳ００１において受け付けた所定の成果物の特性値等見積もりに関する因子の割合との差分の絶対値を算出する。
【００６８】
そして、類似案件抽出部１２３は、類似案件を抽出する（ステップＳ００５）。具体的には、類似案件抽出部１２３は、ステップＳ００３およびステップＳ００４において算出した差分値および割合差分値の絶対値を取得し、それぞれの累積値が小さいものを類似する案件として所定数特定する。例えば、類似案件抽出部１２３は、差分値の小さい５案件と、割合差分値の小さい５案件と、をあわせた１０案件を類似案件として特定する（類似案件内に同じ案件の重複がある場合は除外するようにしてもよいし、重複を許可するものであってもよい）。この類似判断については、上述のように各種の類似判定基準を採用することができ、例えばユークリッド距離やマハラノビス距離、あるいはこれらの組み合わせを求めることで判断する。
【００６９】
そして、見積工数算出部１２４は、工数見積を算出する（ステップＳ００６）。具体的には、見積工数算出部１２４は、類似案件抽出部１２３がステップＳ００５で抽出した類似の各開発プロジェクトの実績工数を取得して、開発者のスキル割合を逆算して標準工数に換算した上で、平均値を算出する。また、算出した平均値は標準工数であるため、見積工数算出部１２４は、見積依頼プロジェクトの開発者のスキル割合に応じた工数を算出する。
【００７０】
そして、レポート作成部１２５は、レポート作成および出力を行う（ステップＳ００７）。具体的には、レポート作成部１２５は、成果物の特性値と類似案件抽出部１２３が抽出した開発プロジェクトの実績値との差分と、見積工数と、を含むレポート情報を作成する。
【００７１】
以上が、見積処理の流れである。見積処理によれば、ソフトウェア開発プロジェクトに適切な見積支援を行うことができる。
【００７２】
図８は、類似案件レポート画面の例を示す図である。類似案件レポート画面２００には、類似案件として特定されたプロジェクトのそれぞれについて上から順に、プロジェクトＩＤ表示領域２０１と、プロジェクト名表示領域２０２と、プロジェクト因子表示領域２０３と、実績工数表示領域２０４と、標準工数換算表示領域２０５と、特記事項表示領域２０６と、が含まれ、さらに、「印刷」ボタン２１０と、「リスクレポートへ」ボタン２１１と、が含まれる。
【００７３】
プロジェクトＩＤ表示領域２０１は、プロジェクトの識別子を表示する領域である。プロジェクト名表示領域２０２は、プロジェクトの名称を表示する領域である。プロジェクト因子表示領域２０３は、プロジェクトの所定の成果物の特性値等見積もりに関する因子を表示する領域である。
【００７４】
実績工数表示領域２０４は、当該類似プロジェクトの実績の工数を表示する領域である。標準工数換算表示領域２０５は、実績工数を開発者スキルの比率に応じて標準工数に換算した値の表示領域である。
【００７５】
特記事項表示領域２０６は、当該類似プロジェクトの特記事項のフリーテキストを表示する領域である。
【００７６】
「印刷」ボタン２１０は、入力を受け付けると、類似案件レポート画面２００に表示された情報について印刷装置に情報を伝送し、印刷を行わせる。
【００７７】
「リスクレポートへ」ボタン２１１は、入力を受け付けると、見積分析レポート画面３００に画面を遷移させる。
【００７８】
図９は、見積分析レポート画面の例を示す図である。見積分析レポート画面３００には、プロジェクトＩＤ表示領域３０１と、プロジェクト名表示領域３０２と、見積対象のプロジェクトの所定の成果物の特性値等見積もりに関するプロジェクト因子表示領域３０３と、類似案件として特定されたプロジェクトの所定の成果物の特性値等見積もりに関するプロジェクト因子である参考内容３０４と、差分内容３０５と、差分比較グラフ３０６と、見積工数３０７と、リスク一覧３０８と、が含まれ、さらに、「印刷」ボタン３１０が含まれる。
【００７９】
プロジェクトＩＤ表示領域３０１は、プロジェクトの識別子を表示する領域である。プロジェクト名表示領域３０２は、プロジェクトの名称を表示する領域である。プロジェクト因子表示領域３０３は、見積もり対象のプロジェクトの所定の成果物の特性値等見積もりに関する因子を表示する領域である。
【００８０】
参考内容３０４は、見積もり対象の案件の類似案件について、プロジェクトの所定の成果物の特性値等見積もりに関する因子を表示する領域である。
【００８１】
差分内容３０５は、見積もり対象の案件と、見積もり対象の案件の類似案件とのプロジェクトの所定の成果物の特性値等見積もりに関する因子の差分を表示する領域である。なお、この差分内容３０５は、因子の絶対値の差分を表示してもよいし、因子の割合の差分を表示するようにしてもよい。
【００８２】
差分比較グラフ３０６は、プロジェクトの所定の成果物の特性値等見積もりに関する因子を横軸に、縦軸にその値をとり、見積対象プロジェクトと参考内容とした類似プロジェクトとの比較を視覚的に示すグラフである。
【００８３】
見積工数３０７は、見積対象プロジェクトの工数の見積を示す。リスク一覧３０８は、類似プロジェクトに記載されたフリーテキストの特記事項をあわせて、順に羅列する。
【００８４】
「印刷」ボタン３１０は、入力を受け付けると、見積分析レポート画面３００に表示された情報について印刷装置に情報を伝送し、印刷を行わせる。
【００８５】
以上が、本発明の実施形態にかかるソフトウェア開発見積支援システム１である。ソフトウェア開発見積支援システム１によれば、ソフトウェア開発プロジェクトに適切な見積支援を行うことができる。
【００８６】
本発明は、上記の実施形態に制限されない。上記の実施形態は、本発明の技術的思想の範囲内で様々な変形が可能である。例えば、上記の実施形態においては、開発者のスキルの割合を入力することで見積の概算に用いるようにしたが、これに限られない。例えば、開発者のスキルを細かく評価したデータをプロジェクトメンバーごとに外部から読み込み、当該プロジェクトの開発言語のスキルに応じた評価に基づいて工数の係数を算出するようにしてもよい。このようにすることで、より精度の高い見積を得られる。
【００８７】
また、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品のような複数の部分に分けられて適用されるようにしてもよい。
【００８８】
以上、本発明について、実施形態を中心に説明した。
【符号の説明】
【００８９】
１・・・ソフトウェア開発見積支援システム、１０・・・利用者、１００・・・見積支援装置、１１０・・・記憶部、１１１・・・見積依頼テーブル記憶部、１１２・・・見積実績テーブル記憶部、１１３・・・スキル係数記憶部、１２０・・・制御部、１２１・・・見積依頼データ入力受付部、１２２・・・実績抽出部、１２３・・・類似案件抽出部、１２４・・・見積工数算出部、１２５・・・レポート作成部、１２６・・・見積実績登録部、１３０・・・入力部、１４０・・・出力部。
【図１】
2020017148.tif 000003
【図２】
2020017148.tif 000004
【図３】
2020017148.tif 000005
【図４】
2020017148.tif 000006
【図５】
2020017148.tif 000007
【図６】
2020017148.tif 000008
【図７】
2020017148.tif 000009
【図８】
2020017148.tif 000010
【図９】
2020017148.tif 000011