第九章 軟件項(xiàng)目管理與軟件質(zhì)量保證簡(jiǎn)介_第1頁(yè)
第九章 軟件項(xiàng)目管理與軟件質(zhì)量保證簡(jiǎn)介_第2頁(yè)
第九章 軟件項(xiàng)目管理與軟件質(zhì)量保證簡(jiǎn)介_第3頁(yè)
第九章 軟件項(xiàng)目管理與軟件質(zhì)量保證簡(jiǎn)介_第4頁(yè)
第九章 軟件項(xiàng)目管理與軟件質(zhì)量保證簡(jiǎn)介_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件項(xiàng)目管理軟件項(xiàng)目管理 軟件作為人們智力勞動(dòng)的成果,與其他產(chǎn)品軟件作為人們智力勞動(dòng)的成果,與其他產(chǎn)品一樣,不僅取決于所采用的技術(shù)、方法和工具,一樣,不僅取決于所采用的技術(shù)、方法和工具,還取決于計(jì)劃與管理水平。還取決于計(jì)劃與管理水平。 大量軟件開發(fā)的實(shí)踐表明,導(dǎo)致軟件項(xiàng)目失大量軟件開發(fā)的實(shí)踐表明,導(dǎo)致軟件項(xiàng)目失敗的原因常常不是技術(shù)上的問(wèn)題,而是管理上的敗的原因常常不是技術(shù)上的問(wèn)題,而是管理上的問(wèn)題。因此,軟件項(xiàng)目管理顯得越來(lái)越重要。問(wèn)題。因此,軟件項(xiàng)目管理顯得越來(lái)越重要。 本章著重討論本章著重討論項(xiàng)目計(jì)劃、質(zhì)量管理、成本估項(xiàng)目計(jì)劃、質(zhì)量管理、成本估計(jì)等軟件管理問(wèn)題。計(jì)等軟件管理問(wèn)題。9.1 9

2、.1 軟件工程管理的目的與內(nèi)容軟件工程管理的目的與內(nèi)容 軟件項(xiàng)目管理的根本目的是為了讓軟件項(xiàng)目軟件項(xiàng)目管理的根本目的是為了讓軟件項(xiàng)目尤其是大型項(xiàng)目的整個(gè)軟件生命周期(從分析、尤其是大型項(xiàng)目的整個(gè)軟件生命周期(從分析、設(shè)計(jì)、編碼到測(cè)試、維護(hù)全過(guò)程)都能在管理者設(shè)計(jì)、編碼到測(cè)試、維護(hù)全過(guò)程)都能在管理者的控制之下,以預(yù)定成本按期、按質(zhì)的完成軟件的控制之下,以預(yù)定成本按期、按質(zhì)的完成軟件交付給用戶使用。交付給用戶使用。 而研究軟件項(xiàng)目管理為了從已有的成功或失而研究軟件項(xiàng)目管理為了從已有的成功或失敗的案例中總結(jié)出能夠指導(dǎo)今后開發(fā)的通用原則敗的案例中總結(jié)出能夠指導(dǎo)今后開發(fā)的通用原則和方法,同時(shí)避免前人的

3、失誤。和方法,同時(shí)避免前人的失誤。軟件項(xiàng)目管理的內(nèi)容主要包括如下幾個(gè)方面:軟件項(xiàng)目管理的內(nèi)容主要包括如下幾個(gè)方面:人員的組織與管理;人員的組織與管理;軟件度量;軟件度量;軟件項(xiàng)目計(jì)劃;軟件項(xiàng)目計(jì)劃;風(fēng)險(xiǎn)管理;風(fēng)險(xiǎn)管理;軟件質(zhì)量保證;軟件質(zhì)量保證;軟件過(guò)程能力評(píng)估;軟件過(guò)程能力評(píng)估;軟件配置管理等軟件配置管理等。 9.1.2 9.1.2 軟件項(xiàng)目規(guī)模估算軟件項(xiàng)目規(guī)模估算 軟件項(xiàng)目管理過(guò)程從一組項(xiàng)目計(jì)劃活動(dòng)開始,軟件項(xiàng)目管理過(guò)程從一組項(xiàng)目計(jì)劃活動(dòng)開始,而制定計(jì)劃的基礎(chǔ)是而制定計(jì)劃的基礎(chǔ)是工作量估算和完成期限估算工作量估算和完成期限估算。為了估算項(xiàng)目的工作量和完成期限,首先需要估為了估算項(xiàng)目的工作量

4、和完成期限,首先需要估算軟件的規(guī)模。算軟件的規(guī)模。 軟件項(xiàng)目的規(guī)模估算歷來(lái)是比較復(fù)雜的事情,軟件項(xiàng)目的規(guī)模估算歷來(lái)是比較復(fù)雜的事情,因?yàn)檐浖旧淼膹?fù)雜性、歷史經(jīng)驗(yàn)的缺乏、估算因?yàn)檐浖旧淼膹?fù)雜性、歷史經(jīng)驗(yàn)的缺乏、估算工具的缺乏以及一些人為的錯(cuò)誤,導(dǎo)致軟件項(xiàng)目工具的缺乏以及一些人為的錯(cuò)誤,導(dǎo)致軟件項(xiàng)目的規(guī)模估算結(jié)果往往和實(shí)際情況相差甚遠(yuǎn)的規(guī)模估算結(jié)果往往和實(shí)際情況相差甚遠(yuǎn)。9.1.2 軟件項(xiàng)目規(guī)模估算軟件項(xiàng)目規(guī)模估算 代碼行技術(shù)是比較簡(jiǎn)單的定量估算軟件規(guī)模的代碼行技術(shù)是比較簡(jiǎn)單的定量估算軟件規(guī)模的方法。方法。 這種方法依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史這種方法依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù),

5、估計(jì)實(shí)現(xiàn)一個(gè)功能所需要的源程序行數(shù)。當(dāng)數(shù)據(jù),估計(jì)實(shí)現(xiàn)一個(gè)功能所需要的源程序行數(shù)。當(dāng)有以往開發(fā)類似產(chǎn)品的歷史數(shù)據(jù)可供參考時(shí),用這有以往開發(fā)類似產(chǎn)品的歷史數(shù)據(jù)可供參考時(shí),用這種方法估計(jì)出的數(shù)值還是比較準(zhǔn)確的。種方法估計(jì)出的數(shù)值還是比較準(zhǔn)確的。 把實(shí)現(xiàn)每個(gè)功能所需要的源程序行數(shù)累加起來(lái),把實(shí)現(xiàn)每個(gè)功能所需要的源程序行數(shù)累加起來(lái),就可得到實(shí)現(xiàn)整個(gè)軟件所需要的源程序行數(shù)。就可得到實(shí)現(xiàn)整個(gè)軟件所需要的源程序行數(shù)。代碼行技術(shù)代碼行技術(shù) 為了使得對(duì)程序規(guī)模的估計(jì)值更接近實(shí)際值,為了使得對(duì)程序規(guī)模的估計(jì)值更接近實(shí)際值,可以由多名有經(jīng)驗(yàn)的軟件工程師分別做出估計(jì)??梢杂啥嗝薪?jīng)驗(yàn)的軟件工程師分別做出估計(jì)。 每個(gè)人都

6、估計(jì)程序的最小規(guī)模每個(gè)人都估計(jì)程序的最小規(guī)模(a)(a)、最大規(guī)模、最大規(guī)模(b)(b)和最可能的規(guī)模和最可能的規(guī)模(m)(m),分別算出這,分別算出這3 3種規(guī)模的平均值種規(guī)模的平均值, ,和之后,再用下式計(jì)算程序規(guī)模的估計(jì)值:和之后,再用下式計(jì)算程序規(guī)模的估計(jì)值:L=L=(13.1)(13.1) 用代碼行技術(shù)估算軟件規(guī)模時(shí),當(dāng)程序較小時(shí)常用代碼行技術(shù)估算軟件規(guī)模時(shí),當(dāng)程序較小時(shí)常用的單位是代碼行數(shù)(用的單位是代碼行數(shù)(LOCLOC),當(dāng)程序較大時(shí)常用的),當(dāng)程序較大時(shí)常用的單位是千行代碼數(shù)(單位是千行代碼數(shù)(KLOCKLOC)。)。64bma 代碼行技術(shù)代碼行技術(shù) 代碼行技術(shù)的主要優(yōu)點(diǎn)是,

