軟件項(xiàng)目計(jì)劃(Software Project Planning)是一個(gè)軟件項(xiàng)目進(jìn)入系統(tǒng)實(shí)施的啟動階段,主要進(jìn)行的工作包括:確定詳細(xì)的項(xiàng)目實(shí)施范圍、定義遞交的工作成果、評估實(shí)施過程中主要的風(fēng)險(xiǎn)、制定項(xiàng)目實(shí)施的時(shí)間計(jì)劃、成本和預(yù)算計(jì)劃、人力資源計(jì)劃等。
在軟件項(xiàng)目管理過程中一個(gè)關(guān)鍵的活動是制定項(xiàng)目計(jì)劃,它是軟件開發(fā)工作的第一步。 項(xiàng)目計(jì)劃的目標(biāo)是為項(xiàng)目負(fù)責(zé)人提供一個(gè)框架,使之能合理地估算軟件項(xiàng)目開發(fā)所需的資源 、經(jīng)費(fèi)和開發(fā)進(jìn)度,并控制軟件項(xiàng)目開發(fā)過程按此計(jì)劃進(jìn)行。 在做計(jì)劃時(shí),必須需要的人力、項(xiàng)目持續(xù)時(shí)間及成本作出估算。這種估算大多是參考 以前的花費(fèi)作出的。軟件項(xiàng)目計(jì)劃包括二個(gè)任務(wù):研究和估算。即通過研究確定該軟件 項(xiàng)目的主要功能、性能和系統(tǒng)界面。
一、軟件項(xiàng)目計(jì)劃內(nèi)容
軟件項(xiàng)目計(jì)劃內(nèi)容如下:
1.范圍。對該軟件項(xiàng)目的綜合描述,定義起所要做的工作以及性能限制,它包括:
(1)項(xiàng)目目標(biāo)。
(2)主要功能。
(3)性能限制。
(4)系統(tǒng)接口。
(5)特殊要求。
(6)開發(fā)概述。
2.資源。
(1)人員資源。
(2)硬件資源。
(3)軟件資源。
(4)其他。
3.進(jìn)度安排。
進(jìn)度安排的好壞往往會影響整個(gè)項(xiàng)目的按期完成,因此這一環(huán)節(jié)是十分重要的。制定軟件進(jìn)度與其他工程沒有很大的區(qū)別 ,其方法主要有:
(1)工程網(wǎng)絡(luò)圖。
(2)Gantt圖。
(3)任務(wù)資源表。
(4)成本估算。
(5)培訓(xùn)計(jì)劃。
二、制定軟件工程規(guī)范
對軟件工程管理來說,軟件工程規(guī)范的制定和實(shí)施是不可少的,它與軟件項(xiàng)目計(jì)劃一樣重要 。軟件工程規(guī)范可選用現(xiàn)成的各種規(guī)范,也可自己制定。目前軟件工程規(guī)范可分為三級:
(1)標(biāo)準(zhǔn)與國際標(biāo)準(zhǔn)。
(2)行業(yè)標(biāo)準(zhǔn)與工業(yè)部門標(biāo)準(zhǔn)。
(3)企業(yè)級標(biāo)準(zhǔn)與開發(fā)小組級標(biāo)準(zhǔn)。
三、軟件開發(fā)成本估算
為了使開發(fā)項(xiàng)目能在規(guī)定的時(shí)間內(nèi)完成,而且不超過預(yù)算,成本預(yù)算和管理控制是關(guān)鍵。
1.成本估算方法
(1)自頂向下估算方法。
估算人員參照以前完成的項(xiàng)目所耗費(fèi)的總成本,來推算將要開發(fā)的軟件的總成本,然后把它們按階段、步驟和工作單元進(jìn)行 分配,這種方法稱為自頂向下估算方法。
它的優(yōu)點(diǎn)是對系統(tǒng)級工作的重視,所以估算中不會遺漏系統(tǒng)級的諸如集成、用戶手冊和配置管理之類的事務(wù)的成本估算,且估算工作量小、 速度快。它的缺點(diǎn)是往往不清楚低級別上的技術(shù)性困難問題,而往往這些困難將會使成本上升。
(2)自底向上估算方法。
自底向上估算方法是將待開發(fā)的軟件細(xì)分,分別估算每一個(gè)子任務(wù)所需要的開發(fā)工作量,然后將它們加起來 ,得到軟件的總開發(fā)量。這種方法的優(yōu)點(diǎn)是對每個(gè)部分的估算工作交給負(fù)責(zé)該部分工作的人來做,所以估算 較為準(zhǔn)確。其缺點(diǎn)是其估算往往缺少與軟件開發(fā)有關(guān)的系統(tǒng)工作級工作量,所以估算往往偏低。
(3)差別估算方法。
差別估算是將開發(fā)項(xiàng)目與一個(gè)或多個(gè)已完成的類似項(xiàng)目進(jìn)行比較,找到與某個(gè)相類似項(xiàng)目的若干 不同之處,并估算每個(gè)不同之處對成本的影響,導(dǎo)出開發(fā)項(xiàng)目的總成本。該方法的優(yōu)點(diǎn)是可以提高估算的準(zhǔn)確度, 缺點(diǎn)是不容易明確“差別”的界限。
除上三種還有:
(1)專家估算法。
(2)類推估算法。
(3)算式估算法。
2.成本估算模型
(1)COCOMO估算模型。
機(jī)構(gòu)性成本模型COCOMO(Constructive Cost Mode)是精確、易于使用的成本估算方法之一。
該模型分為:基本COCOMO模型,是一個(gè)靜態(tài)單變量模型,它是對整個(gè)軟件系統(tǒng)進(jìn)行估算;中級COCOMO模型,是一個(gè)靜態(tài)多變量模型;詳細(xì)COCOMO模型,將軟件系統(tǒng)模型分為系統(tǒng)、子系統(tǒng)和模塊三個(gè)層次。
、倩綜OCOMO模型估算公式:
E=ab(KLOC)exp(bb)
D=cb(E)exp(db)
式中E為開發(fā)所需的人力(人/月)。D為所需的開發(fā)時(shí)間(月)。KLOC為估計(jì)提交的代碼行。ab、bb、cb和db是指不同軟件開發(fā)方式的值。
、谥屑塁OCOMO模型。
其估算公式為:E=ai(KLOC)exp(bi)×乘法因子,ai,bi
(2)Putnam成本估算經(jīng)驗(yàn)?zāi)P汀?br /> Putnam估算模型是一種動態(tài)多變模型,它是假設(shè)在軟件開發(fā)的整個(gè)生存期中工作量的分布。如下圖: