《軟件工程基礎(chǔ)》第13章 軟件項目管理_第1頁
《軟件工程基礎(chǔ)》第13章 軟件項目管理_第2頁
《軟件工程基礎(chǔ)》第13章 軟件項目管理_第3頁
《軟件工程基礎(chǔ)》第13章 軟件項目管理_第4頁
《軟件工程基礎(chǔ)》第13章 軟件項目管理_第5頁
已閱讀5頁,還剩128頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、13.1 軟件項目管理概述軟件項目管理的目標 組織實施軟件工程項目,采用了許多技術(shù)手段和管理措施,最終希望項目取得成功。通常認為,項目成功的標志,也是項目管理人員爭取的目標,應該包括以下幾個方面。(1)達到項目預期的軟件產(chǎn)品功能和性能要求。一般而言,就是軟件產(chǎn)品達到了用戶已認可的需求規(guī)格說明的要求。(2)時限要求。項目應在合同規(guī)定的期限內(nèi)完成。 (3)項目開銷限制在預算之內(nèi)。 按RSPressman的觀點,軟件項目管理涉及的幾個主要方面是人員、產(chǎn)品、過程和項目,即所謂4P(People、Product、Process、Project)。 (1)人員管理 美國卡內(nèi)基梅隆大學軟件工程研究所的Bil

2、l Curtis在1994年發(fā)表了“人員管理能力成熟度模型”(people capability maturity model,P-CMM)。該模型力圖通過吸引、培養(yǎng)、激勵、部署和騁用高水平的人才來提升軟件組織的軟件開發(fā)能力。人員管理涉及:13.1 軟件項目管理概述軟件項目管理涉及的幾個方面 共利益者。 包括: 項目的高級管理者負責項目商務(wù)問題的決策; 項目經(jīng)理負責項目的計劃與實施以及開發(fā)人員的組織與管理; 開發(fā)人員項目開發(fā)的實施者; 客戶提出需求并代表用戶與開發(fā)人員交往的人員; 最終用戶直接使用項目成果(產(chǎn)品)的人員。 團隊負責人。在小項目的情況下,項目經(jīng)理就是團隊負責人。而大型項目也許會有

3、若干個設(shè)計、編程團隊或是若干個測試團隊。團隊負責人除去負有團隊日常工作的安排、組織和管理之外,還應特別注意發(fā)揮團隊成員的潛能。13.1 軟件項目管理概述 團隊集體。團隊內(nèi)部有分工是必要的,但必須很好地配合,做到步調(diào)一致,為此必須強調(diào)以下3點。 個人的責任心,這是團隊完成工作的基本條件。 互相信任、尊重以及互相支持。 充分的交流與溝通。(2)產(chǎn)品管理 軟件產(chǎn)品是軟件項目的成果和預期的目標,這種無形的產(chǎn)品在開發(fā)出以前,對其進行管理有一定的困難。然而,項目經(jīng)理必須在項目開始時就明確項目的以下三個目標: 產(chǎn)品的工作環(huán)境。13.1 軟件項目管理概述 產(chǎn)品的功能和性能。 產(chǎn)品工作處理的是什么數(shù)據(jù),經(jīng)它處理

4、后得到什么數(shù)據(jù)。 顯然,只有明確了項目的這些基本要求才能著手項目管理的各項工作,如項目估算、風險分析、項目計劃的制定等。 (3)過程管理 過程在軟件工程項目中是重要的因素,它決定著項目中開展哪些活動以及對活動的要求和開展活動的順序。(4)項目管理 項目管理的任務(wù)是如何利用已有的資源,組織實施既定13.1 軟件項目管理概述的項目,提交給用戶適用的產(chǎn)品。項目管理要開展的主要工作可分為3類。 計劃及計劃管理。包括項目策劃及計劃制定、項目估算、風險分析及風險管理、進度管理、計劃跟蹤與監(jiān)督。 資源管理。包括人員管理(人員安排、使用)、成本管理、信息管理。 成果要求管理。包括需求管理、配置管理、質(zhì)量管理。

5、 13.1 軟件項目管理概述 軟件工程項目的計劃是指導項目開展的綱領(lǐng)性文件,必須認真對待,通常在項目的目標確定和被開發(fā)的軟件基本功能確定之后,就應該著手項目計劃的制定工作。而項目估算是制訂計劃的基礎(chǔ)和依據(jù)。項目策劃與項目估算13.2 項目估算 項目策劃是在項目開展初期階段的重要工作,其主要目標是得到項目計劃,或者說計劃(plan)是策劃(planning)的結(jié)果。項目策劃中需要開展的活動有如下幾項:(1)確認并分析項目的特征。(2)選擇項目將遵循的生存期模型,確定各階段的任務(wù)。(3)確定應得到的階段性工作產(chǎn)品以及最終的產(chǎn)品。(4)開展項目估算,包括估算產(chǎn)品規(guī)模、工作量、成本以及所需的關(guān)鍵計算機

6、資源。(5)制訂項目進度計劃。(6)對項目風險進行分析。(7)制訂項目計劃。 在項目估算中,要解決的問題是項目實施的幾個主要屬性,即將要開發(fā)產(chǎn)品的規(guī)模(size)、項目所需的工作量(effort)以及項目的成本(cost)。 13.2 項目估算(1)規(guī)模。項目的規(guī)模指的是得到最終軟件產(chǎn)品的大小。一般以編程階段完成以后得到程序的代碼行表示,如以1千代碼行為單位,記為KLOC。當然,在項目的開始只是對代碼行的估計值。另一表示方法是功能點,記為FP,它是根據(jù)軟件需求中的功能估算的。(2)工作量。項目的工作量按項目將要投入的人工來考慮,以一個人工作一個月為單位,記為“人月”。(3)成本。軟件項目的成本

7、通常只考慮投入的人工成本,如某項目投入的總?cè)斯べM用為12萬元。13.2 項目估算 一個軟件組織在完成多個項目以后積累了一些數(shù)據(jù),進行成本分析后便可得到自己的生產(chǎn)率數(shù)值和人工價格。 生產(chǎn)率是平均每個人月完成的源程序行數(shù),可記為KLOC/人月或FP/人月。 人工價則為每人月的價值。 有了這兩個數(shù)值,如果在估出項目規(guī)模以后就可以很容易得到項目的工作量和成本,即工作量=規(guī)模/生產(chǎn)率成本=工作量人工價13.2 項目估算 功能點方法(function point)簡稱FP方法,該方法克服了項目開始時無法得知源程序行數(shù)的實際困難,從軟件產(chǎn)品的功能度(functionality)出發(fā)估算出軟件產(chǎn)品的規(guī)模。 1