7、代碼是所有軟件開發(fā)代碼行技術(shù)的主要優(yōu)點(diǎn)是,代碼是所有軟件開發(fā)項(xiàng)目都有的項(xiàng)目都有的“產(chǎn)品產(chǎn)品”,而且很容易計(jì)算代碼行數(shù)。,而且很容易計(jì)算代碼行數(shù)。 代碼行技術(shù)的缺點(diǎn)是:源程序僅是軟件配置的一代碼行技術(shù)的缺點(diǎn)是:源程序僅是軟件配置的一個(gè)成分,用它的規(guī)模代表整個(gè)軟件的規(guī)模似乎不太個(gè)成分,用它的規(guī)模代表整個(gè)軟件的規(guī)模似乎不太合理;用不同語(yǔ)言實(shí)現(xiàn)同一個(gè)軟件所需要的代碼行合理;用不同語(yǔ)言實(shí)現(xiàn)同一個(gè)軟件所需要的代碼行數(shù)并不相同;這種方法不適用于非過(guò)程語(yǔ)言。數(shù)并不相同;這種方法不適用于非過(guò)程語(yǔ)言。 為了克服代碼行技術(shù)的缺點(diǎn),人們又提出了功為了克服代碼行技術(shù)的缺點(diǎn),人們又提出了功能點(diǎn)技術(shù)。能點(diǎn)技術(shù)。代碼行技術(shù)代

8、碼行技術(shù) 功能點(diǎn)技術(shù)依據(jù)對(duì)功能點(diǎn)技術(shù)依據(jù)對(duì)軟件信息域特性軟件信息域特性和和軟件復(fù)雜性軟件復(fù)雜性的評(píng)估結(jié)果,估算軟件規(guī)模。這種方法用的評(píng)估結(jié)果,估算軟件規(guī)模。這種方法用功能點(diǎn)功能點(diǎn)(FPFP)為單位度量軟件規(guī)模。)為單位度量軟件規(guī)模。1. 1. 信息域特性信息域特性功能點(diǎn)技術(shù)定義了信息域的功能點(diǎn)技術(shù)定義了信息域的5 5個(gè)特性,分別是個(gè)特性,分別是輸入項(xiàng)數(shù)輸入項(xiàng)數(shù)(Inp(Inp) )、輸出項(xiàng)數(shù)輸出項(xiàng)數(shù)(Out)(Out)、查詢數(shù)查詢數(shù)(Inq(Inq) )、主文件數(shù)主文件數(shù)(Maf(Maf) )外部接口數(shù)外部接口數(shù)(Inf(Inf) )。功能點(diǎn)技術(shù)功能點(diǎn)技術(shù)(1 1) 輸入項(xiàng)數(shù):用戶向軟件輸入的

9、項(xiàng)數(shù),這些輸輸入項(xiàng)數(shù):用戶向軟件輸入的項(xiàng)數(shù),這些輸入給軟件提供面向應(yīng)用的數(shù)據(jù)。輸入不同于查詢,入給軟件提供面向應(yīng)用的數(shù)據(jù)。輸入不同于查詢,后者單獨(dú)計(jì)數(shù),不計(jì)入輸入項(xiàng)數(shù)中。后者單獨(dú)計(jì)數(shù),不計(jì)入輸入項(xiàng)數(shù)中。(2 2) 輸出項(xiàng)數(shù)輸出項(xiàng)數(shù): :軟件向用戶輸出的項(xiàng)數(shù),它們向軟件向用戶輸出的項(xiàng)數(shù),它們向用戶提供面向應(yīng)用的信息,例如,報(bào)表和出錯(cuò)信息用戶提供面向應(yīng)用的信息,例如,報(bào)表和出錯(cuò)信息等。報(bào)表內(nèi)的數(shù)據(jù)項(xiàng)不單獨(dú)計(jì)數(shù)。等。報(bào)表內(nèi)的數(shù)據(jù)項(xiàng)不單獨(dú)計(jì)數(shù)。(3 3) 查詢數(shù):查詢即是一次聯(lián)機(jī)輸入,它導(dǎo)致軟查詢數(shù):查詢即是一次聯(lián)機(jī)輸入,它導(dǎo)致軟件以聯(lián)機(jī)輸出方式產(chǎn)生某種即時(shí)響應(yīng)。件以聯(lián)機(jī)輸出方式產(chǎn)生某種即時(shí)響應(yīng)。功能

10、點(diǎn)技術(shù)功能點(diǎn)技術(shù)(4 4)主文件數(shù):邏輯主文件(即數(shù)據(jù)的一個(gè)邏輯)主文件數(shù):邏輯主文件(即數(shù)據(jù)的一個(gè)邏輯組合,它可能是大型數(shù)據(jù)庫(kù)的一部分或是一個(gè)獨(dú)立組合,它可能是大型數(shù)據(jù)庫(kù)的一部分或是一個(gè)獨(dú)立的文件)的數(shù)目。的文件)的數(shù)目。 (5 5)外部接口數(shù))外部接口數(shù): :機(jī)器可讀的全部接口(例如,磁機(jī)器可讀的全部接口(例如,磁盤或磁帶上的數(shù)據(jù)文件)的數(shù)量,用這些接口把信盤或磁帶上的數(shù)據(jù)文件)的數(shù)量,用這些接口把信息傳送給另一個(gè)系統(tǒng)。息傳送給另一個(gè)系統(tǒng)。功能點(diǎn)技術(shù)功能點(diǎn)技術(shù)9.1.3 9.1.3 項(xiàng)目計(jì)劃項(xiàng)目計(jì)劃 項(xiàng)目計(jì)劃管理是指在規(guī)定的時(shí)間內(nèi),擬定出項(xiàng)目計(jì)劃管理是指在規(guī)定的時(shí)間內(nèi),擬定出合理且經(jīng)濟(jì)的進(jìn)

11、度計(jì)劃(包括多級(jí)管理的子計(jì)合理且經(jīng)濟(jì)的進(jìn)度計(jì)劃(包括多級(jí)管理的子計(jì)劃),在執(zhí)行該計(jì)劃的過(guò)程中,經(jīng)常要檢查實(shí)際劃),在執(zhí)行該計(jì)劃的過(guò)程中,經(jīng)常要檢查實(shí)際進(jìn)度是否按計(jì)劃要求進(jìn)行,若出現(xiàn)偏差,需要及進(jìn)度是否按計(jì)劃要求進(jìn)行,若出現(xiàn)偏差,需要及時(shí)找出原因,采取必要的措施或調(diào)整、修改原計(jì)時(shí)找出原因,采取必要的措施或調(diào)整、修改原計(jì)劃,直至項(xiàng)目完成。劃,直至項(xiàng)目完成。 任何計(jì)劃都是解決三個(gè)方面的問(wèn)題:一是確任何計(jì)劃都是解決三個(gè)方面的問(wèn)題:一是確定組織目標(biāo),二是確定為達(dá)成目標(biāo)而應(yīng)采取的行定組織目標(biāo),二是確定為達(dá)成目標(biāo)而應(yīng)采取的行動(dòng)時(shí)序,三是確定行動(dòng)所需的資源比例。動(dòng)時(shí)序,三是確定行動(dòng)所需的資源比例。1.項(xiàng)目計(jì)劃

12、的內(nèi)容項(xiàng)目計(jì)劃的內(nèi)容確定目標(biāo)和范圍確定目標(biāo)和范圍資源配置資源配置成本和進(jìn)度估算成本和進(jìn)度估算里程碑里程碑2.進(jìn)度計(jì)劃方法進(jìn)度計(jì)劃方法 進(jìn)度安排的好壞往往會(huì)影響整個(gè)項(xiàng)目的按期進(jìn)度安排的好壞往往會(huì)影響整個(gè)項(xiàng)目的按期完成,因此這一環(huán)節(jié)是十分重要的。制定軟件進(jìn)完成,因此這一環(huán)節(jié)是十分重要的。制定軟件進(jìn)度與其他工程沒(méi)有很大的區(qū)別,其主要的方法有度與其他工程沒(méi)有很大的區(qū)別,其主要的方法有: 甘特圖甘特圖 工程網(wǎng)絡(luò)圖工程網(wǎng)絡(luò)圖 關(guān)鍵路徑法關(guān)鍵路徑法甘特圖甘特圖 也叫做線條圖或橫道圖。橫軸表示時(shí)間,縱軸表也叫做線條圖或橫道圖。橫軸表示時(shí)間,縱軸表示要安排的活動(dòng),線條表示在整個(gè)期間上計(jì)劃的示要安排的活動(dòng),線條表

