您的位置:軟件測(cè)試 > 軟件項(xiàng)目管理 > 成本管理 >
軟件產(chǎn)品成本估算方法
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/9/3 17:09:40 ] 推薦標(biāo)簽:

   軟件開發(fā)成本估算主要指軟件開發(fā)過程中所花費(fèi)的工作量及相應(yīng)的代價(jià)。 不同與傳統(tǒng)的工業(yè)產(chǎn)品,軟件的成本不包括原材料和能源的消耗,主要是人的勞動(dòng)的消耗。另外,軟件也沒有一個(gè)明顯的制造過程,它的開發(fā)成本是以一次性開發(fā)過程所花費(fèi)的代價(jià)來計(jì)算的。因此,軟件開發(fā)成本的估算,應(yīng)是從軟件計(jì)劃、需求分析、設(shè)計(jì)、編碼、單元測(cè)試、集成測(cè)試到認(rèn)證測(cè)試,整個(gè)開發(fā)過程所花費(fèi)的代價(jià)作為依據(jù)的。
  軟件開發(fā)成本估算的經(jīng)驗(yàn)?zāi)P?br />   Putnam 模型
  1978年P(guān)utnam提出的,一種動(dòng)態(tài)多變量模型。
  L = Ck * K1/3 * td4/3
  其中: L-----------源代碼行數(shù)(以LOC計(jì))
  K-----------整個(gè)開發(fā)過程所花費(fèi)的工作量(以人年計(jì))
  td-----------開發(fā)持續(xù)時(shí)間(以年計(jì))
  Ck----------技術(shù)狀態(tài)常數(shù),它反映“妨礙開發(fā)進(jìn)展的限制”,取值因開發(fā)環(huán)境而異,見下表

 

Ck的典型值 開發(fā)環(huán)境 開發(fā)環(huán)境舉例
2000 沒有系統(tǒng)的開發(fā)方法,缺乏文檔和復(fù)審
8000 有合適的系統(tǒng)的開發(fā)方法,有充分的文檔和復(fù)審
11000 優(yōu) 有自動(dòng)的開發(fā)工具和技術(shù)

  從上述方程加以變換,可以得到估算工作量的公式: K = L3/(Ck3*td4)
  還可以估算開發(fā)時(shí)間: td = [L3/(Ck3*K)]1/4
  COCOMO模型(constructive cost model)
  這是由TRW公司開發(fā),Boehm提出的結(jié)構(gòu)化成本估算模型。是一種精確的、易于使用的成本估算方法。
  COCOMO模型中用到以下變量:
  DSI-------源指令條數(shù)。不包括注釋。1KDSI = 1000DSI。
  MM-------開發(fā)工作量(以人月計(jì)) 1MM = 19 人日 = 152 人時(shí) =1/12 人年
  TDEV-----開發(fā)進(jìn)度。(以月計(jì))
  COCOMO模型中,考慮開發(fā)環(huán)境,軟件開發(fā)項(xiàng)目的類型可以分為3種:
  組織型(organic): 相對(duì)較小、較簡(jiǎn)單的軟件項(xiàng)目。開發(fā)人員對(duì)開發(fā)目標(biāo)理解比較充分,與軟件系統(tǒng)相關(guān)的工作經(jīng)驗(yàn)豐富,對(duì)軟件的使用環(huán)境很熟悉,受硬件的約束較小,程序的規(guī)模不是很大(<50000行)
  嵌入型(embedded): 要求在緊密聯(lián)系的硬件、軟件和操作的限制條件下運(yùn)行,通常與某種復(fù)雜的硬件設(shè)備緊密結(jié)合在一起。對(duì)接口,數(shù)據(jù)結(jié)構(gòu),算法的要求高。軟件規(guī)模任意。如大而復(fù)雜的事務(wù)處理系統(tǒng),大型/超大型操作系統(tǒng),航天用控制系統(tǒng),大型指揮系統(tǒng)等。
  半獨(dú)立型(semidetached): 介于上述兩種軟件之間。規(guī)模和復(fù)雜度都屬于中等或更高。大可達(dá)30萬(wàn)行。
  估算公式:
  基本COCOMO模型估算工作量和進(jìn)度的公式如下
  工作量: MM = r*(KDSI)c
  進(jìn)度: TDKV = a(MM)b
  其中經(jīng)驗(yàn)常數(shù) r, c, a, b 取決于項(xiàng)目的總體類型。
  COCOMO模型按其詳細(xì)程度可以分為三級(jí):基本COCOMO模型,中間COCOMO模型,詳細(xì)COCOMO模型。其中基本COCOMO模型是是一個(gè)靜態(tài)單變量模型,它用一個(gè)以已估算出來的原代碼行數(shù)(LOC)為自變量的經(jīng)驗(yàn)函數(shù)計(jì)算軟件開發(fā)工作量。 中級(jí)COCOMO模型在基本COCOMO模型的基礎(chǔ)上,再用涉及產(chǎn)品、硬件、人員、項(xiàng)目等方面的影響因素調(diào)整工作量的估算。詳細(xì)COCOMO模型包括中間COCOMO模型的所有特性,但更進(jìn)一步考慮了軟件工程中每一步驟(如分析、設(shè)計(jì))的影響。
  基本COCOMO模型
  通過統(tǒng)計(jì)63個(gè)歷史項(xiàng)目的歷史數(shù)據(jù),得到如下計(jì)算公式。

 