8、功能度 功能點方法是以項目的需求規(guī)格說明中已經(jīng)得到確認的軟件功能為依據(jù),著重分析要開發(fā)系統(tǒng)的功能度,并且認為,軟件的大小與軟件的功能度相關(guān),而與軟件功能如何描述無關(guān),也與功能需求如何設(shè)計和實現(xiàn)無關(guān)。 為具體說明功能點方法,區(qū)分各種不同的功能,需要建立應用系統(tǒng)邊界的概念。應用系統(tǒng)邊界把我們正在開發(fā)的應用13.2 項目估算項目估算的功能點方法系統(tǒng)與用戶和與其相關(guān)的應用系統(tǒng)分割開來。內(nèi)部功能僅限于應用系統(tǒng)的邊界之內(nèi),而外部功能則是跨邊界的。 右圖給出了待開發(fā)的應用系統(tǒng)A及其邊界。該系統(tǒng)有它的用戶和與其相關(guān)的應用系統(tǒng)B。圖中系統(tǒng)A有3項功能涉及用戶,即輸入、輸出和查詢;有一項功能是與系統(tǒng)B的接口。這4

9、項功能都是跨越邊界的,稱其為外部功能。在應用系統(tǒng)A中,內(nèi)部文件的邏輯關(guān)系都未超出邊界,屬于內(nèi)部功能。13.2 項目估算(1)外部輸入。外部輸入處理那些進入應用系統(tǒng)邊界的數(shù)據(jù)或是控制信息。經(jīng)特定的邏輯處理后,形成內(nèi)部邏輯文件。 (2)外部輸出。外部輸出處理離開應用系統(tǒng)邊界的數(shù)據(jù)或控制信息。 (3)內(nèi)部邏輯文件。內(nèi)部邏輯文件是用戶可識別的邏輯相關(guān)數(shù)據(jù)或控制信息組,它可在應用系統(tǒng)邊界之內(nèi)使用。內(nèi)部邏輯文件代表應用系統(tǒng)可支持的數(shù)據(jù)存儲需求。(4)外部接口文件。外部接口文件是用戶可識別的邏輯相關(guān)數(shù)據(jù)或控制信息構(gòu)成的集合,該控制信息為應用系統(tǒng)所使用卻被另一應用系統(tǒng)所支持。外部接口文件代表應用系統(tǒng)外部支持的

10、數(shù)據(jù)存儲需求。 13.2 項目估算(5)外部查詢。外部查詢是唯一的輸入/輸出組合,它為實現(xiàn)即時輸出引起所需數(shù)據(jù)的檢索,代表了應用系統(tǒng)查詢處理的需求。2功能復雜性 軟件項目每類功能的復雜程度可能各不相同,為表明功能復雜性的差別,將其分為簡單的、中等的和復雜的3個等級。同時為表示其差異程度,分別給予不同的影響參數(shù)。下表列出了功能復雜性的影響參數(shù)值。 13.2 項目估算3未調(diào)節(jié)功能點 某一個軟件,只要我們能夠從規(guī)格說明中得到了以上5種功能度的各級復雜性功能點的個數(shù)C,不難計算出未調(diào)節(jié)功能點的值。13.2 項目估算其中:i代表功能度類型號;i=1,2,5; j代表復雜性的等級;j1,2,3; ij是第

11、i類功能度和第j級復雜性的影響參數(shù),即上表 中第i行,第j列的參數(shù)值; Cij是第i類功能度和第j級復雜度功能點的個數(shù)。 4調(diào)節(jié)因子 任何軟件都會有其自身特性,在考慮其各種自身特性時,從以下兩個方面分解功能點計算的調(diào)節(jié)因子。(1)影響因子。經(jīng)過對各類軟件的分析,綜合出以下14個 類型的影響因子:13.2 項目估算數(shù)據(jù)通信。分布數(shù)據(jù)處理。性能目標。系統(tǒng)配置要求。事務(wù)率。聯(lián)機數(shù)據(jù)錄入。最終用戶效率。聯(lián)機更新。復雜的處理邏輯??蓮陀眯浴?易安裝性。 易操作性。 多工作場所。 設(shè)施變更。(2)影響級。上述影響因子對軟件功能度的影響有多大必須加以區(qū)分,于是將影響因子的影響程度分為6級,即 0級 無影響

12、1級 微小影響 2級 輕度影響 3級 中度影響 4級 顯著影響 5級 重大影響 綜合考慮14類影響因子的影響度N,應是將14種影響疊加起來,其值必定為070(145)。由此得到復雜度調(diào)節(jié)因子(complexity adjustment factor,CAF) CAF=0.65+0.01N其值應在0.651.35,其中基本調(diào)節(jié)常數(shù)是0.65,可見最大的調(diào)節(jié)量為35%。 13.2 項目估算5交付功能點 經(jīng)過調(diào)節(jié)因子調(diào)節(jié)后的功能點值被稱為交付功能點(delivered function point,DFP) DFP=CAFUFP6交付功能點與軟件規(guī)模 一些研究成果表明,上述計算出的功能點的值可以代表

13、軟件的規(guī)模,也可作為估算成本的依據(jù)。軟件的規(guī)??捎媒桓兜脑创a行數(shù)(delivered lines of code,DLOC)來表示。功能點與DLOC的對應關(guān)系如下表所示。例如 1 DFP相當于105 DLOC(COBOL程序); 1 DFP相當于128 DLOC(C程序)。13.2 項目估算7功能點方法的優(yōu)點(1)DFP只與由規(guī)格說明得到的信息相關(guān),而交付代碼的行數(shù)若不通過功能點計算是不能直接從規(guī)格說明中得到的。(2)DFP與實現(xiàn)軟件的語言無關(guān)。13.2 項目估算8功能點方法的不足之處(1)針對需求規(guī)格說明進行分析時,主觀因素難以完全排除,這包括: 對于規(guī)格說明,每人可能有不同的解釋; 對于

14、功能度的復雜性估計也可能因人而異; CAF計算時會有主觀因素。(2)非數(shù)據(jù)處理問題,如實時軟件、系統(tǒng)軟件、科學計算軟件等功能點的上述計算方法并不適用。(3)DFP的計算目前尚不能借助工具自動完成。 13.2 項目估算9功能點方法計算實例 某銀行的一個信息系統(tǒng)正在運行,其需求規(guī)格說明如下圖所示。 為表明對該系統(tǒng)需求規(guī)格說明的分析過程,對上圖中各類功能加了下畫線?,F(xiàn)將各項功能分類列出。13.2 項目估算(1)外部輸入 增加新客戶; 刪除客戶; 存款業(yè)務(wù); 提款業(yè)務(wù); 給出透支報告的要求。(2)外部輸出 透支的警告信息; 透支客戶報告。(3)外部查詢 客戶查詢存款余額。(4)內(nèi)部文件 客戶文件。 注

15、意,該例中沒有出現(xiàn)和其他應用系統(tǒng)的接口,并且假定以上功能均為簡單的復雜性。因此,未調(diào)節(jié)功能點 UFP=35+42+31+71=33 再來計算調(diào)節(jié)因子。根據(jù)本系統(tǒng)的規(guī)格先來選取各個影響因子的影響級,經(jīng)分析影響因子取值如下表所示。13.2 項目估算因此,14類影響因子構(gòu)成的影響度為 N=3+3+3+2+4+5+4+4+1+0+0+1+0+0=30于是復雜度調(diào)節(jié)因子為CAF0.65+0.0130=0.95最后,可算出交付的功能點值為DFP=0.9533=31.3513.2 項目估算 1專家判定Delphi方法 專家判定技術(shù)就是由多位專家進行成本估算,取得多個估算值。有多種方法把這些估算值合成一個估算

