軟件項目估算之代碼行估算法初探
現在軟件在大多數基于計算機的系統中已成為最昂貴的部分,如果軟件成本估算的誤差很大,就會使盈利變成虧損。
軟件項目估算是一種解決問題的形式,在多數情況下,要解決的問題非常復雜,想一次性整體解決比較困難。因此,對問題進行分解,把其分解成一組較小的接近于最終解決的可控的子問題,再定義它們的特性。
估算技術一般有代碼行(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
文章來源于領測軟件測試網 http://www.kjueaiud.com/