JP2006323851A - ソフトウェア開発工数費用の評価装置 - Google Patents

ソフトウェア開発工数費用の評価装置 Download PDF

Info

Publication number
JP2006323851A
JP2006323851A JP2006157706A JP2006157706A JP2006323851A JP 2006323851 A JP2006323851 A JP 2006323851A JP 2006157706 A JP2006157706 A JP 2006157706A JP 2006157706 A JP2006157706 A JP 2006157706A JP 2006323851 A JP2006323851 A JP 2006323851A
Authority
JP
Japan
Prior art keywords
development
software
productivity
man
coefficient
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.)
Withdrawn
Application number
JP2006157706A
Other languages
English (en)
Inventor
Kinfuku Ryu
錦福 劉
Yoshihiro Nakano
義弘 中野
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.)
TEIKOKU DATABANK Ltd
Original Assignee
TEIKOKU DATABANK Ltd
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 TEIKOKU DATABANK Ltd filed Critical TEIKOKU DATABANK Ltd
Priority to JP2006157706A priority Critical patent/JP2006323851A/ja
Publication of JP2006323851A publication Critical patent/JP2006323851A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ソフトウェア開発工数費用の評価を客観的にかつ公正な手法で行い得るソフトウェア開発工数費用の評価装置を提供する。
【解決手段】ソフトウェアの開発言語別の生産性を定量化した生産性値を記憶するテーブルと、生産性値を調整する係数としてシステム規模をファンクションポイント(FP)値の量によって分類して定量化したシステム規模係数、及びシステム環境をその形態によって分類して定量化したステム環境係数を含む各係数を記憶するテーブルとを有するデータベースと、入力画面上で操作手段により指示された変動要素の入力情報と前記データベースを検索して前記変動要素に対応する生産性値及び前記各係数の情報とを取得する手段と、該情報を用いて、当該ソフトウェアの機能規模を表わすFP値に重み付けを行い、工程毎の開発工数/費用の評価情報を生成する手段と、該評価情報を全工程及び工程別に表す画像を生成して表示する手段とを備える。
【選択図】図5

Description

