版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
中國海洋大學(xué)信息學(xué)院Email:green.lyn@教材:軟件工程導(dǎo)論(第5版)張海藩編著清華大學(xué)出版社軟件工程第13章軟件項(xiàng)目管理
所謂管理就是通過計(jì)劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達(dá)到既定目標(biāo)的過程。軟件項(xiàng)目管理先于任何技術(shù)活動之前開始,并且貫穿于軟件的整個生命周期之中。
為了使得對程序規(guī)模的估計(jì)值更接近實(shí)際值,可以由多名有經(jīng)驗(yàn)的軟件工程師分別做出估計(jì)。每個人都估計(jì)程序的最小規(guī)模(a)最大規(guī)模(b)和最可能的規(guī)模(m),分別算出這3種規(guī)模的平均值a’
,b’和m’之后,再用下式計(jì)算程序規(guī)模的估計(jì)值13.1估算軟件規(guī)模13.1.1代碼行技術(shù)代碼行技術(shù)是比較簡單的定量估算軟件規(guī)模的方法。這種方法依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù),估計(jì)實(shí)現(xiàn)一個功能所需要的源程序行數(shù)。
代碼行技術(shù)的主要優(yōu)點(diǎn)是,代碼是所有軟件開發(fā)項(xiàng)目都有的“產(chǎn)品”,而且很容易計(jì)算代碼行數(shù)。代碼行技術(shù)的缺點(diǎn)是:源程序僅是軟件配置的一個成分,用它的規(guī)模代表整個軟件的規(guī)模似乎不太合理,用不同語言實(shí)現(xiàn)同一個軟件所需要的代碼行數(shù)并不相同;這種方法不適用于非過程語言。6a’+4m’+b’L=(13.1)13.1.2功能點(diǎn)技術(shù)功能點(diǎn)技術(shù)依據(jù)對軟件信息域特性和軟件復(fù)雜性的評估結(jié)果,估算軟件規(guī)模。1.信息域特性功能點(diǎn)技術(shù)定義了信息域的5個特性,分別是輸入項(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ù)。輸入不同于查詢,后者單獨(dú)計(jì)數(shù),不記入輸入項(xiàng)數(shù)中。
(2)輸出項(xiàng)數(shù):軟件向用戶輸出的項(xiàng)數(shù),它們向用戶提供面向應(yīng)用的信息,例如,報(bào)表和出錯信息等。報(bào)表內(nèi)的數(shù)據(jù)項(xiàng)不單獨(dú)記數(shù)。(3)查詢數(shù):查詢即是一次聯(lián)機(jī)輸入,它導(dǎo)致軟件以聯(lián)機(jī)輸出方式產(chǎn)生某種即時響應(yīng)。(4)主文件數(shù):邏輯主文件(即數(shù)據(jù)的一個邏輯組合,它可能是大型數(shù)據(jù)庫的一部分或是一個獨(dú)立的文件)的數(shù)目。(5)外部接口數(shù):機(jī)器可讀的全部接口(例如,磁盤或磁帶上的數(shù)據(jù)文件)的數(shù)量,用這些接口把信息傳送給另一個系統(tǒng)。2.估算功能點(diǎn)的步驟用下述3個步驟,可估算出一個軟件的功能點(diǎn)數(shù)(即軟件規(guī)模)。(1)計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP
首先,把產(chǎn)品信息域的每個特性(即Inp,Out,Inq,Maf和Inf)都分類為簡單級,平均級或復(fù)雜級,并根據(jù)其等級為每個特性分配一個功能點(diǎn)數(shù)(例如,一個簡單級的輸入項(xiàng)分配3個功能點(diǎn)。一個平均級的輸入項(xiàng)分配4個功能點(diǎn),而一個復(fù)雜級的輸入項(xiàng)分配6個功能點(diǎn))。
然后,用下式計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP:
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf其中,ai(1<=i<=5)是信息域特性系數(shù),其值由相應(yīng)特性的復(fù)雜級別決定,如表13.1所示。表13.1信息域特性系數(shù)值特性系數(shù)復(fù)雜級別簡單平均復(fù)雜輸入系數(shù)a13
46輸出系數(shù)a24
57查詢系數(shù)a33
46文件系數(shù)a47
1015接口系數(shù)a55
710(2)計(jì)算技術(shù)復(fù)雜性因子TCF
這一步驟度量14種技術(shù)因素對軟件規(guī)模的影響程度。這些因素包括高處理率,性能標(biāo)準(zhǔn)(例如,響應(yīng)時間),聯(lián)機(jī)更新等,在表13.2中列出了全部技術(shù)因素,并用Fi(1<=i<=14)代表這些因素。根據(jù)軟件的特點(diǎn),為每個因素分配一個從0(不存在或?qū)浖?guī)模無影響)到5(有很大影響)的值。然后,用下式計(jì)算技術(shù)因素對軟件規(guī)模的綜合影響程度DI:DI=∑Fi
技術(shù)復(fù)雜性因子TCF由下式計(jì)算:
TCF=0.65+0.01×DI
因?yàn)镈I的值在0-70之間,所以TCF的值在0.65-1.35之間。表13.2技術(shù)因素序號Fi技術(shù)因素1F1數(shù)據(jù)通信
2F2
分布式數(shù)據(jù)處理3F3
性能標(biāo)準(zhǔn)4F4
高負(fù)荷的硬件5F5
高處理率6F6
聯(lián)機(jī)數(shù)據(jù)處理7F7
終端用戶效率8F8
聯(lián)機(jī)更新9F9
復(fù)雜的計(jì)算10F10
可重用性11F11
安裝方便12F12
操作方便13F13
可移植性14F14
可維護(hù)性(3)計(jì)算功能點(diǎn)數(shù)FP
用下式計(jì)算功能點(diǎn)數(shù)FP:
FP=UFP×TCF
功能點(diǎn)數(shù)與所用的編程語言無關(guān),看起來功能點(diǎn)技術(shù)比代碼行技術(shù)更合理一些。但是,在判斷信息域特性復(fù)雜級別和技術(shù)因素的影響程度時,存在著相當(dāng)大的主觀因素。13.2工作量估算軟件估算模型使用由經(jīng)驗(yàn)導(dǎo)出的公式來預(yù)測軟件開發(fā)工作量,工作量是軟件規(guī)模(KLOC或FP)的函數(shù),工作量的單位通常是人月(pm)。13.2.1靜態(tài)單變量模型這類模型的總體結(jié)構(gòu)形式如下:
E=A+B×(ev)c
其中,A,B和C是由經(jīng)驗(yàn)數(shù)據(jù)導(dǎo)出的常數(shù),E是以人月為單位的工作量,ev是估算變量(KLOC或FP)。下面給出幾個典型的靜態(tài)單變量模型。1.面向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時適用)
E=5.288×(KLOC)1.0472.面向FP的估算模型(1)Albrecht&Gaffney模型
E=-13.39+0.0545FP(2)Maston,Barnnett和Mellichamp模型
E=585.7+15.12FP
從上面列出的模型可以看出,對于相同的KLOC或FP值,用不同模型估算將得出不同的結(jié)果。主要原因是,這些模型多數(shù)都是僅根據(jù)若干應(yīng)用領(lǐng)域中有限個項(xiàng)目的經(jīng)驗(yàn)數(shù)據(jù)推導(dǎo)出來的,適用范圍有限。13.2.2動態(tài)多變量模型動態(tài)多變量模型也稱為軟件方程式,它是根據(jù)從4000多個當(dāng)代軟件項(xiàng)目中收集的生產(chǎn)率數(shù)據(jù)推導(dǎo)出來的。該模型把工作量看作是軟件規(guī)模和開發(fā)時間這兩個變量的函數(shù)。動態(tài)多變量估算模型的形式如下:E=(LOC×B0.333/P)3×(1/t)4(13.2)其中,E是以人月或人年為單位的工作量;
t是以月或年為單位的項(xiàng)目持續(xù)時間;B是特殊技術(shù)因子,它隨著對測試,質(zhì)量保證,文檔及管理技術(shù)的需求的增加而緩慢增加,對于較小的程序(KLOC=5-15),B=0.16,對于超過70KLOC的程序,B=0.39P是生產(chǎn)率參數(shù),它反映了下述因素對工作量的影響:
●總體過程成熟度及管理水平;●使用良好的軟件工程實(shí)踐的程度;●使用的程序設(shè)計(jì)語言的級別;●軟件環(huán)境的狀態(tài);●軟件項(xiàng)目組的技術(shù)及經(jīng)驗(yàn);●應(yīng)用系統(tǒng)的復(fù)雜程度。
開發(fā)實(shí)時嵌入式軟件時,P的典型值為2000;開發(fā)電信系統(tǒng)和系統(tǒng)軟件時,P=10000;對于商業(yè)應(yīng)用系統(tǒng)來,P=28000.可以從歷史數(shù)據(jù)導(dǎo)出適用于當(dāng)前項(xiàng)目的生產(chǎn)率參數(shù)值。從(13.2)式可以看出,開發(fā)同一個軟件(即LOC固定)的時候,如果把項(xiàng)目持續(xù)時間延長一些,則可降低完成項(xiàng)目所需要的工作量。13.2.3COCOMO2模型不講,感興趣的同學(xué)可自學(xué)13.3進(jìn)度計(jì)劃一個有效的軟件過程應(yīng)該定義一個適用于當(dāng)前項(xiàng)目的任務(wù)集合。一個任務(wù)集合包括一組軟件工程工作任務(wù),里程碑和可交付的產(chǎn)品。為一個項(xiàng)目所定義的任務(wù)集合,必須包括為獲得高質(zhì)量的軟件產(chǎn)品而應(yīng)該完成的所有任務(wù),但是同時又不能讓項(xiàng)目組承擔(dān)不必要的工作。項(xiàng)目管理者的目標(biāo)是定義全部項(xiàng)目任務(wù),識別出關(guān)鍵任務(wù),跟蹤關(guān)鍵任務(wù)的進(jìn)展?fàn)顩r,以保證能及時發(fā)現(xiàn)拖延進(jìn)度的情況。為達(dá)到上述目標(biāo),管理者必須制定一個足夠詳細(xì)的進(jìn)度表,以便監(jiān)督項(xiàng)目進(jìn)度并控制整個項(xiàng)目。
軟件項(xiàng)目的進(jìn)度安排是這樣一種活動。它通過把工作量分配給特定的軟件工程任務(wù)并規(guī)定完成各項(xiàng)任務(wù)的起止日期,從而將估算出的項(xiàng)目工作量分布于計(jì)劃好的項(xiàng)目持續(xù)期內(nèi)。13.3.1估算開發(fā)時間請自行學(xué)習(xí),并注意開發(fā)時間與從事開發(fā)工作的人數(shù)并不成反比關(guān)系。存在一個最佳項(xiàng)目組規(guī)模使得項(xiàng)目組總生產(chǎn)率最高13.3.2Gantt圖
Gantt(甘特)圖是歷史悠久,應(yīng)用廣泛的制定進(jìn)度計(jì)劃的工具,下面通過一個非常簡單的例子介紹這種工具。假設(shè)有一座陳舊的矩形木板房需要重新油漆。這項(xiàng)工作必須分3步完成:首先刮掉舊漆,然后刷上新漆,最后清除濺在窗戶上的油漆。假設(shè)一共分配了15名工人去完成這項(xiàng)工作,然而工具卻很有限:只有5把刮舊漆用的刮板,5把刷漆用的刷子,5把清除濺在窗戶上的油漆用的小刮刀。怎樣安排才能使工作進(jìn)行的更有效呢?
假設(shè)木板房的第2、4兩面墻的長度比第1、3兩面墻的長度長一倍,此外,不同工作需要用的時間也不同,刷新漆最費(fèi)時間,其次是刮舊漆,清理(即清理濺在窗戶上的油漆)需要的時間最少。工序墻壁刮舊漆刷新漆清理1或32或4231462表13.5各道工序估計(jì)需用的時間(小時)
表13.5列出了估計(jì)每道工序需要用的時間。可以使用圖13.1中的Gantt圖描繪上述流水作業(yè)過程:在時間為零時開始刮第一面墻上的油漆,兩小時后刮舊漆的工人轉(zhuǎn)去刮第二面墻,同時另5名工人開始給第一面墻刷新漆,每當(dāng)給一面墻刷完新漆之后,第三組的5名工人立即清除濺在這面墻窗戶上的漆。從圖13.1可以看出12小時后刮完所有舊漆,20小時后完成所有墻壁的刷漆工作,再過2小時后清理工作結(jié)束。因此全部工程在22小時后結(jié)束,如果用前述的第一種做法,則須要36小時。246810121416182022
時間(小時)作業(yè)刮舊漆刷新漆清理圖13.1舊木板房刷漆工程的Gantt圖13.3.3工程網(wǎng)絡(luò)上一小節(jié)介紹的Gantt圖能很形象地描繪任務(wù)分解情況,以及每個子任務(wù)(作業(yè))的開始時間和結(jié)束時間,因此是進(jìn)度計(jì)劃和進(jìn)度管理的有利工具。它具有直觀簡明和容易掌握,容易繪制的優(yōu)點(diǎn),但是Gantt圖也有3個缺點(diǎn):(1)不能顯示地描繪各項(xiàng)作業(yè)彼此間的依賴關(guān)系;(2)進(jìn)度計(jì)劃的關(guān)鍵部分不明確,難于判定哪些部分應(yīng)當(dāng)是主攻和主控的對象;(3)計(jì)劃中有潛力的部分及潛力的大小不明確,往往造成潛力的浪費(fèi)。
當(dāng)把一個工程項(xiàng)目分解成許多子任務(wù),并且它們彼此間的依賴關(guān)系又比較復(fù)雜時,僅僅用Gantt圖作為安排進(jìn)度的工作是不夠的,不僅難于做出即節(jié)省資源又保證進(jìn)度的計(jì)劃,而且還容易發(fā)生差錯。工程網(wǎng)絡(luò)是制定進(jìn)度計(jì)劃時另一種常用的工具,它同樣能描繪任務(wù)分解情況以及每項(xiàng)作業(yè)的開始時間和結(jié)束時間,此外,它還顯示地描繪各個作業(yè)彼此間的依賴關(guān)系。因此,工程網(wǎng)絡(luò)是系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的強(qiáng)有力的工具。
在工程網(wǎng)絡(luò)中用箭頭表示作業(yè)(例如,刮舊漆,刷新漆,清理等),用圓圈表示事件(一項(xiàng)作業(yè)開始或結(jié)束)。注意,事件僅僅是可以明確定義的時間點(diǎn),它并不消耗時間和資源。圖13.2是舊木板房刷漆工程的工程網(wǎng)絡(luò)。在圖13.2中還有一些虛線箭頭,它們表示虛擬作業(yè),引入虛擬作業(yè)是為了顯式地表示作業(yè)之間的依賴關(guān)系。
圖13.2舊木板房刷漆工程的工程網(wǎng)絡(luò)圖中:1-2刮第1面墻上的舊漆;2-3刮第2面墻上的舊漆;2-4給第1面墻刷新漆;3-5刮第3面墻上的舊漆;4-6給第2面墻刷新漆;4-7清理第1面墻窗戶;5-8刮第4面墻上的舊漆;6-8給第3面墻刷新漆;7-9清理第2面墻窗戶;8-10給第4面墻刷新漆;9-10清理第3面墻窗戶;10-11清理第4面墻窗戶;虛擬作業(yè):3-4;5-6;6-7;8-9。
123410987561113.3.4估算工程進(jìn)度首先,把每個作業(yè)估計(jì)需要使用的時間寫在表示該項(xiàng)作業(yè)的箭頭上方。注意,箭頭長度和它代表的作業(yè)持續(xù)時間沒有關(guān)系,箭頭僅表示依賴關(guān)系,它上方的數(shù)字才表示作業(yè)的持續(xù)時間。其次,為每個事件計(jì)算下述兩個統(tǒng)計(jì)數(shù)字:最早時刻EET和最遲時刻LET。這兩個數(shù)字將分別寫在表示事件的圓圈的右上角和右下角,如圖13.3左下角的符號所示。
事件的最早時刻是該事件可以發(fā)生的最早時間。通常工程網(wǎng)絡(luò)中第一個事件的最早時刻定義為零,其他事件的最早時刻在工程網(wǎng)絡(luò)上從左至右按事件發(fā)生順序計(jì)算。計(jì)算最早時刻EET使用下述3條簡單規(guī)則:(1)考慮進(jìn)入該事件的所有作業(yè);(2)對于每個作業(yè)都計(jì)算它的持續(xù)時間與起始事件的EET之和;(3)選取上述和數(shù)中的最大值作為該事件的最早時刻EET。
事件的最遲時刻是在不影響工程竣工時間的前提下,該事件最晚可以發(fā)生的時刻。按慣例,最后一個事件(工程結(jié)束)的最遲時刻就是它的最早時刻。其他事件的最遲時刻在工程網(wǎng)絡(luò)上從右至左按逆作業(yè)流的方向計(jì)算。計(jì)算最遲時刻LET使用下述3條規(guī)則:(1)考慮離開該事件的所有作業(yè);(2)從每個作業(yè)的結(jié)束事件的最遲時刻中減去該作業(yè)的持續(xù)時間;(3)選取上述差數(shù)中的最小值作為該事件的最遲時刻LET。圖13.3
舊木板房刷漆工程的完整的工程網(wǎng)絡(luò)100222366466612125811815157121891520102121112323242343612162(0)(0)(3)(1)(11)(6)(5)(0)(0)(0)(3)(0)持續(xù)時間(機(jī)動時間)事件號最早時刻EET最遲時刻LET代表虛線0(4)0(0)0(6)(5)013.3.5關(guān)鍵路徑圖13.3中有幾個事件的最早時刻和最遲時刻相同,這些事件定義了關(guān)鍵路徑,在圖中關(guān)鍵路徑用粗線箭頭表示。關(guān)鍵路徑上的事件(關(guān)鍵事件)必須準(zhǔn)時發(fā)生,組成關(guān)鍵路徑的作業(yè)(關(guān)鍵作業(yè))的實(shí)際持續(xù)時間不能超過估計(jì)的持續(xù)時間,否則工程就不能準(zhǔn)時結(jié)束。工程項(xiàng)目的管理人員應(yīng)該密切注視關(guān)鍵作業(yè)的進(jìn)展情況,如果關(guān)鍵事件出現(xiàn)的時間比預(yù)計(jì)的時間晚,則會使最終完成項(xiàng)目的時間拖后;如果希望縮短工期,只有往關(guān)鍵作業(yè)中增加資源才會有效果。13.3.6機(jī)動時間不在關(guān)鍵路徑上的作業(yè)有一定程度的機(jī)動余地----實(shí)際開始時間可以比預(yù)定時間晚一些,或者實(shí)際持續(xù)時間可以比預(yù)定的持續(xù)時間長一些,而并不影響工程的結(jié)束時間。一個作業(yè)可以有的全部機(jī)動時間等于它的結(jié)束時間的最遲時刻減去它的開始事件的最早時刻,再減去這個作業(yè)的持續(xù)時間:
機(jī)動時間=(LET)結(jié)束-(EET)開始-持續(xù)時間對于前述油漆舊木板房的例子,計(jì)算得到的非關(guān)鍵作業(yè)的機(jī)動時間列在表13.6中。作業(yè)LET(結(jié)束)持續(xù)時間表13.6各道工序估計(jì)需用的時間(小時)EET(開始)機(jī)動時間2-462313-5116234-71861115-6128045-8158436-71812067-92012268-92015059-10211515
在工程網(wǎng)絡(luò)中每個作業(yè)的機(jī)動時間寫在代表該項(xiàng)作業(yè)的箭頭下面的括弧里。在制定進(jìn)度計(jì)劃時仔細(xì)考慮和利用工程網(wǎng)絡(luò)中的機(jī)動時間,往往能夠安排出既節(jié)省資源又不影響最終竣工時間的進(jìn)度表。例如:可能僅用10名工人在相同時間內(nèi)完成舊木板房的刷漆工作。如圖13.4注意:圖13.4還改正了圖13.1中的一個錯誤:因?yàn)榻o第二面墻刷漆的前提不僅是第一面墻刷完,而且要求第二面墻舊漆刮凈,因此全部工程需要23小時13.4人員組織13.4.1民主制程序員組民主制程序員組的一個重要特點(diǎn)是,小組成員完全平等,享有充分民主,通過協(xié)商做出技術(shù)決策。因此,小組成員之間的通信是平行的,如果小組內(nèi)有n個成員,則可能的通信信道共有n(n-1)/2條。程序設(shè)計(jì)小組的人數(shù)不能太多,否則組員間彼此通信的時間將多于程序設(shè)計(jì)時間。一般來說,程序設(shè)計(jì)小組的規(guī)模應(yīng)該比較小,以2-8名成員為宜。
民主制程序員組的主要優(yōu)點(diǎn)是,組員們對發(fā)現(xiàn)程序錯誤持積極的態(tài)度,這種態(tài)度有助于更快速地發(fā)現(xiàn)錯誤,從而導(dǎo)致高質(zhì)量的代碼。民主制程序員組的另一個優(yōu)點(diǎn)是,組員們享有充分民主,小組有高度凝聚力,組內(nèi)學(xué)術(shù)空氣濃厚,有利于攻克技術(shù)難關(guān)。13.4.2主程序員組美國IBM公司在20世紀(jì)70年代初期開始采用主程序員組的組織方式。采用這種組織方式主要出于下述幾點(diǎn)考慮:(1)軟件開發(fā)人員多數(shù)比較缺乏經(jīng)驗(yàn);(2)程序設(shè)計(jì)過程中有許多事務(wù)性的工作,例如,大量信息的存儲和更新;(3)多渠道通信很費(fèi)時間,將降低程序員的生產(chǎn)率。
主程序員組用經(jīng)驗(yàn)多,技術(shù)好,能力強(qiáng)的程序員作為主程序員,同時,利用人和計(jì)算機(jī)在事務(wù)性工作方面給主程序員提供充分支持,而且所有通信都通過一兩個人進(jìn)行。主程序員組的兩個重要特性:(1)專業(yè)化。該組每名成員僅完成他們受過專業(yè)訓(xùn)練的那些工作。(2)層次化。主程序員指揮每名組員工作,并對程序全部負(fù)責(zé)。編程秘書后備程序員程序員程序員程序員
圖13.5主程序員組的結(jié)構(gòu)主程序員技術(shù)組長行政組長程序員程序員程序員圖例:技術(shù)管理非技術(shù)管理
圖13.6現(xiàn)代程序員組的結(jié)構(gòu)13.4.3現(xiàn)代程序員組一個技術(shù)負(fù)責(zé)人,負(fù)責(zé)小組的技術(shù)活動;一個行政負(fù)責(zé)人,負(fù)責(zé)所有非技術(shù)性事務(wù)的管理決策。這樣的組織結(jié)構(gòu)如圖13.6所示
由于程序員組成員人數(shù)不宜過多,當(dāng)軟件項(xiàng)目規(guī)模較大時,應(yīng)該把程序員分成若干個小組,采用圖13.7所示的組織結(jié)構(gòu)。項(xiàng)目經(jīng)理組長組長組長程序員程序員程序員程序員程序員程序員程序員程序員技術(shù)管理圖例:圖13.7大型項(xiàng)目的技術(shù)管理組織結(jié)構(gòu)
把民主制程序組和主程序員組的優(yōu)點(diǎn)結(jié)合起來的另一種方法,是在合適的地方采用分散做決定的方法,如圖13.8所示。項(xiàng)目經(jīng)理組長組長組長程序員程序員程序員程序員程序員程序員程序員程序員技術(shù)管理圖例:圖13.8包含分散決策的組織方式13.5質(zhì)量保證13.5.1軟件質(zhì)量概括地說,軟件質(zhì)量就是“軟件與明確地和隱含地定義的需求相一致的程度”。更具體地說,軟件質(zhì)量是軟件與明確地?cái)⑹龅墓δ芎托阅苄枨?,文檔中明確描述的開發(fā)標(biāo)準(zhǔn)以及任何專業(yè)開發(fā)的軟件產(chǎn)品都應(yīng)該具有的隱含特征相一致的程度。上述定義強(qiáng)調(diào)了下述的3個要點(diǎn):(1)軟件需求是度量軟件質(zhì)量的基礎(chǔ),與需求不一致就是質(zhì)量不高;(2)指定的開發(fā)標(biāo)準(zhǔn)定義了一組指導(dǎo)軟件開發(fā)的準(zhǔn)則,如果沒有遵守這些準(zhǔn)則,幾乎肯定會導(dǎo)致軟件質(zhì)量不高;(3)通常,有一組沒有顯示描述的隱含需求(例如,軟件應(yīng)該是容易維護(hù)的)。如果軟件滿足明確描述的需求,但卻不滿足隱含的需求,那么軟件的質(zhì)量仍然是值得懷疑的。
本節(jié)介紹影響軟件質(zhì)量的主要因素,這些因素是從管理角度對軟件質(zhì)量的度量??梢园堰@些質(zhì)量因素分成3組,分別反映用戶在使用軟件產(chǎn)品時的3種不同傾向或觀點(diǎn)。這3種傾向是:產(chǎn)品運(yùn)行,產(chǎn)品修改和產(chǎn)品轉(zhuǎn)移。圖13.9描繪了軟件質(zhì)量因素和上述3種傾向(或產(chǎn)品活動)之間的關(guān)系,表13.7列出了軟件質(zhì)量因素的簡明定義。產(chǎn)品修改產(chǎn)品運(yùn)行產(chǎn)品轉(zhuǎn)移可理解性(我能理解它嗎?)可維修性(我能修復(fù)它嗎?)靈活性(我能改變它嗎?)可測試性(我能測試它嗎?)可移植性(我能在另一臺機(jī)器上使用它嗎?)可再用性(我能再用它的某些部分嗎?)互運(yùn)行性(我能把它和另一個系統(tǒng)結(jié)合嗎?)正確性(它按我的需要工作嗎?)健壯性(對意外環(huán)境它能適當(dāng)?shù)仨憫?yīng)嗎?)效率(完成預(yù)定功能時它需要的計(jì)算機(jī)資源多嗎?)完整性(它是安全的嗎?)可用性(我能使用它嗎?)風(fēng)險(能按預(yù)定計(jì)劃完成它嗎?)
圖13.9軟件質(zhì)量因素與產(chǎn)品活動的關(guān)系13.5.2軟件質(zhì)量保證措施軟件質(zhì)量保證(softwarequalityassurance,SQA)的措施主要有:基于非執(zhí)行的測試(也稱為復(fù)審或評審),基于執(zhí)行的測試(即以前講過的軟件測試)和程序正確性證明。復(fù)審主要用來保證在編碼之前各階段產(chǎn)生的文檔的質(zhì)量;基于執(zhí)行的測試需要在程序編寫出來之后進(jìn)行,它是保證軟件質(zhì)量的最后一道防線;程序正確性證明使用數(shù)學(xué)方法嚴(yán)格驗(yàn)證程序是否與對它的說明完全一致。
參加軟件質(zhì)量保證工作的人員,可以劃分成下述兩類:(1)軟件工程師通過采用先進(jìn)的技術(shù)方法和度量,進(jìn)行正式的技術(shù)復(fù)審以及完成計(jì)劃周密的軟件測試來保證軟件質(zhì)量。(2)SQA小組的職責(zé),是輔助軟件工程師以獲得高質(zhì)量的軟件產(chǎn)品。其從事的軟件質(zhì)量保證活動主要是:計(jì)劃,監(jiān)督,記錄,分析和報(bào)告。簡而言之,SQA小組的作用是,通過確保軟件過程的質(zhì)量來保證軟件產(chǎn)品的質(zhì)量。1.技術(shù)復(fù)審的必要性正式技術(shù)復(fù)審的顯著優(yōu)點(diǎn)是,能夠較早發(fā)現(xiàn)軟件錯誤,從而可防止錯誤被傳播到軟件過程的后續(xù)階段。正式技術(shù)復(fù)審是軟件質(zhì)量保證措施的一種,包括走查(walkthrough)和審查(inspection)等具體方法。2.走查:參與者驅(qū)動法,文檔驅(qū)動法3.審查審查的范圍比走查廣泛的多,它的步驟也比較多。通常,審查過程包括下述5個基本步驟:(1)綜述。由負(fù)責(zé)編寫文檔的一名成員向?qū)彶榻M綜述該文檔。在綜述會結(jié)束時把文檔分發(fā)給每位與會者;(2)準(zhǔn)備。評審員仔細(xì)閱讀文檔。最好列出在審查中發(fā)現(xiàn)的錯誤的類型,并按發(fā)生頻率把錯誤類型分級,以輔助審查工作。這些列表有助于評審員們把注意力集中到最常發(fā)生錯誤的區(qū)域;(3)審查。評審組仔細(xì)走查整個文檔。和走查一樣,這一步的目的也是發(fā)現(xiàn)文檔中的錯誤,而不是改正它們。通常每次審查會不超過90分鐘,審查組組長應(yīng)該在一天之內(nèi)寫出一份關(guān)于審查的報(bào)告;(4)返工。文檔的作者負(fù)責(zé)解決在審查報(bào)告中列出的所有錯誤及問題;(5)跟蹤。組長必須確保所提出的每個問題都得到了圓滿的解決(要么修正了文檔,要么澄清了被誤認(rèn)為是錯誤的條目)。必須仔細(xì)檢查對文檔所做的每個修正,以確保沒有引入新的錯誤。如果在審查過程中返工量超過5%,則應(yīng)該由審查組再對文檔全面地審查一遍。4.程序正確性證明測試可以暴露程序中的錯誤,因此是保證軟件可靠性的重要手段;但是,測試只能證明程序中有錯誤,并不能證明程序中沒有錯誤。因此,對于保證軟件可靠性來說,測試是一種不完善的技術(shù)。一旦研究出實(shí)用的正確性證明程序(即,能自動證明其他程序的正確性的程序),軟件可靠性將更有保證,測試工作量將大大減少。正確性證明的基本思想是證明程序能完成預(yù)定的功能。因此,應(yīng)該提供對程序功能的嚴(yán)格數(shù)學(xué)說明,然后根據(jù)程序代碼證明程序確實(shí)能實(shí)現(xiàn)它的功能說明。
13.6軟件配置管理
軟件配置管理是在軟件的整個生命期內(nèi)管理變化的一組活動。具體地說,這組活動用來:①標(biāo)識變化;②控制變化;③確保適當(dāng)?shù)貙?shí)現(xiàn)了變化;④向需要知道這類信息的人報(bào)告變化。軟件配置管理不同于軟件維護(hù)。維護(hù)是在軟件交付給用戶使用后才發(fā)生的,而配置管理是在軟件項(xiàng)目啟動時就開始,并且一直持續(xù)到軟件退役后才終止的一組跟蹤和控制活動。軟件配置管理的目標(biāo)是,使變化更正確且更容易被適應(yīng),在必須變化時減少所需花費(fèi)的工作量。13.6.1軟件配置1.軟件配置項(xiàng)軟件過程的輸出信息可以分為3類:①計(jì)算機(jī)程序(源代碼和可執(zhí)行程序);②描述計(jì)算機(jī)程序的文檔(供技術(shù)人員或用戶使用);③數(shù)據(jù)(程序內(nèi)包含的或在程序外的)。上述這些項(xiàng)組成了在軟件過程中產(chǎn)生的全部信息,我們把它們統(tǒng)稱為軟件配置,而這些項(xiàng)就是軟件配置項(xiàng)。2.基線基線是一個軟件配置管理概念,IEEE把基線定義為:已經(jīng)通過了正式復(fù)審的規(guī)格說明或中間產(chǎn)品,它可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只有通過正式的變化控制過程才能改變它。簡而言之,基線就是通過了正式復(fù)審的軟件配置項(xiàng)。在軟件配置項(xiàng)變成基線之前,可以迅速而非正式地修改它。一旦建立了基線之后,雖然仍然可以實(shí)現(xiàn)變化,但是,必須應(yīng)用特定的、正式的過程(稱為規(guī)程)來評估、實(shí)現(xiàn)和驗(yàn)證每個變化。13.6.2軟件配置管理過程軟件配置管理是軟件質(zhì)量保證的重要一環(huán),它的主要任務(wù)是控制變化,同時也負(fù)責(zé)各個軟件配置項(xiàng)和軟件各種版本的標(biāo)識、軟件配置審計(jì)以及對軟件配置發(fā)生的任何變化的報(bào)告。具體來說,軟件配置管理主要有5項(xiàng)任務(wù):
1.標(biāo)識軟件配置中的對象
2.版本控制
3.變化控制:訪問控制,同步控制。
4.配置審計(jì)
5.狀態(tài)報(bào)告
13.7能力成熟度模型美國卡內(nèi)基梅隆大學(xué)軟件工程研究所在美國國防部資助下于20世紀(jì)80年代末建立的能力成熟度模型(capabilitymaturitymodelCMM),是用于評價軟件機(jī)構(gòu)的軟件過程能力成熟度的模型。最初,建立此模型的目的主要是,為大型軟件項(xiàng)目的招投標(biāo)活動提供一種全面而客觀的評審依據(jù),發(fā)展到后來,此模型又同時被應(yīng)用于許多軟件機(jī)構(gòu)內(nèi)部的過程改進(jìn)活動中。
能力成熟度模型的基本思想是,由于問題是由我們管理軟件過程的方法不當(dāng)引起的,所以新軟件技術(shù)的運(yùn)用并不會自動提高軟件的生產(chǎn)率和質(zhì)量。能力成熟度模型有助于軟件開發(fā)機(jī)構(gòu)建立一個有規(guī)律的,成熟的軟件過程。改進(jìn)后的軟件過程將開發(fā)出質(zhì)量更好的軟件,使更多的軟件項(xiàng)目免受時間和費(fèi)用超支之苦。
軟件過程包括各種活動、技術(shù)和工具,因此,它實(shí)際上即包括了軟件開發(fā)的技術(shù)方面又包括了管理方面。CMM的策略是,力圖改進(jìn)對軟件過程的管理,而在技術(shù)方面的改進(jìn)是其必然的結(jié)果。CMM在改進(jìn)軟件過程中所起的作用主要是,指導(dǎo)軟件機(jī)構(gòu)通過確定當(dāng)前的過程成熟度并識別出對過程改進(jìn)起關(guān)鍵作用的問題,從而明確過程改進(jìn)的方向和策略。通過集中開展與過程改進(jìn)的方向和策略相一致的一組過程改進(jìn)活動,軟件機(jī)構(gòu)便能穩(wěn)步而有效地改進(jìn)其軟件過程,使其軟件過程能力得循序漸進(jìn)的提高。
對軟件過程的改進(jì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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院環(huán)境衛(wèi)生管理制度
- 主題班會課件:憤怒情緒的調(diào)控
- 《用法律保護(hù)自己》課件
- 《OGNL與標(biāo)簽庫》課件
- 教育局聘任小學(xué)校長協(xié)議書(2篇)
- 2024年版財(cái)產(chǎn)分割協(xié)議:離婚雙方適用2篇
- 2024年度塔吊司機(jī)承包勞務(wù)合作協(xié)議書3篇
- 2024年版標(biāo)準(zhǔn)化建筑工程協(xié)議范本版
- 2025年陽泉道路運(yùn)輸從業(yè)人員資格考試內(nèi)容有哪些
- 2025年拉薩貨運(yùn)從業(yè)資格證模擬考試保過版
- 彈性力學(xué)仿真軟件:Altair HyperWorks:RADIOSS非線性動力學(xué)分析教程
- DB36-T 1964-2024 新型冠狀病毒基因溯源技術(shù)規(guī)范
- 氣候可行性論證技術(shù)規(guī)范第2部分:太陽能發(fā)電工程
- 陜西省西安市周至縣2025屆初三中考測試(一)數(shù)學(xué)試題理試題含解析
- 附件1:腫瘤防治中心評審實(shí)施細(xì)則2024年修訂版
- 2024年高考英語易錯題 閱讀理解:詞義猜測題4大陷阱(教師版新高考專用)
- 國債項(xiàng)目資金管理辦法
- 運(yùn)用PDCA循環(huán)提高全麻患者體溫檢測率
- 4.12.1 擁有積極的人生態(tài)度-2024-2025學(xué)年初中道德與法治七年級上冊上課課件
- 2023年7月遼寧省高中學(xué)業(yè)水平合格考語文試卷真題(含答案詳解)
- 跨學(xué)科主題-探索外來食料作物傳播史課件-2024-2025學(xué)年七年級地理上學(xué)期(2024)人教版
評論
0/150
提交評論