您的位置:軟件測試 > 軟件項目管理 > 成本管理 >
軟件項目的規(guī)模、工作量和成本是如何進(jìn)行估算的
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/6/5 13:51:40 ] 推薦標(biāo)簽:

1. 基于代碼行和功能點的估算

軟件項目的規(guī)模是影響軟件項目成本和工作量的主要因素。在基于代碼行(loc,line of code)和功能點(function point)的估算方法中,利用代碼行和功能點來表示軟件系統(tǒng)的規(guī)模,并通過對軟件項目規(guī)模的估算進(jìn)而來估算軟件項目的成本和工作量。

顯然,一個軟件項目的代碼行數(shù)目越多,它的規(guī)模也越大。軟件代碼行的數(shù)目易于度量,許多軟件開發(fā)組織和項目組都保留有以往軟件項目代碼行數(shù)目的記錄,這有助于在以往類似軟件項目代碼行記錄的基礎(chǔ)上對當(dāng)前軟件項目的規(guī)模進(jìn)行估算。

用代碼行的數(shù)目來表示軟件項目的規(guī)模簡單易行,自然、直觀且易于度量。但是其缺點也非常明顯。在軟件開發(fā)初期很難估算出終軟件系統(tǒng)的代碼行數(shù);軟件項目代碼行的數(shù)目通常依賴于程序設(shè)計語言的功能和表達(dá)能力;采用代碼行的估算方法會對那些設(shè)計精巧的軟件項目產(chǎn)生不利的影響;該方法只適合于過程式程序設(shè)計語言,不適合于非過程式程序設(shè)計語言(如函數(shù)式或者邏輯語言)。

針對上述問題,人們提出用軟件系統(tǒng)的功能數(shù)目來表示軟件系統(tǒng)的規(guī)模。1979年ibm的albrecht提出了計算功能點的方法。該方法需要對軟件系統(tǒng)的二個方面進(jìn)行評估,即評估軟件系統(tǒng)所需的內(nèi)部基本功能和外部基本功能,然后根據(jù)技術(shù)復(fù)雜度因子對這二個方面的評估結(jié)果進(jìn)行加權(quán)量化,產(chǎn)生軟件系統(tǒng)功能點數(shù)目的具體計算值。具體的,以下是軟件系統(tǒng)功能點的計算公式。

fp = ct× (0.65 + 0.01×sfi) (i=1..14)

其中,ct是5個信息量的“加權(quán)和”,fi是14個因素的“復(fù)雜性調(diào)節(jié)值”(i =1..14),0.65和0.01是經(jīng)驗常數(shù)。

ct的計算方法如表 3所示,ct =(簡單用戶輸入數(shù)×3 +一般用戶輸入數(shù)×4+復(fù)雜用戶輸入數(shù)×6)+(簡單用戶輸出數(shù)×4+一般用戶輸出數(shù)×5+復(fù)雜用戶輸出數(shù)×7)+(簡單用戶查詢數(shù)×3+一般用戶查詢數(shù)×4+復(fù)雜用戶查詢數(shù)×6)+(簡單文件數(shù)×7+一般文件數(shù)×10+復(fù)雜文件數(shù)×15)+(簡單外部界面數(shù)×5+一般外部界面數(shù)×7+復(fù)雜外部界面數(shù)×10)。其中,用戶輸入數(shù)是指由用戶提供的、用來輸入的應(yīng)用數(shù)據(jù)項的數(shù)目;用戶輸出數(shù)是指軟件系統(tǒng)為用戶提供的、向用戶輸出的應(yīng)用數(shù)據(jù)項的數(shù)目;用戶查詢數(shù)是指要求回答的交互式輸入的項;文件數(shù)是指系統(tǒng)中主文件的數(shù)目;外部界面數(shù)是指機器可讀的文件數(shù)目(如磁盤或者磁帶中的數(shù)據(jù)文件)。

表 3. ct值的加權(quán)計算

 

參數(shù)取值加權(quán)

加權(quán)因子

 

終值

簡單 一般 復(fù)雜

用戶輸入數(shù)

´3 ´4 ´6

 

用戶輸出數(shù)

´4 ´5 ´7

 

用戶查詢數(shù)

´3 ´4 ´6

 

文件數(shù)

´7 ´10 ´15

 

外部界面數(shù)

´5 ´7 ´10

 

ct=

 

fi(i=1..14)14個因素的“復(fù)雜性調(diào)節(jié)值”取值見表 4。

表 4. fi的取值表

 

序號i

問題

fi的取值(0,1,2,3,4,5)

0-沒有影響

1-偶有影響

2-輕微影響

平均影響

4-較大影響

5-嚴(yán)重影響

f1

系統(tǒng)需要可靠的備份和復(fù)原碼

f2

系統(tǒng)需要數(shù)據(jù)通信嗎

f3

系統(tǒng)有分布處理功能嗎

f4

性能是臨界狀態(tài)嗎

f5

系統(tǒng)是否在一個實用的操作系統(tǒng)下運行

f6

系統(tǒng)需要聯(lián)機數(shù)據(jù)項嗎

f7

聯(lián)機數(shù)據(jù)項是否在多屏幕或多操作之間進(jìn)行切換

f8

需要聯(lián)機更新主文件嗎

f9

輸入、輸出、查詢和文件很復(fù)雜嗎

f10

內(nèi)部處理復(fù)雜嗎

f11

代碼需要被設(shè)計成可重用嗎

f12

設(shè)計中需要包括轉(zhuǎn)換和安裝嗎

f13

系統(tǒng)的設(shè)計支持不同組織的多次安裝嗎

f14

應(yīng)用的設(shè)計方便用戶修改和使用嗎

例如,假設(shè)項目組要開發(fā)一個軟件項目a。根據(jù)用戶的需求描述,該軟件項目的ct取值如表 5所示。進(jìn)一步的,假設(shè)該軟件項目的14個復(fù)雜性調(diào)節(jié)值全部取平均程度。那么根據(jù)表 5可知,該軟件項目的ct=341,14個復(fù)雜性調(diào)節(jié)因素的累加值sfi=42,因而根據(jù)公式fp = ct× (0.65 + 0.01×sfi) (i=1..14)可知,該軟件項目的功能點fp=341× (0.65 + 0.01×42) = 364.87,即該項目的功能點數(shù)目大致為364。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd