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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15、然后給每面墻壁都刷上新漆,最后清除濺在每個窗戶給每面墻壁都刷上新漆,最后清除濺在每個窗戶上的油漆。顯然這是效率最低的做法,因為總共上的油漆。顯然這是效率最低的做法,因為總共有有1515名工人,然而每種工具卻只有名工人,然而每種工具卻只有5 5件,這樣安排件,這樣安排工作在任何時候都有工作在任何時候都有1010名工人閑著沒活干。名工人閑著沒活干。 讀者可能已經(jīng)想到,應(yīng)該采用讀者可能已經(jīng)想到,應(yīng)該采用“流水作業(yè)法流水作業(yè)法”,也就是說,首先由也就是說,首先由5 5名工人用刮板刮掉第名工人用刮板刮掉第1 1面墻上面墻上的舊漆的舊漆( (這時其余這時其余1010名工人休息名工人休息) ),當?shù)冢數(shù)?

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

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

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

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

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

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

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

23、上舊漆”是作業(yè)是作業(yè)1 12 2。舊木板房刷漆工程的工程網(wǎng)絡(luò)舊木板房刷漆工程的工程網(wǎng)絡(luò) 在工程網(wǎng)絡(luò)中的一個事件,如果既有箭頭進入在工程網(wǎng)絡(luò)中的一個事件,如果既有箭頭進入又有箭頭離開,則它既是某些作業(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面墻刷新漆面墻刷新漆) )的的開始。也就是說,只有第開始。也就是說,只有第1 1面

24、墻上的舊漆刮完之后,面墻上的舊漆刮完之后,才能開始刮第才能開始刮第2 2面墻上舊漆和給第面墻上舊漆和給第1 1面墻刷新漆這面墻刷新漆這兩個作業(yè)。因此,工程網(wǎng)絡(luò)顯式地表示了作業(yè)之兩個作業(yè)。因此,工程網(wǎng)絡(luò)顯式地表示了作業(yè)之間的依賴關(guān)系。間的依賴關(guān)系。 在圖中還有一些虛線箭頭,它們表示虛擬作業(yè),在圖中還有一些虛線箭頭,它們表示虛擬作業(yè),也就是事實上并不存在的作業(yè)。引入虛擬作業(yè)是也就是事實上并不存在的作業(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)。也就是說,在事件也就是說,在事件3 3和事件和事件4 4之間有依賴關(guān)系,或之間有依賴關(guān)系,或者說在作業(yè)者說在作業(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è)既不消耗資源也不需要時間。業(yè)既不消耗資源也不需要時間。 畫出類似圖那樣的工程網(wǎng)絡(luò)之后,系統(tǒng)分析員畫出類似圖那樣的工程網(wǎng)絡(luò)之后,系統(tǒng)分析員就可以借助它的幫助估算工程進度了。為此需要在就可以借助它的幫助估算工程進度了。為此需要在工程網(wǎng)絡(luò)上增加一些必要的信息。工程網(wǎng)絡(luò)上增加一些必要的信息。 首先,把每個作業(yè)估計需要使用的時間寫在表首先,把每個作業(yè)估計需要使用的時間寫在表示該項作業(yè)的箭頭上方。注意,箭頭長度和它代表示該項作業(yè)的箭頭上方。注意,箭頭長度和它代表的作業(yè)持續(xù)時間沒有關(guān)系,箭頭僅表示依賴關(guān)系,的作業(yè)持續(xù)時間沒有關(guān)系,箭頭僅表示依賴關(guān)系,它上方的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

46、評價。行政組長應(yīng)該在常規(guī)調(diào)度會議上了解每名組員的技組長應(yīng)該在常規(guī)調(diào)度會議上了解每名組員的技術(shù)能力和工作業(yè)績。術(shù)能力和工作業(yè)績?,F(xiàn)代程序員組現(xiàn)代程序員組現(xiàn)代程序員組的結(jié)構(gòu)現(xiàn)代程序員組的結(jié)構(gòu) 由于程序員組成員人數(shù)不宜過多,當軟件項目由于程序員組成員人數(shù)不宜過多,當軟件項目規(guī)模較大時,應(yīng)該把程序員分成若干個小組,采用規(guī)模較大時,應(yīng)該把程序員分成若干個小組,采用下圖下圖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ā)作為一個整體是在項由圖可以看出,產(chǎn)品開發(fā)作為一個整

47、體是在項目經(jīng)理的指導下進行的,程序員向他們的組長匯報目經(jīng)理的指導下進行的,程序員向他們的組長匯報工作,而組長則向項目經(jīng)理匯報工作。當產(chǎn)品規(guī)模工作,而組長則向項目經(jīng)理匯報工作。當產(chǎn)品規(guī)模更大時,可以適當增加中間管理層次。更大時,可以適當增加中間管理層次。大型項目的技術(shù)管理組織結(jié)構(gòu)9.2 9.2 軟件質(zhì)量保證軟件質(zhì)量保證 概括地說,軟件質(zhì)量就是概括地說,軟件質(zhì)量就是“軟件與明確地和隱軟件與明確地和隱含地定義的需求相一致的程度含地定義的需求相一致的程度”。 更具體地說,軟件質(zhì)量是軟件與明確地敘述的功更具體地說,軟件質(zhì)量是軟件與明確地敘述的功能和性能需求、文檔中明確描述的開發(fā)標準以及能和性能需求、文檔

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

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

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

51、美國卡內(nèi)基梅隆大學軟件工程研究所在美國國防部資助下于國防部資助下于2020世紀世紀8080年代末建立的能力成熟年代末建立的能力成熟度模型(度模型(capability maturity modelcapability maturity model,CMM)CMM),是用于評價軟件機構(gòu)的軟件過程能力成熟度的模是用于評價軟件機構(gòu)的軟件過程能力成熟度的模型型。最初,建立此模型的目的主要是,為大型軟。最初,建立此模型的目的主要是,為大型軟件項目的招投標活動提供一種全面而客觀的評審件項目的招投標活動提供一種全面而客觀的評審依據(jù),發(fā)展到后來,此模型又同時被應(yīng)用于許多依據(jù),發(fā)展到后來,此模型又同時被應(yī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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論