




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
■
弟二早軟件項(xiàng)目管理
■項(xiàng)目管理的概念
■軟件項(xiàng)目度量
■軟件項(xiàng)目計(jì)劃與估算
■風(fēng)險(xiǎn)分析和管理
■項(xiàng)目進(jìn)度安排
■軟件質(zhì)量保證
■軟件配置管理
■
項(xiàng)目管理的譜系
確
定
解
■—m刪網(wǎng)rBiiiii
軟件項(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ā),完成軟件項(xiàng)目的
各項(xiàng)要求和任務(wù)。
□
3.1軟件項(xiàng)目度量
3.1.1軟件度量
■軟件度量的概念
■軟件規(guī)模度量
■軟件功能度量
軟件度量分類
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史資料
估算用于事前簽訂合同、立項(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)品的外部屬性
程序的可靠性可用性可維護(hù)性
軟件的可理解性有效性可移植性
■過程的內(nèi)部屬性
工作量計(jì)劃和進(jìn)度一段時(shí)間內(nèi)某類事件
發(fā)生的次數(shù)
■過程的外部屬性
成本可控制性可觀察性穩(wěn)定性
■資源的內(nèi)部屬性
人軟硬件環(huán)境方法經(jīng)驗(yàn)
■資源的外部屬性
成本時(shí)間
■
面向規(guī)模的度量
■代碼行1數(shù)LOC或KLOC
■生產(chǎn)率
Pi=UE
其中L軟件項(xiàng)目代碼行數(shù)
E軟件項(xiàng)目工作量(人月PM)
Pi軟件項(xiàng)目生產(chǎn)率(LOC/PM)
■代碼出錯(cuò)率
EQR|=Ne/L
其中Ne軟件項(xiàng)目的代碼錯(cuò)誤數(shù)
EQ&每千行代碼的錯(cuò)誤數(shù)
■每行代碼平均成本
CI=S/L
其中S軟件項(xiàng)目總開銷(元/美元)
CI軟件項(xiàng)目每行代碼的平均成本
■文檔與代碼比
DI=Pd/L
其中Pd軟件項(xiàng)目文檔頁數(shù)
DI每千行代碼的平均文檔數(shù)
■
例軟件項(xiàng)目記錄
項(xiàng)目工作量成本代碼行文檔頁數(shù)錯(cuò)誤數(shù)人數(shù)
PM萬美元kLOCPdNeM
Aaa
-012416.812.1365293
Ccc
-046244.027.21224865
Fff
-034331.420.21050646
生產(chǎn)率:p1=UE=12.1kLoc/24PM=504Loc/PM
出錯(cuò)率:EQR產(chǎn)Ne/L=29個(gè)/12.1kLoc=2.4個(gè)
/kLoc
平均成本:
CI=S/L=168000美元"2.1kLoc=13.88美元
/Loc
每千行代碼的平均文檔頁數(shù):
DI=Pd/L=365Pd/12.1kLoc=30.16Pd/kLoc
■
規(guī)模度量的優(yōu)缺點(diǎn)
用軟件代碼行數(shù)估算軟件規(guī)模簡單易行。
缺點(diǎn)
■代碼行數(shù)的估算依賴于程序設(shè)計(jì)語言的功能和表
達(dá)能九
■采用代碼行估算方法會對設(shè)計(jì)精巧的軟件項(xiàng)目產(chǎn)
生不利的影響;
■在軟件項(xiàng)目開發(fā)前或開發(fā)初期估算它的代碼行數(shù)
十分困難;
■代碼行估算只適用于過程式程序設(shè)計(jì)語言,對非
過程式的程序設(shè)計(jì)語言不太適用等等。
■
3.1.1.3面向功能的度量
根據(jù)事務(wù)信息處理程序的基本功能定義的,
在系統(tǒng)設(shè)計(jì)初期可以估算出軟件項(xiàng)目的規(guī)模
FP=CT*[0.65+0.01*ZFi]
其中:CT按表3.1計(jì)算0
Fi是復(fù)雜性調(diào)節(jié)值
Fi取值0,1,...,5
當(dāng)Fi=0時(shí),表示Fi不起作用
Fi=5時(shí),表示Fi作用最大
表3」功能點(diǎn)度量
測量參數(shù)值權(quán)值
用戶輸入數(shù)口*4=
用戶輸出數(shù)口*5=
用戶查詢數(shù)口*4=
文件數(shù)口*7=
外部界面數(shù)口*7=
CT=
表3?1中的五個(gè)信息量按下列方式取值
用戶輸入數(shù)用戶為軟件提供的輸入?yún)?shù)個(gè)數(shù)
用戶輸出數(shù)軟件系統(tǒng)為用戶提供的輸出參數(shù)個(gè)數(shù)
用戶查詢數(shù)一個(gè)聯(lián)機(jī)輸入確定一次查詢,軟件以
聯(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ù)
■平均成本:
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ì)算中來,為了避免混淆,我們把
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ù)*5
用戶查詢數(shù)*4
文件數(shù)*7
外部界面數(shù)*7
算法*3
CT
■對一般的工程計(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)函數(shù)的
取值;
②信息領(lǐng)域中的某些數(shù)據(jù)有時(shí)不容易采集;
③FP的值沒有直觀的物理意義。
■
3.L1.4代碼行度量與功能點(diǎn)度量的比較
■代碼行度量依賴于程序設(shè)計(jì)語言,而功能點(diǎn)度
量不依賴于程序設(shè)計(jì)語言。
■Albrecht和Jones等人對若干軟件采用事后處理
的方式分別統(tǒng)計(jì)出不同程序設(shè)計(jì)語言每個(gè)功能
點(diǎn)與代碼行數(shù)的關(guān)系,用LOCVFP的平均值表示。
■表3.3表明,一行Ada語言代碼的“功能”平均是
一行FORTRAN語言代碼“功能”的1.4倍。一行
四代語言代碼的“功能''平均是一行傳統(tǒng)程序設(shè)
計(jì)語言代碼“功能”的3至5倍。
表33各種語言的LOC/FP(平均值)
程序設(shè)計(jì)語言LOC/FP(平均值)
匯編語言300
COBOL100
FORTRAN100
Pascal90
Ada70
面向?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)的有向圖
■圖中每個(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ù)
n為結(jié)構(gòu)圖的結(jié)點(diǎn)數(shù)
可以證明V(G)等于結(jié)構(gòu)圖中有界或無界的封
閉區(qū)域個(gè)數(shù)
■
例3.1計(jì)算程序控制結(jié)構(gòu)的V(G)值
①順序結(jié)構(gòu)②While結(jié)構(gòu)
(a)
E=1E=3
N=2N=3
V=1V=2
□
計(jì)算程序控制結(jié)構(gòu)的V(G)值
③選擇結(jié)構(gòu)
(c)(d)
E=4E=3
N=4N=3
V=2V=2
計(jì)算程序控制結(jié)構(gòu)的V(G)值
(e)
例3.1計(jì)算如圖所示程序控制結(jié)構(gòu)圖的V(G)值。
(a)e=l,n=2,v=l;
(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.
示例:弓直)程序流程圖程序圖A
B
FJ
、H輸-入-f
在前面的例示中,
〃=11,
勿=13,?G)=6一〃+〃=13—11+1=3.
P=1
■McCabe建議把V(G)作為模塊規(guī)模的定量指標(biāo),
一個(gè)模塊V(G)的值不要大于10
■當(dāng)V(G)>10時(shí),模塊內(nèi)部結(jié)構(gòu)就會變得復(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)目計(jì)劃的目標(biāo)
?軟件項(xiàng)目管理人員在開發(fā)工作一開始需要進(jìn)
行定量估算。
?軟件項(xiàng)目計(jì)劃的目標(biāo)是提供一個(gè)能使項(xiàng)目管
理人員對資源、成本和進(jìn)度做出合理估算的框
架。
?M些估算應(yīng)當(dāng)在軟件項(xiàng)目開始時(shí)的一個(gè)有限
的時(shí)間段內(nèi)做出,并且隨著項(xiàng)目的進(jìn)展定期進(jìn)
行更新。
■軟件的范圍
■軟件范圍包括功能、性能、限制、接口和可靠性。
■估算開始時(shí),應(yīng)對軟件的功能進(jìn)行評價(jià),對其進(jìn)行適
當(dāng)?shù)募?xì)化以便提供更詳細(xì)的細(xì)節(jié)。由于成本和進(jìn)度的
估算都與功能有關(guān),因此常常采用某種程度的功能分
解。
■性能的考慮包括處理和響應(yīng)時(shí)間的需求。
■約束條件則標(biāo)識產(chǎn)品成本、外部硬件、可用存儲或其
它現(xiàn)有系統(tǒng)對軟件的限制。
■軟件與其它系統(tǒng)元素是相互作用的。要考慮每個(gè)接口
的性質(zhì)和復(fù)雜性,以確定對開發(fā)資源、成本和進(jìn)度的
影響。
軟件開發(fā)中的資源
>A:需要的技勤刑附間,工作期的有效性
靜?:開發(fā)系絳目楙喘新系藕它硬件部分
ftft:M娜軟件
投入時(shí)郵特軸瓦Wtt
高
人高級技術(shù)人員
員
參
加
程
度初級技術(shù)人員
./管理人員
計(jì)
需
編
單
整
確
詳
概
元
體
認(rèn)
求
細(xì)
要
測
測
測
分
設(shè)
設(shè)
試
試
試
析
計(jì)
計(jì)
劃
碼
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)目
在軟件開發(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è)主要的功能及相關(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)公式計(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)目
①用戶界面和控制;
②二維幾何分析;
③三維幾何分析;
④數(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)目
規(guī)模為33360L0C
成本為656680$
工作量為144.5PMo
■
■再用這兩種方法分別估算軟件開發(fā)子項(xiàng)目在軟件
工程各個(gè)階段的工作量,估算結(jié)果列入表3.5。
■兩種方法估算的工作量分別為144.5PM和
152.5PM,相差5%左右。
■估算的成本分別為656680$和708075$,相差7%
左右。
兩種方法估算的工作量和成本基本一致。
表3.4代碼行和成本、工作量估算
功能樂觀一般悲觀加權(quán)$LOC成本工作量
LOCLOCLOC平均/LOC/PM$(人月)
用戶界面控制179024002650234014315327607.4
二維幾何分析40805200740053802022010760024.4
三維幾何分析46006900860068002022013600030.9
數(shù)據(jù)庫管理2900340036003350182406030013.9
圖形顯示39004900620049502220010890024.7
外設(shè)控制1990210024502140281405992015.2
設(shè)計(jì)分析66008500980084001830015120028.0
總計(jì)33360656680144.5
表3.5工作量估算
功能需求分析設(shè)計(jì)編碼測試總計(jì)
用戶界面控制1.02.00.53.57
二維幾何分析2.010.04.59.526
三維幾何分析2.512.06.011.031.5
數(shù)據(jù)庫管理2.06.03.04.015
計(jì)算機(jī)圖形顯示1.511.04.010.527
外設(shè)控制1.56.03.55.016
設(shè)計(jì)分析4.014.05.07.030
總計(jì)(人月)14.56126.550.5152.5
每人月成未
5200480042504500
成本($)75400292800112625227250708075
■
3.2.1.2經(jīng)驗(yàn)估算模型之一CoCoMo模型
■計(jì)算機(jī)軟件的估算模型是根據(jù)以前完成項(xiàng)目的實(shí)
際數(shù)據(jù)導(dǎo)出的,用于軟件項(xiàng)目的計(jì)劃階段。
■模型是根據(jù)“從前的”,"局部的''數(shù)據(jù)得出的,估
算模型不可能完全適用于當(dāng)前所有的軟件項(xiàng)目和
全部開發(fā)環(huán)境。這些模型的計(jì)算結(jié)果僅供參考。
■兩個(gè)常用的估算模型
CoCoMo模型Putnam模型
CoCoMo模型
■1981年Boehm提出“構(gòu)造性成本模型”(ConstructiveCost
Model),簡稱CoCoMo模型。它是在靜態(tài)、單變量模型的
基礎(chǔ)上構(gòu)造出來的。
■CoCoMo模型分為基本、中間、詳細(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=al?(3-1)
D=cEd(3-2)
其中:E表示工作量,單位是人月(PM)。
D表示開發(fā)時(shí)間,單位是月(M)。
L是項(xiàng)目的代碼行估計(jì)值,單位是千行代碼
是常數(shù),取值如表3.6所示。
Boehm把軟件劃分為組織型、半獨(dú)立型和嵌入型三類,允許
不同應(yīng)用領(lǐng)域和復(fù)雜程度的軟件按照三類軟件的適用范圍選
取相應(yīng)的參數(shù)a9b4do
給出了代碼行數(shù)與工作量、工作量與開發(fā)時(shí)間之間的函數(shù)關(guān)系
表3.6簡單CoCoMo模型參數(shù)
軟件類型abcd適用范圍
組織型2.41.052.50.38各類應(yīng)用程序
半獨(dú)立型3.01.122.50.35各類實(shí)用程序
編譯程序等
嵌入型3.61.202.50.32實(shí)時(shí)處理、
控制程序、
操作系統(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ù)
軟件類型ab
組織型3.21.05
半獨(dú)立型3.01.12
嵌入型2.81.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)境的
變化、軟件開發(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=l,2,…,15,的值分為:
很低、低、正常、高、很高、極高,共六級。
■正常情況下Fi=lo
■Boehm推薦的Fi值范圍
(0.70,0.85,1.0091.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模型可以估算開發(fā)軟件產(chǎn)
品的工作量,比較各種開發(fā)方案的工作量。
例33用基本CoCoMo模型估算例3.2
工作量、開發(fā)時(shí)間和項(xiàng)目開發(fā)人數(shù)
在例3.2中,目標(biāo)代碼行數(shù)為33.3KLOC
CAD軟件開發(fā)屬于中等規(guī)模、半獨(dú)立型
從表3.7中查到a=3.0,b=1.12o
代入公式(3?1)
E=3.0火山2
=3.0*33.3112
=152PM
將E的估算值代入公式(3-2)
取C=2.5d=0.35
D=2.5*E°?35
=2.5*152635
=14.5M
建議參加項(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ā)的各個(gè)階段對人的要求也不同。
CoCoMo模型
若干人共同開發(fā)一個(gè)軟件項(xiàng)目還應(yīng)該增加他們之
間相互通信和交換意見的額外工作量。
設(shè)N個(gè)程序員組成小組,實(shí)現(xiàn)相同規(guī)模的程序,相互
通信數(shù)巧
盤=N(N-l)/2
每次通信和交換意見的平均工作量為口
則增加的通信開銷為
Ec=uN(N-l)/2(3-4)
例3.4計(jì)算一個(gè)程序的通信開銷
3人和5人開發(fā)一個(gè)程序
相互通信和交換意見的關(guān)
系如圖所示
將N=3和N=5分別代入公
式(3?4)
N=3和N=5時(shí)的相互
Ec(3)=u3(3-l)/2=3n
通信關(guān)系
Ec(5)=n5(5-1)/2=10LI
CoCoMo模型
由N個(gè)程序員組成的小組共同開發(fā)一個(gè)程序總的工作量
ET滿足
ET=E+Ec(3-5)
程序員小組的生產(chǎn)率是
PG=LOC/(E+Ec)(3-6)
程序員小組生產(chǎn)率和單個(gè)程序員生產(chǎn)率的比為
Rp=E/(E+Ec)(3-7)
隨著程序員小組人數(shù)的增加Ec心uN2/2,程序員小組的生
產(chǎn)率將會下降。
模型表明
盲目增加程序員人數(shù)會推遲軟件完成的日期
3223經(jīng)驗(yàn)估算模型之二:Putnam模型
■1978年,Putnam提出了大型軟件項(xiàng)目工作量(一般
在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模型
方程
4/3
L=CKEi/3td(3-8)
其中:L表示源程序代碼行數(shù)
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é)的支持,有適宜的文檔和評審,采
用交互處理方式。
■好的軟件開發(fā)環(huán)境
應(yīng)采用CASE工具和集成化CASE環(huán)境。
CK=f2000比較差的軟件開發(fā)環(huán)境
<8000一般的軟件開發(fā)環(huán)境
、11000比較好的軟件開發(fā)環(huán)
■
Putnam模型
由(2?18)
E=LhcK^td4)(3-9)
■td對應(yīng)于Rayleigh-Nordeii曲線的最大值,表示軟件交付
時(shí)工作量最大,參與軟件項(xiàng)目的人最多。
■當(dāng)工作量估算出來之后,利用每人年的開銷($/PY)可以估
算成本。
■公式(3-9)表明,開發(fā)軟件項(xiàng)目的工作量與交貨時(shí)間的4次
方成反比,將09td代替(3?9)式的td計(jì)算E發(fā)現(xiàn),提前10%
的時(shí)間要增加52%的工作量,降低了軟件開發(fā)生產(chǎn)率。
■軟件開發(fā)過程中人員與時(shí)間的折衷是一個(gè)十分重要的問題。
Putnam模型
大型軟件項(xiàng)目的工作量分布
■
3.3風(fēng)險(xiǎn)分析和管理
331風(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)
■改變、選擇、控制條件的策略是不確定的
軟件風(fēng)險(xiǎn)
■軟件風(fēng)險(xiǎn)和其它風(fēng)險(xiǎn)一樣存在不確定性,有些是很
難預(yù)測的。
■對風(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)會導(dǎo)致軟件項(xiàng)目的徹底失敗?
■顧客需求、開發(fā)環(huán)境、目標(biāo)機(jī)、時(shí)間、成本的改變
對軟件項(xiàng)目的風(fēng)險(xiǎn)會產(chǎn)生什么影響?
■人們必須抓住什么機(jī)會、采取什么措施才能有效地
減少風(fēng)險(xiǎn)、順利完成任務(wù)?
不同類型的風(fēng)險(xiǎn)
■項(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)分析
險(xiǎn)
險(xiǎn)
凡
圳
整
」
ft算皿
J
潛在地風(fēng)優(yōu)先級高的風(fēng)險(xiǎn)規(guī)劃和
風(fēng)險(xiǎn)評估
險(xiǎn)列表風(fēng)險(xiǎn)列表應(yīng)急并4
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)標(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ā)人員在技術(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)檢測表反映了人的因素給軟件項(xiàng)目帶來的風(fēng)險(xiǎn)。
■
2風(fēng)險(xiǎn)估算
如果某一風(fēng)險(xiǎn)檢測表由Hl項(xiàng)組成,每項(xiàng)選取一
個(gè)整數(shù)值0,1,…,N,在最理想的情況取值為0,反
之取值為N,對于中間狀態(tài)依次取值1,2,…,NT
當(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=EWijXij/(mN)
j=l
其中EWij=m,Wij三0(3-10)
■
風(fēng)險(xiǎn)估算
如果第i種風(fēng)險(xiǎn)對整個(gè)軟件項(xiàng)目的風(fēng)險(xiǎn)估算加權(quán)
系數(shù)是…J.為風(fēng)險(xiǎn)要素的個(gè)數(shù),EPi=
L則軟件項(xiàng)目風(fēng)險(xiǎn)估算定義為
1
R=EPioi(3—11)
i=l
■0WRW1當(dāng)R接近于0時(shí)表示風(fēng)險(xiǎn)比較小,R接
近于1時(shí)表示風(fēng)險(xiǎn)比較大。
■當(dāng)Pioi比較大時(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,23??
其中:ri表示風(fēng)險(xiǎn)
li表示風(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)組合會影響參考水平值
風(fēng)險(xiǎn)表(1/3)
風(fēng)險(xiǎn)類別概率影響RMMM
1
2
3
■項(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)定義一條中止
線,線上的風(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)分析數(shù)據(jù)
風(fēng)險(xiǎn)1((4人川)
、風(fēng)險(xiǎn)管理步驟1
,風(fēng)險(xiǎn)分析數(shù)據(jù)
風(fēng)險(xiǎn)管理
風(fēng)險(xiǎn)24(n,/2,xi)
、風(fēng)險(xiǎn)管理步驟2
「認(rèn)>風(fēng)險(xiǎn)分析數(shù)據(jù)
風(fēng)險(xiǎn)5.In,Jn)風(fēng)險(xiǎn)管理和監(jiān)控計(jì)劃
、風(fēng)險(xiǎn)管理步驟〃
風(fēng)險(xiǎn)管理和監(jiān)控
風(fēng)險(xiǎn)評價(jià)和管理
三元組是風(fēng)險(xiǎn)管理的基礎(chǔ)
設(shè)高級職員流動(dòng)給項(xiàng)目帶來風(fēng)險(xiǎn)
根據(jù)歷史的經(jīng)驗(yàn)或直觀感覺,高級職員離開課
題組的概率11=70%,
這一風(fēng)險(xiǎn)導(dǎo)致事件xl發(fā)生
項(xiàng)目開發(fā)時(shí)間延長15%,成本增加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)程中應(yīng)及時(shí)公布并交流項(xiàng)目開發(fā)的信息。
(5)建立組織機(jī)構(gòu),確定文檔標(biāo)準(zhǔn)、并及時(shí)生成文檔。
(6)對工作進(jìn)行集體復(fù)審,使多數(shù)人都能了解工作的細(xì)
節(jié),跟上工作進(jìn)度。
(7)為關(guān)鍵技術(shù)準(zhǔn)備后備人員。
RMMM計(jì)劃
■風(fēng)險(xiǎn)緩解、監(jiān)控和管理計(jì)劃
RiskMitigation.Monitoring^ndManagementPlan
將風(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的2040規(guī)則用于軟件項(xiàng)目的風(fēng)險(xiǎn)標(biāo)
識,即20%的風(fēng)險(xiǎn)具有0.80的權(quán),而其余的80%
風(fēng)險(xiǎn)只有0.20的權(quán)。要善于標(biāo)識屬于20%的主要
風(fēng)險(xiǎn),降低RMMM計(jì)劃的規(guī)模和復(fù)雜性。
■
RMMM計(jì)劃大綱
3?風(fēng)險(xiǎn)緩解、監(jiān)控和管理
計(jì)劃大綱3.1緩解
1.引言3/L1一般策略
1」文擋的范回和目的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 哈爾濱醫(yī)科大學(xué)《書畫裝裱》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東工程職業(yè)技術(shù)學(xué)院《工程招投標(biāo)與概預(yù)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇航運(yùn)職業(yè)技術(shù)學(xué)院《中學(xué)語文教學(xué)設(shè)計(jì)與技能訓(xùn)練(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江司法警官職業(yè)學(xué)院《模擬電子技術(shù)課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東司法警官職業(yè)學(xué)院《數(shù)字特效合成》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津工藝美術(shù)職業(yè)學(xué)院《衛(wèi)生檢驗(yàn)綜合技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 東莞職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)與操作系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢工程科技學(xué)院《外國文學(xué)名篇》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025三年級湘教版語文下學(xué)期期末知識點(diǎn)歸納復(fù)習(xí)周末練習(xí)單
- PROMIS-評分量表-使用版
- 軟壓光機(jī)計(jì)算說明
- 森林防火安全責(zé)任書(施工隊(duì)用)
- 《汽車性能評價(jià)與選購》課程設(shè)計(jì)
- 35kV絕緣導(dǎo)線門型直線桿
- 水庫應(yīng)急搶險(xiǎn)與典型案例分析
- 49式武當(dāng)太極劍動(dòng)作方位
- 工程成本分析報(bào)告(新)
- 國際學(xué)術(shù)會議海報(bào)模板16-academic conference poster model
- 經(jīng)典誦讀比賽評分標(biāo)準(zhǔn)【精選文檔】
- 高值耗材參考目錄
- 步兵戰(zhàn)斗動(dòng)作
評論
0/150
提交評論