JP6267455B2 - 工数見積装置、工数見積方法及びプログラム - Google Patents

工数見積装置、工数見積方法及びプログラム Download PDF

Info

Publication number
JP6267455B2
JP6267455B2 JP2013170740A JP2013170740A JP6267455B2 JP 6267455 B2 JP6267455 B2 JP 6267455B2 JP 2013170740 A JP2013170740 A JP 2013170740A JP 2013170740 A JP2013170740 A JP 2013170740A JP 6267455 B2 JP6267455 B2 JP 6267455B2
Authority
JP
Japan
Prior art keywords
man
hour
total
hours
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013170740A
Other languages
English (en)
Other versions
JP2015041156A (ja
Inventor
直樹 大杉
直樹 大杉
伸人 井ノ口
伸人 井ノ口
享平 伏田
享平 伏田
絢子 渡辺
絢子 渡辺
美佐 藤貫
美佐 藤貫
元久 戸村
元久 戸村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2013170740A priority Critical patent/JP6267455B2/ja
Publication of JP2015041156A publication Critical patent/JP2015041156A/ja
Application granted granted Critical
Publication of JP6267455B2 publication Critical patent/JP6267455B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

この発明は、工数見積装置、工数見積方法及びプログラムに関する。
ソフトウェアやシステムなどの開発を行うプロジェクト(以下、「開発プロジェクト」という)では、通常、工数の見積もりを行う。
この工数の見積もりをプロジェクトマネージャ(PM)などのユーザが独力で行う場合、過去の類似開発プロジェクトでかかった工数や暗黙知などから見積もることが多い。
また、ユーザは、開発プロジェクト全体の工数に限らず、より細かい粒度のコンポーネント(例えば、ソフトウェア部品やサブシステムなど)に分割して、コンポーネント単位で工数を見積もることも多い。
一方で、開発プロジェクト全体の工数を見積もるための従来技術としては、例えば、工数と相関が高いパラメータを含む過去の実績データを予め複数蓄積した上で積算する技術(特許文献1)、あるいは回帰分析などの統計手法による技術(特許文献2)、などが知られている。
特開平4−326157号公報 特開2012−181739号公報
しかしながら、上述した従来技術では、開発プロジェクト全体の工数しか見積もることができない。このため、ユーザがコンポーネント単位で工数を見積もったとしても開発プロジェクト全体の工数とは粒度が異なることからコンポーネント単位で比較を行うことができない。このことから、ユーザが見積もったコンポーネント単位の工数の妥当性の検討や比較に基づく修正などを行うことができなかった。
従って、開発プロジェクトにおいてコンポーネント単位で工数を見積もる技術が求められている。
そこで、この発明は、上述した事情に鑑みてなされたものであり、開発プロジェクトにおいてコンポーネント単位で工数を見積もることができる工数見積装置等を提供することを目的とする。
上記目的を達成するため、この発明の第1の観点に係る工数見積装置は、
開発プロジェクトにおける仮の全工数を求める仮全工数取得手段と、
前記開発プロジェクトにおける作業を細分化した複数のコンポーネントのうち、工数を見積もる対象のコンポーネントの工数比率を求める工数比率取得手段と、
前記開発プロジェクトの仮の全工数と前記工数を見積もる対象のコンポーネントの工数比率とに基づいて、該工数を見積もる対象のコンポーネントの工数を求める工数取得手段と、
過去の開発プロジェクトの全工数と、該過去の開発プロジェクトの総規模と、該過去の開発プロジェクトにおける工数に関連する工数関連情報と、を含む実績データに基づいて求めた工数推定式を複数記憶する記憶手段と、を備え
前記仮全工数取得手段は、前記開発プロジェクトの総規模と、前記工数を見積もる対象のコンポーネントにおける工数に関連する工数関連情報と、に基づいて前記記憶手段から工数推定式を選択し、該選択した工数推定式により前記開発プロジェクトの仮の全工数を求める、
ことを特徴とする。
また、前記工数比率取得手段は、前記工数を見積もる対象のコンポーネントを含む前記複数のコンポーネントそれぞれの仮の工数を、該複数のコンポーネントそれぞれの規模と、前記工数を見積もる対象のコンポーネントの前記工数関連情報と、に基づいて選択した複数の工数推定式より求め、
該求めた複数のコンポーネントそれぞれの仮の工数の和と、前記工数を見積もる対象のコンポーネントの仮の工数と、に基づいて該工数を見積もる対象のコンポーネントの工数比率を求めるとよい。
また、前記工数取得手段は、前記仮全工数取得手段が求めた前記開発プロジェクトの仮の全工数と、前記工数比率取得手段が求めた前記工数を見積もる対象のコンポーネントの工数比率と、を乗算して、該工数を見積もる対象のコンポーネントの工数を求めるとよい。
た、前記工数取得手段は、前記工数を見積もる対象のコンポーネントを含む全てのコンポーネントの工数を求め、
該求めた全てのコンポーネントそれぞれの工数を足して前記開発プロジェクトの全工数を求めるとよい。
上記目的を達成するため、この発明の第2の観点に係る工数見積方法は、
過去の開発プロジェクトの全工数と、該過去の開発プロジェクトの総規模と、該過去の開発プロジェクトにおける工数に関連する工数関連情報と、を含む実績データに基づいて求めた複数の工数推定式を記憶するコンピュータが実行する工数見積方法であって、
開発プロジェクトにおける仮の全工数を求める仮全工数取得ステップと、
前記開発プロジェクトにおける作業を細分化した複数のコンポーネントのうち、工数を見積もる対象のコンポーネントの工数比率を求める工数比率取得ステップと、
前記開発プロジェクトの仮の全工数と前記工数を見積もる対象のコンポーネントの工数比率とに基づいて、該工数を見積もる対象のコンポーネントの工数を求める工数取得ステップと、を備え、
前記仮全工数取得ステップでは、前記開発プロジェクトの総規模と、前記工数を見積もる対象のコンポーネントにおける工数に関連する工数関連情報と、に基づいて前記複数の工数推定式から工数推定式を選択し、該選択した工数推定式により前記開発プロジェクトの仮の全工数を求める、ことを特徴とする。
上記目的を達成するため、この発明の第3の観点に係るプログラムは、
過去の開発プロジェクトの全工数と、該過去の開発プロジェクトの総規模と、該過去の開発プロジェクトにおける工数に関連する工数関連情報と、を含む実績データに基づいて求めた工数推定式を複数記憶する記憶手段を備えたコンピュータを、
開発プロジェクトにおける仮の全工数を求める仮全工数取得手段、
前記開発プロジェクトにおける作業を細分化した複数のコンポーネントのうち、工数を見積もる対象のコンポーネントの工数比率を求める工数比率取得手段、
前記開発プロジェクトの仮の全工数と前記工数を見積もる対象のコンポーネントの工数比率とに基づいて、該工数を見積もる対象のコンポーネントの工数を求める工数取得手段、
として機能させるためのプログラムであって、
前記仮全工数取得手段は、前記開発プロジェクトの総規模と、前記工数を見積もる対象のコンポーネントにおける工数に関連する工数関連情報と、に基づいて前記記憶手段から工数推定式を選択し、該選択した工数推定式により前記開発プロジェクトの仮の全工数を求める、
ことを特徴とする。
この発明によれば、開発プロジェクトにおいてコンポーネント単位で工数を見積もることができる。
工数見積装置のハードウェア構成を示すブロック図である。 工数見積装置の機能ブロック図である。 入力画面の入力前の一例を示す図である。 入力画面の入力後の一例を示す図である。 工数推定式テーブルの一例を示す図である。 工数推定結果の一例を示す図である。 工数見積処理の流れの一例を示すフローチャートである。
以下、この発明の実施形態の工数見積装置について、図1を参照しながら説明する。
図1に示すように、工数見積装置100は、CPU101とROM102とRAM103とHDD104とI/Oポート105とを備える。
このうち、CPU101は、工数見積装置100全体を制御する中央演算装置である。
ROM102は、CPU101が実行するプログラムを格納している不揮発性メモリである。
RAM103は、CPU101が実行するプログラムを一時的に展開し、CPU101が各種処理を行う際の作業領域として使用する揮発性メモリである。
HDD104は、工数の見積もりに必要なデータを記憶する記憶手段である。例えば、HDD104は、後述する工数推定式テーブルのデータなどを記憶する。
I/Oポート105は、キーボードやマウスなどの入力手段やディスプレイなどの表示手段と接続するためのインタフェースである。
ここで、CPU101は、ROM102内の各種プログラムを読み出し、RAM103に展開した後、その各種プログラムに従って工数見積装置100を制御することで、図2に示すような各部の機能を実現することができる。機能としては、図2に示すように、表示制御部110、仮全体工数取得部120、工数比率取得部130、工数取得部140及び工数出力部150を備える。
まず、表示制御部110は、I/Oポート105を通して、図3に示す工数見積に必要なパラメータの入力をするための入力画面をディスプレイに表示する。この入力画面は、項番、コンポーネントID、規模、品質レベル及び開発期間から構成される。
なお、この実施形態においては、ソフトウェアの開発を行う開発プロジェクトを例にとって説明する。
項番は、コンポーネント毎に割り当てられる昇順の番号である。
コンポーネントIDは、複数のコンポーネントそれぞれを識別するための識別情報である。ここで、コンポーネントとは、開発プロジェクトを構成する1つの構成要素である。言い換えれば、開発プロジェクトは、構成要素であるコンポーネントの複数の集合から構成される。
この実施形態では、構成要素であるコンポーネントは、ソフトウェアの開発プロジェクト全体の作業を細分化したうちの1つの作業(例えば、ソフトウェア部品を作成するための作業など)に対応するものとする。図3の例において、ソフトウェアの開発プロジェクトは、3つのコンポーネント1乃至3から構成される。なお、コンポーネントの分割粒度は、3つに限られず必要に応じてユーザが増減することができる。
次に、規模、品質レベル及び開発期間は、工数と関連のある項目である。ここで、関連するとは、例えば、工数と正や負の相関関係があることをいう。ユーザは、これら各項目にパラメータをキーボードなどの入力手段を用いて入力する。なお、この実施形態において、パラメータとは数値に限らず度合い(例えば、低中高など)も含むものとする。また、各項目のパラメータは、工数に関連する項目の情報でもあるので、工数関連情報ともいう。
これら各項目のうち、規模は、各コンポーネントの作業規模の大きさである。この実施形態における規模は、例として、ソフトウェア開発における作業規模の大きさと比例するプログラムのソースコードの行数(以下、単に「ステップ数」という)である。ユーザは、このステップ数をコンポーネント毎に入力する。なお、単位はKstep(キロステップ)である。
次に、品質レベルは、各コンポーネントに求められる品質の度合いである。ユーザは、求められる品質の度合いに応じて高、中又は低を入力する。例えば、あるコンポーネントの作業で開発されるソフトウェア部品に求められる品質が高ければ高に、求められる品質が低ければ低に、それぞれする。あるいは、ソフトウェアの品質はテスト(単体テスト、結合テスト等)によって担保されるので、ユーザは、ソフトウェア部品に想定されるテスト量に応じて、テスト量が多ければ高に、テスト量が少なければ低に、それぞれしてもよい。
次に、開発期間は、各コンポーネントから構成される開発プロジェクトの開始から終了までの期間である。ユーザは、コンポーネント1乃至3から構成される開発プロジェクトにおける開発期間を入力する。なお、単位は月である。
図4は、図3の入力画面へユーザがパラメータを入力した後の例を示す図である。図4から、ユーザは、コンポーネント1の規模と品質をそれぞれ50と低に、コンポーネント2の規模と品質をそれぞれ100と中に、コンポーネント3の規模と品質をそれぞれ200と高に、したことがわかる。また、図4から、ユーザは、開発プロジェクトの開発期間を12月にしたことがわかる。表示制御部110は、これらパラメータの入力を受け付ける。なお、総規模は、以下で説明する仮全体工数取得部120により、ユーザの入力に依らずに自動で算出される。
図2に戻って、仮全体工数取得部120は、開発プロジェクトの仮の全工数を求める仮全工数取得手段である。具体的には、仮全体工数取得部120は、開発プロジェクトの総規模と品質と開発期間の各パラメータに応じて、図5に示す工数推定式テーブルの中から工数推定式を選択し、仮の全工数を求める。
この図5の工数推定式テーブルは、式項番と工数推定式と規模条件と品質レベル条件と開発期間条件とを備える。
このうち、式項番は、工数推定式毎に割り当てられる昇順の式の番号である。
工数推定式は、過去の開発プロジェクト全体の実績データ(工数、総規模、工数と関連する項目のパラメータである例えば品質レベルや開発期間など)に基づいて、事前に重回帰分析などの統計分析により算出された式である。過去の開発プロジェクト全体の実績データは、過去の開発プロジェクトの計画段階において社内稟議用の資料に記載されることが多いので、その資料に記載される実績データを利用するようにする。この実施形態では、過去の開発プロジェクト全体の実績データを利用して、現在の開発プロジェクトのコンポーネント単位の工数を求める。
ここで、図5の工数推定式は、規模条件、品質レベル条件及び開発期間条件の各条件に応じた過去の実績データに基づいて、予め6つ算出されている。このモデルとなる工数推定式は、以下の式(1)である。
Figure 0006267455
式(1)において、α、β及びγは、係数であり、過去の実績データの重回帰分析により算出される。図5の式項番1乃至3の工数推定式(以下、まとめて「期間入力がない場合の工数推定式」という)において、α及びβは、それぞれ2.0及び1.1である。なお、期間入力がない場合の工数推定式では、指数的乗数パラメータがないのでそれに伴うγの値はない。一方、式項番4乃至6の工数推定式(以下、まとめて「期間入力がある場合の工数推定式」という)において、α、β及びγは、それぞれ3.0、1.2及び−0.1である。γがマイナスの指数となるのは、開発期間が延びる程、工数を減らすように(すなわち、開発期間が短い程、工数が増えるように)見積もるためである。
規模パラメータは、工数見積のために代入される規模の値を示すパラメータである。図5の式項番1乃至6の工数推定式の規模パラメータは、「規模」で表される。
乗数パラメータは、工数見積のために乗算されるパラメータである。この乗数パラメータは、品質レベルに対応する。この乗数パラメータは、期間入力がない場合の工数推定式において品質レベルが低の場合1.0に、品質レベルが中の場合1.5に、品質レベルが高の場合2.0に、それぞれなる。一方で、期間入力がある場合の工数推定式においては品質レベルが低の場合1.0に、品質レベルが中の場合1.7に、品質レベルが高の場合2.3に、それぞれなる。このように、品質レベルが上がる程乗数パラメータの値を大きくするのは、求められる品質が高い程工数が増えるように見積もるためである。
指数的乗数パラメータは、工数見積のために乗算されるパラメータであって、かつ指数を伴うパラメータである。この指数的乗数パラメータは、開発期間に対応し、期間入力がある場合の工数推定式で用いられる。
ここで、仮全体工数取得部120は、開発プロジェクトの仮の全工数を、自動算出した総規模と各コンポーネントの品質レベルと開発期間とに基づいて選択した工数推定式を用いて求める。
具体的には、仮全体工数取得部120は、総規模350(Kstep)、各コンポーネントの品質レベル低中高及び開発期間(12月)に基づいて式項番4乃至6の工数推定式を工数推定式テーブルから選択する。そして、仮全体工数取得部120は、選択した式項番4乃至6の工数推定式を用い、各コンポーネント1乃至3それぞれの品質における開発プロジェクト全体の仮の全工数(以下、「仮全工数E」という)を求める。仮全工数Eは、上記式(1)の規模パラメータに総規模の値を代入した以下の式(2)より求める。なお、kは、品質レベルの度合いを示す。
Figure 0006267455
ここで、品質レベル低の仮全工数をE、品質レベル中の仮全工数をE、品質レベル高の仮全工数をE、とそれぞれして、選択した式項番4乃至6の工数推定式を用いてE乃至Eをそれぞれ求めると以下のようになる。なお、E乃至Eは、それぞれ小数第3位を四捨五入したものである。
仮全工数E=3.0×総規模1.2×1.0×開発期間-0.1=3.0×3501.2×1.0×12-0.1=2642.92
仮全工数E=3.0×総規模1.2×1.7×開発期間-0.1=3.0×3501.2×1.7×12-0.1=4492.97
仮全工数E=3.0×総規模1.2×2.3×開発期間-0.1=3.0×3501.2×2.3×12-0.1=6078.73
このようにして、仮全体工数取得部120は、各コンポーネントの品質で仮に開発プロジェクト全体を実行した場合にかかる仮全工数を算出する。なお、この実施形態では、各コンポーネントの品質が高中低で異なる、すなわち品質にバリエーションがある場合を例にとって説明しているが、品質以外の項目のパラメータも異なる場合は、各コンポーネントの品質及びその他の項目(この実施形態の例では開発期間)で仮に開発プロジェクト全体を実行した場合にかかる仮全工数を算出する。この実施形態では、理解を容易にするために、一例として、項目のうち品質にバリエーションがある場合を説明している。
図2に戻って、工数比率取得部130は、開発プロジェクトにおける複数のコンポーネントのうち、工数見積対象のコンポーネントの工数比率を求める工数比率取得手段である。なお、この実施形態では、コンポーネント1乃至3全てを工数見積対象のコンポーネントとする。
ここで、工数比率取得部130は、複数のコンポーネントそれぞれの規模、工数と関連する項目である品質及び開発プロジェクトの開発期間に応じて、図5に示す工数推定式テーブルの中から工数推定式を選択し、複数のコンポーネントそれぞれの仮の工数e′を求める。仮の工数e′は、上記式(1)の規模パラメータにコンポーネントの規模を代入した以下の式(3)より求める。なお、′(ダッシュ)は仮の工数、jはコンポーネントと対応する1以上の自然数、であることをそれぞれ示す。
Figure 0006267455
次に、工数比率取得部130は、求めた複数のコンポーネントそれぞれの仮の工数の和と、工数見積対象のコンポーネントの仮の工数と、に基づいて工数比率rを求める。工数比率rは、以下の式(4)より求める。
Figure 0006267455
式(4)において、nは、コンポーネントの総数である。
工数比率取得部130は、上記式(3)により、仮に各コンポーネント1乃至3それぞれが独立したソフトウェアとして開発された場合の仮の工数を求めて、求めた各コンポーネント1乃至3の仮の工数から工数見積対象のコンポーネントの工数比率を求める。
具体的には、まず、工数見積対象のコンポーネントの工数比率を求める場合、そのコンポーネントの品質及び開発期間を特定する。次に、工数推定式テーブルに記憶された工数推定式のうち、特定した品質及び開発期間に合う工数推定式を用いてそのコンポーネントの仮の工数を求める。次に、工数見積対象のコンポーネント以外の複数のコンポーネントを同じ品質と開発期間で開発した場合(すなわち、複数のコンポーネントに、工数見積対象のコンポーネントの項目データを適用して)、複数のコンポーネントそれぞれの仮の工数を求める。次に、複数のコンポーネントの仮の工数と工数見積対象のコンポーネントの仮の工数との和において、工数見積対象のコンポーネントの仮の工数が占める割合を、工数比率とする。
この実施形態では、各コンポーネントそれぞれの品質レベルが異なるので、品質レベルを合わせて(すなわち、工数見積対象のコンポーネントの品質を他のコンポーネントにも適用して)求めた、品質レベルが合った各コンポーネントそれぞれの仮の工数から工数比率を求めるようにする。
具体的には、工数比率取得部130は、コンポーネント1の工数比率rを求める場合、コンポーネント1の品質レベル低に合わせて(すなわち、コンポーネント2及び3の品質レベルが低であると仮定して)、各コンポーネント1乃至3それぞれの仮の工数を求める。
品質レベルが低の場合の各コンポーネント1乃至3の仮の工数をそれぞれ、e′1,低、e′2,低、e′3,低とすると、これらは式項番4の工数推定式を用いて以下のように求められる。なお、e′1,低乃至e′3,低は、それぞれ小数第3位を四捨五入したものである。
仮の工数e′1,低=3.0×コンポーネント1の規模1.2×1.0×開発期間-0.1
=3.0×501.2×1.0×12-0.1=255.84
仮の工数e′2,低=3.0×コンポーネント2の規模1.2×1.0×開発期間-0.1
=3.0×1001.2×1.0×12-0.1=587.76
仮の工数e′3,低=3.0×コンポーネント3の規模1.2×1.0×開発期間-0.1
=3.0×2001.2×1.0×12-0.1=1350.33
これら求めた仮の工数e′1,低、e′2,低、e′3,低から、工数比率rは、上記式(4)を用いて以下のように求まる。なお、rは、小数第3位を四捨五入したものである。
工数比率r=255.84/(255.84+587.76+1350.33)=0.12
同様に、工数比率取得部130は、コンポーネント2の工数比率rを求める場合、コンポーネント2の品質レベル中に合わせて(すなわち、コンポーネント1及び3の品質レベルが中であると仮定して)、各コンポーネント1乃至3それぞれの仮の工数を求める。
品質レベルが中の場合の各コンポーネント1乃至3の仮の工数をそれぞれ、e′1,中、e′2,中、e′3,中とすると、これらは式項番5の工数推定式を用いて以下のように求められる。なお、e′1,中乃至e′3,中は、それぞれ小数第3位を四捨五入したものである。
仮の工数e′1,中=3.0×コンポーネント1の規模1.2×1.7×開発期間-0.1
=3.0×501.2×1.7×12-0.1=434.93
仮の工数e′2,中=3.0×コンポーネント2の規模1.2×1.7×開発期間-0.1
=3.0×1001.2×1.7×12-0.1=999.20
仮の工数e′3,中=3.0×コンポーネント3の規模1.2×1.7×開発期間-0.1
=3.0×2001.2×1.7×12-0.1=2295.56
これら求めた仮の工数e′1,中、e′2,中、e′3,中から、工数比率rは、上記式(4)を用いて以下のように求まる。なお、rは、小数第3位を四捨五入したものである。
工数比率r=999.20/(434.93+999.20+2295.56)=0.27
同様に、工数比率取得部130は、コンポーネント3の工数比率rを求める場合、コンポーネント3の品質レベル高に合わせて(すなわち、コンポーネント1及び2の品質レベルが高であると仮定して)、各コンポーネント1乃至3それぞれの仮の工数を求める。
品質レベルが高の場合の各コンポーネント1乃至3の仮の工数をそれぞれ、e′1,高、e′2,高、e′3,高とすると、これらは式項番6の工数推定式を用いて以下のように求められる。なお、e′1,高乃至e′3,高は、それぞれ小数第3位を四捨五入したものである。
仮の工数e′1,高=3.0×コンポーネント1の規模1.2×2.3×開発期間-0.1
=3.0×501.2×2.3×12-0.1=588.43
仮の工数e′2,高=3.0×コンポーネント2の規模1.2×2.3×開発期間-0.1
=3.0×1001.2×2.3×12-0.1=1351.86
仮の工数e′3,高=3.0×コンポーネント3の規模1.2×2.3×開発期間-0.1
=3.0×2001.2×2.3×12-0.1=3105.75
これら求めた仮の工数e′1,高、e′2,高、e′3,高から、工数比率rは、上記式(4)を用いて以下のように求まる。なお、rは、小数第3位を四捨五入したものである。
工数比率r=3105.75/(588.43+1351.86+3105.75)=0.62
このようにして、工数比率取得部130は、各コンポーネントが同じ品質で独立したソフトウェアとして開発された場合の仮の工数をそれぞれ求めた上で、それら仮の工数の和と、工数見積対象のコンポーネントの仮の工数と、に基づき工数見積対象の工数比率を求める。
図2に戻って、工数取得部140は、仮全体工数取得部120が求めた仮全工数Eと工数比率取得部130が求めた工数比率rとに基づいて、工数見積対象のコンポーネントの工数を取得する工数取得手段である。
具体的には、工数取得部140は、以下式(5)に示すように、仮全工数Eと工数比率rとを乗算して工数見積対象のコンポーネントの工数eを求める。
より具体的には、工数取得部140は、工数見積対象のコンポーネントの品質及び開発期間と同じ条件で算出した仮全工数と、工数見積対象のコンポーネントの工数比率と、に基づいて、工数見積対象のコンポーネントの工数を求める。
Figure 0006267455
工数取得部140は、各コンポーネント1乃至3の工数e、工数e、工数eを上記式(5)に基づいてそれぞれ以下のように求める。なお、仮全工数Ekは、コンポーネントjの品質レベルに合わせた仮全体工数を示すものとする。具体的には、コンポーネント1の場合にはE、コンポーネント2の場合にはE、コンポーネント3の場合にはEとなる。
コンポーネント1の工数e=仮全工数E×工数比率r=2642.92×0.12=317.15
コンポーネント2の工数e=仮全工数E×工数比率r=4492.97×0.27=1213.10
コンポーネント3の工数e=仮全工数E×工数比率r=6078.73×0.62=3768.81
さらに、工数取得部140は、各コンポーネント1乃至3それぞれの工数e乃至eを足して開発プロジェクトの全工数を求める。
開発プロジェクトの全工数=e+e+e=317.15+1213.10+3768.81=5299.06(人月)
図2に戻って、工数出力部150は、工数推定結果をディスプレイに出力する出力手段である。具体的には、工数出力部150は、工数取得部140が開発プロジェクトの全工数と各コンポーネントの工数とを求めると、それら工数を工数推定結果として、図6に示すようにディスプレイに表示する。この工数推定結果から、ユーザは、開発プロジェクトの全工数とともに各コンポーネント単位で工数を知ることができる。
以上、図1乃至図6を参照しながら説明した工数見積装置100において、例えば、一つの特徴的な点は、過去の開発プロジェクト全体の実績データから導出した工数推定式を利用して、現在の開発プロジェクトの仮の全工数と、現在の開発プロジェクトを構成するコンポーネントの工数比率と、を求めて、現在の開発プロジェクトのコンポーネント単位の工数を求める点である。
そこで、以下この点に関連する工数見積処理の流れについて、図7のフローチャートを参照しながら説明する。なお、図7の工数見積処理では、工数見積対象のコンポーネントがコンポーネント1である場合を例にとって説明する。工数見積装置100は、ユーザから工数の見積もりに必要なパラメータの入力を受け付けると、以下の処理を順に行う。
まず、仮全体工数取得部120は、開発プロジェクトの仮の全工数を算出する(ステップS11)。具体的には、仮全工数取得部120は、自動で算出した総規模350(Kstep)、コンポーネント1の品質レベル低及び開発期間12月から、式項番4の工数推定式を選択する。そして、仮全工数取得部120は、選択した式項番4の工数推定式に総規模と開発期間のパラメータを代入して、品質低における仮全工数Eの値2642.92(人月)を求める。
次に、工数比率取得部130は、工数見積対象のコンポーネントの工数比率を算出する(ステップS12)。具体的には、工数比率取得部130は、工数見積対象であるコンポーネント1の品質レベル低に合わせて各コンポーネント1乃至3それぞれの仮の工数e′1,低、e′2,低、e′3,低を求める。そして、工数比率取得部130は、求めた仮の工数(e′1,低、e′2,低及びe′3,低)の和で仮の工数e′1,低を除算することで、品質レベルが低で統一された場合における工数見積対象のコンポーネント1の工数比率rの値0.12を求める。
次に、工数取得部140は、工数見積対象のコンポーネントの工数を算出して(ステップS13)、処理を終了する。具体的には、工数取得部140は、S11で求めた仮全工数Eの値2642.92(人月)と、S12で求めた工数比率rの値0.12と、を乗算して工数見積対象のコンポーネント1の工数eの値317.15(人月)を求めて、処理を終了する。
なお、図7の工数見積処理を繰り返して、他のコンポーネント2及び3の工数e及びeを求めた後、工数出力部150は、工数推定結果をディスプレイに出力するようにする。あるいは、図7の工数見積処理の各ステップにおいて、コンポーネント1乃至3全ての仮の全工数E乃至Eと工数比率r乃至rとを算出して、全コンポーネントの工数e乃至eを一度に算出してもよい。
以上図7の工数見積処理において、工数見積装置100が、仮全体工数取得部120、工数比率取得部130及び工数取得部140の各機能を備えることにより、開発プロジェクトの仮の全工数に、工数見積対象のコンポーネントの工数比率を乗算することができる。このことにより、工数見積対象のコンポーネントの工数を見積もることができるので、ソフトウェアの開発プロジェクトにおいてコンポーネント単位の工数推定式を利用せずにコンポーネント単位で工数を見積もることができる。従って、コンポーネント単位の工数推定式を導出するために一般に用いるコンポーネント単位の過去実績データも不要である。
また、仮の全工数と工数比率とを算出する際に、工数見積対象のコンポーネントの品質に合わせて両者を算出するようにしている(例えば、品質レベルが低の場合、仮の全工数算出時、及び工数比率を算出するための各コンポーネントの仮の工数算出時、いずれも品質レベルを低に合わせて算出する)。このため、各コンポーネントの品質がずれることによって生じる工数見積もりの誤差を抑えることができるので、精度よくコンポーネント単位で工数を見積もることができる。
また、ユーザが独力で開発プロジェクトをコンポーネント単位で工数見積りした場合でも、工数見積装置100は開発プロジェクトをコンポーネント単位で工数見積りできるので、粒度が異なることがない。このため、ユーザは容易にコンポーネント単位で比較できるので、自身が見積もった工数の妥当性の検討や比較に基づく修正あるいは比較によって乖離があった場合の乖離分析を行うことができる。
また、工数見積装置100は、過去の開発プロジェクト全体の実績データから導出した工数推定式を利用して、現在の開発プロジェクトのコンポーネント単位の工数を求めることができる。ここで、過去の開発プロジェクト全体の実績データは、社内稟議用の資料に統一された基準で記載されることが多く、この資料を活用することで評価基準が揃った多数のデータを入手できる。このため、この資料に記載された実績データさえ蓄積して工数見積式を導出しておけば、現在の開発プロジェクトのコンポーネント単位で工数見積ができる。このため、プロジェクトマネージャ等が開発プロジェクトが終了する度、コンポーネント単位でのデータ入力を予め行っておく必要がない。従って、コンポーネント単位でのデータ収集を省くことができ、かつ、プロジェクトマネージャ等によるコンポーネントの粒度のずれの影響を受けることがないので、手間と時間をかけずにコンポーネント単位で評価者の違いによらず安定して工数を見積もることができる。
(変形例)
以上で実施形態の説明を終了するが、工数見積装置100の具体的な構成や処理の内容等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、上述した実施形態においては、ソフトウェアの開発プロジェクトにおける規模としてソースコードの行数であるステップ数(Kstep)を用いたがこれに限られない。例えば、規模は、ソフトウェアの機能数を示すファンクションポイント(FP)でもよい。FPは公知の算出法があるので、ユーザは経験や勘に依らずに規模を精度よく入力することができる。
また、上述した実施形態においては、工数と関連のある項目として規模、品質レベル及び開発期間を用いたがこれに限られない。他の項目として、例えば、ソフトウェアの開発言語(C++、Java(登録商標)等)や開発者のスキルなどが考えられる。これら他の項目の実績データに基づいて予め工数推定式を導出しておけば、他の項目も加味した工数見積を行うことができる。
また、上述した実施形態においては、ユーザが開発期間として12月を入力する場合を例にとって説明したが、開発期間は入力しなくてもよい。ユーザが入力画面に少なくとも規模と品質レベルを入力すれば、工数見積装置100は、期間入力がない場合の工数推定式によりコンポーネント単位の工数及び開発プロジェクト全体の工数いずれも見積もることができる。
また、上述した実施形態においては、モデルとなる工数推定式として式(1)を用いたがこれに限られない。入力画面に入力する項目のパラメータが増えた場合(例えば、上述した他の項目のパラメータも入力するような場合)は、以下の式(6)の工数推定式を用いるようにする。
Figure 0006267455
式(1)と異なる点は、乗数パラメータと指数的乗数パラメータにΠが付く点及び指数的乗数パラメータの指数γにiが付く点である。Πは、複数のパラメータの総積を示す。例えば、式(1)の乗数パラメータは品質レベルに対応したが、式(6)の乗数パラメータは品質レベルを含む複数の項目のパラメータ(品質レベルのような度合いのパラメータ複数)に対応する。同様に、式(1)の指数的乗数パラメータは開発期間に対応したが、式(6)の指数的乗数パラメータは開発期間を含む複数の項目のパラメータ(開発期間のような数値のパラメータ複数)に対応する。iは、1以上の自然数であって、複数あるパラメータの数に対応する。
このように、工数と相関のある項目が増えると、それらを加味した上記式(6)の工数推定式を用いて、工数見積を行うことができる。
また、上記式(6)に代えて、以下の式(7)を用いることもできる。式(7)は、対数化を行わない重回帰分析により導出される。
Figure 0006267455
式(6)と異なる点は、乗数パラメータと指数的乗数パラメータとが加算パラメータになってΣが付く点及び(6)で指数であったβとγとが係数になる点である。式(6)の乗数パラメータと対応する加算パラメータは、品質レベルを含む複数の項目のパラメータの総和を示す。式(6)の指数的乗数パラメータと対応する加算パラメータは、開発期間を含む複数の項目のパラメータの総和を示す。対数化を行わない重回帰分析により導出された式(7)は、式(6)と異なるバリエーションなので、式(7)の形式の工数推定式テーブルを予め記憶しておくとよい。
このように、統計分析の異なる手法によって様々なバリエーションの工数推定式が考えられるので、図5の工数推定式テーブルをバリエーション毎に記憶してもよい。この場合、工数見積装置100は、工数見積にあたって最も精度のよいバリエーションの工数推定式を用いるとよい。
また、上述した実施形態においては、ソフトウェアの開発プロジェクトの工数を見積もったがこれに限られない。例えば、ハードウェアの開発プロジェクトの工数を見積もってもよい。具体的には、ハードウェアであるサーバやネットワーク機器などで構築するシステム基盤(ソフトウェアを除く)の開発プロジェクトの工数を見積もってもよい。この場合、ユーザは、規模として例えばシステム基盤の規模を示す値(サーバ台数等)を入力するようにする。
また、ユーザは、品質レベルとして例えばシステム基盤に求められるサービスの稼働率の度合い(例えば、稼働率が高だと計画停止を除いて稼働率100%等)を入力するようにする。工数見積装置100は、過去のシステム基盤の開発プロジェクト全体の実績データに基づいて導出した工数推定式を用いて、図7に示した工数見積処理により現在のシステム基盤の開発プロジェクトのコンポーネント単位の工数を見積もるとよい。
また、上述した実施形態においては、ユーザから工数の見積もりに必要なパラメータの入力を受け付けることを契機に図7の工数見積処理を開始するようにしたが、これに限られない。例えば、パラメータの入力を受付後、ユーザから工数見積開始ボタンのクリックを受け付けると図7の工数見積処置を開始するようにしてもよい。
また、上述した実施形態と変形例とを発明の要旨を逸脱しない範囲で任意に組み合わせてもよいことはもちろんである。
また、この発明の工数見積装置100は、通常のPC等のコンピュータによっても実現することができる。
具体的には、上述した実施形態においては、工数見積装置100のプログラムが、ROM102に予め記憶されているものとして説明した。しかし、ROM102のプログラムをコンピュータにインストールして、上述の各部機能を実行することができるコンピュータを構成してもよい。なお、プログラムは、ROM102に限らず、その他のコンピュータ読み取り可能な記録媒体(例えば、フレキシブルディスク、CD−ROM、DVD及びMO等)に格納してコンピュータに配布してもよいことはもちろんである。
また、プログラムをインターネット等の通信ネットワーク上のサーバ装置が有するディスク装置等に格納しておき、例えば、コンピュータにダウンロード等するようにしてもよい。
100 工数見積装置
101 CPU
102 ROM
103 RAM
104 HDD
105 I/Oポート
110 表示制御部
120 仮全体工数取得部
130 工数比率取得部
140 工数取得部
150 工数出力部

Claims (6)

  1. 開発プロジェクトにおける仮の全工数を求める仮全工数取得手段と、
    前記開発プロジェクトにおける作業を細分化した複数のコンポーネントのうち、工数を見積もる対象のコンポーネントの工数比率を求める工数比率取得手段と、
    前記開発プロジェクトの仮の全工数と前記工数を見積もる対象のコンポーネントの工数比率とに基づいて、該工数を見積もる対象のコンポーネントの工数を求める工数取得手段と、
    過去の開発プロジェクトの全工数と、該過去の開発プロジェクトの総規模と、該過去の開発プロジェクトにおける工数に関連する工数関連情報と、を含む実績データに基づいて求めた工数推定式を複数記憶する記憶手段と、を備え、
    前記仮全工数取得手段は、前記開発プロジェクトの総規模と、前記工数を見積もる対象のコンポーネントにおける工数に関連する工数関連情報と、に基づいて前記記憶手段から工数推定式を選択し、該選択した工数推定式により前記開発プロジェクトの仮の全工数を求める、
    ことを特徴とする工数見積装置。
  2. 前記工数比率取得手段は、前記工数を見積もる対象のコンポーネントを含む前記複数のコンポーネントそれぞれの仮の工数を、該複数のコンポーネントそれぞれの規模と、前記工数を見積もる対象のコンポーネントの前記工数関連情報と、に基づいて選択した複数の工数推定式より求め、
    該求めた複数のコンポーネントそれぞれの仮の工数の和と、前記工数を見積もる対象のコンポーネントの仮の工数と、に基づいて該工数を見積もる対象のコンポーネントの工数比率を求める、
    ことを特徴とする請求項1に記載の工数見積装置。
  3. 前記工数取得手段は、前記仮全工数取得手段が求めた前記開発プロジェクトの仮の全工数と、前記工数比率取得手段が求めた前記工数を見積もる対象のコンポーネントの工数比率と、を乗算して、該工数を見積もる対象のコンポーネントの工数を求める、
    ことを特徴とする請求項1または2に記載の工数見積装置。
  4. 前記工数取得手段は、前記工数を見積もる対象のコンポーネントを含む全てのコンポーネントの工数を求め、
    該求めた全てのコンポーネントそれぞれの工数を足して前記開発プロジェクトの全工数を求める、
    ことを特徴とする請求項1乃至3の何れか一項に記載の工数見積装置。
  5. 過去の開発プロジェクトの全工数と、該過去の開発プロジェクトの総規模と、該過去の開発プロジェクトにおける工数に関連する工数関連情報と、を含む実績データに基づいて求めた複数の工数推定式を記憶するコンピュータが実行する工数見積方法であって、
    開発プロジェクトにおける仮の全工数を求める仮全工数取得ステップと、
    前記開発プロジェクトにおける作業を細分化した複数のコンポーネントのうち、工数を見積もる対象のコンポーネントの工数比率を求める工数比率取得ステップと、
    前記開発プロジェクトの仮の全工数と前記工数を見積もる対象のコンポーネントの工数比率とに基づいて、該工数を見積もる対象のコンポーネントの工数を求める工数取得ステップと、を備え、
    前記仮全工数取得ステップでは、前記開発プロジェクトの総規模と、前記工数を見積もる対象のコンポーネントにおける工数に関連する工数関連情報と、に基づいて前記複数の工数推定式から工数推定式を選択し、該選択した工数推定式により前記開発プロジェクトの仮の全工数を求める、
    ことを特徴とする工数見積方法。
  6. 過去の開発プロジェクトの全工数と、該過去の開発プロジェクトの総規模と、該過去の開発プロジェクトにおける工数に関連する工数関連情報と、を含む実績データに基づいて求めた工数推定式を複数記憶する記憶手段を備えたコンピュータを、
    開発プロジェクトにおける仮の全工数を求める仮全工数取得手段、
    前記開発プロジェクトにおける作業を細分化した複数のコンポーネントのうち、工数を見積もる対象のコンポーネントの工数比率を求める工数比率取得手段、
    前記開発プロジェクトの仮の全工数と前記工数を見積もる対象のコンポーネントの工数比率とに基づいて、該工数を見積もる対象のコンポーネントの工数を求める工数取得手段、
    として機能させるためのプログラムであって、
    前記仮全工数取得手段は、前記開発プロジェクトの総規模と、前記工数を見積もる対象のコンポーネントにおける工数に関連する工数関連情報と、に基づいて前記記憶手段から工数推定式を選択し、該選択した工数推定式により前記開発プロジェクトの仮の全工数を求める、
    ことを特徴とするプログラム。
JP2013170740A 2013-08-20 2013-08-20 工数見積装置、工数見積方法及びプログラム Active JP6267455B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013170740A JP6267455B2 (ja) 2013-08-20 2013-08-20 工数見積装置、工数見積方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013170740A JP6267455B2 (ja) 2013-08-20 2013-08-20 工数見積装置、工数見積方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015041156A JP2015041156A (ja) 2015-03-02
JP6267455B2 true JP6267455B2 (ja) 2018-01-24

Family

ID=52695304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013170740A Active JP6267455B2 (ja) 2013-08-20 2013-08-20 工数見積装置、工数見積方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6267455B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113657850B (zh) * 2021-07-29 2024-03-29 东风柳州汽车有限公司 汽车子系统设计工时的确定方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5125307B2 (ja) * 2007-08-15 2013-01-23 富士通株式会社 工数見積プログラム、該プログラムを記録した記録媒体、工数見積装置、および工数見積方法

Also Published As

Publication number Publication date
JP2015041156A (ja) 2015-03-02

Similar Documents

Publication Publication Date Title
US8024709B2 (en) Facilitating assessment of a test suite of a software product
US8997052B2 (en) Risk-based test plan construction
Aranha et al. An estimation model for test execution effort
US20080092120A1 (en) Size and effort estimation in testing applications
US20130024167A1 (en) Computer-Implemented Systems And Methods For Large Scale Automatic Forecast Combinations
JP5125307B2 (ja) 工数見積プログラム、該プログラムを記録した記録媒体、工数見積装置、および工数見積方法
US20150025872A1 (en) System, method, and apparatus for modeling project reliability
JP2010122825A (ja) データ予測装置、データ予測方法、データ予測プログラム
EP4086824A1 (en) Method for automatically updating unit cost of inspection by using comparison between inspection time and work time of crowdsourcing-based project for generating artificial intelligence training data
JP2019028871A (ja) プロジェクト管理支援装置、プロジェクト管理支援方法およびプログラム
CN113626734B (zh) 用户行为引导方法、装置、电子设备及存储介质
US8881112B2 (en) Quality measure tool for a composite application
Shah et al. An empirical study with function point analysis for software development phase method
JP6267455B2 (ja) 工数見積装置、工数見積方法及びプログラム
Nerkar et al. Software cost estimation using algorithmic model and non-algorithmic model a review
JP2017049805A (ja) 輸送係数を算出する方法、装置、及びプログラム
JP5560220B2 (ja) 工数見積装置、工数見積方法、工数見積プログラム
Martin et al. Using process mining to model interarrival times: investigating the sensitivity of the arpra framework
US20150254587A1 (en) Estimates using historical analysis
US20160004982A1 (en) Method and system for estimating the progress and completion of a project based on a bayesian network
JP5818439B2 (ja) ソフトウェア改造見積り方法及びソフトウェア改造見積りシステム
JP4903472B2 (ja) システム規模推計システム、システム規模推計方法及びシステム規模推計プログラム
JP5532052B2 (ja) 評価モデル分析システム、評価モデル分析方法およびプログラム
US20120072366A1 (en) Method, system and program product for independent software vendor (isv) solution evaluation
JP2015158769A (ja) 障害抽出支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171128

R150 Certificate of patent or registration of utility model

Ref document number: 6267455

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250