13、示在整個(gè)期間上計(jì)劃的和實(shí)際的活動(dòng)完成情況。甘特圖直觀地表明任務(wù)和實(shí)際的活動(dòng)完成情況。甘特圖直觀地表明任務(wù)計(jì)劃在什么時(shí)候進(jìn)行,以及實(shí)際進(jìn)展與計(jì)劃要求計(jì)劃在什么時(shí)候進(jìn)行,以及實(shí)際進(jìn)展與計(jì)劃要求的對(duì)比。的對(duì)比。 甘特圖的優(yōu)點(diǎn)是簡(jiǎn)單、明了、直觀,易于編制,甘特圖的優(yōu)點(diǎn)是簡(jiǎn)單、明了、直觀,易于編制,因此到目前為止仍然是小型項(xiàng)目中常用的工具。因此到目前為止仍然是小型項(xiàng)目中常用的工具。即使在大型工程項(xiàng)目中,它也是高級(jí)管理層了解即使在大型工程項(xiàng)目中,它也是高級(jí)管理層了解全局、基層安排進(jìn)度時(shí)有用的工具。全局、基層安排進(jìn)度時(shí)有用的工具。例子例子 假設(shè)有一座陳舊的矩形木板房需要重新油漆。假設(shè)有一座陳舊的矩形木板房需

14、要重新油漆。這項(xiàng)工作必須分這項(xiàng)工作必須分3 3步完成:步完成: 首先刮掉舊漆,然后首先刮掉舊漆,然后刷上新漆,最后清除濺在窗戶上的油漆。假設(shè)一刷上新漆,最后清除濺在窗戶上的油漆。假設(shè)一共分配了共分配了1515名工人去完成這項(xiàng)工作,然而工具卻名工人去完成這項(xiàng)工作,然而工具卻很有限:很有限: 只有只有5 5把刮舊漆用的刮板,把刮舊漆用的刮板,5 5把刷漆用的把刷漆用的刷子,刷子,5 5把清除濺在窗戶上的油漆用的小刮刀。怎把清除濺在窗戶上的油漆用的小刮刀。怎樣安排才能使工作進(jìn)行得更有效呢樣安排才能使工作進(jìn)行得更有效呢? ? 一種做法是首先刮掉四面墻壁上的舊漆,然后一種做法是首先刮掉四面墻壁上的舊漆,

15、然后給每面墻壁都刷上新漆,最后清除濺在每個(gè)窗戶給每面墻壁都刷上新漆,最后清除濺在每個(gè)窗戶上的油漆。顯然這是效率最低的做法,因?yàn)榭偣采系挠推帷o@然這是效率最低的做法,因?yàn)榭偣灿杏?515名工人,然而每種工具卻只有名工人,然而每種工具卻只有5 5件,這樣安排件,這樣安排工作在任何時(shí)候都有工作在任何時(shí)候都有1010名工人閑著沒(méi)活干。名工人閑著沒(méi)活干。 讀者可能已經(jīng)想到,應(yīng)該采用讀者可能已經(jīng)想到,應(yīng)該采用“流水作業(yè)法流水作業(yè)法”,也就是說(shuō),首先由也就是說(shuō),首先由5 5名工人用刮板刮掉第名工人用刮板刮掉第1 1面墻上面墻上的舊漆的舊漆( (這時(shí)其余這時(shí)其余1010名工人休息名工人休息) ),當(dāng)?shù)?,?dāng)?shù)?

16、 1面墻刮凈面墻刮凈后,另外后,另外5 5名工人立即用刷子給這面墻刷新漆名工人立即用刷子給這面墻刷新漆( (與與此同時(shí)拿刮板的此同時(shí)拿刮板的5 5名工人轉(zhuǎn)去刮第名工人轉(zhuǎn)去刮第2 2面墻上的舊漆面墻上的舊漆) ),一旦刮舊漆的工人轉(zhuǎn)到第一旦刮舊漆的工人轉(zhuǎn)到第3 3面墻而且刷新漆的工人面墻而且刷新漆的工人轉(zhuǎn)到第轉(zhuǎn)到第2 2面墻以后,余下的面墻以后,余下的5 5名工人立即拿起刮刀名工人立即拿起刮刀去清除濺在第去清除濺在第1 1面墻窗戶上的油漆,面墻窗戶上的油漆,。這樣安。這樣安排每個(gè)工人都有活干,因此能夠在較短的時(shí)間內(nèi)排每個(gè)工人都有活干,因此能夠在較短的時(shí)間內(nèi)完成任務(wù)完成任務(wù) 假設(shè)木板房的第假設(shè)木板

17、房的第2 2、4 4兩面墻的長(zhǎng)度比第兩面墻的長(zhǎng)度比第1 1、3 3兩面墻的長(zhǎng)度長(zhǎng)一倍,此外,不同工作需要用的兩面墻的長(zhǎng)度長(zhǎng)一倍,此外,不同工作需要用的時(shí)間長(zhǎng)短也不同,刷新漆最費(fèi)時(shí)間,其次是刮舊時(shí)間長(zhǎng)短也不同,刷新漆最費(fèi)時(shí)間,其次是刮舊漆,清理漆,清理( (即清除濺在窗戶上的油漆即清除濺在窗戶上的油漆) )需要的時(shí)間需要的時(shí)間最少。表列出了估計(jì)每道工序需要用的時(shí)間。最少。表列出了估計(jì)每道工序需要用的時(shí)間。 可以使用圖中的可以使用圖中的GanttGantt圖描繪上述流水作業(yè)過(guò)圖描繪上述流水作業(yè)過(guò)程:程: 在時(shí)間為零時(shí)開始刮第在時(shí)間為零時(shí)開始刮第1 1面墻上的舊漆,兩面墻上的舊漆,兩小時(shí)后刮舊漆的工

18、人轉(zhuǎn)去刮第小時(shí)后刮舊漆的工人轉(zhuǎn)去刮第2 2面墻,同時(shí)另面墻,同時(shí)另5 5名名工人開始給第工人開始給第1 1面墻刷新漆,每當(dāng)給一面墻刷完新面墻刷新漆,每當(dāng)給一面墻刷完新漆之后,第漆之后,第3 3組的組的5 5名工人立即清除濺在這面墻窗名工人立即清除濺在這面墻窗戶上的漆。從圖戶上的漆。從圖13.113.1可以看出可以看出1212小時(shí)后刮完所有小時(shí)后刮完所有舊漆,舊漆,2020小時(shí)后完成所有墻壁的刷漆工作,再過(guò)小時(shí)后完成所有墻壁的刷漆工作,再過(guò)2 2小時(shí)后清理工作結(jié)束。因此全部工程在小時(shí)后清理工作結(jié)束。因此全部工程在2222小時(shí)后小時(shí)后結(jié)束,如果用前述的第一種做法,則需要結(jié)束,如果用前述的第一種做法

19、,則需要3636小時(shí)。小時(shí)。舊木板房刷漆工程的舊木板房刷漆工程的Gantt圖圖 上一小節(jié)介紹的上一小節(jié)介紹的GanttGantt圖能很形象地描繪任務(wù)分圖能很形象地描繪任務(wù)分解情況,以及每個(gè)子任務(wù)解情況,以及每個(gè)子任務(wù)( (作業(yè)作業(yè)) )的開始時(shí)間和結(jié)束的開始時(shí)間和結(jié)束時(shí)間,因此是進(jìn)度計(jì)劃和進(jìn)度管理的有力工具。它時(shí)間,因此是進(jìn)度計(jì)劃和進(jìn)度管理的有力工具。它具有直觀簡(jiǎn)明和容易掌握、容易繪制的優(yōu)點(diǎn),但是具有直觀簡(jiǎn)明和容易掌握、容易繪制的優(yōu)點(diǎn),但是GanttGantt圖也有圖也有3 3個(gè)主要缺點(diǎn):個(gè)主要缺點(diǎn): (1) (1) 不能顯式地描繪各項(xiàng)不能顯式地描繪各項(xiàng)作業(yè)彼此間的依賴關(guān)系作業(yè)彼此間的依賴關(guān)系

20、;(2) (2) 進(jìn)度計(jì)劃的進(jìn)度計(jì)劃的關(guān)鍵部分不明確關(guān)鍵部分不明確,難于判定哪些部,難于判定哪些部分應(yīng)當(dāng)是主攻和主控的對(duì)象;分應(yīng)當(dāng)是主攻和主控的對(duì)象;(3) (3) 計(jì)劃中有潛力的部分及潛力的大小不明確,往計(jì)劃中有潛力的部分及潛力的大小不明確,往往造成往造成潛力的浪費(fèi)潛力的浪費(fèi)。工程網(wǎng)絡(luò)工程網(wǎng)絡(luò) 當(dāng)把一個(gè)工程項(xiàng)目分解成許多子任務(wù),并且當(dāng)把一個(gè)工程項(xiàng)目分解成許多子任務(wù),并且它們彼此間的依賴關(guān)系又比較復(fù)雜時(shí),僅僅用它們彼此間的依賴關(guān)系又比較復(fù)雜時(shí),僅僅用GanttGantt圖作為安排進(jìn)度的工具是不夠的,不僅難于圖作為安排進(jìn)度的工具是不夠的,不僅難于做出既節(jié)省資源又保證進(jìn)度的計(jì)劃,而且還容易做出既節(jié)

21、省資源又保證進(jìn)度的計(jì)劃,而且還容易發(fā)生差錯(cuò)。發(fā)生差錯(cuò)。 工程網(wǎng)絡(luò)是制定進(jìn)度計(jì)劃時(shí)另一種常用的圖形工程網(wǎng)絡(luò)是制定進(jìn)度計(jì)劃時(shí)另一種常用的圖形工具,它同樣能描繪任務(wù)分解情況以及每項(xiàng)作業(yè)工具,它同樣能描繪任務(wù)分解情況以及每項(xiàng)作業(yè)的開始時(shí)間和結(jié)束時(shí)間,此外,的開始時(shí)間和結(jié)束時(shí)間,此外,它還顯式地描繪它還顯式地描繪各個(gè)作業(yè)彼此間的依賴關(guān)系各個(gè)作業(yè)彼此間的依賴關(guān)系。因此,工程網(wǎng)絡(luò)是。因此,工程網(wǎng)絡(luò)是系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的強(qiáng)有力的工具。系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的強(qiáng)有力的工具。工程網(wǎng)絡(luò)工程網(wǎng)絡(luò)工程網(wǎng)絡(luò)工程網(wǎng)絡(luò) 在工程網(wǎng)絡(luò)中用箭頭表示作業(yè)在工程網(wǎng)絡(luò)中用箭頭表示作業(yè)( (例如,刮舊漆,例如,刮舊漆,刷新漆,清理等刷新漆,清

22、理等) ),用圓圈表示事件,用圓圈表示事件( (一項(xiàng)作業(yè)開一項(xiàng)作業(yè)開始或結(jié)束始或結(jié)束) )。注意,事件僅僅是可以明確定義的時(shí)。注意,事件僅僅是可以明確定義的時(shí)間點(diǎn),它并不消耗時(shí)間和資源。作業(yè)通常既消耗間點(diǎn),它并不消耗時(shí)間和資源。作業(yè)通常既消耗資源又需要持續(xù)一定時(shí)間。資源又需要持續(xù)一定時(shí)間。 下圖是舊木板房刷漆工程的工程網(wǎng)絡(luò)。圖中表下圖是舊木板房刷漆工程的工程網(wǎng)絡(luò)。圖中表示刮第示刮第1 1面墻上舊漆的作業(yè)開始于事件面墻上舊漆的作業(yè)開始于事件1 1,結(jié)束于,結(jié)束于事件事件2 2。用開始事件和結(jié)束事件的編號(hào)標(biāo)識(shí)一個(gè)作。用開始事件和結(jié)束事件的編號(hào)標(biāo)識(shí)一個(gè)作業(yè),因此業(yè),因此“刮第刮第1 1面墻上舊漆面墻

23、上舊漆”是作業(yè)是作業(yè)1 12 2。舊木板房刷漆工程的工程網(wǎng)絡(luò)舊木板房刷漆工程的工程網(wǎng)絡(luò) 在工程網(wǎng)絡(luò)中的一個(gè)事件,如果既有箭頭進(jìn)入在工程網(wǎng)絡(luò)中的一個(gè)事件,如果既有箭頭進(jìn)入又有箭頭離開,則它既是某些作業(yè)的結(jié)束又是另又有箭頭離開,則它既是某些作業(yè)的結(jié)束又是另一些作業(yè)的開始。例如,圖中事件一些作業(yè)的開始。例如,圖中事件2 2既是作業(yè)既是作業(yè)1 12(2(刮第刮第1 1面墻上的舊漆面墻上的舊漆) )的結(jié)束,又是作業(yè)的結(jié)束,又是作業(yè)2 23(3(刮刮第第2 2面墻上舊漆面墻上舊漆) )和作業(yè)和作業(yè)2 24(4(給第給第1 1面墻刷新漆面墻刷新漆) )的的開始。也就是說(shuō),只有第開始。也就是說(shuō),只有第1 1面

24、墻上的舊漆刮完之后,面墻上的舊漆刮完之后,才能開始刮第才能開始刮第2 2面墻上舊漆和給第面墻上舊漆和給第1 1面墻刷新漆這面墻刷新漆這兩個(gè)作業(yè)。因此,工程網(wǎng)絡(luò)顯式地表示了作業(yè)之兩個(gè)作業(yè)。因此,工程網(wǎng)絡(luò)顯式地表示了作業(yè)之間的依賴關(guān)系。間的依賴關(guān)系。 在圖中還有一些虛線箭頭,它們表示虛擬作業(yè),在圖中還有一些虛線箭頭,它們表示虛擬作業(yè),也就是事實(shí)上并不存在的作業(yè)。引入虛擬作業(yè)是也就是事實(shí)上并不存在的作業(yè)。引入虛擬作業(yè)是為了顯式地表示作業(yè)之間的依賴關(guān)系。例如,事為了顯式地表示作業(yè)之間的依賴關(guān)系。例如,事件件4 4既是給第既是給第1 1面墻刷新漆結(jié)束,又是給第面墻刷新漆結(jié)束,又是給第2 2面墻刷面墻刷新

25、漆開始新漆開始( (作業(yè)作業(yè)4 46)6)。但是,在開始給第。但是,在開始給第2 2面墻刷面墻刷新漆之前,不僅必須已經(jīng)給第新漆之前,不僅必須已經(jīng)給第1 1面墻刷完了新漆,面墻刷完了新漆,而且第而且第2 2面墻上的舊漆也必須已經(jīng)刮凈面墻上的舊漆也必須已經(jīng)刮凈( (事件事件3)3)。也就是說(shuō),在事件也就是說(shuō),在事件3 3和事件和事件4 4之間有依賴關(guān)系,或之間有依賴關(guān)系,或者說(shuō)在作業(yè)者說(shuō)在作業(yè)2 23(3(刮第刮第2 2面墻上舊漆面墻上舊漆) )和作業(yè)和作業(yè)4 46(6(給第給第2 2面墻刷新漆面墻刷新漆) )之間有依賴關(guān)系,虛擬作業(yè)之間有依賴關(guān)系,虛擬作業(yè)3 34 4明確地表示了這種依賴關(guān)系。注

26、意,虛擬作明確地表示了這種依賴關(guān)系。注意,虛擬作業(yè)既不消耗資源也不需要時(shí)間。業(yè)既不消耗資源也不需要時(shí)間。 畫出類似圖那樣的工程網(wǎng)絡(luò)之后,系統(tǒng)分析員畫出類似圖那樣的工程網(wǎng)絡(luò)之后,系統(tǒng)分析員就可以借助它的幫助估算工程進(jìn)度了。為此需要在就可以借助它的幫助估算工程進(jìn)度了。為此需要在工程網(wǎng)絡(luò)上增加一些必要的信息。工程網(wǎng)絡(luò)上增加一些必要的信息。 首先,把每個(gè)作業(yè)估計(jì)需要使用的時(shí)間寫在表首先,把每個(gè)作業(yè)估計(jì)需要使用的時(shí)間寫在表示該項(xiàng)作業(yè)的箭頭上方。注意,箭頭長(zhǎng)度和它代表示該項(xiàng)作業(yè)的箭頭上方。注意,箭頭長(zhǎng)度和它代表的作業(yè)持續(xù)時(shí)間沒(méi)有關(guān)系,箭頭僅表示依賴關(guān)系,的作業(yè)持續(xù)時(shí)間沒(méi)有關(guān)系,箭頭僅表示依賴關(guān)系,它上方的

