程序結構分解是軟件實現上的分解,在軟件項目中,還需要對整個軟件項目劃分若干任務,并將這些任務分配給項目組中的所有成員。任務分解及分配的好壞也對項目的進度和成本有著很大的影響。
項目的工作結構分解即WBS是先把項目中實際需要完成的事項盡量分解成更具體的工作。具體做法是按照樹形結構先把整個項目分解為大的單元,再把各個大的單元分解為個小的單元。
需完成事項的細分之后,把各個單元中需要做的工作分配在樹形結構的最下層。各個單元中所需要做的一系列的工作被稱為工作包。在WBS的各個工作包里配置工作人員之后,項目實行的結構圖就完成了。
工作結構分解是進行項目成本計算的基礎,不同的工作結構分解將得到不同的項目成本,如果工作分配不恰當,如將簡單任務分配給程序開發高手,而將復雜任務分配給新手,將會造成工作效率低下,并增加項目的成本。真實的軟件項目成本不僅是軟件的復雜度,并且與本項目的管理和人員能力有著直接的關系。
軟件項目成本計算中存在的問題
1、 套用現成估算模型,誤差太大。
每個軟件企業的情況都不同,有著不同的管理模式,不同的工作人員,不同的環境和背景,因此如果簡單的進行估算模型的套用,使用別人的計算系數的話,得到的將是別人企業的成本,而不是自己的成本。這樣,當項目完成后,成本自然與估算數據相差很大。
不管是功能點模型還是COCOMO模型都是需要本企業的計算系數,如果提供不了正確的計算系數,則這兩個模型都無法正確使用,因此每個軟件企業都要對估算模型進行一定的適應性調整,以適應自己企業的情況。
2、 缺少成本管理體系
很多軟件企業都將成本估算用于項目投標使用,而沒有意識到需要為企業建立一個成本管理體系。如果不對軟件的成本進行有效的管理,即使估算得很準確,最后項目結束后,成本可能大幅度的超過估算。這是因為沒有對項目的成本進行管理,在項目建設過程中沒有合理搭配和利用資源,以至于造成了資源的浪費,這樣項目的成本自然增加,也就造成成本估算估不準了。
3、 缺少成本總結和分析的方法
企業完成一個項目后,沒有對項目成本估算和成本管理方面進行總結,這樣便無法將項目經驗轉化成原始數據積累,不管做了多少項目,最后對成本還是測不準。沒有將項目完成后的經驗對成本估算參數進行校正,也此也造成企業管理水平的無法提高。
軟件項目引入估算、預算和決算的必要性
軟件估算在軟件項目前期進行,在需求分析完成后,便能夠利用功能點模型進行軟件項目成本的估算,得到項目成本估算值。對于剛剛引入該方法的企業,成本估算值是不準確的,因此需要慢慢根據經驗數據對它進行修正。
在軟件的詳細設計完成后,便可以利用工作結構分解將對之后的所有工作進行預算,預算的費用包括直接開發費和間接費用,直接開發費用為實現程序所有功能所花費的人力和物力,而間接費用包括管理費用和其他的輔助費用,間接費用可以根據本企業的特點,在直接費用上取一定的百分比。
直接費用的計算采用COCOMO模型,由于詳細設計后已經能夠較準確的對軟件的代碼行數進行估計,因此,這個時候計算出來的預算成本也是比較準確的。當然,系數還是需要根據經驗進行修正。
在軟件項目結束后,對整個項目所花費的所有成本應當進行決算。不要認為項目完成了,做這樣的事情就顯得多余。對項目成本進行決算,可以將項目經驗進行總結,將項目的實際成本與估算和預算進行比較,然后對比較結果進行分析,找出誤差存在的原因,繼而對估算和預算系數進行調整,經過若干個項目經驗的積累后,便能夠做到較準確的估算和預算。而成本經驗的累積也讓企業得到了一個自己的成本知識庫。
在項目決算的過程中,可以引入審計機制,這樣不僅是準確估算軟件成本,而且可以發現軟件項目開發過程中的各種問題,根據審計發現的問題繼而對企業的軟件過程進行改進,以提高整個企業的核心競爭力。
總結
軟件項目成本估算需要豐富的經驗累積,經驗累積越多,則估算越準確,可以說建立一個軟件成本估算的知識庫對于軟件企業的發展有著重要的意義。不僅可以讓軟件企業在項目投標中準確的估計自己的項目成本,從而在投標中取得勝出。更重要的是,為企業的軟件過程改進提供了很好的基礎資料。
文章來源于領測軟件測試網 http://www.kjueaiud.com/