軟件項(xiàng)目管理_第1頁
軟件項(xiàng)目管理_第2頁
軟件項(xiàng)目管理_第3頁
軟件項(xiàng)目管理_第4頁
軟件項(xiàng)目管理_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論