27、數(shù)字才表示作業(yè)的持續(xù)時(shí)間。它上方的數(shù)字才表示作業(yè)的持續(xù)時(shí)間。估算工程進(jìn)度估算工程進(jìn)度 其次,為每個(gè)事件計(jì)算下述兩個(gè)統(tǒng)計(jì)數(shù)字:其次,為每個(gè)事件計(jì)算下述兩個(gè)統(tǒng)計(jì)數(shù)字: 最早時(shí)刻最早時(shí)刻EETEET和最遲時(shí)刻和最遲時(shí)刻LETLET。這兩個(gè)數(shù)字將分別。這兩個(gè)數(shù)字將分別寫在表示事件的圓圈的右上角和右下角,如圖左寫在表示事件的圓圈的右上角和右下角,如圖左下角的符號(hào)所示。下角的符號(hào)所示。 事件的最早時(shí)刻是該事件可以發(fā)生的最早時(shí)間。事件的最早時(shí)刻是該事件可以發(fā)生的最早時(shí)間。通常工程網(wǎng)絡(luò)中第一個(gè)事件的最早時(shí)刻定義為零,通常工程網(wǎng)絡(luò)中第一個(gè)事件的最早時(shí)刻定義為零,其他事件的最早時(shí)刻在工程網(wǎng)絡(luò)上從左至右按事其他事件

28、的最早時(shí)刻在工程網(wǎng)絡(luò)上從左至右按事件發(fā)生順序計(jì)算。計(jì)算最早時(shí)刻件發(fā)生順序計(jì)算。計(jì)算最早時(shí)刻EETEET使用下述使用下述3 3條條簡(jiǎn)單規(guī)則:簡(jiǎn)單規(guī)則:舊木板房刷漆工程的完整的工程網(wǎng)絡(luò)舊木板房刷漆工程的完整的工程網(wǎng)絡(luò)(1) (1) 考慮進(jìn)入該事件的所有作業(yè);考慮進(jìn)入該事件的所有作業(yè);(2) (2) 對(duì)于每個(gè)作業(yè)都計(jì)算它的持續(xù)時(shí)間與起始事件對(duì)于每個(gè)作業(yè)都計(jì)算它的持續(xù)時(shí)間與起始事件的的EETEET之和;之和;(3) (3) 選取上述和數(shù)中的選取上述和數(shù)中的最大值最大值作為該事件的最早時(shí)作為該事件的最早時(shí)刻刻EETEET。 按照這種方法,不難沿著工程網(wǎng)絡(luò)從左至右順按照這種方法,不難沿著工程網(wǎng)絡(luò)從左至右順

29、序算出每個(gè)事件的最早時(shí)刻,計(jì)算結(jié)果標(biāo)在圖的序算出每個(gè)事件的最早時(shí)刻,計(jì)算結(jié)果標(biāo)在圖的工程網(wǎng)絡(luò)中工程網(wǎng)絡(luò)中( (每個(gè)圓圈內(nèi)右上角的數(shù)字每個(gè)圓圈內(nèi)右上角的數(shù)字) )。 事件的最遲時(shí)刻是在不影響工程竣工時(shí)間的前提下,事件的最遲時(shí)刻是在不影響工程竣工時(shí)間的前提下,該事件最晚可以發(fā)生的時(shí)刻。按慣例,最后一個(gè)事件該事件最晚可以發(fā)生的時(shí)刻。按慣例,最后一個(gè)事件( (工工程結(jié)束程結(jié)束) )的最遲時(shí)刻就是它的最早時(shí)刻。其他事件的最遲的最遲時(shí)刻就是它的最早時(shí)刻。其他事件的最遲時(shí)刻在工程網(wǎng)絡(luò)上從右至左按逆作業(yè)流的方向計(jì)算。計(jì)算時(shí)刻在工程網(wǎng)絡(luò)上從右至左按逆作業(yè)流的方向計(jì)算。計(jì)算最遲時(shí)刻最遲時(shí)刻LETLET使用下述使用

30、下述3 3條規(guī)則:條規(guī)則: (1) (1) 考慮離開該事件的所有作業(yè);考慮離開該事件的所有作業(yè);(2) (2) 從每個(gè)作業(yè)的結(jié)束事件的最遲時(shí)刻中減去該作業(yè)的持續(xù)從每個(gè)作業(yè)的結(jié)束事件的最遲時(shí)刻中減去該作業(yè)的持續(xù)時(shí)間;時(shí)間;(3) (3) 選取上述差數(shù)中的選取上述差數(shù)中的最小值最小值作為該事件的最遲時(shí)刻作為該事件的最遲時(shí)刻LETLET。圖中每個(gè)圓圈內(nèi)右下角的數(shù)字就是該事件的最遲時(shí)刻。圖中每個(gè)圓圈內(nèi)右下角的數(shù)字就是該事件的最遲時(shí)刻。 圖中有幾個(gè)事件的圖中有幾個(gè)事件的最早時(shí)刻和最遲時(shí)刻相同最早時(shí)刻和最遲時(shí)刻相同,這,這些事件定義了些事件定義了關(guān)鍵路徑關(guān)鍵路徑,在圖中關(guān)鍵路徑用粗線箭,在圖中關(guān)鍵路徑用粗

31、線箭頭表示。關(guān)鍵路徑上的事件頭表示。關(guān)鍵路徑上的事件( (關(guān)鍵事件關(guān)鍵事件) )必須準(zhǔn)時(shí)發(fā)必須準(zhǔn)時(shí)發(fā)生,組成關(guān)鍵路徑的作業(yè)生,組成關(guān)鍵路徑的作業(yè)( (關(guān)鍵作業(yè)關(guān)鍵作業(yè)) )的實(shí)際持續(xù)時(shí)的實(shí)際持續(xù)時(shí)間不能超過(guò)估計(jì)的持續(xù)時(shí)間,否則工程就不能準(zhǔn)時(shí)間不能超過(guò)估計(jì)的持續(xù)時(shí)間,否則工程就不能準(zhǔn)時(shí)結(jié)束。結(jié)束。 工程項(xiàng)目的管理人員應(yīng)該密切注視關(guān)鍵作業(yè)的工程項(xiàng)目的管理人員應(yīng)該密切注視關(guān)鍵作業(yè)的進(jìn)展情況,如果關(guān)鍵事件出現(xiàn)的時(shí)間比預(yù)計(jì)的時(shí)間進(jìn)展情況,如果關(guān)鍵事件出現(xiàn)的時(shí)間比預(yù)計(jì)的時(shí)間晚,則會(huì)使最終完成項(xiàng)目的時(shí)間拖后;如果希望縮晚,則會(huì)使最終完成項(xiàng)目的時(shí)間拖后;如果希望縮短工期,只有往關(guān)鍵作業(yè)中增加資源才會(huì)有效果。短

32、工期,只有往關(guān)鍵作業(yè)中增加資源才會(huì)有效果。關(guān)鍵路徑關(guān)鍵路徑人員組織人員組織美國(guó)美國(guó)IBMIBM公司在公司在2020世紀(jì)世紀(jì)7070年代初期開始采用主程序年代初期開始采用主程序員組的組織方式。采用這種組織方式主要出于下述員組的組織方式。采用這種組織方式主要出于下述幾點(diǎn)考慮:幾點(diǎn)考慮: (1) (1) 軟件開發(fā)人員多數(shù)比較缺乏經(jīng)驗(yàn);軟件開發(fā)人員多數(shù)比較缺乏經(jīng)驗(yàn);(2) (2) 程序設(shè)計(jì)過(guò)程中有許多事務(wù)性的工作,例如,程序設(shè)計(jì)過(guò)程中有許多事務(wù)性的工作,例如,大量信息的存儲(chǔ)和更新;大量信息的存儲(chǔ)和更新;(3) (3) 多渠道通信很費(fèi)時(shí)間,將降低程序員的生產(chǎn)率。多渠道通信很費(fèi)時(shí)間,將降低程序員的生產(chǎn)率。