16、值,Read公司提出了Delphi技術(shù),作為統(tǒng)一專家意見的方法??傻玫綐O為準確的估算值。標準Delphi技術(shù)的步驟如下。 組織者發(fā)給每位專家一份軟件系統(tǒng)的規(guī)格說明書(略去名稱和單位)和一張記錄估算值的表格,請他們進行估算。 專家詳細研究軟件規(guī)格說明書的內(nèi)容,然后組織者召集小組會議,在會上,專家們與組織者一起對估算問題進行討論。 13.2 項目估算軟件開發(fā)成本估算 各位專家對該軟件提出3個軟件規(guī)模的估算值,即ai該軟件可能的最小規(guī)模(最少源代碼行數(shù));mi該軟件最可能的規(guī)模(最可能的源代碼行數(shù));bi該軟件可能的最大規(guī)模(最多源代碼行數(shù))。 無記名地填寫表格,并說明做此估算的理由。 組織者對各位

17、專家在表中填寫的估算值進行綜合和分類,做以下事情。 計算各位專家(序號為i,i=1,2,n)的估算期望值Ei和估算值的期望中值E。 對專家的估算結(jié)果進行分析。13.2 項目估算 組織者召集會議,請專家們對其估算值有很大差異之處進行討論。專家對此估算值另做一次估算。 在綜合專家估算結(jié)果的基礎(chǔ)上,組織專家再次無記名地填寫表格。 從步驟到步驟適當重復幾次,最終可獲得一個得到多數(shù)專家共識的軟件規(guī)模(源代碼行數(shù))。 最后,通過與歷史資料進行類比,根據(jù)過去完成項目的規(guī)模和成本等信息,推算出該軟件每行源代碼所需成本。然后再乘以該軟件源代碼行數(shù)的估算值,得到該軟件的成本估算值。 13.2 項目估算2COCOM

18、O模型 Barry Boehm這位知名的軟件工程專家在其著作軟件工程經(jīng)濟學中提出了他的軟件估算模型層次結(jié)構(gòu),稱為構(gòu)造式成本模型COCOMO(COnstructive COst MOdel),也許這是在軟件界影響最為廣泛,也最為著名的估算模型。(1)3種類型的軟件 COCOMO是針對Boehm劃分的3種類型軟件進行估算的。 固有型(organic mode)項目。規(guī)模較小,較為簡單的項目,開發(fā)人員對項目有較好的理解和較為豐富的工作經(jīng)驗,如傳熱系統(tǒng)中所用的熱分析程序。13.2 項目估算 嵌入型(embedded mode)項目。這類項目的開發(fā)工作緊密地與系統(tǒng)中的硬件、軟件和運行限制聯(lián)系在一起,如飛

19、機的飛行控制軟件。 半獨立性(semi-detached mode)項目。項目的性質(zhì)介于上述兩個類型之間,其規(guī)模與復雜性均屬中等,如事務(wù)處理系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)等。(2)COCOMO的3級模型 基本COCOMO模型(basic model)。 該模型為靜態(tài)、單變量,以估算出的源代碼行數(shù)計算。 開發(fā)工作量:式中:E為工作量,單位為人月;KLOC為交付的千行代碼數(shù)。 13.2 項目估算開發(fā)期:式中:D為開發(fā)期,單位為月。 系數(shù) 基本COCOMO模型系數(shù)如下表所示。13.2 項目估算 中級COCOMO模型(intermediate)。 該模型除考慮源代碼行數(shù)外,還考慮調(diào)節(jié)因子(EAF),用其體現(xiàn)產(chǎn)品

20、、軟件、人員和項目等因素。 開發(fā)工作量: 系數(shù) 中級COCOMO模型系數(shù)如下表所示。13.2 項目估算 調(diào)節(jié)因子EAF(effort adjustment factor)。包含了4類15種屬性,其值為0.71.6。如下表所示。 高級COCOMO模型(advanced) 高級COCOMO模型除保留中級模型的因素外,還涉及軟件工程過程不同開發(fā)階段的影響,以及系統(tǒng)層、子系統(tǒng)層和模塊層的差別。 軟件可靠性在子系統(tǒng)層各開發(fā)階段有不同的調(diào)節(jié)因子,如下表所示。 13.2 項目估算13.2 項目估算1軟件風險 軟件工程項目的一系列活動要經(jīng)歷各種過程,即軟件生存期過程。軟件項目的生存期過程正如人的一生一樣,不可

21、能百分之百地順利,而不遇到任何困難乃至危險。我們把軟件工程過程中可能出現(xiàn)的那些影響軟件目標實現(xiàn),或是可能造成重大損失的事件稱為軟件風險。2風險的特點 在軟件工程項目過程實施中會遇到許多事件,但必須注意把軟件風險與其他事件區(qū)分開來。通常認為,風險具有以下特點。13.3 風險管理 什么是軟件風險 (1)可能發(fā)生的事件 風險是可能發(fā)生的事件,其發(fā)生的可能性用風險概率來描述。事件發(fā)生的可能性有多大,即風險概率是多少,在項目開始時應有初步的估計。(2)會給項目帶來損失的事件 風險的發(fā)生必定給項目造成損害,這當然是我們不希望出現(xiàn)的。(3)可能對其進行干預,以期減少損失 針對每一種風險,我們應弄清可能減少造

22、成損失或避免損失的程度。對風險加以控制,采取一些有效的措施來降低風險或是消除風險。13.3 風險管理 3風險分類 出于不同的考慮,可以有不同的風險分類。(1)依據(jù)危害性 從危害到軟件項目本身講,軟件風險可分為3類。 成本風險。成本風險是項目預算和開銷不夠準確造成 的。 績效風險??冃эL險是系統(tǒng)不能提供全部或是某些預期 效益,或是不能實現(xiàn)預期的軟件需求。 進度風險。進度風險關(guān)系到項目進度或是項目達到指定 里程碑的不確定性。13.3 風險管理 (2)從風險涉及的范圍上考慮 從更大的范圍考慮,軟件風險還可分為3類。 項目風險。這種風險涉及預算、成本、進度、人員的招 聘和組織、資源的獲取,以及顧客和需

23、求等方面的問題。 技術(shù)風險。技術(shù)風險威脅著開發(fā)產(chǎn)品的質(zhì)量和交付產(chǎn)品 的時間。技術(shù)風險會涉及設(shè)計方案、實現(xiàn)、接口、驗證, 以及維護等方面的問題。 商業(yè)風險。商業(yè)風險的發(fā)生會威脅開發(fā)軟件的生命力, 危及軟件項目和產(chǎn)品出路。常常出現(xiàn)的情況是: 13.3 風險管理 市場風險:開發(fā)了優(yōu)良的產(chǎn)品卻不為用戶真正需要,或是銷售人員不知怎么能送到用戶手中; 策略風險:開發(fā)的產(chǎn)品不能適應公司的整體商業(yè)策略; 管理風險:由于人員的變更或是公司工作中心的轉(zhuǎn)移,開發(fā)的產(chǎn)品失去了高層領(lǐng)導者的有力支持; 預算風險:沒有得到預算或人員方面的承諾。(3)其他分類 R.N.Charette給出了另一種風險的分類。 已知風險:在已

24、經(jīng)對項目計劃、被開發(fā)軟件將在其中的 商業(yè)環(huán)境和技術(shù)環(huán)境,以及對其他的可靠信息來源做出仔13.3 風險管理 細評估以后能夠弄清的風險。所謂其他可靠信息來源可能是不現(xiàn)實的交付日期、缺少文檔化的需求或軟件范圍及不良的開發(fā)環(huán)境等。 可預知風險:根據(jù)以往項目的經(jīng)驗可以推斷的風險,如人員調(diào)動、與顧客溝通有障礙、在為客戶作維護服務(wù)時人員工作積極性不高等。 不可預知風險:事先完全無法預料,好像是在開玩笑一樣,風險竟然突如其來。13.3 風險管理 如同軟件配置管理力圖把變更造成的影響降到最小一樣,風險管理力圖把風險帶來的影響,或造成的損失減少到最小。 1風險管理的目標和策略(1)目標。風險管理包括兩個重要的目標

25、: 識別風險。 采取措施,把風險造成的影響降低到最小。 識別風險是要找出可能的風險,對其進行分析、評估,并進一步對這些風險排序,以突出最為險惡的風險。 13.3 風險管理 風險管理的任務(wù) (2)策略。降低風險危害的策略可能包括: 回避風險,如改變項目的某些功能或性能需求使風險不可能發(fā)生; 轉(zhuǎn)移風險,把風險轉(zhuǎn)移到其他系統(tǒng),或是借助購買保險,將經(jīng)濟損失轉(zhuǎn)移,從而化險為夷; 承受風險,接受風險,但將風險損失控制在項目資源可承受的范圍之內(nèi)。2風險管理活動 為達到上述風險管理的目標,必須使風險管理圍繞風險評估和風險控制開展活動。風險管理活動及相關(guān)子活動如下圖所示。以下兩小節(jié)將對風險評估和風險控制分別加以

26、說明。13.3 風險管理 13.3 風險管理 風險評估的目標是認識可能的風險,它是風險控制的前提。風險評估通常包括:風險識別、風險分析和風險排序3個方面的內(nèi)容。需要注意的是,在軟件工程項目的全過程中,風險評估可能不止進行一次。隨著各方面條件的變化,如有必要,在項目進行中可能需要進行再評估或是修改評估。1風險識別 就某個特定的軟件工程項目來說,從項目的具體情況出發(fā),列舉出可能出現(xiàn)的風險,真正弄清每一可能風險的情況是風險識別的主要任務(wù)。風險識別的方法有:檢查單、判定 風險評估13.3 風險管理 驅(qū)動分析、假設(shè)分析、分解等。 檢查單(checklist)是識別風險的有力工具。它是將檢查單中所列舉的各

27、種風險,對照即將開發(fā)的軟件項目,逐一加以甄別,判定檢查單中哪些風險在該項目中可能發(fā)生。所謂分解是將一個大的項目劃分成若干明確定義的部分,然后對每個部分進行分析,看看各部分的可能風險是什么。有許多軟件項目的實際情況是,20%的模塊會引發(fā)出80%的項目問題。分解將有助于識別這些模塊的風險。 總之,風險識別時要弄清在項目中可能發(fā)生,但并不希望發(fā)生的事件,也即列舉出一些可能出現(xiàn)的“意外”事件,以便引起我們的重視,做到“有備無患”。13.3 風險管理 2風險分析 風險識別以后需要弄清楚已識別的風險可能何時何處發(fā)生,發(fā)生了會怎么樣。風險分析的任務(wù)是分析每個風險可能造成的影響,給出風險大小的量值。進行分析可

28、以借助一些已有的模型,但也并非所有巳列出的風險都可借助模型進行分析,因此,常常采用的是主觀分析。如果將成本模型用于成本估算和進度計劃估算,那么該模型便可用來評估成本風險和進度計劃風險。 風險分析的其他方法還包括:研究各種可能判定的概率和結(jié)果(判定分析);理解任務(wù)取決于判定關(guān)鍵活動以及不能13.3 風險管理 及時完成這些任務(wù)的概率或成本(網(wǎng)絡(luò)分析);有關(guān)各種質(zhì)量因子,如可靠性和可用性的風險(質(zhì)量因子分析);以及如果對系統(tǒng)的性能有嚴格限制,早期借助于模擬等手段進行性能評估(性能分析)。3風險排序 識別出風險,并對其進行了分析將使我們初步弄清可能妨礙達到項目目標的危險事件,然而各種風險的后果會有很大

29、的差別,我們必須對其加以區(qū)別,以便把管理者的目光集中到最高風險的事件上。 13.3 風險管理 (1)風險概率。風險概率指的是風險事件出現(xiàn)的可能性,我們把各種概率值的風險劃分為3類:低概率風險、中概率風險和高概率風險。3類風險的概率取值按右表劃分。 (2)風險影響。風險影響的大小需要加以度量,如可以用損失的金額數(shù)來衡量。但為了簡單和直觀,可以把風險影響分為4個等級,并按1到10來賦值。如右表所示。13.3 風險管理 (3)風險排序的步驟 對已識別和分析了的風險估計概率的類別。 評估每個風險對項目的影響級。 風險排序應根據(jù)該項目各有關(guān)風險的概率和風險影響。 針對排序列在前位的幾個風險采取緩解措施和

30、跟蹤措施。(4)風險顯露(risk exposure) 風險顯露計算。有時需要精確地進行風險排序,這就要求針對每個風險對項目的威脅究竟有多大,做出量化的評定。風險對項目威脅的大小可用風險顯露來表示,它既和風險概率有關(guān),也和風險發(fā)生造成損失的大小有關(guān)。于是有13.3 風險管理 RE(R)=Prob(R)Loss(R)式中:RE(R)是風險R的發(fā)生可能給項目造成的損失; Prob(R)是風險R發(fā)生的概率; Loss(R)是風險R如果發(fā)生會造成的損失。 風險顯露計算實例。這里以回歸測試工作為例,討論風險顯露的計算。 所謂回歸測試是軟件測試中的一種特定的測試。在軟件測試發(fā)現(xiàn)問題以后加以糾正,但糾正究竟

