1. 程式人生 > >軟體工作量評估方法(一)

軟體工作量評估方法(一)

1.軟體開發價格估算方法     軟體開發價格與工作量、商務成本、國家稅收和企業利潤等項有關。為了便於計算,給出一個計算公式:

軟體開發價格 = 開發工作量 × 開發費用/人·月

1.1開發工作量     軟體開發工作量與估算工作量經驗值、風險係數和複用係數等項有關:

軟體開發工作量 = 估算工作量經驗值 × 風險係數 × 複用係數

1.1.1估算工作量經驗值(以A來表示)     軟什開發工作量的計算,曾有人提出以原始碼行或功能點來計算,這些方法實施起來均有不少難度。目前國際上仍舊按以往經驗的方式加以計算,國內各軟體企業也是採用經驗的方式加以估算工作量。     為了更好地規範估算方法,建議可按照國家標準“GB/T 8566-2001軟體生存週期過程”所規定的軟體開發過程的各項活動來計算工作量。     工作量的計算是按一個開發工作人員在一個月內(日曆中的月,即包括國家規定的節假日)能完成的工作量為單位,也就是通常所講的“人·月”。     特別要提醒的是軟體開發過程中既包括了通常所講的軟體開發,也應包括各類軟體測試的活動。1.1.2風險係數(以σ來表示)

    估算工作量經驗值亦會存在較大風險,造成軟體危機的因素很多,這也是一個方面的因素。特別當軟體企業對該資訊工程專案的業務領域不熟悉或不太熟悉,而且使用者又無法或不能完整明白地表達他們的真實的需求,從而造成軟體企業需要不斷地完善需求獲取,修改設計等各項工作。因此:

l ≤ 風險係數 ≤ 1.5

    根據我們對軟體企業的瞭解,超過估算工作量經驗值的一半,已是不可接受,所以我們確定“1.5”為極限值。當然這既要看企業的能力,也要看使用者能接受的程度。1.1.3複用係數(以τ來表示)     估算工作量經驗值是軟體企業承擔一般專案來估算的,但如果軟體企業已經採用“基於構件的開發方法” ,並己建立起能夠複用的構件庫(核心資產庫),或者已有一些軟體產品,僅作二次開發,從而使軟體開發工作量減少。因此:

0.25 ≤ 複用係數 ≤ 1

    根據國內外軟體企業在實施基於構件開發方法(軟體產品線)的經驗資料,提高工作效率達到25%(最高值)。1.2開發費用/人·月     軟體企業的商務成本、國家稅收、企業利潤、管理成本和質量成本。均可攤分到各個軟體開發人員頭上。

開發費用/人·月 =(P+Q+R)× S× τ

1.2.1 P(人頭費)     人頭費主要是員工的工資、獎金和國家規定的各項按人計算的費用。其總量在軟體企業中的商務成本佔70%-80%。

P = B × 1.476

    國家規定的公積金 7%,醫療保險金12%,養老金22%,失業金 2%(即通常所說的四金),另外還有按工資總額計徵的工傷保證金0.5%,生育保證金0.5%,殘疾基金1.6%,工會基金2%,累計為47.6%。     B為平均工資,即企業支付給員工的工資、獎金、物質獎勵等多項總和,除以企業員工數,分攤到每個月。1.2.2 Q(辦公費)

    辦公費包括企業辦公房屋租賃費和物業管理費、通訊費、辦公消耗品、水電空調費、裝置折舊、差旅費,另外也包括企業對員工的在職培訓所支付的費用,其總量在軟體企業中的商務成本佔20%-30%。

Q = B/3

    此處辦公費用按商務成本的25%計算。1.2.3 R(國家稅收和企業利潤)     由於國家實施發展軟體產業的優惠政策,故不單獨列出計算,但軟體企業仍需承擔繳納國家稅收的義務,可一併與企業利潤一起考慮。     另外,軟體企業的員工不可能全年滿負荷地工作,即使一年十二個月都安排工作,但也需抽出時間進行在職培訓和提職的崗前培訓。據我們的瞭解,軟體企業的員工一年能有10個月到 11個月的工作也是正常的。

R = B/3

    此處為我們的建議方案,各軟體企業可視情況加以變更。1.2.4 S(管理系數)     通常每個機構的管理人員都會有一定的比例,參考一些機構的做法,按每十個軟體人員配備兩個管理人員即管理成本:

1 ≤ S ≤ 1.2

1.2.5 T(優質係數)     提高軟體質量,必然有所開支,即質量成本,對於不同的軟體企業來說,其質量成本不盡相同。     軟體企業與其他企業一樣,也有誠信和品牌等諸多因素,從而增加企業的開支。     目前我們可以按通過 ISO9000質量體系認證和CMM或CMMI的認證來確定,分別取值1.05、1.1、1.15、1.2。     今後建議可對軟體企業的資質分為四級。由軟體行業協會根據CMMI的認證、品牌、誠信程度等各種因素加以確定。此體系建設還有待進一步探索。     據此,我們綜合上述各點:     開發費用/人·月 =(B × 1.476 + B/3 + B/3)× l.2 × T                      = B ×(1.476 + 2/3)× 1.2 × T                      = B × 2 .575 × T                      = B × λ     當T=1.05時,λ=2.7     當T=1.2時,λ=3.09     因此,2.7 ≤ λ ≤ 3.09     對於承接國外軟體外包業務,一方面員工的工資較高,另外工作的安排也較難滿負荷工作,用此建議R=B/2。因此     開發費用/人·月 = B(1.476 + 1/3 + 1/2)× 1.2 × T                      = B × 2.767 × T                      = B × λ     當T=1.05時,λ=2.906     當T=1.2時,λ=3.32     因此,2.9 ≤ λ ≤ 3.32     結論:         軟體開發價格 = A × σ × τ × B × λ             A:估算工作量經驗值             B:軟體企業的平均工資/人·月             Q:風險係數l ≤ Q ≤ 1.5             T:複用係數0.25 ≤ τ ≤ 1            λ:綜合係數2.7 ≤ λ ≤ 3.092. 軟體(系統)維護收費價格估算方法     在完成信心工程專案的系統整合和應用軟體開發,並交付使用者正式執行的一年內,對軟體(系統)實行免費維護服務一年。     在正式執行一年後,軟體企業應與使用者簽定軟體(系統)維護合同。該合同屬技術轉讓合同,也可屬技術開發合同。     根據不同的使用者要求,可分四種級別進行軟體(系統)維護。2.1 A級     軟體企業派出技術人員常駐使用者,解決日常執行中發生的問題。2.1.1 U(系統建設投資額)     使用者需要軟體企業維護的系統,該系統建設的投資額。如使用者只需要軟體企業維護其所開發的應用軟體,U就是該應用軟體開發費;如使用者需要軟體企業維護整個系統,包括計算機硬體、軟體、網路和應用軟體,則U就是該資訊工程專案的總投資額。2.1.2 N(技術人員數)     軟體企業派出N個技術人員,常駐使用者,因此:

軟體(系統)維護費/年 = U × 15% 或 B × λ × N × 12

    B、λ參見1.2.2 B級      軟體企業每週七天,每天24小時(即7×24小時)響應,2小時到現場,且每天派技術人員到現場進行軟體(系統)效能除錯,使之執行處於良好狀態。

軟體(系統)維護費/年 = U × 10%

2.3 C級     軟體企業7×24小時響應,2小時到場。

軟體(系統)維護費/年=U × 5%

2.4 D級     使用者的資訊工程系統或應用軟體發生問題,由原承擔的軟體企業派人維護。2.4.1 B’     這種維護方式要求軟體企業需要儲存所有的技術檔案,更需要軟體企業抽出專人來不斷熟悉和全面掌握該軟體(系統)的各項技術細節。因此,軟體企業的這項支出必然要在維護費用收入中得到回報。     以1.1.3節中的B 作為引數,將其人·月單位改為人·天,以B’表示。2.4.2 τ’     軟體企業如果採用基於構件開發方法,並建立起構件庫,則會大大提高軟體維護的效率。另外,如果有多家使用者執行的系統大致類似,也可有所提高效率。     以1.1.3節中的τ 作為引數,以τ’來表示。因此:

軟體(系統)維護費/次=B’ × τ’× n

    此次n表示所需要的人·天數。τ’的取值是0.2 ≤ τ’≤ 1。3. 系統整合價格的估算方法     將整個系統所涉及到的裝置、軟體、網路整和起來,並能正常地執行,其執行的結果能達到使用者建立該系統的目標。這就是系統整合的含義。因此,可以理解為單純的裝置採購和供應並不涉及系統整合,以及單純的應用軟體開發也並不涉及系統整合。     系統整合費應與整個系統的規模、整個系統的複雜程度等項有關。     系統規模往往與系統建設費用密切相關。為了簡便計算,以系統建設費用(以U來表示)為參考座標。複雜程度(以α來表示)可分四種級別來區分。

系統整合費 = U × α × T

    T參見1.2.5節3.1 A級     整個系統涉及到計算機硬體、軟體、區域網絡,且體系結構在三層次以下(含三層次)。

5% ≤ α ≤ 8%

3.2 B級     整個系統涉及到計算機硬體、軟體、區域網絡、網際網路,且體系結構在三層以上(含三層次)。

7% ≤ α ≤ 10%

3.3 C級     整個系統涉及到計算機硬體、軟體、區域網絡、網際網路以及多種網路介面。

8% ≤ α ≤ 12%

3.4 D級     整個系統涉及到計算機硬體、軟體、網路、通訊以及各種資料採集裝置介面或者與用主系統有介面。

10% ≤ α ≤ 15%

4. 系統解決方案費用估算方法     根據使用者所提出的初步需求,軟體企業根據以往的經驗為之提供整個系統建設的方案,包括需購買的計算機硬體、軟體、網路裝置和應用軟體開發的大體設想、費用估算、進度初步安排、資訊化所涉及到的規章制度的一些規劃,有時還會涉及資訊中心的建設等等。這就是系統解決方案所要完成的工作。     目前國內市場對於系統解決方案是一種智力勞動成果的認識不足,以及國內多數招標公司並不熟悉資訊科技,從而更加使得系統解決方案收費變得困難。因此,目前的收費處於過渡階段。     系統解決方案費用與整個系統的規模、複雜程度等項有關。     系統規模往往與系統建設費用密切相關,為了簡便計算,以系統建設的總投資(以U來表示)為參考座標。     複雜程度就是使用者的功能、效能要求複雜性、資訊介面的型別和數量有關,以β來表示。

解決方案費用=U × β × T