您的位置:軟件測試 > 軟件項目管理 > 項目計劃 >
軟件開發(fā)周期估算及探討-代碼實例講解
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/7/15 14:33:06 ] 推薦標(biāo)簽:

  1.概述

  軟件開發(fā)周期估算是IT人員經(jīng)常提到的一個概念,那么究竟什么是軟件開發(fā)周期估算呢?我們可以把它定義如下:根據(jù)軟件的開發(fā)內(nèi)容、開發(fā)工具、開發(fā)人員等因素對需求調(diào)研、程序設(shè)計、編碼、測試等整個開發(fā)過程所花費的時間做的預(yù)測。在這個定義中,“預(yù)測”兩個字非常關(guān)鍵,它突出體現(xiàn)了估算的含義,同時也隱含表明了結(jié)果的不確定性。有效的軟件開發(fā)周期估算在軟件開發(fā)中是非常困難的工序之一,之所以說困難,是因為軟件開發(fā)所涉及的因素不僅多而且異常復(fù)雜,即便是及其類似的軟件項目也不能完全照搬,在估算的把握上有一定難度。估算也是軟件開發(fā)中很重要的一個環(huán)節(jié),如果低估項目周期會造成人力低估、成本預(yù)算低估、日程過短,終耗盡,成本超出預(yù)算,為完成項目不得不趕工,影響項目質(zhì)量,甚至導(dǎo)致項目失敗。項目周期估計過長表面看來影響不大,但是實際上也會帶來成本估計過高,人力利用不充分效率低下的后果。無論哪種情況對于控制整個項目都會帶來很大影響,周期估算如同蓋樓房中打地基,是后續(xù)工作的基礎(chǔ),它完成質(zhì)量的好壞所帶來的影響會貫穿整個項目,由此可見開發(fā)周期正確估算的重要性。

  2.國內(nèi)外軟件估算比較

  國內(nèi)軟件開發(fā)的管理目前正逐步向規(guī)范化發(fā)展,但是在開發(fā)周期的估算上絕大部分還是處于手工作坊的狀態(tài)。所謂的手工作坊指兩個方面,一方面是管理人員意識上沒有認(rèn)識到估算的重要性,認(rèn)為估算是一個大概的估計,很多還受限于商業(yè)行為,比如為了簽訂合同而不惜減少開發(fā)工作量卻未經(jīng)任何評審;另一方面也沒有專門的工具來輔助估算,或者說沒有專門對它進(jìn)行研究。一個軟件開發(fā)周期究竟要多長基本上是依靠經(jīng)驗來判斷,不同經(jīng)驗的人估算出的周期相差很大,而更糟糕的是這種開發(fā)周期的判斷由于完全憑借經(jīng)驗使得不同意見的人之間很難,因為誰都沒有確切的量化來支持自己的判斷,終的結(jié)果往往是以“專家”的估算為準(zhǔn)。這有些類似于中式烹調(diào),放多少作料沒有依據(jù),一般都是“少許”,這個“少許”靠的是經(jīng)驗,高級廚師和根據(jù)這個量炒出的菜味道可能差得很遠(yuǎn);實際上國內(nèi)的軟件開發(fā)需要的正是定量估算,這樣做不僅規(guī)范而且精確,十分有助于軟件事業(yè)的健康發(fā)展以及與國際接軌。

  國外發(fā)達(dá)在軟件估算上比國內(nèi)要成熟的多,不僅有很多先進(jìn)方法比如代碼行估算法、功能點估算法、人力估算法,而且形成了專業(yè)化的估算工具來輔助這項工作,比如公司開發(fā)的軟件Project,加拿大Software Productivity Center Inc.公司開發(fā)的Estimate,都是比較成熟的估算輔助工具。Project采用了自下而上的估算法,Estimate更是屬于專業(yè)化工具,包含常用的各種估算方法、校正方法,使用了Putnam Methodology、Cocomo II和 Monte Carlo Simulation幾種成熟算法,估算結(jié)果除了項目花費時間、人力,還包括十幾種分析報告以及模擬發(fā)散圖、計劃編制選項圖、人力圖、預(yù)計缺陷圖、缺陷方差圖等等,從各種不同角度輔助管理人員進(jìn)行分析。

  采用輔助工具對軟件開發(fā)周期進(jìn)行估算具有明顯的優(yōu)勢,這些輔助工具是在大量不同類型項目數(shù)據(jù)研究的基礎(chǔ)上總結(jié)開發(fā)出來的,采用的算法、估算的方法已經(jīng)很成熟,估算結(jié)果的準(zhǔn)確性有保障,由于這種估算是可以量化的,并非依據(jù)個人經(jīng)驗直接得出一個結(jié)果,在結(jié)果的評審上有據(jù)可依。長期依靠工具輔助估算可以將大量項目的數(shù)據(jù)和估算結(jié)果積累形成歷史經(jīng)驗庫,知識成果得以保存,便于以后利用。

  3. 軟件估算中的因素探討

  軟件開發(fā)是一項非常復(fù)雜的工程,不僅包含需求分析、設(shè)計、編碼、測試、實施、維護(hù)等完整的過程,還涉及到開發(fā)工具、開發(fā)人員、項目管理、等眾多因素,不同因素對估算產(chǎn)生的影響不盡相同,在進(jìn)行軟件估算時(包括利用工具輔助估算)必須考慮到這些方面,否則終結(jié)果會和實際結(jié)果有很大的偏差,影響項目控制,以下對其中幾個常見的因素做一些探討。

  3.1估算與軟件規(guī)模

  軟件規(guī)模通常指的是軟件的大小,這可以通過不同的方式來描述,比如程序代碼行的長度、功能函數(shù)的數(shù)量、數(shù)據(jù)庫中表的數(shù)量、數(shù)據(jù)庫的大小等等。一般而言軟件規(guī)模越大,所花費的開發(fā)周期越長,但這并不是一個簡單的線形函數(shù)關(guān)系,下表詳細(xì)列舉了實際開發(fā)中的一些數(shù)據(jù),開發(fā)為Lotus Domino/Notes.

  表一

  單個模塊的開發(fā)周期

  序號 模塊 開發(fā)周期(中級) 代碼行長度 數(shù)據(jù)庫大。o數(shù)據(jù))