總體類型 工作量 進(jìn)度
組織型 MM = 10.4*(KDSI)1.05 TDKV = 10.5(MM)0.38
半獨(dú)立型 MM = 3.0*(KDSI)1.12 TDKV = 10.5(MM)0.35
嵌入型 MM = 3.0*(KDSI)1.20 TDKV = 10.5(MM)0.32

  進(jìn)度計(jì)劃是從時(shí)間的角度對(duì)項(xiàng)目進(jìn)行規(guī)劃,而成本估算則是從費(fèi)用的角度對(duì)項(xiàng)目進(jìn)行規(guī)劃。這里的費(fèi)用應(yīng)理解為一個(gè)抽象概念,它可以是工時(shí)、材料或人員等。
  成本估算是對(duì)完成項(xiàng)目所需費(fèi)用的估計(jì)和計(jì)劃,是項(xiàng)目計(jì)劃中的一個(gè)重要組成部分。要實(shí)行成本控制,首先要進(jìn)行成本估算。理想的是,完成某項(xiàng)任務(wù)所需費(fèi)用可根據(jù)歷史標(biāo)準(zhǔn)估算。但對(duì)許多工業(yè)來說,由于項(xiàng)目和計(jì)劃變化多端,把以前的活動(dòng)與現(xiàn)實(shí)對(duì)比幾乎是不可能的。費(fèi)用的信息,不管是否根據(jù)歷史標(biāo)準(zhǔn),都只能將其作為一種估算。而且,在費(fèi)時(shí)較長(zhǎng)的大型項(xiàng)目中,還應(yīng)考慮到今后幾年的職工工資結(jié)構(gòu)是否會(huì)發(fā)生變化,今后幾年原材料費(fèi)用的上漲如何,經(jīng)營(yíng)基礎(chǔ)以及管理費(fèi)用在整個(gè)項(xiàng)目壽命周期內(nèi)會(huì)不會(huì)變化等問題。所以,成本估算顯然是在一個(gè)無法以高度可靠性預(yù)計(jì)的環(huán)境下進(jìn)行。在項(xiàng)目管理過程中,為了使時(shí)間、費(fèi)用和工作范圍內(nèi)的資源得到佳利用,人們開發(fā)出了不少成本估算方法,以盡量得到較好的估算。這里簡(jiǎn)要介紹以下幾種。
  1.經(jīng)驗(yàn)估算法
  進(jìn)行估計(jì)的人應(yīng)有專門知識(shí)和豐富的經(jīng)驗(yàn),據(jù)此提出一個(gè)近似的數(shù)字。這種方法是一種原始的方法,還稱不上估算,只是一種近似的猜測(cè)。它對(duì)要求很快拿出一個(gè)大概數(shù)字的項(xiàng)目是可以的,但對(duì)要求詳細(xì)的估算顯然是不能滿足要求的。
  2.因素估算法
  這是比較科學(xué)的一種傳統(tǒng)估算方法。它以過去為根據(jù)來預(yù)測(cè)未來,并利用數(shù)學(xué)知識(shí)。它的基本方法是利用規(guī)模和成本圖。如圖所示,圖上的線表示規(guī)模和成本的關(guān)系,圖上的點(diǎn)是根據(jù)過去類似項(xiàng)目的資料而描繪,根據(jù)這些點(diǎn)描繪出的線體現(xiàn)了規(guī)模和成本之間的基本關(guān)系。這里畫的是直線,但也有可能是曲線。成本包括不同的組成部分,如材料、人工和運(yùn)費(fèi)等。這些都可以有不同的曲線。項(xiàng)目規(guī)模知道以后,可以利用這些線找出成本各個(gè)不同組成部分的近似數(shù)字。
  這里要注意的是,找這些點(diǎn)要有一個(gè)“基準(zhǔn)年度”,目的是消除通貨膨脹的影響。畫在圖上的點(diǎn)應(yīng)該是經(jīng)過調(diào)整的數(shù)字。例如以1980年為基準(zhǔn)年,其他年份的數(shù)字都以1980年為準(zhǔn)進(jìn)行調(diào)整,然后才能描點(diǎn)劃線。項(xiàng)目規(guī)模確定之后,從線上找出相應(yīng)的點(diǎn),但這個(gè)點(diǎn)是以1980年為基準(zhǔn)的數(shù)字,還需要再調(diào)整到當(dāng)年,才是估算出的成本數(shù)字。此外,如果項(xiàng)目周期較長(zhǎng),還應(yīng)考慮到今后幾年可能發(fā)生的通貨膨脹、材料漲價(jià)等因素。
  做這種成本估算,前提是有過去類似項(xiàng)目的資料,而且這些資料應(yīng)在同一基礎(chǔ)上,具有可比性。
  3.WBS基礎(chǔ)上的全面詳細(xì)估算
  即利用WBS方法,先把項(xiàng)目任務(wù)進(jìn)行合理的細(xì)分,分到可以確認(rèn)的程度,如某種材料,某種設(shè)備,某一活動(dòng)單元等。然后估算每個(gè)WBS要素的費(fèi)用。采用這一方法的前提條件或先決步驟是:
  ①對(duì)項(xiàng)目需求作出一個(gè)完整的限定。
  ②制定完成任務(wù)所必需的邏輯步驟。
 、劬幹芖BS表。
  項(xiàng)目需求的完整限定應(yīng)包括工作報(bào)告書、規(guī)格書以及總進(jìn)度表。工作報(bào)告書是指實(shí)施項(xiàng)目所需的各項(xiàng)工作的敘述性說明,它應(yīng)確認(rèn)必須達(dá)到的目標(biāo)。如果有資金等限制,該信息也應(yīng)包括在內(nèi)。規(guī)格書是對(duì)工時(shí)、設(shè)備以及材料標(biāo)價(jià)的根據(jù)。它應(yīng)該能使項(xiàng)目人員和用戶了解工時(shí)、設(shè)備以及材料估價(jià)的依據(jù)?傔M(jìn)度表應(yīng)明確項(xiàng)目實(shí)施的主要階段和分界點(diǎn),其中應(yīng)包括長(zhǎng)期定貨、原型試驗(yàn)、設(shè)計(jì)評(píng)審會(huì)議以及其他任何關(guān)鍵的決策點(diǎn)。如果可能,用來指導(dǎo)成本估算的總進(jìn)度表應(yīng)含有項(xiàng)目開始和結(jié)束的日歷時(shí)間。
  一旦項(xiàng)目需求被勾劃出來,應(yīng)制定完成任務(wù)所必需的邏輯步驟。在現(xiàn)代大型復(fù)雜項(xiàng)目中,通常是用箭頭圖來表明項(xiàng)目任務(wù)的邏輯程序,并以此作為下一步繪制CPM或PERT圖以及WBS表的根據(jù)。
  編制WBS表的簡(jiǎn)單方法是依據(jù)箭頭圖。把箭頭圖上的每一項(xiàng)活動(dòng)當(dāng)作一項(xiàng)工作任務(wù),在此基礎(chǔ)上再描繪分工作任務(wù)。
  進(jìn)度表和WBS表完成之后,可以進(jìn)行成本估算了。在大型項(xiàng)目中,成本估算的結(jié)果后應(yīng)以下述的報(bào)告形式表述出來:
  ①對(duì)每個(gè)WBS要素的詳細(xì)費(fèi)用估算。還應(yīng)有一個(gè)各項(xiàng)分工作、分任務(wù)的費(fèi)用匯總表,以及項(xiàng)目和整個(gè)計(jì)劃的累積報(bào)表。
  ②每個(gè)部門的計(jì)劃工時(shí)曲線。如果部門工時(shí)曲線含有“峰”和“谷”,應(yīng)考慮對(duì)進(jìn)度表作若干改變,以得到工時(shí)的均衡性。
 、壑鹪碌墓r(shí)費(fèi)用總結(jié)。以便項(xiàng)目費(fèi)用必須削減時(shí),項(xiàng)目負(fù)責(zé)人能夠利用此表和工時(shí)曲線作權(quán)衡性研究。
  ④逐年費(fèi)用分配表。此表以WBS要素來劃分,表明每年(或每季度)所需費(fèi)用。此表實(shí)質(zhì)上是每項(xiàng)活動(dòng)的項(xiàng)目現(xiàn)金流量的總結(jié)。
 、菰霞爸С鲱A(yù)測(cè),它表明供貨商的供貨時(shí)間、支付方式、承擔(dān)義務(wù)以及支付原料的現(xiàn)金流量等。
  采用這種方法估算成本需要進(jìn)行大量的計(jì)算,工作量較大,所以只計(jì)算本身也需要花費(fèi)一定的時(shí)間和費(fèi)用。但這種方法的準(zhǔn)確度較高,用這種方法作出的這些報(bào)表不僅僅是成本估算的表述,還可以用來作為項(xiàng)目控制的依據(jù)。高管理層則可以用這些報(bào)表來選擇和批準(zhǔn)項(xiàng)目,評(píng)定項(xiàng)目的優(yōu)先性。 以上介紹了三種成本估算的方法。除此之外,在實(shí)踐中還可將幾種方法結(jié)合起來使用。例如,對(duì)項(xiàng)目的主要部分進(jìn)行詳細(xì)估算,其他部分則按過去的經(jīng)驗(yàn)或用因素估算法進(jìn)行估算。
  FunctionPoing的目的是基于軟件需求產(chǎn)生軟件規(guī)模的估計(jì)。功能點(diǎn)是基于應(yīng)用軟件的外部、內(nèi)部特性以及軟件性能的,一種間接的軟件規(guī)模的測(cè)量。功能點(diǎn)與軟件成本具有重大的成本估計(jì)關(guān)系(CER :Cost EstimatingRelationship )。功能點(diǎn)可以作為經(jīng)驗(yàn)統(tǒng)計(jì)參數(shù)化軟件成本估計(jì)公式和模型的輸入,以對(duì)軟件的成本進(jìn)行估計(jì)。功能點(diǎn)方法被廣泛的認(rèn)可在信息系統(tǒng)、數(shù)據(jù)庫(kù)密集型、4GL 應(yīng)用系統(tǒng)開發(fā)的規(guī)模測(cè)量。

 

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd