軟件工程導(dǎo)論第五版第13章課件_第1頁
軟件工程導(dǎo)論第五版第13章課件_第2頁
軟件工程導(dǎo)論第五版第13章課件_第3頁
軟件工程導(dǎo)論第五版第13章課件_第4頁
軟件工程導(dǎo)論第五版第13章課件_第5頁
已閱讀5頁,還剩155頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第13章軟件項(xiàng)目管理13.1估算軟件規(guī)模13.2工作量估算13.3進(jìn)度計(jì)劃13.4人員組織13.5質(zhì)量保證13.6軟件配置管理13.7能力成熟度模型13.8小結(jié)第13章軟件項(xiàng)目管理13.1估算軟件規(guī)模依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù),估計(jì)實(shí)現(xiàn)一個(gè)功能所需要的源程序行數(shù)。把實(shí)現(xiàn)每個(gè)功能所需要的源程序行數(shù)累加起來,就可得到實(shí)現(xiàn)整個(gè)軟件所需要的源程序行數(shù)。13.1估算軟件規(guī)模

13.1.1代碼行技術(shù)依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù),估計(jì)實(shí)現(xiàn)一個(gè)功能所需要由多名有經(jīng)驗(yàn)的軟件工程師分別做出估計(jì)。每個(gè)人都估計(jì)程序的最小規(guī)模(a)、最大規(guī)模(b)和最可能的規(guī)模(m),分別算出這3種規(guī)模的平均值,再用下式計(jì)算程序規(guī)模的估計(jì)值: L= (13.1)單位是代碼行數(shù)(LOC)或千行代碼數(shù)(KLOC)由多名有經(jīng)驗(yàn)的軟件工程師分別做出估計(jì)。代碼行技術(shù)的優(yōu)點(diǎn):代碼是所有軟件開發(fā)項(xiàng)目都有的“產(chǎn)品”,且容易計(jì)算行數(shù)。代碼行技術(shù)的缺點(diǎn)是:源程序僅是軟件配置的一個(gè)成分。為了克服代碼行技術(shù)的缺點(diǎn),人們提出了功能點(diǎn)技術(shù)。代碼行技術(shù)的優(yōu)點(diǎn):代碼是所有軟件開發(fā)項(xiàng)目都有的“產(chǎn)品”,且依據(jù)軟件信息域特性和軟件復(fù)雜性,用功能點(diǎn)(FP)為單位度量軟件規(guī)模。1.信息域特性功能點(diǎn)技術(shù)定義了信息域的5個(gè)特性:輸入項(xiàng)數(shù)(Inp)、輸出項(xiàng)數(shù)(Out)、查詢數(shù)(Inq)、主文件數(shù)(Maf)和外部接口數(shù)(Inf)。(1)輸入項(xiàng)數(shù):用戶向軟件輸入的項(xiàng)數(shù),這些輸入給軟件提供面向應(yīng)用的數(shù)據(jù)。13.1.2功能點(diǎn)技術(shù)依據(jù)軟件信息域特性和軟件復(fù)雜性,用功能點(diǎn)(FP)為單位度量軟(2)輸出項(xiàng)數(shù):軟件向用戶輸出的項(xiàng)數(shù),它們向用戶提供面向應(yīng)用的信息,例如,報(bào)表和出錯(cuò)信息等。報(bào)表內(nèi)的數(shù)據(jù)項(xiàng)不單獨(dú)計(jì)數(shù)。(3)查詢數(shù):查詢即是一次聯(lián)機(jī)輸入,它導(dǎo)致軟件產(chǎn)生某種即時(shí)響應(yīng)(輸出)。(4)主文件數(shù):邏輯主文件(即數(shù)據(jù)的一個(gè)邏輯組合,它可能是大型數(shù)據(jù)庫的一部分或是一個(gè)獨(dú)立的文件)的數(shù)目。(5)外部接口數(shù):機(jī)器可讀的全部接口(例如,磁盤或磁帶上的數(shù)據(jù)文件)的數(shù)量,用這些接口把信息傳送給另一個(gè)系統(tǒng)。(2)輸出項(xiàng)數(shù):軟件向用戶輸出的項(xiàng)數(shù),它們向用戶提供面2.估算功能點(diǎn)的步驟用下述3個(gè)步驟,可估算出一個(gè)軟件的功能點(diǎn)數(shù)(即軟件規(guī)模)。FP=UFP×TCF(1)計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP每個(gè)特性(即Inp、Out、Inq、Maf和Inf)都分類為簡單級、平均級或復(fù)雜級UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf其中,ai(1≤i≤5)是特性系數(shù),其值由相應(yīng)特性的復(fù)雜級別決定,如表13.12.估算功能點(diǎn)的步驟軟件工程導(dǎo)論第五版第13章(2)計(jì)算技術(shù)復(fù)雜性因子TCF14種技術(shù)因素Fi(1≤i≤14)對軟件規(guī)模的影響程度。每個(gè)因素分配一個(gè)從0(無影響)到5(有很大影響)DI=值在0~70之間技術(shù)復(fù)雜性因子TCF由下式計(jì)算:TCF=0.65+0.01×DI(3)計(jì)算功能點(diǎn)數(shù)FPFP=UFP×TCF功能點(diǎn)數(shù)與所用的編程語言無關(guān)。在判斷信息域特性復(fù)雜級別和技術(shù)因素的影響程度時(shí),存在著相當(dāng)大的主觀因素。(2)計(jì)算技術(shù)復(fù)雜性因子TCF軟件估算模型由經(jīng)驗(yàn)導(dǎo)出的公式來預(yù)測軟件開發(fā)工作量,工作量是軟件規(guī)模(KLOC或FP)的函數(shù),工作量的單位通常是人月(pm)。估算模型的經(jīng)驗(yàn)數(shù)據(jù),是從有限個(gè)項(xiàng)目的樣本集中總結(jié)出來的,因此,沒有一個(gè)估算模型可以適用于所有類型的軟件和開發(fā)環(huán)境。13.2工作量估算軟件估算模型由經(jīng)驗(yàn)導(dǎo)出的公式來預(yù)測軟件開發(fā)工作量,工作量是軟這類模型的總體結(jié)構(gòu)形式如下:E=A+B×(ev)C其中,A、B和C是由經(jīng)驗(yàn)數(shù)據(jù)導(dǎo)出的常數(shù),E是以人月為單位的工作量,ev是估算變量(KLOC或FP)。下面給出幾個(gè)典型的靜態(tài)單變量模型。1.面向FP的估算模型(1)Albrecht&Gaffney模型E=-13.39+0.0545FP(2)Maston,Barnett和Mellichamp模型E=585.7+15.12FP13.2.1靜態(tài)單變量模型這類模型的總體結(jié)構(gòu)形式如下:E=A+B×(ev)C13.22.面向KLOC的估算模型(1)Walston_Felix模型E=5.2×(KLOC)0.91(2)Bailey_Basili模型E=5.5+0.73×(KLOC)1.16(3)Boehm簡單模型E=3.2×(KLOC)1.05(4)Doty模型(在KLOC>9時(shí)適用)E=5.288×(KLOC)1.0472.面向KLOC的估算模型對于相同的KLOC或FP值,用不同模型估算將得出不同的結(jié)果。主要原因是,這些模型多數(shù)都是僅根據(jù)若干應(yīng)用領(lǐng)域中有限個(gè)項(xiàng)目的經(jīng)驗(yàn)數(shù)據(jù)推導(dǎo)出來的,適用范圍有限。因此,必須根據(jù)當(dāng)前項(xiàng)目的特點(diǎn)選擇適用的估算模型,并且根據(jù)需要適當(dāng)?shù)卣{(diào)整(例如,修改模型常數(shù))估算模型。對于相同的KLOC或FP值,用不同模型估算將得出不同的結(jié)果。動態(tài)多變量模型是根據(jù)從4000多個(gè)當(dāng)代軟件項(xiàng)目中收集的生產(chǎn)率數(shù)據(jù)推導(dǎo)出來的。工作量是軟件規(guī)模和開發(fā)時(shí)間這兩個(gè)變量的函數(shù)。E=(LOC×B0.333/P)3×(1/t)4 (13.2)E是以人月或人年為單位的工作量;t>1是以月或年為單位的項(xiàng)目持續(xù)時(shí)間;B是特殊技術(shù)因子,它隨著規(guī)模和要求的增加而緩慢增加:小的程序(KLOC=5~15),B=0.16,超過70KLOC的程序,B=0.39;P是生產(chǎn)率參數(shù)(2000-30000)13.2.2動態(tài)多變量模型動態(tài)多變量模型是根據(jù)從4000多個(gè)當(dāng)代軟件項(xiàng)目中收集的生產(chǎn)率P生產(chǎn)率參數(shù),反映了下述因素對工作量的影響:總體過程成熟度及管理水平;使用良好的軟件工程實(shí)踐的程度;使用的程序設(shè)計(jì)語言的級別;軟件環(huán)境;軟件項(xiàng)目組的技術(shù)及經(jīng)驗(yàn);應(yīng)用系統(tǒng)的復(fù)雜程度。開發(fā)實(shí)時(shí)嵌入式軟件時(shí):P~=2000;電信系統(tǒng)和系統(tǒng)軟件時(shí):P=10000;商業(yè)應(yīng)用系統(tǒng):P=28000。如果把項(xiàng)目持續(xù)時(shí)間延長一些,則可降低完成項(xiàng)目所需的工作量。P生產(chǎn)率參數(shù),反映了下述因素對工作量的影響:構(gòu)造性成本模型:

COCOMO(COnstructiveCOstModel)。1981年Boehm在《軟件工程經(jīng)濟(jì)學(xué)》中首次提出了COCOMO模型。1997年Boehm等人提出的COCOMO2,修訂了COCOMO。3個(gè)層次的軟件開發(fā)工作量估算模型:(1)應(yīng)用系統(tǒng)組成模型用于估算構(gòu)建原型的工作量。(2)早期設(shè)計(jì)模型適用于體系結(jié)構(gòu)設(shè)計(jì)階段。(3)后體系結(jié)構(gòu)模型適用于完成體系結(jié)構(gòu)設(shè)計(jì)之后的軟件開發(fā)階段。13.2.3COCOMO2模型構(gòu)造性成本模型:COCOMO(COnstructiveC后體系結(jié)構(gòu)模型軟件開發(fā)工作量函數(shù):

E=

(13.3)E是開發(fā)工作量(以人月為單位),a是模型系數(shù),KLOC是估計(jì)的源代碼行數(shù)(以千行為單位),b是模型指數(shù),fi(i=1~17)是成本因素,見下表。后體系結(jié)構(gòu)模型軟件開發(fā)工作量函數(shù):軟件工程導(dǎo)論第五版第13章(1)新增加了4個(gè)成本因素:要求的可重用性、需要的文檔量、人員連續(xù)性(即人員穩(wěn)定程度)和多地點(diǎn)開發(fā)。(2)略去了原始模型中的2個(gè)成本因素(計(jì)算機(jī)切換時(shí)間和使用現(xiàn)代程序設(shè)計(jì)實(shí)踐)。(3)某些成本因素(分析員能力、平臺經(jīng)驗(yàn)、語言和工具經(jīng)驗(yàn))對生產(chǎn)率的影響(即工作量系數(shù)最大值與最小值的比率)增加了,另一些成本因素(程序員能力)的影響減小了。(1)新增加了4個(gè)成本因素:要求的可重用性、需要的文檔量COCOMO2采用了更加精細(xì)得多的b分級模型,這個(gè)模型使用5個(gè)分級因素Wi(1≤i≤5):劃分成從甚低(Wi=5)到特高(Wi=0)的6個(gè)級別b= (13.4)b的取值范圍為1.01~1.26。5個(gè)分級因素如下所述:(1)項(xiàng)目先例性:該項(xiàng)目的新奇程度。(2)開發(fā)靈活性:約束多少。(3)風(fēng)險(xiǎn)排除度:重大風(fēng)險(xiǎn)已被消除的比例。(4)項(xiàng)目組凝聚力:開發(fā)人員相互協(xié)作度。(5)過程成熟度:按照能力成熟度模型(見13.7節(jié))COCOMO2采用了更加精細(xì)得多的b分級模型,這個(gè)模型使用5目的:保證項(xiàng)目按時(shí)完成影響工期的因素:工作量,資源(人力,設(shè)備),項(xiàng)目特點(diǎn)方法:把項(xiàng)目分解成許多小任務(wù)以利于估計(jì),執(zhí)行,監(jiān)控難點(diǎn):根據(jù)項(xiàng)目,合理分配任務(wù),優(yōu)化使用資源,留有余地工具:經(jīng)驗(yàn)?zāi)P?

GANTT圖,工程網(wǎng)絡(luò)項(xiàng)目管理者必須定義全部項(xiàng)目任務(wù),識別出關(guān)鍵任務(wù),跟蹤關(guān)鍵任務(wù)的進(jìn)展?fàn)顩r。制定一個(gè)詳細(xì)的進(jìn)度表,監(jiān)督項(xiàng)目進(jìn)度并控制整個(gè)項(xiàng)目。13.3進(jìn)度計(jì)劃目的:保證項(xiàng)目按時(shí)完成13.3進(jìn)度計(jì)劃工期>=工作量/人力正常情況下,估算開發(fā)時(shí)間的模型方程:(1)Walston_Felix模型:T=2.5E0.35(2)原始的COCOMO模型:T=2.5E0.38(3)COCOMO2模型:T=3.0E0.33+0.2×(b-1.01)(4)Putnam模型:T=2.4E1/3E是開發(fā)工作量(以人月為單位),T是開發(fā)時(shí)間(以月為單位)。13.3.1估算開發(fā)時(shí)間工期>=工作量/人力13.3.1估算開發(fā)時(shí)間為了縮短開發(fā)時(shí)間應(yīng)該增加開發(fā)工作的人數(shù)。隨著開發(fā)小組規(guī)模擴(kuò)大,個(gè)人生產(chǎn)率將下降,開發(fā)時(shí)間與開發(fā)工作的人數(shù)非簡單反比關(guān)系的兩個(gè)原因:當(dāng)小組變大時(shí),通信開銷增加了。新成員要額外花費(fèi)小組其他成員的時(shí)間。被稱為Brooks規(guī)律的下述現(xiàn)象:向一個(gè)已經(jīng)延期的項(xiàng)目增加人力,可能(只)會使得它更加延期。為了縮短開發(fā)時(shí)間應(yīng)該增加開發(fā)工作的人數(shù)。項(xiàng)目組規(guī)模與項(xiàng)目組總生產(chǎn)率的關(guān)系。P名項(xiàng)目組員之間的通信路徑數(shù):MIN=P-1,MAX=P(P-1)/2通信路徑數(shù)大約為Pα,其中1<α<2。一個(gè)組員不與任何人通信時(shí)個(gè)人生產(chǎn)率為L,每條通信路徑導(dǎo)致生產(chǎn)率減少l,組員個(gè)人平均生產(chǎn)率為:Lr=L-l(P-1)r (13.5)其中,r是對通信路徑數(shù)的度量,0<r≤1項(xiàng)目組規(guī)模與項(xiàng)目組總生產(chǎn)率的關(guān)系。規(guī)模為P的項(xiàng)目組的總生產(chǎn)率為Ltot=P(L-l(P-1)r) (13.6)對于給定的L,l和r的值,總生產(chǎn)率Ltot是P的函數(shù)。存在一個(gè)最佳的項(xiàng)目組規(guī)模Popt,其總生產(chǎn)率最高。Boehm根據(jù)經(jīng)驗(yàn)指出,軟件項(xiàng)目的開發(fā)時(shí)間最多可以減少到正常開發(fā)時(shí)間的75%。規(guī)模為P的項(xiàng)目組的總生產(chǎn)率為制定進(jìn)度計(jì)劃

任務(wù)(活動)之間的依賴關(guān)系類型制定進(jìn)度計(jì)劃

任務(wù)(活動)之間的依賴關(guān)系類型項(xiàng)目網(wǎng)絡(luò)圖什么是項(xiàng)目網(wǎng)絡(luò)圖?項(xiàng)目網(wǎng)絡(luò)圖是項(xiàng)目的所有活動以及它們之間邏輯關(guān)系或排序的圖形顯示。項(xiàng)目網(wǎng)絡(luò)圖是活動排序的輸出,它有以下作用:(1)能表示項(xiàng)目活動,并表示活動之間的依賴關(guān)系。(2)表明項(xiàng)目活動將以什么順序繼續(xù)。(3)在進(jìn)行工期估計(jì)時(shí),表明項(xiàng)目將需要多長時(shí)間。(4)當(dāng)改變某項(xiàng)活動工期時(shí),表明項(xiàng)目工期將如何變化。

項(xiàng)目網(wǎng)絡(luò)圖有兩種表示形式:(1)前導(dǎo)圖法(PDM:Precedence

Diagramming

Method)(2)箭線圖法(ADM:Arrow

Diagramming

Method)項(xiàng)目網(wǎng)絡(luò)圖什么是項(xiàng)目網(wǎng)絡(luò)圖?項(xiàng)目網(wǎng)絡(luò)圖項(xiàng)目網(wǎng)絡(luò)圖甲項(xiàng)目例甲項(xiàng)目中包含的活動清單、各個(gè)活動的歷時(shí)以及活動間的依賴關(guān)系如下:各活動的依賴關(guān)系:

A、B、C可以同時(shí)開始;

D必須在A完成后開始;

E、F必須在B完成后開始;

G必須在C完成后開始;

H必須在D、E完成后開始;

I必須在G完成后開始;

J必須在F、H、I完成后開始。甲項(xiàng)目例甲項(xiàng)目中包含的活動清單、各個(gè)活動的歷時(shí)以及活動間的依甲項(xiàng)目的箭線圖(ADM)或

雙代號網(wǎng)絡(luò)圖(AOA)示例甲項(xiàng)目的箭線圖(ADM)或

采用PDM繪制的甲項(xiàng)目的網(wǎng)絡(luò)圖示例采用PDM繪制的甲項(xiàng)目的網(wǎng)絡(luò)圖示例活動歷時(shí)估計(jì)活動歷時(shí)估計(jì)是根據(jù)任務(wù)分解中定義的項(xiàng)目活動和項(xiàng)目活動清單來估計(jì)完成這些項(xiàng)目所需要的工期。工期包括一項(xiàng)活動所消耗的實(shí)際工作時(shí)間加上間歇時(shí)間?;顒託v時(shí)估計(jì)活動歷時(shí)估計(jì)是根據(jù)任務(wù)分解中定義的項(xiàng)目活動和項(xiàng)目制定進(jìn)度計(jì)劃在活動定義、活動排序、和活動歷時(shí)估計(jì)的基礎(chǔ)上,綜合各個(gè)項(xiàng)目活動的開始和結(jié)束日期、最終的活動順序以及工期來確定項(xiàng)目的總體進(jìn)度計(jì)劃。制定進(jìn)度計(jì)劃在活動定義、活動排序、和活動歷時(shí)估計(jì)的基礎(chǔ)上,綜

甘特圖

甘特圖,通過日歷形式列出項(xiàng)目活動及其相應(yīng)的開始和結(jié)束日期,它為反映項(xiàng)目進(jìn)度信息提供了一種標(biāo)準(zhǔn)形式。下圖是用PROJECT制作的甲項(xiàng)目的最簡單的一個(gè)甘特圖早期的甘特圖的最大缺點(diǎn)是通常不反映依賴關(guān)系,但是如果在Project上建立了依賴關(guān)系,這種依賴關(guān)系會自動顯示在甘特圖上。

甘特圖

甘特圖,通過日歷形式列出項(xiàng)目活動及其相甘特圖使用項(xiàng)目管理軟件可以創(chuàng)建更為復(fù)雜的甘特圖甘特圖使用項(xiàng)目管理軟件可以創(chuàng)建更為復(fù)雜的甘特圖甘特圖跟蹤甘特圖可以用來評價(jià)項(xiàng)目的進(jìn)展注意:任務(wù)用兩種水平橫線表示。下部表示計(jì)劃歷史(基準(zhǔn)計(jì)劃歷史);上部表示實(shí)際歷史。由于跟蹤甘特圖是建立在實(shí)際開始與完成日期的基礎(chǔ)之上,將計(jì)劃與實(shí)際的項(xiàng)目進(jìn)度信息進(jìn)行比較,所以,項(xiàng)目經(jīng)理可以用它來監(jiān)控單個(gè)任務(wù)和整體項(xiàng)目的進(jìn)展情況。甘特圖跟蹤甘特圖可以用來評價(jià)項(xiàng)目的進(jìn)展甘特圖甘特圖與網(wǎng)絡(luò)圖的比較甘特圖在進(jìn)度報(bào)告中很有效在作管理陳述時(shí)易于讀懂和使用。作為計(jì)劃編制工具不是太強(qiáng)。沒有表示活動間的邏輯關(guān)系。網(wǎng)絡(luò)圖表明活動和事件間的相互關(guān)系。識別關(guān)鍵路徑,項(xiàng)目歷程和活動排序。表明工作流程。幫助編制計(jì)劃和組織工作。甘特圖甘特圖與網(wǎng)絡(luò)圖的比較甘特圖網(wǎng)絡(luò)圖關(guān)鍵路徑法查找關(guān)鍵路徑實(shí)例:使用箭線圖來確定關(guān)鍵路徑。使用前導(dǎo)圖來確定關(guān)鍵路徑。關(guān)鍵路徑法查找關(guān)鍵路徑實(shí)例:甲項(xiàng)目的箭線圖(ADM)或

