資源描述:
《軟件項目管理第5章軟件項目成本估算》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第5章軟件項目成本估算5.1軟件項目估算概述5.2軟件項目規(guī)模估算5.3軟件項目成本估算方法5.4軟件項目成本估算模型5.5小結(jié)5.1軟件項目估算概述5.1.1軟件項目估算的概念估算是建立在客觀事實上對未來可能發(fā)生的事情的一種合理性預測。估算本身的不確定性決定了估算不可能是百分之百準確無誤的,但是依據(jù)某種方法進行合理估計顯然比主觀猜測要好得多。 軟件項目估算是指預測構(gòu)造軟件項目所需要的工作量以及任務經(jīng)歷過程的時間。主要包括規(guī)模估算、工作量估算、進度估算和成本估算四個主要任務。規(guī)模估算是指根據(jù)清晰、
2、有界限的用戶需求,估算項目所包含的軟件工程任務及其規(guī)模。主要估算軟件程序的規(guī)模,即最后交付的程序和文檔的規(guī)模,在此基礎(chǔ)上考慮軟件質(zhì)量控制、軟件測試和項目管理等非程序規(guī)模因素,將其增加一定比例作為軟件項目規(guī)模,從而為工作量估算提供依據(jù)。工作量估算是指根據(jù)軟件規(guī)模估算結(jié)果,結(jié)合用戶提出的進度要求和項目的其他因素估算軟件開發(fā)所需要的工作時間。通常以人月、人年、人天、人時等作為衡量單位。對軟件項目工作量估算時需要充分考慮程序的規(guī)模、復雜度、難度、項目團隊的規(guī)模、素質(zhì),以及項目管理水平等因素。進度估算是指根據(jù)
3、軟件工作量估算結(jié)果以及用戶提出的進度要求,估算實施一系列軟件工程任務的持續(xù)時間,即軟件項目歷時估計。進度估算涉及人、財、物等項目資源的分配,形成項目進度計劃,用來跟蹤和溝通項目進展狀態(tài),也可跟蹤變更對項目的影響。 成本估算是根據(jù)軟件規(guī)模及其工作量估算結(jié)果,估算完成該項目要付出的經(jīng)濟代價。軟件項目的成本主要體現(xiàn)在人力資源成本上,但也不能忽視資源配置、軟件培訓、人員變動、進度壓縮和進度延期等因素產(chǎn)生的其他成本。 工作量估算結(jié)果和進度估算結(jié)果對于組建項目團隊具有重要作用。圖5.1客戶的需要(除非你很
4、清楚地知道客戶想要什么,否則你很難知道能否在期望的時間段內(nèi)建造客戶想要的產(chǎn)品)5.1.2軟件項目估算的意義軟件項目估算是有效的軟件項目管理必不可少的,沒有比較準確的估算,軟件項目將不可避免地造成產(chǎn)品性能的損失、軟件成本大幅度增長、項目的超支、軟件開發(fā)工作處于失控狀態(tài)和進度拖期等問題。從上述的案例也可以發(fā)現(xiàn)這里列出的一些問題。 軟件項目估算是制定項目計劃的基礎(chǔ)和依據(jù),目的就是為某個軟件項目的實施制定一個較準確的經(jīng)費預算和進度估計,從而支撐整個項目在可控的狀態(tài)下按計劃執(zhí)行,并且能夠?qū)崿F(xiàn)預期目標。除此之
5、外,還能夠為后續(xù)的軟件度量提供依據(jù),以便發(fā)現(xiàn)項目實施中存在的問題,并總結(jié)項目管理和實施的經(jīng)驗與教訓,繼而提升軟件開發(fā)企業(yè)的軟件生產(chǎn)能力和軟件項目管理人員的管理水平。值得注意的是:由于軟件自身的抽象性、軟件項目的復雜性、以往經(jīng)驗數(shù)據(jù)的可重復性、估算工具的缺乏以及人為主觀經(jīng)驗的影響,將會導致軟件項目估算與實際情況有較大差異。在項目實施之初,估算有著非常重要的意義,但這一階段的估算有較大的誤差,隨著項目計劃的逐步落實,估算結(jié)果會越來越準確,但是后期的估算將逐漸失去意義,如圖5.2所示。圖5.2軟件項目估算的
6、意義和精度(估算的意義隨項目的進展逐漸減弱,估算的精度則正好相反)因此,軟件項目估算具有以下幾個特點。(1)估算是有誤差的。實踐證明,大多數(shù)項目超過估算25%到100%,但也有少數(shù)的估算準確到10%以內(nèi)。(2)經(jīng)驗(歷史)數(shù)據(jù)非常重要,這種估算大多是利用以前的代價和經(jīng)驗作為參考而做出的。(3)估算可以借助估算工具和數(shù)學模型進行,旨在減少人為誤差,但不要過分迷信數(shù)學模型。(4)軟件開發(fā)是逐步細化的過程,估算也是隨項目的進行逐步求精的過程,因此項目估算要考慮合適的時間節(jié)點。5.1.3軟件項目估算的時機基于
7、軟件項目估算的特點,可以將估算工作與軟件產(chǎn)品的生命周期結(jié)合起來,使其既有意義,又有較高的精度。 軟件產(chǎn)品的生命周期可以劃分為問題定義、可行性研究、需求分析、構(gòu)架設(shè)計、詳細設(shè)計、編碼與測試和運行與維護等八個階段。這些階段反映了軟件開發(fā)實質(zhì)是一個逐步細化的過程,在不同階段對項目進行估算,存在著不同程度的誤差(如圖5.3所示),這種誤差隨著項目的推進具有收斂特性,并對項目實施能否成功有著重要的影響。圖5.3軟件項目估算的時機和收斂曲線(軟件項目估算的時間越早,誤差越大,意義也越大)圖5.3表明,軟件項目
8、估算要把握6個不同的時機: 粗略估算期ET1:在問題定義階段,對軟件產(chǎn)品的認識存在著諸多的不確定性,因此成本和進度估算的偏差很大,分別達到±4倍和±1.6倍,此時的估算只能作為粗略估算,很難成為項目成本和進度管理的依據(jù)。 初級精度估算期ET2:在可行性分析階段,通過研究問題確定是否存在可行的辦法,使得項目的不確定性降低了很多,成本和進度估算的偏差分別降至±2倍和±1.25倍,啟動或取消項目也能隨之定奪下來。一級精度估算期ET3:在需求分析階段,進