31、做得怎么樣是很值得重視的,必須保證糾正沒有帶來新的問題。為防止出現(xiàn)這些情況,原則上應該遵循回歸測試的要求,即只要改過了的程序就必須重新進行測試,否則會有誤改的風險。 13.3 風險管理 右圖為是否進行回歸測試共6種可能事件的風險顯露計算。圖中對6種可能事件分別列出了其概率值P及事件出現(xiàn)會造成的損失L,圖的右部則是按前述公式RE=ProbLoss計算出的風險顯露。在將前3種事件和后3種事件的風險顯露分別求和得到的數(shù)值(圖的最右端)后,便可得出結(jié)論:不做回歸測試要比做回歸測試可能給項目造成的損失要大得多。顯然,回歸測試是十分必要的。13.3 風險管理 13.3 風險管理 風險控制是由項目管理人員為

32、減輕風險造成危害要采用的一些主動措施。我們無法消除所有的風險,只能借助采取的措施,以人們可接受的方式處理有害結(jié)果,從而減輕風險,使風險損失降低到最小。 風險管理通常是從風險管理策劃開始,繼而實施風險計劃(或稱風險化解)和風險監(jiān)控。1風險管理策劃 風險管理策劃是要針對每個已經(jīng)過識別和分析認為應該受風險控制控的風險制定風險管理計劃。按Boehm的意見,風險管理計劃主要包括以下5個方面。 該項風險為什么重要,為什么一定要管理。 風險管理應該能夠提供什么以及什么時候提供。 實施這些風險管理活動的責任人是誰。 風險怎么能夠得到減輕,該采取什么措施。 需要什么資源。 策劃風險管理的一個明顯的策略是風險回避

33、,就是采取措施回避風險。另外,也可采用有效的措施來減輕風險,對于那些無法回避的風險則應設(shè)法降低風險變?yōu)楝F(xiàn)實的概率,或是把風險發(fā)生造成的損失降低。 13.3 風險管理 2風險化解 風險化解是要實際消除風險或是減輕風險。實施風險管理計劃從根本上講就是將風險化解,如若計劃采用風險回避,那就要開展若干回避風險的活動。 為了幫助選擇風險減輕的方法,必須考慮減輕風險的成本。我們把風險顯露的損失差與風險減輕成本的比稱為風險杠桿(risk leverage),即 顯然,如果風險杠桿值不足以支持所采用的風險減輕的措施,那就要尋求更為低成本且更為高效的風險減輕方法。13.3 風險管理 有時可以選擇開發(fā)過程來減輕風

34、險,如開發(fā)原型可以有助于理解需求和設(shè)計,從而減輕風險。 風險管理計劃中記載了所做出的決策,它可讓顧客和開發(fā)組來審查可能發(fā)生的問題如何避免,以及這些問題一旦出現(xiàn),該如何應對。隨著項目的進展,我們要隨時予以監(jiān)控,定期地對風險進行再評估,包括其發(fā)生的概率及可能造成的影響。13.3 風險管理 13.3 風險管理 3風險監(jiān)控(1)隨時監(jiān)控的必要性 由于風險是一些概率事件,它經(jīng)常依賴于外部因素。在外部因素改變以后,風險構(gòu)成的威脅可能和以前的評估有很大的差別。顯然,對風險的理解也要隨時間改變,進而所采取的風險化解措施可能影響著對風險的認識。(2)跟蹤監(jiān)控 上述的風險動態(tài)特性表明,不應把項目的風險看成是靜止不

35、動的。必須定期地對風險進行重新評估,并且除去要監(jiān)控那些已策劃的風險化解措施的實施情況外,需要對整個項目風險怎樣認識作定期的重新考察。 借鑒大量項目實踐中獲得的風險管理經(jīng)驗和教訓,以下給出若干有益的建議。(1)要承認風險是客觀存在的,不可能完全避免。(2)對風險的認識最好組織開放式的討論,這樣做本身就能夠提高認識,降低風險的影響。(3)獎勵那些防止風險發(fā)生的人,不要只是懲罰和處分造成風險的人。(4)不應僅僅關(guān)注易于處理的風險。(5)不要試圖同時管理過多的風險。做好風險管理的建議 13.3 風險管理 (6)要記錄風險的情況。(7)把風險管理納入項目管理。(8)初期階段不必過分強調(diào)量化管理。(9)不

36、應追求實施風險管理的成本效益比。(10)記住,風險計劃本身又可能帶來新的風險,也可能會提高產(chǎn)品的成本。(11)回避風險應看成是最后的手段,采取時必須十分謹慎。(12)在組織級上采用風險數(shù)據(jù)庫,以便于項目之間借鑒風險數(shù)據(jù)。13.3 風險管理 1值得重視的現(xiàn)象 軟件項目能否按計劃的時間完成,及時提交產(chǎn)品是項目管理的一個重要課題。我們都希望按計劃及時完成,但項目未能按預期的進度提交產(chǎn)品,延誤工期的現(xiàn)象經(jīng)常會出現(xiàn)。我們必須重視這一現(xiàn)象,分析其原因,并有針對性地采取措施。2制訂項目進度安排的條件 制訂項目進度安排計劃是為了實施,自然希望越準確,越符合實際越好,但是怎樣才能做到這一點,需要在這以前做些工作

37、,創(chuàng)造良好的條件,使得進度安排的確定是有13.4 進度管理進度控制問題 根據(jù)的。這些條件包括以下7條:(1)項目分解。無論多么大、多么復雜的項目都必須首先將其劃分成能夠管理的若干活動和若干任務(wù),并且往往這種分解是多個層次的。 (2)確定各部分之間的相互關(guān)系。劃分后的活動和任務(wù)按項目本身的要求,必定存在著一定的相互依賴關(guān)系,如誰先誰后,或是兩者應該并行互不依賴等。 (3)時間分配。為每項活動和任務(wù)分配需要的時間,如需要多少人天的工作量。13.4 進度管理(4)確認投入的工作量。應確認按項目要求的人力投入工作量在實際工作中能夠予以滿足,而不致出現(xiàn)某些工作階段人力投入不足的現(xiàn)象。(5)確定人員的責任

38、。(6)規(guī)定工作成果。任何分配的任務(wù)都應給出符合要求的工作成果,它應該是整個項目的一個組成部分。(7)規(guī)定里程碑。任何一項工作完成后需經(jīng)過一定形式的檢驗,如經(jīng)過評審或?qū)徍耍ㄅ鷾剩┑玫秸J可,被認為確已完成,表示一個里程碑已經(jīng)完成。里程碑也被稱為基線。 13.4 進度管理 甘特圖(Gantt chart)是表示工作進度計劃以及工作實際進度情況最為簡明的圖示方法。甘特圖中橫坐標表示時間,以水平線段表示子任務(wù)的工作階段,可以為其命名。線段的起點和終點分別對應著該項子任務(wù)的開工時間和完成時間,線段的長度表示完成它所需的時間,有實線和虛線之分,一開始做出各項子任務(wù)的計劃時間,應該都以虛線表示。如下圖所示。

