當前位置: 首頁 » 新聞中心 > 行業新聞

行業新聞 INDUSTRY NEWS

軟件項目規模估計方法介紹

軟件項目的規模估算歷來是比較復雜的事,因為軟件本身的復雜性、歷史經驗的缺乏、估算工具缺乏以及一些人為錯誤,導致軟件項目的規模估算往往和實際情況相差甚遠。 因此,估算錯誤已被列入軟件項目失敗的四大原因之一。

  軟件工程師經常會被問到,編一個什么什么樣的軟件需要多長時間、多少錢。面對這個問題,有不少人很犯難,因為,第一用戶的需求太不具體,第二,自己缺乏一個科學的估計方法。這里向大家介紹幾種軟件項目規模的估計方法。

概念介紹

  先介紹一個衡量軟件項目規模最常用的概念--LOC(Line of Code),LOC指所有的可執行的源代碼行數,包括可交付的工作控制語言(JCL:Job Control Language)語句、數據定義、數據類型聲明、等價聲明、輸入/輸出格式聲明等。一代碼行(1LOC)的價值和人月均代碼行數可以體現一個軟件生產組織的生產能力。組織可以根據對歷史項目的審計來核算組織的單行代碼價值。

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

 。240×10000)/150000=16元/LOC

  改項目的人月均代碼行數為:

  150000/240=625LOC/人月

方法一、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.

  詳細的估計方法,讀者可參考筆者所寫的《應用PERT進行項目工期估計》一文,這里不再贅述。