現在軟體在大多數基于計算機的系統中已成為最昂貴的部分,如果軟體成本估算的誤差很大,就會使盈利變成虧損。
軟體項目估算是一種解決問題的形式,在多數情況下,要解決的問題非常複雜,想一次性整體解決比較困難。是以,對問題進行分解,把其分解成一組較小的接近于最終解決的可控的子問題,再定義它們的特性。
估算技術一般有代碼行(LOC)和功能點(FP)估算法,這是兩種不同的估算技術,但有許多共同特性。項目計劃人員首先給出一個有界的軟體範圍的叙述,再由此嘗試着把軟體分解成一些小的可分别獨立進行估算的子功能。然後對每一個子功能估算其LOC或FP(即估算變量)。接着,把基線生産率度量用做特定的估算變量,導出子功能的成本或工作量。将子功能的估算進行綜合後就能得到整個項目的總估算。
LOC或FP估算技術對于分解所需要的詳細程度是不同的。當用LOC作為估算變量時,功能分解是絕對必要的且需要達到很詳細的程度。而估算功能點所需要的資料是宏觀的量,當把FP當做估算變量時所需要的分解程度可以不很詳細。LOC是直接估算的,而FP是通過估計輸入、輸出、資料檔案、查詢和外部接口的數目,以及複雜性校正值間接地确定的。除去所用到的估算變量,項目計劃人員必須對每一個分解的功能提出一個有代表性的估算值範圍。利用曆史資料或憑實際經驗,計劃人員對每個功能分别按樂觀的、可能的、悲觀的三種情況給出LOC或FP估計值。
為了反映開發特性的影響,應當随時修正平均生産率。
1 LOC(Lines of Code,代碼行)估算代碼尺寸
把項目劃分為若幹個功能,分别計算每個功能的代碼長度,所有功能代碼行之和即項目的代碼長度。
LOC估算表包括:
每個功能的代碼長度估算值=(樂觀值+4*可能值+悲觀值)/6
估算工作量=代碼總估算長度/估算生産率
估算總成本=日薪*估算工作量
估算行成本=估算總成本/估算代碼長度
估算生産率由經驗獲得
2 FP(功能點)估算代碼尺寸
項目的功能點數是幾個測量參數(使用者輸入數、使用者輸出數、使用者查詢數、檔案數、外部接口數)的功能點之和。
使用者輸入數:計算每個使用者輸入,它們向軟體提供面向應用的資料。輸入應該與查詢區分開來,分别計算。
使用者輸出數:計算每個使用者輸出,它們向軟體提供面向應用的資訊。這裡,輸出是指報表、螢幕、出錯資訊,等等。一個報表中的單個資料項不單獨計算。
使用者查詢數:一個查詢被定義為一次聯機輸入,它導緻軟體以聯機輸出的方式産生實時的響應。每一個不同的查詢都要計算。
檔案數:計算每個邏輯的主檔案(如資料的一個邏輯組合,它可能是某個大型資料庫的一部分或是一個獨立的檔案)。
外部接口數:計算所有機器可讀的接口(如錄音帶或磁盤上的資料檔案),利用這些接口可以将資訊從一個系統傳送到另一個系統。
FP估算表包括:
每個測量參數的估算FP計數=估算值*權重因子
項目估算FP=各參數FP計數之和*複雜度調整因子
估算工作量=項目估算FP/估算生産率
單個FP估算成本=估算總成本/估算FP
版權
作者:靈動生活 郝憲玮
如果你認為此文章有用,請點選底端的【推薦】讓其他人也了解此文章,

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。