本発明は、コンピュータシステム、ネットワーク等を構成するソフトウェアの開発工数費用の価格(見積り額)を、できるだけ客観的にかつ合理性をもって評価するためのソフトウェア開発工数費用の評価装置及びソフトウェア開発工数費用見積りプログラム並びにソフトウェア開発工数費用見積りプログラムを記憶した記憶媒体に関する。
情報システムが業務や社会の隅々まで浸透し、それに伴う情報システムの投資が膨大になってきており、その中でもソフトウェア開発費が大きな割合を占めている。しかしながら、ソフトウェア開発費(評価)の見積りプロセスが構造化されていないため、ベンダーから提示された見積りは往々にして明確な根拠が示されないまま、発注・システム構築等の業務が遂行されてしまうのが実情である。
従来コンピュータシステムを構成するソフトウェアの開発工数費用を見積る場合、ソフトウェアの規模や作業内容を考慮して開発工数費用を算出することが一般的である。そのため、ソフトウェア開発工数費用の見積りや評価作業は、ソフトウェア開発作業を永年従事したエキスパートと称されるような特定な人の経験と勘に依存することが多い。
ソフトウェア開発工数費用を見積ったり評価する手法として、LOC(Lines of Code:プログラム行数)法が存在するが、1990年代からIT技術の進歩に伴い、システム構成と開発手法の多様化と複雑化が進み、もはやプログラム行数の量と開発工数、費用との相関関係が崩れ、LOC法で培ってきた経験や勘に基づいて見積ることに限界が来ている。そこで、LOC法の代わりにFP(Function Point:機能規模)法が注目されるようになった。FP法はソフトウェアが持つ機能の量を計測する手法であり、図1に示すようにシステム仕様書から規模を定量的に計測してソフトウェア機能規模を計るものである。ソフトウェアの開発工数や費用を算定する際に使用されているFPに対する評価額は、一般的に図2に示すような2次関数となっている。
また、特開2002−222080(特許文献1)のソフトウェア見積りシステムでは、ソフトウェアの機能情報が記憶された機能情報記憶部と、この機能情報記憶部に記憶された機能情報から開発するソフトウェアプロジェクトの機能情報を選択する機能情報選択部と、この機能情報選択部によって選択された機能情報を用いて上記ソフトウェアプロジェクトの機能量を計算する機能量計算部とを設けている。業務分野と規模を開発費用の見積りに利用している。
特開2003−263320(特許文献2)の見積り作業支援システムは、開発対象システムの見積り作業を支援する見積り作業支援システムであり、開発対象システムのソフトウェア規模を見積るための規模見積り条件を入力し、規模見積り条件に基づいてソフトウェア規模を見積るソフトウェア規模見積り手段と、開発工数を見積るための工数見積り条件を入力し、工数見積り条件に基づいて開発工数を見積る開発工数見積り手段と、開発コストを見積るためのコスト見積り条件を入力し、コスト見積り条件に基づいて開発コストを見積る開発コスト見積り手段と、ソフトウェア規模の見積り結果、開発工数の見積り結果、および開発コストの見積り結果を、見積り作業を行う作業者に提示する見積り結果提示手段とを設けている。開発費用の見積りは、工数に対する単金の乗算値に間接費用を加算している。
更に、特開2003−308449(特許文献3)のシステム開発見積支援システムは、開発対象となるシステムの規模の情報であるシステム規模情報を算出するための規模算出情報と、システム開発に要する人員や期間である開発工数情報を算出するための開発工数算出情報とをクライアントマシンから受信する情報受信手段と、前記情報受信手段によって受信した前記規模算出情報及び前記開発工数算出情報を記憶する記憶手段と、前記記憶手段に記憶された前記規模算出情報に基づいてシステム規模情報を算出するための規模算出関数情報と、前記開発工数算出情報に基づいて開発工数情報を算出するための開発工数算出関数情報とを記憶する算出関数情報記憶手段と、前記開発工数情報を算出する見積算出手段と、前記見積算出手段によって算出された開発工数情報と前記規模算出情報とを関連付けて記憶する開発工数情報記憶手段と、前記開発工数情報記憶手段に記憶された前記開発工数情報を前記クライアントマシンに送信する情報送信手段と、これら各手段の動作を制御する処理装置とを備えたシステム開発見積支援システムであって、前記処理装置は、前記見積算出手段に、前記算出関数情報記憶手段に記憶された前記規模算出関数情報と前記記憶手段に記憶された前記規模算出情報とを取得させ、これら情報に基づいてシステム規模情報を算出させ、前記算出関数情報記憶手段に記憶された前記開発工数算出関数情報と、算出された前記システム規模情報と、前記記憶手段に記憶された前記開発工数算出情報とを取得させ、これら情報に基づいて前記開発工数情報を算出させるものである。
特開2002−222080 特開2003−263320 特開2003−308449
上述のように従来の一般的評価方法ではその評価値に客観的で合理的な根拠がなく、果たして適正な評価額であるか否かが問題であり、ソフトウェア開発工数費用の評価を客観的に合理性をもって実行できることを、発注者側及び受注側共に強く望んでいた。FP値を用いた評価法も同様である。
特許文献1に記載のソフトウェア見積りシステムでは、開発分野毎にFP算出に必要な情報を予め準備しておき、それらを呼び出してソフトウェア見積りに利用するようにしており、情報管理が煩雑であるという問題がある。開発言語別生産性は考慮されておらず、生産性調整も不可であり、費用見積りが不完全である。
また、特許文献2に記載の見積り作業支援システムは開発工数の見積り及び開発コストの見積りという一連の見積り作業全体を支援できるようにしているが、開発対象システムのソフトウェア規模を見積もるための規模見積り条件を入力し、規模見積り条件に基づいてソフトウェア規模を見積り、開発工数を見積もるための工数見積り条件を入力し、工数見積り条件に基づいて開発工数を見積り、開発コストを見積もるためのコスト見積り条件を入力し、コスト見積り条件に基づいて開発コストを見積もるようにしているので、開発コストを迅速に得ることができない。開発言語別生産性値は考慮されておらず、生産性調整係数が提供側向けであり、調達側が利用できない問題がある。
特許文献3は調整係数に提供側(開発業者)向けの観点が強く、調達側(ユーザ企業)の観点と異なっている問題がある。例えば提供側の開発言語経験年数、リーダのプロジェクト管理経験、開発支援ツールへの習熟度など、提供側の努力事項を開発工数費用の見積りに反映してしまうと、これは提供側から調達側へのコスト転嫁ということになる。特許文献3に記載のシステム開発見積支援システムでは、開発言語別生産性値は考慮されていない。また、調整係数を主観的に設定し、かつ調整係数の設定が煩雑であり、実務上もっと簡便で、誰からも設定方法を見れば同じ結果が設定されるような客観的な設定方法が求められている。
更に、上記特許文献1乃至3に記載のものは、いずれも新規案件についての見積りであり、改修案件への対応ができない問題がある。実務上システム案件の60〜80%程度が保守案件であると言われ、これに対応できなければビジネス効果が半減してしまう。
本発明は上述のような事情よりなされたものであり、本発明の目的は、ソフトウェア開発工数費用の評価を客観的にかつ公正な手法で、しかも簡易なシステムで合理性をもって行い得るソフトウェア開発工数費用の評価方法、評価値算出装置及びプログラムを提供することにある。即ち、本発明は、多様な環境や種々の開発言語に対応可能であり、多数の企業に利用され、客観的に比較・検証可能であり、実装に左右されずに論理的視点に立ち、関係者の納得と理解が得られ、システム構築の早期段階での計測が可能で、属人性を排除したアプローチが可能なソフトウェア開発工数費用の評価装置及びソフトウェア開発工数費用見積りプログラム並びにソフトウェア開発工数費用見積りプログラムを記憶した記憶媒体を提供することを目的とする。
本発明はソフトウェア開発工数費用の評価装置に関し、本発明の上記目的は、ソフトウェアの機能規模を表わすファンクションポイント値を基本として、評価対象のソフトウェアの開発状況及びシステム環境を考慮した評価要素に基づいて前記ファンクションポイント値に重み付けを行い、前記ソフトウェアの開発工数/費用を評価する評価装置であって、ソフトウェアの一人月当たりの開発言語別の生産性を定量化した生産性値を記憶する開発言語別生産性値テーブルと、前記生産性値を調整する係数として、システム規模を前記ファンクションポイント値の量によって分類して定量化したシステム規模係数、及びシステム環境をその形態によって分類して定量化したステム環境係数を含む各係数を記憶する生産性調整係数テーブルと、ソフトウェアの開発言語とその利用割合、前記システム環境の分類項目、前記システム規模の分類項目、及びシステムエンジニア単価金額を含む情報の入力画面を表示する表示手段と、前記入力画面上で選択された前記開発言語を基に前記開発言語別生産性値テーブルから得た前記ソフトウェアの開発言語に対応する前記生産性値、及び前記入力画面上で入力された前記利用割合に基づいて、ソフトウェア言語を評価要素とした前記ソフトウェアの開発言語別生産性値を算出する手段と、前記入力画面上で選択された前記システム規模の項目及び前記システム環境の項目を含む各項目に対応する係数を前記生産性調整係数テーブルから得て、それらの係数を生産性調整係数として設定する手段と、前記ソフトウェアの基本設計、詳細設計、プログラム設計・製造、ソフトウェアテスト及びシステムテストの各工程における前記開発言語別生産性値及び前記生産性調整係数、並びに、前記各工程における工程別発注率、前記ソフトウェアの発注側と受注側との作業比率を示す作業分担率及び既存システムに対する改修の割合を示す改修率の入力情報に基づいて前記ソフトウェアの生産性係数を算出する手段と、前記各工程における前記ファンクションポイント値を前記生産性係数で除算して前記ソフトウェアの標準開発作業工数を算定する開発工数算定手段と、前記標準開発作業工数、及び前記システムエンジニア単価金額の入力情報に基づいて前記ソフトウェアの開発費用を算定する開発費用算定手段と、前記開発工数算定手段により算定した前記標準開発作業工数、及び前記開発費用算定手段により算定した前記開発費用を前記ソフトウェアの開発工数/費用の評価情報として出力する評価情報出力手段とを備えることによって達成される。
また、本発明の上記目的は、前記評価要素として業者提示価格を含み、前記評価情報出力手段は、前記開発費用算定手段により算定した前記開発費用を評価用基準価格として、その評価用基準価格と前記入力画面上で入力された前記業者提示価格とを対比させた情報を出力すること、前記評価情報出力手段は、前記標準開発作業工数の合計及び前記開発費用の合計を出力すると共に、前記標準開発作業工数及び前記開発費用を前記工程別に出力することによってそれぞれ一層効果的に達成される。
また、本発明の上記目的は、前記生産性調整係数テーブルには、データとプロセスの集中処理及び分散処理を含む処理形態に伴う開発作業負荷を前記処理形態によって分類して定量化した処理負荷係数、ユーザからの品質要求をその要求度合によって分類して定量化した品質要求係数、及び、ドキュメントに係る生産性をドキュメントの種類,数量によって分類して定量化したドキュメント係数が更に記憶されており、前記表示手段は、前記処理負荷係数の分類項目、前記品質要求係数の分類項目及び前記ドキュメント係数の分類項目の各選択メニューを前記入力画面に表示し、前記生産性調整係数を算出する手段は、前記各選択メニューの中から選択された前記処理負荷係数の項目、前記品質要求係数の項目及び前記ドキュメント係数の項目にそれぞれ対応する前記処理負荷係数、前記品質要求係数及び前記ドキュメント係数を前記生産性調整係数テーブルから得て、それらの係数、前記システム規模係数、及び前記システム環境係数に基づいて前記生産性調整係数を算出すること、前記各工程別に設定された標準発注率を記憶する開発工程別標準配分率テーブルを備え、前記生産性係数を算出する手段は、前記工程別発注率が入力されなかった場合は、入力されなかった工程に対応する前記標準発注率を前記開発工程別標準配分率テーブルから得て、該標準発注率を当該工程における前記工程別発注率として前記生産性係数を算出することによって、それぞれ一層効果的に達成される。
また、本発明の上記目的は、前記ソフトウェアが新規開発の場合は、前記改修率を100%として前記ソフトウェアの生産性係数が算出されること、前記評価要素として、前記ソフトウェアの標準開発作業以外に発注者から提供者に委託された作業の工数を示す付帯作業工数を含み、前記開発費用算定手段は、前記標準開発作業工数と前記付帯作業工数との和に前記システムエンジニア単価金額を乗算して前記開発費用を算定すること、前記ファンクションポイント値は、IFPUG(International Function Point Users Group)法、概算法、論理ファイル推定法又はステップ逆算法のいずれかを用いて算出したファンクションポイント値であることによって、それぞれ一層効果的に達成される。
本発明によれば、比較的簡易なシステムであると共に、ソフトウェア開発工数費用の開発や環境を考慮した要素を評価の条件として合理的に入力するようにしているので、ソフトウェア開発工数費用の評価を客観的かつ公正な手法で行い得る。また、本発明によれば、新規案件のみならず、改修案件についてもソフトウェア機能規模の定量化を通して見積り価格の曖昧さを排除でき、評価の合理性、妥当性、透明性を高めることができる。
本発明はFP(ファンクションポイント)をソフトウェア評価の基本とし、ソフトウェアの開発状況やシステム環境を考慮した要素を評価の条件として重み付けを行って評価値演算に利用しており、また、評価のための入力条件が合理的な理由を有しているので、個人的な経験や勘に頼ることなく、客観性のある公正なソフトウェア開発費用の評価を得ることができる。
本発明は新規及び改修のいずれのソフトウェア開発案件を対象としているが、ハードウェア、ネットワーク、ミドルウェアなどの設計、導入作業費などは評価の対象としていない。また、システム開発プロセスのうち、SLCP(Software Life Cycle Process: ソフトウェアを中心としたシステム開発及び取引の明確化を目的に、ソフトウェア又はシステムの構想から運用や保守に至るまでのソフトウェアライフサイクルプロセスを可視化し、共通の枠組みを規定したもので、「共通フレーム」と呼ばれる)開発プロセス(開発プロセス開始の準備〜ソフトウェア受入れ支援)の見積りをFP法見積り評価の対象範囲とする。それ以外の企画や立案などのコンサルタント業務、データ移行や運用支援業務などの付帯作業の見積りは、作業積み上げ方式で評価するが、FP評価の対象としない。更に、本発明では、新規案件と改修案件のいずれも開発費用評価の対象としている。
見積りの前提が基本設計完了前の場合の見積り入力情報は、要件定義書及び伝票、帳票、画面、マスタファイル一覧であり、NESMA提案の概算法で見積りを行う。即ち、マスタファイル一覧を基に要件定義書の内容を参考にし、業務的な観点からILF(Internal Logical File: 計測対象システムである自システムが維持管理している論理マスタ)とEIF(External Interface File: 自システムが参照する他システム(計測対象システムと関連するシステム)の維持管理している論理マスタ)を特定し、FP規模を算出する。なお、NESMAはポーランドのFP法推進団体であり、NESMAがIFPUG法を改良してシステム開発の早期段階に適用できる概算法を提案した。
また、見積りの前提が基本設計完了後の場合の見積り入力情報は、要求仕様書及び基本設計書、画面一覧及び画面仕様、帳票一覧及び帳票仕様、マスタファイル一覧及びマスタファイル仕様、インタフェースファイル一覧及びインタフェースファイル仕様である。そして、見積り方法はIFPUG(International Function Point Users Group)法でファンクションを洗い出し、各ファンクション毎の複雑さを評価し、未調整の機能規模(FP)を算出するようにしている。
企業のビジネス業務の自動化(コンピュータ化)が一巡し、現在システム化案件のうち、新規開発案件(20〜40%)が少なく、殆どは保守案件(60〜80%)である。そのため、保守費用の見積り評価が重要な業務となっている。しかし、FP法(IFPUG法)では、保守案件における規模計測は保守の母体(追加・変更・削除する対象機能)しか計測できないため、同じシステムに対する保守であっても、軽微な保守と作り直しに近い保守などによってかかる手間が大きく異なる。かかる保守の度合いを明確に計って保守費用を見積り、また調達側がそれを評価することが不可欠となっている。このため、本発明では新規案件のみならず、改修案件をも評価の対象としている。
以下に、本発明の実施の形態を、図面を参照して説明する。
図3は本発明の原理を模式的に示しており、所定の手法で求められたFP値に対して生産性モデルから生産性に関する情報を与え、次いで開発工数の人月単価(システムエンジニア単価金額)を入力し、所定演算式に従ってソフトウェア開発工数費用を算出する。生産性モデルに基づく生産性に関する情報をFP値に加味して開発工数等を算出するため、客観的で公正な評価を行い得る。
なお、生産性は、1人月当り“xxFP”のシステムを開発できるという指標を示しており、生産性モデルについては後述するが、(開発言語別生産性値×システム環境係数×システム規模係数×処理負荷係数×品質要求係数×ドキュメント係数×工程別発注率×作業分担率×改修率)のことを示している。
図4は、本発明の評価値算出装置(コンピュータ)の構成例を示しており、コンピュータが有する入力手段より別途算出されたFPが数値で入力されると共に、システム開発状況やシステム環境等を考慮して選定されたシステム環境係数、システム規模係数、処理負荷係数、品質要求係数、ドキュメント係数、工程別発注率、作業分担率、改修率等の条件データ(C〜C)が入力され、さらにシステム評価のための評価用データが評価用データテーブルとして入力される。演算部10は入力されたFP、各条件データ及び評価用データテーブルに基づいて評価値(見積り)を算出して表示若しくは印字出力する。算出された評価値は、FPを基に各条件データ及び評価用データテーブルを加味して算出されているため、客観的で公正な評価値となっている。なお、評価用データテーブルは後述する開発言語別生産性値テーブル、生産性調整係数テーブル、開発工程別標準配分率テーブル、標準テスト項目件数テーブル等のデータである。
図5はコンピュータの詳細な構成例を示しており、全体の制御や演算を実行する演算部(CPU)10には動作プログラムを格納したROM102と、各種データ入力が行われる入力手段110と、開発言語別生産性値テーブル記憶手段1031、生産性調整係数テーブル記憶手段1032、開発工程別配分率テーブル記憶手段1033、標準テスト項目件数テーブル記憶手段1034及びシステムエンジニア単価金額(SE単金)テーブル記憶手段1035を内部に含むRAM103と、データ等を表示する表示手段120と、データ等を印字出力する印刷手段121とから構成されている。
開発言語別生産性値テーブル記憶手段1031には、利用される言語毎に設定された一人月当たりの生産性値が記憶される。生産性調整係数テーブル記憶手段1032には、後述するシステム規模係数、システム環境係数、処理負荷係数、品質要求係数及びドキュメント係数のそれぞれの入力値に対応する生産値が記憶される。開発工程別配分率テーブル記憶手段1033には、基本設計、詳細設計、プログラム設計・製造、ソフトウェアテスト及びシステムテストの各工程について一般的経験則に基づいた発注率が記憶される。標準テスト項目件数テーブル記憶手段1034には、ソフトウェアテスト及びシステムテストの各工程において行われるテスト項目件数について一般的経験則に基づく件数が記憶される。
なお、一般的に経験則に基づいた発注率は、それぞれ16%、20%、36%、15%及び13%であるが、ソフトウェアの改修状況に基づいて入力手段110から入力されても構わない。また、一般的に経験則に基づいたテスト項目件数は通常、ソフトウェアテストの基準項目数がFP値×2.0件、システムテストの基準項目数がFP値×0.5件であるが、そのソフトウェア分野によっても異なる場合があるため、後述するソフトウェアテスト項目件数の適用にはそれぞれR5及びR6の代数を用いて表現している。また、これらのテーブル記憶手段は、演算部10が制御プログラムの指令を受けて予め作成される。もちろん、入力部110を動作させてこれらのテーブルに記憶されたテーブル値を入力された値に変化させることも可能である。
このような構成において、その動作を図6のフローチャートを参照して説明する。なお、以下の各ステップは、演算部10がROM102に記憶された制御プログラムの指令を受けて動作する。
先ず別途求められたFPが入力手段110より入力され(ステップS1)、次いで対象とするシステムが使用する言語に基づいて、言語別生産性値入力手段110より言語別生産性値、開発言語別生産性値が入力されると共に(ステップS2)、入力手段110より生産性調整係数が入力される(ステップS4)。生産性調整係数を算出するパラメータとして本発明では、生産性調整係数としてのシステムのプラットフォームを示すシステム環境係数、評価対象アプリケーションの規模を示すシステム規模係数、プロセスの形態(集中、分散)を示す処理負荷係数、システムの品質要求の度合い(レビュー、テスト、評価作業)を示す品質要求係数、作成するドキュメントの種類や数量を示すドキュメント係数が入力されて算出されても構わない。生産成長性係数のこれらパラメータからの算出の詳細は後述する。
さらに、開発プロセス(工程)の一部を自製したり、1案件を複数段階に分割して(工程別)発注したり、1案件を複数のベンダーに分割して(工程別)発注したりする場合の発注比率を示す工程別発注率(ステップS4A)、発注側(調達側)と受注側(提供側)との作業比率を示す作業分担率(ステップS4B)、機能改造の場合の改修率(ステップS4C)が設定され、入力される。なお、これらの入力順序は任意でもよい。
上述のようにして演算のための条件とそのデータが入力されると、演算部101はROM102内に格納されたプログラムに従って演算を実行し(ステップS5)、その後に入力手段110より付帯作業工数が入力され(ステップS6)、所定の演算が実行される(ステップS7)。そして、入力手段110よりシステムエンジニア単価金額が入力され(ステップS8)、所定の演算を実行して終了する(ステップS9)。これにより、ソフトウェア開発工数費用の評価を数値で得ることができ、表示手段120で結果を見ることができると共に、印刷手段121で印字することができる。
なお、ステップS4Aの工程別発注率が入力されない場合もある。この場合、開発工程別標準配分率テーブル記憶手段1033に記憶された標準配分率(標準発注率)のデータを読み出して、工程別発注率として演算が行われる。
上述の例ではデータ入力毎に演算しているが、図7に示すように全てのデータを入力してから演算を行うようにしても良い。この場合、FP、開発言語別生産性値、生産性調整係数、工程別発注率、作業分担率、改修率、付帯作業工数及びSE単金の入力の順番は任意である。
図8は、本発明による新規開発案件及び改修案件の開発規模、工数、費用のコンピュータでの算出方法の流れを詳細に示しており、先ずソフトウェア規模(FP)の算出を行ってデータ入力を行うが、本発明ではIFPUG法、概算法、論理ファイル推定法又はステップ逆算法のいずれかを使用する。IFPUG法は、ILF(Internal Logical File)+EIF(External Interface File)+EI(External Input)+EO(External Output)+EQ(External Inquiry)で各機能の重み付けがあり、VAFの調整はなしとなっており、概算法は、ILF+EIF+EI+EO+EQで各機能の重み付けはなく、VAFの調整もなしとなっている。VAF(Value Adjusted Factor)とは、IFPUG法で提示されている調整要因(生産性調整係数)である。また、論理ファイル推定法はILF数×35+EIF数×15であり、ステップ逆算法は言語別ステップ数÷言語別FP当りステップ数である。
上述のようにして計算されたFPが演算部10に入力されると、開発言語別生産性値及び生産性係数の入力を行う。つまり、開発言語別生産性値、生産性調整係数(システム規模係数、システム環境係数、処理負荷係数、品質要求係数、ドキュメント係数)、工程別発注率、作業分担率及び改修率の入力を行う。ソフトウェア言語としては、COBOL85、Microfocus COBOL、C、C++、Visual C++、JAVA(登録商標)/JAVA Script、ABAP/4、Oracle Developer/2000、Access、EXCEL、PL/SQL等があるが、ソフトウェア言語によって人月生産性が異なる。そのため使用言語に対する人月生産性を予め開発言語別生産性値テーブル1031に設定しておき、当該開発システムの使用言語に基づいてデータを読み出して人月生産性を入力する。例えばCOBOL85やCは人月生産性が低く、Visual Basic, C++などは人月生産性が高い。なお、同一ソフトウェアの開発に複数の言語を採用した場合、それぞれの割合を算出して全体の開発言語別生産性値を合算する。
また、生産性調整係数内のシステム環境係数はPCスタンドアロン形態、ホスト集中形態、単一プラットフォーム構成(ALL UNIX(登録商標)又はALL Windows(登録商標))、複式プラットフォーム構成(UNIX、Windows、LINUX)によって生産性が相違するため、システム環境に基づいた係数を設定する。システム規模係数はFPの値によって判断し、規模の大小によって係数値を変える。処理負荷係数はプロセスの形態によって判断し、単一部門/拠点で少人数利用の場合(例えばローカル系や部門内小規模システム)、単一部門/拠点で多人数利用の場合(例えばプロセス集中処理、ホスト系)、複数部門/拠点で多人数利用の場合(例えばプロセス分散処理、基幹系)で生産性が相違するため、各場合によって係数値を変える。品質要求係数はユーザからの品質要求が特にない場合(動作確認程度)、ユーザからの品質要求が普通である場合(マスタ状態確認)、ユーザからの品質要求が厳しい場合(大規模トランザクション/データ性能確認)であるかによって生産性が相違するため、各場合によって係数値を変える。ドキュメント係数に関しては、例えばSLCP例示ドキュメントのうち作成されたものが50%未満である場合、SLCP例示ドキュメントのうち作成されるものが51%〜100%程度である場合、SLCP例示ドキュメントのうち作成されるものが100%を超える場合で生産性が相違するため、各場合によって係数値を変える。なお、生産性調整係数は生産性調整係数テーブル1032に格納されている。
工程別発注率は、開発プロセスの一部を自製する場合、1案件を複数段階に分割して発注する場合、1案件を複数の提供者に分割して発注する場合等で生産性が相違するため、開発プロセス全体を一まとめにして提供者に発注する場合の比率を100%とし、各場合の比率を入力する。作業分担率は、開発プロセスの一部作業を自製したり、1案件を複数の提供者に分割して発注する場合があり、このような場合、双方の作業分担の度合い(原則は工数ベース)を勘案して作業分担率を設定することが有効である。開発プロセスの全ての作業を提供者に発注する場合(完全請負)の作業分担率を100%とする。改修は既存システムに対して機能を追加、変更、削除することをいい、改修案件の見積り評価は、既存母体システム(対象システム)を新規で開発した場合の改修率を100%とし、既存母体システムに対する追加、変更、削除の割合を定量化して、改修案件工数の見積りを評価する。改修規模は下記(1)式で定義される。

