軟件成本估算的基本過程是什么呢?
軟件成本估算的過程可分為:估算規(guī)模、估算工作量、估算工期和估算成本這4個過程,最終確定軟件成本。其中成本估算需要對直接人力成本、間接人力成本、間接非人力成本及直接非人力成本分別進行估算。
通常情況下,軟件規(guī)模的估算是軟件成本估算過程的起點。估算規(guī)模是后續(xù)計算軟件項目的工作量、成本和進度的主要依據(jù),是項目范圍管理的關(guān)鍵,因此,在條件允許的情況下,應(yīng)該進行軟件項目規(guī)模估算。
規(guī)模估算時,要根據(jù)可行性研究報告或類似文檔明確項目需求及系統(tǒng)邊界。選擇估算方法時,要依據(jù)項目特點和需求詳細程度來決定。
若當(dāng)前項目的需求不確定,可跳過這一環(huán)節(jié),進入下個一環(huán)節(jié)。
軟件項目工作量估算可采用方程法、類比法和類推法。
類推法:軟件項目需求極其模糊或不確定時,如果有高度相似的歷史項目,可采用此方法,利用歷史項目數(shù)據(jù)來粗略估算工作量。
類比法:軟件項目需求極其模糊或不確定時,如果有與本項目部分屬性類似的一組基準(zhǔn)數(shù)據(jù),可采用類比法,利用基準(zhǔn)數(shù)據(jù)來粗略估算工作量。
方程法:已經(jīng)開展了規(guī)模估算的項目,可以采用方程法,通過各項參數(shù)來確定待估算項目的工作量。
項目工作量估算都應(yīng)該采用兩種估算方法來對估算結(jié)果進行交叉驗證,以追求估算的準(zhǔn)確性。工作量的估算結(jié)果是一個范圍,不是單一的值。
軟件項目工期的估算同樣可以采用類推法、類比法和方程法。
類比法和類推法同樣適用于需求極期模糊或不確定時的成本估算。
成本估算結(jié)果通常為一個范圍。
]]>軟件研發(fā)成本包含直接成本和間接成本。依據(jù)軟件行業(yè)特點,直接成本又分為直接人力成本和直接非人力成本,而間接成本分為間接人力成本和間接非人力成本。
所謂直接成本是指:項目存在則導(dǎo)致成本發(fā)生,項目取消則成本不再發(fā)生的成本。如項目成員的人力資源費用(直接人力成本)、由于本項目需要所產(chǎn)生的差旅(直接非人力成本)、培訓(xùn)(直接非人力成本)等費用。
而間接成本為:服務(wù)于本組織所有研發(fā)項目的聯(lián)合成本,即只要有研發(fā)活動成本就會產(chǎn)生,而所有研發(fā)活動都取消則成本不再發(fā)生。如研發(fā)管理人員的費用分攤(間接人力成本)、研發(fā)設(shè)備/場地的費用分攤(間接非人力成本)。
直接人力成本根據(jù)工作量估算結(jié)果(單位通常為人月)和平均人力成本費率(即每人月多少錢)計算;間接成本通常根據(jù)項目組的人數(shù)和持續(xù)時間進行分攤,因而也與工作量相關(guān);直接非人力成本通常在軟件項目中所占比例較小,該部分與工作量無關(guān),可參照《規(guī)范》中關(guān)于直接非人力成本的細項劃分(包括辦公費、差旅費、培訓(xùn)費、業(yè)務(wù)費、采購費及其他等六項)分項估算。
因此,對一個軟件項目進行成本估算時,我們常用的軟件研發(fā)成本估算公式為:軟件研發(fā)成本=工作量×平均人力成本費率(含直接人力成本、間接成本)+直接非人力成本。此公式基本包含了軟件研發(fā)成本估算的內(nèi)容和過程。
]]>SNAP方法參考了IFPUG方法中對事務(wù)功能和數(shù)據(jù)功能的判定規(guī)則形式,簡單易懂。
SNAP模型包括4個類和14子類。SNAP中的確定類和子類的過程相當(dāng)于功能點分析方法中確定系統(tǒng)邊界的過程。通過一組基準(zhǔn),根據(jù)每個子類的類型和復(fù)雜性程度的不同來度量子類的規(guī)模大小,整個非功能需求規(guī)模就是這些子類規(guī)模之和。
我們在使用SNAP方法進行軟件非功能需求評估時其基本過程如下:
1、確定評估的目的、范圍、邊界和分區(qū)。
2、關(guān)聯(lián)非功能需求中的類和子類。
3、識別SNAP計數(shù)單元(SNAP Counting Units,SCU)。一個SCU就是一個組件、過程或活動。
4、確定每個SCU的復(fù)雜性。
5、確定每個SCU中的SNAP Points(SP)。計算SNAP Points是在邊界層執(zhí)行的,SP是所有的SCU規(guī)模之和。
6、計算非功能需求規(guī)模。
SP是需要計算的最后一個非功能需求規(guī)模值。確定了所有子類后,通過結(jié)合軟件產(chǎn)品的應(yīng)用邊界,確定整個非功能需求規(guī)模。
新開發(fā)項目的非功能需求規(guī)模的計算公式為
DSP=ADD
其中,ADD為所有子類的SP之和;
DSP是新開發(fā)類型項目的非功能需求規(guī)模。
增強開發(fā)項目的非功能需求規(guī)模的計算公式為
ESP=ADD+CHG+DEL
其中,ESP為增強開發(fā)項目的非功能需求規(guī)模;
ADD為新增的功能需求規(guī)模;
CHG為變更的功能需求規(guī)模;
DEL為刪除的功能需求規(guī)模。
計算原則:
1、不能更改原項目已定的邊界和分區(qū)。
2、評估包括新增、修改、刪除。
答:沒有標(biāo)準(zhǔn),不同開發(fā)語言差別也很大,如果是C++/Java這樣的語言,全生命周期算大概一人天30-50行(包括需求分析,設(shè)計,編碼,測試等),如果只是說程序員,而且只寫不改,一天寫幾百甚至上千行代碼也是可以的。
那軟件代碼的復(fù)用的問題,有沒有什么處理辦法?比如在軟件造價評估中發(fā)現(xiàn)大量采用開源代碼,或者類似利用Java的開源代碼?
答:使用開源代碼倒沒也什么,但是甲方要關(guān)注法律風(fēng)險(很多開源軟件并不是無條件開源,比如有些是不可以用于商業(yè)用途的,或者用于商業(yè)用途要支付額外的費用以獲得授權(quán)。管理嚴(yán)格的甲方會要求供應(yīng)商給出所有用到的開源軟件或代碼的清單,同時附上相關(guān)版權(quán)聲明)。對于成本評估,復(fù)用度/吻合度的評判通常還是從業(yè)務(wù)視角看,當(dāng)然也會考慮行業(yè)慣例。例如新版本和舊版本中類似的功能,同一版本中相近的功能,無論代碼是否重用,都會調(diào)整復(fù)用度/吻合度。
另外就是評估一些常見系統(tǒng)、常見功能時(例如門戶網(wǎng)站、普通的系統(tǒng)管理功能等),會考慮行業(yè)通常情況對復(fù)用度/吻合度酌情調(diào)整。
開源代碼的資產(chǎn)評估通常需要考慮以下幾個方面:
在評估開源代碼的資產(chǎn)價值時,需要綜合考慮以上因素,并使用一些評估方法,如成本法、市場法、收益法等來得出評估結(jié)果。
]]>如果沒有明示的要求,不用提煉,直接按照“沒有明示的完整性級別要求”取值即可(調(diào)整因子為1)。
軟件造價評估過程中的軟件完整性級別,可以理解為軟件系統(tǒng)的安全、穩(wěn)定、可靠性以及其技術(shù)復(fù)雜程度、開發(fā)難度等綜合性質(zhì)。在軟件造價評估過程中,需要考慮軟件系統(tǒng)的多個方面,如功能特性、性能特性、安全性、可維護性等。其中,軟件完整性級別是一個關(guān)鍵指標(biāo),可以幫助評估人員對軟件系統(tǒng)進行全面、客觀的評估。
軟件完整性級別的定義可以參考以下步驟: