軟件研發(fā)成本包含直接成本和間接成本。依據(jù)軟件行業(yè)特點,直接成本又分為直接人力成本和直接非人力成本,而間接成本分為間接人力成本和間接非人力成本。
所謂直接成本是指:項目存在則導(dǎo)致成本發(fā)生,項目取消則成本不再發(fā)生的成本。如項目成員的人力資源費(fèi)用(直接人力成本)、由于本項目需要所產(chǎn)生的差旅(直接非人力成本)、培訓(xùn)(直接非人力成本)等費(fèi)用。
而間接成本為:服務(wù)于本組織所有研發(fā)項目的聯(lián)合成本,即只要有研發(fā)活動成本就會產(chǎn)生,而所有研發(fā)活動都取消則成本不再發(fā)生。如研發(fā)管理人員的費(fèi)用分?jǐn)偅ㄩg接人力成本)、研發(fā)設(shè)備/場地的費(fèi)用分?jǐn)偅ㄩg接非人力成本)。
直接人力成本根據(jù)工作量估算結(jié)果(單位通常為人月)和平均人力成本費(fèi)率(即每人月多少錢)計算;間接成本通常根據(jù)項目組的人數(shù)和持續(xù)時間進(jìn)行分?jǐn)偅蚨才c工作量相關(guān);直接非人力成本通常在軟件項目中所占比例較小,該部分與工作量無關(guān),可參照《規(guī)范》中關(guān)于直接非人力成本的細(xì)項劃分(包括辦公費(fèi)、差旅費(fèi)、培訓(xùn)費(fèi)、業(yè)務(wù)費(fèi)、采購費(fèi)及其他等六項)分項估算。
因此,對一個軟件項目進(jìn)行成本估算時,我們常用的軟件研發(fā)成本估算公式為:軟件研發(fā)成本=工作量×平均人力成本費(fèi)率(含直接人力成本、間接成本)+直接非人力成本。此公式基本包含了軟件研發(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方法進(jìn)行軟件非功能需求評估時其基本過程如下:
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ī)模。
增強(qiáng)開發(fā)項目的非功能需求規(guī)模的計算公式為
ESP=ADD+CHG+DEL
其中,ESP為增強(qiáng)開發(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è)用途要支付額外的費(fèi)用以獲得授權(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é)果。
]]>答:定制開發(fā)可以按國標(biāo)方法來評估費(fèi)用,成品軟件的費(fèi)用評估通常詢價等方式。
成品軟件和定制開發(fā)的軟件在造價評估過程中存在一定差異。
對于成品軟件,其價格通常由市場決定,取決于軟件的市場地位、可替代性等。在進(jìn)行造價評估時,需要對軟件的功能、性能、用戶數(shù)等方面進(jìn)行評估,并參考市場價格進(jìn)行定價。
對于定制開發(fā)的軟件,需要進(jìn)行更為復(fù)雜的開發(fā)過程,包括需求整理、產(chǎn)品設(shè)計、開發(fā)、測試驗收等環(huán)節(jié)。在造價評估過程中,需要考慮軟件開發(fā)的全過程,包括人力成本、開發(fā)周期、軟硬件投入等多個方面。此外,還需要考慮到定制開發(fā)軟件的特殊性質(zhì),如定制化程度、技術(shù)難度等,以及客戶對軟件功能和性能的具體需求等因素。
總之,成品軟件和定制開發(fā)的軟件在造價評估過程中存在差異,需要根據(jù)具體情況進(jìn)行評估。
問:成品軟件如果也涉及部分個性化修改的呢?
答:成品軟件的價格是市場行為,取決于軟件的市場地位,可替代性;基于成品軟件的二次開發(fā)或者個性化定制可以采用國標(biāo)方法評估。
問:基于成品軟件的二次開發(fā)評估,是否應(yīng)只評估二次開發(fā)或者個性化定制的工作量,或者存在可由成品軟件廠商增值服務(wù)的可能?
答:二次開發(fā)的工作量或費(fèi)用直接按國標(biāo)方法評估,成品軟件本身的價格通過市場詢價比價等方式評估。成品軟件廠商的增值服務(wù)包括二次開發(fā),一般要單獨(dú)收費(fèi)的,不知道你指的是這部分二次開發(fā)費(fèi)用嗎?二次開發(fā)可以按增強(qiáng)開發(fā)來評估,只識別發(fā)生變化的數(shù)據(jù)和事務(wù)功能。
]]>答:系統(tǒng)對接,要具體看每個系統(tǒng)都需要做哪些改造,即要對系統(tǒng)原有的數(shù)據(jù)功能和事務(wù)功能做哪些修改,或者新增什么數(shù)據(jù)/事務(wù)功能。
計數(shù)時注意:
1)本系統(tǒng)只有對外提供服務(wù)的接口才計為獨(dú)立的基本過程,本系統(tǒng)調(diào)用某個接口(包括其他系統(tǒng)的接口)往往只是基本過程的步驟;
2)本系統(tǒng)新獲取的外部系統(tǒng)的業(yè)務(wù)數(shù)據(jù)/規(guī)則,如果本系統(tǒng)僅引用不維護(hù),計EIF;如果既引用又維護(hù),計ILF。
在軟件造價評估中,系統(tǒng)對接整合工作量的拆分可以根據(jù)具體情況進(jìn)行。以下是一些可能的拆分方式:
無論采用哪種拆分方式,都需要考慮到對接整合工作量的復(fù)雜性、技術(shù)難度、工作量大小等因素,并確保拆分后的工作量能夠合理地分配給相應(yīng)的開發(fā)人員或團(tuán)隊。同時,也需要注意對接整合工作的協(xié)調(diào)和管理,確保各個部分之間的接口和數(shù)據(jù)交換能夠順利進(jìn)行。
]]>