簡(jiǎn)介:第三章軟件項(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ì)量的前提下順利完成,必須對(duì)軟件工程項(xiàng)目進(jìn)行計(jì)劃、組織、監(jiān)控和管理任務(wù)制定軟件項(xiàng)目的實(shí)施計(jì)劃和方案;對(duì)人員進(jìn)行組織和分工;按照計(jì)劃進(jìn)度,以及成本管理、風(fēng)險(xiǎn)管理、質(zhì)量管理的要求進(jìn)行軟件開(kāi)發(fā),完成軟件項(xiàng)目的各項(xiàng)要求和任務(wù)。,311軟件度量,軟件度量的概念軟件規(guī)模度量軟件功能度量,,31軟件項(xiàng)目度量,軟件度量分類,3111度量、估算,度量METRICS度量具有數(shù)字特征,軟件工程范圍的度量是軟件開(kāi)發(fā)過(guò)程、軟件資源或軟件產(chǎn)品簡(jiǎn)單屬性的定量描述。如,程序規(guī)模、操作符個(gè)數(shù)、程序中錯(cuò)誤的個(gè)數(shù)等。估算ESTIMATION對(duì)軟件產(chǎn)品、過(guò)程、資源進(jìn)行預(yù)測(cè)估算可以采用經(jīng)驗(yàn)公式、或參考?xì)v史資料估算用于事前簽訂合同、立項(xiàng)、制定工作計(jì)劃等,軟件的外部屬性和內(nèi)部屬性外部屬性軟件產(chǎn)品、過(guò)程、資源與環(huán)境的關(guān)系如,成本、效益、勞動(dòng)生產(chǎn)率、可靠性、可維護(hù)性內(nèi)部屬性軟件產(chǎn)品、過(guò)程、資源、環(huán)境自身的屬性如,產(chǎn)品結(jié)構(gòu)、模塊化程度、復(fù)雜性、程序長(zhǎng)度等。,產(chǎn)品過(guò)程資源,產(chǎn)品的內(nèi)部屬性程序代碼長(zhǎng)度程序功能模塊化重用性控制流數(shù)據(jù)流模塊耦合度與內(nèi)聚度產(chǎn)品的外部屬性程序的可靠性可用性可維護(hù)性軟件的可理解性有效性可移植性,過(guò)程的內(nèi)部屬性工作量計(jì)劃和進(jìn)度一段時(shí)間內(nèi)某類事件發(fā)生的次數(shù)過(guò)程的外部屬性成本可控制性可觀察性穩(wěn)定性資源的內(nèi)部屬性人軟硬件環(huán)境方法經(jīng)驗(yàn)資源的外部屬性成本時(shí)間,3112面向規(guī)模的度量,代碼行數(shù)LOC或KLOC生產(chǎn)率PLL/E其中L軟件項(xiàng)目代碼行數(shù)E軟件項(xiàng)目工作量(人月PM)PL軟件項(xiàng)目生產(chǎn)率(LOC/PM)代碼出錯(cuò)率EQRLNE/L其中NE軟件項(xiàng)目的代碼錯(cuò)誤數(shù)EQRL每千行代碼的錯(cuò)誤數(shù),每行代碼平均成本CLS/L其中S軟件項(xiàng)目總開(kāi)銷(元/美元)CL軟件項(xiàng)目每行代碼的平均成本文檔與代碼比DLPD/L其中PD軟件項(xiàng)目文檔頁(yè)數(shù)DL每千行代碼的平均文檔數(shù),例軟件項(xiàng)目記錄,生產(chǎn)率PLL/E121KLOC/24PM504LOC/PM出錯(cuò)率EQRLNE/L29個(gè)/121KLOC24個(gè)/KLOC平均成本CLS/L168000美元/121KLOC1388美元/LOC每千行代碼的平均文檔頁(yè)數(shù)DLPD/L365PD/121KLOC3016PD/KLOC,規(guī)模度量的優(yōu)缺點(diǎn),用軟件代碼行數(shù)估算軟件規(guī)模簡(jiǎn)單易行。缺點(diǎn)代碼行數(shù)的估算依賴于程序設(shè)計(jì)語(yǔ)言的功能和表達(dá)能力;采用代碼行估算方法會(huì)對(duì)設(shè)計(jì)精巧的軟件項(xiàng)目產(chǎn)生不利的影響;在軟件項(xiàng)目開(kāi)發(fā)前或開(kāi)發(fā)初期估算它的代碼行數(shù)十分困難;代碼行估算只適用于過(guò)程式程序設(shè)計(jì)語(yǔ)言,對(duì)非過(guò)程式的程序設(shè)計(jì)語(yǔ)言不太適用等等。,根據(jù)事務(wù)信息處理程序的基本功能定義的,在系統(tǒng)設(shè)計(jì)初期可以估算出軟件項(xiàng)目的規(guī)模FPCT[065001∑FI]其中CT按表31計(jì)算FI是復(fù)雜性調(diào)節(jié)值FI取值0,1,,5當(dāng)FI0時(shí),表示FI不起作用FI5時(shí),表示FI作用最大,3113面向功能的度量,表31功能點(diǎn)度量,測(cè)量參數(shù)值權(quán)值用戶輸入數(shù)□4=□用戶輸出數(shù)□5=□用戶查詢數(shù)□4=□文件數(shù)□7=□外部界面數(shù)□7=□CT=□,表31中的五個(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)率PFFP/E其中PF表示每人月完成的功能點(diǎn)數(shù)平均成本CIS/FP其中CI表示每功能點(diǎn)的平均成本文檔與功能點(diǎn)比DIPD/FP其中DI表示每個(gè)功能點(diǎn)平均具有的文檔頁(yè)數(shù)代碼出錯(cuò)率EORINE/FP其中EORI表示每個(gè)功能點(diǎn)的平均錯(cuò)誤個(gè)數(shù),面向功能的度量,軟件規(guī)模的功能點(diǎn)度量沒(méi)有直接涉及軟件系統(tǒng)本身的算法復(fù)雜性。1986年JONES把軟件項(xiàng)目中的算法復(fù)雜性因素引入到功能點(diǎn)計(jì)算中來(lái),為了避免混淆,我們把ALBRECHT定義的功能點(diǎn)稱為簡(jiǎn)單功能點(diǎn),用FPS表示,把JONES推廣的功能點(diǎn)稱為功能點(diǎn),用FP表示。推廣的功能點(diǎn)包括計(jì)算機(jī)程序中用于各類問(wèn)題求解的算法因素,如求解線性代數(shù)方程組、遍歷二叉樹(shù)的各個(gè)結(jié)點(diǎn)、處理中斷等等。功能點(diǎn)計(jì)算仍用上面的公式,其中CT按表32計(jì)算。,表32推廣的功能點(diǎn)度量,測(cè)量參數(shù)值權(quán)值用戶輸入數(shù)□4=□用戶輸出數(shù)□5=□用戶查詢數(shù)□4=□文件數(shù)□7=□外部界面數(shù)□7=□算法□3=□CT=□對(duì)一般的工程計(jì)算或事務(wù)處理軟件,用表31和表32兩種方法計(jì)算出來(lái)的FP值應(yīng)該基本上相同對(duì)于比較復(fù)雜的軟件系統(tǒng)FP比FPS的值高20~35,面向功能的度量的優(yōu)缺點(diǎn),優(yōu)點(diǎn)①與程序設(shè)計(jì)語(yǔ)言無(wú)關(guān),它不僅適用于過(guò)程式語(yǔ)言,也適用于非過(guò)程式的語(yǔ)言;②軟件項(xiàng)目開(kāi)發(fā)初期就能基本上確定系統(tǒng)的輸入、輸出等參數(shù),功能點(diǎn)度量能用于軟件項(xiàng)目的開(kāi)發(fā)初期。缺點(diǎn)①它涉及到的主觀因素比較多,如各種權(quán)函數(shù)的取值;②信息領(lǐng)域中的某些數(shù)據(jù)有時(shí)不容易采集;③FP的值沒(méi)有直觀的物理意義。,3114代碼行度量與功能點(diǎn)度量的比較,代碼行度量依賴于程序設(shè)計(jì)語(yǔ)言,而功能點(diǎn)度量不依賴于程序設(shè)計(jì)語(yǔ)言。ALBRECHT和JONES等人對(duì)若干軟件采用事后處理的方式分別統(tǒng)計(jì)出不同程序設(shè)計(jì)語(yǔ)言每個(gè)功能點(diǎn)與代碼行數(shù)的關(guān)系,用LOC/FP的平均值表示。表33表明,一行ADA語(yǔ)言代碼的“功能”平均是一行FORTRAN語(yǔ)言代碼“功能”的14倍。一行四代語(yǔ)言代碼的“功能”平均是一行傳統(tǒng)程序設(shè)計(jì)語(yǔ)言代碼“功能”的3至5倍。,表33各種語(yǔ)言的LOC/FP平均值,程序設(shè)計(jì)語(yǔ)言LOC/FP平均值匯編語(yǔ)言300COBOL100FORTRAN100PASCAL90ADA70面向?qū)ο蟮恼Z(yǔ)言30四代語(yǔ)言4GL20代碼生成器15,312軟件復(fù)雜性度量,1976年TJMCCABEMCCABE度量法又稱環(huán)路復(fù)雜性度量,基于程序控制結(jié)構(gòu)的軟件復(fù)雜性度量模型。程序控制結(jié)構(gòu)圖程序結(jié)構(gòu)對(duì)應(yīng)于有一個(gè)入口結(jié)點(diǎn)和一個(gè)出口結(jié)點(diǎn)的有向圖圖中每個(gè)結(jié)點(diǎn)對(duì)應(yīng)一個(gè)語(yǔ)句或一個(gè)順序流程的程序代碼塊弧對(duì)應(yīng)于程序中的轉(zhuǎn)移它基于一個(gè)程序模塊的程序圖中環(huán)路的個(gè)數(shù),因此計(jì)算它先要畫(huà)出程序圖。程序圖是退化的程序流程圖。流程圖中每個(gè)處理都退化成一個(gè)結(jié)點(diǎn),流線變成連接不同結(jié)點(diǎn)的有向弧。,MCCABE度量法,MCCABE用程序控制結(jié)構(gòu)圖的巡回秩數(shù)VG作為程序結(jié)構(gòu)復(fù)雜性的度量VGEN2其中E為結(jié)構(gòu)圖的邊數(shù)N為結(jié)構(gòu)圖的結(jié)點(diǎn)數(shù)可以證明VG等于結(jié)構(gòu)圖中有界或無(wú)界的封閉區(qū)域個(gè)數(shù),例31計(jì)算程序控制結(jié)構(gòu)的VG值,E1E3N2N3V1V2,,計(jì)算程序控制結(jié)構(gòu)的VG值,E4E3N4N3V2V2,,計(jì)算程序控制結(jié)構(gòu)的VG值,E6N5V3,,例31計(jì)算如圖所示程序控制結(jié)構(gòu)圖的VG值。AE1,N2,V1BE3,N3,V2CE4,N4,V2;DE3,N3,V2EE6,N5,V3,,示例,在前面的例示中,N=11,M=13,VG=M-N+P=13-11+1=3P=1,MCCABE建議把VG作為模塊規(guī)模的定量指標(biāo),一個(gè)模塊VG的值不要大于10當(dāng)VG10時(shí),模塊內(nèi)部結(jié)構(gòu)就會(huì)變得復(fù)雜,給編碼和測(cè)試帶來(lái)困難。,這種度量的缺點(diǎn)是對(duì)于不同種類的控制流的復(fù)雜性不能區(qū)分簡(jiǎn)單IF語(yǔ)句與循環(huán)語(yǔ)句的復(fù)雜性同等看待嵌套IF語(yǔ)句與簡(jiǎn)單CASE語(yǔ)句的復(fù)雜性是一樣的模塊間接口當(dāng)成一個(gè)簡(jiǎn)單分支一樣處理一個(gè)具有1000行的順序程序與一行語(yǔ)句的復(fù)雜性相同,32軟件項(xiàng)目計(jì)劃與估算,321軟件項(xiàng)目計(jì)劃,軟件項(xiàng)目管理人員在開(kāi)發(fā)工作一開(kāi)始需要進(jìn)行定量估算。軟件項(xiàng)目計(jì)劃的目標(biāo)是提供一個(gè)能使項(xiàng)目管理人員對(duì)資源、成本和進(jìn)度做出合理估算的框架。這些估算應(yīng)當(dāng)在軟件項(xiàng)目開(kāi)始時(shí)的一個(gè)有限的時(shí)間段內(nèi)做出,并且隨著項(xiàng)目的進(jìn)展定期進(jìn)行更新。,軟件項(xiàng)目計(jì)劃的目標(biāo),軟件的范圍,軟件范圍包括功能、性能、限制、接口和可靠性。估算開(kāi)始時(shí),應(yīng)對(duì)軟件的功能進(jìn)行評(píng)價(jià),對(duì)其進(jìn)行適當(dāng)?shù)募?xì)化以便提供更詳細(xì)的細(xì)節(jié)。由于成本和進(jìn)度的估算都與功能有關(guān),因此常常采用某種程度的功能分解。性能的考慮包括處理和響應(yīng)時(shí)間的需求。約束條件則標(biāo)識(shí)產(chǎn)品成本、外部硬件、可用存儲(chǔ)或其它現(xiàn)有系統(tǒng)對(duì)軟件的限制。軟件與其它系統(tǒng)元素是相互作用的。要考慮每個(gè)接口的性質(zhì)和復(fù)雜性,以確定對(duì)開(kāi)發(fā)資源、成本和進(jìn)度的影響。,軟件開(kāi)發(fā)中的資源,322軟件項(xiàng)目估算,常用的估算方法①參照已經(jīng)完成的類似項(xiàng)目估算待開(kāi)發(fā)項(xiàng)目的成本和工作量。②將大的項(xiàng)目分解成若干子項(xiàng)目,在估算出每個(gè)子項(xiàng)目成本和工作量之后,再估算整個(gè)項(xiàng)目。③將軟件項(xiàng)目按軟件生存周期分解,分別估算出軟件項(xiàng)目在軟件開(kāi)發(fā)各個(gè)階段的工作量和成本,然后再把這些工作量和成本匯總估算整個(gè)項(xiàng)目。④根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)給出軟件項(xiàng)目工作量或成本的經(jīng)驗(yàn)估算公式。,四種方法可以同時(shí)、單獨(dú)或組合使用,以便取長(zhǎng)補(bǔ)短,提高項(xiàng)目估算的精度和可靠性。采用分解技術(shù)估算軟件項(xiàng)目應(yīng)考慮系統(tǒng)集成時(shí)需要的工作量。為了實(shí)現(xiàn)軟件項(xiàng)目估算,實(shí)踐中開(kāi)發(fā)了大量的軟件項(xiàng)目自動(dòng)估算工具,用以支持軟件工作量或成本估算。,分解技術(shù)采用”分而治之”的策略進(jìn)行軟件項(xiàng)目估算將項(xiàng)目分解為若干個(gè)主要的功能及相關(guān)的軟件工程活動(dòng),通過(guò)逐步求精的方式進(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)估算將是很好的選擇。,3221代碼行、功能點(diǎn)和工作量估算,軟件項(xiàng)目的規(guī)模是影響軟件項(xiàng)目成本和工作量的重要因素。軟件項(xiàng)目代碼行和功能點(diǎn)估算是成本和工作量估算的基礎(chǔ)。采用上面的估算方法可以估算出LOC或FP的樂(lè)觀值A(chǔ),悲觀值B和一般值M,然后根據(jù)下列加權(quán)公式計(jì)算出期望值EA+4M+B/6希望LOC或FP的值落在區(qū)間[A,B]之外的概率極小,當(dāng)LOC或FP的期望值估算出來(lái)之后,根據(jù)以前軟件項(xiàng)目開(kāi)發(fā)的平均生產(chǎn)率LOC/PM或FP/PM就可以計(jì)算出工作量。如,軟件項(xiàng)目的規(guī)模估算為310FP,以前完成的軟件項(xiàng)目的生產(chǎn)率為55FP/PM,于是工作量估算為E310/5556PM。,例32估算計(jì)算機(jī)輔助設(shè)計(jì)軟件項(xiàng)目,將CAD項(xiàng)目按功能分解為七個(gè)子項(xiàng)目①用戶界面和控制;②二維幾何分析;③三維幾何分析;④數(shù)據(jù)庫(kù)管理;⑤計(jì)算機(jī)圖形顯示;⑥外設(shè)控制;⑦設(shè)計(jì)分析。表34給出七個(gè)子項(xiàng)目代碼行的樂(lè)觀估計(jì)、悲觀計(jì)和一般估計(jì)值,然后計(jì)算出加權(quán)平均值。,估算計(jì)算機(jī)輔助設(shè)計(jì)軟件項(xiàng)目,分析七個(gè)子項(xiàng)目的規(guī)模復(fù)雜性和難度,參照以前開(kāi)發(fā)類似項(xiàng)目的經(jīng)驗(yàn)給出開(kāi)發(fā)每行代碼的平均成本,每月開(kāi)發(fā)的代碼行數(shù)。用這兩組數(shù)據(jù)計(jì)算出七個(gè)子項(xiàng)目的開(kāi)發(fā)成本和工作量。最后匯總的CAD軟件開(kāi)發(fā)項(xiàng)目規(guī)模為33360LOC成本為656680工作量為1445PM。,再用這兩種方法分別估算軟件開(kāi)發(fā)子項(xiàng)目在軟件工程各個(gè)階段的工作量,估算結(jié)果列入表35。兩種方法估算的工作量分別為1445PM和1525PM,相差5左右。估算的成本分別為656680和708075,相差7左右。兩種方法估算的工作量和成本基本一致。,表34代碼行和成本、工作量估算,功能樂(lè)觀一般悲觀加權(quán)LOC成本工作量LOCLOCLOC平均/LOC/PM$人月用戶界面控制1790240026502340143153276074二維幾何分析408052007400538020220107600244三維幾何分析460069008600680020220136000309數(shù)據(jù)庫(kù)管理29003400360033501824060300139圖形顯示390049006200495022200108900247外設(shè)控制19902100245021402814059920152設(shè)計(jì)分析660085009800840018300151200280總計(jì)333606566801445,表35工作量估算,功能需求分析設(shè)計(jì)編碼測(cè)試總計(jì)用戶界面控制102005357二維幾何分析20100459526三維幾何分析2512060110315數(shù)據(jù)庫(kù)管理2060304015計(jì)算機(jī)圖形顯示151104010527外設(shè)控制1560355016設(shè)計(jì)分析40140507030總計(jì)人月145612655051525每人月成本5200480042504500成本$75400292800112625227250708075,3222經(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)目和全部開(kāi)發(fā)環(huán)境。這些模型的計(jì)算結(jié)果僅供參考。兩個(gè)常用的估算模型COCOMO模型PUTNAM模型,COCOMO模型,1981年BOEHM提出“構(gòu)造性成本模型”CONSTRUCTIVECOSTMODEL,簡(jiǎn)稱COCOMO模型。它是在靜態(tài)、單變量模型的基礎(chǔ)上構(gòu)造出來(lái)的。COCOMO模型分為基本、中間、詳細(xì)三個(gè)層次,分別用于軟件開(kāi)發(fā)的三個(gè)不同階段。基本COCOMO模型用于系統(tǒng)開(kāi)發(fā)的初期,估算整個(gè)系統(tǒng)的工作量包括軟件維護(hù)和軟件開(kāi)發(fā)所需要的時(shí)間。中間COCOMO模型用于估算各個(gè)子系統(tǒng)的工作量和開(kāi)發(fā)時(shí)間。詳細(xì)COCOMO模型用于估算獨(dú)立的軟部件,如子系統(tǒng)內(nèi)部的各個(gè)模塊。,1基本COCOMO模型,靜態(tài)、單變量模型EALB31DCED32其中E表示工作量,單位是人月PM。D表示開(kāi)發(fā)時(shí)間,單位是月M。L是項(xiàng)目的代碼行估計(jì)值,單位是千行代碼A,B,C,D是常數(shù),取值如表36所示。BOEHM把軟件劃分為組織型、半獨(dú)立型和嵌入型三類,允許不同應(yīng)用領(lǐng)域和復(fù)雜程度的軟件按照三類軟件的適用范圍選取相應(yīng)的參數(shù)A,B,C,D。給出了代碼行數(shù)與工作量、工作量與開(kāi)發(fā)時(shí)間之間的函數(shù)關(guān)系,表36簡(jiǎn)單COCOMO模型參數(shù),軟件類型ABCD適用范圍組織型2410525038各類應(yīng)用程序半獨(dú)立型3011225035各類實(shí)用程序、編譯程序等嵌入型3612025032實(shí)時(shí)處理、控制程序、操作系統(tǒng),2中間COCOMO模型,中間COCOMO模型以基本COCOMO模型為基礎(chǔ),在工作量估計(jì)公式中乘以工作量調(diào)節(jié)因子EAFEALBEAF33其中L是軟件產(chǎn)品的目標(biāo)代碼行數(shù)A,B是常數(shù),取值如表37所示。,中間COCOMO模型,表37中間COCOMO模型參數(shù)軟件類型AB組織型32105半獨(dú)立型30112嵌入型28120,COCOMO模型,工作量調(diào)節(jié)因子EAF與軟件產(chǎn)品屬性、計(jì)算機(jī)屬性、人員屬性、項(xiàng)目屬性有關(guān)軟件產(chǎn)品屬性軟件可靠性、軟件復(fù)雜性、數(shù)據(jù)庫(kù)的規(guī)模。計(jì)算機(jī)屬性程序執(zhí)行時(shí)間、程序占用內(nèi)存的大小、軟件開(kāi)發(fā)環(huán)境的變化、軟件開(kāi)發(fā)環(huán)境的響應(yīng)速度。人員屬性分析員的能力、程序員的能力、有關(guān)應(yīng)用領(lǐng)域的經(jīng)驗(yàn)、開(kāi)發(fā)環(huán)境的經(jīng)驗(yàn)、程序設(shè)計(jì)語(yǔ)言的經(jīng)驗(yàn)項(xiàng)目屬性軟件開(kāi)發(fā)方法的能力,軟件工具的質(zhì)量和數(shù)量、軟件開(kāi)發(fā)的進(jìn)度要求。,COCOMO模型,四種屬性共15個(gè)要素。每個(gè)要素調(diào)節(jié)因子FI,I1,2,,15,的值分為很低、低、正常、高、很高、極高,共六級(jí)。正常情況下FI1。BOEHM推薦的FI值范圍070,085,100,115,130,165當(dāng)15個(gè)FI的值選定后,EAF的計(jì)算如下EAF=F1F2F15,COCOMO模型,調(diào)節(jié)因子集的定義和調(diào)節(jié)因子定值是由統(tǒng)計(jì)結(jié)果和經(jīng)驗(yàn)決定的。不同的軟件開(kāi)發(fā)組織,在不同的歷史時(shí)期,隨著環(huán)境的變化,這些數(shù)據(jù)可能改變。使用中間COCOMO模型可以估算開(kāi)發(fā)軟件產(chǎn)品的工作量,比較各種開(kāi)發(fā)方案的工作量。,例33用基本COCOMO模型估算例32,工作量、開(kāi)發(fā)時(shí)間和項(xiàng)目開(kāi)發(fā)人數(shù)在例32中,目標(biāo)代碼行數(shù)為333KLOCCAD軟件開(kāi)發(fā)屬于中等規(guī)模、半獨(dú)立型從表37中查到A30,B112。代入公式31E30*L11230*333112152PM,將E的估算值代入公式32取C25D035D25*E03525152035145M建議參加項(xiàng)目開(kāi)發(fā)的人數(shù)NE/D152/145≈11例中計(jì)算出來(lái)的11人是粗略估計(jì)在軟件項(xiàng)目開(kāi)發(fā)過(guò)程中,11個(gè)人不可能都有相同的能力和個(gè)性,相同的經(jīng)驗(yàn)和知識(shí)結(jié)構(gòu),并且在軟件開(kāi)發(fā)的各個(gè)階段對(duì)人的要求也不同。,COCOMO模型,若干人共同開(kāi)發(fā)一個(gè)軟件項(xiàng)目還應(yīng)該增加他們之間相互通信和交換意見(jiàn)的額外工作量。設(shè)N個(gè)程序員組成小組,實(shí)現(xiàn)相同規(guī)模的程序,相互通信數(shù)為NN1/2每次通信和交換意見(jiàn)的平均工作量為Μ則增加的通信開(kāi)銷為EC=ΜNN1/234,,例34計(jì)算一個(gè)程序的通信開(kāi)銷,3人和5人開(kāi)發(fā)一個(gè)程序相互通信和交換意見(jiàn)的關(guān)系如圖所示將N3和N5分別代入公式34EC3=Μ331/2=3ΜEC5=Μ551/2=10Μ,,COCOMO模型,由N個(gè)程序員組成的小組共同開(kāi)發(fā)一個(gè)程序總的工作量ET滿足ETEEC35程序員小組的生產(chǎn)率是PGLOC/EEC36程序員小組生產(chǎn)率和單個(gè)程序員生產(chǎn)率的比為RPE/EEC37隨著程序員小組人數(shù)的增加,EC≈ΜN2/2,程序員小組的生產(chǎn)率將會(huì)下降。模型表明盲目增加程序員人數(shù)會(huì)推遲軟件完成的日期,3223經(jīng)驗(yàn)估算模型之二PUTNAM模型,1978年,PUTNAM提出了大型軟件項(xiàng)目工作量一般在30人年以上估算模型。它是一個(gè)動(dòng)態(tài)多變量模型,適用于軟件開(kāi)發(fā)的各個(gè)階段,估算模型以大型軟件項(xiàng)目的實(shí)測(cè)數(shù)據(jù)為基礎(chǔ),導(dǎo)出工作量分布曲線。該曲線與著名的RAYLEIGHNORDENRN曲線相似,它描述了開(kāi)發(fā)工作量,開(kāi)發(fā)時(shí)間和軟件代碼行數(shù)之間的關(guān)系。,PUTNAM模型,方程LCKE1/3TD4/338其中L表示源程序代碼行數(shù)TD表示開(kāi)發(fā)時(shí)間CK表示技術(shù)狀態(tài)常數(shù)E表示工作量以人年記,包括維護(hù),PUTNAM模型揭示了軟件項(xiàng)目的工作量、軟件開(kāi)發(fā)時(shí)間和程序代碼長(zhǎng)度三者之間的關(guān)系,PUTNAM模型,差的軟件開(kāi)發(fā)環(huán)境軟件開(kāi)發(fā)沒(méi)有方法學(xué)的支持,缺乏對(duì)文檔的評(píng)審,采用批處理方式。一般的軟件開(kāi)發(fā)環(huán)境應(yīng)有軟件開(kāi)發(fā)方法學(xué)的支持,有適宜的文檔和評(píng)審,采用交互處理方式。好的軟件開(kāi)發(fā)環(huán)境應(yīng)采用CASE工具和集成化CASE環(huán)境。CK2000比較差的軟件開(kāi)發(fā)環(huán)境8000一般的軟件開(kāi)發(fā)環(huán)境11000比較好的軟件開(kāi)發(fā)環(huán),,PUTNAM模型,由218334E=L/CKTD39TD對(duì)應(yīng)于RAYLEIGHNORDEN曲線的最大值,表示軟件交付時(shí)工作量最大,參與軟件項(xiàng)目的人最多。當(dāng)工作量估算出來(lái)之后,利用每人年的開(kāi)銷/PY可以估算成本。公式39表明,開(kāi)發(fā)軟件項(xiàng)目的工作量與交貨時(shí)間的4次方成反比,將09TD代替39式的TD計(jì)算E發(fā)現(xiàn),提前10的時(shí)間要增加52的工作量,降低了軟件開(kāi)發(fā)生產(chǎn)率。軟件開(kāi)發(fā)過(guò)程中人員與時(shí)間的折衷是一個(gè)十分重要的問(wèn)題。,PUTNAM模型,,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)隨條件的變化而改變,人們通過(guò)改變、選擇、控制與風(fēng)險(xiǎn)密切相關(guān)的條件減少、回避風(fēng)險(xiǎn)改變、選擇、控制條件的策略是不確定的,33風(fēng)險(xiǎn)分析和管理,軟件風(fēng)險(xiǎn),軟件風(fēng)險(xiǎn)和其它風(fēng)險(xiǎn)一樣存在不確定性,有些是很難預(yù)測(cè)的。對(duì)風(fēng)險(xiǎn)的不確定性進(jìn)行量化,估算某一風(fēng)險(xiǎn)可能帶來(lái)的損失。除關(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)心的問(wèn)題什么風(fēng)險(xiǎn)會(huì)導(dǎo)致軟件項(xiàng)目的徹底失敗顧客需求、開(kāi)發(fā)環(huán)境、目標(biāo)機(jī)、時(shí)間、成本的改變對(duì)軟件項(xiàng)目的風(fēng)險(xiǎn)會(huì)產(chǎn)生什么影響人們必須抓住什么機(jī)會(huì)、采取什么措施才能有效地減少風(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)無(wú)需求的產(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)識(shí)風(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)識(shí),對(duì)待風(fēng)險(xiǎn)不能采取回避態(tài)度項(xiàng)目開(kāi)始時(shí)應(yīng)對(duì)一般性風(fēng)險(xiǎn)和特定產(chǎn)品風(fēng)險(xiǎn)進(jìn)行系統(tǒng)標(biāo)識(shí),並隨著項(xiàng)目的展開(kāi)不斷更新。一般可預(yù)測(cè)風(fēng)險(xiǎn)產(chǎn)品規(guī)模、商業(yè)影響、客戶、過(guò)程、技術(shù)、環(huán)境、人員及經(jīng)驗(yàn)等。識(shí)別風(fēng)險(xiǎn)的有效方法風(fēng)險(xiǎn)檢測(cè)表為了幫助項(xiàng)目管理人員、項(xiàng)目規(guī)劃人員,全面了解軟件開(kāi)發(fā)過(guò)程存在的風(fēng)險(xiǎn),BOEHM建議設(shè)計(jì)并使用各類風(fēng)險(xiǎn)檢測(cè)表,表中條目指明,常見(jiàn)並可預(yù)測(cè)的風(fēng)險(xiǎn)。有些風(fēng)險(xiǎn)可以預(yù)料,有些很難預(yù)料。,例36人員配備風(fēng)險(xiǎn)檢測(cè)表,1開(kāi)發(fā)人員的水平如何。2開(kāi)發(fā)人員在技術(shù)上是否配套。3開(kāi)發(fā)人員的數(shù)量如何。4開(kāi)發(fā)人員是否能夠自始至終地參加軟件開(kāi)發(fā)工作。5開(kāi)發(fā)人員是否能夠集中全部精力投入到軟件開(kāi)發(fā)工作。6開(kāi)發(fā)人員對(duì)自己的工作是否有正確的期望。7開(kāi)發(fā)人員是否接受過(guò)必要的培訓(xùn)。8開(kāi)發(fā)人員的流動(dòng)是否能夠保證工作的連續(xù)性。上述問(wèn)題可以選用0,1,2,3,4,5來(lái)回答。完全肯定取值為0,反之為5,中間情況分別取值1,2,3,4值越大表示風(fēng)險(xiǎn)越大。人員配備風(fēng)險(xiǎn)檢測(cè)表反映了人的因素給軟件項(xiàng)目帶來(lái)的風(fēng)險(xiǎn)。,2風(fēng)險(xiǎn)估算,如果某一風(fēng)險(xiǎn)檢測(cè)表由M項(xiàng)組成,每項(xiàng)選取一個(gè)整數(shù)值0,1,,N,在最理想的情況取值為0,反之取值為N,對(duì)于中間狀態(tài)依次取值1,2,,N1當(dāng)N1時(shí)取值0,1,對(duì)應(yīng)布爾量真/假T/F設(shè)第I種風(fēng)險(xiǎn)檢測(cè)表第J項(xiàng)取值XIJ,對(duì)應(yīng)的加權(quán)系數(shù)是WIJ,于是第I種風(fēng)險(xiǎn)的估算值可以定義為MΣI=∑WIJXIJ/MNJ1其中∑WIJ=M,WIJ≥0310,風(fēng)險(xiǎn)估算,如果第I種風(fēng)險(xiǎn)對(duì)整個(gè)軟件項(xiàng)目的風(fēng)險(xiǎn)估算加權(quán)系數(shù)是ΡI,I1,2,,L為風(fēng)險(xiǎn)要素的個(gè)數(shù),∑ΡI=1,則軟件項(xiàng)目風(fēng)險(xiǎn)估算定義為L(zhǎng)R=∑ΡIΣI311I10≤R≤1當(dāng)R接近于0時(shí)表示風(fēng)險(xiǎn)比較小,R接近于1時(shí)表示風(fēng)險(xiǎn)比較大。當(dāng)ΡIΣI比較大時(shí),表示第I類風(fēng)險(xiǎn)出現(xiàn)并帶來(lái)不良影響的可能性比較大,必須引起足夠重視,設(shè)法改善條件,減小ΣI的值。,3風(fēng)險(xiǎn)評(píng)價(jià)和管理,風(fēng)險(xiǎn)評(píng)價(jià)是風(fēng)險(xiǎn)管理的重要步驟任務(wù)進(jìn)一步審查風(fēng)險(xiǎn)預(yù)測(cè)的精度;更新風(fēng)險(xiǎn)優(yōu)先次序;考慮控制和/或避免可能發(fā)生風(fēng)險(xiǎn)的辦法。,風(fēng)險(xiǎn)評(píng)價(jià),定義用三元組RI,LI,XI描述風(fēng)險(xiǎn),I1,2,3其中RI表示風(fēng)險(xiǎn)LI表示風(fēng)險(xiǎn)發(fā)生的概率XI表示風(fēng)險(xiǎn)產(chǎn)生的影響對(duì)大多數(shù)軟件項(xiàng)目,應(yīng)該定義性能、成本及進(jìn)度的風(fēng)險(xiǎn)參考水平值,當(dāng)某一風(fēng)險(xiǎn)或風(fēng)險(xiǎn)組合值超過(guò)水平值時(shí)項(xiàng)目被迫停止。,風(fēng)險(xiǎn)評(píng)估的步驟,1定義項(xiàng)目的風(fēng)險(xiǎn)參考水平值;2建立三元組,給出相應(yīng)的參考水平值;3預(yù)測(cè)一組臨界點(diǎn),定義項(xiàng)目終止區(qū)域;4預(yù)測(cè)什么樣的風(fēng)險(xiǎn)組合會(huì)影響參考水平值,風(fēng)險(xiǎn)表(1/3),風(fēng)險(xiǎn)類別概率影響RMMM123項(xiàng)目開(kāi)始時(shí)應(yīng)在第一列列出所有風(fēng)險(xiǎn)第二列給出風(fēng)險(xiǎn)類別;第三列給出每種風(fēng)險(xiǎn)發(fā)生的概率;第四列給出各種風(fēng)險(xiǎn)產(chǎn)生影響的評(píng)估值;第五列給出風(fēng)險(xiǎn)緩解、監(jiān)控和管理計(jì)劃。,風(fēng)險(xiǎn)表(2/3),評(píng)估值按風(fēng)險(xiǎn)因素性能、成本、進(jìn)度的影響類別求加權(quán)平均值影響類別取值災(zāi)難的1,嚴(yán)重的2,輕微的3,可忽略的4。對(duì)風(fēng)險(xiǎn)表中的風(fēng)險(xiǎn)按照發(fā)生概率大小、影響大小,由大至小排序。,風(fēng)險(xiǎn)表(3/3),項(xiàng)目管理者對(duì)風(fēng)險(xiǎn)表進(jìn)行研究后應(yīng)定義一條中止線,線上的風(fēng)險(xiǎn)較大者應(yīng)給予特別的關(guān)注,線下的風(fēng)險(xiǎn)需要進(jìn)一步的跟蹤、評(píng)估、排序。對(duì)風(fēng)險(xiǎn)發(fā)生概率較大的事件應(yīng)引起特別關(guān)注,要及早采取措施盡量避免它的發(fā)生。,,風(fēng)險(xiǎn)評(píng)價(jià)和管理,三元組[RI,LI,XI]是風(fēng)險(xiǎn)管理的基礎(chǔ)設(shè)高級(jí)職員流動(dòng)給項(xiàng)目帶來(lái)風(fēng)險(xiǎn)R1,根據(jù)歷史的經(jīng)驗(yàn)或直觀感覺(jué),高級(jí)職員離開(kāi)課題組的概率L170,這一風(fēng)險(xiǎn)導(dǎo)致事件X1發(fā)生項(xiàng)目開(kāi)發(fā)時(shí)間延長(zhǎng)15,成本增加20.,項(xiàng)目負(fù)責(zé)人采取的風(fēng)險(xiǎn)管理措施,1項(xiàng)目開(kāi)始前控制產(chǎn)生風(fēng)險(xiǎn)的原因。項(xiàng)目開(kāi)工后應(yīng)設(shè)法減輕風(fēng)險(xiǎn)的影響。2了解項(xiàng)目開(kāi)發(fā)人員變動(dòng)的原因,在項(xiàng)目開(kāi)發(fā)期間應(yīng)控制上述原因,盡量減少人員的流動(dòng)。3在工作方法和技術(shù)上采取適當(dāng)措施,防止因人員流動(dòng)給工作帶來(lái)?yè)p失。4項(xiàng)目在開(kāi)發(fā)過(guò)程中應(yīng)及時(shí)公布并交流項(xiàng)目開(kāi)發(fā)的信息。5建立組織機(jī)構(gòu),確定文檔標(biāo)準(zhǔn)、并及時(shí)生成文檔。6對(duì)工作進(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,ANDMANAGEMENTPLAN將風(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)目。將PA
下載積分: 4 賞幣
上傳時(shí)間:2024-01-06
頁(yè)數(shù): 113
大?。?1.17(MB)
子文件數(shù):