辦事指南 0.25人月 300 1170K
名片簿 0.25人月 300 1039K
0.25人月 460 2110K
物控管理 0.5人月 850 2560K 來源"歲月聯(lián)盟"
組織機(jī)構(gòu) 0.5人月 900 1318K [信息來源"歲月聯(lián)盟"]
流程管理 0.8人月 1000 2304K
公告板 0.5人月 1400 2560K
人事管理 1人月 1800 3840K
公文管理 1.8人月 2500 2304K
事務(wù)審批 1.5人月 3750 2110K
考勤管理 1.8人月 4800 3840K
管理 1.8人月 5800 3840K
管理 2.5人月 11000 4608K

  表二

  軟件項目的開發(fā)周期

  軟件項目 開發(fā)周期 包含的模塊 備注
某政府客戶 3個人月 10個 定制開發(fā)量較小
某媒體客戶 6個人月 17個 有3個模塊完全重新開發(fā)
某金融客戶 10個人月 14個 80%完全重新開發(fā)
某金融客戶 10個人月 14個 80%完全重新開發(fā)

  從表一中可以看出,模塊的代碼行越長,開發(fā)周期越長,對同一開發(fā)工具而言基本是一個線形關(guān)系,但其中也要考慮代碼重用問題,比如一個模塊代碼很長,但是可能包含了很多公用函數(shù),那么在估算時應(yīng)適當(dāng)減少代碼行數(shù)量,表中會議管理是個例子,這個模塊的代碼行超過一萬行,但其中公共函數(shù)很多,去除此因素,真正的代碼行在9000行左右

  表二是軟件項目的實際開發(fā)周期(不考慮系統(tǒng)實施),從普通意義上說軟件項目中包含的功能模塊越多、越復(fù)雜,或者說軟件越大開發(fā)周期增長的越快,這個時間絕不是模塊開發(fā)時間的簡單疊加,因為模塊功能數(shù)量的增加直接帶來了軟模塊間相互關(guān)聯(lián)度、復(fù)雜度的成倍增加,這直接導(dǎo)致了在需求、設(shè)計等階段需要花費更多的時間,這比單獨考慮一個模塊復(fù)雜的多。在表二中隨著模塊數(shù)量增加,開發(fā)周期增加不是特別明顯,這是因為產(chǎn)品化程度高所引起的,由于相當(dāng)數(shù)量的模塊可以完全重用,實際開發(fā)量大大減少,后一個例子完全重新開發(fā),開發(fā)周期長的多。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd