2020年10月自考計(jì)算機(jī)專業(yè)《軟件工程》自學(xué)課件第十三章-軟件項(xiàng)目管理_第1頁
2020年10月自考計(jì)算機(jī)專業(yè)《軟件工程》自學(xué)課件第十三章-軟件項(xiàng)目管理_第2頁
2020年10月自考計(jì)算機(jī)專業(yè)《軟件工程》自學(xué)課件第十三章-軟件項(xiàng)目管理_第3頁
2020年10月自考計(jì)算機(jī)專業(yè)《軟件工程》自學(xué)課件第十三章-軟件項(xiàng)目管理_第4頁
2020年10月自考計(jì)算機(jī)專業(yè)《軟件工程》自學(xué)課件第十三章-軟件項(xiàng)目管理_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第13章:軟件項(xiàng)目管理主要內(nèi)容13.1估算軟件規(guī)模13.2工作量估算13.3進(jìn)度計(jì)劃13.4人員組織13.5質(zhì)量保證13.6軟件配置管理目的與要求一般了解:軟件管理的特點(diǎn)和項(xiàng)目管理的基本過程。重點(diǎn)掌握:進(jìn)度計(jì)劃安排的工具和3種人員組織的方式。重點(diǎn)與難點(diǎn)進(jìn)度計(jì)劃安排的工具和3種人員組織的方式。軟件能力成熟度模型。13.1度量軟件規(guī)模13.1.1代碼行技術(shù)

每個(gè)人都估計(jì)程序的最小規(guī)模(a)、最大規(guī)模(b)和最可能的規(guī)模(m),分別算出這三類規(guī)模的平均值,和之后,再用下式計(jì)算程序規(guī)模的估計(jì)值:

代碼行技術(shù)的優(yōu)點(diǎn)代碼行是所有軟件開發(fā)項(xiàng)目都有的“產(chǎn)品”,而且很容易計(jì)算;許多現(xiàn)有的軟件估算模型使用LOC或KLOC作為關(guān)鍵的輸入數(shù)據(jù);已有大量基于代碼行的文獻(xiàn)和數(shù)據(jù)存在。缺點(diǎn)源程序僅是軟件配置的一個(gè)成分,用它的規(guī)模代表整個(gè)軟件的規(guī)模似乎不太合理;用不同語言實(shí)現(xiàn)同一個(gè)軟件產(chǎn)品所需要的代碼行數(shù)并不相同;這種方法不適用于非過程語言。7.1.2功能點(diǎn)技術(shù)1.信息域特性功能點(diǎn)技術(shù)定義了信息域的5個(gè)特性,分別是:輸入項(xiàng)數(shù)(Inp)輸出項(xiàng)數(shù)(Out)查詢數(shù)(Inq)主文件數(shù)(Maf)外部接口數(shù)(Inf)估算功能點(diǎn)的步驟(1)計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFPUFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf其中,ai(1≤i≤5)是信息域特性系數(shù)(2)計(jì)算技術(shù)復(fù)雜性因子TCF技術(shù)復(fù)雜性因子TCF由下式計(jì)算:

TCF=0.65+0.01×DI

因?yàn)镈I的值在0~70之間,所以TCF的值在0.65~1.35之間。(3)計(jì)算功能點(diǎn)數(shù)FP功能點(diǎn)數(shù)FP由下式計(jì)算:FP=UFP×TCF

功能點(diǎn)數(shù)與所用的編程語言無關(guān),因此,功能點(diǎn)技術(shù)比代碼行技術(shù)更合理一些。但是,在判斷信息域特性復(fù)雜級(jí)別及技術(shù)因素的影響程度時(shí),存在相當(dāng)大的主觀因素。13.2估算軟件開發(fā)工作量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是以人月為單位的軟件開發(fā)工作量,ev是估算變量(即以KLOC或FP為單位的軟件規(guī)模)。下面給出幾個(gè)典型的靜態(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簡(jiǎn)單模型

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)Kemerer模型

E=60.62+7.728×10-8FP3(3)Matson,Barnett和Mellichamp模型

E=585.7+15.12FP