雙代號網(wǎng)絡(luò)圖(AOA)示例甲項(xiàng)目的箭線圖(ADM)或

采用PDM繪制的甲項(xiàng)目的網(wǎng)絡(luò)圖示例采用PDM繪制的甲項(xiàng)目的網(wǎng)絡(luò)圖示例關(guān)鍵路徑法關(guān)鍵路徑法單個(gè)軟件開發(fā)人員無法在給定期限內(nèi)完成軟件項(xiàng)目,因此,必須把多名軟件開發(fā)人員合理地組織起來,使他們有效地分工協(xié)作共同完成開發(fā)工作。3種典型的組織方式:民主制程序員組、主程序員組和現(xiàn)代程序員組。13.4人員組織單個(gè)軟件開發(fā)人員無法在給定期限內(nèi)完成軟件項(xiàng)目,因此,必須把多民主制程序員組:小組成員完全平等,通信信道共有n(n-1)/2條。程序設(shè)計(jì)小組的規(guī)模應(yīng)該以2~8名成員為宜。優(yōu)點(diǎn):組員們對發(fā)現(xiàn)程序錯(cuò)誤持積極的態(tài)度,這種態(tài)度有助于更快速地發(fā)現(xiàn)錯(cuò)誤,從而導(dǎo)致高質(zhì)量的代碼。缺點(diǎn):由于沒有明確的權(quán)威指導(dǎo)開發(fā)工程的進(jìn)行,組員間將缺乏必要的協(xié)調(diào),最終可能導(dǎo)致工程失敗。13.4.1民主制程序員組民主制程序員組:小組成員完全平等,通信信道共有n(n-1IBM公司20世紀(jì)70年代初期開始采用,幾點(diǎn)考慮:(1)軟件開發(fā)人員多數(shù)比較缺乏經(jīng)驗(yàn);(2)程序設(shè)計(jì)過程中有許多事務(wù)性的工作,例如,大量信息的存儲和更新;(3)多渠道通信很費(fèi)時(shí)間,將降低程序員的生產(chǎn)率。用經(jīng)驗(yàn)多、技術(shù)好、能力強(qiáng)的程序員作為主程序員,同時(shí),組內(nèi)分工,給主程序員提供充分支持,所有通信都通過一兩個(gè)人進(jìn)行。13.4.2主程序員組IBM公司20世紀(jì)70年代初期開始采用,幾點(diǎn)考慮:13.主程序員組的兩個(gè)重要特性:(1)專業(yè)化。成員完成受過專業(yè)訓(xùn)練的工作。(2)層次性。主程序員全面負(fù)責(zé)。組織形式如圖13.5所示。主程序員組的兩個(gè)重要特性:問題:主程序員具備兩方面的才能,這樣的人才不多。后備程序員更難找。編程秘書也很難找到。問題:“主程序員”由兩個(gè)人擔(dān)任:一個(gè)負(fù)責(zé)小組的技術(shù);一個(gè)負(fù)責(zé)管理決策。13.4.3現(xiàn)代程序員組“主程序員”由兩個(gè)人擔(dān)任:一個(gè)負(fù)責(zé)小組的技術(shù);一個(gè)負(fù)責(zé)管當(dāng)軟件項(xiàng)目規(guī)模較大時(shí),應(yīng)該把程序員分成若干個(gè)小組,采用圖13.7所示的組織結(jié)構(gòu)。該圖描繪的是技術(shù)管理組織結(jié)構(gòu),非技術(shù)管理組織結(jié)構(gòu)與此類似。由圖可以看出,產(chǎn)品開發(fā)作為一個(gè)整體是在項(xiàng)目經(jīng)理的指導(dǎo)下進(jìn)行的,程序員向他們的組長匯報(bào)工作,而組長則向項(xiàng)目經(jīng)理匯報(bào)工作。當(dāng)產(chǎn)品規(guī)模更大時(shí),可以適當(dāng)增加中間管理層次。當(dāng)軟件項(xiàng)目規(guī)模較大時(shí),應(yīng)該把程序員分成若干個(gè)小組,采用圖13圖13.7大型項(xiàng)目的技術(shù)管理組織結(jié)構(gòu)軟件工程導(dǎo)論第五版第13章軟件質(zhì)量就是“軟件與明確地和隱含地定義的需求相一致的程度”:(1)軟件需求是度量軟件質(zhì)量的基礎(chǔ)。(2)有沒有顯式描述的隱含需求。(3)不遵守一組指導(dǎo)軟件開發(fā)的準(zhǔn)則,會導(dǎo)致軟件質(zhì)量不高。13.5質(zhì)量保證

13.5.1軟件質(zhì)量軟件質(zhì)量就是“軟件與明確地和隱含地定義的需求相一致的程度”:圖13.9軟件質(zhì)量因素軟件工程導(dǎo)論第五版第13章軟件質(zhì)量保證(softwarequalityassurance,SQA)的措施主要有:技術(shù)復(fù)審和測試。兩類參加軟件質(zhì)量保證工作的人員:軟件工程師通過采用先進(jìn)的技術(shù)方法和度量,進(jìn)行正式的技術(shù)復(fù)審以及完成軟件測試來保證軟件質(zhì)量。SQA小組的職責(zé),是輔助軟件工程師以獲得高質(zhì)量的軟件產(chǎn)品。其從事的軟件質(zhì)量保證活動主要是:計(jì)劃,監(jiān)督,記錄,分析和報(bào)告。確保軟件過程的質(zhì)量來保證軟件產(chǎn)品的質(zhì)量。13.5.2軟件質(zhì)量保證措施軟件質(zhì)量保證(softwarequalityassura1.技術(shù)復(fù)審的必要性較早發(fā)現(xiàn)錯(cuò)誤,防止被傳播到軟件過程的后續(xù)階段。大型軟件產(chǎn)品中檢測出的錯(cuò)誤,60%~70%屬于規(guī)格說明錯(cuò)誤或設(shè)計(jì)錯(cuò)誤,而正式技術(shù)復(fù)審在發(fā)現(xiàn)規(guī)格說明錯(cuò)誤和設(shè)計(jì)錯(cuò)誤方面的有效性高達(dá)75%。正式技術(shù)復(fù)審包括走查(walkthrough)和審查(inspection)。走查的步驟比審查少,而且沒有審查正規(guī)。1.技術(shù)復(fù)審的必要性2.走查成員組成(走查規(guī)格說明的小組為例):一名負(fù)責(zé)起草規(guī)格說明的人,一名負(fù)責(zé)該規(guī)格說明的管理員,一位客戶代表,一名下階段開發(fā)組代表一名SQA小組代表(組長)。2.走查走查組成員最好是經(jīng)驗(yàn)豐富的高級技術(shù)人員。必須把被走查的材料預(yù)先分發(fā)給走查組每位成員。走查組成員應(yīng)該仔細(xì)研究材料并列出兩張表:一張表是不理解的術(shù)語,一張是認(rèn)為不正確的術(shù)語。走查組的任務(wù)僅僅是標(biāo)記出錯(cuò)誤而不是改正錯(cuò)誤。走查組成員最好是經(jīng)驗(yàn)豐富的高級技術(shù)人員。走查主要有下述兩種方式:(1)參與者驅(qū)動法。參與者提出他們不理解的術(shù)語和認(rèn)為不正確的術(shù)語。文檔編寫組的代表必須回答每個(gè)質(zhì)疑,要么承認(rèn)確實(shí)有錯(cuò)誤,要么對質(zhì)疑做出解釋。(2)文檔驅(qū)動法。文檔編寫者向走查組成員仔細(xì)解釋文檔。走查組成員針對事先準(zhǔn)備好的問題或解釋過程中發(fā)現(xiàn)的問題提出質(zhì)疑。走查主要有下述兩種方式:3.審查審查的范圍比走查廣,包括下述5個(gè)基本步驟:(1)綜述。編寫文檔的一名成員向?qū)彶榻M綜述該文檔。在綜述會結(jié)束時(shí)把文檔分發(fā)給每位與會者。(2)準(zhǔn)備。評審員仔細(xì)閱讀文檔。列出在審查中發(fā)現(xiàn)的錯(cuò)誤的類型,頻率,分級。(3)審查。評審組仔細(xì)走查整個(gè)文檔。審查組組長應(yīng)該在一天之內(nèi)寫出一份關(guān)于審查的報(bào)告。(4)返工。文檔的作者負(fù)責(zé)解決在審查報(bào)告中列出的所有錯(cuò)誤及問題。(5)跟蹤。組長必須確保所提出的每個(gè)問題都得到了圓滿的解決。3.審查4.程序正確性證明即使有程序正確性證明,軟件測試也仍然是需要的:正確性證明過程本身也可能發(fā)生錯(cuò)誤。程序正確性證明,對于評價(jià)小程序有價(jià)值。還不能實(shí)際用于大型程序的正確性證明。正確性證明的基本思想是證明程序能完成預(yù)定的功能。4.程序正確性證明假設(shè)在程序的P1,P2,…,Pn等點(diǎn)上的斷言分別是a(1),a(2),…,a(n),其中a(1)必須是關(guān)于程序輸入的斷言,a(n)必須是關(guān)于程序輸出的斷言。為了證明在點(diǎn)Pi和Pi+1之間的程序語句是正確的,只須證明若斷言a(i)為真且執(zhí)行這些語句之后將使a(i+1)為真。如果對所有數(shù)據(jù)輸入斷言為真時(shí),能對程序內(nèi)所有相鄰點(diǎn)都能完成上述證明過程,而且程序總可以終止的,則證明了程序的正確性。假設(shè)在程序的P1,P2,…,Pn等點(diǎn)上的斷言分別是a(1),變化是不可避免的,必須控制和管理變化。軟件配置管理:用于管理變化的軟件質(zhì)量保證活動。軟件配置管理在整個(gè)生命期內(nèi)管理變化:①標(biāo)識變化;②控制變化;③確保適當(dāng)?shù)貙?shí)現(xiàn)了變化;④向需要知道這類信息的人報(bào)告變化。軟件配置管理的目標(biāo):使變化更正確更容易被實(shí)現(xiàn)。保證每個(gè)軟件配置項(xiàng)正確,保證一個(gè)軟件的所有配置項(xiàng)是完全一致的。13.6軟件配置管理變化是不可避免的,必須控制和管理變化。13.6軟件配置1.軟件配置項(xiàng)軟件過程的輸出信息可以分為3類:

①計(jì)算機(jī)程序(源代碼和可執(zhí)行程序);

②計(jì)算機(jī)程序的文檔(供技術(shù)人員或用戶使用);

③數(shù)據(jù)(程序內(nèi)包含的或在程序外的)。我們把它們統(tǒng)稱為軟件配置,而這些項(xiàng)就是軟件配置項(xiàng)(ITEM=元素)。13.6.1軟件配置1.軟件配置項(xiàng)13.6.1軟件配置2.基線(Baseline,里程碑)IEEE把基線定義為:已經(jīng)通過了正式復(fù)審的規(guī)格說明或中間產(chǎn)品,它可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只有通過正式的變化控制過程才能改變它。軟件工具也應(yīng)置于配置管理之下:編輯器、編譯器和其他CASE工具。不同版本的工具產(chǎn)生的結(jié)果不同。2.基線(Baseline,里程碑)軟件配置管理主要有5項(xiàng)任務(wù):標(biāo)識、版本控制、變化控制、配置審計(jì)和報(bào)告。1.標(biāo)識軟件配置中的對象命名每個(gè)配置項(xiàng)。兩類對象:基本和聚集對象?;緦ο笫擒浖こ處熢诜治?、設(shè)計(jì)、編碼或測試過程中創(chuàng)建出來的“文本單元”。聚集對象是基本對象和其他聚集對象的集合。每個(gè)對象都有一組能惟一地標(biāo)識它的特征:名字、描述、版本。13.6.2軟件配置管理過程軟件配置管理主要有5項(xiàng)任務(wù):標(biāo)識、版本控制、變化控制、配2.版本控制版本控制管理軟件配置對象的不同版本。用戶能夠通過選擇版本來指定軟件的配置。屬性和軟件的每個(gè)版本相關(guān)聯(lián)。描述一組所期望的屬性來指定和構(gòu)造所需要的配置。“屬性”,既可以是配置對象的版本號,也可以復(fù)雜到是一個(gè)布爾變量串。2.版本控制3.變化控制變化控制過程在維護(hù)一章講過。批準(zhǔn)的變化生成一個(gè)“工程變化命令”描述將要實(shí)現(xiàn)的變化。把要修改的對象從項(xiàng)目數(shù)據(jù)庫中“提?。╟heckout)”出來,進(jìn)行修改。把修改后的對象“提交(checkin)”進(jìn)數(shù)據(jù)庫,并創(chuàng)建該軟件的下一個(gè)版本。變化控制的兩個(gè)主要功能:訪問控制決定軟件工程師有權(quán)訪問和修改一個(gè)特定的配置對象同步控制有助于保證由兩名不同的軟件工程師完成的并行修改不會相互覆蓋。3.變化控制4.配置審計(jì)兩方面采取措施確保適當(dāng)?shù)貙?shí)現(xiàn)了所需要的變化:①正式的技術(shù)復(fù)審;②軟件配置審計(jì)。正式的技術(shù)復(fù)審(見13.5.2節(jié))關(guān)注被修改后的配置對象的技術(shù)正確性。軟件配置審計(jì)通過評估配置對象的那些通常不在復(fù)審過程中考慮的特征(例如,修改時(shí)是否遵循了軟件工程標(biāo)準(zhǔn),是否在該配置項(xiàng)中顯著地標(biāo)明了所做的修改,是否注明了修改日期和修改者,是否適當(dāng)?shù)馗铝怂邢嚓P(guān)的軟件配置項(xiàng),是否遵循了標(biāo)注變化、記錄變化和報(bào)告變化的規(guī)程),而成為對正式技術(shù)復(fù)審的補(bǔ)充。4.配置審計(jì)5.狀態(tài)報(bào)告配置狀態(tài)報(bào)告回答下述問題:①發(fā)生了什么事?②誰做的這件事?③這件事是什么時(shí)候發(fā)生的?④它將影響哪些其他事物?配置狀態(tài)改善所有相關(guān)人員之間的通信,消除沖突,避免重復(fù),提高效率。5.狀態(tài)報(bào)告美國卡內(nèi)基梅隆大學(xué)軟件工程研究所在美國國防部資助下于20世紀(jì)80年代末建立的能力成熟度模型(capabilitymaturitymodel,CMM),是用于評價(jià)軟件機(jī)構(gòu)的軟件過程能力成熟度的模型。最初,建立此模型的目的主要是,為大型軟件項(xiàng)目的招投標(biāo)活動提供一種全面而客觀的評審依據(jù),發(fā)展到后來,此模型又同時(shí)被應(yīng)用于許多軟件機(jī)構(gòu)內(nèi)部的過程改進(jìn)活動中。13.7能力成熟度模型美國卡內(nèi)基梅隆大學(xué)軟件工程研究所在美國國防部資助下于20世紀(jì)改進(jìn)對軟件過程的管理是消除軟件危機(jī)的突破口,比采用先進(jìn)的技術(shù)和工具更重要。能力成熟度模型的基本思想:通過建立成熟的優(yōu)化的軟件過程,提高軟件的生產(chǎn)率和質(zhì)量。而技術(shù)的改進(jìn)是軟件過程改進(jìn)的結(jié)果。CMM的作用:指導(dǎo)軟件機(jī)構(gòu)通過確定當(dāng)前的過程成熟度并識別出對過程改進(jìn)起關(guān)鍵作用的問題,進(jìn)而穩(wěn)步而有效地改進(jìn)其軟件過程,提高成熟度,使其軟件過程能力得到循序漸進(jìn)的提高。改進(jìn)對軟件過程的管理是消除軟件危機(jī)的突破口,比采用先進(jìn)的技術(shù)CMM把軟件過程從無序到優(yōu)化的進(jìn)化過程分成5個(gè)有序的階段,用以測量軟件機(jī)構(gòu)的軟件過程成熟度和評價(jià)其軟件過程能力,這些等級還能幫助軟件機(jī)構(gòu)把應(yīng)做的改進(jìn)工作排出優(yōu)先次序。CMM對5個(gè)成熟度級別特性的描述,說明了不同級別之間軟件過程的主要變化。從“1級”到“5級”,反映出從混亂到成熟的軟件過程必須經(jīng)歷的過程改進(jìn)途徑。CMM的每個(gè)成熟度級別中都包含一組過程改進(jìn)的目標(biāo),滿足這些目標(biāo)后一個(gè)機(jī)構(gòu)的軟件過程就從當(dāng)前級別進(jìn)化到下一個(gè)成熟度級別。CMM不提供做這些改進(jìn)的具體措施。CMM把軟件過程從無序到優(yōu)化的進(jìn)化過程分成5個(gè)有序的階段,用軟件工程71過程變更管理PCM技術(shù)變更管理TCM缺陷預(yù)防

DP軟件配置管理

SCM軟件質(zhì)量保證

SQA軟件子合同管理

SSM軟件項(xiàng)目追蹤與監(jiān)督SPTO軟件項(xiàng)目策劃

SPP需求管理

RM軟件產(chǎn)品工程SPE集成軟件管理ISM培訓(xùn)大綱

TP組織過程定義OPD組織過程焦點(diǎn)OPF同行評審

PR組間協(xié)調(diào)

IC軟件質(zhì)量管理SQM定量

過程管理QPM規(guī)范化過程標(biāo)準(zhǔn)化過程可預(yù)測過程持續(xù)改進(jìn)過程個(gè)別過程2級(可重復(fù)級)3級(已定義級)4級(已管理級)5級(優(yōu)化級)1級(初始級)軟件工程71過程變更管理PCM技術(shù)變更管理TCM軟件工程72

