軟件工程與開發(fā)技術(shù)(西電第二版)第17章 軟件計劃_第1頁
軟件工程與開發(fā)技術(shù)(西電第二版)第17章 軟件計劃_第2頁
軟件工程與開發(fā)技術(shù)(西電第二版)第17章 軟件計劃_第3頁
軟件工程與開發(fā)技術(shù)(西電第二版)第17章 軟件計劃_第4頁
軟件工程與開發(fā)技術(shù)(西電第二版)第17章 軟件計劃_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第17章軟件方案17.1軟件范圍界定 17.2資源需求17.3工程估算17.4軟件工程方案的結(jié)構(gòu)17.5工程方案的分解求精17.6方案跟蹤監(jiān)督17.7方案執(zhí)行情況的度量與方案調(diào)控17.8小結(jié)17.1軟件范圍界定軟件工程方案的第一個活動是確定軟件的范圍。軟件范圍描述了軟件工程的功能、性能、約束條件、接口以及可靠性等質(zhì)量指標(biāo)。此項工作旨在進(jìn)一步將工程的開發(fā)任務(wù)明確化、具體化,并進(jìn)行必要的功能分解,為下一步的估算工作打下根底。性能的考慮包括處理復(fù)雜度和系統(tǒng)響應(yīng)時間的需求;約束條件那么標(biāo)志著外部硬件或其他現(xiàn)有系統(tǒng)對軟件的限制。功能、性能和約束必須在一起進(jìn)行綜合的評價。因為在功能相同時,性能限制不同,可能將導(dǎo)致開發(fā)工作量相差一個數(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)因子和從F1~F14的取值就反映了約束條件對最終度量結(jié)果的影響。作為例子,我們對一個傳送帶分類系統(tǒng)(如圖14.1所示)的軟件需求進(jìn)行范圍界定。圖17.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)品推入指定的箱子中。同時,每一個產(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ù)傳送帶的流速可以換算出最大可接受的響應(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)行估算。17.2資源需求在進(jìn)行了范圍界定之后,軟件方案的第二個任務(wù)是估算為完本錢軟件開發(fā)工作所需要的資源。包括人力資源、可復(fù)用軟件資源和環(huán)境資源(如圖17.2所示)。資源金字塔的底層是開發(fā)環(huán)境,包括硬件和軟件工具,提供支持開發(fā)工作的根底;再高一層是可復(fù)用的軟件構(gòu)件——軟件建筑塊,能夠極大地降低開發(fā)本錢并縮短交付時間;金字塔的頂端是人力資源,這是資源中的主要成分。在工程方案中,針對所需要的每類資源,都應(yīng)當(dāng)從資源描述、可用性說明、需要該資源的時間以及該資源被使用的持續(xù)時間四個特征上進(jìn)行說明。圖17.2資源金字塔圖17.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)存在著現(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ǎng)絡(luò)通信設(shè)備、各種外設(shè)等等;而軟件資源是工作在這一平臺上的工具集,包括分析設(shè)計工具、語言工具、中間件工具、數(shù)據(jù)庫系統(tǒng)、操作系統(tǒng)等等。除了要明確所需要的軟硬件資源環(huán)境之外,還應(yīng)當(dāng)明確地界定資源的時間窗口,并落實在指定的時間窗口中這些資源是否可用。17.3項目估算就本質(zhì)來說,工程估算就是“超前度量〞。直接度量和間接度量兩種模式,面向規(guī)模度量和面向功能度量兩種方法都可以用來進(jìn)行估算。但是,由于“超前〞的特點,必要的根本度量數(shù)據(jù)往往難以直接得到,歷史數(shù)據(jù)和基于經(jīng)驗的模型往往成為進(jìn)行估算的依據(jù)。“度量基線〞在進(jìn)行估算時的作用十分顯著。沒有度量基線,工程估算的根底就十分薄弱,很不穩(wěn)定。17.3.1基于問題分解的估算分解方法包括問題分解和過程分解,都可以用來進(jìn)行工程的估算。在工程估算過程中,“規(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)行計算,得到工作量與本錢估算數(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)求和公式來計算:上式中,Sopt代表“樂觀〞值,Sm代表“可能〞值,Spess代表“悲觀〞值。公式中給“可能值〞以最大權(quán)重,并遵循概率分布。一旦確定了估算變量的期望值,就可以開始使用歷史的LOC或FP相關(guān)數(shù)據(jù)作下一步估算。這種方法稱為“三點估算〞方法。(17.2)

例1基于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);(5)計算機(jī)圖形顯示機(jī)制(CGDF);(6)外設(shè)控制(PC);(7)設(shè)計分析模塊(DAM)。表14.1基于問題分解的LOC方法的估算表問題分解所得的子功能估算的LOC期望值(行)用戶界面及控制機(jī)制2300二維幾何分析(2DGA)5300三維幾何分析(3DGA)6800數(shù)據(jù)庫管理(DBM)3350計算機(jī)圖形顯示機(jī)制(CGDF)4950外設(shè)控制(PC)2100設(shè)計分析模塊(DAM)8400估算總代碼行數(shù)期望值33?200查詢本組織的度量基線得知,此類系統(tǒng)的平均生產(chǎn)率為620LOC/PM;平均人月本錢為8000美元/人月,那么LOC平均本錢為13美元/LOC。計算可知本工程的總本錢為431000美元,總工作量54個人月。如果人力資源投入六名合格的工程師,那么預(yù)計工期為九個月。例二基于FP估算的例子。對于上例中的各個子功能進(jìn)一步細(xì)化,將所有功能都分解為EI、EO、EQ以及ILF、EIF的組合,假設(shè)加權(quán)因子都取為“平均〞,計算出各類功能點見表14.2。表17.2估算信息域值——基于問題分解的FP估算信息域值樂觀值可能值悲觀值估算計數(shù)加權(quán)因子FP計數(shù)EI20243024496EO12152216580EQ16222822488ILF44541040EIF2232714總計數(shù)值