33、主程序員組主程序員組 主程序員組用經(jīng)驗(yàn)多、技術(shù)好、能力強(qiáng)的程序主程序員組用經(jīng)驗(yàn)多、技術(shù)好、能力強(qiáng)的程序員作為主程序員,員作為主程序員, 同時(shí),利用人和計(jì)算機(jī)在事務(wù)性工作方面給主同時(shí),利用人和計(jì)算機(jī)在事務(wù)性工作方面給主程序員提供充分支持,而且所有通信都通過(guò)一兩個(gè)程序員提供充分支持,而且所有通信都通過(guò)一兩個(gè)人進(jìn)行。人進(jìn)行。 這種組織方式類似于外科手術(shù)小組的組織:主這種組織方式類似于外科手術(shù)小組的組織:主刀大夫?qū)κ中g(shù)全面負(fù)責(zé),并且完成制訂手術(shù)方案、刀大夫?qū)κ中g(shù)全面負(fù)責(zé),并且完成制訂手術(shù)方案、開刀等關(guān)鍵工作,同時(shí)又有麻醉師、護(hù)士長(zhǎng)等技術(shù)開刀等關(guān)鍵工作,同時(shí)又有麻醉師、護(hù)士長(zhǎng)等技術(shù)熟練的專門人員協(xié)助和配

34、合他的工作。此外,必要熟練的專門人員協(xié)助和配合他的工作。此外,必要時(shí)手術(shù)組還要請(qǐng)其他領(lǐng)域的專家(例如,心臟科醫(yī)時(shí)手術(shù)組還要請(qǐng)其他領(lǐng)域的專家(例如,心臟科醫(yī)生或婦產(chǎn)科醫(yī)生)協(xié)助。生或婦產(chǎn)科醫(yī)生)協(xié)助。主程序員組主程序員組上述比喻突出了主程序員組的兩個(gè)重要特性:上述比喻突出了主程序員組的兩個(gè)重要特性: (1 1) 專業(yè)化。該組每名成員僅完成他們受過(guò)專業(yè)專業(yè)化。該組每名成員僅完成他們受過(guò)專業(yè)訓(xùn)練的那些工作。訓(xùn)練的那些工作。(2 2) 層次性。主刀大夫指揮每名組員工作,并對(duì)層次性。主刀大夫指揮每名組員工作,并對(duì)手術(shù)全面負(fù)責(zé)。手術(shù)全面負(fù)責(zé)。 當(dāng)時(shí),典型的主程序員組的組織形式如圖所示。當(dāng)時(shí),典型的主程序員

35、組的組織形式如圖所示。該組由主程序員、后備程序員、編程秘書以及該組由主程序員、后備程序員、編程秘書以及1313名程序員組成。在必要的時(shí)候,該組還有其他領(lǐng)域名程序員組成。在必要的時(shí)候,該組還有其他領(lǐng)域的專家協(xié)助。的專家協(xié)助。主程序員組主程序員組主程序員組的結(jié)構(gòu)主程序員組主程序員組主程序員組核心人員的分工如下所述:主程序員組核心人員的分工如下所述: (1 1)主程序員既是成功的管理人員又是經(jīng)驗(yàn)豐富、)主程序員既是成功的管理人員又是經(jīng)驗(yàn)豐富、技術(shù)好、能力強(qiáng)的高級(jí)程序員,負(fù)責(zé)體系結(jié)構(gòu)設(shè)計(jì)技術(shù)好、能力強(qiáng)的高級(jí)程序員,負(fù)責(zé)體系結(jié)構(gòu)設(shè)計(jì)和關(guān)鍵部分(或復(fù)雜部分)的詳細(xì)設(shè)計(jì),并且負(fù)責(zé)和關(guān)鍵部分(或復(fù)雜部分)的詳

36、細(xì)設(shè)計(jì),并且負(fù)責(zé)指導(dǎo)其他程序員完成詳細(xì)設(shè)計(jì)和編碼工作。指導(dǎo)其他程序員完成詳細(xì)設(shè)計(jì)和編碼工作。 如圖所示,程序員之間沒(méi)有通信渠道,所有接如圖所示,程序員之間沒(méi)有通信渠道,所有接口問(wèn)題都由主程序員處理。主程序員對(duì)每行代碼的口問(wèn)題都由主程序員處理。主程序員對(duì)每行代碼的質(zhì)量負(fù)責(zé),因此,他還要對(duì)組內(nèi)其他成員的工作成質(zhì)量負(fù)責(zé),因此,他還要對(duì)組內(nèi)其他成員的工作成果進(jìn)行復(fù)查。果進(jìn)行復(fù)查。主程序員組主程序員組(2 2) 后備程序員也應(yīng)該技術(shù)熟練而且富于經(jīng)驗(yàn),后備程序員也應(yīng)該技術(shù)熟練而且富于經(jīng)驗(yàn),他協(xié)助主程序員工作并且在必要時(shí)(例如,主程序他協(xié)助主程序員工作并且在必要時(shí)(例如,主程序員生病、出差或員生病、出差或“

37、跳槽跳槽”)接替主程序員的工作。)接替主程序員的工作。因此,后備程序員必須在各方面都和主程序員一樣因此,后備程序員必須在各方面都和主程序員一樣優(yōu)秀,并且對(duì)本項(xiàng)目的了解也應(yīng)該和主程序員一樣優(yōu)秀,并且對(duì)本項(xiàng)目的了解也應(yīng)該和主程序員一樣深入。平時(shí),后備程序員的工作主要是,設(shè)計(jì)測(cè)試深入。平時(shí),后備程序員的工作主要是,設(shè)計(jì)測(cè)試方案、分析測(cè)試結(jié)果及獨(dú)立于設(shè)計(jì)過(guò)程的其他工作。方案、分析測(cè)試結(jié)果及獨(dú)立于設(shè)計(jì)過(guò)程的其他工作。(3 3) 編程秘書負(fù)責(zé)完成與項(xiàng)目有關(guān)的全部事務(wù)性編程秘書負(fù)責(zé)完成與項(xiàng)目有關(guān)的全部事務(wù)性工作,例如,維護(hù)項(xiàng)目資料庫(kù)和項(xiàng)目文檔,編譯、工作,例如,維護(hù)項(xiàng)目資料庫(kù)和項(xiàng)目文檔,編譯、鏈接、執(zhí)行源程

38、序和測(cè)試用例。鏈接、執(zhí)行源程序和測(cè)試用例。主程序員組主程序員組 民主制程序員組的一個(gè)重要特點(diǎn)是,小組成員民主制程序員組的一個(gè)重要特點(diǎn)是,小組成員完全平等,享有充分民主,通過(guò)協(xié)商做出技術(shù)決策。完全平等,享有充分民主,通過(guò)協(xié)商做出技術(shù)決策。 因此,小組成員之間的通信是平行的。程序設(shè)計(jì)因此,小組成員之間的通信是平行的。程序設(shè)計(jì)小組的人數(shù)不能太多小組的人數(shù)不能太多, ,否則組員間彼此通信的時(shí)間否則組員間彼此通信的時(shí)間將多于程序設(shè)計(jì)時(shí)間。將多于程序設(shè)計(jì)時(shí)間。 此外此外, ,通常不能把一個(gè)軟件系統(tǒng)劃分成大量獨(dú)立通常不能把一個(gè)軟件系統(tǒng)劃分成大量獨(dú)立的單元的單元, ,因此因此, ,如果程序設(shè)計(jì)小組人數(shù)太多如果

39、程序設(shè)計(jì)小組人數(shù)太多, ,則每個(gè)則每個(gè)組員所負(fù)責(zé)開發(fā)的程序單元與系統(tǒng)其他部分的界面組員所負(fù)責(zé)開發(fā)的程序單元與系統(tǒng)其他部分的界面將是復(fù)雜的將是復(fù)雜的, ,不僅出現(xiàn)接口錯(cuò)誤的可能性增加不僅出現(xiàn)接口錯(cuò)誤的可能性增加, ,而且而且軟件測(cè)試將既困難又費(fèi)時(shí)間。軟件測(cè)試將既困難又費(fèi)時(shí)間。民主制程序員組民主制程序員組 一般說(shuō)來(lái),程序設(shè)計(jì)小組的規(guī)模應(yīng)該比較小一般說(shuō)來(lái),程序設(shè)計(jì)小組的規(guī)模應(yīng)該比較小, ,以以2 28 8名成員為宜。如果項(xiàng)目規(guī)模很大名成員為宜。如果項(xiàng)目規(guī)模很大, ,用一個(gè)小組用一個(gè)小組不能在預(yù)定時(shí)間內(nèi)完成開發(fā)任務(wù)不能在預(yù)定時(shí)間內(nèi)完成開發(fā)任務(wù), ,則應(yīng)該使用多個(gè)則應(yīng)該使用多個(gè)程序設(shè)計(jì)小組程序設(shè)計(jì)小組,

40、 ,每個(gè)小組承擔(dān)工程項(xiàng)目的一部分任每個(gè)小組承擔(dān)工程項(xiàng)目的一部分任務(wù),在一定程度上獨(dú)立自主地完成各自的任務(wù)。務(wù),在一定程度上獨(dú)立自主地完成各自的任務(wù)。 系統(tǒng)的總體設(shè)計(jì)應(yīng)該能夠保證由各個(gè)小組負(fù)責(zé)系統(tǒng)的總體設(shè)計(jì)應(yīng)該能夠保證由各個(gè)小組負(fù)責(zé)開發(fā)的各部分之間的接口是良好定義的開發(fā)的各部分之間的接口是良好定義的, ,并且是盡并且是盡可能簡(jiǎn)單的??赡芎?jiǎn)單的。 小組規(guī)模小小組規(guī)模小, ,不僅可以減少通信問(wèn)題不僅可以減少通信問(wèn)題, ,而且還有而且還有其他好處。例如其他好處。例如, ,容易確定小組的質(zhì)量標(biāo)準(zhǔn)容易確定小組的質(zhì)量標(biāo)準(zhǔn), ,而且用而且用民主方式確定的標(biāo)準(zhǔn)更容易被大家遵守民主方式確定的標(biāo)準(zhǔn)更容易被大家遵守;

41、 ;組員間關(guān)組員間關(guān)系密切系密切, ,能夠互相學(xué)習(xí)等等。能夠互相學(xué)習(xí)等等。民主制程序員組民主制程序員組 民主制程序員組通常采用非正式的組織方式,民主制程序員組通常采用非正式的組織方式,也就是說(shuō),雖然名義上有一個(gè)組長(zhǎng),但是他和組內(nèi)也就是說(shuō),雖然名義上有一個(gè)組長(zhǎng),但是他和組內(nèi)其他成員完成同樣的任務(wù)。在這樣的小組中,由全其他成員完成同樣的任務(wù)。在這樣的小組中,由全體討論協(xié)商決定應(yīng)該完成的工作,并且根據(jù)每個(gè)人體討論協(xié)商決定應(yīng)該完成的工作,并且根據(jù)每個(gè)人的能力和經(jīng)驗(yàn)分配適當(dāng)?shù)娜蝿?wù)。的能力和經(jīng)驗(yàn)分配適當(dāng)?shù)娜蝿?wù)。 民主制程序員組的主要優(yōu)點(diǎn)是,組員們對(duì)發(fā)現(xiàn)民主制程序員組的主要優(yōu)點(diǎn)是,組員們對(duì)發(fā)現(xiàn)程序錯(cuò)誤持積極

42、的態(tài)度,這種態(tài)度有助于更快速地程序錯(cuò)誤持積極的態(tài)度,這種態(tài)度有助于更快速地發(fā)現(xiàn)錯(cuò)誤,從而導(dǎo)致高質(zhì)量的代碼。發(fā)現(xiàn)錯(cuò)誤,從而導(dǎo)致高質(zhì)量的代碼。民主制程序員組民主制程序員組 民主制程序員組的另一個(gè)優(yōu)點(diǎn)是,組員們享有充民主制程序員組的另一個(gè)優(yōu)點(diǎn)是,組員們享有充分民主,小組有高度凝聚力,組內(nèi)學(xué)術(shù)空氣濃厚,分民主,小組有高度凝聚力,組內(nèi)學(xué)術(shù)空氣濃厚,有利于攻克技術(shù)難關(guān)。因此,當(dāng)有難題需要解決時(shí),有利于攻克技術(shù)難關(guān)。因此,當(dāng)有難題需要解決時(shí),也就是說(shuō),當(dāng)所要開發(fā)的軟件的技術(shù)難度較高時(shí),也就是說(shuō),當(dāng)所要開發(fā)的軟件的技術(shù)難度較高時(shí),采用民主制程序員組是適宜的。采用民主制程序員組是適宜的。民主制程序員組民主制程序

43、員組 民主制程序員組的一個(gè)主要優(yōu)點(diǎn),是小組成員民主制程序員組的一個(gè)主要優(yōu)點(diǎn),是小組成員都對(duì)發(fā)現(xiàn)程序錯(cuò)誤持積極、主動(dòng)的態(tài)度。都對(duì)發(fā)現(xiàn)程序錯(cuò)誤持積極、主動(dòng)的態(tài)度。 但是,使用主程序員組的組織方式時(shí),主程序但是,使用主程序員組的組織方式時(shí),主程序員對(duì)每行代碼的質(zhì)量負(fù)責(zé),因此,他必須參與所有員對(duì)每行代碼的質(zhì)量負(fù)責(zé),因此,他必須參與所有代碼審查工作。由于主程序員同時(shí)又是負(fù)責(zé)對(duì)小組代碼審查工作。由于主程序員同時(shí)又是負(fù)責(zé)對(duì)小組成員進(jìn)行評(píng)價(jià)的管理員,他參與代碼審查工作就會(huì)成員進(jìn)行評(píng)價(jià)的管理員,他參與代碼審查工作就會(huì)把所發(fā)現(xiàn)的程序錯(cuò)誤與小組成員的工作業(yè)績(jī)聯(lián)系起把所發(fā)現(xiàn)的程序錯(cuò)誤與小組成員的工作業(yè)績(jī)聯(lián)系起來(lái),從而

44、造成小組成員出現(xiàn)不愿意發(fā)現(xiàn)錯(cuò)誤的心理。來(lái),從而造成小組成員出現(xiàn)不愿意發(fā)現(xiàn)錯(cuò)誤的心理?,F(xiàn)代程序員組現(xiàn)代程序員組 解決上述問(wèn)題的方法是,取消主程序員的大部解決上述問(wèn)題的方法是,取消主程序員的大部分行政管理工作。分行政管理工作。 前面已經(jīng)指出,很難找到既是高度熟練的程序前面已經(jīng)指出,很難找到既是高度熟練的程序員又是成功的管理員的人,取消主程序員的行政管員又是成功的管理員的人,取消主程序員的行政管理工作,不僅解決了小組成員不愿意發(fā)現(xiàn)程序錯(cuò)誤理工作,不僅解決了小組成員不愿意發(fā)現(xiàn)程序錯(cuò)誤的心理問(wèn)題,也使得尋找主程序員的人選不再那么的心理問(wèn)題,也使得尋找主程序員的人選不再那么困難。困難。 于是,實(shí)際的于是,

45、實(shí)際的“主程序員主程序員”應(yīng)該由兩個(gè)人共同應(yīng)該由兩個(gè)人共同擔(dān)任:一個(gè)技術(shù)負(fù)責(zé)人,負(fù)責(zé)小組的技術(shù)活動(dòng);一擔(dān)任:一個(gè)技術(shù)負(fù)責(zé)人,負(fù)責(zé)小組的技術(shù)活動(dòng);一個(gè)行政負(fù)責(zé)人,負(fù)責(zé)所有非技術(shù)性事務(wù)的管理決策。個(gè)行政負(fù)責(zé)人,負(fù)責(zé)所有非技術(shù)性事務(wù)的管理決策。這樣的組織結(jié)構(gòu)如圖所示。這樣的組織結(jié)構(gòu)如圖所示?,F(xiàn)代程序員組現(xiàn)代程序員組 技術(shù)組長(zhǎng)自然要參與全部代碼審查工作,因?yàn)榧夹g(shù)組長(zhǎng)自然要參與全部代碼審查工作,因?yàn)樗獙?duì)代碼的各方面質(zhì)量負(fù)責(zé);他要對(duì)代碼的各方面質(zhì)量負(fù)責(zé); 相反,行政組長(zhǎng)不可以參與代碼審查工作,因相反,行政組長(zhǎng)不可以參與代碼審查工作,因?yàn)樗穆氊?zé)是對(duì)程序員的業(yè)績(jī)進(jìn)行評(píng)價(jià)。行政為他的職責(zé)是對(duì)程序員的業(yè)績(jī)進(jìn)行

46、評(píng)價(jià)。行政組長(zhǎng)應(yīng)該在常規(guī)調(diào)度會(huì)議上了解每名組員的技組長(zhǎng)應(yīng)該在常規(guī)調(diào)度會(huì)議上了解每名組員的技術(shù)能力和工作業(yè)績(jī)。術(shù)能力和工作業(yè)績(jī)?,F(xiàn)代程序員組現(xiàn)代程序員組現(xiàn)代程序員組的結(jié)構(gòu)現(xiàn)代程序員組的結(jié)構(gòu) 由于程序員組成員人數(shù)不宜過(guò)多,當(dāng)軟件項(xiàng)目由于程序員組成員人數(shù)不宜過(guò)多,當(dāng)軟件項(xiàng)目規(guī)模較大時(shí),應(yīng)該把程序員分成若干個(gè)小組,采用規(guī)模較大時(shí),應(yīng)該把程序員分成若干個(gè)小組,采用下圖下圖9-99-9所示的組織結(jié)構(gòu)。所示的組織結(jié)構(gòu)。 該圖描繪的是技術(shù)管理組織結(jié)構(gòu),非技術(shù)管理該圖描繪的是技術(shù)管理組織結(jié)構(gòu),非技術(shù)管理組織結(jié)構(gòu)與此類似。組織結(jié)構(gòu)與此類似。 由圖可以看出,產(chǎn)品開發(fā)作為一個(gè)整體是在項(xiàng)由圖可以看出,產(chǎn)品開發(fā)作為一個(gè)整

47、體是在項(xiàng)目經(jīng)理的指導(dǎo)下進(jìn)行的,程序員向他們的組長(zhǎng)匯報(bào)目經(jīng)理的指導(dǎo)下進(jìn)行的,程序員向他們的組長(zhǎng)匯報(bào)工作,而組長(zhǎng)則向項(xiàng)目經(jīng)理匯報(bào)工作。當(dāng)產(chǎn)品規(guī)模工作,而組長(zhǎng)則向項(xiàng)目經(jīng)理匯報(bào)工作。當(dāng)產(chǎn)品規(guī)模更大時(shí),可以適當(dāng)增加中間管理層次。更大時(shí),可以適當(dāng)增加中間管理層次。大型項(xiàng)目的技術(shù)管理組織結(jié)構(gòu)9.2 9.2 軟件質(zhì)量保證軟件質(zhì)量保證 概括地說(shuō),軟件質(zhì)量就是概括地說(shuō),軟件質(zhì)量就是“軟件與明確地和隱軟件與明確地和隱含地定義的需求相一致的程度含地定義的需求相一致的程度”。 更具體地說(shuō),軟件質(zhì)量是軟件與明確地?cái)⑹龅墓Ω唧w地說(shuō),軟件質(zhì)量是軟件與明確地?cái)⑹龅墓δ芎托阅苄枨?、文檔中明確描述的開發(fā)標(biāo)準(zhǔn)以及能和性能需求、文檔

48、中明確描述的開發(fā)標(biāo)準(zhǔn)以及任何專業(yè)開發(fā)的軟件產(chǎn)品都應(yīng)該具有的隱含特征任何專業(yè)開發(fā)的軟件產(chǎn)品都應(yīng)該具有的隱含特征相一致的程度。上述定義強(qiáng)調(diào)了下述的相一致的程度。上述定義強(qiáng)調(diào)了下述的3 3個(gè)要點(diǎn):個(gè)要點(diǎn):(1 1) 軟件需求是度量軟件質(zhì)量的基礎(chǔ),與需求不一軟件需求是度量軟件質(zhì)量的基礎(chǔ),與需求不一致就是質(zhì)量不高。致就是質(zhì)量不高。(2 2) 指定的開發(fā)標(biāo)準(zhǔn)定義了一組指導(dǎo)軟件開發(fā)的準(zhǔn)指定的開發(fā)標(biāo)準(zhǔn)定義了一組指導(dǎo)軟件開發(fā)的準(zhǔn)則,如果沒(méi)有遵守這些準(zhǔn)則,幾乎肯定會(huì)導(dǎo)致軟件質(zhì)則,如果沒(méi)有遵守這些準(zhǔn)則,幾乎肯定會(huì)導(dǎo)致軟件質(zhì)量不高。量不高。(3 3) 通常,有一組沒(méi)有顯式描述的隱含需求(例如,通常,有一組沒(méi)有顯式描述

49、的隱含需求(例如,軟件應(yīng)該是容易維護(hù)的)。如果軟件滿足明確描述的軟件應(yīng)該是容易維護(hù)的)。如果軟件滿足明確描述的需求,但卻不滿足隱含的需求,那么軟件的質(zhì)量仍然需求,但卻不滿足隱含的需求,那么軟件的質(zhì)量仍然是值得懷疑的。是值得懷疑的。 雖然軟件質(zhì)量是難于定量度量的軟件屬性,但是仍雖然軟件質(zhì)量是難于定量度量的軟件屬性,但是仍然能夠提出許多重要的軟件質(zhì)量指標(biāo)然能夠提出許多重要的軟件質(zhì)量指標(biāo)( (其中絕大多數(shù)目其中絕大多數(shù)目前還處于定性度量階段前還處于定性度量階段) )。9.2 9.2 軟件質(zhì)量保證軟件質(zhì)量保證9.2 9.2 軟件質(zhì)量保證軟件質(zhì)量保證 影響軟件質(zhì)量的主要因素,這些因素是從管理影響軟件質(zhì)量

50、的主要因素,這些因素是從管理角度對(duì)軟件質(zhì)量的度量??蓜澐譃槿M,分別反角度對(duì)軟件質(zhì)量的度量??蓜澐譃槿M,分別反應(yīng)用戶在使用軟件產(chǎn)品時(shí)的三種觀點(diǎn)。應(yīng)用戶在使用軟件產(chǎn)品時(shí)的三種觀點(diǎn)。 正確性、健壯性、效率、完整性、可用性、風(fēng)險(xiǎn)正確性、健壯性、效率、完整性、可用性、風(fēng)險(xiǎn)(產(chǎn)品運(yùn)行);(產(chǎn)品運(yùn)行); 可理解性、可維修性、靈活性、可測(cè)試性(產(chǎn)品可理解性、可維修性、靈活性、可測(cè)試性(產(chǎn)品修改);修改); 可移植性、可再用性、互運(yùn)行性(產(chǎn)品轉(zhuǎn)移)??梢浦残浴⒖稍儆眯?、互運(yùn)行性(產(chǎn)品轉(zhuǎn)移)。軟件質(zhì)量因素與產(chǎn)品活動(dòng)的關(guān)系軟件質(zhì)量因素與產(chǎn)品活動(dòng)的關(guān)系9.3 CMM簡(jiǎn)介簡(jiǎn)介 美國(guó)卡內(nèi)基梅隆大學(xué)軟件工程研究所在美國(guó)

51、美國(guó)卡內(nèi)基梅隆大學(xué)軟件工程研究所在美國(guó)國(guó)防部資助下于國(guó)防部資助下于2020世紀(jì)世紀(jì)8080年代末建立的能力成熟年代末建立的能力成熟度模型(度模型(capability maturity modelcapability maturity model,CMM)CMM),是用于評(píng)價(jià)軟件機(jī)構(gòu)的軟件過(guò)程能力成熟度的模是用于評(píng)價(jià)軟件機(jī)構(gòu)的軟件過(guò)程能力成熟度的模型型。最初,建立此模型的目的主要是,為大型軟。最初,建立此模型的目的主要是,為大型軟件項(xiàng)目的招投標(biāo)活動(dòng)提供一種全面而客觀的評(píng)審件項(xiàng)目的招投標(biāo)活動(dòng)提供一種全面而客觀的評(píng)審依據(jù),發(fā)展到后來(lái),此模型又同時(shí)被應(yīng)用于許多依據(jù),發(fā)展到后來(lái),此模型又同時(shí)被應(yīng)用于許多軟

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論