關(guān)鍵過程域分類5優(yōu)化級過程變更管理4可管理級需求管理軟件項(xiàng)目策劃軟件項(xiàng)目跟蹤與監(jiān)控軟件子合同管理軟件質(zhì)量保證軟件配置管理過程分類機(jī)構(gòu)的過程管理過程缺陷預(yù)防軟件質(zhì)量管理整體化軟件管理組間協(xié)調(diào)組織過程關(guān)注組織過程定義培訓(xùn)規(guī)劃無序過程定量過程管理3可定義級2可重復(fù)級1初始級工程的過程軟件產(chǎn)品工程同行評審技術(shù)變更管理軟件工程72關(guān)鍵過程域分類5優(yōu)化級過程變更管理4可管理1.初始級軟件過程的特征是無序的,甚至是混亂的。幾乎沒有什么過程是經(jīng)過定義的(即沒有一個(gè)定型的過程模型),項(xiàng)目能否成功隨機(jī)性很大。沒有健全的軟件工程管理制度。延期交付和費(fèi)用超支的情況經(jīng)常發(fā)生,大多數(shù)行動只是應(yīng)付危機(jī),而不是完成計(jì)劃好的任務(wù)。處于1級成熟度的軟件機(jī)構(gòu),其過程能力是不可預(yù)測的,其軟件過程是不穩(wěn)定的,產(chǎn)品質(zhì)量只能根據(jù)相關(guān)人員的個(gè)人工作能力而不是軟件機(jī)構(gòu)的過程能力來預(yù)測。1.初始級2.可重復(fù)級建立了基本的項(xiàng)目管理過程(過程模型),可跟蹤成本、進(jìn)度、功能和質(zhì)量。對新項(xiàng)目的策劃和管理過程是基于以前類似項(xiàng)目的實(shí)踐經(jīng)驗(yàn)。已經(jīng)制定了項(xiàng)目標(biāo)準(zhǔn),并且軟件機(jī)構(gòu)能確保嚴(yán)格執(zhí)行這些標(biāo)準(zhǔn)。項(xiàng)目組與客戶及承包商已經(jīng)建立起一個(gè)穩(wěn)定的工作環(huán)境。過程能力可以概括為:軟件項(xiàng)目的策劃和跟蹤是穩(wěn)定的,已經(jīng)為一個(gè)有紀(jì)律的管理過程提供了可重復(fù)以前成功實(shí)踐的項(xiàng)目環(huán)境。2.可重復(fù)級3.已定義級軟件機(jī)構(gòu)已經(jīng)定義了完整的軟件過程(過程模型),軟件過程已經(jīng)文檔化和標(biāo)準(zhǔn)化。有一個(gè)固定的過程小組從事軟件過程工程活動。過程小組可以利用過程模型進(jìn)行過程例化活動,從而獲得一個(gè)針對某個(gè)特定的軟件項(xiàng)目的過程實(shí)例。過程小組還可以推進(jìn)軟件機(jī)構(gòu)的過程改進(jìn)活動。實(shí)施了培訓(xùn)計(jì)劃,能夠保證全體項(xiàng)目負(fù)責(zé)人和項(xiàng)目開發(fā)人員具有完成承擔(dān)的任務(wù)所要求的知識和技能。過程能力可以概括為:無論是管理活動還是工程活動都是穩(wěn)定的。軟件開發(fā)的成本和進(jìn)度以及產(chǎn)品的功能和質(zhì)量都受到控制,而且軟件產(chǎn)品的質(zhì)量具有可追溯性。3.已定義級4.已管理級軟件機(jī)構(gòu)對軟件過程(過程模型和過程實(shí)例)和軟件產(chǎn)品都建立了定量的質(zhì)量目標(biāo)??梢远康亓私夂涂刂栖浖^程和軟件產(chǎn)品,并為評定項(xiàng)目的過程質(zhì)量和產(chǎn)品質(zhì)量奠定了基礎(chǔ)。過程能力可以概括為:軟件過程是可度量的。這一級的過程能力允許軟件機(jī)構(gòu)在定量的范圍內(nèi)預(yù)測過程和產(chǎn)品質(zhì)量趨勢,在發(fā)生偏離時(shí)可以及時(shí)采取措施予以糾正,并且可以預(yù)期軟件產(chǎn)品是高質(zhì)量的。4.已管理級5.優(yōu)化級軟件機(jī)構(gòu)集中精力不斷地改進(jìn)軟件過程。以防止出現(xiàn)缺陷為目標(biāo)的機(jī)構(gòu),它有能力識別軟件過程要素的薄弱環(huán)節(jié)??梢垣@得關(guān)于軟件過程有效性的統(tǒng)計(jì)數(shù)據(jù),利用這些數(shù)據(jù)可以對新技術(shù)進(jìn)行成本/效益分析,并優(yōu)化采用最佳新技術(shù)。通過對過程實(shí)例性能的分析和確定產(chǎn)生某一缺陷的原因,來防止再次出現(xiàn)這種類型的缺陷;可以通過從過程實(shí)施中獲得的定量的反饋信息,在采用新思想和新技術(shù)的同時(shí)測試它們,以不斷地改進(jìn)和優(yōu)化軟件過程。5.優(yōu)化級處于5級成熟度的軟件機(jī)構(gòu)的過程能力可以概括為,軟件過程是可優(yōu)化的。能夠持續(xù)不斷地改進(jìn)其過程能力,既對現(xiàn)行的過程實(shí)例不斷地改進(jìn)和優(yōu)化,又借助于所采用的新技術(shù)和新方法來實(shí)現(xiàn)未來的過程改進(jìn)。一些統(tǒng)計(jì)數(shù)字表明,提高一個(gè)完整的成熟度等級大約需要花18個(gè)月到3年的時(shí)間,但是從第1級上升到第2級有時(shí)要花3年甚至5年時(shí)間。處于5級成熟度的軟件機(jī)構(gòu)的過程能力可以概括為,軟件過程是可優(yōu)軟件工程包括技術(shù)和管理兩方面的內(nèi)容。有效的管理是大型軟件工程項(xiàng)目成功的關(guān)鍵。軟件項(xiàng)目管理始于項(xiàng)目計(jì)劃,而第一項(xiàng)計(jì)劃活動就是估算。首先需要預(yù)測軟件規(guī)模。根據(jù)軟件規(guī)??梢怨浪愠鐾瓿稍擁?xiàng)目所需的工作量。成本估算模型通常也提供了估算開發(fā)時(shí)間的方程式,用增加開發(fā)人員的方法最多可以把開發(fā)時(shí)間減少到正常開發(fā)時(shí)間的75%。13.8小結(jié)軟件工程包括技術(shù)和管理兩方面的內(nèi)容。有效的管理是大型軟件工程制定進(jìn)度計(jì)劃的工具有Gantt圖和工程網(wǎng)絡(luò)。典型的組織結(jié)構(gòu)有民主制程序員組、主程序員組和現(xiàn)代程序員組等3種。軟件質(zhì)量保證措施主要有基于非執(zhí)行的測試(也稱為復(fù)審)、基于執(zhí)行的測試(即通常所說的測試)。軟件配置管理是是在軟件整個(gè)生命期內(nèi)管理變化的一組活動。能力成熟度模型(CMM)的基本思想是改進(jìn)對軟件過程的管理。它定義了5個(gè)成熟度等級,一個(gè)軟件開發(fā)組織可以用一系列小的改良性步驟邁入更高的成熟度等級。制定進(jìn)度計(jì)劃的工具有Gantt圖和工程網(wǎng)絡(luò)。第13章軟件項(xiàng)目管理13.1估算軟件規(guī)模13.2工作量估算13.3進(jìn)度計(jì)劃13.4人員組織13.5質(zhì)量保證13.6軟件配置管理13.7能力成熟度模型13.8小結(jié)第13章軟件項(xiàng)目管理13.1估算軟件規(guī)模依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù),估計(jì)實(shí)現(xiàn)一個(gè)功能所需要的源程序行數(shù)。把實(shí)現(xiàn)每個(gè)功能所需要的源程序行數(shù)累加起來,就可得到實(shí)現(xiàn)整個(gè)軟件所需要的源程序行數(shù)。13.1估算軟件規(guī)模