13.2.3COCOMO2模型三個(gè)層次的估算模型分別是:應(yīng)用系統(tǒng)組成模型早期設(shè)計(jì)模型后體系結(jié)構(gòu)模型

E=a×KLOCb×其中,E是開發(fā)工作量(以人月為單位),a是模型系數(shù),KLOC是估計(jì)的源代碼行數(shù)(以千行為單位),b是模型指數(shù),fi(i=1~17)是成本因素。COCOMO2中使用的5個(gè)分級(jí)因素如下所述:項(xiàng)目先例性開發(fā)靈活性風(fēng)險(xiǎn)排除度項(xiàng)目組的凝聚力過程成熟度

13.3進(jìn)度計(jì)劃13.3.1估算開發(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/3甘特圖(進(jìn)度計(jì)劃工具) 舉例:假設(shè)有一座陳舊的矩形木板房需要重新油漆。這項(xiàng)工作必須分三步完成:首先刮掉舊漆,然后刷上新漆,最后清除濺在窗戶上的油漆。假設(shè)一共分配了15名工人去完成這項(xiàng)工作,然而工具卻很有限:只有5把刮舊漆用的刮板,5把刷漆用的刷子,5把清除濺在窗戶上的油漆用的小刮刀。怎樣安排才能使工作進(jìn)行得更有效呢?一種做法是首先刮掉四面墻壁上的舊漆,然后給每面墻壁都刷上新漆,最后清除濺在每個(gè)窗戶上的油漆。顯然這是效率最低的做法,因?yàn)榭偣灿?5名工人,然而每種工具卻只有5件,這樣安排工作在任何時(shí)候都有10名工人閑著沒活干。另外一種做法是:采用“流水作業(yè)法”,也就是說,首先由5名工人用刮板刮掉第一面墻上的舊漆(這時(shí)其余10名工人休息),當(dāng)?shù)谝幻鎵蝺艉?,另?名工人立即用刷子給這面墻刷新漆(與此同時(shí)拿刮板的5名工人轉(zhuǎn)去刮第二面墻上的舊漆),一旦刮舊漆的工人轉(zhuǎn)到第三面墻而且刷新漆的工人轉(zhuǎn)到第二面墻以后,余下的5名工人立即拿起刮刀去清除濺在第一面墻窗戶上的油漆,……。這樣安排每個(gè)工人都有活干,因此能夠在較短的時(shí)間內(nèi)完成任務(wù)。表13.5

各道工序估計(jì)需用的時(shí)間(小時(shí))

工序墻壁刮

漆刷

漆清

理1或32312或4462

假設(shè)木板房的第2、4兩面墻的長度比第1、3兩面墻的長度長一倍,此外,不同工作需要用的時(shí)間長短也不同,刷新漆最費(fèi)時(shí)間,其次是刮舊漆,清理(即清除濺在窗戶上的油漆)需要的時(shí)間最少。表13.5列出了估計(jì)每道工序需要用的時(shí)間。我們可以使用圖13.1中的Gantt圖描繪上述流水作業(yè)過程:在時(shí)間為零時(shí)開始刮第一面墻上的舊漆,兩小時(shí)后刮舊漆的工人轉(zhuǎn)去刮第二面墻,同時(shí)另5名工人開始給第一面墻刷新漆,每當(dāng)給一面墻刷完新漆之后,第三組的5名工人立即清除濺在這面墻窗戶上的漆。從圖13.1可以看出12小時(shí)后刮完所有舊漆,20小時(shí)后完成所有墻壁的刷漆工作,再過2小時(shí)后清理工作結(jié)束。因此全部工程在22小時(shí)后結(jié)束,如果用前述的第一種做法,則需要36小時(shí)。圖7.1

舊木板房刷漆工程的Gantt圖圖13.2

標(biāo)有里程碑的Gantt圖