39、圖中A、B、C、D、E 5個子任務(wù)隨著時間的進展一條垂直于各條線段的縱線逐漸右移,它將掃過的虛線變成實線,表示應該完成的任務(wù),縱線右邊的虛線是待完成的任務(wù)。13.4 進度管理甘特圖 上圖中我們可以清楚地看出各項子任務(wù)在時間對比上的關(guān)系。然而甘特圖無法表達多個子任務(wù)之間更為復雜的銜接關(guān)系。下圖給出了某項目甘特圖的實例,圖中可表明各項任務(wù)的責任人及計劃時間數(shù)和實際完成的時間數(shù),似乎更為實用。 13.4 進度管理13.4 進度管理 為克服甘特圖的缺點,將甘特圖做了一些修改,形成了時標網(wǎng)狀圖(time scalar network),如右圖所示。圖中的任務(wù)以有向線段表示,其指向點表示任務(wù)間的銜接點,并

40、且都給予編號,可以顯示出各子任務(wù)間的依賴關(guān)系。它顯示出比甘特圖具有優(yōu)越性。13.4 進度管理時標網(wǎng)狀圖 活動賦值與復審方法(program evaluation and review techique,PERT)也稱網(wǎng)絡(luò)圖方法,或簡稱PERT圖方法,它的另一名稱是關(guān)鍵路徑法(critical path method,CPM)。 PERT圖中以有向的箭頭作為邊表示子任務(wù),它是有名稱(即子任務(wù)名)、有長度(即完成此項子任務(wù)所需的時間)的向量;以有編號的圓圈作為結(jié)點,它應該是子任務(wù)向量的始發(fā)點或指向點。由若干條邊和若干個結(jié)點構(gòu)成了網(wǎng)狀圖,于是我們可以沿相互銜接的子任務(wù)形成的路徑,進行路徑長度的計算、

41、比較和分析,從而實現(xiàn)項目工期的控制。 13.4 進度管理PERT圖 我們先來看一個軟件開發(fā)實例。假定某一開發(fā)項目,進入編碼階段以后,考慮如何安排3個模塊A、B、C的開發(fā)工作。若A為一公共模塊,模塊B和C的測試有賴于A的調(diào)試通過。模塊C是利用現(xiàn)成的已開發(fā)模塊,對它需要看懂后,加以局部的修改。直到B和C做集成測試為止。這些工作步驟按以下網(wǎng)狀圖來安排。 13.4 進度管理 把前面甘特圖和時標網(wǎng)狀圖的例子畫成PERT圖,如下圖所示。讓我們對它做進一步分析。在每個結(jié)點圓圈附近的方框內(nèi)有兩個數(shù)字,表示的是從起點算起該結(jié)點最早啟動時間和最遲啟動時間。13.4 進度管理 以結(jié)點5為例,從起始結(jié)點到達結(jié)點5有兩

42、條路經(jīng):0125,所用時間為9周;另一路徑是0345,所用時間為11周。由于子任務(wù)E2要求A3和E1都完成以后才開始,即使由前一路徑已先期到達5號結(jié)點,E2也不能開始,必須再等2周,E1到達后,E2才能開始,因此,5號結(jié)點附近的上方框內(nèi)記為11(而不是9),這一數(shù)字表明該結(jié)點的最早啟動時間。其他有多個箭頭指向的結(jié)點均有類似情況,如結(jié)點7和8。另一方面,從終點逆向推進,在不影響任務(wù)進度的條件下,可得到各結(jié)點的最遲啟動時間。以結(jié)點3為例:沿路徑8543倒推至結(jié)點3應為5周啟動(15343=5);但沿路徑873則應4周啟動13.4 進度管理(1583=4),因此,結(jié)點3最遲啟動時間為4周,在該結(jié)點附

43、近的下方的框內(nèi)記為4(而不是5)。依此方法給每個結(jié)點的上下方框內(nèi)均添入時間。我們特別注意到:0、3、7、8這四個結(jié)點的上下框內(nèi)數(shù)字相同,這表明在這些結(jié)點上沒有停留的動機時間,這些結(jié)點構(gòu)成的路徑所用時間是任務(wù)完成的最短時間,稱此路徑為關(guān)鍵路徑。其他結(jié)點上兩個數(shù)字不等,其差值為在此結(jié)點的機動時間。顯然,嚴格控制好關(guān)鍵路徑上各子任務(wù)的工期就能保證整個項目如期完成,不致延誤。 在組織較為復雜的任務(wù)時,或是需要對特定的子任務(wù)進一步作更為詳細的計劃時,我們可以使用分層的PERT圖。如13.4 進度管理下圖所示,在父圖No.0上的子任務(wù)P和Q均已分解出對應的兩個子圖:No.1和No.2。13.4 進度管理

44、軟件需求在軟件產(chǎn)品的整個生存期中占有重要位置,它是軟件工程項目的依據(jù)和出發(fā)點,無論是軟件的開發(fā)還是軟件的維護都是以軟件需求作為前提的。為了順利地提供高質(zhì)量的軟件產(chǎn)品,依開發(fā)人員的觀點,軟件需求最好是清晰、正確、穩(wěn)定的。然而,用戶在開發(fā)過程中提出需求變更不可能完全避免。這就要求軟件人員能及時解決變更需求給開發(fā)工作帶來的沖擊,調(diào)整變更前已完成的那部分工作,使最終拿出的軟件產(chǎn)品滿足變更后的用戶需求。 需求管理正是要解決對于軟件人員來說十分棘手的上述問題。解決好需求管理問題是不成熟的軟件組織走向成熟邁出的第1步。 13.5 需求管理1系統(tǒng)和系統(tǒng)需求分配 (1)系統(tǒng)。通??紤]的系統(tǒng)是指基于計算機的系統(tǒng)或

45、計算機控制的系統(tǒng),它是在計算機控制下完成特定功能的系統(tǒng),如航空管制系統(tǒng)生產(chǎn)控制系統(tǒng)等。(2)系統(tǒng)需求分配。系統(tǒng)完成的職能應由系統(tǒng)需求體現(xiàn),而系統(tǒng)的需求通常是由用戶提出的。這里“用戶” 可能是客戶,也可能是最終用戶。而客戶可以是代理商,在其背后有許多最終用戶;還可以廣泛地被解釋為系統(tǒng)工程組、銷售組等。 13.5 需求管理系統(tǒng)需求與軟件需求 系統(tǒng)工程組面對用戶,負有開發(fā)系統(tǒng)的責任。系統(tǒng)工程組在從用戶那里取得系統(tǒng)需求以后,應將系統(tǒng)需求進行分解,也就是把已確定的系統(tǒng)需求分配給系統(tǒng)的各個組成部分。下圖為系統(tǒng)需求分配中各方面之間的相互關(guān)系。13.5 需求管理 顯然,軟件工程組負有開發(fā)系統(tǒng)中軟件部分的任務(wù)。

