關(guān)于我們

在線客服

幫助

24小時客服:010-82326699 400-810-5999

建設(shè)工程教育網(wǎng) > 建筑文苑 > 工程管理 > 正文

在軟件項目成本計算中引入估算、預(yù)算和決算體系

2008-05-27 15:50    【  【打印】【我要糾錯】

  摘要:軟件項目的成本估算和成本控制一直是軟件項目管理研究的一大難題,本文提出在軟件項目成本估算中采用功能點方法,在軟件項目成本預(yù)算中實施工作結(jié)構(gòu)分解和COCOMO方法結(jié)合的方法,在軟件項目結(jié)束后引入決算和審計機(jī)制,為軟件企業(yè)建立起一個基于估算、預(yù)算和決算的知識庫系統(tǒng),來達(dá)到提高成本管理能力的目的。

  關(guān)鍵字:軟件成本估算,功能點,WBS,COCOMO,估算,預(yù)算,決算

  引言

  軟件成本超支是軟件項目中經(jīng)常遇到的問題。很多軟件項目經(jīng)理都曾經(jīng)歷過這樣的情況,由于開發(fā)成本的超支,軟件項目做完之后,不僅不能得到上級領(lǐng)導(dǎo)的表揚(yáng),甚至連項目獎金都拿不到,而這一切都來源于當(dāng)初對項目成本估算的不準(zhǔn)。

  隨著軟件開發(fā)技術(shù)的發(fā)展,軟件成本在計算機(jī)系統(tǒng)總成本中影響越來越大,它直接影響到投資者的決策和軟件項目的開發(fā)。沒有合理而準(zhǔn)確的軟件成本估算,就無法很好地進(jìn)行軟件項目的管理。

  據(jù)國際數(shù)據(jù)公司的研究報告顯示,全球500 強(qiáng)企業(yè)中,信息技術(shù)投資超過生產(chǎn)設(shè)備投資的企業(yè)達(dá)65%.然而軟件項目的開發(fā)情況卻不容樂觀,1995 年,美國大概只有10%的軟件項目可以按時交付,而且費用也不超支,約30%的項目沒有完成就被取消了。

  項目超支的原因是多方面的,其中一個主要原因是由于軟件開發(fā)過程中,成本控制工作沒有做好,沒有對資源配置進(jìn)行優(yōu)化,因此造成了成本浪費。而更多的原因則來自對軟件項目成本的錯誤估算,用一個不可能的成本來實現(xiàn)一個比預(yù)算昂對得多的軟件,不管如何控制都將無法避免成本超支的噩運(yùn)。

  常用軟件成本估算模型介紹在軟件成本估算領(lǐng)域,有很多的估算模型,這些模型經(jīng)過了幾十年的發(fā)展,其中部分模型成為了目前軟件成本估算的常用模型,如功能點、DELPHI、SDC和COCOMO等。其中以功能點和COCOMO模型應(yīng)用最廣。

  功能點估算模型

  功能點方法的本質(zhì)是站在客戶的角度度量系統(tǒng),它認(rèn)為系統(tǒng)的功能可以分為以下5 類:內(nèi)部邏輯文件、外部接口文件、外部輸入、外部輸出和外部查詢。根據(jù)計算規(guī)則首先確定每個功能的分類及其功能復(fù)雜度,從而可以得到每個功能的權(quán)值,全部功能的權(quán)值相加就得到“未調(diào)整的功能點數(shù)”。

  功能點方法可以在早期度量軟件的規(guī)模,軟件的規(guī)模與它的工作量、進(jìn)度和成本關(guān)系緊密,早期準(zhǔn)確的軟件規(guī)模度量有助于確定軟件價格和提高策劃過程中估算的能力。

  軟件項目管理過程從項目計劃開始,估算是項目計劃的第1個活動。估算時需要考慮很多因素,其中最重要的就是要交付軟件的規(guī)模。在軟件開發(fā)生命周期的早期階段,與用代碼行表示軟件規(guī)模相比,用功能點表示軟件規(guī)模作為估算的輸入要準(zhǔn)確得多,Kemerer的研究顯示,采用功能點進(jìn)行估算的誤差是85%,而采用代碼行估算的誤差是601%.

  由于軟件項目都是從需求分析開始,需求分析的主要目的就是確定用戶的需求,也即系統(tǒng)要實現(xiàn)的功能,因此功能點方法能夠在需求分析階段引入,如果有比較豐富的經(jīng)驗積累,則可以進(jìn)行準(zhǔn)確度很高的成本估算。

  COCOMO模型

  COCOMO(Constructive Cost Model)是Boehm利用加利福尼亞的一個咨詢公司的大量項目數(shù)據(jù)推導(dǎo)出的一個成本模型。該模型于1981 年首次發(fā) 項目管理者聯(lián)盟文章,深入探討。

  為適應(yīng)軟件工程領(lǐng)域的快速變化,COCOMO經(jīng)過多次的更新,如1987年的Ada版本,1994年發(fā)展演變?yōu)镃OCOMOII模型。

  COCOMO模型按詳細(xì)程度可劃分為三級,即基本COCOMO模型,中間COCOMO模型和詳細(xì)COCOMO模型。

 。1)基本COCOMO模型。它是靜態(tài)、單變量模型,不考慮任何成本驅(qū)動,僅以規(guī)模為基準(zhǔn)進(jìn)行估算只適于粗略迅速估算。

 。2)中間COCOMO模型。它是用15個成本驅(qū)動改進(jìn)基本模型,這是對產(chǎn)品、硬件、工作人員、項目的特性等因素的主觀評估。成本驅(qū)動的影響定為項目級的,在考慮任何進(jìn)度限制時進(jìn)一步調(diào)整工作量。

 。3)詳細(xì)COCOMO模型。這是三種模型中最精確的模型。它是基于不同的成本驅(qū)動對項目的分段有不同的影響,是用于考慮成本驅(qū)動的階段性影響時進(jìn)一步改進(jìn)估算,這時的計算細(xì)化到子系統(tǒng)/模塊。它假定層次有三級:系統(tǒng)含有子系統(tǒng),子系統(tǒng)含有模塊。

  在COCOMO模型中,首先需要確定的是待開發(fā)軟件的KLOC(千行代碼),因此COCOMO模型要進(jìn)行準(zhǔn)確的成本估算需要等到詳細(xì)設(shè)計階段結(jié)束后,因為只有詳細(xì)設(shè)計完成后,才能根據(jù)詳細(xì)設(shè)計的結(jié)果對每個模塊和類的代碼數(shù)量根據(jù)代碼功能的復(fù)雜程度進(jìn)行較準(zhǔn)確的估算。

  程序結(jié)構(gòu)分解和工作結(jié)構(gòu)分解

  結(jié)構(gòu)化分析和設(shè)計遵從自頂向下,逐層分解的設(shè)計原則。設(shè)計師在把握的大的框架之后,在此基礎(chǔ)上進(jìn)行逐步細(xì)化,最后才能完成一個復(fù)雜系統(tǒng)的設(shè)計工作。

  在結(jié)構(gòu)化設(shè)計方法中,先根據(jù)用戶的需求規(guī)格說明書,確定系統(tǒng)的邊界,繪制頂層數(shù)據(jù)流圖,然后對頂層圖中的加工進(jìn)行細(xì)化,一層一層的細(xì)化下去,一直到得到系統(tǒng)的所有基本功能。

  面向?qū)ο蟮脑O(shè)計雖然與結(jié)構(gòu)化設(shè)計有了很大的區(qū)別,但是對對象的設(shè)計過程同樣是一個細(xì)化的過程。在確定了對象后,需將其抽象成類,并要對類的屬性,方法進(jìn)行設(shè)計,這也是一個分解的過程。

  程序結(jié)構(gòu)分解是軟件實現(xiàn)上的分解,在軟件項目中,還需要對整個軟件項目劃分若干任務(wù),并將這些任務(wù)分配給項目組中的所有成員。任務(wù)分解及分配的好壞也對項目的進(jìn)度和成本有著很大的影響。

  項目的工作結(jié)構(gòu)分解即WBS是先把項目中實際需要完成的事項盡量分解成更具體的工作。具體做法是按照樹形結(jié)構(gòu)先把整個項目分解為大的單元,再把各個大的單元分解為個小的單元。

  需完成事項的細(xì)分之后,把各個單元中需要做的工作分配在樹形結(jié)構(gòu)的最下層。各個單元中所需要做的一系列的工作被稱為工作包。在WBS的各個工作包里配置工作人員之后,項目實行的結(jié)構(gòu)圖就完成了。

  工作結(jié)構(gòu)分解是進(jìn)行項目成本計算的基礎(chǔ),不同的工作結(jié)構(gòu)分解將得到不同的項目成本,如果工作分配不恰當(dāng),如將簡單任務(wù)分配給程序開發(fā)高手,而將復(fù)雜任務(wù)分配給新手,將會造成工作效率低下,并增加項目的成本。真實的軟件項目成本不僅是軟件的復(fù)雜度,并且與本項目的管理和人員能力有著直接的關(guān)系。

  1、套用現(xiàn)成估算模型,誤差太大。

  每個軟件企業(yè)的情況都不同,有著不同的管理模式,不同的工作人員,不同的環(huán)境和背景,因此如果簡單的進(jìn)行估算模型的套用,使用別人的計算系數(shù)的話,得到的將是別人企業(yè)的成本,而不是自己的成本。這樣,當(dāng)項目完成后,成本自然與估算數(shù)據(jù)相差很大。

  不管是功能點模型還是COCOMO模型都是需要本企業(yè)的計算系數(shù),如果提供不了正確的計算系數(shù),則這兩個模型都無法正確使用,因此每個軟件企業(yè)都要對估算模型進(jìn)行一定的適應(yīng)性調(diào)整,以適應(yīng)自己企業(yè)的情況。

  2、缺少成本管理體系

  很多軟件企業(yè)都將成本估算用于項目投標(biāo)使用,而沒有意識到需要為企業(yè)建立一個成本管理體系。如果不對軟件的成本進(jìn)行有效的管理,即使估算得很準(zhǔn)確,最后項目結(jié)束后,成本可能大幅度的超過估算。這是因為沒有對項目的成本進(jìn)行管理,在項目建設(shè)過程中沒有合理搭配和利用資源,以至于造成了資源的浪費,這樣項目的成本自然增加,也就造成成本估算估不準(zhǔn)了。

  3、缺少成本總結(jié)和分析的方法

  企業(yè)完成一個項目后,沒有對項目成本估算和成本管理方面進(jìn)行總結(jié),這樣便無法將項目經(jīng)驗轉(zhuǎn)化成原始數(shù)據(jù)積累,不管做了多少項目,最后對成本還是測不準(zhǔn)。沒有將項目完成后的經(jīng)驗對成本估算參數(shù)進(jìn)行校正,也此也造成企業(yè)管理水平的無法提高。

  軟件項目引入估算、預(yù)算和決算的必要性

  軟件估算在軟件項目前期進(jìn)行,在需求分析完成后,便能夠利用功能點模型進(jìn)行軟件項目成本的估算,得到項目成本估算值。對于剛剛引入該方法的企業(yè),成本估算值是不準(zhǔn)確的,因此需要慢慢根據(jù)經(jīng)驗數(shù)據(jù)對它進(jìn)行修正。

  在軟件的詳細(xì)設(shè)計完成后,便可以利用工作結(jié)構(gòu)分解將對之后的所有工作進(jìn)行預(yù)算,預(yù)算的費用包括直接開發(fā)費和間接費用,直接開發(fā)費用為實現(xiàn)程序所有功能所花費的人力和物力,而間接費用包括管理費用和其他的輔助費用,間接費用可以根據(jù)本企業(yè)的特點,在直接費用上取一定的百分比。

  直接費用的計算采用COCOMO模型,由于詳細(xì)設(shè)計后已經(jīng)能夠較準(zhǔn)確的對軟件的代碼行數(shù)進(jìn)行估計,因此,這個時候計算出來的預(yù)算成本也是比較準(zhǔn)確的。當(dāng)然,系數(shù)還是需要根據(jù)經(jīng)驗進(jìn)行修正。

  在軟件項目結(jié)束后,對整個項目所花費的所有成本應(yīng)當(dāng)進(jìn)行決算。不要認(rèn)為項目完成了,做這樣的事情就顯得多余。對項目成本進(jìn)行決算,可以將項目經(jīng)驗進(jìn)行總結(jié),將項目的實際成本與估算和預(yù)算進(jìn)行比較,然后對比較結(jié)果進(jìn)行分析,找出誤差存在的原因,繼而對估算和預(yù)算系數(shù)進(jìn)行調(diào)整,經(jīng)過若干個項目經(jīng)驗的積累后,便能夠做到較準(zhǔn)確的估算和預(yù)算。而成本經(jīng)驗的累積也讓企業(yè)得到了一個自己的成本知識庫。

  在項目決算的過程中,可以引入審計機(jī)制,這樣不僅是準(zhǔn)確估算軟件成本,而且可以發(fā)現(xiàn)軟件項目開發(fā)過程中的各種問題,根據(jù)審計發(fā)現(xiàn)的問題繼而對企業(yè)的軟件過程進(jìn)行改進(jìn),以提高整個企業(yè)的核心競爭力。

  總結(jié)

  軟件項目成本估算需要豐富的經(jīng)驗累積,經(jīng)驗累積越多,則估算越準(zhǔn)確,可以說建立一個軟件成本估算的知識庫對于軟件企業(yè)的發(fā)展有著重要的意義。不僅可以讓軟件企業(yè)在項目投標(biāo)中準(zhǔn)確的估計自己的項目成本,從而在投標(biāo)中取得勝出。更重要的是,為企業(yè)的軟件過程改進(jìn)提供了很好的基礎(chǔ)資料。
延伸閱讀:軟件 項目 成本
收藏分享:論壇
分享到:
相關(guān)新聞
  • 特色班
    4大班次+2-3套全真模擬題
    提升學(xué)習(xí)效果
  • 精品班
    4大班次+2-3套全真模擬題+1套預(yù)測試題
  • 實驗班
    3套全真模擬題+2套預(yù)測試題+考前沖關(guān)寶典
  • 定制班
    3套模擬題+3套預(yù)測題+考前沖關(guān)寶典+考前重點
  • 移動班
    以知識點為單元授課練習(xí),
    強(qiáng)化重點、難點、考點
版權(quán)聲明

  1、凡本網(wǎng)注明“來源:建設(shè)工程教育網(wǎng)”的所有作品,版權(quán)均屬建設(shè)工程教育網(wǎng)所有,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、鏈接、轉(zhuǎn)貼或以其他方式使用;已經(jīng)本網(wǎng)授權(quán)的,應(yīng)在授權(quán)范圍內(nèi)使用,且必須注明“來源:建設(shè)工程教育網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其法律責(zé)任。
  2、本網(wǎng)部分資料為網(wǎng)上搜集轉(zhuǎn)載,均盡力標(biāo)明作者和出處。對于本網(wǎng)刊載作品涉及版權(quán)等問題的,請作者與本網(wǎng)站聯(lián)系,本網(wǎng)站核實確認(rèn)后會盡快予以處理。
  本網(wǎng)轉(zhuǎn)載之作品,并不意味著認(rèn)同該作品的觀點或真實性。如其他媒體、網(wǎng)站或個人轉(zhuǎn)載使用,請與著作權(quán)人聯(lián)系,并自負(fù)法律責(zé)任。
  3、本網(wǎng)站歡迎積極投稿。