改修規模=改修母体規模×改修率 …(1)

開発言語別生産性値及び生産性調整係数並びに工程別発注率、作業分担率、改修率が入力された後、演算部10はこれら入力されたFP、開発言語別生産性値及び生産性調整係数並びに工程別発注率、作業分担率、改修率に対して、下記(2)式に従って標準開発作業工数Aの演算を行う。

標準開発作業工数A= FP÷生産性係数
=FP÷(開発言語別生産性値×生産性調整係数×工程別発注率
×作業分担率×改修率)
=FP÷{開発言語別生産性値×システム規模係数k1×システム
環境係数k2×処理負荷係数k3×品質要求係数k4×
ドキュメント係数k5×工程別発注率×作業分担率×改修率}
…(2)
なお、k1〜k5は図15に示す生産性調整テーブル記憶手段1032に記憶された調整値である。入力手段110からの入力に基づいて、各調整値が適用されることを表す。

その後、入力手段110より付帯作業工数を入力し、下記(3)式の演算を行う。「付帯作業」とは、上記標準開発作業以外に発注者から提供者に委託した作業を指し、これらの作業を遂行するために発生する費用を「付帯作業工数」と定義する。そして、下記(3)式を演算する。

開発工数B=標準開発作業工数A+付帯作業工数 …(3)

その後、更に入力手段110よりシステムエンジニア単価金額テーブル記憶手段1035からデータを読み出してシステムエンジニア単価金額を入力し、下記(4)式の演算を行う。これにより、ソフトウェア開発費用(C=開発工数×SE単金)が得られる。

開発費用C=開発工数B×システムエンジニア単価金額 …(4)

即ち、ソフトウェア開発費用の演算式は下記(5)式となる。

開発費用={機能規模FP÷(開発言語別生産性値×生産性調整係数×工程別発注率
×作業分担率×改修率)+付帯作業工数}×システムエンジニア単価金額
…(5)

一方、開発言語別生産性値は例えば下記(6)式によって計算され、予め開発言語別生産性値テーブル記憶手段1031に格納されている。この場合、各開発言語別の生産性(7.5FP/人月〜40FP/人月)が開発言語別生産性値テーブル記憶手段1031に格納され、利用者が開発言語を選択し、それぞれの利用割合(開発する機能の多さ)を入力することによって言語の生産性が自動的に付与される。

開発言語別生産性値=(開発言語#1の生産性値×利用割合m1)
+(開発言語#2の生産性値×利用割合m2)
+(開発言語#3の生産性値×利用割合m3)
+(開発言語#4の生産性値×利用割合m4)
+(開発言語#5の生産性値×利用割合m5)
…(6)

また、生産性調整係数は下記(7)式に基づいて計算される。なお、各係数は0.80〜1.20の範囲で設定され、表示手段120の入力画面を参照して所定の調整係数が選択入力されることによって、その値が一意的に付与される。

生産性調整係数=システム規模係数k1×システム環境係数k2×
処理負荷係数k3×品質要求係数k4×
ドキュメント係数k5 …(7)

なお、図6では開発言語別生産性値及び生産性調整係数等を入力後に(2)式の演算、付帯作業工数の入力後に(3)式の演算、システムエンジニア単価金額の入力後に(4)式の演算を行うようになっているが、図7に示すように開発言語別生産性値、生産性調整係数等、付帯作業工数及びシステムエンジニア単価金額の入力後に続けて(2)〜(4)式を連続的に演算するようにしても良い。

以下、本発明の具体例を説明する。
本発明はソフトウェア開発(改修)案件を対象とし、ハードウェア、ネットワーク、ミドルウェアなどの設計、導入作業費などは評価の対象とせず、システム開発プロセスのうち、SLCP開発プロセス(開発プロセス開始の準備〜ソフトウェア受入れ支援)の見積りをFP法見積り評価の対象範囲としている。それ以外の企画や立案などのコンサルタント業務、データ移行や運用支援業務などの付帯作業の見積りは「作業積み上げ方式」で評価するが、FP評価の対象としない。本発明は、新規案件と改修案件を対象とする点に特徴がある。
FP法はソフトウェア規模を測定するための手法(尺度)の1つであり、ソフトウェアのデータや機能の数と複雑度を計測することで、そのソフトウェアの機能規模(FP値)を算出する。図9は、本発明で採用するFP法の概略を示している。
ファンクションの種別はILF、EIF、EI、EO、EQであり、ILFはユーザが識別でき自システム(計測対象システム)が維持管理している論理データのまとまりであり、EIFはユーザが識別でき他システム(計測対象システムと関連するシステム)が維持管理し、自システムが参照している論理データのまとまりである。また、EIはシステム境界外からデータを投入して、ILFを維持管理(登録、更新、削除)する機能であり、EOはILFやEIFを参照してユーザや他システムへ情報を提供する機能で、情報提供に計算式や導出データが含まれ、EQはILFやEIFを参照してユーザや他システムへ情報を提供する機能で、情報提供に計算式や導出データは含まれていない。
ソフトウェアの機能規模がそのソフトウェア開発工数、費用と強い相関が見られることから、FP値を使用して開発工数、費用を見積もることが考えられる。例えば、1人当り10FPの生産性で1000FPのシステムを開発するのに100人月かかる。更に、1人月のSE単金が90万円の場合、開発費用が9000万円となる。発注側が独自でFP値を計測して開発工数費用を算出し、提供者から徴収した見積りの妥当性を評価するものとし、本発明では上記FPを用いて、前記(5)式を使ってシステム開発費を見積もる。
かかるシステム開発費見積りの精度を上げるため、FP値を正確に計測する必要がある。仮に提供側からFPを取得した場合、提供者が提示したFP値が正しいか否か、発注側が自ら検証しなければならない。
図10は、開発規模(FP)算出のための入力情報と算出方法を示している。即ち、見積りの前提として企画立案完了#1、企画立案完了#2、要件定義完了、基本設計完了があり、企画立案完了#1はステップ逆算法で見積もるために既存システム言語別プログラム行数、ソースコード及びシステム企画内容を入力する。企画立案完了#2は論理ファイル推定法で見積るためにER一覧、マスタデータ一覧及びシステム企画内容を入力し、要件定義完了は概算法で見積もるために機能要件全体概要、現行業務の流れ、システム化計画、システム機能概要及び機能・画面帳票・DB一覧を入力し、基本設計完了はIFPUG法で見積もるために機能要件、現行業務の流れ、システム化計画、システム機能概要、システム機能詳細及び機能・画面帳票・DB一覧とレイアウトを入力する。
本発明ではFP法を活用したシステム開発費見積り評価を行うが、本発明では特に下記4点に留意している。
(1)可能な限りIFPUG法に準拠して計測する。
FP法はIFPUGの他にも、複数の手法が存在する。これらは概ね同様なコンセプ
トに基づいているが、それぞれの着眼点が違うため、計測されたFP値の意味も異な
ってくる。本発明では、FPの計測方法やその粒度は、「IFPUG法(国際標準規
格ISO20926:2003:IFPUG法)」に準拠する。IFPUG法以外の
手法を適用して算出したFP値とIFPUG法のFP値との関連を明確にする必要が
ある。
なお、「国際標準規格ISO20926:2003:IFPUG法」で「機能要件
と品質技術要件と分離する」との解釈に従い、本発明では、FPは未調整FPとす
る。即ち、ータファンクションとトランザクションファンクションの規模をFPと
し、14項目の般システム特性を用いた調整は行わない。そのシステムの品質、技
術要件はシステム特性調整係数で評価し、システム開発工数費用に反映される。
(2)複数手法の併用を推奨する。
IFPUG法を適用してFPを計測する場合、システムの基本設計が完了し、かつ
計測で必要な入力情報が揃っていることを前提とする。しかし、実務ではもっと早い
時期に見積りが行われることがよくある。例えば要件定義完了時点での費用の推定な
どである。このような早期段階でFPを計測する場合、計測者が入手できる入力情報
(仕様書)の種類や詳細度が限られているため、いくつかの簡易計測法が考案されて
いる。ここで強調したいことは、(a)可能な限りIFPUG法に近付ける方法を適
用すること、(b)簡易法を利用した場合、可能な限り複数の手法を実施し、検証を
行うことである。
(3)見積り評価の目的はコスト適正化である。
本発明で提案しているシステム開発費用の見積り評価方法は、開発プロセスの標準
業を対象としている。実務でのシステム開発案件は、開発プロセスの一部しか発注
しないか、又は開発プロセス以外の作業も発注している場合がよく見受けられるこ
のことを念頭において、システム開発費用の見積り評価に臨まなければならない。本
発明のシステム開発作業が受注側と発注側との協同作業であって、両者が同じゴール
を目指さなければ上手くいかないことに着眼し、見積り評価業務は提供者の開発費用
見積りを安く叩くことではなく、双方で確認、納得できる適性コストに対する客観的
な根拠(目安)を示すことに立脚する。
(4)可能な限り定量化を図る。
見積り評価作業の客観性を保つには、評価の根拠を可能な限り定量化する必要があ
る。特に改修案件について、世間ではシステム開発費用の60%以上をシステム改修
に充てているにも拘わらず、今まで有効な見積り評価方法が提唱されていない。この
実状を勘案すると、改修案件の見積評価に注力しなければ、情報システム部門が経営
者や利用部門への説明義務が果たせない。従って、本発明では改修度合いを定量化し
、改修案件の見積評価にも確実に対応している。
ここにおいて、システム開発工数、費用の見積り評価で最も重要なことは、1)精度の高いFP値を得ること、2)精度の高い生産性係数を入力すること、3)明確で双方(発注側、受注側)が認識、合意できるスコープ(作業範囲)であること、4)改修案件の改修率の定量化が可能なこと、である。これら4つの要素に関して弛まぬ努力で精度の向上を念頭におき、独自の実績データを蓄積し、見積り評価で適用する各種係数の精度向上を追求する必要がある。本発明はかかる要求を満たすものである。
システム開発費用見積りの結果として、開発費用が算出される。上記(5)式で算出された開発費用は発注者が自ら見積もったもので、いわゆる評価用標準価格的なものである。これに対して、受注者から取得した見積りは業者提示価格と定義され、評価用標準価格と業者提示価格とを比較して差異の有無を検証するが、この比較行為が見積りの評価ということになる。
図11はシステム開発費用の構成を示しており、システム開発費用にはハードウェア費用、ミドルウェア及びシステム開発費用が含まれるが、本発明ではそのうちのシステム開発費用内のソフトウェア開発費用のみを評価の対象とする。本発明におけるソフトウェア開発はSLCPの開発プロセスを指し、開発プロセスの範囲は図12に示すようになっている。即ち、開発プロセスの範囲としては企画プロセス、開発プロセス、運用プロセス及び保守プロセスがあり、本発明はそのうちの開発プロセスを対象とし、プロセス開始の準備、システム要求分析、システム方式設計、業務詳細設計、ソフトウェア要求分析、ソフトウェア方式設計、ソフトウェア詳細設計、ソフトウェアコード作成及びテスト、ソフトウェア結合、ソフトウェア適合性確認テスト、システム結合、システム適合性確認テスト、ソフトウェア導入、ソフトウェア受入れ支援について評価する。なお、図11における安定稼動システムの運営と維持管理業務は、月間基準勤務時間が160h/月(150h/月〜170h/月)であり、開発工数は開発プロセス工程作業を対象とし、付帯作業は開発プロセス工程以外の作業を対象としている。
また、本発明では開発工程を基本設計、詳細設計、プログラム設計・製造、ソフトウェアテスト、システムテストの5工程に分け、それぞれのSLCPアクティビティとの対応関係は図13に示すようになっている。即ち、基本設計としてプロセス開始の準備、システム要求分析、システム方式設計、ソフトウェア要求分析及びソフトウェア方式設計があり、詳細設計として業務詳細設計及びソフトウェア詳細設計がある。プログラム設計・製造はソフトウェアコード作成及びテストであり、ソフトウェアテストはソフトウェア結合及びソフトウェア適合性確認テストであり、システムテストとしてシステム結合、システム適合性確認テスト、ソフトウェア導入及びソフトウェア受入れ支援がある。
ここにおいて、システム開発作業の中で、実装工程(詳細設計〜ソフトウェアテスト)が全開発工数の60%以上を占めている。開発言語(コード自動生成などの中下流開発支援ツールを含む)の選定が実装工程の作業工数、費用に大きな影響を与えている。従って、システム開発の生産性を設定する際には、開発言語の生産性に留意する必要がある。開発言語別生産性値の例を図14に示すが、本例は1人月当り生産性の前提として、1人月を160時間とし、SLCP開発プロセスを作業範囲としている。なお、一部の工程しか発注しない場合、その割合を勘案して生産性を調整する必要がある。
前述の開発言語別生産性値以外に、開発生産性に影響を与える要素は多い。例えば対象システムの固有属性(規模、システム構成など)、発注側の要求度合い(品質要求度合い、ドキュメント要求度合いなど)、受注側の業務遂行能力、成熟度(類似システム構築経験、開発者熟練度、プロジェクト管理成熟度など)、数十若しくは百以上の要素が挙げられる。本発明では見積り評価の精度を保ちながら、業務の簡便性、迅速性を失わないように各種コスト誘因の中から、システム開発工数に影響の大きい非機能要件(品質要件、技術要件)、並びに調達側(発注側)が特に重視すべく要素を中心に、コストドライバーを設定している。
以下に、各システム特性が開発生産性に与える影響とその評価方法を示す。本発明では、下記5システムに係数を与えて評価を正確に行うようにしている。
(1)システム規模:大規模開発の場合、業務間の複雑度が増幅し、利害関係も増えるた
め、コミュニケーションオーバヘッドが発生しやすく、開発生産性が低下する。
(2)システム環境:プラットフォームが異なれば利用するOS、ミドルウェア、DBM
Sなども異なり、それに伴うシステム設計、構築の負荷が変化し、開発生産性も変
わる。
(3)処理負荷:データとプロセスの集中、分散によって、トランザクション制御、負荷
分散などシステム設計、構築の作業負荷が異なり、開発生産性が変動する。
(4)品質要求:社内のデータ確認と社外サービス課金と、品質への要求度合いが異なり
、それに伴い、システム設計観点、レビュー/テスト/品質評価への取込みによっ
て開発生産性が変動する。
(5)ドキュメント:大規模開発の場合、本稼動後の運用保守を重視する場合など、作成
するドキュメントのレベルや量が変わり、開発生産性に影響を与える。

上述のようなシステム特性に基づく生産性調整係数の例を図15に示す。システム規模係数は計測対象アプリケーションによって分類し、システム環境係数はシステムのプラットフォーム(システム環境構成)によって分類し、処理負荷係数はプロセスの形態(集中、分散)によって分類し、品質要求係数はシステムの品質要求度合い(レビュー、テスト、品質評価作業)によって分類し、ドキュメント係数は作成するドキュメントの種類、数量によって分類する。なお、係数の大小関係は、K11>K12>K13>K14>K15であり、K21>K22>K23>K24であり、K31>K32>K33であり、K41>K42>K43であり、K51>K52>K53である。
開発プロセス全体を一まとめにして提供側に発注する場合、そのときの工程別発注率を100%とする。開発プロセスの一部を自製したり、1案件を複数段階に分割して発注したり、1案件を複数の提供者に分割して発注したりするケースが考えられる。このような場合、図16に示すような工程別発注率を参考にして、工程別発注率を設定する必要がある。また、開発プロセスの全ての作業を提供側に発注する場合(完全請負型)、そのときの作業分担率を100%とする。開発プロセスの一部作業を自製したり、1案件を複数の提供者に分割して発注したりするケースが考えられる。このような場合、双方の作業分担の度合い(原則は工数ペース)を勘案して、図17に示すような作業分担率を設定する必要がある。例えば、基本設計全作業を15人月と仮定し、そのうちの運用設計作業(1.5人月)を調達側が担当し、残りの13.5人月を提供側が担うとする。この場合、基本設計工程の提供側作業分担率を

13.5人月÷(1.5人月+13.5人月)×100%=90% …(8)

で、90%とする。ただし、下記のような元々発注側が担うべき役割は、ここでの作業分担率の対象としない。
1)仕様提示:要求事項のまとめ、提示など
2)調達管理:RFP作成、見積り評価、業者選定、契約の締結と管理、契約終了に伴
う事務処理など
3)検収作業:仕様、設計、実装結果のレビュー、承認、検証など

本発明では、改修案件の見積りを評価する場合、以下のようにしている。
1)改修率が100%を超えた場合は、改修率「100%」とする。
2)ソフトウェア改修個所とテスト範囲が大きく異なる場合があるため、改修率を開発
改修率とテスト改修率とに分ける。そして、開発改修率は基本設計からプログラミ
ング工程に適用し、テスト改修率はソフトウェアテスト工程(ソフトウェアテスト
改修率)とシステムテスト工程(システムテスト改修率)に適用する。

改修率の算出方法はステップ法を基本とし、下記(9)式で基本設計〜プログラミング工程に適用する。行数(ステップ数)はコメント行を含む物理ステップ数であり、母体(対象システム)行数のR1%は変更箇所とのインタフェースの考え方から計上する。また、改変行数は既存システムに対する「追加、変更、削除」の行数であり、外付け追加機能とは既存システムに手を入れることなく、別枠で追加する機能である。なお、定数R1%、R3%及びR4%は経験値であり、通常は6%を利用するが開発種類等によって変更することも構わない。また、改修前母体行数とは、改修対象システム(改修対象ソフトウェア)の既存行数を差し、既存システムの改変行数とは改修により改変が行われた行数を差し、改修後母体行数とは改修が行われた後の対象システム(対象ソフトウェア)の行数を差す。また、R2は改変行数にソフトウェア改修後の改変行数に対する確認作業で行われる確認倍率を示し、通常は改修前・改修後の確認を行うために2の値を適用する。

開発改修率={(改修前母体行数×R1%)+(既存システムの改変行数×R2)
+(外付け追加機能行数)}÷(改修後母体行数)
…(9)
なお、改修前母体行数×R1%を第一作業行数、既存システムの改変行数×R2を第二作業行数、第一作業行数、既存システムの改変行数及び外付け追加機能行数の和を開発作業行数と定義する。

また、ステップ方式で計測困難なケースの改修率算出方法は、下記(10)式に従う。(10)式において、DETはデータ項目種別(Data Element Type)を意味している。

開発改修率={(改修前母体DET数×R3%)+(追加・変更・削除DET数)}
÷(改修後母体DET数) …(10)

なお、改修前母体DET数×R3%を改修前作業DET数、追加・変更・削除DET数を改変DET数、改修前作業DET数と改変DET数の和を開発作業DET数と定義する。

更に、ソフトウェアテストとシステムテスト工程に適用するテスト工程での改修率の算出方法は、下記(11)式に拠る。この場合、新規開発時のテスト項目数実績データが記録されていない場合、ソフトウェアテストの基準項目数=FP値×R5件、システムテストの基準項目数=FP値×R6件の基準値を適用し、テスト改修率の提示がない場合、開発改修率と同等であるとみなす。なお、ソフトウェアテストの基準項目数及びシステムテストの基準項目数について、入力手段110から件数入力を受け付けるようにしても構わない。入力が行われない場合には、標準テスト項目件数テーブル記憶手段1034から読み出されて演算に利用される。

テスト改修率={(改修前母体・新規開発時のテスト項目数×R4%)+(改修時
のテスト項目数)}÷(改修後母体・新規開発時のテスト項目数)
…(11)

なお、改修前母体・新規開発時のテスト項目数×R4%を第一テスト作業行数、第一テスト作業行数と改修時のテスト項目数との和を全体テスト作業行数と定義する。
以下に代表的な「付帯作業」を例示する。
(1)運用テスト関連作業:運用テストとは、利用者が主体とする本稼働環境でのソフト
ウェア、システム、業務全体を確認するテストである。これに付随する環境構築、
利用者支援などの作業を付帯作業とする。
(2)移行関連作業:旧運用形態から新運用形態への切替えに伴う業務、システム、デー
タの移行作業が付帯作業とする。(ただし、移行用ツールの開発は標準開発作業の
範疇とし、FPで評価する方式を採用する。)
(3)運用関連作業:本稼働に向けての利用者教育訓練及び本稼働作業(運用監視、稼働
情報収集、改善、評価など)を付帯作業とする。
(4)開発支援作業:開発標準化(作業手順、テンプレート、基準)の策定と推進、品質
保証(契約、プロセス、要求事項、文書化の検証と妥当性確認)、リソース管理な
どを付帯作業とする。
(5)プロジェクト管理:進捗管理、問題管理、変更管理などを付帯作業とする。なお、
本発明では、付帯作業費の見積り評価はWBS精査方式で行う。

本発明ではソフトウェア開発技術者を図18に示すような4区分に分け、それぞれの役割と担当を決めている。即ち、開発技術者1は基本設計やシステムテストを主に担当し、システムの構成イメージ策定の中心的役割、システム開発計画の全体構想、プロジェクト体制の構築、後工程のプロジェクト管理指標決定等の役割を担っている。開発技術者2は基本設計、詳細設計、ソフトウェアテストやシステムテストを主に担当し、業務のモデル化、情報システム化の計画を策定したり、システムの機能設計及びシステムの具体化の中心的役割等を担っている。また、開発技術者3(設計)は詳細設計やソフトウェアテストを主に担当し、システムの基本設計を基にした詳細設計作成の中心的役割を担っており、開発技術者4(製造)はプログラム設計・製造を主に担当し、プログラミングの中心的役割、プログラムモジュールやプロセス毎のテストを担っている。
図19は本発明の入力画面の一例を示し、図20は本発明の結果を示す表示画面の一例である。本発明においては新規案件、改修案件のいずれも評価できるようになっており、新規案件と改修案件の唯一の違いは、図20における項番4)の改修率にある。新規案件の場合は改修率が100%になり、改修案件の場合は改修率が100%未満となっている。
図19の入力画面では、提供側から提示された見積りが高いか安いかを評価する業務を想定しているので、提供側見積り費用も入力すべき項目の1つとなっている。ウェブ画面をスクロールして入力作業を行う。「提供側見積り費用」の最後尾の「付帯作業工数」欄に付帯作業の数値を入力する。
本発明では、算出した機能規模(FP)と開発費を用いて図21のように見積りを評価する。即ち、規模が過大や過小の場合、その提供者が開発範囲を過不足に捉えていないか否か、FP明細を精査し、逆に費用が過大や過小の場合、その提供者が見積もった作業内容に過不足はないか否か、作業内容を精査する。図21では、C案件及びE案件が適性価格であることを示している。
図20の結果表示画面における「開発工数費用評価」欄は、ユーザ企業がFP法で算出した開発費用見積りと提供側から取得した開発費用見積りとを対比させ、提供側見積りが高過ぎないか又は安過ぎないかを判断するための情報が表示される。
本発明はインターネットを利用したネットワークにおいても利用可能である。
本発明によれば、FPを基本にしてシステムの開発状況や環境を考慮した要素を条件として評価しているので、ソフトウェア開発工数費用の評価を客観的にかつ公正に行うことができ、そのためソフトウェア市場(入札や販売等)において見積の曖昧さを確実に排除することができ、ソフトウェア産業の活性化を図ることができる。
FPの求め方を示す図である。 FPと評価額との関係例を示す特性図である。 本発明の原理を示す模式図である。 本発明の評価値算出装置を示すブロック構成図である。 演算部の構成例を示すブロック図である。 本発明の動作例を示すフローチャートである。 本発明の他の動作例を示すフローチャートである。 本発明による新規開発及び改修案件の開発規模、工数、費用の算出方法を示す図である。 FP法の概略を示す図である。 開発規模算出のための入力情報と算出方法を示す図である。 システム開発費用の構成を示す図である。 開発プロセスの範囲を示す図である。 工程区分とSLCPとの比較を示す図である。 開発言語別生産性値の一例を示す図である。 開発生産性調整係数の例を示す図である。 工程配分比率の例を示す図である。 作業分担比率の例を示す図である。 ソフトウェア開発技術者の職種区分と役割を示す図である。 本発明の入力画面の一例を示す図である。 本発明の結果を示す表示画面の一例を示す図である。 FPを活用した参考価格の検証例を示す図である。
符号の説明
10 演算部(CPU)
102 ROM
103 RAM
110 入力手段
120 表示手段
121 印刷手段
1031 開発言語別生産性値テーブル記憶手段
1032 生産性調整係数テーブル記憶手段
1033 開発工程別標準配分率テーブル記憶手段
1034 標準テスト項目件数テーブル記憶手段
1035 システムエンジニア単価金額テーブル記憶手段