為了醒目地表示里程碑,可以在Gantt圖中加上菱形標(biāo)記,一個(gè)菱形代表一個(gè)里程碑,如圖13.2所示。13.3.3工程網(wǎng)絡(luò)Gantt圖也有三個(gè)主要缺點(diǎn):不能顯式地描繪各項(xiàng)作業(yè)彼此間的依賴關(guān)系;進(jìn)度計(jì)劃的關(guān)鍵部分不明確,難于判定哪些部分應(yīng)當(dāng)是主攻和主控的對(duì)象;計(jì)劃中有潛力的部分及潛力的大小不明確,往往造成潛力的浪費(fèi)。圖13.3舊木板房刷漆工程的工程網(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圖13.3是舊木板房刷漆工程的工程網(wǎng)絡(luò)。圖中表示刮第1面墻上舊漆的作業(yè)開始于事件1,結(jié)束于事件2。用開始事件和結(jié)束事件的編號(hào)標(biāo)識(shí)一個(gè)作業(yè),因此“刮第1面墻上舊漆”是作業(yè)1—2。13.3.4估算工程進(jìn)度把每個(gè)作業(yè)估計(jì)需要使用的時(shí)間寫在表示該項(xiàng)作業(yè)的箭頭上方。注意,箭頭長度和它代表的作業(yè)持續(xù)時(shí)間沒有關(guān)系,箭頭僅表示依賴關(guān)系,它上方的數(shù)字才表示作業(yè)的持續(xù)時(shí)間。為每個(gè)事件計(jì)算下述兩個(gè)統(tǒng)計(jì)數(shù)字:最早時(shí)刻EET和最遲時(shí)刻LET。這兩個(gè)數(shù)字將分別寫在表示事件的圓圈的右上角和右下角圖13.4

舊木板房刷漆工程的完整的工程網(wǎng)絡(luò)(粗線箭頭是關(guān)鍵路徑)事件的最早時(shí)刻是該事件可以發(fā)生的最早時(shí)間。通常工程網(wǎng)絡(luò)中第一個(gè)事件的最早時(shí)刻定義為零,其他事件的最早時(shí)刻在工程網(wǎng)絡(luò)上從左至右按事件發(fā)生順序計(jì)算。計(jì)算最早時(shí)刻EET使用下述三條簡(jiǎn)單規(guī)則:(1)考慮進(jìn)入該事件的所有作業(yè);(2)對(duì)于每個(gè)作業(yè)都計(jì)算它的持續(xù)時(shí)間與起始事件的EET之和;(3)選取上述和數(shù)中的最大值作為該事件的最早時(shí)刻EET。已知事件2的最早時(shí)刻為2,作業(yè)2—4的持續(xù)時(shí)間為3小時(shí);事件3的最早時(shí)刻為6,作業(yè)3—4(這是一個(gè)虛擬作業(yè))的持續(xù)時(shí)間為0,按照上述三條規(guī)則,可以算出事件4的最早時(shí)刻為

EET=max{2+3,6+0}=6事件的最遲時(shí)刻是在不影響工程的前提下,該事件最晚可以發(fā)生的時(shí)刻。最后一個(gè)事件的最遲時(shí)刻就是它的最早時(shí)刻。其他事件的最遲時(shí)刻在工程網(wǎng)絡(luò)上從右至左按逆作業(yè)流的方向計(jì)算。計(jì)算最遲時(shí)刻LET使用下述三條規(guī)則:(1)考慮離開該事件的所有作業(yè);(2)從每個(gè)作業(yè)的結(jié)束事件的最遲時(shí)刻中減去該作業(yè)的持續(xù)時(shí)間;(3)選取上述差數(shù)中的最小值做為該事件的最遲時(shí)刻LET。例如,事件11的最遲時(shí)刻和最早時(shí)刻相同,都是23。逆作業(yè)流方向接下來應(yīng)該計(jì)算事件10的最遲時(shí)刻,離開這個(gè)事件的只有作業(yè)10—11,該作業(yè)的持續(xù)時(shí)間為2小時(shí),它的結(jié)束事件(事件11)的LET為23,因此,事件10的最遲時(shí)刻為

LET=23-2=21類似地,事件9的最遲時(shí)刻為

LET=21-1=20事件8的最遲時(shí)刻為 LET=min{21-6,20-0}=15圖13.4中每個(gè)圓圈內(nèi)右下角的數(shù)字就是該事件的最遲時(shí)刻。13.3.5關(guān)鍵路徑關(guān)鍵路徑上的事件(關(guān)鍵事件)必須準(zhǔn)時(shí)發(fā)生,組成關(guān)鍵路徑的作業(yè)(關(guān)鍵作業(yè))的實(shí)際持續(xù)時(shí)間不能超過估計(jì)的持續(xù)時(shí)間,否則工程就不能準(zhǔn)時(shí)結(jié)束。13.3.6機(jī)動(dòng)時(shí)間不在關(guān)鍵路徑上的作業(yè)有一定程度的機(jī)動(dòng)余地——實(shí)際開始時(shí)間可以比預(yù)定時(shí)間晚一些,或者實(shí)際持續(xù)時(shí)間可以比預(yù)計(jì)的持續(xù)時(shí)間長一些,而并不影響工程的結(jié)束時(shí)間。機(jī)動(dòng)時(shí)間=(LET)結(jié)束-(EET)開始-持續(xù)時(shí)間表13.6

舊木板房刷漆網(wǎng)絡(luò)中的機(jī)動(dòng)時(shí)間作

業(yè)LET(結(jié)束)EET(開始)持

續(xù)

時(shí)

間機(jī)

動(dòng)

時(shí)

間2—462313—5116234—71861115—6128045—8158436—71812067—92012268—92015059—10211515

圖13.5舊木板房刷漆工程改進(jìn)的Gantt圖之一圖中:粗實(shí)線代表由甲組工人完成的作業(yè);斜劃線代表由乙組工人完成的作業(yè)這個(gè)例子說明了工程網(wǎng)絡(luò)比Gantt圖優(yōu)越的地方:它顯式地定義事件及作業(yè)之間的依賴關(guān)系,Gantt圖只能隱含地表示這種關(guān)系。但是Gantt圖的形式比工程網(wǎng)絡(luò)更簡(jiǎn)單更直觀,為更多的人所熟悉,因此,應(yīng)該同時(shí)使用這兩種工具制定和管理進(jìn)度計(jì)劃,使它們互相補(bǔ)充取長補(bǔ)短。

13.4人員組織13.4.1民主制程序員組民主制程序員組通常采用非正式的組織方式,也就是說,雖然名義上有一個(gè)組長,但是他和組內(nèi)其他成員完成同樣的任務(wù),地位是平等的。在這樣的小組中,由全體組員討論決定應(yīng)該完成的工作,協(xié)商解決重大的技術(shù)問題,并且根據(jù)每個(gè)人的能力和經(jīng)驗(yàn)分配適當(dāng)?shù)娜蝿?wù)。

