2012年軟件水平考試備考輔導(dǎo):估算方法
無論有經(jīng)驗的軟件工程師還是新手軟件開發(fā)人員,在開始開發(fā)項目之前,都會有一個或粗或細的開發(fā)計劃,如何使計劃更接近實際?
為了更精確地制訂計劃,可以把項目劃分為若干個小任務(wù),分別制定每個任務(wù)的完成計劃。工作量的安排可參考LOC估算工作量或FP估算工作量,通過LOC估算表或FP估算表,可以查看估算工作量的值,隨后將會詳細介紹項目應(yīng)該文檔化項目計劃,該計劃包括產(chǎn)品規(guī)模、資源、成員水平、進度和里程碑的估算。歷史數(shù)據(jù)表明,軟件項目的成本和進度會被低估很多。其原因如下:
A) 成本和進度經(jīng)常被外界因素提前決定
B) 沒有對軟件開發(fā)過程進行深度分析或者因一些原因沒有被完全理解
C) 通常欠缺軟件開發(fā)是一項昂貴的工作的意識
對于軟件項目而言,精確估計產(chǎn)品的開發(fā)與交付進度是很困難的。對此微軟采取的方法是將進度安排和工作管理的責(zé)任推到底層,即單個的開發(fā)人員和測試人員那兒去。這保證了每個人除了作為小組的一部分外,還負有個人的責(zé)任。單獨的開發(fā)人員設(shè)立他們自已的進度表,程序經(jīng)理把單獨的進度表匯總起來,再加上緩沖時間,以制定出一個全面的項目進度表。頂層的總經(jīng)理也固定人員與時間等基本資源,以確保項目集中并限制其努力與創(chuàng)造程序。
開發(fā)人員做出他們自已的進度估計。但是開發(fā)人員一般會做出較樂觀的估計,因此開發(fā)經(jīng)理還需對他們所提供的日期進行調(diào)整并加上緩沖時間以避免因因信息不完全而出現(xiàn)的問題。微軟這種制定進度的方法的優(yōu)點在于:它從人們那兒得到更多的合作,因為日期是自已定的,不是經(jīng)理定的;進度總是富有進取性,因為開發(fā)人員不可避免地會低估他們真正需要的時間。
與開發(fā)人員一起來確定每項任務(wù)的工作量和工期,充分利用了集體的智慧,調(diào)動了所有員工的積極性。
對工作結(jié)構(gòu)分解:
進行估算精確的方法通常是建立一個將工作分解開的結(jié)構(gòu)。這就需要在一個很高的層面描述工作,然后將該工作分解成更小的部分,直到每項活動都能夠被估算在80/40小時以內(nèi)完成。(或者如果項目比較小的話,就是40/20個小時。)這通常也需要花費很多時間和精力。但是,如果你非常好地了解了這項工作,而且如果你能夠確定所需要的工作都已經(jīng)包括進了你的工作分解結(jié)構(gòu)里,那么你就常常取得獲得一個精確的估算。
功能估算和預(yù)算制訂
a.估算方法
i. Delphi technique 德爾菲法
ii. Function points 功能點
德爾菲法
德爾菲法是在20世紀60年代由美國蘭德公司首創(chuàng)和使用的一種特殊的策劃方法。德爾菲是古希臘的一座城市,因阿波羅神殿而馳名,由于阿波羅有著高超的預(yù)測未來的能力,故德爾菲成了預(yù)測、策劃的代名詞。
所謂德爾菲法是指采用函詢的方式或電話、網(wǎng)絡(luò)的方式,反復(fù)咨詢專家們的建議,然后由策劃人作出統(tǒng)計,如果結(jié)果不趨向一致,那么就再征詢專家,直至得出比較統(tǒng)一的方案。這種策劃方法的優(yōu)點是:專家們互不見面,不能產(chǎn)生權(quán)威壓力,因此,可以自由地充分地發(fā)表自己的意見,從而得出比較客觀的策劃案。
運用這種策劃方法時,要求專家具備策劃主題相關(guān)的專業(yè)知識,熟悉市場的情況,精通策劃的業(yè)務(wù)操作。專家的意見得出結(jié)果后,策劃人需要對結(jié)果進行統(tǒng)計處理。但是這種方法缺乏客觀標準,主要憑專家判斷,再者由于次數(shù)較多,反饋時間較長,有的專家可能因工作忙或其它原因而中途退出,影響策劃的準確性。
FP(功能點)估算代碼尺寸
項目的功能點數(shù)是幾個測量參數(shù)(用戶輸入數(shù)、用戶輸出數(shù)、用戶查詢數(shù)、文件數(shù)、外部接口數(shù))的功能點之和。
用戶輸入數(shù):計算每個用戶輸入,它們向軟件提供面向應(yīng)用的數(shù)據(jù)。輸入應(yīng)該與查詢區(qū)分開來,分別計算。
用戶輸出數(shù):計算每個用戶輸出,它們向軟件提供面向應(yīng)用的信息。這里,輸出是指報表、屏幕、出錯信息,等等。一個報表中的單個數(shù)據(jù)項不單獨計算。
用戶查詢數(shù):一個查詢被定義為聯(lián)機輸入,它導(dǎo)致軟件以聯(lián)機輸出的方式產(chǎn)生實時的響應(yīng)。每一個不同的查詢都要計算。
文件數(shù):計算每個邏輯的主文件(如數(shù)據(jù)的一個邏輯組合,它可能是某個大型數(shù)據(jù)庫的一部分或是一個獨立的文件)。
外部接口數(shù):計算所有機器可讀的接口(如磁帶或磁盤上的數(shù)據(jù)文件),利用這些接口可以將信息從一個系統(tǒng)傳送到另一個系統(tǒng)。
FP估算表包括
1、每個測量參數(shù)的估算FP計數(shù)=估算值*加權(quán)因子
2、項目估算FP=各參數(shù)FP計數(shù)之和*復(fù)雜度調(diào)整因子
3、估算生產(chǎn)率由經(jīng)驗獲得
4、估算工作量=項目估算FP/估算生產(chǎn)率
5、估算總成本=日薪*估算工作量
6、單個FP估算成本=估算總成本/估算FP
LOC(Lines of Code)估算代碼尺寸
把項目劃分為若干個功能,分別計算每個功能的代碼長度,所有功能代碼行之和即項目的代碼長度。
LOC估算表包括:
1、每個功能的代碼長度估算值=(樂觀值+4*可能值+悲觀值)/6
2、估算工作量=代碼總估算長度/估算生產(chǎn)率
3、估算總成本=日薪*估算工作量
4、估算行成本=估算總成本/估算代碼長度
5、估算生產(chǎn)率由經(jīng)驗獲得
b.利用計劃評審技術(shù)
無論有經(jīng)驗的軟件工程師還是新手軟件開發(fā)人員,在開始開發(fā)項目之前,都會有一個或粗或細的開發(fā)計劃,如何使計劃更接近實際?
為了更精確地制訂計劃,可以把項目劃分為若干個小任務(wù),分別制定每個任務(wù)的完成計劃。工作量的安排可參考LOC估算工作量或FP估算工作量,通過LOC估算表或FP估算表,可以查看估算工作量的值,隨后將會詳細介紹項目應(yīng)該文檔化項目計劃,該計劃包括產(chǎn)品規(guī)模、資源、成員水平、進度和里程碑的估算。歷史數(shù)據(jù)表明,軟件項目的成本和進度會被低估很多。其原因如下:
A) 成本和進度經(jīng)常被外界因素提前決定
B) 沒有對軟件開發(fā)過程進行深度分析或者因一些原因沒有被完全理解
C) 通常欠缺軟件開發(fā)是一項昂貴的工作的意識
對于軟件項目而言,精確估計產(chǎn)品的開發(fā)與交付進度是很困難的。對此微軟采取的方法是將進度安排和工作管理的責(zé)任推到底層,即單個的開發(fā)人員和測試人員那兒去。這保證了每個人除了作為小組的一部分外,還負有個人的責(zé)任。單獨的開發(fā)人員設(shè)立他們自已的進度表,程序經(jīng)理把單獨的進度表匯總起來,再加上緩沖時間,以制定出一個全面的項目進度表。頂層的總經(jīng)理也固定人員與時間等基本資源,以確保項目集中并限制其努力與創(chuàng)造程序。
開發(fā)人員做出他們自已的進度估計。但是開發(fā)人員一般會做出較樂觀的估計,因此開發(fā)經(jīng)理還需對他們所提供的日期進行調(diào)整并加上緩沖時間以避免因因信息不完全而出現(xiàn)的問題。微軟這種制定進度的方法的優(yōu)點在于:它從人們那兒得到更多的合作,因為日期是自已定的,不是經(jīng)理定的;進度總是富有進取性,因為開發(fā)人員不可避免地會低估他們真正需要的時間。
與開發(fā)人員一起來確定每項任務(wù)的工作量和工期,充分利用了集體的智慧,調(diào)動了所有員工的積極性。
對工作結(jié)構(gòu)分解:
進行估算精確的方法通常是建立一個將工作分解開的結(jié)構(gòu)。這就需要在一個很高的層面描述工作,然后將該工作分解成更小的部分,直到每項活動都能夠被估算在80/40小時以內(nèi)完成。(或者如果項目比較小的話,就是40/20個小時。)這通常也需要花費很多時間和精力。但是,如果你非常好地了解了這項工作,而且如果你能夠確定所需要的工作都已經(jīng)包括進了你的工作分解結(jié)構(gòu)里,那么你就常常取得獲得一個精確的估算。
功能估算和預(yù)算制訂
a.估算方法
i. Delphi technique 德爾菲法
ii. Function points 功能點
德爾菲法
德爾菲法是在20世紀60年代由美國蘭德公司首創(chuàng)和使用的一種特殊的策劃方法。德爾菲是古希臘的一座城市,因阿波羅神殿而馳名,由于阿波羅有著高超的預(yù)測未來的能力,故德爾菲成了預(yù)測、策劃的代名詞。
所謂德爾菲法是指采用函詢的方式或電話、網(wǎng)絡(luò)的方式,反復(fù)咨詢專家們的建議,然后由策劃人作出統(tǒng)計,如果結(jié)果不趨向一致,那么就再征詢專家,直至得出比較統(tǒng)一的方案。這種策劃方法的優(yōu)點是:專家們互不見面,不能產(chǎn)生權(quán)威壓力,因此,可以自由地充分地發(fā)表自己的意見,從而得出比較客觀的策劃案。
運用這種策劃方法時,要求專家具備策劃主題相關(guān)的專業(yè)知識,熟悉市場的情況,精通策劃的業(yè)務(wù)操作。專家的意見得出結(jié)果后,策劃人需要對結(jié)果進行統(tǒng)計處理。但是這種方法缺乏客觀標準,主要憑專家判斷,再者由于次數(shù)較多,反饋時間較長,有的專家可能因工作忙或其它原因而中途退出,影響策劃的準確性。
FP(功能點)估算代碼尺寸
項目的功能點數(shù)是幾個測量參數(shù)(用戶輸入數(shù)、用戶輸出數(shù)、用戶查詢數(shù)、文件數(shù)、外部接口數(shù))的功能點之和。
用戶輸入數(shù):計算每個用戶輸入,它們向軟件提供面向應(yīng)用的數(shù)據(jù)。輸入應(yīng)該與查詢區(qū)分開來,分別計算。
用戶輸出數(shù):計算每個用戶輸出,它們向軟件提供面向應(yīng)用的信息。這里,輸出是指報表、屏幕、出錯信息,等等。一個報表中的單個數(shù)據(jù)項不單獨計算。
用戶查詢數(shù):一個查詢被定義為聯(lián)機輸入,它導(dǎo)致軟件以聯(lián)機輸出的方式產(chǎn)生實時的響應(yīng)。每一個不同的查詢都要計算。
文件數(shù):計算每個邏輯的主文件(如數(shù)據(jù)的一個邏輯組合,它可能是某個大型數(shù)據(jù)庫的一部分或是一個獨立的文件)。
外部接口數(shù):計算所有機器可讀的接口(如磁帶或磁盤上的數(shù)據(jù)文件),利用這些接口可以將信息從一個系統(tǒng)傳送到另一個系統(tǒng)。
FP估算表包括
1、每個測量參數(shù)的估算FP計數(shù)=估算值*加權(quán)因子
2、項目估算FP=各參數(shù)FP計數(shù)之和*復(fù)雜度調(diào)整因子
3、估算生產(chǎn)率由經(jīng)驗獲得
4、估算工作量=項目估算FP/估算生產(chǎn)率
5、估算總成本=日薪*估算工作量
6、單個FP估算成本=估算總成本/估算FP
LOC(Lines of Code)估算代碼尺寸
把項目劃分為若干個功能,分別計算每個功能的代碼長度,所有功能代碼行之和即項目的代碼長度。
LOC估算表包括:
1、每個功能的代碼長度估算值=(樂觀值+4*可能值+悲觀值)/6
2、估算工作量=代碼總估算長度/估算生產(chǎn)率
3、估算總成本=日薪*估算工作量
4、估算行成本=估算總成本/估算代碼長度
5、估算生產(chǎn)率由經(jīng)驗獲得
b.利用計劃評審技術(shù)