版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第三章 軟件項(xiàng)目管理,項(xiàng)目管理的概念軟件項(xiàng)目度量軟件項(xiàng)目計(jì)劃與估算風(fēng)險(xiǎn)分析和管理項(xiàng)目進(jìn)度安排軟件質(zhì)量保證軟件配置管理,項(xiàng)目管理的譜系,軟件項(xiàng)目管理的目的、任務(wù)和內(nèi)容,目的 為了使軟件項(xiàng)目能夠在預(yù)定成本、進(jìn)度、質(zhì)量的前提下順利完成,必須對軟件工程項(xiàng)目進(jìn)行計(jì)劃、組織、監(jiān)控和管理 任務(wù)制定軟件項(xiàng)目的實(shí)施計(jì)劃和方案;對人員進(jìn)行組織和分工;按照計(jì)劃進(jìn)度,以及成本管理、風(fēng)險(xiǎn)管理、質(zhì)量管理的要求進(jìn)行軟件開發(fā),完成
2、軟件項(xiàng)目的各項(xiàng)要求和任務(wù)。,3.1.1 軟件度量,軟件度量的概念軟件規(guī)模度量軟件功能度量,,3.1 軟件項(xiàng)目度量,軟件度量分類,3.1.1.1 度量、估算,度量 metrics度量具有數(shù)字特征,軟件工程范圍的度量是軟件開發(fā)過程、軟件資源或軟件產(chǎn)品簡單屬性的定量描述。如,程序規(guī)模、操作符個(gè)數(shù)、程序中錯(cuò)誤的個(gè)數(shù)等。估算 estimation對軟件產(chǎn)品、過程、資源進(jìn)行預(yù)測估算可以采用經(jīng)驗(yàn)公式、或參考?xì)v史資料估算用于事
3、前簽訂合同、立項(xiàng)、制定工作計(jì)劃等,軟件的外部屬性和內(nèi)部屬性外部屬性 軟件產(chǎn)品、過程、資源與環(huán)境的關(guān)系如,成本、效益、勞動(dòng)生產(chǎn)率、可靠性、可維護(hù)性內(nèi)部屬性 軟件產(chǎn)品、過程、資源、環(huán)境自身的屬性如,產(chǎn)品結(jié)構(gòu)、模塊化程度、復(fù)雜性、程序長度等。,產(chǎn)品-過程-資源,產(chǎn)品的內(nèi)部屬性程序代碼長度 程序功能 模塊化 重用性控制流 數(shù)據(jù)流 模塊耦合度與內(nèi)聚度 產(chǎn)品
4、的外部屬性程序的可靠性 可用性 可維護(hù)性軟件的可理解性 有效性 可移植性,過程的內(nèi)部屬性 工作量 計(jì)劃和進(jìn)度 一段時(shí)間內(nèi)某類事件發(fā)生的次數(shù) 過程的外部屬性 成本 可控制性 可觀察性 穩(wěn)定性資源的內(nèi)部屬性 人 軟硬件環(huán)境 方法 經(jīng)驗(yàn)資源的外部屬性 成本 時(shí)間,3.1.1.2 面向規(guī)模的度量,代碼行數(shù) LOC或KL
5、OC生產(chǎn)率 Pl=L/E 其中 L 軟件項(xiàng)目代碼行數(shù) E 軟件項(xiàng)目工作量(人月 PM) Pl 軟件項(xiàng)目生產(chǎn)率(LOC/PM)代碼出錯(cuò)率 EQRl=Ne/L 其中 Ne 軟件項(xiàng)目的代碼錯(cuò)誤數(shù) EQRl 每千行代碼的錯(cuò)誤數(shù),
6、每行代碼平均成本 Cl=S/L 其中 S 軟件項(xiàng)目總開銷(元/美元) Cl軟件項(xiàng)目每行代碼的平均成本文檔與代碼比 Dl=Pd/L 其中 Pd 軟件項(xiàng)目文檔頁數(shù) Dl 每千行代碼的平均文檔數(shù),例 軟件項(xiàng)目記錄,生產(chǎn)率:Pl=L/E=12.1kLoc/24PM=504Loc/PM出錯(cuò)率:EQRl=Ne/L=29
7、個(gè)/12.1kLoc=2.4個(gè)/kLoc平均成本:Cl=S/L =168 000美元/12.1kLoc= 13.88美元/Loc每千行代碼的平均文檔頁數(shù):Dl=Pd/L=365Pd/ 12.1kLoc=30.16Pd/kLoc,規(guī)模度量的優(yōu)缺點(diǎn),用軟件代碼行數(shù)估算軟件規(guī)模簡單易行。缺點(diǎn)代碼行數(shù)的估算依賴于程序設(shè)計(jì)語言的功能和表達(dá)能力;采用代碼行估算方法會(huì)對設(shè)計(jì)精巧的軟件項(xiàng)目產(chǎn)生不利的影響;在軟件項(xiàng)目開發(fā)前或開發(fā)初期估算它
8、的代碼行數(shù)十分困難;代碼行估算只適用于過程式程序設(shè)計(jì)語言,對非過程式的程序設(shè)計(jì)語言不太適用等等。,根據(jù)事務(wù)信息處理程序的基本功能定義的,在系統(tǒng)設(shè)計(jì)初期可以估算出軟件項(xiàng)目的規(guī)模 FP=CT*[0.65+0.01*∑Fi] 其中:CT按表3.1計(jì)算() Fi 是復(fù)雜性調(diào)節(jié)值 Fi 取值 0,1,...,5 當(dāng) Fi = 0 時(shí)
9、,表示 Fi 不起作用 Fi = 5 時(shí),表示 Fi 作用最大,3.1.1.3 面向功能的度量,表3.1 功能點(diǎn)度量,測量參數(shù) 值 權(quán)值用戶輸入數(shù) □ *4 = □用戶輸出數(shù) □ *5 = □用戶查詢數(shù) □ *4 = □文件數(shù) □ *7
10、 = □外部界面數(shù) □ *7 = □CT = □,表3.1中的五個(gè)信息量按下列方式取值用戶輸入數(shù) 用戶為軟件提供的輸入?yún)?shù)個(gè)數(shù)用戶輸出數(shù) 軟件系統(tǒng)為用戶提供的輸出參數(shù)個(gè)數(shù)用戶查詢數(shù) 一個(gè)聯(lián)機(jī)輸入確定一次查詢,軟
11、件以 聯(lián)機(jī)輸出的形式,實(shí)時(shí)地產(chǎn)生一個(gè)響應(yīng)文件數(shù) 統(tǒng)計(jì)邏輯的主文件個(gè)數(shù)外部界面數(shù) 統(tǒng)計(jì)所有機(jī)器可讀的界面,利用這些 界面可以將信息從一個(gè)系統(tǒng)傳送到另一 個(gè)系統(tǒng),用功能點(diǎn)定義相應(yīng)的概念生產(chǎn)率: Pf=FP/E 其中 Pf表示每人月完成的功能點(diǎn)數(shù)平均
12、成本:Ci=S/FP 其中 Ci表示每功能點(diǎn)的平均成本文檔與功能點(diǎn)比:Di=Pd/FP 其中 Di表示每個(gè)功能點(diǎn)平均具有的文檔頁數(shù)代碼出錯(cuò)率:EORi=Ne/FP 其中 EORi表示每個(gè)功能點(diǎn)的平均錯(cuò)誤個(gè)數(shù),面向功能的度量,軟件規(guī)模的功能點(diǎn)度量沒有直接涉及軟件系統(tǒng)本身的算法復(fù)雜性。1986年Jones把軟件項(xiàng)目中的算法復(fù)雜性因素引入到功能點(diǎn)計(jì)算中來,為了
13、避免混淆,我們把Albrecht定義的功能點(diǎn)稱為簡單功能點(diǎn),用FPs表示,把Jones推廣的功能點(diǎn)稱為功能點(diǎn),用FP表示。推廣的功能點(diǎn)包括計(jì)算機(jī)程序中用于各類問題求解的算法因素,如求解線性代數(shù)方程組、遍歷二叉樹的各個(gè)結(jié)點(diǎn)、處理中斷等等。功能點(diǎn)計(jì)算仍用上面的公式,其中CT按表3.2計(jì)算。,表3.2 推廣的功能點(diǎn)度量,測量參數(shù) 值 權(quán)值用戶輸入數(shù) □ *4 = □用戶輸出數(shù)
14、 □ *5 = □用戶查詢數(shù) □ *4 = □文件數(shù) □ *7 = □外部界面數(shù) □ *7 = □算法 □ *3 = □CT
15、 = □對一般的工程計(jì)算或事務(wù)處理軟件,用表3.1和表3.2兩種方法計(jì)算出來的FP值應(yīng)該基本上相同對于比較復(fù)雜的軟件系統(tǒng) FP比FPs的值高20%~35%,面向功能的度量的優(yōu)缺點(diǎn),優(yōu)點(diǎn)①與程序設(shè)計(jì)語言無關(guān),它不僅適用于過程式語言,也適用于非過程式的語言;②軟件項(xiàng)目開發(fā)初期就能基本上確定系統(tǒng)的輸入、輸出等參數(shù),功能點(diǎn)度量能用于軟件項(xiàng)目的開發(fā)初期。缺點(diǎn)①它涉及到的主觀因素比較多,如各種權(quán)
16、函數(shù)的取值;②信息領(lǐng)域中的某些數(shù)據(jù)有時(shí)不容易采集;③FP的值沒有直觀的物理意義。,3.1.1.4 代碼行度量與功能點(diǎn)度量的比較,代碼行度量依賴于程序設(shè)計(jì)語言,而功能點(diǎn)度量不依賴于程序設(shè)計(jì)語言。Albrecht和Jones等人對若干軟件采用事后處理的方式分別統(tǒng)計(jì)出不同程序設(shè)計(jì)語言每個(gè)功能點(diǎn)與代碼行數(shù)的關(guān)系,用LOC/FP的平均值表示。表3.3表明,一行Ada語言代碼的“功能”平均是一行FORTRAN語言代碼“功能”的1.4倍。一行
17、四代語言代碼的“功能”平均是一行傳統(tǒng)程序設(shè)計(jì)語言代碼“功能”的3至5倍。,表3.3 各種語言的LOC/FP(平均值),程序設(shè)計(jì)語言 LOC/FP(平均值)匯編語言 300COBOL 100FORTRAN 100Pascal 90
18、Ada 70面向?qū)ο蟮恼Z言 30四代語言(4GL) 20代碼生成器 15,3.1.2軟件復(fù)雜性度量,1976年 T.J.McCabe McCabe度量法又稱環(huán)路復(fù)雜性度量,基于程序控制結(jié)構(gòu)的軟件復(fù)雜性度量模型。程序控制結(jié)構(gòu)圖 程序結(jié)構(gòu)對應(yīng)于有一個(gè)入口結(jié)點(diǎn)和一個(gè)出口結(jié)點(diǎn)的有向圖圖中
19、每個(gè)結(jié)點(diǎn)對應(yīng)一個(gè)語句或一個(gè)順序流程的程序代碼塊弧對應(yīng)于程序中的轉(zhuǎn)移它基于一個(gè)程序模塊的程序圖中環(huán)路的個(gè)數(shù),因此計(jì)算它先要畫出程序圖。程序圖是退化的程序流程圖。流程圖中每個(gè)處理都退化成一個(gè)結(jié)點(diǎn),流線變成連接不同結(jié)點(diǎn)的有向弧。,McCabe度量法,McCabe用程序控制結(jié)構(gòu)圖的巡回秩數(shù)V(G)作為程序結(jié)構(gòu)復(fù)雜性的度量 V(G) = e-n+2 其中:e為結(jié)構(gòu)圖的邊數(shù)
20、 n為結(jié)構(gòu)圖的結(jié)點(diǎn)數(shù) 可以證明 V(G)等于結(jié)構(gòu)圖中有界或無界的封閉區(qū)域個(gè)數(shù),例3.1計(jì)算程序控制結(jié)構(gòu)的V(G)值,E = 1 E = 3N = 2 N = 3V = 1
21、V = 2,,計(jì)算程序控制結(jié)構(gòu)的V(G)值,E = 4 E = 3N = 4 N = 3V = 2 V = 2,,計(jì)算程序控制結(jié)構(gòu)的V(G)值,E = 6N = 5V = 3,,例3.1 計(jì)算如圖所示
22、程序控制結(jié)構(gòu)圖的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=11,m=13,V(G)=m-n+p=13-11+1=3.p=1,McCabe建議把V(G)作為模塊規(guī)模的定量指標(biāo),一個(gè)模塊
23、V(G)的值不要大于10 當(dāng)V(G)>10時(shí),模塊內(nèi)部結(jié)構(gòu)就會(huì)變得復(fù)雜,給編碼和測試帶來困難。,這種度量的缺點(diǎn)是: 對于不同種類的控制流的復(fù)雜性不能區(qū)分 簡單IF語句與循環(huán)語句的復(fù)雜性同等看待 嵌套IF語句與簡單CASE語句的復(fù)雜性是一樣的 模塊間接口當(dāng)成一個(gè)簡單分支一樣處理 一個(gè)具有1000行的順序程序與一行語句的復(fù)雜性相同,3.2 軟件項(xiàng)目計(jì)劃與估算,3.2.1 軟件項(xiàng)目計(jì)劃,軟件項(xiàng)目管理人員在開發(fā)工作一開始需
24、要進(jìn)行定量估算。 軟件項(xiàng)目計(jì)劃的目標(biāo)是提供一個(gè)能使項(xiàng)目管理人員對資源、成本和進(jìn)度做出合理估算的框架。 這些估算應(yīng)當(dāng)在軟件項(xiàng)目開始時(shí)的一個(gè)有限的時(shí)間段內(nèi)做出,并且隨著項(xiàng)目的進(jìn)展定期進(jìn)行更新。,軟件項(xiàng)目計(jì)劃的目標(biāo),軟件的范圍,軟件范圍包括功能、性能、限制、接口和可靠性。估算開始時(shí),應(yīng)對軟件的功能進(jìn)行評價(jià),對其進(jìn)行適當(dāng)?shù)募?xì)化以便提供更詳細(xì)的細(xì)節(jié)。由于成本和進(jìn)度的估算都與功能有關(guān),因此常常采用某種程度的功能分解。性能的考慮包括處理和
25、響應(yīng)時(shí)間的需求。約束條件則標(biāo)識產(chǎn)品成本、外部硬件、可用存儲(chǔ)或其它現(xiàn)有系統(tǒng)對軟件的限制。軟件與其它系統(tǒng)元素是相互作用的。要考慮每個(gè)接口的性質(zhì)和復(fù)雜性,以確定對開發(fā)資源、成本和進(jìn)度的影響。,軟件開發(fā)中的資源,3.2.2 軟件項(xiàng)目估算,常用的估算方法①參照已經(jīng)完成的類似項(xiàng)目估算待開發(fā)項(xiàng)目的成本和工作量。②將大的項(xiàng)目分解成若干子項(xiàng)目,在估算出每個(gè)子項(xiàng)目成本和工作量之后,再估算整個(gè)項(xiàng)目。③將軟件項(xiàng)目按軟件生存周期分解,分別估算出軟件項(xiàng)
26、目在軟件開發(fā)各個(gè)階段的工作量和成本,然后再把這些工作量和成本匯總估算整個(gè)項(xiàng)目。④根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)給出軟件項(xiàng)目工作量或成本的經(jīng)驗(yàn)估算公式。,四種方法可以同時(shí)、單獨(dú)或組合使用,以便取長補(bǔ)短,提高項(xiàng)目估算的精度和可靠性。 采用分解技術(shù)估算軟件項(xiàng)目應(yīng)考慮系統(tǒng)集成時(shí)需要的工作量。為了實(shí)現(xiàn)軟件項(xiàng)目估算,實(shí)踐中開發(fā)了大量的軟件項(xiàng)目自動(dòng)估算工具,用以支持軟件工作量或成本估算。,分解技術(shù)采用”分而治之”的策略進(jìn)行軟件項(xiàng)目估算.將項(xiàng)目分解為若干個(gè)
27、主要的功能及相關(guān)的軟件工程活動(dòng),通過逐步求精的方式進(jìn)行成本及工作量估算。經(jīng)驗(yàn)估算模型可用于補(bǔ)充分解技術(shù)自動(dòng)估算工具實(shí)現(xiàn)一種或多種分解技術(shù)或經(jīng)驗(yàn)?zāi)P?,與人機(jī)交互結(jié)合,自動(dòng)估算將是很好的選擇。,3.2.2.1 代碼行、功能點(diǎn)和工作量估算,軟件項(xiàng)目的規(guī)模是影響軟件項(xiàng)目成本和工作量的重要因素。軟件項(xiàng)目代碼行和功能點(diǎn)估算是成本和工作量估算的基礎(chǔ)。采用上面的估算方法可以估算出LOC或FP的樂觀值a,悲觀值b和一般值m,然后根據(jù)下列加權(quán)公
28、式計(jì)算出期望值 e=(a+4m+b)/6 希望LOC或FP的值落在區(qū)間[a,b]之外的概率極小,當(dāng)LOC或FP的期望值估算出來之后,根據(jù)以前軟件項(xiàng)目開發(fā)的平均生產(chǎn)率LOC/PM或FP/PM就可以計(jì)算出工作量。如,軟件項(xiàng)目的規(guī)模估算為310FP,以前完成的軟件項(xiàng)目的生產(chǎn)率為5.5FP/PM,于是工作量估算為E=310/5.5=56PM。,例 3.2 估算計(jì)算機(jī)輔助設(shè)計(jì)軟件項(xiàng)目,將CAD項(xiàng)目按功能分解為七個(gè)子項(xiàng)目①用
29、戶界面和控制;②二維幾何分析;③三維幾何分析;④數(shù)據(jù)庫管理;⑤計(jì)算機(jī)圖形顯示;⑥外設(shè)控制;⑦設(shè)計(jì)分析。表3.4給出七個(gè)子項(xiàng)目代碼行的樂觀估計(jì)、悲觀計(jì)和一般估計(jì)值,然后計(jì)算出加權(quán)平均值。,估算計(jì)算機(jī)輔助設(shè)計(jì)軟件項(xiàng)目,分析七個(gè)子項(xiàng)目的規(guī)模復(fù)雜性和難度,參照以前開發(fā)類似項(xiàng)目的經(jīng)驗(yàn)給出開發(fā)每行代碼的平均成本,每月開發(fā)的代碼行數(shù)。 用這兩組數(shù)據(jù)計(jì)算出七個(gè)子項(xiàng)目的開發(fā)成本和工作量。 最后匯總的CAD軟件開發(fā)項(xiàng)目
30、 規(guī)模為 33360 LOC 成本為 656680 $ 工作量為 144.5 PM。,再用這兩種方法分別估算軟件開發(fā)子項(xiàng)目在軟件工程各個(gè)階段的工作量,估算結(jié)果列入表3.5。兩種方法估算的工作量分別為144.5PM和152.5PM,相差5%左右。估算的成本分別為656680$和708075$,相差7%左右。 兩種方法估算的工作量和成本基本一致。,表3.4 代碼行和成本、工作量估算,功能 樂
31、觀 一般 悲觀 加權(quán) $ LOC 成本 工作量 LOC LOC LOC 平均 /LOC /PM $ (人月)用戶界面控制1790 2400 2650 2340 14 315 32760 7.4 二維幾何分析4080 5
32、200 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.
33、9圖形顯示 3900 4900 6200 4950 22 200 108900 24.7外設(shè)控制 1990 2100 2450 2140 28 140 59920 15.2設(shè)計(jì)分析 6600 8500 9800 8400 18 30
34、0 151200 28.0總計(jì) 33360 656680 144.5,表3. 5工作量估算,功能 需求分析 設(shè)計(jì) 編碼 測試 總計(jì) 用戶界面控制 1.0 2.0 0.5 3.5 7
35、二維幾何分析 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計(jì)算機(jī)圖形顯示 1.5 11.0
36、 4.0 10.5 27外設(shè)控制 1.5 6.0 3.5 5.0 16設(shè)計(jì)分析 4.0 14.0 5.0 7.0 30總計(jì)(人月) 14.5 61 26.5
37、 50.5 152.5 每人月成本 5200 4800 4250 4500成本($) 75400 292800 112625 227250 708075,3.2.2.2 經(jīng)驗(yàn)估算模型之一 CoCoMo模型,計(jì)算機(jī)軟件的估算模型是根據(jù)以前完成項(xiàng)目的實(shí)際數(shù)據(jù)導(dǎo)出的,用于軟件項(xiàng)目的計(jì)劃階段。 模型是根據(jù)“從前的
38、”,“局部的”數(shù)據(jù)得出的,估算模型不可能完全適用于當(dāng)前所有的軟件項(xiàng)目和全部開發(fā)環(huán)境。這些模型的計(jì)算結(jié)果僅供參考。 兩個(gè)常用的估算模型 CoCoMo模型 Putnam模型,CoCoMo模型,1981年Boehm提出“構(gòu)造性成本模型”(Constructive Cost Model),簡稱CoCoMo模型。它是在靜態(tài)、單變量模型的基礎(chǔ)上構(gòu)造出來的。 CoCoMo模型分
39、為基本、中間、詳細(xì)三個(gè)層次,分別用于軟件開發(fā)的三個(gè)不同階段。基本CoCoMo模型 用于系統(tǒng)開發(fā)的初期,估算整個(gè)系統(tǒng)的工作量(包括軟件維護(hù))和軟件開發(fā)所需要的時(shí)間。 中間CoCoMo模型 用于估算各個(gè)子系統(tǒng)的工作量和開發(fā)時(shí)間。 詳細(xì)CoCoMo模型 用于估算獨(dú)立的軟部件,如子系統(tǒng)內(nèi)部的各個(gè)模塊。,1 基本CoCoMo模型,靜態(tài)、單變量模型 E = aLb
40、 (3-1) D = cEd (3-2)其中: E表示工作量,單位是人月(PM)。 D表示開發(fā)時(shí)間,單位是月(M)。 L是項(xiàng)目的代碼行估計(jì)值,單位是千行代碼 a,b,c,d是常數(shù),取值如表3.6所示。 Boehm把軟件劃分為組織型、半獨(dú)立型和嵌入型三類,允許不同應(yīng)用領(lǐng)域和復(fù)雜程度的軟
41、件按照三類軟件的適用范圍選取相應(yīng)的參數(shù)a,b,c,d。給出了代碼行數(shù)與工作量、工作量與開發(fā)時(shí)間之間的函數(shù)關(guān)系,表3.6 簡單CoCoMo模型參數(shù),軟件類型 a b c d 適用范圍組織型 2.4 1.05 2.5 0.38 各類應(yīng)用程序半獨(dú)立型 3.0 1.12
42、 2.5 0.35 各類實(shí)用程序、 編譯程序等嵌入型 3.6 1.20 2.5 0.32 實(shí)時(shí)處理、 控制程序、
43、 操作系統(tǒng),2 中間CoCoMo模型,中間CoCoMo模型 以基本CoCoMo模型為基礎(chǔ),在工作量估計(jì)公式中乘以工作量調(diào)節(jié)因子 EAF E = aLb *EAF (3-3)其中:L是軟件產(chǎn)品的目標(biāo)代碼行數(shù) a,b是常數(shù),取值如表3.7所示。,中間 CoCoMo模型,表3.7 中間CoCoMo模型參數(shù) 軟件類型
44、a b 組織型 3.2 1.05 半獨(dú)立型 3.0 1.12 嵌入型 2.8 1.20,CoCoMo模型,工作量調(diào)節(jié)因子EAF與軟件產(chǎn)品屬性、計(jì)算機(jī)屬性、人員屬性、項(xiàng)目屬性有關(guān)軟件產(chǎn)品屬性 軟件可靠性、軟件復(fù)雜性、數(shù)據(jù)庫的規(guī)模。計(jì)算機(jī)屬性 程序執(zhí)行時(shí)間、程序占用內(nèi)存的大小、軟件開發(fā)環(huán)境
45、的變化、軟件開發(fā)環(huán)境的響應(yīng)速度。人員屬性 分析員的能力、程序員的能力、有關(guān)應(yīng)用領(lǐng)域的經(jīng)驗(yàn)、開發(fā)環(huán)境的經(jīng)驗(yàn)、程序設(shè)計(jì)語言的經(jīng)驗(yàn)項(xiàng)目屬性 軟件開發(fā)方法的能力,軟件工具的質(zhì)量和數(shù)量、軟件開發(fā)的進(jìn)度要求。,CoCoMo 模型,四種屬性共15個(gè)要素。每個(gè)要素調(diào)節(jié)因子 Fi, i=1,2,...,15,的值分為: 很低、低、正常、高、很高、極高,共六級。正常情況下 Fi=1。Boehm推薦的Fi值范圍 (0.
46、70, 0.85, 1.00, 1.15, 1.30, 1.65) 當(dāng)15個(gè)Fi的值選定后,EAF的計(jì)算如下 EAF=F1*F2*……*F15,CoCoMo 模型,調(diào)節(jié)因子集的定義和調(diào)節(jié)因子定值是由統(tǒng)計(jì)結(jié)果和經(jīng)驗(yàn)決定的。不同的軟件開發(fā)組織,在不同的歷史時(shí)期,隨著環(huán)境的變化,這些數(shù)據(jù)可能改變。 使用中間CoCoMo模型可以估算開
47、發(fā)軟件產(chǎn)品的工作量,比較各種開發(fā)方案的工作量。,例3.3 用基本CoCoMo模型估算例3.2,工作量、開發(fā)時(shí)間和項(xiàng)目開發(fā)人數(shù)在例3.2中,目標(biāo)代碼行數(shù)為 33.3 KLOCCAD軟件開發(fā)屬于中等規(guī)模、半獨(dú)立型從表3.7中查到a=3.0,b=1.12。代入公式(3-1) E = 3.0*L1.12 = 3.0*33.31.12 = 152 PM,將E的
48、估算值代入公式 (3-2) 取 C=2.5 d=0.35 D=2.5*E0.35 =2.5*1520.35 =14.5 M 建議參加項(xiàng)目開發(fā)的人數(shù) N=E/D=152/14.5≈11例中計(jì)算出來的11人是粗略估計(jì)在軟件項(xiàng)目開發(fā)過程中,11個(gè)人不可能都有相同的能力和個(gè)性,相同的經(jīng)驗(yàn)和知識結(jié)構(gòu),并且在軟件開發(fā)的
49、各個(gè)階段對人的要求也不同。,CoCoMo模型,若干人共同開發(fā)一個(gè)軟件項(xiàng)目還應(yīng)該增加他們之間相互通信和交換意見的額外工作量。 設(shè) N個(gè)程序員組成小組,實(shí)現(xiàn)相同規(guī)模的程序,相互通信數(shù)為 =N(N-1)/2 每次通信和交換意見的平均工作量為μ 則 增加的通信開銷為 Ec=μN(yùn)(N-1)/2 (3-4),,例3.4 計(jì)算一個(gè)程序的通信開銷,3人和5人開
50、發(fā)一個(gè)程序相互通信和交換意見的關(guān)系如圖所示 將N=3和N=5分別代入公式(3-4) Ec(3)=μ3(3-1)/2=3μ Ec(5)=μ5(5-1)/2=10μ,,CoCoMo模型,由N個(gè)程序員組成的小組共同開發(fā)一個(gè)程序總的工作量ET滿足 ET=E+Ec (3-5)程序員小組的生產(chǎn)率是
51、 PG=LOC/(E+Ec) (3-6)程序員小組生產(chǎn)率和單個(gè)程序員生產(chǎn)率的比為 Rp=E/(E+Ec) (3-7) 隨著程序員小組人數(shù)的增加,Ec≈μN(yùn)2/2,程序員小組的生產(chǎn)率將會(huì)下降。 模型表明 盲目增加程序員人數(shù)會(huì)推遲軟件完成的日期,3.2.2.3經(jīng)驗(yàn)估算模型之二:Putnam模型,1978年,Putnam提出了大型軟件項(xiàng)目工作量
52、(一般在30人年以上)估算模型。它是一個(gè)動(dòng)態(tài)多變量模型,適用于軟件開發(fā)的各個(gè)階段,估算模型以大型軟件項(xiàng)目的實(shí)測數(shù)據(jù)為基礎(chǔ),導(dǎo)出工作量分布曲線。該曲線與著名的Rayleigh-Norden (R-N)曲線相似,它描述了開發(fā)工作量,開發(fā)時(shí)間和軟件代碼行數(shù)之間的關(guān)系。,Putnam模型,方程 L = CK E1/3 td4/3 (3-8)其中:L 表示源程序代碼行數(shù)
53、 td 表示開發(fā)時(shí)間 Ck 表示技術(shù)狀態(tài)常數(shù) E 表示工作量 (以人年記,包括維護(hù)),Putnam模型揭示了軟件項(xiàng)目的工作量、軟件開發(fā)時(shí)間和程序代碼長度三者之間的關(guān)系,Putnam模型,差的軟件開發(fā)環(huán)境 軟件開發(fā)沒有方法學(xué)的支持,缺乏對文檔的評審,采用批處理方式。一般的軟件開發(fā)環(huán)境 應(yīng)有軟件開發(fā)方法學(xué)的支持,有適宜的文檔和評審,采用交互處理方式。好的軟件開
54、發(fā)環(huán)境 應(yīng)采用CASE工具和集成化CASE環(huán)境。 CK= 2000 比較差的軟件開發(fā)環(huán)境 8000 一般的軟件開發(fā)環(huán)境 11000 比較好的軟件開發(fā)環(huán),,Putnam模型,由(2-18) 3 3 4
55、 E = L / (CK*td ) (3-9)td對應(yīng)于Rayleigh-Norden曲線的最大值,表示軟件交付時(shí)工作量最大,參與軟件項(xiàng)目的人最多。當(dāng)工作量估算出來之后,利用每人年的開銷($/PY)可以估算成本。公式(3-9)表明,開發(fā)軟件項(xiàng)目的工作量與交貨時(shí)間的4次方成反比,將0.9td代替(3-9)式的td計(jì)算E發(fā)現(xiàn),提前10%的時(shí)間要增加52%的工作量,降低
56、了軟件開發(fā)生產(chǎn)率。軟件開發(fā)過程中人員與時(shí)間的折衷是一個(gè)十分重要的問題。,Putnam模型,,3.3.1風(fēng)險(xiǎn)分析,風(fēng)險(xiǎn)的概念風(fēng)險(xiǎn)與將要發(fā)生的事情有關(guān),研究風(fēng)險(xiǎn)就是研究明天將要發(fā)生的事情風(fēng)險(xiǎn)涉及思想、觀念、行為、地點(diǎn)、時(shí)間等多種因素風(fēng)險(xiǎn)隨條件的變化而改變,人們通過改變、選擇、控制與風(fēng)險(xiǎn)密切相關(guān)的條件減少、回避風(fēng)險(xiǎn)改變、選擇、控制條件的策略是不確定的,3.3風(fēng)險(xiǎn)分析和管理,軟件風(fēng)險(xiǎn),軟件風(fēng)險(xiǎn)和其它風(fēng)險(xiǎn)一樣存在不確定性,有些是很難預(yù)測
57、的。對風(fēng)險(xiǎn)的不確定性進(jìn)行量化,估算某一風(fēng)險(xiǎn)可能帶來的損失。除關(guān)注軟件項(xiàng)目的一般性風(fēng)險(xiǎn)外,還要關(guān)注軟件項(xiàng)目的特殊風(fēng)險(xiǎn),如項(xiàng)目的背景、特殊要求、關(guān)鍵內(nèi)容、薄弱環(huán)節(jié)、技術(shù)難點(diǎn)、人員狀況、工作環(huán)境等。,軟件項(xiàng)目存在各種風(fēng)險(xiǎn),人們關(guān)心的問題:什么風(fēng)險(xiǎn)會(huì)導(dǎo)致軟件項(xiàng)目的徹底失敗?顧客需求、開發(fā)環(huán)境、目標(biāo)機(jī)、時(shí)間、成本的改變對軟件項(xiàng)目的風(fēng)險(xiǎn)會(huì)產(chǎn)生什么影響?人們必須抓住什么機(jī)會(huì)、采取什么措施才能有效地減少風(fēng)險(xiǎn)、順利完成任務(wù)?,不同類型的風(fēng)險(xiǎn),
58、項(xiàng)目風(fēng)險(xiǎn)預(yù)算、進(jìn)度、人力、資源、客戶及需求項(xiàng)目的復(fù)雜度、規(guī)模、結(jié)構(gòu)的不確定性等技術(shù)風(fēng)險(xiǎn)設(shè)計(jì)、實(shí)現(xiàn)、接口、驗(yàn)證和維護(hù)規(guī)約的二義性、技術(shù)的不確定性、陳舊的技術(shù)、領(lǐng)先的技術(shù)商業(yè)風(fēng)險(xiǎn)無需求的產(chǎn)品、策路風(fēng)險(xiǎn)、管理風(fēng)險(xiǎn)、預(yù)算風(fēng)險(xiǎn),軟件風(fēng)險(xiǎn)分析包括的部分 風(fēng)險(xiǎn)標(biāo)識 風(fēng)險(xiǎn)估算 風(fēng)險(xiǎn)規(guī)劃 風(fēng)險(xiǎn)監(jiān)控,軟件風(fēng)險(xiǎn)分析,1風(fēng)險(xiǎn)標(biāo)識,對待風(fēng)險(xiǎn)不能采取回避態(tài)度 項(xiàng)目開始時(shí)應(yīng)對一般性風(fēng)險(xiǎn)和特定產(chǎn)品風(fēng)險(xiǎn)進(jìn)行系統(tǒng)
59、標(biāo)識,並隨著項(xiàng)目的展開不斷更新。一般可預(yù)測風(fēng)險(xiǎn) 產(chǎn)品規(guī)模、商業(yè)影響、客戶、過程、技術(shù)、環(huán)境、人員及經(jīng)驗(yàn)等。識別風(fēng)險(xiǎn)的有效方法 風(fēng)險(xiǎn)檢測表 為了幫助項(xiàng)目管理人員、項(xiàng)目規(guī)劃人員,全面了解軟件開發(fā)過程存在的風(fēng)險(xiǎn), Boehm 建議設(shè)計(jì)并使用各類風(fēng)險(xiǎn)檢測表,表中條目指明,常見並可預(yù)測的風(fēng)險(xiǎn)。有些風(fēng)險(xiǎn)可以預(yù)料,有些很難預(yù)料。,例3.6 人員配備風(fēng)險(xiǎn)檢測表,(1) 開發(fā)人員的水平如何。(2) 開發(fā)人員在
60、技術(shù)上是否配套。(3) 開發(fā)人員的數(shù)量如何。(4) 開發(fā)人員是否能夠自始至終地參加軟件開發(fā)工作。(5) 開發(fā)人員是否能夠集中全部精力投入到軟件開發(fā)工作。(6) 開發(fā)人員對自己的工作是否有正確的期望。(7) 開發(fā)人員是否接受過必要的培訓(xùn)。(8) 開發(fā)人員的流動(dòng)是否能夠保證工作的連續(xù)性。上述問題可以選用0,1,2,3,4,5來回答。完全肯定取值為0,反之為5,中間情況分別取值1,2,3,4值越大表示風(fēng)險(xiǎn)越大。人員配備風(fēng)險(xiǎn)檢
61、測表反映了人的因素給軟件項(xiàng)目帶來的風(fēng)險(xiǎn)。,2風(fēng)險(xiǎn)估算,如果某一風(fēng)險(xiǎn)檢測表由m項(xiàng)組成,每項(xiàng)選取一個(gè)整數(shù)值0,1,…,N,在最理想的情況取值為0,反之取值為N,對于中間狀態(tài)依次取值1,2,…,N-1 當(dāng) N=1 時(shí)取值 0,1,對應(yīng)布爾量真/假(T/F) 設(shè)第i種風(fēng)險(xiǎn)檢測表第j項(xiàng)取值Xij,對應(yīng)的加權(quán)系數(shù)是Wij,于是第i種風(fēng)險(xiǎn)的估算值可以定義為 m σi =∑WijXij/(mN)
62、 j=1 其中 ∑Wij = m, Wij ≥ 0 (3—10),風(fēng)險(xiǎn)估算,如果第i種風(fēng)險(xiǎn)對整個(gè)軟件項(xiàng)目的風(fēng)險(xiǎn)估算加權(quán)系數(shù)是ρi, i=1,2,…,l. 為風(fēng)險(xiǎn)要素的個(gè)數(shù),∑ρi=1,則軟件項(xiàng)目風(fēng)險(xiǎn)估算定義為 lR=∑ρiσi (3—11) i=10≤R≤1當(dāng)R接近于0時(shí)表示風(fēng)險(xiǎn)比較小,R接近于
63、1時(shí)表示風(fēng)險(xiǎn)比較大。當(dāng)ρiσi 比較大時(shí),表示第i類風(fēng)險(xiǎn)出現(xiàn)并帶來不良影響的可能性比較大,必須引起足夠重視,設(shè)法改善條件,減小σi的值。,3 風(fēng)險(xiǎn)評價(jià)和管理,風(fēng)險(xiǎn)評價(jià)是風(fēng)險(xiǎn)管理的重要步驟任務(wù) 進(jìn)一步審查風(fēng)險(xiǎn)預(yù)測的精度;更新風(fēng)險(xiǎn)優(yōu)先次序;考慮控制和/或避免可能發(fā)生風(fēng)險(xiǎn)的辦法。,風(fēng)險(xiǎn)評價(jià),定義 用三元組[ri, li, xi]描述風(fēng)險(xiǎn),i =1,2,3… 其中: ri 表示風(fēng)險(xiǎn) li 表示
64、風(fēng)險(xiǎn)發(fā)生的概率 xi 表示風(fēng)險(xiǎn)產(chǎn)生的影響 對大多數(shù)軟件項(xiàng)目,應(yīng)該定義性能、成本及進(jìn)度的風(fēng)險(xiǎn)參考水平值,當(dāng)某一風(fēng)險(xiǎn)或風(fēng)險(xiǎn)組合值超過水平值時(shí)項(xiàng)目被迫停止。,風(fēng)險(xiǎn)評估的步驟,1 定義項(xiàng)目的風(fēng)險(xiǎn)參考水平值;2 建立三元組,給出相應(yīng)的參考水平值;3 預(yù)測一組臨界點(diǎn),定義項(xiàng)目終止區(qū)域;4 預(yù)測什么樣的風(fēng)險(xiǎn)組合會(huì)影響參考水平 值,風(fēng)險(xiǎn)表 (1/3),風(fēng)險(xiǎn) 類別 概率 影響 RM
65、MM123項(xiàng)目開始時(shí)應(yīng)在第一列列出所有風(fēng)險(xiǎn);第二列給出風(fēng)險(xiǎn)類別;第三列給出每種風(fēng)險(xiǎn)發(fā)生的概率;第四列給出各種風(fēng)險(xiǎn)產(chǎn)生影響的評估值;第五列給出風(fēng)險(xiǎn)緩解、監(jiān)控和管理計(jì)劃。,風(fēng)險(xiǎn)表(2/3),評估值按風(fēng)險(xiǎn)因素: 性能、成本、進(jìn)度的影響類別求加權(quán)平均值影響類別取值:災(zāi)難的1,嚴(yán)重的2,輕微的3,可忽略的4。對風(fēng)險(xiǎn)表中的風(fēng)險(xiǎn)按照發(fā)生概率大小、影響大小,由大至小排序。,風(fēng)險(xiǎn)表(3/3),項(xiàng)目管理者對風(fēng)險(xiǎn)表進(jìn)行研究后應(yīng)定義
66、一條中止線,線上的風(fēng)險(xiǎn)較大者應(yīng)給予特別的關(guān)注,線下的風(fēng)險(xiǎn)需要進(jìn)一步的跟蹤、評估、排序。對風(fēng)險(xiǎn)發(fā)生概率較大的事件應(yīng)引起特別關(guān)注,要及早采取措施盡量避免它的發(fā)生。,,風(fēng)險(xiǎn)評價(jià)和管理,三元組[ri,li,xi]是風(fēng)險(xiǎn)管理的基礎(chǔ)設(shè) 高級職員流動(dòng)給項(xiàng)目帶來風(fēng)險(xiǎn)r1, 根據(jù)歷史的經(jīng)驗(yàn)或直觀感覺,高級職員離開課題組的概率 l1 = 70%, 這一風(fēng)險(xiǎn)導(dǎo)致事件 x1 發(fā)生 項(xiàng)目開發(fā)時(shí)間延長 15%
67、,成本增加 20%.,項(xiàng)目負(fù)責(zé)人采取的風(fēng)險(xiǎn)管理措施,(1)項(xiàng)目開始前控制產(chǎn)生風(fēng)險(xiǎn)的原因。項(xiàng)目開工后應(yīng)設(shè)法減輕風(fēng)險(xiǎn)的影響。(2)了解項(xiàng)目開發(fā)人員變動(dòng)的原因,在項(xiàng)目開發(fā)期間應(yīng)控制上述原因,盡量減少人員的流動(dòng)。(3)在工作方法和技術(shù)上采取適當(dāng)措施,防止因人員流動(dòng)給工作帶來損失。(4)項(xiàng)目在開發(fā)過程中應(yīng)及時(shí)公布并交流項(xiàng)目開發(fā)的信息。(5)建立組織機(jī)構(gòu),確定文檔標(biāo)準(zhǔn)、并及時(shí)生成文檔。(6)對工作進(jìn)行集體復(fù)審,使多數(shù)人都能了解工作的細(xì)節(jié),
68、跟上工作進(jìn)度。(7)為關(guān)鍵技術(shù)準(zhǔn)備后備人員。,RMMM計(jì)劃,風(fēng)險(xiǎn)緩解、監(jiān)控和管理計(jì)劃 Risk Mitigation,Monitoring,and Management Plan 將風(fēng)險(xiǎn)分析工作文擋化,成為項(xiàng)目的一部分。執(zhí)行RMMM計(jì)劃需要成本 當(dāng)軟件項(xiàng)目比較大時(shí),可能標(biāo)出30至40種風(fēng)險(xiǎn),如果為每種風(fēng)險(xiǎn)定義3至7種風(fēng)險(xiǎn)管理步驟,則風(fēng)險(xiǎn)管理本身就是一個(gè)項(xiàng)目。將Pareto的20-80規(guī)則用于軟件項(xiàng)目的風(fēng)險(xiǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論