優(yōu)點(diǎn)對(duì)發(fā)現(xiàn)錯(cuò)誤抱著積極的態(tài)度,這種積極態(tài)度有助于更快速地發(fā)現(xiàn)錯(cuò)誤,從而導(dǎo)致高質(zhì)量的代碼。小組成員享有充分民主,小組有高度凝聚力,組內(nèi)學(xué)術(shù)空氣濃厚,有利于攻克技術(shù)難關(guān)。13.4.2主程序員組主程序員組用經(jīng)驗(yàn)豐富、技術(shù)好、能力強(qiáng)、會(huì)管理的程序員作為主程序員,同時(shí),由人和計(jì)算機(jī)在事務(wù)性工作方面給主程序員提供充分支持,而且所有通信都通過一兩個(gè)人進(jìn)行,以減少通信開銷。圖13.6主程序員組的結(jié)構(gòu)一個(gè)典型的主程序員組如圖13.6所示。該組由主程序員、后備程序員、編程秘書以及1~3名程序員組成。在必要的時(shí)候,該組還有其他領(lǐng)域的專家(例如,法律專家,財(cái)務(wù)專家等)協(xié)助。13.4.3現(xiàn)代程序員組主程序員對(duì)每行代碼的質(zhì)量負(fù)責(zé),必須參與全部代碼審查工作,但是,主程序員同時(shí)又是負(fù)責(zé)對(duì)小組成員進(jìn)行評(píng)價(jià)的管理員,他參與代碼審查工作自然會(huì)把所發(fā)現(xiàn)的程序錯(cuò)誤與小組成員的工作業(yè)績聯(lián)系起來,從而造成小組成員不愿意發(fā)現(xiàn)錯(cuò)誤的心理。圖13.7

現(xiàn)代程序員組

擺脫上述矛盾的方法是,取消主程序員的大部分行政管理工作。不僅可消除組員不愿意發(fā)現(xiàn)錯(cuò)誤的心理障礙,也使得尋找主程序員的人選不再那么困難。于是,實(shí)際的“主程序員”應(yīng)該由兩個(gè)人共同擔(dān)任:一個(gè)技術(shù)負(fù)責(zé)人,負(fù)責(zé)小組的技術(shù)活動(dòng);一個(gè)行政負(fù)責(zé)人,負(fù)責(zé)所有非技術(shù)的管理決策。這樣的組織結(jié)構(gòu)如圖13.7所示。圖13.7現(xiàn)代程序員組圖13.8

大型項(xiàng)目的技術(shù)管理組織結(jié)構(gòu)

由于程序員組的人數(shù)不宜過多,當(dāng)軟件項(xiàng)目規(guī)模較大時(shí),應(yīng)該把程序員分成若干個(gè)小組,采用圖13.8所示的組織結(jié)構(gòu)。由圖可以看出,產(chǎn)品作為一個(gè)整體其開發(fā)工作是在項(xiàng)目經(jīng)理的指導(dǎo)下進(jìn)行的,程序員向他們的組長匯報(bào)工作,而組長向項(xiàng)目經(jīng)理匯報(bào)工作。當(dāng)產(chǎn)品規(guī)模更大時(shí),可以再增加中間管理層次。13.5質(zhì)量保證13.5.1軟件質(zhì)量的定義軟件質(zhì)量就是“軟件與明確地和隱含地定義的需求相一致的程度”。更具體地說,軟件質(zhì)量是軟件與明確地?cái)⑹龅墓δ芎托阅苄枨?、文檔中明確描述的開發(fā)標(biāo)準(zhǔn)、以及所有專業(yè)開發(fā)的軟件都應(yīng)該具有的隱含特征相符合的程度。三個(gè)要點(diǎn)軟件需求是度量軟件質(zhì)量的基礎(chǔ),軟件與對(duì)它的需求不一致就是質(zhì)量不高。指定的標(biāo)準(zhǔn)定義了一組指導(dǎo)軟件開發(fā)的準(zhǔn)則,如果沒有嚴(yán)格遵守這些準(zhǔn)則,幾乎肯定會(huì)導(dǎo)致質(zhì)量不高。通常,有一組沒有顯式描述的隱含需求(例如,軟件應(yīng)該易學(xué)、易用、易維護(hù))。如果軟件雖然滿足明確描述的需求,但卻不滿足隱含的需求,那么軟件的質(zhì)量仍然是值得懷疑的。圖13.10

軟件質(zhì)量因素與產(chǎn)品活動(dòng)的關(guān)系

13.5.2軟件質(zhì)量保證措施措施主要有:基于非執(zhí)行的測(cè)試(也稱為復(fù)審)基于執(zhí)行的測(cè)試和程序正確性證明技術(shù)復(fù)審的必要性走查審查程序正確性證明13.6軟件配置管理軟件配置管理是在計(jì)算機(jī)軟件整個(gè)生命期內(nèi)管理變化的一組活動(dòng)。這組活動(dòng)用來:標(biāo)識(shí)變化;控制變化;確保適當(dāng)?shù)貙?shí)現(xiàn)了變化;向需要知道這方面信息的人報(bào)告變化。13.7能力成熟度模型能力成熟度模型(CapabilityMaturityModel,CMM)并不是一個(gè)軟件生命周期模型,而是改進(jìn)軟件過程的一種策略,它與實(shí)際使用的過程模型無關(guān)。1986年美國卡內(nèi)基—梅隆大學(xué)軟件工程研究所首次提出能力成熟度模型CMM,不過在當(dāng)時(shí)它被稱為過程成熟度模型。五個(gè)等級(jí)初始級(jí)可重復(fù)級(jí)已定義級(jí)已管理級(jí)優(yōu)化級(jí)。初始級(jí)軟件過程的特征是無序的,有時(shí)甚至是混亂的。幾乎沒有什么過程是經(jīng)過定義的,項(xiàng)目能否成功完全取決于個(gè)人能力。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論