探討
軟件開發(fā)是一項(xiàng)非常復(fù)雜的工程,不僅包含需求分析、設(shè)計(jì)、編碼、測(cè)試、實(shí)施、維護(hù)等完整的過程,還涉及到開發(fā)工具、開發(fā)人員、項(xiàng)目管理、風(fēng)險(xiǎn)等眾多因素,不同因素對(duì)估算產(chǎn)生的影響不盡相同,在進(jìn)行軟件估算時(shí)(包括利用工具輔助估算)必須考慮到這些方面,否則最終結(jié)果就會(huì)和實(shí)際結(jié)果有很大的偏差,影響項(xiàng)目控制,以下對(duì)其中幾個(gè)常見的因素做一些探討。
2.1估算與軟件規(guī)模
軟件規(guī)模通常指的是軟件的大小,這可以通過不同的方式來描述,比如程序代碼行的長(zhǎng)度、功能函數(shù)的數(shù)量、數(shù)據(jù)庫中表的數(shù)量、數(shù)據(jù)庫的大小等等。一般而言軟件規(guī)模越大,所花費(fèi)的開發(fā)周期就越長(zhǎng),但這并不是一個(gè)簡(jiǎn)單的線形函數(shù)關(guān)系,下表詳細(xì)列舉了實(shí)際開發(fā)中的一些數(shù)據(jù),開發(fā)平臺(tái)為L(zhǎng)otus Domino/Notes。
序號(hào) 模塊 開發(fā)周期(中級(jí)程序員) 代碼行長(zhǎng)度 數(shù)據(jù)庫大小(無數(shù)據(jù))
1. 辦事指南 0.25人月 300 1170K
2. 名片簿 0.25人月 300 1039K
3. 合同管理 0.25人月 460 2110K
4. 物控管理 0.5人月 850 2560K
5. 組織機(jī)構(gòu) 0.5人月 900 1318K
6. 流程管理 0.8人月 1000 2304K
7. 公告板 0.5人月 1400 2560K
8. 人事管理 1人月 1800 3840K
9. 公文管理 1.8人月 2500 2304K
10. 事務(wù)審批 1.5人月 3750 2110K
11. 考勤管理 1.8人月 4800 3840K
12. 資源管理 1.8人月 5800 3840K
13. 會(huì)議管理 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ā)
某保險(xiǎn)客戶 16個(gè)人月 18個(gè) 完全重新開發(fā)
模塊的代碼行越長(zhǎng),開發(fā)周期就越長(zhǎng),對(duì)同一開發(fā)工具而言基本是一個(gè)線形關(guān)系,但其中也要考慮代碼重用問題,比如一個(gè)模塊代碼很長(zhǎng),但是可能包含了很多公用函數(shù),那么在估算時(shí)就應(yīng)適當(dāng)減少代碼行數(shù)量,表中會(huì)議管理就是個(gè)例子,這個(gè)模塊的代碼行超過一萬行,但其中公共函數(shù)很多,去除此因素,真正的代碼行在9000行左右。
從普通意義上說軟件項(xiàng)目中包含的功能模塊越多、越復(fù)雜,或者說軟件越大開發(fā)周期增長(zhǎng)的就越快,這個(gè)時(shí)間絕不是模塊開發(fā)時(shí)間的簡(jiǎn)單疊加,因?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ā)周期就長(zhǎng)的多。
在實(shí)際進(jìn)行軟件開發(fā)周期估算的時(shí)候,軟件規(guī)??隙ㄊ鞘紫瓤紤]的因素,根據(jù)我們上面所討論的情況,在考慮軟件規(guī)模時(shí)一定要去除可重用的部分,由于當(dāng)今軟件在設(shè)計(jì)上很重視這點(diǎn),所以這部分會(huì)占相當(dāng)?shù)谋戎?。另外軟件功能之間的關(guān)聯(lián)所造成的復(fù)雜性必須足夠重視,這樣在估算上就不會(huì)產(chǎn)生重大偏差。
2.2估算與人力資源
對(duì)于軟件開發(fā)項(xiàng)目來說,人力資源是核心力量,因?yàn)檐浖_發(fā)不同于其它類型的項(xiàng)目,除了電腦它不需要利用其它工具,最終結(jié)果的產(chǎn)生完全取決于人腦中的知識(shí),這也是知識(shí)經(jīng)濟(jì)的最大特點(diǎn)。
&nbs