13.1.1代碼行技術(shù)依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù),估計(jì)實(shí)現(xiàn)一個(gè)功能所需要由多名有經(jīng)驗(yàn)的軟件工程師分別做出估計(jì)。每個(gè)人都估計(jì)程序的最小規(guī)模(a)、最大規(guī)模(b)和最可能的規(guī)模(m),分別算出這3種規(guī)模的平均值,再用下式計(jì)算程序規(guī)模的估計(jì)值: L= (13.1)單位是代碼行數(shù)(LOC)或千行代碼數(shù)(KLOC)由多名有經(jīng)驗(yàn)的軟件工程師分別做出估計(jì)。代碼行技術(shù)的優(yōu)點(diǎn):代碼是所有軟件開發(fā)項(xiàng)目都有的“產(chǎn)品”,且容易計(jì)算行數(shù)。代碼行技術(shù)的缺點(diǎn)是:源程序僅是軟件配置的一個(gè)成分。為了克服代碼行技術(shù)的缺點(diǎn),人們提出了功能點(diǎn)技術(shù)。代碼行技術(shù)的優(yōu)點(diǎn):代碼是所有軟件開發(fā)項(xiàng)目都有的“產(chǎn)品”,且依據(jù)軟件信息域特性和軟件復(fù)雜性,用功能點(diǎn)(FP)為單位度量軟件規(guī)模。1.信息域特性功能點(diǎn)技術(shù)定義了信息域的5個(gè)特性:輸入項(xiàng)數(shù)(Inp)、輸出項(xiàng)數(shù)(Out)、查詢數(shù)(Inq)、主文件數(shù)(Maf)和外部接口數(shù)(Inf)。(1)輸入項(xiàng)數(shù):用戶向軟件輸入的項(xiàng)數(shù),這些輸入給軟件提供面向應(yīng)用的數(shù)據(jù)。13.1.2功能點(diǎn)技術(shù)依據(jù)軟件信息域特性和軟件復(fù)雜性,用功能點(diǎn)(FP)為單位度量軟(2)輸出項(xiàng)數(shù):軟件向用戶輸出的項(xiàng)數(shù),它們向用戶提供面向應(yīng)用的信息,例如,報(bào)表和出錯(cuò)信息等。報(bào)表內(nèi)的數(shù)據(jù)項(xiàng)不單獨(dú)計(jì)數(shù)。(3)查詢數(shù):查詢即是一次聯(lián)機(jī)輸入,它導(dǎo)致軟件產(chǎn)生某種即時(shí)響應(yīng)(輸出)。(4)主文件數(shù):邏輯主文件(即數(shù)據(jù)的一個(gè)邏輯組合,它可能是大型數(shù)據(jù)庫的一部分或是一個(gè)獨(dú)立的文件)的數(shù)目。(5)外部接口數(shù):機(jī)器可讀的全部接口(例如,磁盤或磁帶上的數(shù)據(jù)文件)的數(shù)量,用這些接口把信息傳送給另一個(gè)系統(tǒng)。(2)輸出項(xiàng)數(shù):軟件向用戶輸出的項(xiàng)數(shù),它們向用戶提供面2.估算功能點(diǎn)的步驟用下述3個(gè)步驟,可估算出一個(gè)軟件的功能點(diǎn)數(shù)(即軟件規(guī)模)。FP=UFP×TCF(1)計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP每個(gè)特性(即Inp、Out、Inq、Maf和Inf)都分類為簡單級、平均級或復(fù)雜級UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf其中,ai(1≤i≤5)是特性系數(shù),其值由相應(yīng)特性的復(fù)雜級別決定,如表13.12.估算功能點(diǎn)的步驟軟件工程導(dǎo)論第五版第13章(2)計(jì)算技術(shù)復(fù)雜性因子TCF14種技術(shù)因素Fi(1≤i≤14)對軟件規(guī)模的影響程度。每個(gè)因素分配一個(gè)從0(無影響)到5(有很大影響)DI=值在0~70之間技術(shù)復(fù)雜性因子TCF由下式計(jì)算:TCF=0.65+0.01×DI(3)計(jì)算功能點(diǎn)數(shù)FPFP=UFP×TCF功能點(diǎn)數(shù)與所用的編程語言無關(guān)。在判斷信息域特性復(fù)雜級別和技術(shù)因素的影響程度時(shí),存在著相當(dāng)大的主觀因素。(2)計(jì)算技術(shù)復(fù)雜性因子TCF軟件估算模型由經(jīng)驗(yàn)導(dǎo)出的公式來預(yù)測軟件開發(fā)工作量,工作量是軟件規(guī)模(KLOC或FP)的函數(shù),工作量的單位通常是人月(pm)。估算模型的經(jīng)驗(yàn)數(shù)據(jù),是從有限個(gè)項(xiàng)目的樣本集中總結(jié)出來的,因此,沒有一個(gè)估算模型可以適用于所有類型的軟件和開發(fā)環(huán)境。13.2工作量估算軟件估算模型由經(jīng)驗(yàn)導(dǎo)出的公式來預(yù)測軟件開發(fā)工作量,工作量是軟這類模型的總體結(jié)構(gòu)形式如下:E=A+B×(ev)C其中,A、B和C是由經(jīng)驗(yàn)數(shù)據(jù)導(dǎo)出的常數(shù),E是以人月為單位的工作量,ev是估算變量(KLOC或FP)。下面給出幾個(gè)典型的靜態(tài)單變量模型。1.面向FP的估算模型(1)Albrecht&Gaffney模型E=-13.39+0.0545FP(2)Maston,Barnett和Mellichamp模型E=585.7+15.12FP13.2.1靜態(tài)單變量模型這類模型的總體結(jié)構(gòu)形式如下:E=A+B×(ev)C13.22.面向KLOC的估算模型(1)Walston_Felix模型E=5.2×(KLOC)0.91(2)Bailey_Basili模型E=5.5+0.73×(KLOC)1.16(3)Boehm簡單模型E=3.2×(KLOC)1.05(4)Doty模型(在KLOC>9時(shí)適用)E=5.288×(KLOC)1.0472.面向KLOC的估算模型對于相同的KLOC或FP值,用不同模型估算將得出不同的結(jié)果。主要原因是,這些模型多數(shù)都是僅根據(jù)若干應(yīng)用領(lǐng)域中有限個(gè)項(xiàng)目的經(jīng)驗(yàn)數(shù)據(jù)推導(dǎo)出來的,適用范圍有限。因此,必須根據(jù)當(dāng)前項(xiàng)目的特點(diǎn)選擇適用的估算模型,并且根據(jù)需要適當(dāng)?shù)卣{(diào)整(例如,修改模型常數(shù))估算模型。對于相同的KLOC或FP值,用不同模型估算將得出不同的結(jié)果。動態(tài)多變量模型是根據(jù)從4000多個(gè)當(dāng)代軟件項(xiàng)目中收集的生產(chǎn)率數(shù)據(jù)推導(dǎo)出來的。工作量是軟件規(guī)模和開發(fā)時(shí)間這兩個(gè)變量的函數(shù)。E=(LOC×B0.333/P)3×(1/t)4 (13.2)E是以人月或人年為單位的工作量;t>1是以月或年為單位的項(xiàng)目持續(xù)時(shí)間;B是特殊技術(shù)因子,它隨著規(guī)模和要求的增加而緩慢增加:小的程序(KLOC=5~15),B=0.16,超過70KLOC的程序,B=0.39;P是生產(chǎn)率參數(shù)(2000-30000)13.2.2動態(tài)多變量模型動態(tài)多變量模型是根據(jù)從4000多個(gè)當(dāng)代軟件項(xiàng)目中收集的生產(chǎn)率P生產(chǎn)率參數(shù),反映了下述因素對工作量的影響:總體過程成熟度及管理水平;使用良好的軟件工程實(shí)踐的程度;使用的程序設(shè)計(jì)語言的級別;軟件環(huán)境;軟件項(xiàng)目組的技術(shù)及經(jīng)驗(yàn);應(yīng)用系統(tǒng)的復(fù)雜程度。開發(fā)實(shí)時(shí)嵌入式軟件時(shí):P~=2000;電信系統(tǒng)和系統(tǒng)軟件時(shí):P=10000;商業(yè)應(yīng)用系統(tǒng):P=28000。如果把項(xiàng)目持續(xù)時(shí)間延長一些,則可降低完成項(xiàng)目所需的工作量。P生產(chǎn)率參數(shù),反映了下述因素對工作量的影響:構(gòu)造性成本模型:

COCOMO(COnstructiveCOstModel)。1981年Boehm在《軟件工程經(jīng)濟(jì)學(xué)》中首次提出了COCOMO模型。1997年Boehm等人提出的COCOMO2,修訂了COCOMO。3個(gè)層次的軟件開發(fā)工作量估算模型:(1)應(yīng)用系統(tǒng)組成模型用于估算構(gòu)建原型的工作量。(2)早期設(shè)計(jì)模型適用于體系結(jié)構(gòu)設(shè)計(jì)階段。(3)后體系結(jié)構(gòu)模型適用于完成體系結(jié)構(gòu)設(shè)計(jì)之后的軟件開發(fā)階段。13.2.3COCOMO2模型構(gòu)造性成本模型:COCOMO(COnstructiveC后體系結(jié)構(gòu)模型軟件開發(fā)工作量函數(shù):

E=

(13.3)E是開發(fā)工作量(以人月為單位),a是模型系數(shù),KLOC是估計(jì)的源代碼行數(shù)(以千行為單位),b是模型指數(shù),fi(i=1~17)是成本因素,見下表。后體系結(jié)構(gòu)模型軟件開發(fā)工作量函數(shù):軟件工程導(dǎo)論第五版第13章(1)新增加了4個(gè)成本因素:要求的可重用性、需要的文檔量、人員連續(xù)性(即人員穩(wěn)定程度)和多地點(diǎn)開發(fā)。(2)略去了原始模型中的2個(gè)成本因素(計(jì)算機(jī)切換時(shí)間和使用現(xiàn)代程序設(shè)計(jì)實(shí)踐)。(3)某些成本因素(分析員能力、平臺經(jīng)驗(yàn)、語言和工具經(jīng)驗(yàn))對生產(chǎn)率的影響(即工作量系數(shù)最大值與最小值的比率)增加了,另一些成本因素(程序員能力)的影響減小了。(1)新增加了4個(gè)成本因素:要求的可重用性、需要的文檔量COCOMO2采用了更加精細(xì)得多的b分級模型,這個(gè)模型使用5個(gè)分級因素Wi(1≤i≤5):劃分成從甚低(Wi=5)到特高(Wi=0)的6個(gè)級別b= (13.4)b的取值范圍為1.01~1.26。5個(gè)分級因素如下所述:(1)項(xiàng)目先例性:該項(xiàng)目的新奇程度。(2)開發(fā)靈活性:約束多少。(3)風(fēng)險(xiǎn)排除度:重大風(fēng)險(xiǎn)已被消除的比例。(4)項(xiàng)目組凝聚力:開發(fā)人員相互協(xié)作度。(5)過程成熟度:按照能力成熟度模型(見13.7節(jié))COCOMO2采用了更加精細(xì)得多的b分級模型,這個(gè)模型使用5目的:保證項(xiàng)目按時(shí)完成影響工期的因素:工作量,資源(人力,設(shè)備),項(xiàng)目特點(diǎn)方法:把項(xiàng)目分解成許多小任務(wù)以利于估計(jì),執(zhí)行,監(jiān)控難點(diǎn):根據(jù)項(xiàng)目,合理分配任務(wù),優(yōu)化使用資源,留有余地工具:經(jīng)驗(yàn)?zāi)P?

GANTT圖,工程網(wǎng)絡(luò)項(xiàng)目管理者必須定義全部項(xiàng)目任務(wù),識別出關(guān)鍵任務(wù),跟蹤關(guān)鍵任務(wù)的進(jìn)展?fàn)顩r。制定一個(gè)詳細(xì)的進(jìn)度表,監(jiān)督項(xiàng)目進(jìn)度并控制整個(gè)項(xiàng)目。13.3進(jìn)度計(jì)劃目的:保證項(xiàng)目按時(shí)完成13.3進(jìn)度計(jì)劃工期>=工作量/人力正常情況下,估算開發(fā)時(shí)間的模型方程:(1)Walston_Felix模型:T=2.5E0.35(2)原始的COCOMO模型:T=2.5E0.38(3)COCOMO2模型:T=3.0E0.33+0.2×(b-1.01)(4)Putnam模型:T=2.4E1/3E是開發(fā)工作量(以人月為單位),T是開發(fā)時(shí)間(以月為單位)。13.3.1估算開發(fā)時(shí)間工期>=工作量/人力13.3.1估算開發(fā)時(shí)間為了縮短開發(fā)時(shí)間應(yīng)該增加開發(fā)工作的人數(shù)。隨著開發(fā)小組規(guī)模擴(kuò)大,個(gè)人生產(chǎn)率將下降,開發(fā)時(shí)間與開發(fā)工作的人數(shù)非簡單反比關(guān)系的兩個(gè)原因:當(dāng)小組變大時(shí),通信開銷增加了。新成員要額外花費(fèi)小組其他成員的時(shí)間。被稱為Brooks規(guī)律的下述現(xiàn)象:向一個(gè)已經(jīng)延期的項(xiàng)目增加人力,可能(只)會使得它更加延期。為了縮短開發(fā)時(shí)間應(yīng)該增加開發(fā)工作的人數(shù)。項(xiàng)目組規(guī)模與項(xiàng)目組總生產(chǎn)率的關(guān)系。P名項(xiàng)目組員之間的通信路徑數(shù):MIN=P-1,MAX=P(P-1)/2通信路徑數(shù)大約為Pα,其中1<α<2。一個(gè)組員不與任何人通信時(shí)個(gè)人生產(chǎn)率為L,每條通信路徑導(dǎo)致生產(chǎn)率減少l,組員個(gè)人平均生產(chǎn)率為:Lr=L-l(P-1)r (13.5)其中,r是對通信路徑數(shù)的度量,0<r≤1項(xiàng)目組規(guī)模與項(xiàng)目組總生產(chǎn)率的關(guān)系。規(guī)模為P的項(xiàng)目組的總生產(chǎn)率為Ltot=P(L-l(P-1)r) (13.6)對于給定的L,l和r的值,總生產(chǎn)率Ltot是P的函數(shù)。存在一個(gè)最佳的項(xiàng)目組規(guī)模Popt,其總生產(chǎn)率最高。Boehm根據(jù)經(jīng)驗(yàn)指出,軟件項(xiàng)目的開發(fā)時(shí)間最多可以減少到正常開發(fā)時(shí)間的75%。規(guī)模為P的項(xiàng)目組的總生產(chǎn)率為制定進(jìn)度計(jì)劃

任務(wù)(活動)之間的依賴關(guān)系類型制定進(jìn)度計(jì)劃

任務(wù)(活動)之間的依賴關(guān)系類型項(xiàng)目網(wǎng)絡(luò)圖什么是項(xiàng)目網(wǎng)絡(luò)圖?項(xiàng)目網(wǎng)絡(luò)圖是項(xiàng)目的所有活動以及它們之間邏輯關(guān)系或排序的圖形顯示。項(xiàng)目網(wǎng)絡(luò)圖是活動排序的輸出,它有以下作用:(1)能表示項(xiàng)目活動,并表示活動之間的依賴關(guān)系。(2)表明項(xiàng)目活動將以什么順序繼續(xù)。(3)在進(jìn)行工期估計(jì)時(shí),表明項(xiàng)目將需要多長時(shí)間。(4)當(dāng)改變某項(xiàng)活動工期時(shí),表明項(xiàng)目工期將如何變化。

項(xiàng)目網(wǎng)絡(luò)圖有兩種表示形式:(1)前導(dǎo)圖法(PDM:Precedence

Diagramming

Method)(2)箭線圖法(ADM:Arrow

Diagramming

Method)項(xiàng)目網(wǎng)絡(luò)圖什么是項(xiàng)目網(wǎng)絡(luò)圖?項(xiàng)目網(wǎng)絡(luò)圖項(xiàng)目網(wǎng)絡(luò)圖甲項(xiàng)目例甲項(xiàng)目中包含的活動清單、各個(gè)活動的歷時(shí)以及活動間的依賴關(guān)系如下:各活動的依賴關(guān)系:

A、B、C可以同時(shí)開始;

D必須在A完成后開始;

E、F必須在B完成后開始;

G必須在C完成后開始;

H必須在D、E完成后開始;

I必須在G完成后開始;

J必須在F、H、I完成后開始。甲項(xiàng)目例甲項(xiàng)目中包含的活動清單、各個(gè)活動的歷時(shí)以及活動間的依甲項(xiàng)目的箭線圖(ADM)或

雙代號網(wǎng)絡(luò)圖(AOA)示例甲項(xiàng)目的箭線圖(ADM)或

采用PDM繪制的甲項(xiàng)目的網(wǎng)絡(luò)圖示例采用PDM繪制的甲項(xiàng)目的網(wǎng)絡(luò)圖示例活動歷時(shí)估計(jì)活動歷時(shí)估計(jì)是根據(jù)任務(wù)分解中定義的項(xiàng)目活動和項(xiàng)目活動清單來估計(jì)完成這些項(xiàng)目所需要的工期。工期包括一項(xiàng)活動所消耗的實(shí)際工作時(shí)間加上間歇時(shí)間?;顒託v時(shí)估計(jì)活動歷時(shí)估計(jì)是根據(jù)任務(wù)分解中定義的項(xiàng)目活動和項(xiàng)目制定進(jìn)度計(jì)劃在活動定義、活動排序、和活動歷時(shí)估計(jì)的基礎(chǔ)上,綜合各個(gè)項(xiàng)目活動的開始和結(jié)束日期、最終的活動順序以及工期來確定項(xiàng)目的總體進(jìn)度計(jì)劃。制定進(jìn)度計(jì)劃在活動定義、活動排序、和活動歷時(shí)估計(jì)的基礎(chǔ)上,綜

甘特圖

甘特圖,通過日歷形式列出項(xiàng)目活動及其相應(yīng)的開始和結(jié)束日期,它為反映項(xiàng)目進(jìn)度信息提供了一種標(biāo)準(zhǔn)形式。下圖是用PROJECT制作的甲項(xiàng)目的最簡單的一個(gè)甘特圖早期的甘特圖的最大缺點(diǎn)是通常不反映依賴關(guān)系,但是如果在Project上建立了依賴關(guān)系,這種依賴關(guān)系會自動顯示在甘特圖上。

甘特圖

甘特圖,通過日歷形式列出項(xiàng)目活動及其相甘特圖使用項(xiàng)目管理軟件可以創(chuàng)建更為復(fù)雜的甘特圖甘特圖使用項(xiàng)目管理軟件可以創(chuàng)建更為復(fù)雜的甘特圖甘特圖跟蹤甘特圖可以用來評價(jià)項(xiàng)目的進(jìn)展注意:任務(wù)用兩種水平橫線表示。下部表示計(jì)劃歷史(基準(zhǔn)計(jì)劃歷史);上部表示實(shí)際歷史。由于跟蹤甘特圖是建立在實(shí)際開始與完成日期的基礎(chǔ)之上,將計(jì)劃與實(shí)際的項(xiàng)目進(jìn)度信息進(jìn)行比較,所以,項(xiàng)目經(jīng)理可以用它來監(jiān)控單個(gè)任務(wù)和整體項(xiàng)目的進(jìn)展情況。甘特圖跟蹤甘特圖可以用來評價(jià)項(xiàng)目的進(jìn)展甘特圖甘特圖與網(wǎng)絡(luò)圖的比較甘特圖在進(jìn)度報(bào)告中很有效在作管理陳述時(shí)易于讀懂和使用。作為計(jì)劃編制工具不是太強(qiáng)。沒有表示活動間的邏輯關(guān)系。網(wǎng)絡(luò)圖表明活動和事件間的相互關(guān)系。識別關(guān)鍵路徑,項(xiàng)目歷程和活動排序。表明工作流程。幫助編制計(jì)劃和組織工作。甘特圖甘特圖與網(wǎng)絡(luò)圖的比較甘特圖網(wǎng)絡(luò)圖關(guān)鍵路徑法查找關(guān)鍵路徑實(shí)例:使用箭線圖來確定關(guān)鍵路徑。使用前導(dǎo)圖來確定關(guān)鍵路徑。關(guān)鍵路徑法查找關(guān)鍵路徑實(shí)例:甲項(xiàng)目的箭線圖(ADM)或

雙代號網(wǎng)絡(luò)圖(AOA)示例甲項(xiàng)目的箭線圖(ADM)或

