版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第14章 軟件計劃 14.1 軟件范圍界定14.2 資源需求14.3 項目估算14.4 軟件項目計劃的結(jié)構(gòu)14.5 項目計劃的分解求精14.6 計劃跟蹤監(jiān)督14.7 計劃執(zhí)行情況的度量與計劃調(diào)控14.8 小結(jié) 14.1 軟件范圍界定 軟件項目計劃的第一個活動是確定軟件的范圍。軟件范圍描述了軟件項目的功能、性能、約束條件、接口以及可靠性等質(zhì)量指標(biāo)。此項工作旨在進(jìn)一步將項目的開發(fā)任務(wù)明確化、具體化,并進(jìn)行必要的功能分解,為下一步的估算工作打下基礎(chǔ)。 在軟件項目開始時,雖然已經(jīng)定義了要求,并確立了基本的目標(biāo),但是還不足以作為開展估算的基礎(chǔ)。必須對分配給軟件的功能需求、性能需求進(jìn)行評價,從管理角度和技
2、術(shù)角度出發(fā),確定明確的、可理解的項目范圍。關(guān)于軟件范圍的描述應(yīng)當(dāng)盡量給出定量的說明(如最大并發(fā)用戶數(shù),最大允許響應(yīng)時間等),給出約束條件或針對項目的限制(例如成本限制、運行環(huán)境的限制等)。此外,還要界定某些質(zhì)量因素(如可靠性等)。 由于對成本和進(jìn)度的估算都和項目功能有關(guān),因此常常采用某種程度的功能分解細(xì)化,以便結(jié)合歷史數(shù)據(jù),采用面向規(guī)?;蛎嫦蚬δ艿姆椒▽椖恳?guī)模、成本、工作量、進(jìn)度、風(fēng)險、資源諸方面做出估算。 性能的考慮包括處理復(fù)雜度和系統(tǒng)響應(yīng)時間的需求;約束條件則標(biāo)志著外部硬件或其他現(xiàn)有系統(tǒng)對軟件的限制。功能、性能和約束必須在一起進(jìn)行綜合的評價。因為在功能相同時,性能限制不同,可能將導(dǎo)致開發(fā)
3、工作量相差一個數(shù)量級,成本和進(jìn)度也會有顯著的差別。 軟件和其他元素是相互作用的。計劃制定者要考慮每個接口的性質(zhì)和復(fù)雜程度,以確定其對資源、成本和進(jìn)度的影響。接口的概念可以解釋為:(1) 運行軟件的硬件及間接受軟件控制的設(shè)備和軟件之間的接口。(2) 必須和新軟件連接的現(xiàn)有軟件和新軟件之間的接口。(3) 人機(jī)接口。(4) 軟件運行前后的一系列操作過程。 針對每一種接口,都應(yīng)當(dāng)明確地理解通過接口的信息轉(zhuǎn)換要求。 項目要求的軟件可靠性指標(biāo)也應(yīng)當(dāng)作為一種約束予以考慮,以便在進(jìn)行規(guī)模、成本、工作量估算時能夠更加精確。在FP度量方法中,功能點復(fù)雜度加權(quán)因子和從F1F14的取值就反映了約束條件對最終度量結(jié)果的
4、影響。作為例子,我們對一個傳送帶分類系統(tǒng)(如圖14.1所示)的軟件需求進(jìn)行范圍界定。圖14.1 一個傳送帶分類系統(tǒng) 原始的功能需求陳述: 傳送帶分類系統(tǒng)(CLSS)用來傳送貼有識別條碼的六類不同的產(chǎn)品。產(chǎn)品通過由一個條碼閱讀器和一臺PC機(jī)組成的分類站。分類站的PC機(jī)連到一個分流器上,分流器將不同的產(chǎn)品分送到不同的包裝箱中去。 CLSS軟件以和傳送帶速度一致的時間間隔接收條碼閱讀器送來的數(shù)據(jù),將條碼數(shù)據(jù)譯碼轉(zhuǎn)換為產(chǎn)品標(biāo)識符的規(guī)定格式并以此為查詢鍵值。在最多可容納1000個條目的數(shù)據(jù)庫中進(jìn)行查詢檢索,以便確定當(dāng)前產(chǎn)品應(yīng)當(dāng)放入哪個箱子中。查出來的該箱子的編號被送到分流器,分流器將根據(jù)接收到的數(shù)據(jù)將產(chǎn)
5、品推入指定的箱子中。同時,每一個產(chǎn)品放入哪個箱子的信息還要寫入數(shù)據(jù)庫中備用。 CLSS軟件還要接收來自脈沖流速計的輸入,用以使控制信號和流速計同步。根據(jù)分類站和分流器之間產(chǎn)生的脈沖個數(shù),軟件將在適當(dāng)時產(chǎn)生一個控制信號給分流器,以適當(dāng)?shù)卮_定產(chǎn)品去向。 根據(jù)以上陳述,我們就可以開始進(jìn)行范圍界定工作。需求范圍界定:(1) 讀條形碼作為輸入。(2) 讀脈沖流速計輸入。(3) 對條碼數(shù)據(jù)進(jìn)行解碼。(4) 檢索查詢數(shù)據(jù)庫。(5) 確定合適的箱子號。(6) 產(chǎn)生并輸出分流器控制信號。(7) 保存當(dāng)前產(chǎn)品被存入的箱子的紀(jì)錄。 性能要求: 每一個產(chǎn)品的全部處理都必須在下一個產(chǎn)品到達(dá)分類站之前處理完畢(根據(jù)傳送帶
6、的流速可以換算出最大可接受的響應(yīng)時間指標(biāo))。 接口要求:(1) PC和分類站之間的數(shù)據(jù)接口,用來傳送原始條碼數(shù)據(jù)。(2) PC和脈沖流速計之間的接口,用來接收同步脈沖數(shù)據(jù)。(3) PC和分流器之間的接口,用來輸出分流器驅(qū)動數(shù)據(jù)。約束條件:(1) 傳送帶勻速運動。(2) 傳送帶上的產(chǎn)品間隔均勻擺放。 如上例所示,進(jìn)行了軟件范圍界定之后,就可以綜合考慮功能、性能、接口、約束條件要求,開始進(jìn)行計劃的下一步工作確定資源需求并進(jìn)行估算。14.2 資 源 需 求 在進(jìn)行了范圍界定之后,軟件計劃的第二個任務(wù)是估算為完成本軟件開發(fā)工作所需要的資源。包括人力資源、可復(fù)用軟件資源和環(huán)境資源(如圖14.2所示)。
7、資源金字塔的底層是開發(fā)環(huán)境,包括硬件和軟件工具,提供支持開發(fā)工作的基礎(chǔ);再高一層是可復(fù)用的軟件構(gòu)件軟件建筑塊,能夠極大地降低開發(fā)成本并縮短交付時間;金字塔的頂端是人力資源,這是資源中的主要成分。在項目計劃中,針對所需要的每類資源,都應(yīng)當(dāng)從資源描述、可用性說明、需要該資源的時間以及該資源被使用的持續(xù)時間四個特征上進(jìn)行說明。圖14.2 資源金字塔 計劃者在開始時要評估需求范圍并選擇完成開發(fā)所需要的技術(shù)。對于開發(fā)組中所需要的各種角色(如項目經(jīng)理、系統(tǒng)分析員、設(shè)計師、程序員等)和他們應(yīng)當(dāng)具備的專業(yè)技能都要進(jìn)行描述。這就顯化了對人力資源的能力要求。但所需要的人數(shù)要等到完成了項目工作量估算之后才能結(jié)合交付
8、時間的限制完全確定。在開發(fā)過程的各個階段,對人力資源的需求是不一樣的(如圖14.3所示),應(yīng)當(dāng)按照動態(tài)的需求來制定人力資源的需求計劃。圖14.3 不同開發(fā)階段的人員參與情況 一個軟件開發(fā)組織,總是不斷地將自己的開發(fā)成果積累起來,形成自己的軟件財富庫。有一些通用功能(例如權(quán)限管理、數(shù)據(jù)維護(hù)、通用查詢等等)自然地就形成了可復(fù)用的軟件構(gòu)件。而且分析、設(shè)計階段的工作產(chǎn)品也都存在著在類似項目中重用的可能。直接使用可復(fù)用構(gòu)件,將會使開發(fā)工作量(不僅僅是編碼量)因重用而下降。所以,在計劃階段,就應(yīng)當(dāng)考慮對可復(fù)用資源的需求??紤]到需求吻合程度,對可復(fù)用構(gòu)件的使用,分為完全復(fù)用和修改復(fù)用兩種情況: (1) 存在
9、著現(xiàn)成的、完全滿足要求的軟件構(gòu)件,肯定應(yīng)當(dāng)重用它。 (2) 對于必須進(jìn)行修改才能重用的軟件成分,要慎重處理,建議權(quán)衡了修改工作量和重新開發(fā)工作量的對比情況后再考慮是否重用。 在項目計劃階段,常常會忽視可復(fù)用構(gòu)件重用問題,應(yīng)當(dāng)引起注意。 硬件與軟件資源環(huán)境,是支持軟件開發(fā)的環(huán)境,通常稱為“軟件工程環(huán)境”,集成了硬件和軟件兩大部分。硬件提供了一個支持工具平臺,如各類服務(wù)器、網(wǎng)絡(luò)通信設(shè)備、各種外設(shè)等等;而軟件資源是工作在這一平臺上的工具集,包括分析設(shè)計工具、語言工具、中間件工具、數(shù)據(jù)庫系統(tǒng)、操作系統(tǒng)等等。除了要明確所需要的軟硬件資源環(huán)境之外,還應(yīng)當(dāng)明確地界定資源的時間窗口,并落實在指定的時間窗口中這
10、些資源是否可用。14.3 項 目 估 算 就本質(zhì)來說,項目估算就是“超前度量”。直接度量和間接度量兩種模式,面向規(guī)模度量和面向功能度量兩種方法都可以用來進(jìn)行估算。但是,由于“超前”的特點,必要的基本度量數(shù)據(jù)往往難以直接得到,歷史數(shù)據(jù)和基于經(jīng)驗的模型往往成為進(jìn)行估算的依據(jù)?!岸攘炕€”在進(jìn)行估算時的作用十分顯著。沒有度量基線,項目估算的基礎(chǔ)就十分薄弱,很不穩(wěn)定。 就種類而言,計劃者要進(jìn)行的項目估算主要包括項目規(guī)模估算、開發(fā)工作量估算、開發(fā)成本估算、進(jìn)度估算等等。在估算中最經(jīng)常使用的方法包括: (1) 使用簡單的“分解技術(shù)”來進(jìn)行項目規(guī)模、工作量和成本的估算。 (2) 使用一個或多個經(jīng)驗?zāi)P瓦M(jìn)行軟
11、件規(guī)模、工作量和成本的估算。 分解技術(shù)采用“分而治之”的策略進(jìn)行軟件項目估算,將項目分解成若干主要功能及相關(guān)的軟件工程活動,通過逐步求精的方式進(jìn)行規(guī)模、工作量和成本的估算。經(jīng)驗估算模型是基于經(jīng)驗來進(jìn)行的,可以表示成d = f(vi) 其中d是要估算的對象,如規(guī)模、工作量、進(jìn)度;vi 是選出來的獨立參數(shù)(如FP、LOC)。這兩種方法可以交叉使用,以便互相驗證估算結(jié)果。也有一些自動估算工具能夠?qū)崿F(xiàn)一種或多種分解技術(shù)或經(jīng)驗?zāi)P?,通過交互式地輸入基本參數(shù),自動完成估算,能夠極大地提高估算效率。14.3.1 基于問題分解的估算 分解方法包括問題分解和過程分解,都可以用來進(jìn)行項目的估算。在項目估算過程中,
12、“規(guī)模”是一個基本的度量。如果能夠估算出項目的規(guī)模,那么結(jié)合歷史數(shù)據(jù)對規(guī)模進(jìn)行計算與分析,就不難完成對工作量、成本的間接度量估算。在資源確定的前提下,進(jìn)度估算也能夠利用工作量估算結(jié)果,采用間接方法完成。就規(guī)模估算本身來說,只要界定了需求目標(biāo)并且進(jìn)行了必要的分解細(xì)化,那么既可以利用LOC方法進(jìn)行直接度量,也能夠使用功能點(或特征點、3D方法等)進(jìn)行間接估算。 通過對“問題”的分解進(jìn)行估算時,可以采用LOC或FP估算方法。LOC和FP的求取方法已經(jīng)在前一章中介紹過,不再重復(fù)。具體來說,LOC和FP在估算中有兩種作用:其一是作為一個估算變量,度量軟件中每個成分的規(guī)模;其二是結(jié)合度量基線數(shù)據(jù)進(jìn)行計算,
13、得到工作量與成本估算數(shù)據(jù)。這時,來自度量基線中的生產(chǎn)率歷史數(shù)據(jù)起著非常重要的作用。 由于項目的多樣性,只用一個單一的生產(chǎn)率歷史數(shù)據(jù)來作決定是不科學(xué)的。應(yīng)當(dāng)根據(jù)經(jīng)驗,從樂觀的、可能的、悲觀的三種主觀前提出發(fā)進(jìn)行估算,根據(jù)計算出來的三個結(jié)果值再來計算LOC或FP的期望值。基于經(jīng)驗,可以采用下述加權(quán)求和公式來計算:EV = (Sopt + 4Sm + Spess)/ 6上式中,Sopt代表“樂觀”值,Sm代表“可能”值,Spess代表“悲觀”值。公式中給“可能值”以最大權(quán)重,并遵循概率分布。一旦確定了估算變量的期望值,就可以開始使用歷史的LOC或FP相關(guān)數(shù)據(jù)作下一步估算。這種方法稱為“三點估算”方法
14、。 例一 基于LOC估算的例子,范圍說明如下: CAD軟件接收來自工程師輸入的三維或二維幾何數(shù)據(jù)。工程師通過用戶界面和CAD軟件進(jìn)行交互,并控制它,該界面應(yīng)當(dāng)表現(xiàn)出良好的人機(jī)界面設(shè)計的特征。所有幾何數(shù)據(jù)及其他支持信息都保存在一個CAD數(shù)據(jù)庫中。要求開發(fā)設(shè)計分析模塊,以產(chǎn)生必要的輸出,這些輸出將表現(xiàn)在不同的圖形設(shè)備上。軟件在設(shè)計中要考慮與外設(shè)交互并控制它們。除顯示器之外,外設(shè)包括鼠標(biāo)、數(shù)字化儀和激光打印機(jī)。假設(shè)已經(jīng)對上述要求進(jìn)行了求精和分解,界定了以下的主要軟件子功能:(1) 用戶界面及控制機(jī)制;(2) 二維幾何分析(2DGA);(3) 三維幾何分析(3DGA);(4) 數(shù)據(jù)庫管理(DBM);(
15、5) 計算機(jī)圖形顯示機(jī)制(CGDF);(6) 外設(shè)控制(PC);(7) 設(shè)計分析模塊(DAM)。 利用本組織的度量基線數(shù)據(jù),遵照LOC的“三點”估算技術(shù),對分解后的需求進(jìn)行LOC估算。例如,對于3DGA功能:Sopt = 4600;Sm = 6900;Spess = 8600。求得其期望值為EV =(Sopt + 4Sm + Spess)/ 6 = 6800 LOC 類似地,求出其他被分解部分的LOC期望值,形成表14.1。表14.1 基于問題分解的LOC方法的估算表問題分解所得的子功能估算的LOC期望值(行)用戶界面及控制機(jī)制2300二維幾何分析(2DGA)5300三維幾何分析(3DGA)6
16、800數(shù)據(jù)庫管理(DBM)3350計算機(jī)圖形顯示機(jī)制(CGDF)4950外設(shè)控制(PC)2100設(shè)計分析模塊(DAM)8400估算總代碼行數(shù)期望值33200 查詢本組織的度量基線得知,此類系統(tǒng)的平均生產(chǎn)率為620LOC / PM;平均人月成本為8000美元/人月,則LOC平均成本為13美元 / LOC。計算可知本項目的總成本為431 000美元,總工作量54個人月。如果人力資源投入六名合格的工程師,則預(yù)計工期為九個月。 例二 基于FP估算的例子。對于上例中的各個子功能進(jìn)一步細(xì)化,將所有功能都分解為EI、EO、EQ以及ILF、EIF的組合,假設(shè)加權(quán)因子都取為“平均”,計算出各類功能點見表14.2
17、。表14.2 估算信息域值基于問題分解的FP估算信息域值樂觀值可能值悲觀值估算計數(shù)加權(quán)因子FP計數(shù)EI20243024496EO12152216580EQ16222822488ILF44541040EIF2232714總計數(shù)值318表14.3 CAD軟件項目復(fù)雜度調(diào)整因子值因子值備份和復(fù)原4信息域值復(fù)雜度5數(shù)據(jù)通信2內(nèi)部處理復(fù)雜度5分布式處理0可復(fù)用需求4關(guān)鍵性能4設(shè)計中的轉(zhuǎn)換及安裝3現(xiàn)有的操作環(huán)境3多次安裝5聯(lián)機(jī)數(shù)據(jù)登錄4方便修改的應(yīng)用設(shè)計5多屏幕輸入切換5復(fù)雜度調(diào)整因子1.17主文件聯(lián)機(jī)更新3 最后,得到整個項目的FP估算期望值:FP = 3180.65+0.01Fi = 372(功能點)
18、。 查詢組織的度量基線數(shù)據(jù)庫得知,這類系統(tǒng)的平均生產(chǎn)率為6.5FP / PM,一個PM的成本仍取8000美元,則每個FP的平均成本約為1230美元,總項目成本估算約為457 000美元,工作量估算期望值是58個人月。14.3.2 基于過程分解的估算 通過對工作過程進(jìn)行分解,也能夠結(jié)合度量基線進(jìn)行估算。方法是將過程分解為相對較小的活動或任務(wù),估算出完成每項任務(wù)的工作量,最后匯總即可。和基于問題分解的估算一樣,基于過程分解的估算也是開始于軟件功能描述。對于每一個功能,都必須要執(zhí)行一系列的活動,如果能夠利用同類項目的度量基線估算出對應(yīng)于每項任務(wù)所需要的工作量,則加總值就是本項目的工作量估算值。 仍以
19、CAD軟件開發(fā)項目為例,基礎(chǔ)參數(shù)見表14.4,仍然按照每人月8000美元計算,項目總成本368 000美元,工作量共46個人月。表14.4 CAD軟件項目基于過程分解的工作量估算 活動任務(wù)用戶通信計劃制訂風(fēng)險分析工 程分析設(shè)計UIGF0.502.502DGA0.754.003DGA0.504.00DSM0.503.00CGDF0.503.00PCF0.252.00DAM0.502.00總和0.250.250.253.5020.50工作量0.5%0.5%0.5%8%45%表14.4 CAD軟件項目基于過程分解的工作量估算建造發(fā)布用戶評估總和編碼測試0.405.008.400.602.007.35
20、1.003.008.501.001.506.000.751.505.750.501.504.250.502.005.004.7516.5046.0010%36% 由上面的例子可見,采用不同的估算方法,結(jié)果會有一定的誤差。這在一定范圍內(nèi)是正常的,可以用幾種方法的平均估算值作為最終估算值。同時,也可以看出,度量基線在估算中的作用是無庸置疑的。 如果幾種方法的估算偏差過大(一般以20%為界),則需要分析原因,進(jìn)行再估算。可能的原因主要有兩種,其一是度量基線中的數(shù)據(jù)和當(dāng)前問題的類型不匹配;其二是對項目的范圍理解不充分。計劃者必須確定偏差過大的原因,并調(diào)和各個估算結(jié)果。14.3.3 經(jīng)驗估算模型 經(jīng)驗估
21、算模型是用經(jīng)驗公式來進(jìn)行項目的估算。因為公式是通過對有限樣本集的分析得出的,因此得到的結(jié)果并不一定適合當(dāng)前項目類型,這種方法應(yīng)當(dāng)慎重使用。使用這種方法,工作量是LOC 或FP的函數(shù)。 典型的經(jīng)驗估算模型是通過對以前項目中收集到的數(shù)據(jù)進(jìn)行回歸分析導(dǎo)出的??傮w結(jié)構(gòu)具有類似的形式:E = A + B(ev)C其中,ev是估算變量,A、B、C是基于經(jīng)驗導(dǎo)出來的常數(shù),E是以人月為單位的工作量值。同時,還可以在公式中加一些調(diào)整因素以便適應(yīng)當(dāng)前項目的特征?;诠ぷ鲗嵺`,許多人提出了行之有效的經(jīng)驗估算模型,主要的有:(1) 面向LOC的經(jīng)驗估算模型:Walston-Felix模型 E = 5.2( KLOC)
22、 0.91Bailey-Basili模型 E = 5.5+0.73(KLOC)1.16Boehm的簡單模型 E = 3.2(KLOC)1.05(2) 面向FP的經(jīng)驗估算模型:Albrecnt-Gaffney模型 E = 13.39 + 0.0545 FPKemerer模型 E = 60.627.728108 (FP)3Maston-Barnett模型 E = 585.7 +5.12 FP 不同的模型來源于不同的樣本數(shù)據(jù)集,結(jié)果對于相同的ev值會算出不同的結(jié)果。因此,估算模型必須按照當(dāng)前項目特點進(jìn)行調(diào)整。14.3.4 COCOMO模型 構(gòu)造性成本模型(COCOMO,Constructive Co
23、st Model)是由Barry Boehm提出的一種被廣為應(yīng)用的估算模型,它共有三個層次。 (1) 基本的COCOMO模型:將軟件開發(fā)工作量(及成本)作為程序規(guī)模函數(shù)進(jìn)行計算,程序規(guī)模以估算的代碼行數(shù)來表示。該模型是一個靜態(tài)單變量經(jīng)驗?zāi)P汀?(2) 中級COCOMO模型:將軟件開發(fā)工作量(及成本)作為程序規(guī)模及一組“成本驅(qū)動因子”的函數(shù)(共15項)來進(jìn)行計算。其中,“成本驅(qū)動因子”包括對產(chǎn)品、硬件、人員及項目屬性的主觀評估。 (3) 高級COCOMO模型:包含了中級模型的所有特征,并結(jié)合了成本驅(qū)動因子對軟件工程過程中每一個步驟(分析、設(shè)計、編碼等)的影響的評估。 在COCOMO模型中,使用的
24、基本量包括: 源指令行數(shù):DSI或KDSI,度量單位為行或千行,1KDSI = 1024 DSI(不包括注釋行)。 開發(fā)工作量:MM,度量單位為“人月”,1MM = 19人日 = 152 人時 = 1/12 人年。 開發(fā)進(jìn)度:TDEV,度量單位為月,它由工作量確定。 在使用COCOMO模型進(jìn)行度量時,應(yīng)當(dāng)考慮到具體項目的特點和具體的開發(fā)環(huán)境。 軟件項目的類型一般可以分為三類。 (1) 組織型:相對較小較簡單的軟件項目(KDSI50)。需求不很苛刻,開發(fā)人員對軟件產(chǎn)品開發(fā)目標(biāo)理解充分,軟件工作經(jīng)驗豐富,對軟件使用環(huán)境熟悉,受硬件約束小。多數(shù)應(yīng)用軟件均屬此類。 (2) 嵌入型:要求在緊密聯(lián)系的硬件
25、、軟件和操作的限制條件下運行。通常與某些硬設(shè)備緊密結(jié)合,因此對算法、數(shù)據(jù)結(jié)構(gòu)、接口要求較高的軟件規(guī)模任意。例如大型OS軟件、大型指揮系統(tǒng)軟件等都屬此類。 (3) 半獨立型:要求介于以上兩種之間的軟件。規(guī)模、復(fù)雜性規(guī)模都在中等以上。KDSI可能在300以上。例如大型ERP、簡單的指揮系統(tǒng)、大型事務(wù)處理軟件等屬于此類。 針對不同的項目任務(wù),應(yīng)當(dāng)選擇使用不同層次的COCOMO模型進(jìn)行估算?;镜腃OCOMO模型工作量與進(jìn)度估算公式見表14.5。表14.5 基本COCOMO模型工作量與進(jìn)度估算公式總體類型工 作 量進(jìn) 度組織型MM = 2.4(KDSI)1.05TDEV = 2.5(MM)0.38半獨
26、立型MM = 3.0(KDSI)1.12TDEV = 2.5(MM)0.35嵌入型MM = 3.6(KDSI)1.20TDEV = 2.5(MM)0.32表14.6 中級的COCOMO模型工作量與進(jìn)度估算公式總體類型名義工作量名義進(jìn)度組織型MM1 = 3.2(KDSI)1.05TDEV = 2.5(MM1)0.38半獨立型MM1= 3.0(KDSI)1.12TDEV = 2.5(MM1)0.35嵌入型MM1 = 2.8(KDSI)1.20TDEV = 2.5(MM1)0.32對于計算的結(jié)果,要基于經(jīng)驗進(jìn)行調(diào)整,實際工作量: 這里,R是經(jīng)驗系數(shù),F(xiàn)i 是15項調(diào)整函數(shù)F1 F15的連乘積。實際進(jìn)
27、度也要利用實際工作量調(diào)整。15種影響軟件工作量的因素見表14.7。表14.7 15種影響軟件工作量因素Fi 高級的COCOMO模型的名義工作量和名義進(jìn)度計算公式和中級的類同, 但是調(diào)整方式有區(qū)別:不再使用統(tǒng)一的工作量調(diào)整因子表,而是將15項工作量調(diào)整因子按照不同工作階段(分析與高層設(shè)計、詳細(xì)設(shè)計、編碼與單元測試、集成及測試)分別考慮,給出不同的階段工作量調(diào)整數(shù)據(jù)表,最后使用各個階段工作量調(diào)整因子的綜合均值進(jìn)行工作量和工作進(jìn)度調(diào)整,更為貼近實際。 軟件方程式是一種多變量估算模型。這種模型是從4000多個當(dāng)代軟件項目中收集的生產(chǎn)率數(shù)據(jù)中總結(jié)出來的。該模型具有如下的形式:E = LOCB0.333/
28、p3 (1/t4 )其中,E = 以人月或人年為單位的工作量數(shù)據(jù)。 t = 以月或年表示的項目持續(xù)時間。 B = “特殊技術(shù)因子”,它隨著“對集成、測試、質(zhì)量保證、文檔及管理技術(shù)的需求的增長”而緩慢增加。對于KLOC在515的較小的程序,B = 0.16;對于超過70 KLOC的較大的程序,B = 0.39。P = “生產(chǎn)率參數(shù)”,它反映了:(1) 總的過程成熟度及管理水平。(2) 使用良好的軟件工程時間的程度。(3) 使用的程序設(shè)計語言的級別。(4) 軟件環(huán)境的狀態(tài)。(5) 軟件項目組的技術(shù)及經(jīng)驗。(6) 應(yīng)用的復(fù)雜性。 對于實時嵌入式軟件的開發(fā),典型值是p = 2000;對于電信軟件及系統(tǒng)
29、軟件,p = 10 000;對于科學(xué)計算軟件,p = 12 000;而對于商業(yè)系統(tǒng)應(yīng)用,p = 28 000。當(dāng)前項目的生產(chǎn)率數(shù)據(jù)可以從以前開發(fā)工作中收集到的歷史數(shù)據(jù)中導(dǎo)出。 應(yīng)當(dāng)注意的是,軟件方程中有兩個獨立的參數(shù): (1) 規(guī)模的估算值(以LOC表示); (2) 以月或年表示的項目持續(xù)時間。 為了簡化估算過程,并將該模型表示為更通用的形式,Putnum等又提出了一組方程式,它們均從軟件方程式中導(dǎo)出。 最小開發(fā)時間被定義為tmin:tmin = 8.14( LOC / P )0.43,單位是月 工作量數(shù)據(jù)E:E = 180Bt3,單位是人月(t的單位是人年)對于前面討論過的CAD軟件開發(fā)項目
30、,當(dāng)規(guī)模確定之后,利用上式進(jìn)行計算可得tmin = 8.14( 33 200 / 12 000 )0.43 = 12.6 (月);E=1800.28(1.05)3 = 58 (人月)14.3.6 自動估算工具 前面所介紹的分解技術(shù)和經(jīng)驗估算模型已經(jīng)在很多的軟件工具中得以實現(xiàn)。這些軟件稱之為“自動估算工具”。結(jié)合歷史數(shù)據(jù)使用自動估算工具,使得計劃者能夠估算項目的成本以及工作量,并對重要的項目變量如交付日期或人員進(jìn)行分析。這些工具的共同作用是提高了估算效率,它們的共同點是都需要以下的一種或幾種數(shù)據(jù): (1) 對于項目規(guī)模(如LOC)或功能(如功能點)的定量估算。 (2) 定性的項目特性,如復(fù)雜度、
31、所要求的可靠性或交付期限的緊迫程度。 (3) 對于開發(fā)人員和環(huán)境的描述。 根據(jù)這些基本數(shù)據(jù),利用自動估算工具能夠提供關(guān)于如下數(shù)據(jù)的間接估算:完成該項目所需的工作量,預(yù)期的工程成本,項目持續(xù)時間,人員配置以及在某些情況下的開發(fā)進(jìn)度及相關(guān)的風(fēng)險防范。 應(yīng)當(dāng)強(qiáng)調(diào)的是,實踐證明,若干種不同工具應(yīng)用于同一個項目時,得到的估算結(jié)果可能存在很大偏差。因此,應(yīng)當(dāng)明確,自動估算工具的輸出不應(yīng)當(dāng)作為惟一的估算數(shù)據(jù)來源。14.4 軟件項目計劃的結(jié)構(gòu) 當(dāng)界定了軟件范圍,明晰了約束條件和接口要求,確定了資源需求,估算出項目規(guī)模、成本和工作量之后,制定項目開發(fā)計劃就有了科學(xué)的依據(jù)。 軟件項目計劃由項目開發(fā)計劃和相關(guān)的工作
32、計劃構(gòu)成。相關(guān)工作計劃包括測試計劃、品質(zhì)保證計劃、配置管理計劃、進(jìn)度計劃、培訓(xùn)計劃等等。在軟件項目開發(fā)計劃的結(jié)構(gòu)中,應(yīng)當(dāng)包括任務(wù)描述、過程模型選擇、資源需求描述、項目度量估算、階段任務(wù)劃分、里程碑設(shè)置和工作產(chǎn)品清單等內(nèi)容。具體的項目開發(fā)計劃的結(jié)構(gòu)可以參考“國家計算機(jī)軟件產(chǎn)品標(biāo)準(zhǔn)”中的標(biāo)準(zhǔn)樣表。各個開發(fā)組織也可以按照自己的過程定義方法,定義本組織的項目計劃結(jié)構(gòu)。 例 一個項目開發(fā)計劃結(jié)構(gòu)的參考樣例。 下面是一個達(dá)到CMM 3級成熟度標(biāo)準(zhǔn)的軟件開發(fā)組織的軟件項目開發(fā)計劃的結(jié)構(gòu)模板,可供我們在設(shè)計項目開發(fā)計劃結(jié)構(gòu)時參考。1. 引言 1.1 編寫目的1.2 項目背景1.3 術(shù)語定義1.4 參考資料2.
33、 項目概述2.1 項目目標(biāo)及功能界定2.2 項目開發(fā)方法選擇2.2.1 體系結(jié)構(gòu)選擇2.2.2 約束條件2.2.3 開發(fā)技術(shù)路線2.3 軟件工作產(chǎn)品2.3.1 程序產(chǎn)品2.3.2 文檔產(chǎn)品2.4 產(chǎn)品運行環(huán)境說明2.5 技術(shù)服務(wù)2.6 軟件驗收標(biāo)準(zhǔn)3. 規(guī)模、工作量、成本及資源需求3.1 軟件規(guī)模估算3.2 軟件工作量估算與階段工作量分配3.3 項目成本估算與成本控制計劃3.4 關(guān)鍵資源需求估算4. 項目開發(fā)計劃4.1 項目組組織結(jié)構(gòu)4.1.1 角色定義4.1.2 人員分配4.2 階段工作計劃4.2.1 項目計劃階段計劃4.2.2 需求分析階段計劃4.2.3 體系結(jié)構(gòu)設(shè)計計劃4.2.4 詳細(xì)設(shè)
34、計計劃4.2.5 測試的策劃4.2.6 編碼計劃4.2.7 測試計劃4.2.8 系統(tǒng)實施及試運行計劃4.2.9 驗收計劃4.2.10 項目維護(hù)計劃5. 人員培訓(xùn)計劃6. 變更控制規(guī)范7. 配置管理計劃8. 風(fēng)險預(yù)測及應(yīng)對措施9. 關(guān)于本軟件開發(fā)計劃的補(bǔ)充說明 在軟件能力成熟度模型CMM中,將“軟件項目計劃”作為CMM 2級的一個重要的KPA提了出來。14.5 項目計劃的分解求精 “按照分階段的生命周期計劃進(jìn)行嚴(yán)格的控制”是軟件工程七項原則的第一項。計劃是控制工程過程的依據(jù),離開了計劃,對工作的評價就沒有標(biāo)準(zhǔn),對過程的控制就沒有根據(jù)。因此,在按照規(guī)范完成了包括范圍界定、規(guī)模估算、資源需求分析、階
35、段劃分、角色定義等內(nèi)容的項目開發(fā)計劃之后,應(yīng)當(dāng)進(jìn)一步對其分解細(xì)化、調(diào)整求精。這樣將能夠使得開發(fā)工作步步、時時、事事有據(jù)可依、有章可循。14.5.1 任務(wù)的確定與并發(fā)處理 在項目開發(fā)計劃中,已經(jīng)對項目的階段工作任務(wù)進(jìn)行了劃分。但是在多人參加的項目中,開發(fā)工作中必然會出現(xiàn)并行情況,如圖14.4所示。圖14.4 軟件項目階段任務(wù)的并行性 從圖14.4中可以看到,在開發(fā)進(jìn)程中設(shè)置了許多里程碑。里程碑為管理人員提供了指示項目進(jìn)度的可靠依據(jù)。當(dāng)一個軟件任務(wù)成功完成并通過評審,產(chǎn)生了文檔后,就完成了一個里程碑。階段任務(wù)之間的“并行”特征也表示得較為清晰。 由于軟件工程項目的“并行性”,就提出了一系列的進(jìn)度要
36、求。因為并行任務(wù)是同時發(fā)生的,所以進(jìn)度計劃必須決定任務(wù)之間的從屬關(guān)系,確定各個任務(wù)的先后次序和彼此的銜接,確定各個任務(wù)完成的持續(xù)時間。此外,項目管理者必須特別注意構(gòu)成關(guān)鍵路徑的任務(wù)。在細(xì)化進(jìn)度計劃時,必須保證關(guān)鍵任務(wù)能夠提前,至少是按期完成。否則必然導(dǎo)致項目的延誤。同時在人力資源的調(diào)配上,也要注意到并行工作帶來的影響。14.5.2 制定明細(xì)的開發(fā)進(jìn)度計劃 當(dāng)項目規(guī)模、開發(fā)工作量已經(jīng)估算完畢,資源也已經(jīng)明確后,可以按照表14.8的建議來確定各個階段的工作量的分配比例,從而確定每一階段所需的開發(fā)時間,然后再針對每個階段進(jìn)行任務(wù)分解,最后為分解出的各個任務(wù)進(jìn)行工作量估算和開發(fā)時間的分配。在這個過程中
37、,項目的進(jìn)度計劃被進(jìn)一步求精,細(xì)化到了任務(wù)級。表14.8 階段任務(wù)時間比例分配階段任務(wù)需求分析設(shè) 計編碼與單元測試組裝與測試占開發(fā)時間的百分比10%30%17%27%25%60%16%28% 為了比較清楚地表現(xiàn)各項階段任務(wù)之間在進(jìn)度上的相互依賴關(guān)系,利用圖形方法表示進(jìn)度計劃比使用語言敘述更清楚。 在計劃的圖形表示中,必須明確標(biāo)明各個階段任務(wù)的計劃開始時間、完成時間;各個任務(wù)完成的標(biāo)志(約定:表示文檔編寫;代表評審);各個任務(wù)中參加工作的人數(shù);各個任務(wù)和工作量之間的銜接情況;完成各項任務(wù)所需要的物理資源和數(shù)據(jù)資源。甘特圖(Gannt Chart)常用來表示細(xì)化的進(jìn)度計劃。在用甘特圖進(jìn)行進(jìn)度求精時
38、,時間單位可以分解到每周、每一個工作日乃至每一個工時,資源可以對應(yīng)到每一個人。圖14.5 用甘特圖表示進(jìn)度計劃 在表示進(jìn)度計劃的各種形式之間進(jìn)行切換,比如數(shù)據(jù)表、甘特圖、網(wǎng)絡(luò)圖等等。使用甘特圖時,每一任務(wù)的完成,不是以能否繼續(xù)下一階段的任務(wù)為標(biāo)準(zhǔn),而是以必須交付應(yīng)當(dāng)交付的文檔和通過評審為標(biāo)準(zhǔn)。因此在甘特圖中,文檔編制和評審是軟件開發(fā)進(jìn)度的里程碑。 除甘特圖之外,計劃評審技術(shù)(PET,Program Evaluation Technigue)和關(guān)鍵路徑方法(CPM,Critical Path Method)也都是安排開發(fā)進(jìn)度、細(xì)化軟件開發(fā)計劃的常用方法。他們都采用“網(wǎng)絡(luò)圖”來描述一個項目的任務(wù)網(wǎng)
39、絡(luò),利用識別關(guān)鍵路徑和關(guān)鍵活動的方法,很便于進(jìn)行計劃的優(yōu)化。 在制訂軟件開發(fā)計劃并對其細(xì)化求精的過程中,應(yīng)當(dāng)注意處理好進(jìn)度和質(zhì)量之間的關(guān)系。不能為了進(jìn)度犧牲質(zhì)量,尤其不能為了加快進(jìn)度去壓縮各類審查、評審活動。14.6 計劃跟蹤監(jiān)督 沒有計劃的工程是混亂的工程、沒有跟蹤監(jiān)督的計劃是無效的計劃。 制訂計劃是嚴(yán)格項目管理的第一步。在計劃執(zhí)行的過程中,必須對計劃的執(zhí)行情況進(jìn)行跟蹤。并對跟蹤所得的結(jié)果和計劃情況進(jìn)行對比分析。當(dāng)計劃與實際之間存在著較大偏差時,必須對過程活動或者計劃進(jìn)行調(diào)整。計劃的跟蹤監(jiān)督在能力成熟度模型 CMM 中是一個重要的關(guān)鍵活動域。 計劃是我們考核評價工作的標(biāo)準(zhǔn),但是由于計劃的基礎(chǔ)
40、是建立在不能完全保證精確度的“估算值”之上,所以,即使是精心制訂的計劃,也不見得就完全沒有偏差。從另一個角度來看,即使計劃制訂得十分準(zhǔn)確,當(dāng)需求發(fā)生變更、資源發(fā)生變化或者發(fā)生了其他的風(fēng)險,也會產(chǎn)生計劃與實際進(jìn)展情況脫節(jié)的現(xiàn)象。 對于項目計劃進(jìn)行跟蹤和監(jiān)督的目的是建立對實際進(jìn)展的適當(dāng)可視性,使管理者能在軟件項目性能明顯偏離軟件計劃時采取有效措施。 項目計劃的跟蹤和監(jiān)督活動包括對照文件化的估計、約定和計劃審查和跟蹤軟件完成情況和結(jié)果,并且根據(jù)實際的完成情況和結(jié)果調(diào)整這些計劃。 軟件項目的文件化的計劃(即軟件開發(fā)計劃)用作跟蹤軟件活動、通報狀態(tài)和修訂計劃的標(biāo)準(zhǔn)。管理者監(jiān)控軟件活動,主要通過在所選出的
41、軟件產(chǎn)品完成時和在所選擇的里程碑處,將實際的軟件規(guī)模、工作量、成本、資源和進(jìn)度與計劃值相比較,來確定真實的進(jìn)展情況。必要時采取糾正措施。這些措施可以包括修訂軟件開發(fā)計劃,重新策劃遺留的工作或者改進(jìn)過程性能。 不論是什么原因?qū)е铝擞媱澓凸こ袒顒又g的偏差,都可能造成項目的失控。因此,對計劃的執(zhí)行情況進(jìn)行制度化的跟蹤度量,是項目管理過程中的一項重要任務(wù)。一種可行的方法是采用周計劃/周總結(jié)的方式來進(jìn)行跟蹤監(jiān)督。項目經(jīng)理將項目開發(fā)計劃分解到每個人、每一周。每個工作人員都必須按照項目計劃制訂自己本周的工作計劃并嚴(yán)格執(zhí)行,記錄必要的工作數(shù)據(jù)。在每周結(jié)束時進(jìn)行周工作總結(jié),對照自己的計劃進(jìn)行工作量、進(jìn)度、成本
42、等數(shù)據(jù)的度量,找出存在的偏差并制定糾正偏差的措施。整個小組在個人跟蹤的基礎(chǔ)上進(jìn)行項目的跟蹤與監(jiān)督。在計劃的跟蹤監(jiān)督活動中,最重要的跟蹤對象是工程活動、工作進(jìn)度、項目資源、工作成本和工作質(zhì)量。 除了內(nèi)部的跟蹤與監(jiān)督之外,獨立于項目組的SQA人員也應(yīng)當(dāng)進(jìn)行項目計劃的跟蹤與監(jiān)督,并將發(fā)現(xiàn)的問題通報給項目成員,必要時向上級管理部門通報。 對計劃跟蹤監(jiān)督活動本身的進(jìn)展,也應(yīng)當(dāng)進(jìn)行度量,并將度量結(jié)果用于確定軟件跟蹤和監(jiān)督活動的狀態(tài)。需要度量的對象包括: (1) 在完成跟蹤和監(jiān)督活動時所花費的工作量和其他資源; (2) 根據(jù)跟蹤結(jié)果對軟件開發(fā)計劃的更改活動,包括對軟件工作產(chǎn)品的規(guī)模估計、軟件成本估計、關(guān)鍵計
43、算機(jī)資源估計和進(jìn)度的更改。14.7 計劃執(zhí)行情況的度量與計劃調(diào)控 在計劃制訂并被細(xì)化求精之后,它實際上就已經(jīng)界定了工作的目標(biāo),給出了項目規(guī)模,預(yù)計的工作量,各個階段任務(wù)的完成期限,項目的總體成本和各個階段的成本,所需要的資源和可能發(fā)生的風(fēng)險。因此,在項目工作中,應(yīng)當(dāng)針對這些方面的實際進(jìn)展進(jìn)行度量。這種度量應(yīng)當(dāng)是量化的、客觀的并應(yīng)當(dāng)形成書面的度量數(shù)據(jù)表,包括: (1) 度量計劃中羅列出來的所有軟件工作產(chǎn)品的實際規(guī)模數(shù)據(jù)(代碼行、文檔頁等等); (2) 度量完成各項任務(wù)的實際時間; (3) 度量完成各項工作所耗費的實際成本; (4) 度量人力資源、可復(fù)用構(gòu)件資源和硬件/軟件環(huán)境資源的實際狀態(tài)(到位/未到位); (5) 度量實際的工作進(jìn)度; (6) 度量計劃中指出的可能發(fā)生的風(fēng)險情況(檢查特定的風(fēng)險標(biāo)識出現(xiàn)/未出現(xiàn))
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年家庭財富增長策略與資產(chǎn)重組協(xié)議3篇
- 2025版特殊醫(yī)療廢物無害化清運合作協(xié)議3篇
- 2024年簡化版貨車運送服務(wù)協(xié)議樣例版B版
- 2024年石家莊汽車租賃經(jīng)營權(quán)轉(zhuǎn)讓合同3篇
- 2025年度林業(yè)科研成果轉(zhuǎn)化承包合同3篇
- 2024機(jī)械設(shè)備租賃合同經(jīng)典
- 2025版綠色農(nóng)業(yè)項目支付擔(dān)保協(xié)議3篇
- 2024年版教育機(jī)構(gòu)講座場地租用條款3篇
- 2025年度SPF豬飼養(yǎng)疫病防控與獸醫(yī)服務(wù)合同3篇
- 2024年適用餐飲管理業(yè)務(wù)合作合同樣本版
- GB∕T 25684.5-2021 土方機(jī)械 安全 第5部分:液壓挖掘機(jī)的要求
- 特種涂料類型——耐核輻射涂料的研究
- 二氧化碳可降解塑料生產(chǎn)項目建議書
- 化工裝置常用英語詞匯對照
- 幼兒園幼兒教育數(shù)學(xué)領(lǐng)域核心經(jīng)驗
- 病例討論麻醉科PPT課件
- EBZ220A掘進(jìn)機(jī)幻燈片
- 集體跳繩賽規(guī)則
- 煤礦調(diào)度工作培訓(xùn)內(nèi)容
- 機(jī)械原理課程設(shè)計-旋轉(zhuǎn)型灌裝機(jī)運動方案設(shè)計
- 標(biāo)準(zhǔn)《大跨徑混凝土橋梁的試驗方法》
評論
0/150
提交評論