2012軟件水平考試備考輔導(dǎo):估算方法

字號(hào):

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