采用PDM繪制的甲項(xiàng)目的網(wǎng)絡(luò)圖示例采用PDM繪制的甲項(xiàng)目的網(wǎng)絡(luò)圖示例關(guān)鍵路徑法關(guān)鍵路徑法單個(gè)軟件開發(fā)人員無法在給定期限內(nèi)完成軟件項(xiàng)目,因此,必須把多名軟件開發(fā)人員合理地組織起來,使他們有效地分工協(xié)作共同完成開發(fā)工作。3種典型的組織方式:民主制程序員組、主程序員組和現(xiàn)代程序員組。13.4人員組織單個(gè)軟件開發(fā)人員無法在給定期限內(nèi)完成軟件項(xiàng)目,因此,必須把多民主制程序員組:小組成員完全平等,通信信道共有n(n-1)/2條。程序設(shè)計(jì)小組的規(guī)模應(yīng)該以2~8名成員為宜。優(yōu)點(diǎn):組員們對發(fā)現(xiàn)程序錯(cuò)誤持積極的態(tài)度,這種態(tài)度有助于更快速地發(fā)現(xiàn)錯(cuò)誤,從而導(dǎo)致高質(zhì)量的代碼。缺點(diǎn):由于沒有明確的權(quán)威指導(dǎo)開發(fā)工程的進(jìn)行,組員間將缺乏必要的協(xié)調(diào),最終可能導(dǎo)致工程失敗。13.4.1民主制程序員組民主制程序員組:小組成員完全平等,通信信道共有n(n-1IBM公司20世紀(jì)70年代初期開始采用,幾點(diǎn)考慮:(1)軟件開發(fā)人員多數(shù)比較缺乏經(jīng)驗(yàn);(2)程序設(shè)計(jì)過程中有許多事務(wù)性的工作,例如,大量信息的存儲和更新;(3)多渠道通信很費(fèi)時(shí)間,將降低程序員的生產(chǎn)率。用經(jīng)驗(yàn)多、技術(shù)好、能力強(qiáng)的程序員作為主程序員,同時(shí),組內(nèi)分工,給主程序員提供充分支持,所有通信都通過一兩個(gè)人進(jìn)行。13.4.2主程序員組IBM公司20世紀(jì)70年代初期開始采用,幾點(diǎn)考慮:13.主程序員組的兩個(gè)重要特性:(1)專業(yè)化。成員完成受過專業(yè)訓(xùn)練的工作。(2)層次性。主程序員全面負(fù)責(zé)。組織形式如圖13.5所示。主程序員組的兩個(gè)重要特性:問題:主程序員具備兩方面的才能,這樣的人才不多。后備程序員更難找。編程秘書也很難找到。問題:“主程序員”由兩個(gè)人擔(dān)任:一個(gè)負(fù)責(zé)小組的技術(shù);一個(gè)負(fù)責(zé)管理決策。13.4.3現(xiàn)代程序員組“主程序員”由兩個(gè)人擔(dān)任:一個(gè)負(fù)責(zé)小組的技術(shù);一個(gè)負(fù)責(zé)管當(dāng)軟件項(xiàng)目規(guī)模較大時(shí),應(yīng)該把程序員分成若干個(gè)小組,采用圖13.7所示的組織結(jié)構(gòu)。該圖描繪的是技術(shù)管理組織結(jié)構(gòu),非技術(shù)管理組織結(jié)構(gòu)與此類似。由圖可以看出,產(chǎn)品開發(fā)作為一個(gè)整體是在項(xiàng)目經(jīng)理的指導(dǎo)下進(jìn)行的,程序員向他們的組長匯報(bào)工作,而組長則向項(xiàng)目經(jīng)理匯報(bào)工作。當(dāng)產(chǎn)品規(guī)模更大時(shí),可以適當(dāng)增加中間管理層次。當(dāng)軟件項(xiàng)目規(guī)模較大時(shí),應(yīng)該把程序員分成若干個(gè)小組,采用圖13圖13.7大型項(xiàng)目的技術(shù)管理組織結(jié)構(gòu)軟件工程導(dǎo)論第五版第13章軟件質(zhì)量就是“軟件與明確地和隱含地定義的需求相一致的程度”:(1)軟件需求是度量軟件質(zhì)量的基礎(chǔ)。(2)有沒有顯式描述的隱含需求。(3)不遵守一組指導(dǎo)軟件開發(fā)的準(zhǔn)則,會導(dǎo)致軟件質(zhì)量不高。13.5質(zhì)量保證

13.5.1軟件質(zhì)量軟件質(zhì)量就是“軟件與明確地和隱含地定義的需求相一致的程度”:圖13.9軟件質(zhì)量因素軟件工程導(dǎo)論第五版第13章軟件質(zhì)量保證(softwarequalityassurance,SQA)的措施主要有:技術(shù)復(fù)審和測試。兩類參加軟件質(zhì)量保證工作的人員:軟件工程師通過采用先進(jìn)的技術(shù)方法和度量,進(jìn)行正式的技術(shù)復(fù)審以及完成軟件測試來保證軟件質(zhì)量。SQA小組的職責(zé),是輔助軟件工程師以獲得高質(zhì)量的軟件產(chǎn)品。其從事的軟件質(zhì)量保證活動主要是:計(jì)劃,監(jiān)督,記錄,分析和報(bào)告。確保軟件過程的質(zhì)量來保證軟件產(chǎn)品的質(zhì)量。13.5.2軟件質(zhì)量保證措施軟件質(zhì)量保證(softwarequalityassura1.技術(shù)復(fù)審的必要性較早發(fā)現(xiàn)錯(cuò)誤,防止被傳播到軟件過程的后續(xù)階段。大型軟件產(chǎn)品中檢測出的錯(cuò)誤,60%~70%屬于規(guī)格說明錯(cuò)誤或設(shè)計(jì)錯(cuò)誤,而正式技術(shù)復(fù)審在發(fā)現(xiàn)規(guī)格說明錯(cuò)誤和設(shè)計(jì)錯(cuò)誤方面的有效性高達(dá)75%。正式技術(shù)復(fù)審包括走查(walkthrough)和審查(inspection)。走查的步驟比審查少,而且沒有審查正規(guī)。1.技術(shù)復(fù)審的必要性2.走查成員組成(走查規(guī)格說明的小組為例):一名負(fù)責(zé)起草規(guī)格說明的人,一名負(fù)責(zé)該規(guī)格說明的管理員,一位客戶代表,一名下階段開發(fā)組代表一名SQA小組代表(組長)。2.走查走查組成員最好是經(jīng)驗(yàn)豐富的高級技術(shù)人員。必須把被走查的材料預(yù)先分發(fā)給走查組每位成員。走查組成員應(yīng)該仔細(xì)研究材料并列出兩張表:一張表是不理解的術(shù)語,一張是認(rèn)為不正確的術(shù)語。走查組的任務(wù)僅僅是標(biāo)記出錯(cuò)誤而不是改正錯(cuò)誤。走查組成員最好是經(jīng)驗(yàn)豐富的高級技術(shù)人員。走查主要有下述兩種方式:(1)參與者驅(qū)動法。參與者提出他們不理解的術(shù)語和認(rèn)為不正確的術(shù)語。文檔編寫組的代表必須回答每個(gè)質(zhì)疑,要么承認(rèn)確實(shí)有錯(cuò)誤,要么對質(zhì)疑做出解釋。(2)文檔驅(qū)動法。文檔編寫者向走查組成員仔細(xì)解釋文檔。走查組成員針對事先準(zhǔn)備好的問題或解釋過程中發(fā)現(xiàn)的問題提出質(zhì)疑。走查主要有下述兩種方式:3.審查審查的范圍比走查廣,包括下述5個(gè)基本步驟:(1)綜述。編寫文檔的一名成員向?qū)彶榻M綜述該文檔。在綜述會結(jié)束時(shí)把文檔分發(fā)給每位與會者。(2)準(zhǔn)備。評審員仔細(xì)閱讀文檔。列出在審查中發(fā)現(xiàn)的錯(cuò)誤的類型,頻率,分級。(3)審查。評審組仔細(xì)走查整個(gè)文檔。審查組組長應(yīng)該在一天之內(nèi)寫出一份關(guān)于審查的報(bào)告。(4)返工。文檔的作者負(fù)責(zé)解決在審查報(bào)告中列出的所有錯(cuò)誤及問題。(5)跟蹤。組長必須確保所提出的每個(gè)問題都得到了圓滿的解決。3.審查4.程序正確性證明即使有程序正確性證明,軟件測試也仍然是需要的:正確性證明過程本身也可能發(fā)生錯(cuò)誤。程序正確性證明,對于評價(jià)小程序有價(jià)值。還不能實(shí)際用于大型程序的正確性證明。正確性證明的基本思想是證明程序能完成預(yù)定的功能。4.程序正確性證明假設(shè)在程序的P1,P2,…,Pn等點(diǎn)上的斷言分別是a(1),a(2),…,a(n),其中a(1)必須是關(guān)于程序輸入的斷言,a(n)必須是關(guān)于程序輸出的斷言。為了證明在點(diǎn)Pi和Pi+1之間的程序語句是正確的,只須證明若斷言a(i)為真且執(zhí)行這些語句之后將使a(i+1)為真。如果對所有數(shù)據(jù)輸入斷言為真時(shí),能對程序內(nèi)所有相鄰點(diǎn)都能完成上述證明過程,而且程序總可以終止的,則證明了程序的正確性。假設(shè)在程序的P1,P2,…,Pn等點(diǎn)上的斷言分別是a(1),變化是不可避免的,必須控制和管理變化。軟件配置管理:用于管理變化的軟件質(zhì)量保證活動。軟件配置管理在整個(gè)生命期內(nèi)管理變化:①標(biāo)識變化;②控制變化;③確保適當(dāng)?shù)貙?shí)現(xiàn)了變化;④向需要知道這類信息的人報(bào)告變化。軟件配置管理的目標(biāo):使變化更正確更容易被實(shí)現(xiàn)。保證每個(gè)軟件配置項(xiàng)正確,保證一個(gè)軟件的所有配置項(xiàng)是完全一致的。13.6軟件配置管理變化是不可避免的,必須控制和管理變化。13.6軟件配置1.軟件配置項(xiàng)軟件過程的輸出信息可以分為3類:

①計(jì)算機(jī)程序(源代碼和可執(zhí)行程序);

②計(jì)算機(jī)程序的文檔(供技術(shù)人員或用戶使用);

③數(shù)據(jù)(程序內(nèi)包含的或在程序外的)。我們把它們統(tǒng)稱為軟件配置,而這些項(xiàng)就是軟件配置項(xiàng)(ITEM=元素)。13.6.1軟件配置1.軟件配置項(xiàng)13.6.1軟件配置2.基線(Baseline,里程碑)IEEE把基線定義為:已經(jīng)通過了正式復(fù)審的規(guī)格說明或中間產(chǎn)品,它可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只有通過正式的變化控制過程才能改變它。軟件工具也應(yīng)置于配置管理之下:編輯器、編譯器和其他CASE工具。不同版本的工具產(chǎn)生的結(jié)果不同。2.基線(Baseline,里程碑)軟件配置管理主要有5項(xiàng)任務(wù):標(biāo)識、版本控制、變化控制、配置審計(jì)和報(bào)告。1.標(biāo)識軟件配置中的對象命名每個(gè)配置項(xiàng)。兩類對象:基本和聚集對象。基本對象是軟件工程師在分析、設(shè)計(jì)、編碼或測試過程中創(chuàng)建出來的“文本單元”。聚集對象是基本對象和其他聚集對象的集合。每個(gè)對象都有一組能惟一地標(biāo)識它的特征:名字、描述、版本。13.6.2軟件配置管理過程軟件配置管理主要有5項(xiàng)任務(wù):標(biāo)識、版本控制、變化控制、配2.版本控制版本控制管理軟件配置對象的不同版本。用戶能夠通過選擇版本來指定軟件的配置。屬性和軟件的每個(gè)版本相關(guān)聯(lián)。描述一組所期望的屬性來指定和構(gòu)造所需要的配置?!皩傩浴?,既可以是配置對象的版本號,也可以復(fù)雜到是一個(gè)布爾變量串。2.版本控制3.變化控制變化控制過程在維護(hù)一章講過。批準(zhǔn)的變化生成一個(gè)“工程變化命令”描述將要實(shí)現(xiàn)的變化。把要修改的對象從項(xiàng)目數(shù)據(jù)庫中“提取(checkout)”出來,進(jìn)行修改。把修改后的對象“提交(checkin)”進(jìn)數(shù)據(jù)庫,并創(chuàng)建該軟件的下一個(gè)版本。變化控制的兩個(gè)主要功能:訪問控制決定軟件工程師有權(quán)訪問和修改一個(gè)特定的配置對象同步控制有助于保證由兩名不同的軟件工程師完成的并行修改不會相互覆蓋。3.變化控制4.配置審計(jì)兩方面采取措施確保適當(dāng)?shù)貙?shí)現(xiàn)了所需要的變化:①正式的技術(shù)復(fù)審;②軟件配置審計(jì)。正式的技術(shù)復(fù)審(見13.5.2節(jié))關(guān)注被修改后的配置對象的技術(shù)正確性。軟件配置審計(jì)通過評估配置對象的那些通常不在復(fù)審過程中考慮的特征(例如,修改時(shí)是否遵循了軟件工程標(biāo)準(zhǔn),是否在該配置項(xiàng)中顯著地標(biāo)明了所做的修改,是否注明了修改日期和修改者,是否適當(dāng)?shù)馗铝怂邢嚓P(guān)的軟件配置項(xiàng),是否遵循了標(biāo)注變化、記錄變化和報(bào)告變化的規(guī)程),而成為對正式技術(shù)復(fù)審的補(bǔ)充。4.配置審計(jì)5.狀態(tài)報(bào)告配置狀態(tài)報(bào)告回答下述問題:①發(fā)生了什么事?②誰做的這件事?③這件事是什么時(shí)候發(fā)生的?④它將影響哪些其他事物?配置狀態(tài)改善所有相關(guān)人員之間的通信,消除沖突,避免重復(fù),提高效率。5.狀態(tài)報(bào)告美國卡內(nèi)基梅隆大學(xué)軟件工程研究所在美國國防部資助下于20世紀(jì)80年代末建立的能力成熟度模型(capabilitymaturitymodel,CMM),是用于評價(jià)軟件機(jī)構(gòu)的軟件過程能力成熟度的模型。最初,建立此模型的目的主要是,為大型軟件項(xiàng)目的招投標(biāo)活動提供一種全面而客觀的評審依據(jù),發(fā)展到后來,此模型又同時(shí)被應(yīng)用于許多軟件機(jī)構(gòu)內(nèi)部的過程改進(jìn)活動中。13.7能力成熟度模型美國卡內(nèi)基梅隆大學(xué)軟件工程研究所在美國國防部資助下于20世紀(jì)改進(jìn)對軟件過程的管理是消除軟件危機(jī)的突破口,比采用先進(jìn)的技術(shù)和工具更重要。能力成熟度模型的基本思想:通過建立成熟的優(yōu)化的軟件過程,提高軟件的生產(chǎn)率和質(zhì)量。而技術(shù)的改進(jìn)是軟件過程改進(jìn)的結(jié)果。CMM的作用:指導(dǎo)軟件機(jī)構(gòu)通過確定當(dāng)前的過程成熟度并識別出對過程改進(jìn)起關(guān)鍵作用的問題,進(jìn)而穩(wě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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論