318表17.3CAD軟件工程復(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=318×[0.65+0.01×∑Fi]=372(功能點)。查詢組織的度量基線數(shù)據(jù)庫得知,這類系統(tǒng)的平均生產(chǎn)率為6.5FP/PM,一個PM的本錢仍取8000美元,那么每個FP的平均本錢約為1230美元,總工程本錢估算約為457000美元,工作量估算期望值是58個人月。17.3.2基于過程分解的估算通過對工作過程進(jìn)行分解,也能夠結(jié)合度量基線進(jìn)行估算。方法是將過程分解為相對較小的活動或任務(wù),估算出完成每項任務(wù)的工作量,最后匯總即可。和基于問題分解的估算一樣,基于過程分解的估算也是開始于軟件功能描述。對于每一個功能,都必須要執(zhí)行一系列的活動,如果能夠利用同類工程的度量基線估算出對應(yīng)于每項任務(wù)所需要的工作量,那么加總值就是本工程的工作量估算值。仍以CAD軟件開發(fā)工程為例,根底參數(shù)見表14.4,仍然按照每人月8000美元計算,工程總本錢368000美元,工作量共46個人月。表17.4CAD軟件工程基于過程分解的工作量估算??活動任務(wù)用戶通信計劃制訂風(fēng)險分析工程分析設(shè)計UIGF

0.502.502DGA

0.754.003DGA

0.504.00DSM

0.503.00CGDF

0.503.00PCF

0.252.00DAM

0.502.00總和0.250.250.253.5020.50工作量0.5%0.5%0.5%8%45%表17.4CAD軟件工程基于過程分解的工作量估算建造發(fā)布用戶評估總和編碼測試0.405.00

8.400.602.00

7.351.003.00

8.501.001.50

6.000.751.50

5.750.501.50

4.250.502.00

5.004.7516.50

46.0010%36%

由上面的例子可見,采用不同的估算方法,結(jié)果會有一定的誤差。這在一定范圍內(nèi)是正常的,可以用幾種方法的平均估算值作為最終估算值。同時,也可以看出,度量基線在估算中的作用是無庸置疑的。如果幾種方法的估算偏差過大(一般以20%為界),那么需要分析原因,進(jìn)行再估算??赡艿脑蛑饕袃煞N,其一是度量基線中的數(shù)據(jù)和當(dāng)前問題的類型不匹配;其二是對工程的范圍理解不充分。方案者必須確定偏差過大的原因,并調(diào)和各個估算結(jié)果。17.3.3經(jīng)驗估算模型經(jīng)驗估算模型是用經(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)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.0545FPKemerer模型E=60.62×7.728×10-8(FP)3Maston-Barnett模型E=585.7+5.12FP不同的模型來源于不同的樣本數(shù)據(jù)集,結(jié)果對于相同的ev值會算出不同的結(jié)果。因此,估算模型必須按照當(dāng)前工程特點進(jìn)行調(diào)整。17.3.4COCOMO模型構(gòu)造性本錢模型(COCOMO,ConstructiveCostModel)是由BarryBoehm提出的一種被廣為應(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模型中,使用的根本量包括:源指令行數(shù):DSI或KDSI,度量單位為行或千行,1KDSI=1024DSI(不包括注釋行)。開發(fā)工作量:MM,度量單位為“人月〞,1MM=19人日=152人時=1/12人年。開發(fā)進(jìn)度:TDEV,度量單位為月,它由工作量確定。在使用COCOMO模型進(jìn)行度量時,應(yīng)當(dāng)考慮到具體工程的特點和具體的開發(fā)環(huán)境。軟件工程的類型一般可以分為三類。(1)組織型:相對較小較簡單的軟件工程(KDSI<50)。需求不很苛刻,開發(fā)人員對軟件產(chǎn)品開發(fā)目標(biāo)理解充分,軟件工作經(jīng)驗豐富,對軟件使用環(huán)境熟悉,受硬件約束小。多數(shù)應(yīng)用軟件均屬此類。(2)嵌入型:要求在緊密聯(lián)系的硬件、軟件和操作的限制條件下運行。通常與某些硬設(shè)備緊密結(jié)合,因此對算法、數(shù)據(jù)結(jié)構(gòu)、接口要求較高的軟件規(guī)模任意。例如大型OS軟件、大型指揮系統(tǒng)軟件等都屬此類。(3)半獨立型:要求介于以上兩種之間的軟件。規(guī)模、復(fù)雜性規(guī)模都在中等以上。KDSI可能在300以上。例如大型ERP、簡單的指揮系統(tǒng)、大型事務(wù)處理軟件等屬于此類。針對不同的工程任務(wù),應(yīng)中選擇使用不同層次的COCOMO模型進(jìn)行估算。根本的COCOMO模型工作量與進(jìn)度估算公式見表14.5。表17.5根本COCOMO模型工作量與進(jìn)度估算公式總體類型工作量進(jìn)度組織型MM=2.4(KDSI)1.05TDEV=2.5(MM)0.38半獨立型MM=3.0(KDSI)1.12TDEV=2.5(MM)0.35嵌入型MM=3.6(KDSI)1.20TDEV=2.5(MM)0.32表17.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ù),∏Fi是15項調(diào)整函數(shù)F1~F15的連乘積。實際進(jìn)度也要利用實際工作量調(diào)整。15種影響軟件工作量的因素見表17.7。(17.4)表17.715種影響軟件工作量因素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)整,更為貼近實際。(17.5)對于實時嵌入式軟件的開發(fā),典型值是p=2000;對于電信軟件及系統(tǒng)軟件,p=10000;對于科學(xué)計算軟件,p=12000;而對于商業(yè)系統(tǒng)應(yīng)用,p=28000。當(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ā)項目,當(dāng)規(guī)模確定之后,利用上式進(jìn)行計算可得(17.6)(17.7)(月)(人月)(1)對于工程規(guī)模(如LOC)或功能(如功能點)的定量估算。(2)定性的工程特性,如復(fù)雜度、所要求的可靠性或交付期限的緊迫程度。(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)的是,實踐證明,假設(shè)干種不同工具應(yīng)用于同一個工程時,得到的估算結(jié)果可能存在很大偏差。因此,應(yīng)當(dāng)明確,自動估算工具的輸出不應(yīng)當(dāng)作為惟一的估算數(shù)據(jù)來源。17.4軟件工程方案的結(jié)構(gòu)當(dāng)界定了軟件范圍,明晰了約束條件和接口要求,確定了資源需求,估算出工程規(guī)模、本錢和工作量之后,制定工程開發(fā)方案就有了科學(xué)的依據(jù)。軟件工程方案由工程開發(fā)方案和相關(guān)的工作方案構(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)。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è)計方案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.變更控制標(biāo)準(zhǔn)7.配置管理方案8.風(fēng)險預(yù)測及應(yīng)對措施9.關(guān)于本軟件開發(fā)方案的補(bǔ)充說明在軟件能力成熟度模型CMM中,將“軟件工程方案〞作為CMM2級的一個重要的KPA提了出來。17.5工程方案的分解求精“按照分階段的生命周期方案進(jìn)行嚴(yán)格的控制〞是軟件工程七項原那么的第一項。方案是控制工程過程的依據(jù),離開了方案,對工作的評價就沒有標(biāo)準(zhǔn),對過程的控制就沒有根據(jù)。因此,在按照標(biāo)準(zhǔn)完成了包括范圍界定、規(guī)模估算、資源需求分析、階段劃分、角色定義等內(nèi)容的工程開發(fā)方案之后,應(yīng)當(dāng)進(jìn)一步對其分解細(xì)化、調(diào)整求精。這樣將能夠使得開發(fā)工作步步、時時、事事有據(jù)可依、有章可循。17.5.1任務(wù)確實定與并發(fā)處理在工程開發(fā)方案中,已經(jīng)對工程的階段工作任務(wù)進(jìn)行了劃分。但是在多人參加的工程中,開發(fā)工作中必然會出現(xiàn)并行情況,如圖17.4所示。圖17.4軟件工程階段任務(wù)的并行性從圖17.4中可以看到,在開發(fā)進(jìn)程中設(shè)置了許多里程碑。里程碑為管理人員提供了指示工程進(jìn)度的可靠依據(jù)。當(dāng)一個軟件任務(wù)成功完成并通過評審,產(chǎn)生了文檔后,就完成了一個里程碑。階段任務(wù)之間的“并行〞特征也表示得較為清晰。由于軟件工程工程的“并行性〞,就提出了一系列的進(jìn)度要求。因為并行任務(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)配上,也要注意到并行工作帶來的影響。17.5.2制定明細(xì)的開發(fā)進(jìn)度方案當(dāng)工程規(guī)模、開發(fā)工作量已經(jīng)估算完畢,資源也已經(jīng)明確后,可以按照表17.8的建議來確定各個階段的工作量的分配比例,從而確定每一階段所需的開發(fā)時間,然后再針對每個階段進(jìn)行任務(wù)分解,最后為分解出的各個任務(wù)進(jìn)行工作量估算和開發(fā)時間的分配。在這個過程中,工程的進(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)度方案比使用語言表達(dá)更清楚。在方案的圖形表示中,必須明確標(biāo)明各個階段任務(wù)的方案開始時間、完成時間;各個任務(wù)完成的標(biāo)志(約定:○表示文檔編寫;△代表評審);各個任務(wù)中參加工作的人數(shù);各個任務(wù)和工作量之間的銜接情況;完成各項任務(wù)所需要的物理資源和數(shù)據(jù)資源。甘特圖(GanntChart)常用來表示細(xì)化的進(jìn)度方案。在用甘特圖進(jìn)行進(jìn)度求精時,時間單位可以分解到每周、每一個工作日乃至每一個工時,資源可以對應(yīng)到每一個人。圖17.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)度的里程碑。17.6方案跟蹤監(jiān)督?jīng)]有方案的工程是混亂的工程、沒有跟蹤監(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),但是由于方案的根底是建立在不能完全保證精確度的“估算值〞之上,所以,即使是精心制訂的方案,也不見得就完全沒有偏差。從另一個角度來看,即使方案制訂得十分準(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)控軟件活動,主要通過在所選出的軟件產(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)度、本錢等數(shù)據(jù)的度量,找出存在的偏差并制定糾正偏差的措施。整個小組在個人跟蹤的根底上進(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)鍵計算機(jī)資源估計和進(jìn)度的更改。17.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));(7)度量在一段時間內(nèi)發(fā)生的變更情況。上述所有度量的結(jié)果應(yīng)當(dāng)在工程組的周報和里程碑階段總結(jié)報告中明確地進(jìn)行表述。必要時,增加對有關(guān)度量結(jié)果的說明和分析。這些工作必須形成制度,保證能夠得到執(zhí)行。度量數(shù)據(jù)和方案數(shù)據(jù)之間不可防止會存在偏差。工程管理者要對照方案進(jìn)行偏差分析。當(dāng)偏差超過一定范圍后,要采用修訂方

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論