軟體專案的規模估算歷來是比較複雜的事,因為軟體本身的複雜性、歷史經驗的缺乏、估算工具缺乏以及一些人為錯誤,導致軟體專案的規模估算往往和實際情況相差甚遠。 因此,估算錯誤已被列入軟體專案失敗的四大原因之一。
軟體工程師經常會被問到,編乙個什麼什麼樣的軟體需要多長時間、多少錢。面對這個問題,有不少人很犯難,因為,第一使用者的需求太不具體,第二,自己缺乏乙個科學的估計方法。這裡向大家介紹幾種軟體專案規模的估計方法。
概念介紹
先介紹乙個衡量軟體專案規模最常用的概念--loc(line of code),loc指所有的可執行的源**行數,包括可交付的工作控制語言(jcl:job control language)語句、資料定義、資料型別宣告、等價宣告、輸入/輸出格式宣告等。一**行(1loc)的價值和人月均**行數可以體現乙個軟體生產組織的生產能力。組織可以根據對歷史專案的審計來核算組織的單行**價值。
例如,某軟體公司統計發現該公司每一萬行c語言源**形成的原始檔(.c和.**件)約為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.
詳細的估計方法
軟體專案規模評估
顧名思義軟體評估就是對軟體專案的規模進度做出乙個合適評估以判斷軟體專案的預算以及專案計畫。軟體評估是軟體工程的乙個最底層基礎,也是在軟體專案實施時必經非常核心的乙個步驟。對於乙個軟體專案,只有對其大致的評估後,才能掌握大致的軟體成本,人力資源配備,同時也是做專案計畫的基礎。軟體評估,評估的是軟體規模...
深度估計方法的介紹
目前大多數深度估計方法是通過2d的到2.5d的表面形狀 場景深度 比較成功的基於幾何影象方法包括 structure from motion,shape from x,monocular stereo,binocular stereo和multi view stereo 其中shape from x...
軟體規模的估算方法
軟體專案的規模估算歷來是比較複雜的事,因為軟體本身的複雜性 歷史經驗的缺乏 估算工具缺乏以及一些人為錯誤,導致軟體專案的規模估算往往和實際情況相差甚遠。因此,估算錯誤已被列入軟體專案失敗的四大原因之一。軟體工程師經常會被問到,編乙個什麼什麼樣的軟體需要多長時間 多少錢。面對這個問題,有不少人很犯難,...