版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三章 軟件項目管理,項目管理的概念 軟件項目度量 軟件項目計劃與估算 風險分析和管理 項目進度安排 軟件質量保證 軟件配置管理,項目管理的譜系,軟件項目管理的目的、任務和內容,目的 為了使軟件項目能夠在預定成本、進度、質量的前提下順利完成,必須對軟件工程項目進行計劃、組織、監(jiān)控和管理 任務 制定軟件項目的實施計劃和方案; 對人員進行組織和分工; 按照計劃進度,以及成本管理、風險管理、質量管理的要求進行軟件開發(fā),完成軟件項目的各項要求和任務。,3.1.1 軟件度量,軟件度量的概念 軟件規(guī)模度量 軟件功能度量,3.1 軟件項目度量,軟件度量分類,3.1.1.1 度量、估算,度量 metrics
2、度量具有數(shù)字特征,軟件工程范圍的度量是軟件開發(fā)過程、軟件資源或軟件產(chǎn)品簡單屬性的定量描述。 如,程序規(guī)模、操作符個數(shù)、程序中錯誤的個數(shù)等。 估算 estimation 對軟件產(chǎn)品、過程、資源進行預測 估算可以采用經(jīng)驗公式、或參考歷史資料 估算用于事前簽訂合同、立項、制定工作計劃等,軟件的外部屬性和內部屬性 外部屬性 軟件產(chǎn)品、過程、資源與環(huán)境的關系 如,成本、效益、勞動生產(chǎn)率、可靠性、可維護性 內部屬性 軟件產(chǎn)品、過程、資源、環(huán)境自身的屬性 如,產(chǎn)品結構、模塊化程度、復雜性、程序長度等。,產(chǎn)品-過程-資源,產(chǎn)品的內部屬性 程序代碼長度 程序功能 模塊化 重用性 控制流 數(shù)據(jù)流 模塊耦合度與內聚
3、度 產(chǎn)品的外部屬性 程序的可靠性 可用性 可維護性 軟件的可理解性 有效性 可移植性,過程的內部屬性 工作量 計劃和進度 一段時間內某類事件發(fā)生的次數(shù) 過程的外部屬性 成本 可控制性 可觀察性 穩(wěn)定性 資源的內部屬性 人 軟硬件環(huán)境 方法 經(jīng)驗 資源的外部屬性 成本 時間,3.1.1.2 面向規(guī)模的度量,代碼行數(shù) LOC或KLOC 生產(chǎn)率 Pl=L/E 其中 L 軟件項目代碼行數(shù) E 軟件項目工作量(人月 PM) Pl 軟件項目生產(chǎn)率(LOC/PM) 代碼出錯率 EQRl=Ne/L 其中 Ne 軟件項目的代碼錯誤數(shù) EQRl 每千行代碼的錯誤數(shù),每行代碼平均成本 Cl=S/L 其中 S 軟件項
4、目總開銷(元美元) Cl軟件項目每行代碼的平均成本 文檔與代碼比 Dl=Pd/L 其中 Pd 軟件項目文檔頁數(shù) Dl 每千行代碼的平均文檔數(shù),例 軟件項目記錄,生產(chǎn)率:Pl=L/E=12.1kLoc/24PM=504Loc/PM 出錯率:EQRl=Ne/L=29個/12.1kLoc=2.4個/kLoc 平均成本: Cl=S/L =168 000美元/12.1kLoc= 13.88美元/Loc 每千行代碼的平均文檔頁數(shù): Dl=Pd/L=365Pd/ 12.1kLoc=30.16Pd/kLoc,規(guī)模度量的優(yōu)缺點,用軟件代碼行數(shù)估算軟件規(guī)模簡單易行。 缺點 代碼行數(shù)的估算依賴于程序設計語言的功能和
5、表達能力; 采用代碼行估算方法會對設計精巧的軟件項目產(chǎn)生不利的影響; 在軟件項目開發(fā)前或開發(fā)初期估算它的代碼行數(shù)十分困難; 代碼行估算只適用于過程式程序設計語言,對非過程式的程序設計語言不太適用等等。,根據(jù)事務信息處理程序的基本功能定義的,在系統(tǒng)設計初期可以估算出軟件項目的規(guī)模 FP=CT*0.65+0.01*Fi 其中:CT按表3.1計算() Fi 是復雜性調節(jié)值 Fi 取值 0,1,.,5 當 Fi = 0 時,表示 Fi 不起作用 Fi = 5 時,表示 Fi 作用最大,3.1.1.3 面向功能的度量,表3.1 功能點度量,測量參數(shù) 值 權值 用戶輸入數(shù) *4 用戶輸出數(shù) *5 用戶查詢
6、數(shù) *4 文件數(shù) *7 外部界面數(shù) *7 CT ,表3.1中的五個信息量按下列方式取值 用戶輸入數(shù) 用戶為軟件提供的輸入?yún)?shù)個數(shù) 用戶輸出數(shù) 軟件系統(tǒng)為用戶提供的輸出參數(shù)個數(shù) 用戶查詢數(shù) 一個聯(lián)機輸入確定一次查詢,軟件以 聯(lián)機輸出的形式,實時地產(chǎn)生一個響應 文件數(shù) 統(tǒng)計邏輯的主文件個數(shù) 外部界面數(shù) 統(tǒng)計所有機器可讀的界面,利用這些 界面可以將信息從一個系統(tǒng)傳送到另一 個系統(tǒng),用功能點定義相應的概念 生產(chǎn)率: Pf=FP/E 其中 Pf表示每人月完成的功能點數(shù) 平均成本: Ci=S/FP 其中 Ci表示每功能點的平均成本 文檔與功能點比: Di=Pd/FP 其中 Di表示每個功能點平均具有的文檔
7、頁數(shù) 代碼出錯率: EORi=Ne/FP 其中 EORi表示每個功能點的平均錯誤個數(shù),面向功能的度量,軟件規(guī)模的功能點度量沒有直接涉及軟件系統(tǒng)本身的算法復雜性。 1986年Jones把軟件項目中的算法復雜性因素引入到功能點計算中來,為了避免混淆,我們把Albrecht定義的功能點稱為簡單功能點,用FPs表示,把Jones推廣的功能點稱為功能點,用FP表示。 推廣的功能點包括計算機程序中用于各類問題求解的算法因素,如求解線性代數(shù)方程組、遍歷二叉樹的各個結點、處理中斷等等。 功能點計算仍用上面的公式,其中CT按表3.2計算。,表3.2 推廣的功能點度量,測量參數(shù) 值 權值 用戶輸入數(shù) *4 用戶輸
8、出數(shù) *5 用戶查詢數(shù) *4 文件數(shù) *7 外部界面數(shù) *7 算法 *3 CT 對一般的工程計算或事務處理軟件,用表3.1和表3.2兩種方法計算出來的FP值應該基本上相同 對于比較復雜的軟件系統(tǒng) FP比FPs的值高20%35%,面向功能的度量的優(yōu)缺點,優(yōu)點 與程序設計語言無關,它不僅適用于過程式語言,也適用于非過程式的語言; 軟件項目開發(fā)初期就能基本上確定系統(tǒng)的輸入、輸出等參數(shù),功能點度量能用于軟件項目的開發(fā)初期。 缺點 它涉及到的主觀因素比較多,如各種權函數(shù)的取值; 信息領域中的某些數(shù)據(jù)有時不容易采集; FP的值沒有直觀的物理意義。,3.1.1.4 代碼行度量與功能點度量的比較,代碼行度量依
9、賴于程序設計語言,而功能點度量不依賴于程序設計語言。 Albrecht和Jones等人對若干軟件采用事后處理的方式分別統(tǒng)計出不同程序設計語言每個功能點與代碼行數(shù)的關系,用LOC/FP的平均值表示。 表3.3表明,一行Ada語言代碼的“功能”平均是一行FORTRAN語言代碼“功能”的1.4倍。一行四代語言代碼的“功能”平均是一行傳統(tǒng)程序設計語言代碼“功能”的3至5倍。,表3.3 各種語言的LOC/FP(平均值),程序設計語言 LOC/FP(平均值) 匯編語言 300 COBOL 100 FORTRAN 100 Pascal 90 Ada 70 面向對象的語言 30 四代語言(4GL) 20 代碼
10、生成器 15,3.1.2軟件復雜性度量,1976年 T.J.McCabe McCabe度量法又稱環(huán)路復雜性度量,基于程序控制結構的軟件復雜性度量模型。 程序控制結構圖 程序結構對應于有一個入口結點和一個出口結點的有向圖 圖中每個結點對應一個語句或一個順序流程的程序代碼塊 弧對應于程序中的轉移 它基于一個程序模塊的程序圖中環(huán)路的個數(shù),因此計算它先要畫出程序圖。 程序圖是退化的程序流程圖。流程圖中每個處理都退化成一個結點,流線變成連接不同結點的有向弧。,McCabe度量法,McCabe用程序控制結構圖的巡回秩數(shù)V(G)作為程序結構復雜性的度量 V(G) = e-n+2 其中:e為結構圖的邊數(shù) n為
11、結構圖的結點數(shù) 可以證明 V(G)等于結構圖中有界或無界的封閉區(qū)域個數(shù),例3.1計算程序控制結構的V(G)值,E = 1 E = 3 N = 2 N = 3 V = 1 V = 2,計算程序控制結構的V(G)值,E = 4 E = 3 N = 4 N = 3 V = 2 V = 2,計算程序控制結構的V(G)值,E = 6 N = 5 V = 3,例3.1 計算如圖所示程序控制結構圖的V(G)值。 (a) e=1,n=2,v=1; (b) e=3,n=3,v=2; (c) e=4,n=4,v=2; (d) e=3,n=3,v=2; (e) e=6,n=5,v=3.,示例:,在前面的例示中, n
12、11, m13,V(G)mnp131113. p1,McCabe建議把V(G)作為模塊規(guī)模的定量指標,一個模塊V(G)的值不要大于10 當V(G)10時,模塊內部結構就會變得復雜,給編碼和測試帶來困難。,這種度量的缺點是: 對于不同種類的控制流的復雜性不能區(qū)分 簡單IF語句與循環(huán)語句的復雜性同等看待 嵌套IF語句與簡單CASE語句的復雜性是一樣的 模塊間接口當成一個簡單分支一樣處理 一個具有1000行的順序程序與一行語句的復雜性相同,3.2 軟件項目計劃與估算,3.2.1 軟件項目計劃,軟件項目管理人員在開發(fā)工作一開始需要進行定量估算。 軟件項目計劃的目標是提供一個能使項目管理人員對資源、成本
13、和進度做出合理估算的框架。 這些估算應當在軟件項目開始時的一個有限的時間段內做出,并且隨著項目的進展定期進行更新。,軟件項目計劃的目標,軟件的范圍,軟件范圍包括功能、性能、限制、接口和可靠性。 估算開始時,應對軟件的功能進行評價,對其進行適當?shù)募毣员闾峁└敿毜募毠?jié)。由于成本和進度的估算都與功能有關,因此常常采用某種程度的功能分解。 性能的考慮包括處理和響應時間的需求。 約束條件則標識產(chǎn)品成本、外部硬件、可用存儲或其它現(xiàn)有系統(tǒng)對軟件的限制。 軟件與其它系統(tǒng)元素是相互作用的。要考慮每個接口的性質和復雜性,以確定對開發(fā)資源、成本和進度的影響。,軟件開發(fā)中的資源,3.2.2 軟件項目估算,常用的估
14、算方法 參照已經(jīng)完成的類似項目估算待開發(fā)項目的成本和工作量。 將大的項目分解成若干子項目,在估算出每個子項目成本和工作量之后,再估算整個項目。 將軟件項目按軟件生存周期分解,分別估算出軟件項目在軟件開發(fā)各個階段的工作量和成本,然后再把這些工作量和成本匯總估算整個項目。 根據(jù)實驗或歷史數(shù)據(jù)給出軟件項目工作量或成本的經(jīng)驗估算公式。,四種方法可以同時、單獨或組合使用,以便取長補短,提高項目估算的精度和可靠性。 采用分解技術估算軟件項目應考慮系統(tǒng)集成時需要的工作量。 為了實現(xiàn)軟件項目估算,實踐中開發(fā)了大量的軟件項目自動估算工具,用以支持軟件工作量或成本估算。,分解技術 采用”分而治之”的策略進行軟件項
15、目估算.將項目分解為若干個主要的功能及相關的軟件工程活動,通過逐步求精的方式進行成本及工作量估算。 經(jīng)驗估算模型 可用于補充分解技術 自動估算工具 實現(xiàn)一種或多種分解技術或經(jīng)驗模型,與人機交互結合,自動估算將是很好的選擇。,3.2.2.1 代碼行、功能點和工作量估算,軟件項目的規(guī)模是影響軟件項目成本和工作量的重要因素。 軟件項目代碼行和功能點估算是成本和工作量估算的基礎。 采用上面的估算方法可以估算出LOC或FP的樂觀值a,悲觀值b和一般值m,然后根據(jù)下列加權公式計算出期望值 e=(a4mb)6 希望LOC或FP的值落在區(qū)間a,b之外的概率極小,當LOC或FP的期望值估算出來之后,根據(jù)以前軟件
16、項目開發(fā)的平均生產(chǎn)率LOC/PM或FP/PM就可以計算出工作量。 如,軟件項目的規(guī)模估算為310FP,以前完成的軟件項目的生產(chǎn)率為5.5FP/PM,于是工作量估算為E=310/5.5=56PM。,例 3.2 估算計算機輔助設計軟件項目,將CAD項目按功能分解為七個子項目 用戶界面和控制; 二維幾何分析; 三維幾何分析; 數(shù)據(jù)庫管理; 計算機圖形顯示; 外設控制; 設計分析。 表3.4給出七個子項目代碼行的樂觀估計、悲觀 計和一般估計值,然后計算出加權平均值。,估算計算機輔助設計軟件項目,分析七個子項目的規(guī)模復雜性和難度,參照以前開發(fā)類似項目的經(jīng)驗給出開發(fā)每行代碼的平均成本,每月開發(fā)的代碼行數(shù)。
17、 用這兩組數(shù)據(jù)計算出七個子項目的開發(fā)成本和工作量。 最后匯總的CAD軟件開發(fā)項目 規(guī)模為 33360 LOC 成本為 656680 $ 工作量為 144.5 PM。,再用這兩種方法分別估算軟件開發(fā)子項目在軟件工程各個階段的工作量,估算結果列入表3.5。 兩種方法估算的工作量分別為144.5PM和152.5PM,相差5%左右。 估算的成本分別為656680$和708075$,相差7%左右。 兩種方法估算的工作量和成本基本一致。,表3.4 代碼行和成本、工作量估算,功能 樂觀 一般 悲觀 加權 $ LOC 成本 工作量 LOC LOC LOC 平均 /LOC /PM (人月) 用戶界面控制1790
18、 2400 2650 2340 14 315 32760 7.4 二維幾何分析4080 5200 7400 5380 20 220 107600 24.4 三維幾何分析4600 6900 8600 6800 20 220 136000 30.9 數(shù)據(jù)庫管理 2900 3400 3600 3350 18 240 60300 13.9 圖形顯示 3900 4900 6200 4950 22 200 108900 24.7 外設控制 1990 2100 2450 2140 28 140 59920 15.2 設計分析 6600 8500 9800 8400 18 300 151200 28.0 總計
19、 33360 656680 144.5,表3. 5工作量估算,功能 需求分析 設計 編碼 測試 總計 用戶界面控制 1.0 2.0 0.5 3.5 7 二維幾何分析 2.0 10.0 4.5 9.5 26 三維幾何分析 2.5 12.0 6.0 11.0 31.5 數(shù)據(jù)庫管理 2.0 6.0 3.0 4.0 15 計算機圖形顯示 1.5 11.0 4.0 10.5 27 外設控制 1.5 6.0 3.5 5.0 16 設計分析 4.0 14.0 5.0 7.0 30 總計(人月) 14.5 61 26.5 50.5 152.5 每人月成本 5200 4800 4250 4500 成本() 75
20、400 292800 112625 227250 708075,3.2.2.2 經(jīng)驗估算模型之一 CoCoMo模型,計算機軟件的估算模型是根據(jù)以前完成項目的實際數(shù)據(jù)導出的,用于軟件項目的計劃階段。 模型是根據(jù)“從前的”,“局部的”數(shù)據(jù)得出的,估算模型不可能完全適用于當前所有的軟件項目和全部開發(fā)環(huán)境。這些模型的計算結果僅供參考。 兩個常用的估算模型 CoCoMo模型 Putnam模型,CoCoMo模型,1981年Boehm提出“構造性成本模型”(Constructive Cost Model),簡稱CoCoMo模型。它是在靜態(tài)、單變量模型的基礎上構造出來的。 CoCoMo模型分為基本、中間、詳細
21、三個層次,分別用于軟件開發(fā)的三個不同階段。 基本CoCoMo模型 用于系統(tǒng)開發(fā)的初期,估算整個系統(tǒng)的工作量(包括軟件維護)和軟件開發(fā)所需要的時間。 中間CoCoMo模型 用于估算各個子系統(tǒng)的工作量和開發(fā)時間。 詳細CoCoMo模型 用于估算獨立的軟部件,如子系統(tǒng)內部的各個模塊。,1 基本CoCoMo模型,靜態(tài)、單變量模型 E = aLb (3-1) D = cEd (3-2) 其中: E表示工作量,單位是人月(PM)。 D表示開發(fā)時間,單位是月(M)。 L是項目的代碼行估計值,單位是千行代碼 a,b,c,d是常數(shù),取值如表3.6所示。 Boehm把軟件劃分為組織型、半獨立型和嵌入型三類,允許不
22、同應用領域和復雜程度的軟件按照三類軟件的適用范圍選取相應的參數(shù)a,b,c,d。 給出了代碼行數(shù)與工作量、工作量與開發(fā)時間之間的函數(shù)關系,表3.6 簡單CoCoMo模型參數(shù),軟件類型 a b c d 適用范圍 組織型 2.4 1.05 2.5 0.38 各類應用程序 半獨立型 3.0 1.12 2.5 0.35 各類實用程序、 編譯程序等 嵌入型 3.6 1.20 2.5 0.32 實時處理、 控制程序、 操作系統(tǒng),2 中間CoCoMo模型,中間CoCoMo模型 以基本CoCoMo模型為基礎,在工作量估計公式中乘以工作量調節(jié)因子 EAF E = aLb *EAF (3-3) 其中:L是軟件產(chǎn)品的
23、目標代碼行數(shù) a,b是常數(shù),取值如表3.7所示。,中間 CoCoMo模型,表3.7 中間CoCoMo模型參數(shù) 軟件類型 a b 組織型 3.2 1.05 半獨立型 3.0 1.12 嵌入型 2.8 1.20,CoCoMo模型,工作量調節(jié)因子EAF與軟件產(chǎn)品屬性、計算機屬性、人員屬性、項目屬性有關 軟件產(chǎn)品屬性 軟件可靠性、軟件復雜性、數(shù)據(jù)庫的規(guī)模。 計算機屬性 程序執(zhí)行時間、程序占用內存的大小、軟件開發(fā)環(huán)境的變化、軟件開發(fā)環(huán)境的響應速度。 人員屬性 分析員的能力、程序員的能力、有關應用領域的經(jīng)驗、開發(fā)環(huán)境的經(jīng)驗、程序設計語言的經(jīng)驗 項目屬性 軟件開發(fā)方法的能力,軟件工具的質量和數(shù)量、軟件開發(fā)的
24、進度要求。,CoCoMo 模型,四種屬性共15個要素。 每個要素調節(jié)因子 Fi, i=1,2,.,15,的值分為: 很低、低、正常、高、很高、極高,共六級。 正常情況下 Fi=1。 Boehm推薦的Fi值范圍 (0.70, 0.85, 1.00, 1.15, 1.30, 1.65) 當15個Fi的值選定后,EAF的計算如下 EAFF1*F2*F15,CoCoMo 模型,調節(jié)因子集的定義和調節(jié)因子定值是由統(tǒng)計結果和經(jīng)驗決定的。不同的軟件開發(fā)組織,在不同的歷史時期,隨著環(huán)境的變化,這些數(shù)據(jù)可能改變。 使用中間CoCoMo模型可以估算開發(fā)軟件產(chǎn)品的工作量,比較各種開發(fā)方案的工作量。,例3.3 用基本
25、CoCoMo模型估算例3.2,工作量、開發(fā)時間和項目開發(fā)人數(shù) 在例3.2中,目標代碼行數(shù)為 33.3 KLOC CAD軟件開發(fā)屬于中等規(guī)模、半獨立型 從表3.7中查到a=3.0,b=1.12。 代入公式(3-1) E = 3.0L1.12 = 3.033.31.12 = 152 PM,將E的估算值代入公式 (3-2) 取 C=2.5 d=0.35 D=2.5E0.35 =2.5*1520.35 =14.5 M 建議參加項目開發(fā)的人數(shù) N=E/D=152/14.511 例中計算出來的11人是粗略估計 在軟件項目開發(fā)過程中,11個人不可能都有相同的能力和個性,相同的經(jīng)驗和知識結構,并且在軟件開發(fā)的
26、各個階段對人的要求也不同。,CoCoMo模型,若干人共同開發(fā)一個軟件項目還應該增加他們之間相互通信和交換意見的額外工作量。 設 N個程序員組成小組,實現(xiàn)相同規(guī)模的程序,相互通信數(shù)為 =N(N-1)/2 每次通信和交換意見的平均工作量為 則 增加的通信開銷為 EcN(N-1)/2 (3-4),例3.4 計算一個程序的通信開銷,3人和5人開發(fā)一個程序相互通信和交換意見的關系如圖所示 將N=3和N=5分別代入公式(3-4) Ec(3)3(3-1)/23 Ec(5)5(5-1)/210,CoCoMo模型,由N個程序員組成的小組共同開發(fā)一個程序總的工作量ET滿足 ET=E+Ec (3-5) 程序員小組的
27、生產(chǎn)率是 PG=LOC/(E+Ec) (3-6) 程序員小組生產(chǎn)率和單個程序員生產(chǎn)率的比為 Rp=E/(E+Ec) (3-7) 隨著程序員小組人數(shù)的增加,EcN2/2,程序員小組的生產(chǎn)率將會下降。 模型表明 盲目增加程序員人數(shù)會推遲軟件完成的日期,3.2.2.3經(jīng)驗估算模型之二:Putnam模型,1978年,Putnam提出了大型軟件項目工作量(一般在30人年以上)估算模型。 它是一個動態(tài)多變量模型,適用于軟件開發(fā)的各個階段,估算模型以大型軟件項目的實測數(shù)據(jù)為基礎,導出工作量分布曲線。 該曲線與著名的Rayleigh-Norden (R-N)曲線相似,它描述了開發(fā)工作量,開發(fā)時間和軟件代碼行數(shù)
28、之間的關系。,Putnam模型,方程 L = CK E1/3 td4/3 (3-8) 其中:L 表示源程序代碼行數(shù) td 表示開發(fā)時間 Ck 表示技術狀態(tài)常數(shù) E 表示工作量 (以人年記,包括維護),Putnam模型揭示了軟件項目的工作量、軟件開發(fā)時間和程序代碼長度三者之間的關系,Putnam模型,差的軟件開發(fā)環(huán)境 軟件開發(fā)沒有方法學的支持,缺乏對文檔的評審,采用批處理方式。 一般的軟件開發(fā)環(huán)境 應有軟件開發(fā)方法學的支持,有適宜的文檔和評審,采用交互處理方式。 好的軟件開發(fā)環(huán)境 應采用CASE工具和集成化CASE環(huán)境。 CK= 2000 比較差的軟件開發(fā)環(huán)境 8000 一般的軟件開發(fā)環(huán)境 11
29、000 比較好的軟件開發(fā)環(huán),Putnam模型,由(2-18) 3 3 4 E L / (CK*td ) (3-9) td對應于Rayleigh-Norden曲線的最大值,表示軟件交付時工作量最大,參與軟件項目的人最多。 當工作量估算出來之后,利用每人年的開銷($/PY)可以估算成本。 公式(3-9)表明,開發(fā)軟件項目的工作量與交貨時間的4次方成反比,將0.9td代替(3-9)式的td計算E發(fā)現(xiàn),提前10%的時間要增加52%的工作量,降低了軟件開發(fā)生產(chǎn)率。 軟件開發(fā)過程中人員與時間的折衷是一個十分重要的問題。,Putnam模型,3.3.1風險分析,風險的概念 風險與將要發(fā)生的事情有關,研究風險就
30、是研究明天將要發(fā)生的事情 風險涉及思想、觀念、行為、地點、時間等多種因素 風險隨條件的變化而改變,人們通過改變、選擇、控制與風險密切相關的條件減少、回避風險 改變、選擇、控制條件的策略是不確定的,3.3風險分析和管理,軟件風險,軟件風險和其它風險一樣存在不確定性,有些是很難預測的。 對風險的不確定性進行量化,估算某一風險可能帶來的損失。 除關注軟件項目的一般性風險外,還要關注軟件項目的特殊風險,如項目的背景、特殊要求、關鍵內容、薄弱環(huán)節(jié)、技術難點、人員狀況、工作環(huán)境等。,軟件項目存在各種風險,人們關心的問題: 什么風險會導致軟件項目的徹底失敗? 顧客需求、開發(fā)環(huán)境、目標機、時間、成本的改變對軟
31、件項目的風險會產(chǎn)生什么影響? 人們必須抓住什么機會、采取什么措施才能有效地減少風險、順利完成任務?,不同類型的風險,項目風險 預算、進度、人力、資源、客戶及需求 項目的復雜度、規(guī)模、結構的不確定性等 技術風險 設計、實現(xiàn)、接口、驗證和維護 規(guī)約的二義性、技術的不確定性、陳舊的技術、領先的技術 商業(yè)風險 無需求的產(chǎn)品、策路風險、管理風險、預算風險,軟件風險分析包括的部分 風險標識 風險估算 風險規(guī)劃 風險監(jiān)控,軟件風險分析,1風險標識,對待風險不能采取回避態(tài)度 項目開始時應對一般性風險和特定產(chǎn)品風險進行系統(tǒng)標識,並隨著項目的展開不斷更新。 一般可預測風險 產(chǎn)品規(guī)模、商業(yè)影響、客戶、過程、技術、環(huán)
32、境、人員及經(jīng)驗等。 識別風險的有效方法 風險檢測表 為了幫助項目管理人員、項目規(guī)劃人員,全面了解軟件開發(fā)過程存在的風險, Boehm 建議設計并使用各類風險檢測表,表中條目指明,常見並可預測的風險。有些風險可以預料,有些很難預料。,例3.6 人員配備風險檢測表,(1) 開發(fā)人員的水平如何。 (2) 開發(fā)人員在技術上是否配套。 (3) 開發(fā)人員的數(shù)量如何。 (4) 開發(fā)人員是否能夠自始至終地參加軟件開發(fā)工作。 (5) 開發(fā)人員是否能夠集中全部精力投入到軟件開發(fā)工作。 (6) 開發(fā)人員對自己的工作是否有正確的期望。 (7) 開發(fā)人員是否接受過必要的培訓。 (8) 開發(fā)人員的流動是否能夠保證工作的連
33、續(xù)性。 上述問題可以選用0,1,2,3,4,5來回答。完全肯定取值為0,反之 為5,中間情況分別取值1,2,3,4值越大表示風險越大。 人員配備風險檢測表反映了人的因素給軟件項目帶來的風險。,2風險估算,如果某一風險檢測表由m項組成,每項選取一個整數(shù)值0,1,,N,在最理想的情況取值為0,反之取值為N,對于中間狀態(tài)依次取值1,2,N-1 當 N=1 時取值 0,1,對應布爾量真/假(T/F) 設第i種風險檢測表第j項取值Xij,對應的加權系數(shù)是Wij,于是第i種風險的估算值可以定義為 m i WijXij(mN) j=1 其中 Wij m, Wij 0 (310),風險估算,如果第i種風險對整
34、個軟件項目的風險估算加權系數(shù)是i, i=1,2,l. 為風險要素的個數(shù),i1,則軟件項目風險估算定義為 l Rii (311) i=1 0R1當R接近于0時表示風險比較小,R接近于1時表示風險比較大。 當ii 比較大時,表示第i類風險出現(xiàn)并帶來不良影響的可能性比較大,必須引起足夠重視,設法改善條件,減小i的值。,3 風險評價和管理,風險評價是風險管理的重要步驟 任務 進一步審查風險預測的精度; 更新風險優(yōu)先次序; 考慮控制和/或避免可能發(fā)生風險的辦法。,風險評價,定義 用三元組ri, li, xi描述風險,i =1,2,3 其中: ri 表示風險 li 表示風險發(fā)生的概率 xi 表示風險產(chǎn)生的
35、影響 對大多數(shù)軟件項目,應該定義性能、成本及進度的風險參考水平值,當某一風險或風險組合值超過水平值時項目被迫停止。,風險評估的步驟,1 定義項目的風險參考水平值; 2 建立三元組,給出相應的參考水平值; 3 預測一組臨界點,定義項目終止區(qū)域; 4 預測什么樣的風險組合會影響參考水平 值,風險表 (13),風險 類別 概率 影響 RMMM 1 2 3 項目開始時應在第一列列出所有風險; 第二列給出風險類別; 第三列給出每種風險發(fā)生的概率; 第四列給出各種風險產(chǎn)生影響的評估值; 第五列給出風險緩解、監(jiān)控和管理計劃。,風險表(23),評估值按風險因素: 性能、成本、進度的影響類別求加權平均值 影響類
36、別取值:災難的1,嚴重的2,輕微的3,可忽略的4。 對風險表中的風險按照發(fā)生概率大小、影響大小,由大至小排序。,風險表(33),項目管理者對風險表進行研究后應定義一條中止線,線上的風險較大者應給予特別的關注,線下的風險需要進一步的跟蹤、評估、排序。 對風險發(fā)生概率較大的事件應引起特別關注,要及早采取措施盡量避免它的發(fā)生。,風險評價和管理,三元組ri,li,xi是風險管理的基礎 設 高級職員流動給項目帶來風險r1, 根據(jù)歷史的經(jīng)驗或直觀感覺,高級職員離開課題組的概率 l1 = 70%, 這一風險導致事件 x1 發(fā)生 項目開發(fā)時間延長 15%,成本增加 20%,項目負責人采取的風險管理措施,(1)
37、項目開始前控制產(chǎn)生風險的原因。項目開工后應設法減輕風險的影響。 (2)了解項目開發(fā)人員變動的原因,在項目開發(fā)期間應控制上述原因,盡量減少人員的流動。 (3)在工作方法和技術上采取適當措施,防止因人員流動給工作帶來損失。 (4)項目在開發(fā)過程中應及時公布并交流項目開發(fā)的信息。 (5)建立組織機構,確定文檔標準、并及時生成文檔。 (6)對工作進行集體復審,使多數(shù)人都能了解工作的細節(jié),跟上工作進度。 (7)為關鍵技術準備后備人員。,RMMM計劃,風險緩解、監(jiān)控和管理計劃 Risk Mitigation,Monitoring,and Management Plan 將風險分析工作文擋化,成為項目的一部
38、分。 執(zhí)行RMMM計劃需要成本 當軟件項目比較大時,可能標出30至40種風險,如果為每種風險定義3至7種風險管理步驟,則風險管理本身就是一個項目。 將Pareto的20-80規(guī)則用于軟件項目的風險標識,即20%的風險具有0.80的權,而其余的80%風險只有0.20的權。要善于標識屬于20%的主要風險,降低RMMM計劃的規(guī)模和復雜性。,RMMM計劃大綱,計劃大綱 1.引言 1.1文擋的范回和目的 1.2主要風險綜述 1.3責任 1.3.1管理者 1.3.2技術人員 2.項目風險表 2.1中止線以上的風險描述 2.2影響概率及影響因素,3.風險緩解、監(jiān)控和管理 3.1緩解 3.1.1一般策略 3.
39、1.2緩解風險的特定步驟 3.2監(jiān)控 3.2.1被監(jiān)控的因素 3.2.2監(jiān)控方法 3.3管理 3.3.1意外事件計劃 3.3.2特殊考慮 4.RMMM計劃時間安排表 5.總結,3.4 項目進度安排,制定軟件項目進度表有兩種途徑。 (1)軟件開發(fā)小組根據(jù)提供軟件產(chǎn)品的最后期限從后往前安排時間。 (2)軟件項目開發(fā)組織根據(jù)項目和資源情況制定軟件項目開發(fā)的初步計劃和交付軟件產(chǎn)品的日期。 軟件開發(fā)組織希望按照第二種方式安排工作進度。多數(shù)場合遇到的都是比較被動的第一種方式。 對軟件項目的進度安排比對軟件成本的估算要求更高。成本的增加可以通過提高產(chǎn)品定價或通過大批量銷售得到補償,而項目進度安排不當會引起顧
40、客不滿,影響市場銷售。,PERT技術和CPM方法 PERT技術叫做計劃評審技術(程序評估與審查技術) CPM方法叫做關鍵路徑法 它們都是安排開發(fā)進度,制定軟件開發(fā)計劃最常用的方法。它們都采用網(wǎng)絡圖來描述一個項目的任務網(wǎng)絡,也就是從一個項目的開始到結束,把應當完成的任務用圖的形式表達出來。通常用兩張圖來表示。一張圖給出項目的所有任務,另一張圖給出應按照什麼次序完成這些任務,給出各任務的銜接。,PERT和CPM方法提供了定量描述工具,包括 關鍵路徑。完成關鍵路徑上所有任務時間的總和,就是項目開發(fā)所需要的最短時間。 用統(tǒng)計模型估算開發(fā)每個子任務需要的工作量和時間。 計算各子任務的最早啟動時間和最遲啟
41、動時間。,例:某一項目進入編碼階段考慮如何安排三個模塊A,B,C 的開發(fā)工作,其中A是公用模塊,B和C的測試有賴于A的調試C為現(xiàn)成已有的模塊,但對它要做理解之后做部分修改。直到A,B,C做組裝測試為止。,圖中各邊表示要完成的任務,數(shù)字表示完成該任務的持續(xù)時間 0為起點,8為終點。,開發(fā)模塊任務網(wǎng)絡圖,在組織較為復雜的項目時或需要對特定的任務進一步做更為詳細的計劃時,可以使用分層的任務網(wǎng)絡圖。,分層任務網(wǎng)絡圖,一個概念開發(fā)的任務網(wǎng)絡,軟件項目的進度安排,1.任務分配、人力資源分配、時間分配要與工程進度相協(xié)調。 2.任務分解與并行化 3.工作量分布 4-2-4分布原則 4.工程進度安排 使用程序評
42、估與審查技術(PERT)或關鍵路徑方法(CPM) 生成任務網(wǎng)絡圖。,軟件項目的進度安排,進度安排的圖形方法 甘特圖,時間表的例子,3.5 軟件質量度量,1)軟件質量度量及三層次度量模型 2)軟件質量要素 3)軟件質量要素評價準則,軟件質量度量及三層次度量模型,軟件質量是軟件的生命,它直接影響軟件的使用與維護。 質量低下的軟件不但影響基于計算機系統(tǒng)的工作效率,而且還可能給用戶帶來災難性的后果。 提高軟件產(chǎn)品質量是軟件工程的首要任務。 軟件開發(fā)人員、管理人員、維護人員和用戶在軟件開發(fā)、維護、使用過程中所處地位不同,對軟件質量的理解和要求也不同。,軟件質量度量,1976年Boehm提出了定量評價軟件
43、質量的概念,給出了60個軟件質量度量公式和軟件質量度量的層次模型 1978年Walters和McCall提出了包括質量要素(factor)、準則(criteria)和度量(metric)的三層次軟件質量度量模型 G.Murine又提出了軟件質量度量技術SQM用于定量地評價軟件質量 1985年國際標準化組織(ISO)提出了軟件質量度量(SQM)工作報告,三層次軟件質量度量模型,質量要素 (factor) 評價準則 (criteria) 度 量 (metric),軟件質量要素,軟件質量要素直接影響軟件開發(fā)過程各個階段的產(chǎn)品質量 由于對軟件質量理解的不斷深化,軟件質量要素不是一成不變的 McCall等人給出的軟件質量要素共11個,分為三類。,McCall的軟件質量要素,軟件的運行特征 正確性 可靠性 有效性 完整性 可用性 軟件承受修改的能力 可維護性 靈活性 可測試性 軟件對新環(huán)境的適應程度 可移植性 可重用性 可互操性,軟件的屬性,正確性(Correctness) 程序滿足規(guī)格說明及完成用戶目標的程度。 完整性(Integrity) 控制未被授權人員訪問
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學心理學(心理學基礎)試題及答案
- 2025年大學經(jīng)濟法(經(jīng)濟法)試題及答案
- 2025年大二(社會體育指導與管理)運動生理學期末試題
- 2025年中職會計(會計法規(guī)基礎)試題及答案
- 2025年高職市政工程技術(城市道路工程施工)試題及答案
- 2025年中職(包裝產(chǎn)品銷售)防護功能階段測試卷
- 2025年高職數(shù)字媒體藝術設計(媒體應用)試題及答案
- 2025年中職機電(機電基礎應用)試題及答案
- 2025年大學大三(預防醫(yī)學)健康教育與促進試題及答案
- 2025年大學護理學(老年護理實訓)試題及答案
- 新疆開放大學2025年春《建筑構造實訓》形考作業(yè)【標準答案】
- 2025年湖南水利水電職業(yè)技術學院單招職業(yè)技能測試題庫附答案
- 建設工程質量管理手冊范本
- 醫(yī)院申請醫(yī)養(yǎng)結合申請書
- 2024-2025學年山東省濱州市北鎮(zhèn)中學鴻蒙班九年級下學寒假開學考試數(shù)學試題
- 園林綠化服務方案(3篇)
- 2025年流產(chǎn)家屬簽字協(xié)議書
- 2025年《中醫(yī)護理適宜技術臨床應用指南》
- 下頜阻生齒拔除病例匯報
- DBJ04-T 491-2025 建設工程消防設計審查驗收文件歸檔標準
- DB45∕T 2419-2021 鉆孔管波探測技術規(guī)程
評論
0/150
提交評論