軟體工作量評估方法(一)
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(辦公費)
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