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

  在實(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)生重大偏差。

  3.2估算與項(xiàng)目

  任何一個(gè)項(xiàng)目都或多或少存在風(fēng)險(xiǎn),軟件項(xiàng)目開發(fā)過(guò)程中也避免不了這種情況而且有這類項(xiàng)目自己的特點(diǎn),常見(jiàn)的風(fēng)險(xiǎn)有以下幾種:技術(shù)風(fēng)險(xiǎn),項(xiàng)目技術(shù)難度很大,花費(fèi)的時(shí)間超過(guò)原先的估計(jì);客戶風(fēng)險(xiǎn),客戶需求不定,增加需求,組織協(xié)調(diào)不暢;人員風(fēng)險(xiǎn),開發(fā)人員突然更換、離職;管理風(fēng)險(xiǎn),管理不善、決策失誤。對(duì)于風(fēng)險(xiǎn)控制,在項(xiàng)目管理中通常是提前做風(fēng)險(xiǎn)分析和預(yù)測(cè),制定風(fēng)險(xiǎn)應(yīng)對(duì)措施,這樣在風(fēng)險(xiǎn)真的來(lái)臨時(shí)不至于措手不及,提高整個(gè)項(xiàng)目的可控性。

  軟件項(xiàng)目的潛在風(fēng)險(xiǎn)對(duì)于開發(fā)周期的影響在很多情況下是非常大的,當(dāng)然好的項(xiàng)目控制會(huì)大限度的減少這種影響,避免是不可能的,所以在開發(fā)周期估算時(shí)項(xiàng)目風(fēng)險(xiǎn)應(yīng)該適當(dāng)考慮,尤其是技術(shù)風(fēng)險(xiǎn)和客戶風(fēng)險(xiǎn)。

  技術(shù)風(fēng)險(xiǎn)主要來(lái)自于軟件本身的技術(shù)難度,如果對(duì)于一套成熟的產(chǎn)品,定制開發(fā)的技術(shù)風(fēng)險(xiǎn)相對(duì)非常小,因?yàn)橹匾募夹g(shù)已經(jīng)成型,客戶也很少有新的能帶來(lái)高難度技術(shù)問(wèn)題的需求,這種風(fēng)險(xiǎn)可以不予考慮。但是對(duì)于完全重新開發(fā)的項(xiàng)目,或是研發(fā)類的項(xiàng)目,技術(shù)風(fēng)險(xiǎn)必須特別重視,其中應(yīng)該考慮的細(xì)節(jié)主要包括下面幾個(gè)。開發(fā),是否能適合本項(xiàng)目所涉及的軟件開發(fā)、能否滿足終的需求,平臺(tái)的錯(cuò)誤選擇將導(dǎo)致龐大的開發(fā)工作量,即便滿足了用戶需求也可能造成系統(tǒng)效率低下,擴(kuò)展性差的致命問(wèn)題,軟件可能會(huì)很快被淘汰。功能實(shí)現(xiàn)難度,在切實(shí)了解需求的基礎(chǔ)上要仔細(xì)分析采用的開發(fā)工具能否實(shí)現(xiàn)其中的難點(diǎn),是否會(huì)耗費(fèi)大量時(shí)間。

  在實(shí)際估算中,建議技術(shù)難度分為十級(jí),每一級(jí)在初次估算的代碼行上增加10%,終估算代碼長(zhǎng)度=初始估算代碼長(zhǎng)度×(1+0.1×n)。假設(shè)模塊A的初次估計(jì)代碼行為15000行,但考慮技術(shù)難度高的,設(shè)定技術(shù)難度級(jí)別為二級(jí),終代碼行的估算數(shù)量為15000X(1+20%)=18000.

  由于技術(shù)風(fēng)險(xiǎn)的分析是一項(xiàng)技術(shù)性很強(qiáng)的工作,要求做技術(shù)風(fēng)險(xiǎn)分析的人必須是技術(shù)專家,在相關(guān)技術(shù)領(lǐng)域有著豐富的經(jīng)驗(yàn),對(duì)重大技術(shù)風(fēng)險(xiǎn)的分析結(jié)果必須要經(jīng)過(guò)評(píng)審,保證準(zhǔn)確性。

  客戶風(fēng)險(xiǎn)存在于客戶化項(xiàng)目中,不同行業(yè)的客戶特點(diǎn)不盡相同,技術(shù)、理解水平也相差甚遠(yuǎn),在我經(jīng)歷開發(fā)的項(xiàng)目中,80%的項(xiàng)目延期屬于客戶方的原因,而且這種風(fēng)險(xiǎn)可控性很低,對(duì)項(xiàng)目影響超過(guò)技術(shù)風(fēng)險(xiǎn)。在開發(fā)周期估算前,要仔細(xì)分析客戶的具體狀況,包括客戶的計(jì)算機(jī)水平、管理水平、可程度,在此基礎(chǔ)上結(jié)合以往的經(jīng)驗(yàn)綜合判斷是否會(huì)對(duì)開發(fā)帶來(lái)明顯的影響,可以按照上述的技術(shù)風(fēng)險(xiǎn)的方式將客戶分級(jí),終確定開發(fā)周期。在這個(gè)過(guò)程中,項(xiàng)目經(jīng)理的經(jīng)驗(yàn)極其重要,對(duì)客戶的分析基本上要依賴經(jīng)驗(yàn)做判斷,要求管理人員有大量的客戶經(jīng)驗(yàn)和行業(yè)分析能力。

  3.3估算與對(duì)于軟件開發(fā)項(xiàng)目來(lái)說(shuō),人力是核心力量,因?yàn)檐浖_發(fā)不同于其它類型的項(xiàng)目,除了電腦它不需要利用其它工具,終結(jié)果的產(chǎn)生完全取決于人腦中的知識(shí),這也是知識(shí)經(jīng)濟(jì)的大特點(diǎn)。

  人力資源對(duì)估算的影響表現(xiàn)在技術(shù)水平、理解能力、溝通能力等幾個(gè)方面,編程水平的高低、速度的快慢、能否適應(yīng)、能否與各成員保持良好的溝通都會(huì)對(duì)開發(fā)進(jìn)度產(chǎn)生影響,其中技術(shù)水平是關(guān)鍵的因素。評(píng)價(jià)的技術(shù)水平可以從編程熟練程度、編程速度、解決技術(shù)問(wèn)題的能力幾個(gè)因素考慮,編程熟練程度指的是程序員能否很順暢的使用編程工具實(shí)現(xiàn)軟件的功能,編程速度指的是完成某個(gè)功能的時(shí)間,解決技術(shù)問(wèn)題的能力可以反映程序員在遇到技術(shù)難點(diǎn)時(shí)表現(xiàn)出的技術(shù)功底,如果以作為總和,這三個(gè)因素分別占70%、15%和15%這樣的比例。

  軟件開發(fā)周期估算前,應(yīng)對(duì)開發(fā)人員定級(jí),建議按、初級(jí)程序員、中級(jí)程序員、高級(jí)程序員來(lái)劃分,每一級(jí)人員再評(píng)定上述三個(gè)因素,初次估算時(shí)可以假定開發(fā)人員為中級(jí)程序員,然后依據(jù)項(xiàng)目組實(shí)際人員的水平做修正,這樣結(jié)果的精確度能大大提高。

  3.4歷史數(shù)據(jù)估算法的運(yùn)用

  依據(jù)歷史數(shù)據(jù)估算軟件開發(fā)周期是一種比較常見(jiàn)的方法,這種方法以歷史軟件開發(fā)周期為依據(jù),在估算時(shí)把當(dāng)前軟件項(xiàng)目的情況與歷史數(shù)據(jù)加以對(duì)比,從而得出終結(jié)果。按照歷史數(shù)據(jù)估算開發(fā)周期準(zhǔn)確度還是相當(dāng)高的,但這種方法只適用于對(duì)某類軟件的開發(fā),比如某個(gè)行業(yè)業(yè)務(wù)系統(tǒng)的開發(fā),當(dāng)要估算的軟件與歷史軟件相差太多,比如開發(fā)工具完全不同,或者類型完全不同,不能再依賴這種方法,起碼應(yīng)該輔助使用其它估算法。如果沒(méi)有歷史數(shù)據(jù)或是開發(fā)一種新領(lǐng)域軟件,可以使用代碼行或功能點(diǎn)估算法,在此基礎(chǔ)上再通過(guò)其它方法校正。

  事實(shí)上目前項(xiàng)目管理人員對(duì)開發(fā)周期的估算大部分屬于人力時(shí)間估算法,憑借的是自己的經(jīng)驗(yàn),經(jīng)驗(yàn)越多估算的結(jié)果越精確,但是大部分項(xiàng)目管理人員對(duì)以前很有價(jià)值的歷史數(shù)據(jù)缺乏歸納整理,估算的時(shí)候憑借感覺(jué)的成分多一些,所以精確度相對(duì)要低很多,所以要求我們的項(xiàng)目管理人員不僅要有大量軟件開發(fā)的經(jīng)驗(yàn)還要不斷總結(jié)積累,歷史項(xiàng)目數(shù)據(jù)對(duì)于以后軟件開發(fā)周期的估算是非常有價(jià)值的。

  在實(shí)際使用歷史數(shù)據(jù)估算法時(shí),建議項(xiàng)目經(jīng)理建立一個(gè)歷史項(xiàng)目數(shù)據(jù)庫(kù),在庫(kù)中包含以前所有項(xiàng)目的開發(fā)周期、項(xiàng)目規(guī)模、開發(fā)人員狀況、客戶狀況等詳細(xì)數(shù)據(jù),當(dāng)估算時(shí)根據(jù)當(dāng)前項(xiàng)目的狀況在庫(kù)中尋找類似的歷史項(xiàng)目,然后再比較兩個(gè)項(xiàng)目之間在項(xiàng)目規(guī)模、項(xiàng)目風(fēng)險(xiǎn)、人力資源之間的區(qū)別,我們假定歷史項(xiàng)目開發(fā)周期為A當(dāng)前項(xiàng)目的周期可以依據(jù)下列公式得出

  B=A×(2×S+R+P+2×C)/6

  S:代表軟件規(guī)模 R:代表風(fēng)險(xiǎn) P:代表人力資源 C:代表客戶

  以上值均指當(dāng)前項(xiàng)目與歷史項(xiàng)目的比率。

  實(shí)際的比較因素應(yīng)該不止這些,但軟件規(guī)模、風(fēng)險(xiǎn)、人力資源及客戶狀況是其中重要的,對(duì)軟件開發(fā)的影響也大,所以這個(gè)公式中只考慮了這些因素。其中軟件規(guī)模和客戶兩項(xiàng)占的權(quán)重大,這也是根據(jù)項(xiàng)目管理經(jīng)驗(yàn)得出的,在實(shí)際使用歷史數(shù)據(jù)估算法時(shí)還可以靈活加入其它因素 。

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