46、可以從系統(tǒng)工程組那里得到“分配給軟件的系統(tǒng)需求” ,在對其分析和研究以后,便得到軟件開發(fā)的依據(jù)軟件需求。 下面給出一個汽車限速系統(tǒng)ACCS需求分配的實例,如下圖所示。該系統(tǒng)的職能是當汽車速度超出預定的范圍時,由計算機硬件、軟件及相關(guān)機構(gòu)加以控制。圖13-14給出了汽車限速系統(tǒng)的需求分配,其中,系統(tǒng)的需求是使汽車保持在預期車速的2km/h范圍內(nèi)行駛。在將此系統(tǒng)需求分解以后,分配給硬件的系統(tǒng)需求是,要使車速在規(guī)定的精確度13.5 需求管理1.5km/h范圍之內(nèi)。分配給軟件的系統(tǒng)需求是,在車速超出預定車速0.5km/h時,給硬件加速或減速的命令。 13.5 需求管理汽車限速系統(tǒng)ACCS的需求分配 2

47、軟件需求(1)軟件需求定義 軟件需求是用戶為解決某個問題或是為實現(xiàn)某個目標,要求軟件必須滿足的條件或能力。軟件需求可能由分配給軟件的需求得到,也可能由客戶或最終用戶提出。軟件需求的3個層次如上圖所示。 業(yè)務(wù)需求:客戶對軟件的高層目標要求。 用戶需求: 用戶使用軟件必須達到的要求和完成的任務(wù); 通常在用況(use case)或場景(scenario)中加以說明。13.5 需求管理 功能和非功能需求:規(guī)定了開發(fā)人員必須實現(xiàn)的需求,它的實現(xiàn)將滿足上述業(yè)務(wù)需求和用戶需求。通常以需求規(guī)格說明(requirement specification)的形式加以詳盡描述。非功能需求包括以下兩種。 過程需求:交付

48、需求、實現(xiàn)需求、遵循的標準。 外部需求:互操作性、倫理性、機密性、安全性等。(2)質(zhì)量功能展開 質(zhì)量功能展開(quality function development,QFD)是將客戶的要求轉(zhuǎn)化為軟件技術(shù)需求的質(zhì)量管理方法,其目標在于使軟件工程過程最大程度地讓客戶滿意。該方法強調(diào)軟件開發(fā)者必須充分理解,究竟什么需求和功能是對客戶最13.5 需求管理有價值的,然后通過工程過程將其展開和實現(xiàn)。 QFD將客戶的需求分為3類,這3類表明了客戶需求的不同層次。 常規(guī)需求:客戶明確提出的需求。 期望需求:一些隱含而未被客戶明確提出的需求。如果軟件開發(fā)組弄清了是那些,并且在產(chǎn)品中得到實現(xiàn),客戶就會欣然接受;

49、但若相反,產(chǎn)品中并未實現(xiàn)隱含的期望,客戶就會表現(xiàn)出很大的不滿,也可稱此為客戶的潛在需求。 興奮需求:客戶完全沒有想到的需求,如果產(chǎn)品中未將其實現(xiàn),客戶并不抱怨;但若真的實現(xiàn)了,就會超出客戶的想象之外,他們會感到十分驚訝和非常滿意。 13.5 需求管理 需求工程是系統(tǒng)工程或軟件工程中解決需求問題的一個嶄新領(lǐng)域。其目標在于使工程得到的產(chǎn)品能夠準確、真實地體現(xiàn)客戶的需求,令客戶滿意。它包括需求開發(fā)與需求管理。如下圖所示。 13.5 需求管理需求工程 需求工程的構(gòu)成 需求開發(fā)與需求管理 1需求開發(fā) 需求開發(fā)是在開發(fā)人員與客戶雙方密切配合下完成的,任務(wù)是得到需求規(guī)格說明。需求開發(fā)工作包括以下4個方面。(

50、1)獲取需求。開發(fā)人員首先應確定產(chǎn)品的客戶群或產(chǎn)品的服務(wù)對象,全面了解開發(fā)工作面對的實際業(yè)務(wù)和業(yè)務(wù)需求。(2)分析需求。開發(fā)人員分析用戶提供的需求信息,區(qū)分業(yè)務(wù)需求、功能需求、非功能需求和質(zhì)量屬性等,并且弄清每項需求的必要性。(3)定義需求。確定下來的需求必須以正式文檔形式表達,這就是需求規(guī)格說明。13.5 需求管理(4)驗證需求。需求規(guī)格說明能否符合上述要求,需要經(jīng)過評審。當然,評審后要對發(fā)現(xiàn)的問題做出必要的修改。 2需求管理 需求管理是要解決在需求開發(fā)之后,也即得到需求規(guī)格說明之后,在后繼的開發(fā)工作過程中用戶提出了新的需求或變更了原定的需求,在這種情況下開發(fā)工作應如何處理。 需求管理會涉及

51、:(1)變更控制;(2)需求狀態(tài)跟蹤;(3)需求跟蹤;(4)需求文檔版本控制。 13.5 需求管理1需求變更難于完全避免 系統(tǒng)需求或軟件需求往往在開發(fā)工程中發(fā)生變更,提出變更有可能在開發(fā)的任何階段。通常,隨著時間的推移,開發(fā)工作進一步展開,人們對問題本身和對用戶的真正需求有了更為深入和透徹的了解,這時會發(fā)現(xiàn)基于對問題初始理解而提出和制定的初始需求有著不完善或不妥當之處,于是提出需求變更,這一現(xiàn)象并不少見。它是人對事物的認知規(guī)律決定的,要想完全避免是不可能的。需求變更 13.5 需求管理2需求變更原因分析 引發(fā)需求變更可能有多種因素。(1)單純的用戶因素。(2)市場形勢變化引發(fā)的需求變更。(3)

52、系統(tǒng)因素:在系統(tǒng)內(nèi)部,如計算機硬件、系統(tǒng)軟件或數(shù)據(jù)等的變更要求軟件與其相適應。(4)工作環(huán)境因素:與軟件運行相關(guān)的工作制度或法規(guī)、政策的變更,或是業(yè)務(wù)要求變更導致的需求變更。(5)需求開發(fā)工作缺陷,可能有兩種情況: 需求分析、定義和評審工作不夠充分。 需求開發(fā)中開發(fā)人員與用戶溝通得不夠充分。13.5 需求管理3需求變更對軟件開發(fā)工作的影響(1)使得變更前的開發(fā)工作和成果失效。(2)使得返工成為不得不采取的對策。(3)勢必帶來軟件開發(fā)計劃的相應變更,開發(fā)成本的相應增加和開發(fā)工作量及資源投入的追加。4需求變更失控可能導致的后果 在軟件開發(fā)過程中出現(xiàn)了需求的變更,如果忽視了對它的控制,沒有針對上述變

53、更造成的影響及時地采取有效措施,便可能導致開發(fā)出的產(chǎn)品不符合變更的需求,即得到的產(chǎn)品并不是用戶所需要的產(chǎn)品這樣的嚴重后果。 13.5 需求管理5降低需求變更風險的策略(1)在需求開發(fā)工作中要與客戶充分溝通 。(2)與用戶共同確定需求,認真聽取客戶意見,在雙方共同驗證確定了的需求后均應簽字以示承諾,希望以此減少頻繁改變需求的可能。(3)開發(fā)組織和用戶雙方簽署的項目開發(fā)合同中應包括開發(fā)中對出現(xiàn)需求變更的應對條款。(4)如果項目自身具有需求不易確定的特點,在項目啟動時最好采用快速原型方法或螺旋模型,以便在確認需求的基礎(chǔ)上開發(fā)產(chǎn)品。13.5 需求管理(5)在項目開始時,如估計到需求可能有變,則可在開發(fā)

