(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023170368
(43)【公開日】2023-12-01
(54)【発明の名称】工数投入計画生成システム及び工数投入計画生成方法
(51)【国際特許分類】
G06Q 10/0631 20230101AFI20231124BHJP
【FI】
G06Q10/06 302
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022082065
(22)【出願日】2022-05-19
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】堀 旭宏
(72)【発明者】
【氏名】川上 真澄
(72)【発明者】
【氏名】齋藤 肇
(72)【発明者】
【氏名】岡本 知巳
(72)【発明者】
【氏名】直井 茂
(72)【発明者】
【氏名】中村 智明
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA09
(57)【要約】 (修正有)
【課題】工数投入量とその投入時期とを関連付けた時系列の工数投入量を利用して総工数を予測する工数投入計画生成システム及び工数投入計画生成方法を提供する。
【解決手段】所定の演算処理を実行する演算装置(プロジェクト総工数・品質予測シミュレーションシステム10)と、プログラムが格納され、演算装置に接続される記憶デバイスと、を備える工数投入計画生成システムであって、演算装置は、プロジェクトに対する工数投入計画の入力を受け付ける工数投入計画入力部と、演算装置に入力された工数投入計画を解析する解析部と、演算装置が解析部による解析結果を出力する出力部と、を有する。工数投入計画入力部は、工数投入計画として工数投入量とその投入時期とを関連付けた時系列データの入力を受け付ける。
【選択図】
図1
【特許請求の範囲】
【請求項1】
工数投入計画生成システムであって、
所定の演算処理を実行する演算装置と、前記演算装置に接続される記憶デバイスとを備え、
前記演算装置がプロジェクトに対する工数投入計画の入力を受け付ける入力部と、
前記演算装置が入力された前記工数投入計画を解析する解析部と、
前記演算装置が前記解析部による解析結果を出力する出力部と、を有し、
前記入力部は、前記工数投入計画として工数投入量とその投入時期とを関連付けた時系列データの入力を受け付けることを特徴とする工数投入計画生成システム。
【請求項2】
請求項1に記載の工数投入計画生成システムであって、
前記解析部は、
入力された前記時系列データを予め記憶された複数の工数投入パターンと照合して、該当する工数投入パターンを特定し、
予め記憶された過去プロジェクトの中から前記特定された工数投入パターンと特徴が共通する過去プロジェクトを抽出し、
前記抽出された過去プロジェクトの実績に基づいて、工数投入計画の総工数及び品質の少なくとも一方を予測し、総工数及び品質の少なくとも一方を出力することを特徴とする工数投入計画生成システム。
【請求項3】
請求項1に記載の工数投入計画生成システムであって、
前記入力部は、プロジェクトに関する特性データを入力として受け付け、
前記解析部は、入力された前記特性データに基づいて、理想的な時系列データを生成することを特徴とする工数投入計画生成システム。
【請求項4】
請求項3に記載の工数投入計画生成システムであって、
前記入力部は、さらに、プロジェクトに関するマイルストンデータを入力として受け付け、
前記解析部は、過去プロジェクトにおけるマイルストンデータに基づいて、前記理想的な時系列データを生成することを特徴とする工数投入計画生成システム。
【請求項5】
請求項2に記載の工数投入計画生成システムであって、
前記解析部は、前記工数投入計画のユーザによる編集を契機として、入力された前記工数投入計画の解析結果として総工数又は品質を出力し、前記出力部は、前記解析部による解析結果を出力することを特徴とする工数投入計画生成システム。
【請求項6】
請求項2に記載の工数投入計画生成システムであって、
前記入力部は、さらに、プロジェクトに関するマイルストンデータを入力として受け付け、
前記解析部は、過去プロジェクトにおけるマイルストンデータに基づいて、前記総工数又は前記品質の少なくとも一方を予測することを特徴とする工数投入計画生成システム。
【請求項7】
請求項1に記載の工数投入計画生成システムであって、
前記入力部は、理想的な時系列データからユーザがGUIで変更して工数投入計画を生成可能なインターフェースを提供することを特徴とする工数投入計画生成システム。
【請求項8】
工数投入計画生成システムが実行する工数投入計画生成方法であって、
前記工数投入計画生成システムは、所定の演算処理を実行する演算装置と、前記演算装置に接続される記憶デバイスとを有し、
前記工数投入計画生成方法は、
前記演算装置が、プロジェクトに対する工数投入計画の入力を受け付ける入力ステップと、
前記演算装置が、入力された前記工数投入計画を解析する解析ステップと、
前記演算装置が、前記解析ステップによる解析結果を出力する出力ステップと、を含み、
前記入力ステップでは、前記演算装置が、前記工数投入計画として工数投入量とその投入時期とを関連付けた時系列データの入力を受け付けることを特徴とする工数投入計画生成方法。
【請求項9】
請求項8に記載の工数投入計画生成方法であって、
前記解析ステップでは、前記演算装置が、入力された前記時系列データを予め記憶された複数の工数投入パターンと照合して、該当する工数投入パターンを特定し、予め記憶された過去プロジェクトの中から前記特定された工数投入パターンと特徴が共通する過去プロジェクトを抽出し、前記抽出された過去プロジェクトの実績に基づいて、総工数及び品質の少なくとも一方を予測することを特徴とする工数投入計画生成方法。
【請求項10】
請求項8に記載の工数投入計画生成方法であって、
前記入力ステップでは、前記演算装置が、プロジェクトに関する特性データを入力として受け付け、
前記解析ステップでは、前記演算装置が、入力された前記特性データに基づいて、理想的な時系列データを生成することを特徴とする工数投入計画生成方法。
【請求項11】
請求項10に記載の工数投入計画生成方法であって、
前記入力ステップでは、前記演算装置が、さらに、プロジェクトに関するマイルストンデータを入力として受け付け、
前記解析ステップでは、前記演算装置が、過去プロジェクト中のマイルストンデータに基づいて、理想的な時系列データを生成することを特徴とする工数投入計画生成方法。
【請求項12】
請求項9に記載の工数投入計画生成方法であって、
前記工数投入計画のユーザによる編集を契機として、前記解析ステップでは、前記演算装置が、入力された前記工数投入計画の解析結果として総工数又は品質を出力し、前記出力ステップでは、前記演算装置が、前記解析ステップにおける解析結果を出力することを特徴とする工数投入計画生成方法。
【請求項13】
請求項9に記載の工数投入計画生成方法であって、
前記入力ステップでは、前記演算装置が、さらに、プロジェクトに関するマイルストンデータを入力として受け付け、
前記解析ステップでは、前記演算装置が、過去プロジェクト中のマイルストンデータに基づいて、前記総工数又は前記品質の少なくとも一方を予測することを特徴とする工数投入計画生成方法。
【請求項14】
請求項8に記載の工数投入計画生成方法であって、
前記入力ステップでは、前記演算装置が、理想的な時系列データからユーザがGUIで変更して工数投入計画を生成可能なインターフェースを提供することを特徴とする工数投入計画生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、工数投入計画生成システムに監視、特に、プロジェクトの総工数や品質を予測する技術に関する。
【背景技術】
【0002】
ソフトウェア開発プロジェクトでは、プロジェクト計画者がプロジェクトに投入する工数を事前に計画する。理想的には十分な工数を投入することで成果物の品質が向上し、手戻り工数が減ることで総工数を抑えられる。しかし、実際には組織の人的リソースは限られており、十分な工数を投入できない場合がある。その場合、プロジェクト計画者は、組織の人的リソースの範囲内で、妥協可能な品質や総工数を満たす工数投入計画を設定する必要がある。そこで、プロジェクト計画者は、組織の人的リソースの範囲内で設定した工数投入計画から品質や総工数を予測し、予測された品質や総工数が妥協可能かを判断する。これが妥協可能でない場合、再度、組織の人的リソースの範囲内で工数投入計画を設定し、品質や総工数を予測し、予測された品質や総工数が妥協可能かを判断する。品質や総工数の予測結果が妥協可能なものとなるまで、この作業を繰り返す。
【0003】
本技術分野の背景技術として、以下の先行技術がある。特許文献1(特開2011-170496号公報)には建設エリアに施工される複数の構成要素からなるプラントの建設工事又は更新工事の計画作成を支援するプラントの工事計画支援装置において、過去に実施された工事の実績データを複数蓄積したデータベース手段と、予定される工事と同一又は類似する、工事対象の型式及び工事部位を入力する入力手段と、入力手段により入力された工事対象の型式及び工事部位に対応する過去工事の実績データをデータベース手段から抽出する実績データ抽出手段と、実績データ抽出手段で抽出された実績データを用いて、予定工事の作業内容とその時系列順が設定された工程計画表を作成する計画作成手段とを備える工事計画支援装置が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、過去に実施された工事の実績データに基づいて新たな工事の総工数を予測し、工程計画表を作成する。しかし、これをソフトウェア開発プロジェクトに適用する場合、総工数の予測精度を向上の余地がある。なぜなら、ソフトウェア開発プロジェクトでは、要求分析や基本設計などの上流工程で多くの工数をかけることで後々のバグ混入量を抑制でき、後工程での手戻り回数を抑制できるため、総工数を削減できる。すなわち、工数投入量とその投入時期とを関連付けた時系列の工数投入量が総工数に影響するが、特許文献1では、時系列の工数投入量を利用して総工数を予測していないため、この点において精度向上の余地がある。
【0006】
そこで、本発明では、工数投入量とその投入時期とを関連付けた時系列の工数投入量を入力として受け付け、時系列の工数投入量を利用して総工数及び品質の少なくとも一つを予測する。
【課題を解決するための手段】
【0007】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、工数投入計画生成システムであって、所定の演算処理を実行する演算装置と、前記プログラムが格納され、前記演算装置に接続される記憶デバイスとを備え、前記演算装置がプロジェクトに対する工数投入計画の入力を受け付ける入力部と、前記演算装置が入力された前記工数投入計画を解析する解析部と、前記演算装置が前記解析部による解析結果を出力する出力部と、を有し、前記入力部は、前記工数投入計画として工数投入量とその投入時期とを関連付けた時系列データの入力を受け付けることを特徴とする。
【発明の効果】
【0008】
本発明の一態様によれば、総工数や品質の予測精度を向上できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0009】
【
図1】実施例1のプロジェクト総工数・品質予測シミュレーションシステムの処理の流れ及び表示の一例を示す図である。
【
図2】実施例1の工数投入データの一例を示す図である。
【
図3】実施例1の特性データの一例を示す図である。
【
図4】実施例1のマイルストンデータの一例を示す図である。
【
図5】実施例1の過去データの一例を示す図である。
【
図6】実施例1の過去データの一例を示す図である。
【
図7】実施例1の過去データの一例を示す図である。
【
図8】実施例1の過去データの一例を示す図である。
【
図9】実施例1の解析部が保持するデータの一例を示す図である。
【
図10】実施例1の解析部が保持するデータの一例を示す図である。
【
図11】実施例1の出力部が表示するデータの一例を示す図である。
【
図12】実施例1の対象プロジェクトの理想の工数投入計画を算出する処理のフローチャートである。
【
図13】実施例1のオリジナルの工数投入計画に対する将来の総工数、バグ数、生産性、バグ密度、開発期間を算出する処理のフローチャートである。
【
図14】実施例1の理想の工数投入計画における将来の総工数、バグ数、生産性、バグ密度、及び開発期間を算出する処理のフローチャートである。
【
図15】実施例1の当該プロジェクトのシミュレーションの工数投入計画における将来の総工数、バグ数、生産性、バグ密度、及び開発期間を算出する処理のフローチャートである。
【
図16】実施例1の「工数投入パターン」の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、実施例について図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではない。また、実施例において説明されている諸要素及びその組み合わせの全てが発明の解決手段として必須であるとは限らない。
【0011】
<実施例1>
図1は、プロジェクト総工数・品質予測シミュレーションシステム10の処理の流れ及び表示の一例を示す図である。
【0012】
プロジェクト総工数・品質予測シミュレーションシステム10は、工数投入計画入力部101、解析部102及び出力部103を有する。
【0013】
工数投入計画入力部101が工数投入データ104と特性データ105とマイルストンデータ106を読み込むと、工数投入グラフ110におけるオリジナルの工数投入計画として工数投入データ104を表示し、特性データ111として特性データ105を表示し、マイルストンデータ112としてマイルストンデータ106を表示する。工数投入計画である工数投入データ104は、工数投入量とその投入時期とを関連付けた時系列データで表される。次に、解析部102は、工数投入データ104と特性データ105とマイルストンデータ106と過去データ107を読み込んで、理想の工数投入計画を算出し、工数投入グラフ110における理想の工数投入計画として表示する。次に、ユーザは工数投入計画入力部101のGUI上で工数投入グラフ110におけるオリジナルの工数投入計画を編集する。編集後の工数投入量は、オリジナルの工数投入計画と別に、シミュレーションの工数投入計画として表示される。工数投入計画入力部101は、ユーザによる編集用にGUIを提供する。このGUIによると、ユーザが時期毎の投入工数を示す編集点を上下操作することによって、工数投入量を編集できる。
【0014】
工数投入量の編集後、解析部102は、工数投入グラフ110に表示されるオリジナルの工数投入計画と、理想の工数投入計画と、シミュレーションの工数投入計画を追加で読み込み、将来の総工数と、バグ数と、生産性と、バグ密度と、開発期間を算出し、出力部103に表示する。表示形式としては、テキスト形式、表形式、グラフ形式、チャート形式などのいずれでもよい。以降、工数投入計画入力部101のGUI上で工数投入グラフ110におけるシミュレーションの工数投入計画のユーザによる編集を契機として、解析部102が解析を実行し、出力部103の表示内容を更新する。
【0015】
プロジェクト総工数・品質予測シミュレーションシステム10は、プロセッサ、メモリ、補助記憶装置及び通信インターフェースを有する計算機に実装される。プロセッサは、メモリに格納されたプログラムを実行する演算装置である。プロセッサが、各種プログラムを実行することによって、プロジェクト総工数・品質予測シミュレーションシステム10が提供する機能が実現される。なお、プロセッサがプログラムを実行して行う処理の一部を、他の演算装置(例えば、ASIC、FPGA等のハードウェア)で実行してもよい。メモリは、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。補助記憶装置は、例えば、磁気記憶装置等の大容量かつ不揮発性の記憶装置であり、プロセッサが実行するプログラム及びプログラムの実行時にプロセッサが使用するデータを格納する。通信インターフェースは、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
【0016】
図2は、工数投入データ104の一例を示す図である。工数投入データ104は、ユーザが工数投入計画を作成したいプロジェクトについて、現時点での工数投入計画を、例えば表形式で記録する。「月」の列には将来の月が、「工数」の列には当該月に当該プロジェクトで現時点で計画している投入工数が記録される。
【0017】
図3は、特性データ105の一例を示す図である。特性データ105は、ユーザが工数投入計画を作成したいプロジェクトの特性を示す定量的データや定性的データが記録される。例えば、対象ドメイン、対象言語、開発拠点数、機能・非機能要求数、FP値などが記録されるとよい。
【0018】
図4は、マイルストンデータ106の一例を示す図である。マイルストンデータ106は、ユーザが工数投入計画を作成したいプロジェクトについてのマイルストンを例えば表形式で記録する。「月」の列には当該プロジェクトにおいてマイルストンが設定されている月が、「マイルストン」の列には当該プロジェクトの当該月に設定されているマイルストンが記録される。
【0019】
図5から
図8は過去データ107の一例を示す図である。例えば、過去データ107は、
図5から
図8に示す複数の表によって構成されてもよい。
【0020】
図5に示す過去データ107の一部は、過去に行われたプロジェクトの工数投入実績のデータである。「プロジェクト」の列にはプロジェクトの名前が、「月」の列には工数が発生した月が、「工数」の列には当該プロジェクトの当該月に投入した工数が記録される。
【0021】
図6に示す過去データ107の一部は、過去に行われたプロジェクトの特性データである。「プロジェクト」の列にはプロジェクトの名前が、その他の列には当該プロジェクトの特性値が記録される。例えば、対象ドメイン、対象言語、開発拠点数、機能・非機能要求数、FP値などが記録されるとよい。
【0022】
図7に示す過去データ107の一部は、過去に行われたプロジェクトのマイルストンデータである。「プロジェクト」の列にはプロジェクトの名前を、「月」の列には当該プロジェクトにおいてマイルストンの設定されていた月を、「マイルストン」の列には当該プロジェクトの当該月に設定されていたマイルストンが記録される。
【0023】
図8に示す過去データ107の一部は、過去に行われたプロジェクトの最終的な総工数や品質などのデータである。「プロジェクト」の列にはプロジェクトの名前が、「総工数」の列には当該プロジェクトの最終的な総工数が、「バグ数」の列には当該プロジェクトの最終的なバグ数が、「開発期間」の列には当該プロジェクトの最終的な開発期間が記録される。
【0024】
図9及び
図10は、解析部102が保持するデータの一例を示す図である。
【0025】
図9に示すデータは、各ドメインに対するプロジェクトの初期、中期及び後期における理想的な投入工数が定められたデータである。「対象ドメイン」の列にはドメインが、その他の列にはプロジェクトの各段階における理想的な投入工数が、FP値を100として記録される。
【0026】
図10に示すデータは、過去のプロジェクトのパターン分類結果のデータである。「プロジェクト」の列にはプロジェクトの名前が、「パターン」の列には当該プロジェクトのパターン分類結果が記録される。
【0027】
図11は、出力部103が表示するデータの一例を示す図である。
【0028】
出力部103は、ユーザが入力したプロジェクトについて、オリジナル、理想、シミュレーションの工数投入計画に対する将来の総工数、バグ数、生産性、バグ密度、及び開発期間の算出結果を示す。左端の列にはオリジナル、理想又はシミュレーションの区分が、「総工数」の列には当該プロジェクトの当該区分の総工数が、「バグ数」の列には当該プロジェクトの当該区分のバグ数が、「生産性」の列には当該プロジェクトの当該区分の生産性が、「バグ密度」の列には当該プロジェクトの当該区分のバグ密度が、「開発期間」の列には当該プロジェクトの当該区分の開発期間が表示される。これらの列の項目は一例であり、他の項目の列を表示してもよい。
【0029】
図12は、入力された対象プロジェクトに対する理想の工数投入計画を、解析部102が算出する処理のフローチャートである。
【0030】
解析部102は、当該プロジェクトの特性データ105として設定されているドメインの値に基づいて、当該ドメインのプロジェクトの事前に設定された理想的な工数のかけ方の定義を取得する(1201)。理想的な工数のかけ方は比率で表されるとよい。
【0031】
解析部102は、理想的な工数のかけ方の定義と、当該プロジェクトの特性データ105として設定されているFP値に基づいて、当該プロジェクトの理想の工数投入計画を算出する。理想の工数投入計画の算出方法は、FP値と総工数の関係を線形であると推定し、当該プロジェクトのFP値が基準の何倍であるかの係数を計算し、その係数を理想的な工数のかけ方の定義に乗じて、当該プロジェクトの初期、中期、後期における理想的な工数を取得し、さらに、取得した工数の間を補完する算出方法がある。その他、FP値と工数の関係を非線形であると推定して算出する方法もでもよい(1202)。
【0032】
そして、算出された当該プロジェクトの理想の工数投入計画を、工数投入計画入力部101によって理想の工数投入計画として表示する(1203)。
【0033】
図13は、解析部102が工数投入グラフ110に表示されるオリジナルの工数投入計画に対する将来の総工数、バグ数、生産性、バグ密度、開発期間を算出する処理のフローチャートである。
【0034】
解析部102は、工数投入計画入力部101によって表示される当該プロジェクトのオリジナルの工数投入計画の投入工数を予め記憶された複数の工数投入パターンと照合して、投入工数を工数投入パターンへ分類する(1301)。パターンへの分類方法は、工数投入計画の形状の平均から計算された理想形の式を用いる方法や、フラグの定義に基づく方法や、工数投入計画の形状のパターンマッチング、その他の方法が採用できる。
【0035】
解析部102は、当該プロジェクトと同じ工数投入パターンかつ同じドメインに分類される過去データ107のプロジェクト群の特性データ及び実績データから予め作成された予測モデルを用いて、当該プロジェクトのオリジナルの工数投入に対応する将来の総工数、及びバグ数を予測する。このとき、予測モデルとして、機械学習モデル又はルールベースで定義されるモデルを用いるとよい。例えば、ニューラルネットワークによる推定モデルを用いて、将来の総工数及びバグ数を予測するとよい。この推定モデルは、要件数、要件複雑度、テスト件数、開発難易度などの実績データを説明変数とし、総工数及びバグ数の実績データを目的変数として機械学習をしており、要件数、要件複雑度、テスト件数、開発難易度などを入力すると、総工数及びバグ数が得られる。さらに、予測精度を高めるために、当該プロジェクトのマイルストンデータ106や過去データ107のプロジェクト群のマイルストンデータを用いてもよい(1302)。
【0036】
解析部102は、当該プロジェクトの将来の総工数、将来のバグ数の値、及び特性データ105の値に基づいて、当該プロジェクトのオリジナルの工数投入に対応する将来の生産性、バグ密度、及び開発期間を算出する(1303)。予測モデルとして、機械学習モデル又はルールベースで定義されるモデルを用いるとよい。例えば、ニューラルネットワークによる推定モデルを用いて、将来の総工数及びバグ数を予測するとよい。この推定モデルは、要件数、要件複雑度、テスト件数、開発難易度などの実績データを説明変数とし、総工数及びバグ数の実績データを目的変数として機械学習をしており、要件数、要件複雑度、テスト件数、開発難易度などを入力すると、総工数及びバグ数が得られる。
【0037】
そして、当該プロジェクトのオリジナルの工数投入に対応する将来の総工数、バグ数、生産性、バグ密度、及び開発期間を出力部103によって表示する(1304)
【0038】
図14は、解析部102が、理想の工数投入計画における将来の総工数、バグ数、生産性、バグ密度、及び開発期間を算出する処理のフローチャートである。
【0039】
解析部102は、工数投入計画入力部101が工数投入グラフ110に表示する当該プロジェクトの理想の工数投入計画を予め記憶された複数の工数投入パターンと照合して、投入工数を工数投入パターンへ分類する(1401)。パターンへの分類方法は、工数投入計画の形状の平均から計算された理想形の式を用いる方法や、フラグの定義に基づく方法や、工数投入計画の形状のパターンマッチング、その他の方法が採用できる。
【0040】
解析部102は、当該プロジェクトと同じ工数投入パターンかつ同じドメインに分類される過去データ107のプロジェクト群の特性データ及び実績データから、予め作成された予測モデルを用いて、当該プロジェクトの理想の工数投入に対応する将来の総工数、及びバグ数を予測する。このとき、予測モデルとしては機械学習モデル又はルールベースで定義されるモデルを用いるとよい。例えば、ニューラルネットワークによる推定モデルを用いて、将来の総工数及びバグ数を予測するとよい。この推定モデルは、要件数、要件複雑度、テスト件数、開発難易度などの実績データを説明変数とし、総工数及びバグ数の実績データを目的変数として機械学習をしており、要件数、要件複雑度、テスト件数、開発難易度などを入力すると、総工数及びバグ数が得られる。さらに、予測精度を高めるために、当該プロジェクトのマイルストンデータ106や過去データ107のプロジェクト群のマイルストンデータを用いてもよい(1402)。
【0041】
解析部102は、当該プロジェクトの将来の総工数、将来のバグ数の値、及び特性データ105の値に基づいて、当該プロジェクトの理想の工数投入に対応する将来の生産性、バグ密度、及び開発期間を算出する(1403)。予測モデルとして、機械学習モデル又はルールベースで定義されるモデルを用いるとよい。例えば、ニューラルネットワークによる推定モデルを用いて、将来の総工数及びバグ数を予測するとよい。この推定モデルは、要件数、要件複雑度、テスト件数、開発難易度などの実績データを説明変数とし、総工数及びバグ数の実績データを目的変数として機械学習をしており、要件数、要件複雑度、テスト件数、開発難易度などを入力すると、総工数及びバグ数が得られる。
【0042】
そして、当該プロジェクトの理想の工数投入に対応する将来の総工数、バグ数、生産性、バグ密度、及び開発期間を出力部103によって表示する(1404)。
【0043】
図15は、解析部102が、当該プロジェクトのシミュレーションの工数投入計画における将来の総工数、バグ数、生産性、バグ密度、及び開発期間を算出する処理のフローチャートである。
【0044】
解析部102は、工数投入計画入力部101が工数投入グラフ110に表示する当該プロジェクトのシミュレーションの工数投入計画に基づいて、投入される工数を工数投入パターンへ分類する(1501)。パターンへの分類方法は、工数投入計画の形状の平均から計算された理想形の式を用いる方法や、フラグの定義に基づく方法や、工数投入計画の形状のパターンマッチング、その他の方法が採用できる。
【0045】
解析部102は、当該プロジェクトと同じ工数投入パターンかつ同じドメインに分類される過去データ107のプロジェクト群の特性データ及び実績データから、予め作成された予測モデルを用いて、当該プロジェクトのシミュレーションの工数投入に対応する将来の総工数、及びバグ数を予測する。このとき、予測モデルとしては機械学習モデル又はルールベースで定義されるモデルを用いるとよい。さらに、予測精度を高めるために、当該プロジェクトのマイルストンデータ106や過去データ107のプロジェクト群のマイルストンデータを用いてもよい(1502)。
【0046】
解析部102は、当該プロジェクトの将来の総工数、将来のバグ数の値、及び特性データ105の値に基づいて、当該プロジェクトのシミュレーションの工数投入に対応する将来の生産性、バグ密度、及び開発期間を算出する(1503)。
【0047】
そして、当該プロジェクトのシミュレーションの工数投入に対応する将来の総工数、バグ数、生産性、バグ密度、及び開発期間を出力部103によって表示する(1504)。
【0048】
【0049】
工数投入パターンは、初期の投資額が大きい初期投資型1601、期間中の投資額の変化が少ない一定型1602、特定の期間に集中して投資される短期集中型1603などがある。初期投資型1601は、大きなソフトウェアを大人数で作るプロジェクトに適する。一定型1602は、既存のソフトウェアを改造するプロジェクトに適する。短期集中型1603は、小さいソフトウェアを作るプロジェクトに適する。これらは一例であり、他のパターンを定義してもよい。
【0050】
<実施例2>
実施例2では、実施例1に加え、工数投入計画入力部101が表示する工数投入グラフ110を計算する際に、当該プロジェクトへ割り当てる人員のスキル情報も使用する。すなわち、実施例2において、工数投入計画は、「当該プロジェクトにおいて、将来のどの月に、どのスキルをもつ人員を、どれくらいの工数割り当てるか」という情報となる。これにより、実施例2では人員のスキルに応じて工数に重みづけができる。
【0051】
<実施例3>
実施例3では、実施例1に加え、工数投入計画入力部101が表示する工数投入グラフ110を計算する際に、組織内での開発を対象とする内部工数と、組織外への外注での開発を対象とする外注工数の二つの情報を使用する。すなわち、実施例3において、工数投入計画は、二つの工数投入グラフから構成され、一つは内部工数に関するオリジナル、理想、及びシミュレーションの工数投入計画を表し、もう一つは外注工数に関するオリジナル、理想、及びシミュレーションの工数投入計画を表す。
【0052】
<実施例4>
実施例4では、実施例1に加え、工数投入計画入力部101が表示する工数投入グラフ110を計算する際に、理想とシミュレーションの工数投入計画の乖離が大きい場合に、アラートを表示する。アラートの表示形式は、テキスト、ポップアップウィンドウ、ダイアログ、工数投入グラフ110への着色などを使用するとよい。
【0053】
<実施例5>
実施例5では、実施例1に加え、出力部103による表示において、理想とシミュレーションの総工数、バグ数、生産性、バグ密度、及び開発期間の少なくとも一つの乖離が大きい場合、アラートを表示する。アラートの表示形式は、テキスト、ポップアップウィンドウ、ダイアログ、出力画面への着色などを使用するとよい。
【0054】
以上に説明したように、本実施例のプロジェクト総工数・品質予測シミュレーションシステム10によれば、プロジェクト計画者は、工数投入計画の品質や総工数を高精度で予測できる。
【0055】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0056】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0057】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0058】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0059】
10 品質予測シミュレーションシステム
101 工数投入計画入力部
102 解析部
103 出力部
104 工数投入データ
105 特性データ
106 マイルストンデータ
107 過去データ
110 工数投入グラフ
111 特性データ
112 マイルストンデータ