Claims (8)

  1. ソフトウェアの機能規模を表わすファンクションポイント値を基本として、評価対象のソフトウェアの開発状況及びシステム環境を考慮した評価要素に基づいて前記ファンクションポイント値に重み付けを行い、前記ソフトウェアの開発工数/費用を評価する評価装置であって、
    ソフトウェアの一人月当たりの開発言語別の生産性を定量化した生産性値を記憶する開発言語別生産性値テーブルと、
    前記生産性値を調整する係数として、システム規模を前記ファンクションポイント値の量によって分類して定量化したシステム規模係数、及びシステム環境をその形態によって分類して定量化したステム環境係数を含む各係数を記憶する生産性調整係数テーブルと、
    ソフトウェアの開発言語とその利用割合、前記システム環境の分類項目、前記システム規模の分類項目、及びシステムエンジニア単価金額を含む情報の入力画面を表示する表示手段と、
    前記入力画面上で選択された前記開発言語を基に前記開発言語別生産性値テーブルから得た前記ソフトウェアの開発言語に対応する前記生産性値、及び前記入力画面上で入力された前記利用割合に基づいて、ソフトウェア言語を評価要素とした前記ソフトウェアの開発言語別生産性値を算出する手段と、
    前記入力画面上で選択された前記システム規模の項目及び前記システム環境の項目を含む各項目に対応する係数を前記生産性調整係数テーブルから得て、それらの係数を生産性調整係数として設定する手段と、
    前記ソフトウェアの基本設計、詳細設計、プログラム設計・製造、ソフトウェアテスト及びシステムテストの各工程における前記開発言語別生産性値及び前記生産性調整係数、並びに、前記各工程における工程別発注率、前記ソフトウェアの発注側と受注側との作業比率を示す作業分担率及び既存システムに対する改修の割合を示す改修率の入力情報に基づいて前記ソフトウェアの生産性係数を算出する手段と、
    前記各工程における前記ファンクションポイント値を前記生産性係数で除算して前記ソフトウェアの標準開発作業工数を算定する開発工数算定手段と、
    前記標準開発作業工数、及び前記システムエンジニア単価金額の入力情報に基づいて前記ソフトウェアの開発費用を算定する開発費用算定手段と、
    前記開発工数算定手段により算定した前記標準開発作業工数、及び前記開発費用算定手段により算定した前記開発費用を前記ソフトウェアの開発工数/費用の評価情報として出力する評価情報出力手段とを備えたことを特徴とするソフトウェア開発工数費用の評価装置。
  2. 前記評価要素として業者提示価格を含み、
    前記評価情報出力手段は、前記開発費用算定手段により算定した前記開発費用を評価用基準価格として、その評価用基準価格と前記入力画面上で入力された前記業者提示価格とを対比させた情報を出力することを特徴とする請求項1に記載のソフトウェア開発工数費用の評価装置。
  3. 前記評価情報出力手段は、前記標準開発作業工数の合計及び前記開発費用の合計を出力すると共に、前記標準開発作業工数及び前記開発費用を前記工程別に出力することを特徴とする請求項1又は2に記載のソフトウェア開発工数費用の評価装置。
  4. 前記生産性調整係数テーブルには、データとプロセスの集中処理及び分散処理を含む処理形態に伴う開発作業負荷を前記処理形態によって分類して定量化した処理負荷係数、ユーザからの品質要求をその要求度合によって分類して定量化した品質要求係数、及び、ドキュメントに係る生産性をドキュメントの種類,数量によって分類して定量化したドキュメント係数が更に記憶されており、
    前記表示手段は、前記処理負荷係数の分類項目、前記品質要求係数の分類項目及び前記ドキュメント係数の分類項目の各選択メニューを前記入力画面に表示し、
    前記生産性調整係数を算出する手段は、前記各選択メニューの中から選択された前記処理負荷係数の項目、前記品質要求係数の項目及び前記ドキュメント係数の項目にそれぞれ対応する前記処理負荷係数、前記品質要求係数及び前記ドキュメント係数を前記生産性調整係数テーブルから得て、それらの係数、前記システム規模係数、及び前記システム環境係数に基づいて前記生産性調整係数を算出することを特徴とする請求項1乃至3のいずれかに記載のソフトウェア開発工数費用の評価装置。
  5. 前記各工程別に設定された標準発注率を記憶する開発工程別標準配分率テーブルを備え、前記生産性係数を算出する手段は、前記工程別発注率が入力されなかった場合は、入力されなかった工程に対応する前記標準発注率を前記開発工程別標準配分率テーブルから得て、該標準発注率を当該工程における前記工程別発注率として前記生産性係数を算出することを特徴とする請求項1乃至4のいずれかに記載のソフトウェア開発工数費用の評価装置。
  6. 前記ソフトウェアが新規開発の場合は、前記改修率を100%として前記ソフトウェアの生産性係数が算出されることを特徴とする請求項1乃至5のいずれかに記載のソフトウェア開発工数費用の評価装置。
  7. 前記評価要素として、前記ソフトウェアの標準開発作業以外に発注者から提供者に委託された作業の工数を示す付帯作業工数を含み、
    前記開発費用算定手段は、前記標準開発作業工数と前記付帯作業工数との和に前記システムエンジニア単価金額を乗算して前記開発費用を算定することを特徴とする請求項1乃至6のいずれかに記載のソフトウェア開発工数費用の評価装置。
  8. 前記ファンクションポイント値は、IFPUG(International Function Point Users Group)法、概算法、論理ファイル推定法又はステップ逆算法のいずれかを用いて算出したファンクションポイント値である請求項1乃至7のいずれかに記載のソフトウェア開発工数費用の評価装置。
JP2006157706A 2004-03-02 2006-06-06 ソフトウェア開発工数費用の評価装置 Withdrawn JP2006323851A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006157706A JP2006323851A (ja) 2004-03-02 2006-06-06 ソフトウェア開発工数費用の評価装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004057302 2004-03-02
JP2004130688 2004-04-27
JP2004239011 2004-08-19
JP2006157706A JP2006323851A (ja) 2004-03-02 2006-06-06 ソフトウェア開発工数費用の評価装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004354147A Division JP2006085663A (ja) 2004-03-02 2004-12-07 ソフトウェア開発工数費用の評価装置

Publications (1)

Publication Number Publication Date
JP2006323851A true JP2006323851A (ja) 2006-11-30

Family

ID=37543429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006157706A Withdrawn JP2006323851A (ja) 2004-03-02 2006-06-06 ソフトウェア開発工数費用の評価装置

Country Status (1)

Country Link
JP (1) JP2006323851A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009032041A (ja) * 2007-07-27 2009-02-12 Nec Fielding Ltd 見積算出装置
JP7492414B2 (ja) 2020-09-15 2024-05-29 株式会社日立製作所 クロスドメインコーディネート装置および業務委託管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009032041A (ja) * 2007-07-27 2009-02-12 Nec Fielding Ltd 見積算出装置
JP7492414B2 (ja) 2020-09-15 2024-05-29 株式会社日立製作所 クロスドメインコーディネート装置および業務委託管理方法

Similar Documents

Publication Publication Date Title
US11836487B2 (en) Computer-implemented methods and systems for measuring, estimating, and managing economic outcomes and technical debt in software systems and projects
Assaad et al. Predicting project performance in the construction industry
Love et al. A rework reduction model for construction projects
US20030070157A1 (en) Method and system for estimating software maintenance
US20040148209A1 (en) System and method for producing an infrastructure project estimate for information technology
RU2733485C1 (ru) Система и способ обработки данных для комплексной оценки зрелости научно-технологического проекта на основе использования набора параметров
KR20210065563A (ko) 광고 마케팅 업무 관리 방법 및 시스템
KR20070082946A (ko) 건설공사용 수익성 예측방법
US20120179512A1 (en) Change management system
Wong et al. Modeling and forecasting construction labor demand: Multivariate analysis
CN114418369A (zh) 一种基于bim模型的计量支付方法和系统
Bensberg et al. Finding the perfect RPA match
AU2010202477A1 (en) Component based productivity measurement
US20230245027A1 (en) Model Management System
JP2006323851A (ja) ソフトウェア開発工数費用の評価装置
JP2006085663A (ja) ソフトウェア開発工数費用の評価装置
US20120209644A1 (en) Computer-implemented system and method for facilitating creation of business plans and reports
KR101334891B1 (ko) SaaS 환경에서의 재무위험관리 서비스를 제공하기 위한 시스템
KR20060047546A (ko) 소프트웨어 개발 공수 비용의 평가 장치
Seo et al. Calculating the cost impact in loss of productivity claims
Roncero et al. TeqReq: a new family of test-related requirements attributes
JP2002279147A (ja) 内製化判断支援装置、内製化判断支援方法および内製化判断支援プログラムを記録した機械読取可能な記録媒体および内製化判断支援プログラム
JPH0876992A (ja) ソフトウェア品質評価管理装置及びその方法
Paramasivam et al. Identifying software development IOT effort in human and machine using global wavelet method
Forcael et al. Role of the owner’s representative within the construction industry: case study of Chile

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071207

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090818