54、計劃中適當留有余地,以防變更需求造成的被動。(6)嚴格實施變更控制,使產(chǎn)品質(zhì)量不致因需求變更受到影響。13.5 需求管理1需求變更控制要求(1)變更控制的策略 所有需求變更必須遵循需求變更控制規(guī)程實施變更。 需求變更提出后是否被接受應由專門的組織變更控制委員會審查決定。 不得以任何理由刪除和修改需求變更的原始文件。 應將已接受的需求變更通知到所有相關(guān)人員。 已接受的需求變更應能追溯到批準的變更請求。 對項目的需求賦予狀態(tài)屬性,以利于需求變更控制。 需求變更控制 13.5 需求管理(2)需求變更影響的控制 由于分配需求的變更導致軟件計劃、工作產(chǎn)品和活動的變更,因此對每一變更都應對其進行下述工作:

55、 識別; 評價; 風險分析; 編制文檔; 制訂計劃; 傳達給受影響的小組和人員; 跟蹤直至結(jié)束。 13.5 需求管理(3)變更控制的步驟 提出變更請求。 審理變更請求,進行變更影響評估,評估內(nèi)容包括: 變更所需人力投入; 變更對原計劃安排的影響; 估計變更引起的成本增加。 批準變更請求。 取得用戶的認可。 修訂項目計劃。 實施變更。 驗證變更。 13.5 需求管理 需求變更流程如下圖所示。13.5 需求管理2需求變更控制實施(1)需求變更請求 內(nèi)容 申請?zhí)枺鹤兏埱蟮捻樞蛱枴?變更說明:變更請求的概要描述。 變更類型:如合同變更、功能變更或性能變更等。 影響分析:扼要說明變更涉及的工作產(chǎn)品、工

56、作量和進度安排等。 變更請求狀態(tài):提出變更請求時正處在什么開發(fā)階段或正做什么工作。 變更請求日期。 13.5 需求管理 需求變更請求實例 如下表所示。13.5 需求管理(2)需求控制流 需求狀態(tài)。1)軟件需求在需求開發(fā)結(jié)束以后被確定下來,在其后繼階段開發(fā)工作中將逐步展開,加以實現(xiàn)。2)在不同的開發(fā)階段軟件需求以不同的形式進行著狀態(tài)的演變。 需求階段:從獲取的需求到定義的需求。 建議階段:制訂出項目計劃以后演化為承諾的需求。 設(shè)計階段:設(shè)計工作完成并經(jīng)驗收后成為設(shè)計的需求。13.5 需求管理 編碼階段:完成編碼和單元測試后成為實現(xiàn)的需求。 測試階段:完成確認測試后成為完成的需求。 3)下圖為生存

57、期各階段軟件需求狀態(tài)的演變。 演變。 下圖表明了生存期各階段中需求狀態(tài)的控制流。13.5 需求管理1需求可追溯性與需求變更控制 隨著開發(fā)工作的進展,需求狀態(tài)在各階段上也在演變著。如果將籠統(tǒng)的需求狀態(tài)演變概念加以具體化,考慮某一項特定的需求,它也必然隨著開發(fā)工作的進展而逐步擴展和演化。例如,某項需求A,在設(shè)計階段完成后得到設(shè)計A,編程后得到程序模塊A,測試中使用了測試用例A1,A2,An等。沿著這個線索,各個開發(fā)階段的工作產(chǎn)品之間存在的繼承關(guān)系是清晰的。如果以某種方式(例如以下給出的可追溯矩陣)對其做出確切的表達,那么需求變更無論出現(xiàn)在任何階段,都能沿著這一線索進行無遺漏的追蹤,對相關(guān)部分實施修

58、正和調(diào)整,最終做到變更控制。 可追溯性管理 13.5 需求管理2可追溯性管理的目標 實施需求可追溯性管理應使每一項需求均能追溯到:對應的設(shè)計、實現(xiàn)該項需求的代碼以及測試此項實現(xiàn)的用例。這樣便可做到確保軟件產(chǎn)品滿足所有需求,并已測試了所有需求,從而使表現(xiàn)前后繼承關(guān)系的脈絡(luò)清晰可見。3兩類不同的追溯(1)向前追溯:沿生存期從需求跟蹤到設(shè)計、編碼、測試等后繼階段輸出工作產(chǎn)品的相關(guān)元素。(2)向后追溯:從各階段工作產(chǎn)品的元素反向追溯,直至追溯到初始需求。13.5 需求管理4可追溯矩陣 下表所示為一個追溯矩陣的實例(表中只含一項需求)。(1)說明 需求號:需求規(guī)格說明中將每項需求編號,此為該項需求號碼。

59、 需求描述:扼要給出該項需求的說明,可以是關(guān)鍵字,也可以是需求規(guī)格說明的摘錄,但應是簡明的描述。13.5 需求管理 概要設(shè)計文檔索引號:概要設(shè)計規(guī)格說明對應此項需求部分的章節(jié)號。 對應的設(shè)計:簡要說明與此項需求對應的設(shè)計。 實現(xiàn):對應的程序名或程序模塊名,表中指出了由兩個模塊實現(xiàn)此項需求。:3級測試中使用了這些編號的測試用例(編號與測試用例的對應表暫略)。(2)矩陣的作用 完整的追溯矩陣應將所有的需求分項一一列出,這樣做可防止遺漏,避免因未實現(xiàn)某項需求,或因需求出現(xiàn)變更未及時修改相關(guān)的部分而造成產(chǎn)品缺陷或造成返工。13.5 需求管理 可為評審提供方便,矩陣有利于判斷全面實現(xiàn)需求的情況。 在需求

60、變更時便于進行變更影響追蹤、分析和檢查。(3)矩陣的建立與維護 追溯矩陣初建時只有左邊兩欄和,因為此時尚屬需求階段,隨后開發(fā)工作進入設(shè)計階段,在設(shè)計評審后可填入和兩欄;接著在編碼完成及單元測試、集成測試和驗收測試后,分別填入、和各欄內(nèi)容。 按此矩陣的要求,項目各工作產(chǎn)品的重要部分,包括需求、設(shè)計、程序和測試用例均應有編號作標識,以利于檢索追蹤。 13.5 需求管理(4)矩陣的應用 追溯矩陣主要應用在兩個方面。 完整性檢驗 考察有無需求遺漏的情況。要求矩陣中需求號與需求規(guī)格說明中的需求編號一一對應,如有遺漏可非常容易地發(fā)現(xiàn)。 有無冗余代碼??蓮木仃囍锌吹绞欠衩總€程序單元、類或其他元素均已列入。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論