項目規模估計方法介紹


       項目成本估算是對完成項目工作所需要的 費用進行估計和計划,是 項目計划中的一個重要組成部分。要實行 成本控制,必須先估算 費用費用估算過程實際上是確定完成項目全部工作活動所需要的資源的一個費用估計值,這是一個近似值,既可以用貨幣單位表示,也可用 工時、人月、人天等其他單位表示。在進行 費用估算時,也包括各種備選方案的費用估算。
項目成本估算方法就是運用一系列科學的手段去對項目有關工程技術、經濟、社會等方面的條件和情況進行調查、研究、分析,從而推算出項目所需成本的手段。

IT項目開發成本的估算方法編輯

對於一個大型的IT軟件項目,由於項目的復雜性及IT項目的獨特性,開發成本的估算不是一件容易的事情,它需要進行一系列的估算處理,因此,主要依靠分析和類比推理的手段進行,最基本的估算方法有以下幾種:
● 成本建模技術
根據項目特征,用數學模型來預測項目的成本。一般采用歷史成本信息(這些信息與項目成本的一些軟件度量標准相關)來建立估算模型,並通過這個模型預測工作量和成本。
● 專家判定技術
也稱為Delphi法,聘請一個或多個領域專家和軟件開發技術人員,由他們分別對項目成本進行估計,並最后達成一致而獲得最終的成本。
● 類比評估技術
根據以前類似項目的實際成本作為當前項目的估算依據。
● Parkson法則
Parkson法則表示工作能夠由需要的時間來反映。在軟件 成本估計中,這意味着成本是由可獲得的資源而不是由目標評價決定的。如果一個軟件需要在12個月內由5個人來完成,那么工作量就是12 X 5 = 60個人月(PM)。
●  自頂向下估算法
成本的估算,主要依據 工作分解結構、產品的功能以及實現該功能的子功能組成形式逐層分配成本。
● 自下而上估算法
首先估計每個組成單元的成本,然后根據工作分解結構,通過累加方式得到最終的 成本估計
● 贏利定價法
軟件的成本通過估計用戶願意在該項目上的投資來計算,成本的 預算依靠客戶的預算而不是軟件的功能。
上面這些估算法都有它們的優勢和不足,不能簡單評價某種方法和好壞。在一個大型的IT項目中,通常要同時采用幾種估算方法並且比較它們估算的結果,如果采用不同方法估算的結果大相徑庭,就說明沒有收集到足夠的成本信息,應該繼續設法獲取更多的成本信息,重新進行成本估算,直到幾種方法估算的結果基本一致為止。
成本預算是在確定總體成本后的分解過程。分解主要是作兩個方面的工作:一是按工作分解結構和工作任務(工作包)分攤成本,這樣可以對照檢查每項工作的成本,出現偏差時可以確定是哪項工作出了問題;二是按工期 時段分攤成本,將 預算成本分攤到項目工期的各個時段,這樣,可以確定在未來某個時段累計應該花費的成本,並檢查偏差,評價成本 績效
目前最常用且最好用的度量方法主要用3種:面向規模( LOC)、面向功能點( FP)及 COCOMO模型的度量方法。

2面向規模(LOC)的度量

面向規模的軟件度量通過規范化質量和生產率測量的方法得到,這種測量是基於所生產軟件的規模(Size)確定的。為了與其他項目中的同類度量相比較,選擇代碼行作為規范化,這樣,就可以為每個項目產生一組簡單的、面向規模的度量標准:
●每千行代碼(KLOC)的錯誤數。
●每千行代碼行(KLOC)的缺陷數。
●每千行代碼行(KLOC)的成本。
●每千行代碼行(KLOC)的文檔頁數。
●每人月錯誤數。
●每頁文檔的成本。
面向規模的軟件度量,通常並不被認為是軟件開發過程中最優的方法,因為有很多因素直接影響代碼的行數。例如,代碼行數依靠軟件和硬件的選擇,應用商業數據庫管理系統就不用再編寫有關數據庫管理部分的代碼。而用 ADA語言就比用 FORTRAN語言的代碼行要多等。因此,在1979年Albercht提出面向功能點(FP)軟件度量。

例如,某軟件公司統計發現該公司每一萬行C語言源代碼形成的源文件(.c和.h文件)約為250K。某項目的源文件大小為3.75M,則可估計該項目源代碼大約為15萬行,該項目累計投入工作量為240人月,每人月費用為10000元(包括人均工資、福利、辦公費用公灘等),則該項目中1LOC的價值為: 
  (240×10000)/150000=16元/LOC 
  改項目的人月均代碼行數為: 
  150000/240=625LOC/人月

3面向功能點(FP)的度量

面向功能點法是由Albrecht最先提出的,並且在1983年由Albrecht和Gaffney進行了改進。功能點可由以下4個參數計算出來:
● 外部輸入和輸出數
● 外部接口數
● 用戶交互數
● 系統要用的文件數
每個參數都可以根據復雜性進行 評估,一般它們的權理為3~15.功
 
能點是通過完成如圖所示的功能點 度量計算出來的。其中,FP計數等於數量與加權因子之積,加權因子根據功能點的復雜程度取不同的值。
功能點法是通過建立一個標准來確定某個特定的測量參數(簡單、平均或復雜)的功能點數,但權重的確定多少帶有一定的主觀性。
一般,可以采用下面的方工計算功能點:
FP = 總計數值*[0.65+0.01*SUM(Fi)]
其中總計數值是上表中所得到的所有條目的總和。Fi(i=1,2,3,...14)是對以下14個問題回答的結果而得出的權重調整值(0~5)。等式中的常數和參數的加權因子是根據經驗確定的。
序號 問題
1 系統是否需要可靠的備份和恢復
2 是否需要數據通信
3 是否有分布處理功能
4 系統是否很關鍵
5 系統是否在一個已有的、很實用的操作環境中運行
6 系統是否需要聯機處理
7 聯機數據項是否需要在多屏幕或多操作之間切換以完成操作
8 是否需要聯機更新主文件
9 輸入、輸出及文件查詢是否很復雜
10 內部處理是否復雜
11 代碼是否需要設計成可復用的
12 設計中是否需要包括轉換及安裝
13 系統的設計是否支持不同組織的多次安裝
14 應用的設計是否方便用戶修改及使用
問題的答案及相應權重如下表所示
Fi的取值
0
1
2
3
4
5
沒有影響
偶有影響
輕微影響
平均影響
較大影響
嚴重影響
一旦計算出功能點,就可以采用類似面向規模的方法來使用,以便規范軟件生產率、質量及其他屬性的測量:
● 每個功能點(FP)的錯誤數。
● 每個功能點(FP)的缺陷數。
● 每個功能點(FP)的成本。
● 每個功能點(FP)的文檔頁數。
● 每人月完成的功能點(FP)數。
面向功能點(FP)和面向規模(LOC)兩種度量方法之間的關系為:LOC=AVC*功能點的數量,其中AVC是指該語言在實現一個功能點時所要用的平均代碼行數。

4COCOMO模型

COCOMO模型是目前普及程度比較高的一種自頂向下項目成本估算模型,是比較精確,易於使用的成本估算方法。該模型的項目成本估算公式為:
E=A(KDSI)b
其中:E為開發成本:DSI為項目源代碼行數,但不包括注釋行數,DSI以千行為一個基本單位,即1KDSI=1024DSI:A、b為兩個常數,具體值由項目的種類而定。
在COCOMO模中,根據開發環境及項目規模等因素,可把項目分為以下3種:
● 組織模式:指規模較小的、簡單的軟件項目;
● 半分離模式:指在南側模和復雜性上處於中等程度的軟件項目;
● 嵌入模式:指必須要求在一組緊密聯系的硬件、軟件及操作約束下開發的軟件項目。
相應的,COCOMO模型的層次也包括3種基本形式,即初級COCOMO模型、中級COCOMO模型和高級COCOMO模型。
 
==============================================================================

方法一、Delphi 法 
  Delphi法是最流行的專家評估技術,在沒有歷史數據的情況下,這種方式適用於評定過去與將來,新技術與特定程序之間的差別,但專家"專"的程度及對項目的理解程度是工作中的難點,盡管Delphi技術可以減輕這種偏差,專家評估技術在評定一個新軟件實際成本時通常用得不多,但是,這種方式對決定其它模型的輸入時特別有用。Delphi法鼓勵參加者就問題相互討論。這個技術,要求有多種軟件相關經驗人的參與,互相說服對方。 

  Delphi法的步驟是: 
  1、協調人向各專家提供項目規格和估計表格;    2、協調人召集小組會各專家討論與規模相關的因素;   3、各專家匿名填寫迭代表格; 
  4、協調人整理出一個估計總結,以迭代表的形式返回專家;   5、協調人召集小組會,討論較大的估計差異; 
  6、專家復查估計總結並在迭代表上提交另一個匿名估計;   7、重復4-6, 直到達到一個最低和最高估計的一致。  
 
方法二、 類比法 
  類比法適合評估一些與歷史項目在應用領域、環境和復雜度的相似的項目,通過新項目與歷史項目的比較得到規模估計。類比法估計結果的精確度取決於歷史項目數據的完整性和准確度,因此,用好類比法的前提條件之一是組織建立起較好的項目后評價與分析機制,對歷史項目的數據分析是可信賴的。 
  其基本步驟是: 

  1、整理出項目功能列表和實現每個功能的代碼行; 
  2、標識出每個功能列表與歷史項目的相同點和不同點,特別要注意歷史項目做得不夠的地方; 
  3、通過步驟1和2得出各個功能的估計值;   4、產生規模估計。 
  軟件項目中用類比法,往往還要解決可重用代碼的估算問題。估計可重用代碼量的最好辦法就是由程序員或系統分析員詳細地考查已存在的代碼,估算出新項目可重用的代碼中需重新設計的代碼百分比、需重新編碼或修改的代碼百分比以及需重新測試的代碼百分比。根據這三個百分比,可用下面的計算公式計算等價新代碼行: 
  等價代碼行 = [(重新設計% +重新編碼% +重新測試%)/3]× 已有代碼行  
  比如:有10,000行代碼,假定30%需要重新設計,50%需要重新編碼,70%需要重新測試,那么其等價的代碼行可以計算為: 
  [ (30% + 50% + 70%)/3 ]× 10,000 = 5,000 等價代碼行。 
  意即:重用這10000代碼相當於編寫5000代碼行的工作量。 
  方法三、功能點估計法 
  功能點測量是在需求分析階段基於系統功能的一種規模估計方法。通過研究初始應用需求來確定各種輸入、輸出、計算和數據庫需求的數量和特性。通常的步驟是: 
  1、計算輸入,輸出,查詢,主控文件,和接口需求的數目。   2、將這些數據進行加權乘。下表為一個典型的權值表。 
    功能類型  權值     輸入    4     輸出    5     查詢    4 

    主控文件  10     接口    10 
  3、估計者根據對復雜度的判斷,總數可以用+25%、0、或-25%調整。 
  據發現,對一個軟件產品的開發,功能點對項目早期的規模估計很有幫助。然而,在了解產品越多后,功能點可以轉換為軟件規模測量更常用的LOC。 
  方法四、PERT估計法 
  PERT對各個項目活動的完成時間按三種不同情況估計:一個產品的期望規模,一個最低可能估計,一個最高可能估計。用這三個估計用來得到一個產品期望規模和標准偏差的Pert 統計估計。Pert 估計可得到代碼行的期望值E, 和標准偏差SD. 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM