(57)【要約】      （修正有）【課題】ソフトウェア開発生産管理システムにおいて、プロジェクト工程計画の精度を高める。【解決手段】管理データベース３は、ソフトウェアの開発過程をモデル化するために必要とされる開発過程の構成要素データとソフトウェアの開発計画を見積もるために用いられる見積パラメータデータとを保持する。ソフトウェア開発生産管理装置１は、管理データベース３上の構成要素データを参照してソフトウェアの開発過程を定義し、見積パラメータデータを用いて、定義したソフトウェアの開発過程からソフトウェア開発計画を作成する。また、ソフトウェア開発が完了した時点で、実際に行われた開発過程と先に作成したソフトウェア開発計画とを比較・評価し、必要に応じて、見積パラメータデータに修正を加え、実際の開発内容を次回の開発計画にフィードバックする。【選択図】  図１
2006039603.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの開発過程をモデル化するために必要とされる開発過程の構成要素データと当該ソフトウェアの開発計画を見積もるために用いられる見積パラメータデータとを保持する管理データベースと、
管理データベースに保持されている前記開発過程の構成要素データを参照して、管理対象とするソフトウェアの開発過程を定義し、見積パラメータデータを用いて、前記定義したソフトウェアの開発過程からソフトウェア開発計画を作成するソフトウェア開発生産管理装置とを備え、
前記ソフトウェア開発生産管理装置が、当該ソフトウェア開発が完了した時点で、実際に行われた開発過程と前記作成したソフトウェア開発計画とを比較・評価し、この比較・評価の結果に基づいて前記見積パラメータデータに修正を加える処理手段を有することにより、実際に行われたソフトウエア開発の内容を次回のソフトウエア開発を行うときの開発計画にフィードバックできるように構成されている、
ソフトウェア開発生産管理システム。
【請求項２】
請求項１に記載のソフトウェア開発生産管理システムにおいて、
前記ソフトウェア開発生産管理装置が、
前記開発過程の構成要素データに基づいて前記管理対象とするソフトウェアの開発過程を定義した後、見積パラメータデータを用いて、前記定義したソフトウェアの開発過程における各作業の規模及び工数を含む標準的なソフトウェア開発計画を作成する標準計画積算部と、
前記標準的なソフトウェア開発計画における各作業の規模及び工数を考慮して、各作業を各作業者に割り付けると共に、各作業者の能力に応じて割り付けた各作業の内容を補正して、調整されたソフトウェア開発計画を作成する実行計画作成部と、
前記調整されたソフトウェア開発計画に基づきソフトウェア開発を行うにあたり、各作業者が実際に行った工数である実績工数や実際になされた作業の規模である実績規模を含む実績情報を収集する実績情報収集部と、
ソフトウェア開発が完了した時点において、実際に行われた開発内容と前記実行計画作成部にて作成された前記ソフトウェア開発計画との差異を当該差異の原因や開発されたソフトウェアの品質を含むようにして評価し、該評価内容を前記実行計画作成部における調整にフィードバックする工程完了監視部と、
実績工数及び実績規模を考慮して各作業者の生産性についての情報を評価して該評価内容を前記実行計画作成部における調整にフィードバックする個人生産性評価部とを備える
ことを特徴とするソフトウェア開発生産管理システム。
【請求項３】
請求項２に記載のソフトウェア開発生産管理システムにおいて、
前記ソフトウェア開発生産管理装置が、ソフトウェア開発の計画立案と立案された計画に基づいた作業との対比評価を複数のソフトウェア開発に関して行って統計をとり、当該統計結果を前記標準計画積算部における前記標準的なソフトウェア開発計画の作成にフィードバックする生産実績評価部を備える
ことを特徴とするソフトウェア開発生産管理システム。
【請求項４】
請求項２又は３に記載のソフトウェア開発生産管理システムにおいて、
前記管理データベースは、生産物の単位量あたりの人件費を生産性の経験値として保持すると共に、個々の社員の人件費単価を記録しており、
前記実行計画作成部が、前記生産性の経験値と実際の生産物の量との積を個々の社員の人件費単価で割ることにより各社員の生産性を算出する
ことを特徴とするソフトウェア開発生産管理システム。
【請求項５】
請求項２乃至請求項４のいずれかに記載のソフトウェア開発生産管理システムにおいて、
前記管理データベースは、所定のソフトウェア開発環境における作業負荷である所定作業負荷と前記所定のソフトウェア開発環境における生産物の量である所定生産物量との比である所定開発生産性基準データを有しており、
前記実行計画作成部が、計画作成対象となっているソフトウェア開発の環境における生産物の量と前記所定生産物量との比である第１対比係数と前記計画作成対象となっているソフトウェア開発の環境における作業負荷と前記所定作業負荷との比である第２対比係数とをテーラリングパラメータとして、計画作成対象であるソフトウェア開発における開発生産性基準データを前記所定開発生産性基準データ×前記第２対比係数÷前記第１対比係数によって算出する
ことを特徴とするソフトウェア開発生産管理システム。
【請求項６】
請求項５に記載のソフトウェア開発生産管理システムにおいて、
前記管理データベースは、ソフトウェアの開発生産性に影響を与える要因を考慮した生産性変動率を保持しており、
前記実行計画作成部が、前記開発生産性基準データと当該生産性変動率とから、前記計画対象となっているソフトウェア開発における開発生産性を算出する
ことを特徴とするソフトウェア開発生産管理システム。
【請求項７】
請求項６に記載のソフトウェア開発生産管理システムにおいて、
前記実行計画作成部は、ソフトウェア製品に対する仕様変更のそれぞれを、当該仕様変更が生じると考えられる仕様変更時期と、該仕様変更による追加量である変更追加規模と、該仕様変更による棄却量である変更棄却規模として把握しており、
前記標準計画積算部において作成されたソフトウェア製品の規模である当初規模に対して、仕様変更時期ごとに、前記変更追加規模を加え且つ前記変更棄却規模を差し引くことで、出来上がりの規模である最終実現規模を算出する
ことを特徴とするソフトウェア開発生産管理システム。
【請求項８】
請求項７に記載のソフトウェア開発生産管理システムにおいて、
前記管理データベースは、作業内容毎に標準的な作業者の集団の単位時間数に対する人件費の期待値である標準レートを作業内容毎に保持しており、
前記実行計画作成部が、各作業者の作業内容に関し、ソフトウェア開発に要する開発人件費を作業内容毎に算出し、該開発人件費を前記標準レートで除算して当該作業に関する作業時間を算出する
ことを特徴とするソフトウェア開発生産管理システム。
【請求項９】
請求項２乃至８のいずれかに記載のソフトウェア開発生産管理システムにおいて、
前記管理データベースは、各作業者毎に、各作業者の能力の等級を属性として保持する一方、各等級毎に、当該等級を有する作業者が作業内容を習熟するために要する時間に基づいた習熟度係数を保持しており、
前記実行計画作成部が、各作業への作業者が割り当てられると、該割り当てられた作業者の有する等級と当該作業の習熟度係数とから、前記割り当てられた作業者が当該作業を行うにあたって要する時間を算出する
ことを特徴とするソフトウェア開発生産管理システム。
【請求項１０】
請求項９に記載のソフトウェア開発生産管理システムにおいて、
前記個人生産性評価部が、実際に行われた作業内容に基づいて各作業者の前記等級を更新する
ことを特徴とするソフトウェア開発生産管理システム。
【請求項１１】
請求項８に記載のソフトウェア開発生産管理システムにおいて、
前記工程完了監視部は、ソフトウェア開発過程において仕様変更に伴って生じた既開発分の棄却量である変更正味棄却規模を実際に開発されたソフトウェアの最終的な規模に加算して当該ソフトウェアの規模を算出し、該算出したソフトウェアの規模に基づいて実際の作業を評価し、評価内容を前記見積パラメータデータに反映し、及び／又は、実際に行われたソフトウェア開発における開発生産性である実開発生産性と、当該実開発生産性に実際に影響を与えた当該ソフトウェア開発特有の要因を考慮して定められる実生産性変動率とから、中間開発生産性基準データを求めると共に、
計画時に設定する前記第１対比係数及び前記第２対比係数を用いて、前記中間開発生産性基準データから自動的に当該ソフトウエア開発の環境に起因した修正を取り除いて、より一般的な開発生産性基準データを得ることで、前記所定の開発生産性基準データの精度を高める
ことを特徴とするソフトウェア開発生産管理システム。
【請求項１２】
記憶装置を有するコンピュータに読み取られて実行されることにより、前記記憶装置に、ソフトウェアの開発過程をモデル化するために必要とされる開発過程の構成要素データと当該ソフトウェアの開発計画を見積もるために用いられる見積パラメータデータとを保持する管理データベースを構築するとともに、前記コンピュータを、管理データベースに保持されている前記開発過程の構成要素データを参照して、管理対象とするソフトウェアの開発過程を定義し、見積パラメータデータを用いて、前記定義したソフトウェアの開発過程からソフトウェア開発計画を作成するソフトウェア開発生産管理装置として動作させるためのコンピュータプログラムであって、
前記コンピュータに、当該ソフトウェア開発が完了した時点で、実際に行われた開発過程と前記作成したソフトウェア開発計画とを比較・評価し、この比較・評価の結果に基づいて前記見積パラメータデータに修正を加える処理手段を形成して、当該コンピュータを、実際に行われたソフトウエア開発の内容を次回のソフトウエア開発を行うときの開発計画にフィードバックできるように動作させる、
コンピュータプログラム。
【請求項１３】
請求項１２に記載されたコンピュータプログラムを記録して成る、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア製品の開発において、ソフトウェア製品の生産管理（開発計画の立案、開発途中での実績計測及び計画達成度の評価、評価に基づくソフトウェア製品の開発活動の制御、開発終了段階での組織のソフトウェア製品開発の実績蓄積及びソフトウェア製品の開発効率の改善率の把握）を行う生産管理システムに関するものである。
【背景技術】
【０００２】
一般に、ソフトウェア製品の開発過程をモデル化する場合、いわゆるウォータフォールモデルとしてモデル化され、上流工程の仕様が確定してから初めて下流工程における作業が可能であることが前提となる。
【０００３】
また、ソフトウェア開発における生産管理の基本となるプロジェクト計画（開発工程で生ずる生産物の作成期間と作成担当者を定めたもの）は、各工程での作業工数に基づいて計画を作成することが基本である。工数見積もりの方法としては、ソフトウェアの規模をその機能に従って規定するファンクションポイント法（ＦＰ法）や、ソースコードの行数に着目してソフトウェアの規模を規定するＣＯＣＯＭＯモデルなどがある（例えば、非特許文献１参照）。
【０００４】
プロジェクト計画の精度を向上させるための技術として、ソフトウェア開発の過程で作成される生産物を確定し、生産物に対して、その作成のための作業手順とその作業に必要な入力生産物を保持し、各生産物の工数をその入力生産物から推定する技術も提案されている（特許文献１参照。）。
【０００５】
【非特許文献１】「ソフトウェアのコスト見積り技術」情報処理，Vol.33,No8（1992)
【０００６】
【特許文献１】特開平８−２０２７７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
一般に、ソフトウェア開発の生産性はソフトウェア製品の規模及び開発に要した時間数に基づいて計測される。従来、ソフトウェア製品の規模の尺度としては、開発完了時のソースコードの行数、ファンクションポイント、ソフトウェア製品のドキュメント量等が用いられており、一方、開発に要した時間数としては、延べ人数、個々の技術者が申告し検証されていない時間数が収集され適用されている。更に、ソフトウェア製品の開発には複数の技術者が関与し、個々の技術者はそれぞれ能力が異なるにも拘わらず、生産性を計測する時点では一律同一価値の時間数として用いられており、実績生産性には個々の技術者の能力差が混在しており、開発の生産性の計画値に、過去の実績値から導出された統計値をフィードバックして適用する妥当性を保全できていない。
【０００８】
特に、特許文献１に開示の技術においては、開発の生産性には言及しておらず開発に要する正確な工数見積値が入力されることを前提としている、更に、生産物の開発生産性を異なるソフトウェアプロジェクト間で比較する妥当性は保持していない。従って、ソフトウェア製品の開発に要する開発生産性の計画値を相互に比較し優劣を評価すること、過去の実績値と比較して改善度を測ることができない。
【０００９】
また、実際の開発では、上流工程で完全に仕様を確定することはできず、結果として仕様が確定しないうちに下流工程の作業を開始せざるを得ない。換言すると、ソフトウェア製品の開発過程では通常仕様変更が発生し、仕様変更によってソースコードやソフトウェア開発の生産物には、棄却、置き換え、追加が施され、開発の過程で途中まで開発した生産物が捨てられている現状がある。
【００１０】
ソフトウェア製品の規模として通常開発完了時の規模が計測されていることから、その計測されたソフトウェア製品の規模からは、開発途中で既に作成した生産物のうち仕様変更によって捨てた規模（以下、「変更正味棄却規模」という）が除外されている。すなわち、仕様変更によって捨てられるまでに実施した作業は正当なものであるにもかかわらず、変更正味棄却規模がソフトウェア生産の規模に組み入れられていないために、仕様変更の多寡によって実績生産性が変化することになる。逆に言えば、ソフトウェア開発の工程能力の一つである生産性を図る場合は、変更正味棄却規模を完了時の生産物の規模に加えて生産性を算出しないと正確ではない。
【００１１】
加えて、仕様変更は開発途中で生ずるものであるにもかかわらず、従来の技術では、開発途中で生ずる仕様変更を考慮していないので、仕様変更が発生するとプロジェクトの計画を変更せざるを得ず、これがプロジェクトの工程計画の精度を低下させる一つの要因になっている。
【００１２】
そこで、本発明は、可能な限り適切なソフトウェア開発計画を立案すると共に、実際の開発の評価と立案した計画に差が生じた場合には、当該差を計画立案のベースとなるデータにフィードバックすることにより、信頼性を徐々に高めていくことのできるソフトウェア開発生産管理システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明によれば、ソフトウェアの開発過程をモデル化するために必要とされる開発過程の構成要素データと当該ソフトウェアの開発計画を見積もるために用いられる見積パラメータデータとを保持する管理データベースと、管理データベースに保持されている前記開発過程の構成要素データを参照して、管理対象とするソフトウェアの開発過程を定義し、見積パラメータデータを用いて、前記定義したソフトウェアの開発過程からソフトウェア開発計画を作成するソフトウェア開発生産管理装置とを備え、前記ソフトウェア開発生産管理装置が、当該ソフトウェア開発が完了した時点で、実際に行われた開発過程と前記作成したソフトウェア開発計画とを比較・評価し、この比較・評価の結果に基づいて前記見積パラメータデータに修正を加える処理手段を有することにより、実際に行われたソフトウエア開発の内容を次回のソフトウエア開発を行うときの開発計画にフィードバックできるように構成されている、ソフトウェア開発生産管理システムが得られる。
【００１４】
また、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記ソフトウェア開発生産管理装置が、前記開発過程の構成要素データに基づいて前記管理対象とするソフトウェアの開発過程を定義した後、見積パラメータデータを用いて、前記定義したソフトウェアの開発過程における各作業の規模及び工数を含む標準的なソフトウェア開発計画を作成する標準計画積算部と、前記標準的なソフトウェア開発計画における各作業の規模及び工数を考慮して、各作業を各作業者に割り付けると共に、各作業者の能力に応じて割り付けた各作業の内容を補正して、調整されたソフトウェア開発計画を作成する実行計画作成部と、前記調整されたソフトウェア開発計画に基づきソフトウェア開発を行うにあたり、各作業者が実際に行った工数である実績工数や実際になされた作業の規模である実績規模を含む実績情報を収集する実績情報収集部と、ソフトウェア開発が完了した時点において、実際に行われた開発内容と前記実行計画作成部にて作成された前記ソフトウェア開発計画との差異を当該差異の原因や開発されたソフトウェアの品質を含むようにして評価し、該評価内容を前記実行計画作成部における調整にフィードバックする工程完了監視部と、実績工数及び実績規模を考慮して各作業者の生産性についての情報を評価して、該評価内容を前記実行計画作成部における調整にフィードバックする個人生産性評価部とを備えることを特徴とするソフトウェア開発生産管理システムが得られる。
【００１５】
また、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記ソフトウェア開発生産管理装置が、ソフトウェア開発の計画立案と立案された計画に基づいた作業との対比評価を複数のソフトウェア開発に関して行って統計をとり、当該統計結果を前記標準計画積算部における前記標準的なソフトウェア開発計画の作成にフィードバックする生産実績評価部を備えることを特徴とするソフトウェア開発生産管理システムが得られる。
現状のソフトウエア業界では、ソフトウエア開発の実績を把握することは徐々に浸透しつつあるが、これを次の開発に備えた経験値として蓄積し、ソフトウエア開発計画の作成にフィードバックして再利用することは、定量化の尺度の設定が難しく、実現できていない。
【００１６】
また、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記管理データベースは、生産物の単位量あたりの人件費を生産性の経験値として保持すると共に、個々の社員の人件費単価を記録しており、前記実行計画作成部が、前記生産性の経験値と実際の生産物の量との積を個々の社員の人件費単価で割ることにより、各社員の生産性を算出することを特徴とするソフトウェア開発生産管理システムが得られる。
【００１７】
更に、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記管理データベースが、所定のソフトウェア開発環境における作業負荷である所定作業負荷と前記所定のソフトウェア開発環境における生産物の量である所定生産物量との比である所定開発生産性基準データを有しており、前記実行計画作成部が、計画作成対象となっているソフトウェア開発の環境における生産物の量と前記所定生産物量との比である第１対比係数と前記計画作成対象となっているソフトウェア開発の環境における作業負荷と前記所定作業負荷との比である第２対比係数とをテーラリングパラメータとして、計画作成対象であるソフトウェア開発における開発生産性基準データを前記所定開発生産性基準データ×前記第２対比係数÷前記第１対比係数によって算出することを特徴とするソフトウェア開発生産管理システムが得られる。
現状のソフトウエア業界では、統合された尺度は存在せず、極めて類似性の高いソフトウエア開発の生産性の経験値は蓄積され、再利用されることはあるが、異なる特性を持つソフトウエア開発への経験値の再利用については、行われていない。
【００１８】
また、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記管理データベースは、ソフトウェアの開発生産性に影響を与える要因を考慮した生産性変動率を保持しており、前記実行計画作成部が、前記開発生産性基準データと当該生産性変動率とから、前記計画対象となっているソフトウェア開発における開発生産性を算出することを特徴とするソフトウェア開発生産管理システムが得られる。
【００１９】
また、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記実行計画作成部が、ソフトウェア製品に対する仕様変更のそれぞれを、当該仕様変更が生じると考えられる仕様変更時期と、該仕様変更による追加量である変更追加規模と、該仕様変更による棄却量である変更棄却規模として把握しており、前記標準計画積算部において作成されたソフトウェア製品の規模である当初規模に対して、仕様変更時期ごとに、前記変更追加規模を加え且つ前記変更棄却規模を差し引くことで、出来上がりの規模である最終実現規模を算出することを特徴とするソフトウェア開発生産管理システムが得られる。
【００２０】
また、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記管理データベースは、作業内容毎に標準的な作業者の集団の単位時間数に対する人件費の期待値である標準レートを作業内容毎に保持しており、前記実行計画作成部が、各作業者の作業内容に関し、ソフトウェア開発に要する開発人件費を作業内容毎に算出し、該開発人件費を前記標準レートで除算して当該作業に関する作業時間を算出することを特徴とするソフトウェア開発生産管理システムが得られる。
【００２１】
更に、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記管理データベースは、各作業者毎に、各作業者の能力の等級を属性として保持する一方、各等級毎に、当該等級を有する作業者が作業内容を習熟するために要する時間に基づいた習熟度係数を保持しており、前記実行計画作成部が、各作業への作業者が割り当てられると、該割り当てられた作業者の有する等級と当該作業の習熟度係数とから、前記割り当てられた作業者が当該作業を行うにあたって要する時間を算出することを特徴とするソフトウェア開発生産管理システムが得られる。
【００２２】
また、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記個人生産性評価部は、実際に行われた作業内容に基づいて各作業者の前記等級を更新することを特徴とするソフトウェア開発生産管理システムが得られる。
【００２３】
また、本発明によれば、前記ソフトウェア開発生産管理システムにおいて、前記工程完了監視部が、ソフトウェア開発過程において仕様変更に伴って生じた既開発分の棄却量である変更正味棄却規模を実際に開発されたソフトウェアの最終的な規模に加算して当該ソフトウェアの規模を算出し、該算出したソフトウェアの規模に基づいて実際の作業を評価し、評価内容を前記見積パラメータデータに反映し、及び／又は、実際に行われたソフトウェア開発における開発生産性である実開発生産性と、当該実開発生産性に実際に影響を与えた当該ソフトウェア開発特有の要因を考慮して定められる実生産性変動率とから、中間開発生産性基準データを求めると共に、計画時に設定する前記第１対比係数及び前記第２対比係数を用いて、前記中間開発生産性基準データから自動的に当該ソフトウエア開発の環境に起因した修正を取り除いて、より一般的な開発生産性基準データを得ることで、前記所定の開発生産性基準データの精度を高めることを特徴とするソフトウェア開発生産管理システムが得られる。  
【００２４】
また、本発明によれば、コンピュータをソフトウエア開発生産管理システムとして動作させるためのコンピュータプログラム及び記録媒体が得られる。
コンピュータプログラムは、記憶装置を有するコンピュータに読み取られて実行されることにより、前記記憶装置に、ソフトウェアの開発過程をモデル化するために必要とされる開発過程の構成要素データと当該ソフトウェアの開発計画を見積もるために用いられる見積パラメータデータとを保持する管理データベースを構築するとともに、前記コンピュータを、管理データベースに保持されている前記開発過程の構成要素データを参照して、管理対象とするソフトウェアの開発過程を定義し、見積パラメータデータを用いて、前記定義したソフトウェアの開発過程からソフトウェア開発計画を作成するソフトウェア開発生産管理装置として動作させるためのコンピュータプログラムであって、前記コンピュータに、当該ソフトウェア開発が完了した時点で、実際に行われた開発過程と前記作成したソフトウェア開発計画とを比較・評価し、この比較・評価の結果に基づいて前記見積パラメータデータに修正を加える処理手段を形成して、当該コンピュータを、実際に行われたソフトウエア開発の内容を次回のソフトウエア開発を行うときの開発計画にフィードバックできるように動作させるものである。また、記録媒体は、このようなコンピュータプログラムを記録して成る、コンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００２５】
本発明によれば、所定の情報に基づいて開発計画を立案するとともに、実際の開発により得られた情報によって所定の情報を更新することができることから、繰り返してソフトウェア開発の生産管理を行うことにより、立案される計画の精度が高まる。
【００２６】
また、本発明によれば、実際の開発を評価するにあたって、開発過程で生じた仕様変更により実際の開発結果には現れていない作業も考慮されるので、実際の開発の評価の精度が高まり、それに基づいて以降立案される計画の精度も高まる。
【００２７】
また、本発明によれば、実際の開発を評価するにあたって、当該開発の環境に特有の事項であって開発に影響を与えた事項を考慮して、その影響を取り除くようにして、実際の開発の評価を行うので、実際の開発に基づいてより汎用的な評価が得られることとなり、結果として、以降立案される計画の精度も高まる。
【００２８】
更に、本発明によれば、各作業に割り当てられた作業者の能力をも考慮して、計画時における各作業の生産性を算出しているので、より現実に即した計画が得られる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態によるソフトウェア開発生産管理システムについて図面を用いて詳細に説明する。
【００３０】
図１に示すように、本実施の形態によるソフトウェア開発生産管理システムは、ソフトウェア開発生産管理装置１と、ソフトウェア開発生産管理装置１に接続されてユーザとソフトウェア開発生産管理装置１との対話手段となる端末２と、ソフトウェア開発の管理情報を格納する管理データベース３とを備える。
【００３１】
より詳しくは、ソフトウェア開発生産管理装置１は、ＣＰＵ及び記憶装置を備えたコンピュータであり、記憶装置に格納されたコンピュータプログラム、即ちソフトウェア開発生産管理プログラムを読み取ってＣＰＵがそれを実行することにより、図２に示されるように、記憶装置に上記の管理データベース３を構築するとともに、コンピュータ内に、標準計画積算部１１、実行計画作成部１２、実績情報収集部１３、工程完了監視部１４、生産実績評価部１５、個人生産性評価１６、並びに、これらの動作を統括的に制御する処理手段としての機能を形成する。なお、ソフトウエア開発生産管理プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ等の可搬性の記録媒体にコンピュータ読み取り可能な形態で記録されており、使用時に記憶装置にインストールされるものである。
【００３２】
管理データベース３には、ソフトウェア製品開発の計画を立案・定義するために要する種々のデータ、あるいは、ソフトウェア製品毎の特異性や実際に開発に携わる技術者の能力等の差異を吸収してソフトウェア製品開発を一元的に捉えやすくするための変換データなどが登録されており、ソフトウェア開発生産管理装置１からのアクセスに応じて、当該データの提供及び更新処理が行われる。具体的な管理データベース３に登録されているデータ内容等については、後述する。
【００３３】
図３は、本実施の形態によるソフトウェア開発生産管理プログラムの処理フローである。ここで、このフローと図２に示される機能ブロック図との対応関係について説明する。
標準計画積算部１１は、図３における計画基礎情報定義（ステップＳ１）及び標準開発計画作成（ステップ２）を行い、実行計画作成部１２は、実行計画作成（ステップＳ３）を行う。実績情報収集部１３は、実績情報入力（ステップＳ４）を行い、工程完了監視部１４は、プロジェクト別計数集約処理（ステップＳ５）を行う。また、生産実績評価部１５は、開発単位別計数集約処理（ステップＳ６）を行い、個人生産性評価部１６は、個人生産性評価集約処理（ステップＳ７）を行う。以下、個々の処理について更に詳細に説明する。
【００３４】
図４に示されるように、本実施の形態における「計画基礎情報定義」は、１）プロジェクトの開発工程の定義（「開発工程定義」）、２）積算単位の定義（「積算単位定義」）、３）作成する生産物の定義（「生産物定義」）、４）生産物を作成するために実施する作業内容を具体的に示すアクティビティの選択または定義（「アクティビティ定義」）、５）ソフトウェア開発の生産性に影響する生産性の環境変数の定義（「生産性の環境変数定義」）、６）ソフトウェア開発の生産性に影響するソフトウェア製品の品質の環境変数の定義（「品質の環境変数定義」）、７）ソフトウェア開発の経験値を変換するための変換基準値の定義（「変換基準値定義」）、及び８）作成する生産物の規模計画値の入力（「規模計画値入力」）からなる。
【００３５】
（ａ）「開発工程定義」の説明
典型的なソフトウェアの開発工程には、いわゆる上流（フローの上位部分）から順に、基本設計、パッケージ設計、プログラム作成、統合テスト、システムテストの５つのフェーズがある。例えば開発対象であるソフトウェアに要求されている内容が初期開発か機能追加かによって、それら５つのフェーズのすべて又は一部が行われる。
本実施の形態によるソフトウェア開発生産管理プログラムにおいては、これらの典型的な開発工程は予め選択肢として用意されており、ユーザはディスプレイ画面上でそれらを開始工程又は終了工程として選択指定することができ、それによって、管理対象たる開発システムごとに適切な開始工程及び終了工程を簡単に指定することができる。
【００３６】
（ｂ）「積算単位定義」の説明
開発対象たるソフトウェア製品は、通常、バッチ処理を行う部品やオンライン処理を行う部品等の複数のソフトウェア構成品から構成されている。これらのソフトウェア構成品の開発生産性は必ずしも同一ではないことから、ソフトウェア開発の計画を積算する場合には、開発する方法や開発言語などに応じて各構成品の生産性を適切に区分し、その区分に従って、集計・積算して全体の計画値を特定する必要がある。かかる集計・積算を可能とするために、適切な区分を行うのがここにいう積算単位定義である。
【００３７】
（ｃ）「生産物定義」の説明
上述した各開発工程の作業の結果、当然のことながら、生産物が作成されることになる。本実施の形態においては、各開発工程における典型的な生産物は予め選択肢として用意されており、ユーザはその選択肢を選択することで各開発工程の生産物について定義することができる。なお、用意された名称と異なる名称の生産物について定義したい場合（例えば、クライアントの要請により特定の名称を用いることが好ましい場合など）を考慮して、本実施の形態においては、生産物の名称をユーザが変更することができるように構成されている。
【００３８】
（ｄ）「アクティビティ定義」の説明
本実施の形態において、アクティビティとは、基本設計、パッケージ設計等の各開発工程において上掲したような生産物を作成するために行われる作業項目のことをいう。本実施の形態においては、個々の生産物の作成に関連する作業項目を二階層に分けて分類している。すなわち、各生産物作成に関連する作業項目を大きく分類し、それぞれを第１アクティビティとすると共に、各第１アクティビティに分類された作業項目を第２アクティビティとしている。なお、作業項目によっては、事実上、一階層で足りるものもあるが、その場合には、第１アクティビティと第２アクティビティとが同一の作業項目であると捉えることとする。
【００３９】
本実施の形態においては、典型的な第１アクティビティ及び第２のアクティビティを用意し、画面上で選択可能とすると共に、第１アクティビティ及び第２のアクティビティのそれぞれのレベルにおいてユーザが開発対象たるソフトウェア製品特有の作業項目を自由に設定可能とすることにより、より現実的な柔軟性を持たせている。
【００４０】
（ｅ）「生産性の環境変数定義」の説明
ソフトウェア開発の計画を作成する場合には、通常、ソフトウェア製品の開発生産性として、過去の開発実績に基づく経験値を適用するが、開発生産性は様々な要因で変化するものであるので、その変化を考慮して開発生産性の調整を図る必要がある。本実施の形態においては、開発生産性を変化させる要因を、当該ソフトウェア製品に要求される品質の水準によるもの（「品質の環境変数」という）とそれ以外のもの（「生産性の環境変数」という）とに分類し、それぞれを定義するものとする。
【００４１】
このうち、生産性の環境変数については、生産性特性、副生産性特性といったように二階層で要因を定義すると共に該要因毎に特性レベル判断基準に従って影響するレベルを定めることにより、定義する。ここで、特性レベル判断基準は、各要因毎に考えられ得る変化をレベル化し、具体的な変化量を各レベルに対応付けて保持してなるものである。
【００４２】
（ｆ）「品質の環境変数定義」の説明
品質の環境変数についても、品質特性、副品質特性といったように二階層で要因を定義すると共に該要因毎に要求レベル判断基準に従って品質要求の水準を定める。ここで、要求レベル判断基準は、各要因毎に考えられ得る変化をレベル化し、具体的な変化量を各レベルに対応付けて保持してなるものである。
【００４３】
（ｇ）「変換基準値定義」の説明
ソフトウェア開発の開発生産性及び生産物の規模は様々な要因で変化することが経験的にわかっている。例えば、プラント制御を行うソフトウェア製品と会計処理などの事務処理を行うソフトウェア製品は、生産性も生産物に記述する内容も異なる。一方、従来の方法では、このようなソフトウェア製品毎の相違を考慮していないことから、類似したソフトウェア製品に関する情報に基づかない限り、適切な計画を立てることは不可能である。本実施の形態においては、個々のソフトウェア製品の開発優劣を比較するために、ソフトウェア開発の生産性の経験値を一元化している。
【００４４】
詳しくは、ソフトウェア開発の開発生産性の経験値を一元化するために、ソフトウェア開発の開発生産性の経験値の基準（これを「コストインデックス基準」という）を定めている。更に、コストインデックス基準と個々のソフトウェア製品との変換を行うために、変換基準値を設けて一元化された経験値と個々のソフトウェア製品への適用値とを変換する構成を採っている。
一元化された経験値と個々のソフトウエア製品との変換を行うための変換基準値は、一度登録したものを再利用することができる。
【００４５】
コストインデックス基準は絶対的な基準ではなく相対的な基準であり、例えば、本実施の形態によるソフトウェア開発生産管理システムを適用する組織の最多度数帯のソフトウェア製品群を基準に定めて運用することができる。
【００４６】
変換基準値を用いて変換する目的は二つある。
一つ目の目的は、ソフトウェア開発の生産物毎の開発実績を代表的な生産物の開発実績に一元化するというものである。例えば、ソフトウェア開発に共通する代表的な生産物としてはソースコードがあるが、このソースコードの規模（本実施の形態においてはソースコードの行数）を１とし、各生産物の規模をソースコードの規模に対する比であらわすこととすれば、規模に関しては一元化することができる。
【００４７】
二つ目の目的は、ソフトウェア開発生産管理システムが保持しているコストインデックス基準に対する開発生産性の経験値を、個々のソフトウェア製品の開発に適用する生産性に変換することである。個々のソフトウェア製品の生産物の規模（文字数やページ数）は、製品の仕様の表現形式、記述の内容の水準等で変化する。一方、生産物を作成するために要する作業量（時間数）は、使用する道具、仕様を決定するために検討する内容の多寡や深さ等によって変化する。経験的に、生産物の規模の変化と生産物を作成するための作業量の変化は比例することは保証されないことがわかっているので、本実施の形態においては、コストインデックス基準に対する生産物の規模の変化とコストインデックス基準に対する作業量の変化を独立して評価して、生産性を変換する方法を採っている。則ち、生産性は、作業量÷生産物の規模によって求めており、コストインデックス基準に対する作業量の率をα、コストインデックス基準に対する生産物の規模の率をβとした場合、生産性は下記（１）式によって変換される。
ソフトウエアの規模の尺度と生産性とは、相互に関連しているが、通常は、生産物の規模の変化と作業量の変化とを区分せずに、生産性は如何に変化するかという問題を直接解く試みがなされ、混乱をきたしている。本装置では、生産物の規模の変化と作業量の変化とを独立して評価するので、混乱をきたすことなく、生産性を変換することができる。
【００４８】
変換後の生産性＝（作業量×α）÷（生産物の規模×β）
＝（作業量÷生産物の規模）×（α÷β）
＝コストインデックス基準の生産性経験値×（α÷β）・・・（１）
【００４９】
本実施の形態においては、開発生産性の経験値は、生産物毎に基準値として保持している。生産物には複数のアクティビティが関連づけられているが開発生産性の経験値に対応するアクティビティのセットを定義していて、このセットに組み入れられているアクティビティは本ソフトウェア開発生産管理システムで予め識別している（これを標準アクティビティという）。
【００５０】
作業量の変化の入力は生産物を指定して生産物毎に行う。生産物には複数のアクティビティが関連付けられており、アクティビティ毎にワークロードの比率を保持していて、標準アクティビティのワークロードの比率の合計は１００％になるように予め定義されている。ユーザは、アクティビティ毎にコストインデックス基準に対する作業量の率を、作業の練度、作成する生産物量の変化に影響される変化等の要因別に識別し、且つ、この変化が顧客の指定する条件に基づく変化なのか、開発者の工夫や技術力による変化なのかを「指定要求」、「自助努力」で識別して入力する。生産物の作業量の比率は下記（２）式によって求められる。
作業の改善や工夫は、日常的に行われていることであるが、その効果を定量的な目標値に置き換えることは甚だ難しい。本装置を用いることにより、開発者が実感できるアクティビティに対して作業量の変化を指定することにより、自動的に生産物毎の生産性の目標値を求めることができる。
【００５１】
生産物の作業量の比率＝Σアクティビティのワークロード比率
×作業量の比率・・・（２）
【００５２】
なお、作業量の率を「指定要求」と「自助努力」とに区分するのは、開発者の工夫や技術力による作業の改善の結果としての開発生産性の向上を測るためであり、顧客が指定する要求の個々の要因毎に入力した作業量の率の積を、顧客の指定する条件によって変化する作業量の率として使用し、自助努力の個々の要因毎に入力した作業量の率の積を、開発者の作業の改善によって変化する作業量の率として使用する。
【００５３】
（ｈ）「規模計画値」の説明
生産物毎に生産物を初期に作成する開発工程は一意に決まっている。ソフトウェア開発の各開発工程で作成した生産物は、システムが完成するまでにテストされ発見された誤りが修正され、あるいは仕様が変更されて変化していく。詳しくは、基本設計工程で最初に基本設計書の当初生産物が作成され、パッケージ設計工程で発生する仕様の変更によって、基本設計書の一部が棄てられ、基本設計書の一部が追加されて、実現生産物となり、これが次のプログラム作成工程着手時の基本設計書当初生産物となる。
【００５４】
実現生産物の量は、当初生産物の量に変更で追加する量を加え、変更で棄てられる規模を差し引いて求める。以降、プログラム作成、統合テスト、システムテストと開発工程が進むとともに同様なことが繰り返される。本実施の形態においては、任意の開発工程の着手時に推定または実現されている生産物の規模を当初予定規模といい、開発工程の途中で発生する仕様変更によって棄てられる規模を変更棄却規模、仕様変更によって追加される規模を変更追加規模という。
【００５５】
「計画基礎情報定義」を終了すると、図３に示されるように「標準開発計画作成」が行われる。この「標準開発計画作成」においては、図５に示されるように、管理データベース３に予め保持されている「ソフトウェア開発プロセスモデル」と先の「計画基礎情報定義」で入力し管理データベース３に格納した計画基礎情報とに基づき、生産計画値（開発工数及び開発人件費）を計算し、更にソフトウェア開発の実績を管理する項目である開発管理係数の登録を行う。
【００５６】
（ａ）「ソフトウェア開発プロセスモデル」の説明
ソフトウェア開発プロセスモデルとは、ソフトウェア開発の生産管理を行うための情報をテーブル化したものの集合体である。ソフトウェア開発プロセスモデルを構成する各テーブルのテーブル構造及び初期値については管理データベース３に予め用意されており、本実施の形態によるソフトウェア開発生産管理の各段階においてユーザからの入力等により適宜更新されていく。
【００５７】
ソフトウェア開発プロセスモデルに含まれるテーブルとしては、以下に掲げるものがある。
・開発フェーズＴＢＬ
開発フェーズＩＤ及び開発工程の名称を保持したテーブルである。
【００５８】
・標準原価単価ＴＢＬ
生産物に対応する開発作業を行う標準の作業集団の人件費時間原価単価の標準値を保持したテーブルであり、年度毎に変更するようにすることもできる。
【００５９】
・生産物ＴＢＬ
生産物ＩＤ、生産物名称、生産物略称、生産物の規模を測る尺度（文字数、ステップ数など）及び開発フェーズＩＤを保持したテーブルである。開発フェーズＩＤは、当該生産物が初期作成される開発フェーズを示す。
【００６０】
・生産物生産性基準値ＴＢＬ
生産物毎の生産性の経験値を保持したテーブルである。生産性の経験値は組織全体の生産性の向上に配慮して、年度毎に定義するようにすることもできる。又、新規に生産物を作成する場合と既存の生産物を変更する場合とで生産性の経験値を区分する場合などは、当初／変更区分で区分して生産性の経験値を保持するようにすることもできる。
【００６１】
・第１アクティビティＴＢＬ
各々の生産物に関連する第１階層のアクティビティのＩＤ及び名称を保持したテーブルである。
【００６２】
・第２アクティビティＴＢＬ
各々の生産物に関連する第２階層のアクティビティのＩＤ及び名称を保持したテーブルである。
【００６３】
・第１アクティビティワークロード比率ＴＢＬ
各々の生産物には複数の第１階層のアクティビティが関連付けられている。本テーブルは、第１階層のアクティビティの作業が、関連づけられている生産物の総作業量に対する比率をワークロード比率として保持したテーブルである。ソフトウェア開発の作業の内容は技術の進展等で変化していくことに配慮して、年度毎に保持することもできる。
【００６４】
・第２アクティビティワークロード比率ＴＢＬ
各々の第１階層のアクティビティに対しては、複数の第２階層のアクティビティが関連づけられている。本テーブルは、第２階層のアクティビティの作業が、関連づけられている第１アクティビティの総作業量に対する比率をワークロード比率として保持したテーブルである。更に、「生産物生産性基準値ＴＢＬ」に定義する生産性の経験値を構成する第２階層のアクティビティをスタンダード区分＝’Ｓ’として識別する。
【００６５】
・品質特性ＴＢＬ
品質特性のＩＤ及び名称を保持したテーブルである。
【００６６】
・副品質特性ＴＢＬ
副品質特性のＩＤ、名称、副品質特性の説明文を保持したテーブルである。
【００６７】
・品質特性影響水準ＴＢＬ
要求レベル及び具体値を、影響水準レベル及び品質特性具体値範囲として保持したテーブルである。
【００６８】
・品質特性第１アクティビティＴＢＬ
副品質特性が影響する第１階層のアクティビティ及び品質特性影響パターンを、第１アクティビティＩＤ及び環境変数変動率パターンＩＤとして保持したテーブルである。
【００６９】
・環境変数変動率ＴＢＬ
要求レベルと影響パターンで定まる変動率を、影響水準レベル、環境変数変動率パターンＩＤ及び影響水準値として保持したテーブルである。
【００７０】
・生産性特性ＴＢＬ
生産性特性のＩＤ及び名称を保持したテーブルである。
【００７１】
・副生産性特性ＴＢＬ
副生産性特性のＩＤ、名称及び副生産性特性の説明文を保持したテーブルである。
【００７２】
・生産性特性第１アクティビティＴＢＬ
副品質特性が影響する第１階層のアクティビティ及び品質特性影響パターンを、第１アクティビティＩＤ及び環境変数変動率パターンＩＤとして保持したテーブルである。
【００７３】
・生産性特性影響水準ＴＢＬ
特性レベル及び具体値を、影響水準レベル及び生産性特性具体値範囲として保持したテーブルである。
【００７４】
（ｂ）管理データベース３に保持する「計画基礎情報定義」で入力した情報の説明
「計画基礎情報定義」で入力した情報もまたテーブル化され、管理データベース３に格納される。「計画基礎情報定義」で入力した情報に関するテーブルとしては、以下に掲げるものがある。
【００７５】
・開発単位フェーズＴＢＬ
開発単位ＩＤに対する開始工程及び終了工程を、開始フェーズＩＤ及び終了フェーズＩＤとして格納したテーブルである。
【００７６】
・積算単位ＴＢＬ
開発単位に対して定義した積算単位のＩＤ、名称及び積算単位の説明文を格納したテーブルである。
【００７７】
・積算単位フェーズＴＢＬ
開発単位に対して定義した積算単位が対象とする開発フェーズを開発フェーズＩＤとして格納したテーブルである。
【００７８】
・積算単位生産物ＴＢＬ
開発単位に対して定義した積算単位で、対象とする開発フェーズ毎に、作成する生産物を生産物ＩＤとして格納したテーブルである。
【００７９】
・積算単位第１アクティビティＴＢＬ
開発単位に対して定義した積算単位で作成する生産物に対して、実施する第１階層のアクティビティを登録した結果を格納したテーブルである。
【００８０】
・積算単位第２アクティビティＴＢＬ
開発単位に対して定義した積算単位で作成する生産物に対して、実施する第２階層のアクティビティを登録した結果を格納したテーブルである。なお、ユーザが追加したアクティビティについては、ＩＤ、アクティビティ追加区分、追加アクティビティ名称、追加アクティビティワークロード比率を格納することとする。又、追加要因となった品質特性、副品質特性のＩＤも格納できる。
【００８１】
・積算単位分析キーＴＢＬ
分析キー区分ＩＤ、実績分析キーＩＤを開発単位に対して定義した積算単位に対して定義した結果を格納したテーブルである。
【００８２】
・分析キー区分ＴＢＬ
典型的な分析キー区分ＩＤ及び名称を予め保持したテーブルである。
【００８３】
・実績分析キー区分ＴＢＬ
典型的な実績分析キーＩＤ及び名称を予め保持したテーブルである。
【００８４】
・品質特性評価結果ＴＢＬ
開発単位に対して定義した積算単位の品質の環境変数の評価結果として、副品質特性毎の影響水準レベルを格納したテーブルである。
【００８５】
・生産性特性評価結果ＴＢＬ
開発単位に対して定義した積算単位の生産性の環境変数の評価結果として、副生産性特性毎の影響水準レベルを格納したテーブルである。
【００８６】
・開発単位コストインデックス変換基準ＴＢＬ
適用変換基準表を格納したテーブルである。
【００８７】
・コストインデックス適用条件ＴＢＬ
適用条件を格納したテーブルである。
【００８８】
・規模調整係数ＴＢＬ
規模調整係数の合計欄を格納したテーブルである。
【００８９】
・規模調整係数明細ＴＢＬ
規模調整係数の合計欄以外を格納したテーブルである。
【００９０】
・アクティビティ別作業負荷調整ＴＢＬ
ワークロード調整係数明細を格納したテーブルである。なお、アクティビティ特定に要するＩＤについては、積算第２アクティビティＴＢＬ及び第２アクティビティワークロード比率ＴＢＬから複写することとする。また、本テーブルに含まれる「ベースラインワークロード比率」は下記（３）式に従って求められ当該テーブルに格納される。
【００９１】
ベースラインワークロード比率
＝第１アクティビティワークロード比率ＴＢＬのワークロード比率
×第２アクティビティワークロード比率ＴＢＬのワークロード比率・・（３）
【００９２】
なお、ユーザが追加した第２アクティビティについては、第２アクティビティワークロード比率ＴＢＬのワークロード比率に代えて、積算第２アクティビティＴＢＬの追加アクティビティワークロード比率を用いる。
【００９３】
・規模計画値ＴＢＬ
ユーザが入力した規模計画値を格納したテーブルである。規模の計画値を内作、外作に区分した場合は、外作規模計画値ＴＢＬに外作の計画値を格納し、内作規模計画値は、規模計画値ＴＢＬに保持する合計値から外作規模計画値ＴＢＬに保持する外作分を差し引いて取得できる。
【００９４】
（ｃ）「生産計画値計算」の説明
「標準開発計画作成」の「生産計画値計算」においては、１）アクティビティ別の生産性の環境変数による変動率の計算、２）アクティビティ別の品質の環境変数による変動率の計算、３）生産性の経験値の変換、４）開発工数の計算、５）開発人件費の計算、及び６）生産物別の計画値の集約をここに掲げた順に行う。これにより、生産計画値を計算し、上述した積算第２アクティビティ生産性ＴＢＬ、生産物別生産性ＴＢＬ及び見積値一覧ＴＢＬに計算結果を格納する。
【００９５】
１）アクティビティ別の生産性の環境変数による変動率の計算の説明
先ず、アクティビティ別作業負荷調整ＴＢＬからベースラインワークロード比率を読み出して、積算第２アクティビティ生産性ＴＢＬのワークロード比率に設定して格納する。次に、生産物生産性基準値ＴＢＬから該当する生産物ＩＤの生産性を読み出して、当初／変更区分＝「当初」のレコードの生産性にベースラインワークロード比率を乗じた値を積算第２アクティビティ生産性ＴＢＬの当初適用生産性に設定し、当初／変更区分＝「変更」のレコードの生産性にベースラインワークロード比率を乗じた値を積算第２アクティビティ生産性ＴＢＬの変更適用生産性に設定する。次に、生産性特性第１アクティビティＴＢＬの生産性特性ＩＤ、副生産性特性ＩＤとを生産性特性評価結果ＴＢＬの生産性特性ＩＤ、副生産性特性ＩＤとに対応付けて、開発単位、積算単位に関連する第１アクティビティＩＤ、環境変数変動率パターンＩＤ及び影響水準レベルを読み出す。次に、環境変数変動率パターンＩＤ及び影響水準レベルとで、環境変数変動率ＴＢＬから影響水準値を読み出す。第１アクティビティＩＤ毎には、複数の生産性特性ＩＤ、副生産性特性ＩＤの組合せが存在し、組合せ毎に影響水準値をもっているので、第１アクティビティに対する全ての生産性特性ＩＤ、副生産性特性ＩＤの組合せの影響水準値の和を第１アクティビティの生産性特性影響率とする。この第１アクティビティの生産性特性影響率を、積算第２アクティビティ生産性ＴＢＬの第１アクティビティＩＤが合致するレコードを読み込んで、積算第２アクティビティ生産性ＴＢＬの生産性特性影響率に設定して格納する。
【００９６】
２）アクティビティ別の品質の環境変数による変動率の計算の説明
次に、品質特性第１アクティビティＴＢＬの品質特性ＩＤ、副品質特性ＩＤとを品質特性評価結果ＴＢＬの品質特性ＩＤ、副品質特性ＩＤとに対応付けて、開発単位、積算単位に関連する第１アクティビティＩＤ、環境変数変動率パターンＩＤ及び影響水準レベルを読み出す。次に、環境変数変動率パターンＩＤ及び影響水準レベルとで、環境変数変動率ＴＢＬから影響水準値を読み出す。第１アクティビティＩＤ毎には、複数の品質特性ＩＤ、副品質特性ＩＤの組合せが存在し、組合せ毎に影響水準値をもっているので、第１アクティビティに対する全ての品質特性ＩＤ、副品質特性ＩＤの組合せの影響水準値の和を第１アクティビティの品質特性影響率とする。この第１アクティビティの品質特性影響率を、積算第２アクティビティ生産性ＴＢＬの第１アクティビティＩＤが合致するレコードを読み込んで、積算第２アクティビティ生産性ＴＢＬの品質特性影響率に設定して格納する。
【００９７】
３）生産性の経験値の変換の説明
次に、規模調整係数ＴＢＬから積算単位毎の生産物ＩＤ毎の自助努力規模調整係数及び指定要求規模調整係数を読み出し、次に同一生産物ＩＤのアクティビティ別作業負荷調整ＴＢＬのレコードから自助努力ワークロード調整係数及び指定要求ワークロード調整係数を読み出し、次に積算第２アクティビティ生産性ＴＢＬから同一の第１アクティビティＩＤ、第２アクティビティＩＤのレコードを読み出して、当初適用生産性及び変更適用生産性を次のとおり再計算して積算第２アクティビティ生産性ＴＢＬに格納する。
【００９８】
当初適用生産性
＝当初適用生産性×（１＋生産性特性影響率＋品質特性影響率）
×自助努力ワークロード調整係数×指定要求ワークロード調整係数
÷自助努力規模調整係数÷指定要求規模調整係数
【００９９】
変更適用生産性
＝変更適用生産性×（１＋生産性特性影響率＋品質特性影響率）
×自助努力ワークロード調整係数×指定要求ワークロード調整係数
÷自助努力規模調整係数÷指定要求規模調整係数
【０１００】
４）開発工数、開発人件費の計算の説明
次に積算第２アクティビティ生産性ＴＢＬの当初適用生産性及び変更適用生産性を同一のシステムＩＤ〜生産物ＩＤで集計し生産物別の生産性を求めて、その結果を生産物別生産性ＴＢＬに格納する。
次に外作規模計画値ＴＢＬから当初予定規模及び変更規模を読み出して、外作当初工数＝外作当初予定規模×生産物別生産性ＴＢＬの当初生産性、外作変更工数＝外作変更規模×生産物別生産性ＴＢＬの変更生産性を計算して、又、工数に標準原価単価ＴＢＬから取得する生産物ＩＤに対応する標準工程時間原価単価を乗じて人件費を求めて、結果を外作生産計画値ＴＢＬに格納する。
次に内作規模計画値ビューから当初予定規模及び変更規模を読み出して、内作当初工数＝内作当初予定規模×生産物別生産性ＴＢＬの当初生産性、内作変更工数＝内作変更規模×生産物別生産性ＴＢＬの変更生産性を計算して、又、工数に標準原価単価ＴＢＬから取得する生産物ＩＤに対応する標準工程時間原価単価を乗じて人件費を求めて、結果を内作生産計画値ＴＢＬに格納する。
次に、外作生産計画値ＴＢＬと内作生産計画値ＴＢＬの計画値を読み出して合計を計算して、見積値一覧ＴＢＬに格納する。合計値は次の通り計算する。
【０１０１】
生産物規模＝（外作当初予定規模＋内作当初予定規模）
＋（外作変更規模＋内作変更規模）
−（外作棄却規模＋内作棄却規模）
【０１０２】
標準工数  ＝（外作当初工数＋外作変更工数）
＋（内作当初工数＋内作変更工数）
【０１０３】
標準人件費＝（外作当初人件費＋外作変更人件費）
＋（内作当初人件費＋内作変更人件費）
【０１０４】
生産性    ＝標準工数÷生産物規模
【０１０５】
（ｄ）「標準開発計画作成」で行う開発管理係数登録の説明
開発管理係数とは、ソフトウェア開発の計画値と実績値とを対比する項目のことである。本実施の形態においては、各生産物に対して複数の測定項目が割り当てられており、これを管理データベース３に測定項目ＴＢＬとして格納する。具体的には、管理データベース３に測定項目ＴＢＬのテーブル構造及び初期値を予め登録してあり、ユーザが適宜変更を加えることができるようになっている。また、ユーザが測定対象とする項目選択し、且つ、計画値を登録すると、その内容が開発管理係数ＴＢＬに格納される。開発管理係数ＴＢＬに格納された内容は、開発管理係数報告書として印刷して、ソフトウェア開発の進行中に監視する項目の目標値として使用される。
【０１０６】
「標準開発計画作成」が終了すると、続いて「実行計画作成」が行われる（図３参照）。この「実行計画作成」では、図６に示されるように、具体的には、「ソフトウェアアイテム」及び「作業項目」の登録が行われ、その後、「作業項目別作業計画登録」が行われる。
【０１０７】
（ａ）「ソフトウェアアイテム」の説明
ソフトウェアアイテムとは、ソフトウェア製品の構成を管理する際に管理単位となる細分化した実現機能などである。ソフトウェア開発では通常、工程の進展に応じて実現機能や開発の担当者などが細分化していく。
【０１０８】
ユーザは、積算単位、開発工程、生産物毎に管理単位となるソフトウェアアイテムを登録する。具体的には、標準開発計画で生産物毎に規模計画値を入力しているので、ユーザは、これを細分化して、ソフトウェアアイテム毎に規模計画値を入力する。
ユーザが入力したデータは管理データベース３のソフトウェアアイテムＴＢＬに格納する。実現機能であるソフトウェアアイテムは、順次細分化され定義されていくので、未だ細分化されていない実現機能は、ダミー表示して識別することもできる。
【０１０９】
（ｂ）「作業項目」の説明
登録したソフトウェアアイテムで管理単位を実際にソフトウェア開発の担当者に割り当てる時に、管理単位が大きいと複数の担当者が割り当てられる場合がある。例えば、ある実現機能のユーザインターフェイスの設計作業とデータベースの設計作業は実現機能では一括りになるが、このような場合、通常は作業をユーザインターフェイスの設計作業とデータベースの設計作業に分けて、それぞれ別の担当者に割り当てる。このように管理単位の作業を個々のソフトウェア開発の担当者に割り当てるために作業を更に細分化した単位が作業項目である。
【０１１０】
生産物にはアクティビティが関連づけられているので、管理単位の開発作業はアクティビティ別に識別できる。作業項目の定義は、担当者に作業を割り当てる場合のアクティビティのセットとして定義し登録する。
【０１１１】
定義・登録された作業項目は、管理データベース３の作業項目管理ＴＢＬと作業項目第２アクティビティＴＢＬに格納される。作業項目管理ＴＢＬには、ユーザが定義した作業項目の作業項目管理番号と作業項目名称を保持し、作業項目第２アクティビティＴＢＬには、作業項目に含む第２アクティビティＩＤを保持する。第２アクティビティの一覧は、標準開発計画書作成で作成済みの積算第２アクティビティＴＢＬから作成し、ユーザはこの一覧から作業項目に含むアクティビティを選択することになる。
【０１１２】
（ｃ）「作業項目別作業計画」の説明
作業項目別作業計画とは、作業目項目として登録している担当者への作業の割当単位を実際の担当者に割り当てた計画である。標準開発計画で設定した開発生産性は、過去の経験値に基づいた平均的な値である。個々の担当者は、ソフトウェア開発の経験も異なり、能力も異なるので、ユーザが実際の担当者に作業を割り当てる場合には、担当者の経験、能力に見合う開発生産性に変更しなければならない。
【０１１３】
本実施の形態においては、以下に掲げる補正を行い、生産性の変更が行われる。補正された生産性は、管理データベース３の生産作業管理単位ＴＢＬに格納される。
【０１１４】
１）給与による補正の説明
本実施の形態においては、個々の担当者毎に給与によって定まる時間原価単価を予め設定し、これを管理データベース３に保持しており、次式にしたがって、個々の担当者に関連した開発生産性を求める。
【０１１５】
個々の担当者の生産性
＝（標準開発工数×標準工程時間原価単価）÷担当者の時間原価単価
＝標準開発工数×（標準工程時間原価単価÷担当者の時間原価単価）
【０１１６】
なお、本実施の形態においては、標準開発計画作成で作成した積算第２アクティビティ生産性ＴＢＬに第２アクティビティ別に開発生産性を保持しており、この生産性にソフトウェアアイテムＴＢＬに定義したソフトウェアアイテムの規模を乗じて、第２アクティビティ毎の標準開発工数を求めて、これを作業項目第２アクティビティＴＢＬで定義する作業項目管理番号単位で集計して、作業項目管理番号単位の標準工数を求める。
【０１１７】
２）能力による補正の説明
本実施の形態においては、生産物毎に担当者の能力を補正する係数を管理データベース３の要員別生産性補正ＴＢＬに担当者別生産性補正係数として保持している。これは生産物毎の平均の生産物の単位量当たりの単価に対して、当該担当者が過去に作成した生産物の単位量当たりの単価の比率である。本実施の形態においては、この相対能力係数を用いて、個々の担当者の生産性に相対能力係数を乗じた値を開発生産性とするような補正を行う。なお、要員別生産性補正係数ＴＢＬの担当者別生産性補正係数は、後述する個人生産性評価集約処理で個々の担当者の生産実績を分析した結果が格納されている。
【０１１８】
３）その他の補正の説明
その他の補正としては、新たな業務のソフトウェア開発を行う場合に要する業務知識の習得や上位設計書の間違いによる作業の手戻りなど、担当者個々の経験や能力に依存しない工数の補正がある。これについては、ユーザは直接補正した工数を指定することとし、その結果は要員別補正工数ＴＢＬに格納する。なお、その他の補正工数は、その事由別に区分して入力することもできる。
【０１１９】
図３に示されるように、「実行計画作成」を終了すると、続いて「実績情報入力」が行われる。この「実績情報入力」では、具体的には、図７に示されるように、「実績工数」、「残予測工数」、「生産実績規模」、「レビュー実績」、「バグ実績」及び「備忘録」の入力が行われる。これらは入力されるとテーブル化され、管理データベース３に格納される。以下、それぞれの入力内容について説明する。
【０１２０】
（ａ）「実績工数」の説明
本実施の形態においては、個々の担当者の実績工数を作業項目別に且つ第２アクティビティ別に入力できるようにしている。具体的には、各入力画面は担当者名及び日付にて特定されるように構成されていると共に、その画面上において第２階層のアクティビティ別に実績工数を入力することができるように構成されている。この入力画面において入力された内容は、担当者別実績工数ＴＢＬとして管理データベースに格納される。
【０１２１】
工数の実績は、日別に入力するのではなく、週次、月次、開発フェーズ等、開発組織が定める生産管理のサイクルに合わせて入力しても良い。
【０１２２】
外部に委託した作業の実績工数については、外作実績登録などの機能を用意しており、ユーザは画面から実績工数を入力することができる。これにより入力された内容は外作実績工数ＴＢＬに格納される。
【０１２３】
（ｂ）「残予測工数」の説明
個々の作業項目別の進捗を把握するために、個々の担当者の作業項目の作業が完了するまでに要する残分の工数及び残分の開発量を入力を受け付けて、その結果をテーブル化し、残予測ＴＢＬに格納する。この入力によって、その時点の作業管理単位毎の工数の消化率、生産物の作成率を把握することが可能となり、作業の進捗管理に使用できると共に、計画工数との差異の発生に関する担当者の見解を管理者が随時照会できるようになる。
【０１２４】
（ｃ）「レビュー実績」の説明
レビュー時間、指摘事由、件数等のレビューの実績もソフトウェア製品の品質管理をするための情報としては有益である。そこで、本実施の形態においては、これらの情報をレビュー実績として管理データベースに登録することとしている。この登録機能は任意機能であり、省略することもできる。
【０１２５】
（ｄ）「バグ実績」の説明
バグ混入原因、バグの混入生産物、件数等、摘発したバグに関する情報もソフトウェア製品の品質管理をするための情報としては有益である。そこで、本実施の形態においては、これらの情報をバグ実績として管理データベースに登録することとしている。この登録機能は任意機能であり、省略することもできる。
【０１２６】
（ｅ）「備忘録」の説明
ソフトウェア開発作業は、理論上は、実行計画の作成によって個々の担当者に割り当てられるが、ソフトウェア開発作業の実態は殆どが複数人による共同作業になっている。ここで、説明上、各作業を割り当てられた担当者を「被指示者」ということとする。実行計画上、被指示者は一つの作業項目に対して１人である。被指示者は、インプット生産物に基づいて設計、プログラム作成などのソフトウェアの開発作業を行い、アウトプット生産物を作成する。その過程で、他の人にアドバイスを仰いだり、指導を仰いだり、場合によっては議論を交わしたりしながらソフトウェアの開発作業を行うが、良いアドバイスや指導を受ければ作業効率は高まり、逆に見当違いのアドバイスや指導を受ければ作業効率は低下することになる。このように被指示者に対してアドバイスをしたり、指導をする人を「指示者」ということとする。指示者は一人の場合もあれば複数人である場合もある。
【０１２７】
備忘録とは、指示者が行ったアドバイスや指導が、作業効率にどれだけ寄与したかを評価するために、指示者が行ったアドバイスや指導の内容を記録するものである。ユーザは、画面上から、アドバイスに使った工数、アドバイス内容を入力することができ、入力された結果は備忘録・被指示者ＴＢＬ及び備忘録・指示者ＴＢＬに格納される。
【０１２８】
「実績情報入力」が終了すると、続いて「プロジェクト別計数集約処理」及び「開発単位別計数集約処理」が実行される（図３参照）。「プロジェクト別計数集約処理」では、図８に示されるように、「フェーズ完了」及び「システムの開発完了（プロジェクト完了）」の登録並びに各種集計を行い、「開発単位別計数集約処理」では、図９に示されるように、開発単位完了の登録並びに生産実績を評価してソフトウェア開発プロセスモデルの評価などを行う。
【０１２９】
（ａ）「フェーズ完了登録」の説明
フェーズ完了登録とは、基本設計、パッケージ設計等のそれぞれの開発工程が完了したことを各工程が完了した都度行われるべき登録のことである。具体的には、「完了日登録」及び「実績環境変数登録」を行うことにより、フェーズ完了登録を行う。本実施の形態においては、フェーズの完了日の登録を行わせることで、完了日以降の作業実績の入力を抑止したり、妥当性確認自己評価点等開発工程の完了を査定した結果を登録機能を追加することとしている。
【０１３０】
このフェーズ完了登録を行った後には、「検査課提出係数登録」が行われる。具体的には、フェーズ完了時の集約処理が行われ、更に標準開発計画で作成した開発管理係数ＴＢＬから測定対象の項目及び計画値が読み出され、また開発管理係数実績ＴＢＬから実績値を読み出され、画面上に表示される。当該表示に従い、ユーザは実績値を入力または更新して開発管理係数実績ＴＢＬに実績値を格納または更新する。ユーザの要求によって、各作業項目などについて見積もりと異なる実績などの入力をすることもできる。
【０１３１】
１）「実績環境変数登録」の説明
「計画基礎情報定義」においては、「生産性の環境変数定義」、「品質の環境変数定義」として、計画時（見積もり時点）における情報を入力した。「実績環境変数登録」においては、これらに対応する情報として、開発フェーズ完了時点で各要因を再評価して入力する。即ち、「実績環境変数登録」の登録内容は「計画基礎情報定義」における「生産性の環境変数定義」及び「品質の環境変数定義」と実質上同じであるが、開発フェーズ完了時点における実績に則した内容となっている。ユーザにより入力された内容は、実績生産性特性評価結果ＴＢＬ、実績品質特性評価結果ＴＢＬ、実績規模補正ＴＢＬに格納される。
【０１３２】
これらのテーブルが作成されると、作成されたテーブルを用いて、「標準開発計画作成」の「生産計画値計算」と同様にして「生産性特性影響率」及び「品質特性影響率」が計算される。具体的には、「生産性特性評価結果ＴＢＬ」の代わりに「実績生産性特性評価結果ＴＢＬ」を用い、且つ、「品質特性評価結果ＴＢＬ」の代わりに「実績品質特性評価結果ＴＢＬ」を用いて、前述した「標準開発計画作成」における「生産計画値計算」と同様に計算して、「生産性特性影響率」及び「品質特性影響率」を計算し、画面上に、影響率理論値として｛生産性特性影響率＋品質環境特性影響率｝×１００を表示する。これは、フェーズ完了時に再評価した結果の生産性特性及び品質特性による生産性への影響率であり、ユーザはこれと計画時点で計算した生産性への影響率との差分は生産性特性及び品質特性の評価誤差として使用でき、生産性特性及び品質特性の評価方法を改善する契機として利用できる。
【０１３３】
２）「フェーズ完了時の集約処理」の説明
上記１）の「実績環境変数登録」で登録する以外の情報としては、「実績情報入力」において管理データベース３に「担当者別実績工数ＴＢＬ」、「生産実績規模ＴＢＬ」、「外作工数実績ＴＢＬ」及び「外作実績規模ＴＢＬ」として格納されているものがある。
これらについては、ユーザの要求により、測定項目ＴＢＬから集計対象の項目を読み出して、それぞれの集計対象の項目を担当者別実績工数ＴＢＬ、生産実績規模ＴＢＬ、外作工数実績ＴＢＬ及び外作実績規模ＴＢＬから読込み且つ集約して、集約結果を開発管理係数実績ＴＢＬに格納する。集約結果は、ディスプレイ画面に表示され、更にプリンターにて印刷される。集約結果としては、ソフトウェア開発作業で実施することを予定していたアクティビティと実際に実施したアクティビティとの対比や、ソフトウェアアイテム別の生産物の実績規模の集計結果、テスト密度（ソースコードの行数当たりのテスト項目数）の平均値と標準偏差などがある。バグ密度（ソースコードの行数当たりのテストで発見した誤り（これをバグという）の件数）の平均値及び標準偏差や、開発管理係数ＴＢＬに格納されている計画値と開発管理係数実績ＴＢＬに格納されている実績値との対比結果などもソフトウェア開発作業の改善を促す目的に使うことのできる情報である。
なお、生産実績規模は、実際に作成したドキュメントやプログラムソースを読み込んで、その規模を自動計測することもできる。
【０１３４】
（ｂ）「システムの開発完了（プロジェクト完了）登録」の説明
システムテストまでの一連のフェーズが全て終了した後に、続いて開発単位の完了日を登録する。ユーザが所定の画面上にて開発完了計算を指示すると、開発単位の最終の開発フェーズの完了日が開発単位の完了日として、開発単位完了ＴＢＬに格納される。
【０１３５】
（ｃ）「開発単位別計数集約処理」で集計できる情報の説明
管理データベース３には、「フェーズ完了登録」及び「実績情報入力」において入力された情報が格納されている。これらの内容は、ユーザからの要求により所定の集約処理を受けた状態で画面上に表示され、更なる要求に応じて、プリンターから印刷される。表示される集約結果としては、例えば、開発管理係数ＴＢＬに格納している計画値と開発管理係数実績ＴＢＬに格納している実績値とを対比し、計画値と実績値との差及び差異率を一覧できるようにまとめたものなどが挙げられる。本実施の形態においては、集計単位は、開発フェーズ毎、積算単位毎、開発フェーズと積算単位の組合せ毎などユーザが自由に指定できることとする。
【０１３６】
図３を参照すると、上述した「プロジェクト別計数集約処理」及び「開発単位別計数集約処理」と並行して「個人別生産性評価集約処理」も実行されることが理解される。即ち、「実績情報入力」の終了後には、「個人別生産性評価集約処理」も実行される。
「個人別生産性評価集約処理」においては、図１０に示されるように、「評価基礎情報の集約」、「組織間相対評価補正入力」、及び「個人生産性評価集約」が行われる。「評価基礎情報の集約」では、指示者、被指示者別に評価基礎情報の作成を行い、チーム内の調整用のリストを出力する。次にソフトウェア開発をしているプロジェクトチーム内の調整、課内の調整、部内の調整と組織の下位階層から上位の階層へと段階を追って調整し、その結果を調整結果リストとして作成する。組織間の差異は「組織間相対評価補正入力」を行うことによって調整する。調整結果リストは、生産物別の個人別の生産性の順位リストである。全社調整の結果は、要員別生産性補正ＴＢＬに格納される。この要因別生産性補正ＴＢＬは、以後、他のソフトウェア製品の開発生産管理において実行計画を作成する際に、個々人の能力差を補正するために参照される。したがって、本実施の形態によれば、過去の開発実績に基づいて個々人の能力差を計画に反映できることになり、次第に計画の精度を高めることができ、且つ、個々の担当者の能力の向上を適宜計画に反映することが可能になる。
【０１３７】
次に行う「個人生産性評価集約」処理では、指示者の順位リスト及び被指示者の順位リストを統合した個人別の順位リストを作成する。この順位リストをある一定の基準線を設定して区分することによって、ユーザはソフトウェア開発の生産性による個々人の評点を決定でき、ソフトウェア開発の担当者の人事考課の参考情報に使用できる。
【０１３８】
（ａ）「評価基礎情報の集約」の説明
評価基礎情報の集約は、「ソフトウェアアイテムの完了の入力」及び「基礎データ追加入力」、並びに、「削減効果登録」からなる。
【０１３９】
１）「ソフトウェアアイテムの完了の入力」の説明
ユーザが画面から各ソフトウェアアイテムについて完了区分をチェックし、保存を指示すると、ソフトウェアアイテム完了区分ＴＢＬにソフトウェアアイテムの完了区分が格納される。ソフトウェアアイテムの完了入力は、個人の生産性を評価する時点では仕掛かり中のソフトウェアアイテムと完了済みのソフトウェアアイテムとがある。これは、完了済みのソフトウェアアイテムについては実績値を、仕掛かり中のソフトウェアアイテムについては実行計画で作成した計画値を使用して生産性を評価するためである。
【０１４０】
本実施の形態においては、担当者別実績工数ＴＢＬと生産作業管理単位ＴＢＬから工数の実績値、工数計画値をそれぞれ読み出して、評価対象工数ＴＢＬにレコードを作成し、更に、生産実績規模ＴＢＬと生産作業管理単位ＴＢＬから規模の実績値、規模の計画値をそれぞれ読み出して、評価対象規模ＴＢＬに作成する。
【０１４１】
２）評価基礎情報の追加入力の説明
評価基礎情報には、「作業項目別作業計画」で入力した情報を利用することもできるが、本実施の形態においては、ユーザが被指示者の評価基礎情報の追加入力をできる手段も提供する。具体的には、被指示者及び指示者の実績工数を作業項目別に集計したものを実績工数欄として表示すると共に、それぞれに対応付けるようにして、補正工数内訳欄を設けることとする。ユーザは補正工数内訳欄に情報を入力すると、その内容が補正対応工数ＴＢＬに格納される。ユーザの入力内容としては、以下に掲げるものがある。
【０１４２】
・習熟度補正工数
担当者の当該作業への習熟度の不足を補うために要する作業（初めて経験する開発工程の作業手順や適用する技術の習得等）に要する工数であり、個々人の生産性を平等に評価するために、担当者の実績作業工数から減算して補正する。
・工夫効果補正工数
他の担当者が発案したアイディアによる当該作業で削減できる工数であり、作業工数が削減されたのは他の担当者の成果であるので、担当者の実績作業工数に加算して補正する。
・難易度補正工数
担当するソフトウェアアイテム特有の難易度が高いことによって増加する工数であり、個々人の生産性を平等に評価するために、担当者の実績作業工数から減算して補正する。
・変更対応補正工数
仕様変更により生ずる手戻り工数であり、個々人の生産性を平等に評価するために、担当者の実績作業工数から減算して補正する。
・問題対応補正工数
他の担当者が作成した上位生産物の誤りの訂正により生ずる手戻り工数であり、個々人の生産性を平等に評価するために、担当者の実績作業工数から減算して補正する。
【０１４３】
このような情報が入力されると、評価対象工数が次式に従って計算され計算結果ＴＢＬに格納される。なお、実績工数は担当者別実績工数ＴＢＬから読み出される。
【０１４４】
補正後評価対象工数
＝実績工数−習熟度補正工数＋工夫効果補正工数
−難易度補正工数−変更対応補正工数−問題対応補正工数
【０１４５】
被指示者原価は、個人別時間原価ＴＢＬに保持している時間原価単価を読み込んで、補正後評価対象工数に乗じて求め、評価対象規模ＴＢＬから評価対象規模を読込んで、被指示者原価を評価対象規模で除算して求める。
【０１４６】
３）削減効果登録の説明
削減効果登録とは、実績情報入力で入力した備忘録に基づいて、指示者が行ったアドバイスの効果を査定して入力することである。ユーザの要求により、備忘録指示者ＴＢＬ及び備忘録被指示者ＴＢＬから登録データが読み出されディスプレイ画面に一覧表示される。ユーザは、アドバイスによる作業工数の削減度合いを効果度として、−１０％〜＋１００％の範囲を１０％刻みで区分して、「−１〜１０」の何れかを入力することで、アドバイスの効果を査定する。具体的には、効果度が入力されると、入力された効果度に基づいて、次のように指示者及び被指示者の順位付けをする値を計算する。
【０１４７】
α）指示者の順位付けをする値
指示者は効果額を指示者として投入した原価で除算した値（以下、「効果率」という）の大きい順に順位付けをする。
【０１４８】
効果額とは、指示者がアドバイスを与えない場合に要したであろう被指示者の原価（以下、予想投入原価という）から、実際に要した被指示者の原価を差し引いた金額を指示による削減原価として、より効果的なアドバイスを引き出すのも個人の能力の内であると考えて、削減原価を指示者と被指示者とで折半する。アドバイスを与えたことによる作業工数の削減度合は効果度として格納されている。また、効果度の単位は１０％である。従って、アドバイスによって削減されたであろう工数の比率は“１−効果度÷１０”で求められる。実際に作業した工数はアドバイスを受けた結果なので、指示者がアドバイスを与えない場合に要したであろう作業工数は、実際の作業工数を（１−効果度÷１０）で除算した値となる。原価は、作業工数に個々人の時間原価単価を乗じて求められるので、予想投入原価を、次式で求める。なお、被指示者の原価とは、補正後評価対象工数に個々人の時間単価を乗じて求めた金額であり、評価基礎情報の追加入力した結果で補正されている。
【０１４９】
予想投入原価
＝（被指示者原価＋指示者原価）÷（１−効果度／１０）
【０１５０】
削減原価は、次の通り求める。
削減原価＝予測投入原価−（指示者原価＋被指示者原価）
但し、効果度が１０、即ち削減度合いが１００％の場合は、上式では求められないので、この場合は生産物の単位量当たりの実績平均原価に生産物量を乗じた金額を削減原価と見なす。
【０１５１】
効果額は、次の通り求める。
効果額  ＝削減原価÷２
【０１５２】
β）被指示者の順位付けをする値
被指示者は単位生産物量当たりの原価（以下、「個人生産性」という）により順位付けをするのが基本であるが、ソフトウェア開発の開発生産性は同一の生産物であっても開発するシステムの相異、積算単位の相異によって生産性が異なるので、このままでは順位付けできない。そこで、同一の開発システム、同一の積算単位、同一の生産物の中で、単位生産物量当たりの原価の平均値（以下、平均生産性という）を求める。個々人が作成した生産物の単位生産物量当たりの原価をこの平均生産性で除算した値（以下、個人相対生産性という）で順位付けする。個人相対生産性は、平均からの個々人の距離であり、１より小さければ平均より安い生産物を作っていることになり、１より大きければ平均より高い生産物を作っていることになるので、個人相対生産性の小さい順に順位付けする。
【０１５３】
個人生産性＝（被指示者原価＋指示者原価＋削減原価÷２）／生産物量
個人相対生産性＝個人生産性÷平均生産性
【０１５４】
被指示者は、指示者と共同で、特定の工程生産物、ソフトウェアアイテムをアウトプットする作業の一部であるアクティビティを担う。アウトプットする特定の工程生産物、ソフトウェアアイテムの内、担当したアクティビティがアウトプットした生産物の規模を直接計測することは計測に要するコストとの関係から現実的ではないので、本実施の形態においては、次の方法によって求める生産物の論理規模を生産物量として用いる。即ち、標準開発計画時に積算第２アクティビティ生産性ＴＢＬに第２アクティビティのワークロード比率を格納しているので、このワークロード比率によって、実際の工程生産物（ソフトウェアアイテム）の規模を按分し、当該アクティビティに対応する生産物の論理規模を求める。実際の工程生産物（ソフトウェアアイテム）の規模は、生産実績規模ＴＢＬに格納されており、最終実現規模−着手時規模＋正味規模を使用する。
【０１５５】
（ｂ）「組織間相対評価補正入力」の説明
指示者の貢献率及び被指示者の個人生産性は、生産物別に担当者単位で集約され、順位リストが作成される。
順位リストはプロジェクトチーム、課、部のそれぞれの所属人員の中での相対順位であり、プロジェクトから課、課から部と括りを広げるに従って、所属人員の分布の片寄りを補正しなければならない。本実施の形態においては、ユーザが画面上から補正係数を入力し補正できることとする。この入力結果は、開発単位別生産性ＴＢＬ、課別生産性ＴＢＬ、部別生産性ＴＢＬ、全社生産性ＴＢＬのそれぞれのテーブルに格納する。ユーザは、補正係数を入力後、調整結果を出力してその結果を確認し、組織間の調整を終了する。これを全社の調整が終了するまで繰り返す。
本実施の形態においては、所属人員の片寄りをユーザが画面上から補正係数を入力する補正を行うことができるが、予め補正係数を登録しておいて、自動的に補正を行うこともできる。補正方法、補正基準が十分に安定した段階で、事前登録して運用を自動化することを想定している。
【０１５６】
α）指示者の貢献率の集約
ユーザが入力した補正係数を貢献額に乗じて、補正後貢献額を貢献額×補正係数で求める。なお、補正係数が指定されていない場合は補正係数には１．０を適用する。次に、指示者の補正後貢献額及び指示者の投入コストを担当者別に生産物別・積算単位別に集計する。集計した個人の貢献額を集計した個人の指示者の投入コストで除算して貢献率を求める。
【０１５７】
β）被指示者の個人相対生産性の集約
被指示者の個人生産性の集約は、開発システム、積算単位のそれぞれの組合せの中での平均生産性が同一価値であることを前提に集約する。即ち、ユーザが入力した補正係数は、異なる開発システム、異なる積算単位の平均生産性同士の相対価値を定める値として使用する。即ち、補正係数で補正した個人相対生産性は、次のようになる。
【０１５８】
補正後個人相対生産性＝個人生産性÷（平均生産性×補正係数）
＝個人相対生産性÷補正係数
【０１５９】
被指示者の個人生産性の集約は、補正後個人相対生産性を求めた後に次の要領で行う。なお、補正係数が設定されていない場合は、補正係数は１．０を適用する。補正後個人相対生産性×生産物量及び生産物量を集計する。集計した補正後個人相対生産性×生産物量を集計した生産物量で除算して、個人相対生産性を求める。
【０１６０】
（ｃ）「個人生産性評価集約処理」の説明
ここまでで、指示者、被指示者別に、生産物別に、順位リストが作成されている。本実施の形態においては、続いて、次式によって求める貢献額を算出して、個人別の順位リストを作る。指示者の貢献額とは、組織間相対評価補正入力で最終的に補正された補正後貢献額の集計値である。全社生産性ＴＢＬを読み込んで社員番号別に集計し、結果を個人別評価統合ＴＢＬに格納する。又、被指示者の貢献額は、生産物の単位量当たりの原価の平均値に比べて、被指示者が安く作成できた開発原価と定義する。個々の担当者は、被指示者として作業している場面もあれば、指示者として作業している場面もあるので、次式によって付加価値率を求めて、付加価値率の大きい順に並べて、個人別の順位リストを作成する。
【０１６１】
付加価値率
＝（指示者分貢献額＋被指示者分貢献額）
÷（指示者分原価＋被指示者分原価）
【０１６２】
「開発単位別計数集約処理」及び「個人別生産性評価集約処理」を終了すると、続いて「集約処理」を実行する。この「集約処理」は、具体的には、「生産実績集約処理」及び「計画基準値更新」からなる。
【０１６３】
（ａ）「生産実績集約処理」の説明
管理データベース３には、プロジェクト別計数集約処理及び開発単位別計数集約処理によって、フェーズ完了時集約実績情報及びプロジェクト完了時集約実績情報が格納されている。
【０１６４】
生産実績集約処理では、１）指標値算出を行い、管理データベース３にコストインデックス実績情報を格納し、次に２）指標値照会を行い、分析結果を出力する。ユーザの要求により指標値算出処理が行われると、その処理結果が管理データベース３のコストインデックス実績情報に格納される。
【０１６５】
本実施の形態においては、ユーザは、ディスプレイから指標値区分、サイクル及び比較方法を指定して照会情報を出力することが出来る。照会できる情報は指標値区分、サイクル及び比較方法に区分しており、実際に照会する指標値はプライマリ指標値及びセカンダリ指標値の２階層になっている。分析結果には、例えば、年度別対比表、括り別順位表、改善率順位表及び測定項目間の関係グラフがある。年度別対比表は前年度との比較を行い改善度合いを把握するものであり、括り別順位表はプロジェクト間、組織間の優劣を把握して改善点を探すこと、優れているところの他組織への展開を図るために用いる。測定項目間の関係グラフは例えば規模とコストの相関を分析することによって生産性の予測式を発見・評価したり、上位の生産物と下位の生産物の規模の相関を分析することによって生産物の規模の予測式を発見・評価するために用いることができる。プロジェクトの実績は管理データベース３に次々に蓄積されていくので、蓄積された情報から次第に精度の高い予測式を作ることができるようになる。
【０１６６】
１）指標値算出の説明
指標値の算出とは、コストインデックスを算出することである。本実施の形態においては、プロジェクト別のコストインデックスの計画値、プロジェクト別のコストインデックスの実績値及び技術者個々人別のコストインデックスの実績値が算出され、プロジェクト別コストインデックスＴＢＬに格納される。
【０１６７】
コストインデックスの算出においては、先ず、基礎情報編集処理を行った結果をコストインデックス基準ＴＢＬに格納する、次に、コストインデックス基準ＴＢＬの情報を読み出して、改造型生産物コストインデックス統合処理を行い、その結果を集約コストインデックス基準ＴＢＬに格納する。最後に、集約コストインデックス基準ＴＢＬの情報を読み出して、生産物別コストインデックス統合処理を行い、その結果をプロジェクト別コストインデックス基準ＴＢＬに格納する。
【０１６８】
基礎情報編集処理においては、先ず、量単位コスト算出では、担当者別実績工数ＴＢＬに格納されている個人別、プロジェクト別、第２アクティビティ別の人件費をシステムＩＤ、開発単位ＩＤ、プロジェクトＩＤ、積算単位ＩＤ、生産物ＩＤの組合せ毎に集計して読み出し、次に生産実績規模ＴＢＬに保持している最終実現規模を同じシステムＩＤ、開発単位ＩＤ、プロジェクトＩＤ、積算単位ＩＤ、生産物ＩＤの組合せ毎に集計して読み出して、量単位コストを人件費の集計値を最終実現規模の集計値で除算して求める。
次に、開発環境特性による生産性の変化及び品質特性による生産性の変化を排除するために、実績積算第２アクティビティＴＢＬからΣ環境変数影響率を読み出して、量単位コストを（１＋Σ環境変数影響率）で除算して、環境変数影響率排除後の量単位コストを求める。
ある生産物を作るために行う作業はプロジェクト毎に異なるので、この違いによる影響を排除するために標準のアクティビティ分布で作業した場合の量単位コストに変換する。本実施の形態においては、作業を第２アクティビティＩＤで識別している。プロジェクトで実施した第２アクティビティＩＤは実績積算第２アクティビティＴＢＬに格納しているので、このＴＢＬに登録されている第２アクティビティＩＤ毎のワークロード比率の集計値を読み出す。例えば、ワークロード比率の集計値が９０％ということは、標準のアクティビティ分布で作業した場合に比べて少ない作業（９０％の作業）しかしていないということである。
【０１６９】
標準のアクティビティＩＤの集合では、ワークロード比率の集計値は１００％なので、環境変数影響率排除後の量単位コストをワークロード比率の集計値／１００で除算して、変換後の量単位コストを求める。
次に、プロジェクトの生産性実績値をコストインデックス基準の実績値に変換する。この処理は、コストインデックス基準の生産性の経験値を個々のソフトウェア製品の開発に適用する生産性に変換する手順の逆の処理を行う。即ち、アクティビティ別作業負荷調整ＴＢＬに格納されている指定要求ワークロード調整係数の集計値を読み出し、次に、規模調整係数ＴＢＬに格納している指定要求規模調整係数を読み出して、変換後の量単位コストを（指定要求規模調整係数×Σ指定要求ワークロード調整係数）で除算して、コストインデックス基準成果物単位コストを求め、コストインデックス基準ＴＢＬの基準成果物単位コストに格納する。
次に、既に求めている最終実現規模の集計値を指定要求規模調整係数で除算して、コストインデックス基準成果物量を求めて、コストインデックス基準ＴＢＬの基準成果物量に格納する。
【０１７０】
既存のソフトウェア製品を改造して開発する場合は、新規にソフトウェア製品を開発する場合に比べて、既存のソフトウェア製品を調査したり、改造した結果を既存のソフトウェア製品の仕様書に反映するという作業が発生するため、本実施の形態においては、調査対象のソフトウェア製品のドキュメント、既存のソフトウェア製品のドキュメントを別の生産物として識別する構成を採っている。従って、新規に開発する場合に比べて生産物の種類が大幅に増加する。
【０１７１】
コストインデックス基準では個々のソフトウェア製品の特性を定めるの簡易にするために新規に開発する場合の生産物に対して変換基準表を定めているので、改造型の開発に固有に現れる生産物は新規に開発する場合に作成する生産物の何れかに集約する方法を採る。本実施の形態においては、改造型の開発に固有に現れる生産物をいずれの既存の生産物に集約するかについて、集約先生産物対応ＴＢＬに予め保持している。
このテーブル上の生産物ＩＤと集約先生産物ＩＤとが異なる生産物ＩＤが集約が必要な生産物ＩＤであり、この生産物ＩＤの基準成果物単位コストを、集約先生産物ＩＤの基準成果物単位コストに集約する。即ち、自助努力によるコストの増減を戻した生産物ＩＤの基準成果物単位コストに生産物ＩＤ基準成果物量を乗じてコストを求め、これを自助努力によるコストの増減を戻した集約先生産物ＩＤの基準成果物単位コストで除算して、集約先生産物ＩＤ相当の成果物の規模に変換し、コストインデックス基準ＴＢＬの変換後基準成果物量に格納する。
また、生産物ＩＤの基準成果物量に生産物ＩＤの基準成果物単位コストを乗じて求まるコストを集約先生産物ＩＤ相当の成果物の規模で除算して、集約先生産物ＩＤ相当の基準成果物単位コストを求めて、コストインデックス基準ＴＢＬの変換後基準成果物単位コストに格納する。集約先生産物対応ＴＢＬで生産物ＩＤと集約先生産物ＩＤとが同一の生産物ＩＤは変換は不要なので、コストインデックス基準ＴＢＬの基準成果物量及び基準成果物単位コストを、変換後基準成果物量及び変換後基準成果物単位コストにそれぞれ転記する。
次に、コストインデックス基準ＴＢＬの変換後基準成果物量及び変換後基準成果物量に変換後基準成果物単位コストを乗じて求まるコストを集約先生産物ＴＢＬで定めている集約先生産物ＩＤ単位で集計し、集計後の変換後基準成果物量を集約コストインデックス基準ＴＢＬの基準成果物量に格納し、集計後の集約先生産物ＩＤのコストを集計後の変換後基準成果物量で除算した値を集約コストインデックス基準ＴＢＬの基準成果物単位コストに格納する。
【０１７２】
ここまでの処理にて、集約先生産物ＩＤ毎にコストインデックス基準の値が求められるので、次に各生産物の実績を、代表的な生産物の開発実績として一元化する処理を生産物コストインデックス統合処理で行う。
先ず、計画基礎情報定義で作成した開発単位コストインデックス基準ＴＢＬから規模変換レート及びコスト構成比率を読み出して、集約コストインデックス基準ＴＢＬの基準成果物量を読み出し、これに規模変換レートを乗じて、当該生産物ＩＤの規模対応する代表生産物の規模の推定値として製品単位量推定値を求める。次に当該生産物の最終製品の寄与分を求めるために、製品単位量推定値×コスト構成比率によって、生産規模を求める。次に、集約コストインデックス基準ＴＢＬの基準成果物量に基準成果物単位コストを乗じてコストを読み出し、これをコスト構成比率で除算してソフトウェア製品全体コスト推定値を求め、これを製品単位量推定値で除算してソフトウェア製品単位量当たりのコストを求める。以上ですべての情報が代表的な生産物のコストインデックス基準に変換されたので、これをシステムＩＤ、開発単位ＩＤ、プロジェクトＩＤの組合せ毎の情報に集約して、結果をプロジェクト別コストインデックス基準ＴＢＬのコストインデックス及び生産規模に格納する。
【０１７３】
（ｂ）「計画基準値更新処理」の説明（図３及び図１１参照）
本実施の形態においては、プロジェクト別集約処理、開発単位別集約処理及び生産実績集約処理の結果として、フェーズ完了時集約実績情報、プロジェクト完了時集約実績情報及びコストインデックス実績情報が管理データベース３に格納されている。
【０１７４】
一般的に、個々のプロジェクトの特性は様々なので、計画基準値を更新する際には、先ず同じ特性のプロジェクトを集めてプロジェクトの実績値を統計的に分析し、次にその上位概念に集約するという手順を踏むことになる。本実施の形態においては、プロジェクトの実績を顧客ドメイン別の実績値に集約して分析し、次にドメイン別の実績値に集約して分析し、最後に全社統一実績値に集約して分析するという手順をたどる。
【０１７５】
ドメインとは、個々のプロジェクトの特性をカテゴライズするものである。個々のドメインの特性は、分析キー区分ＩＤと実績分析キーＩＤとで識別している。これらのＩＤは分析キー区分ＴＢＬ及び実績分析キー区分ＴＢＬに予め保持されている。
【０１７６】
個々のプロジェクトでは積算単位ＩＤに対して分析キー区分ＩＤ及び実績分析キー区分ＩＤを定めており、また、個々のプロジェクトはプロジェクトＴＢＬに顧客コードを保持しているので、利用者は、個々のプロジェクトの実績値を同一の顧客で、同一の分析キー区分ＩＤ及び実績分析キーＩＤを保持する複数のプロジェクトの実績を集めて表計算ソフトウェアや統計分析ツールで読み出して、回帰分析などの様々な統計分析を行うことができる。また、分析対象の情報の抽出には、生産実績集約処理で説明した指標値照会を利用することもできる。利用者はこれらの分析結果に基づいて、管理データベースに保持する生産物生産性基準値ＴＢＬの生産性を更新することにより、計画基準値を更新する。
【図面の簡単な説明】
【０１７７】
【図１】本発明の実施の形態によるソフトウェア開発生産管理システムの概略構成を示す図。
【図２】図１に示されるソフトウェア開発生産管理装置の機能的構成を示す機能ブロック図。
【図３】図１に示されるソフトウェア開発生産管理プログラムによる処理フローを示す図。
【図４】図３に示される処理フローのステップＳ１における処理を示す図。
【図５】図３に示される処理フローのステップＳ２における処理を示す図。
【図６】図３に示される処理フローのステップＳ３における処理を示す図。
【図７】図３に示される処理フローのステップＳ４における処理を示す図。
【図８】図３に示される処理フローのステップＳ５における処理を示す図。
【図９】図３に示される処理フローのステップＳ６における処理を示す図。
【図１０】図３に示される処理フローのステップＳ７における処理を示す図。
【図１１】図３に示される処理フローのステップＳ８における処理を示す図。
【符号の説明】
【０１７８】
１・・・ソフトウェア開発生産管理装置、１１・・・標準計画積算部、１２・・・実行計画作成部、１３・・・実績情報収集部、１４・・・工程完了監視部、１５・・・生産実績評価部、１６・・・個人生産性評価部、２・・・端末、３・・・管理データベース
【図１】
2006039603.tif 000003
【図２】
2006039603.tif 000004
【図３】
2006039603.tif 000005
【図４】
2006039603.tif 000006
【図５】
2006039603.tif 000007
【図６】
2006039603.tif 000008
【図７】
2006039603.tif 000009
【図８】
2006039603.tif 000010
【図９】
2006039603.tif 000011
【図１０】
2006039603.tif 000012
【図１１】
2006039603.tif 000013