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

  1.概述

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

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

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

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

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

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

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

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

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

  表一

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

  序號 模塊 開發(fā)周期(中級) 代碼行長度 數(shù)據(jù)庫大小(無數(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

  表二

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

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

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

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

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