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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第三章軟件項(xiàng)目管理主講:肖丁dxiao@;北京郵電大學(xué)通信軟件工程中心203二月2023提綱3.1項(xiàng)目管理過程3.2風(fēng)險(xiǎn)管理3.3軟件質(zhì)量和效率度量3.4軟件項(xiàng)目估算3.5軟件項(xiàng)目進(jìn)度安排3.6項(xiàng)目組織結(jié)構(gòu)設(shè)計(jì)3.7項(xiàng)目過程監(jiān)控303二月20233.1項(xiàng)目管理過程項(xiàng)目的定義:是為創(chuàng)造獨(dú)特產(chǎn)品、服務(wù)或其它成果而進(jìn)行的一次性工作。項(xiàng)目的屬性:(對(duì)比常規(guī)運(yùn)作)一次性/獨(dú)特性;目標(biāo)的確定性/過程的不確定性;時(shí)間、成果、需求的滿足;確定性項(xiàng)目目標(biāo)允許修改;不確定性活動(dòng)的整體性/過程的漸進(jìn)性;項(xiàng)目組織的臨時(shí)性和開放性;對(duì)資源的依賴性;403二月20233.1項(xiàng)目管理過程項(xiàng)目管理的定義:是以項(xiàng)目為對(duì)象的系統(tǒng)管理方法。即:由柔性組織(臨時(shí)/專門)運(yùn)用:知識(shí)、技術(shù)、工具、手段進(jìn)行:高效率的計(jì)劃、組織、執(zhí)行、控制實(shí)現(xiàn):項(xiàng)目過程的動(dòng)態(tài)管理、項(xiàng)目目標(biāo)的綜合協(xié)調(diào)與優(yōu)化。軟件項(xiàng)目管理的定義:為了使軟件項(xiàng)目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量順利完成,而對(duì)人員、產(chǎn)品、過程和項(xiàng)目進(jìn)行分析和管理的活動(dòng)。503二月2023項(xiàng)目的全目標(biāo)管理:面向系統(tǒng)(可交付的軟件)、組織(運(yùn)營該軟件的組織)、人員(組成該組織的人員);全面滿足質(zhì)量、進(jìn)度、費(fèi)用的要求。項(xiàng)目的全過程管理:啟動(dòng)過程---確定目標(biāo)、范圍;計(jì)劃過程---時(shí)間、任務(wù)、進(jìn)度;執(zhí)行過程---實(shí)施所需的任務(wù);控制過程---監(jiān)控度量項(xiàng)目的進(jìn)程;結(jié)束過程---驗(yàn)收603二月20233.1項(xiàng)目管理過程軟件項(xiàng)目管理的對(duì)象是軟件工程項(xiàng)目。它所涉及的范圍覆蓋了整個(gè)軟件工程過程。。為使軟件項(xiàng)目開發(fā)獲得成功,關(guān)鍵問題是必須對(duì)軟件開發(fā)項(xiàng)目的工作范圍、可能風(fēng)險(xiǎn)、需要資源(人、硬件/軟件)、要實(shí)現(xiàn)的任務(wù)、經(jīng)歷的里程碑、花費(fèi)工作量(成本)、進(jìn)度安排等做到心中有數(shù)軟件項(xiàng)目管理可以提供上述信息。軟件項(xiàng)目開始于技術(shù)工作開始之前,持續(xù)進(jìn)行于軟件實(shí)現(xiàn)過程中,終止于軟件工作過程結(jié)束。703二月20233.1項(xiàng)目管理過程項(xiàng)目管理過程包括下列任務(wù):人員的組織與管理,軟件度量,項(xiàng)目計(jì)劃,風(fēng)險(xiǎn)管理,質(zhì)量保證,軟件過程能力評(píng)估,配置管理等。軟件項(xiàng)目的主要活動(dòng)包括:3.1.1啟動(dòng)一個(gè)軟件項(xiàng)目3.1.2度量3.1.3估算3.1.4風(fēng)險(xiǎn)分析3.1.5進(jìn)度安排3.1.6追蹤和控制3.1.7結(jié)束項(xiàng)目803二月20233.1.1啟動(dòng)一個(gè)軟件項(xiàng)目在制定軟件項(xiàng)目計(jì)劃之前,必須

明確項(xiàng)目的目標(biāo)和范圍考慮候選的解決方案標(biāo)明技術(shù)和管理上的要求有了這些信息,才能確定合理、精確的成本估算,實(shí)際可行的任務(wù)分解以及可管理的進(jìn)度安排。903二月20233.1.2度量進(jìn)行度量工作,是為了了解產(chǎn)品開發(fā)的技術(shù)過程和產(chǎn)品本身。度量開發(fā)過程的目的是為了改進(jìn)過程,度量產(chǎn)品的目的是為了提高產(chǎn)品的質(zhì)量。度量的作用是為了有效地定量地進(jìn)行管理。管理人員和技術(shù)人員可利用這些度量來了解軟件工程過程的實(shí)際情況和它所生產(chǎn)的產(chǎn)品質(zhì)量。問題:請(qǐng)思考,哪些是可度量的指標(biāo)?1003二月20233.1.3估算在軟件項(xiàng)目管理過程中關(guān)鍵的活動(dòng)就是制定項(xiàng)目計(jì)劃。做計(jì)劃必須就需要的人力(以人月為單位)、項(xiàng)目持續(xù)時(shí)間(以年份或月份為單位)、成本(以元為單位)做出估算。這種估算大多是利用以前的花費(fèi)做為參考而做出的。如果新項(xiàng)目與以前的一個(gè)項(xiàng)目在大小上和功能上十分類似,則新項(xiàng)目可以參考老項(xiàng)目。假使項(xiàng)目背景完全生疏,只憑過去的經(jīng)驗(yàn)做出估算可能就不夠了。1103二月20233.1.3估算現(xiàn)在已有了許多用于軟件開發(fā)的估算技術(shù)。其共同特點(diǎn)是:

事先建立軟件工作范圍以軟件度量(以往的度量)為基礎(chǔ)作出估算項(xiàng)目被分解為可單獨(dú)進(jìn)行估算的小塊管理人員大多使用不止一種估算技術(shù),并用一種估算技術(shù)做為另一種估算技術(shù)的交叉檢查。1203二月20233.1.4風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)的概念:可能發(fā)生的危險(xiǎn)。包括兩個(gè)要素:

風(fēng)險(xiǎn)=損失*可能性軟件項(xiàng)目風(fēng)險(xiǎn)是由項(xiàng)目的不確定性造成的。比如:在構(gòu)建一個(gè)軟件時(shí),總是存在某些不確定性。

用戶要求是否能確切地被理解?在項(xiàng)目最后結(jié)束之前要求實(shí)現(xiàn)的功能能否建立?是否存在目前仍未發(fā)現(xiàn)的技術(shù)難題?在項(xiàng)目出現(xiàn)嚴(yán)重誤期時(shí)是否會(huì)發(fā)生一些變更?等等。1303二月20233.1.4風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析對(duì)于軟件項(xiàng)目管理是決定性的,然而現(xiàn)在還有許多項(xiàng)目不考慮風(fēng)險(xiǎn)就著手進(jìn)行。所謂風(fēng)險(xiǎn)分析實(shí)際上就是一系列風(fēng)險(xiǎn)管理步驟,其中包括風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)估計(jì)、風(fēng)險(xiǎn)優(yōu)化、風(fēng)險(xiǎn)管理策略、風(fēng)險(xiǎn)解決和風(fēng)險(xiǎn)監(jiān)督。這些步驟貫穿在軟件工程過程中。1403二月20233.1.5進(jìn)度安排對(duì)于進(jìn)度安排,需要考慮的是:

預(yù)先對(duì)進(jìn)度如何計(jì)劃?工作怎樣就位?如何識(shí)別定義好的任務(wù)?

管理人員對(duì)結(jié)束時(shí)間如何掌握?如何識(shí)別和監(jiān)控關(guān)鍵路徑?對(duì)進(jìn)展如何度量?如何建立分隔任務(wù)的里程碑。1503二月20233.1.5進(jìn)度安排軟件項(xiàng)目的進(jìn)度安排與任何一個(gè)工程項(xiàng)目的進(jìn)度安排基本相同。首先識(shí)別一組項(xiàng)目任務(wù),再建立任務(wù)之間的相互關(guān)聯(lián);然后估算各個(gè)任務(wù)的工作量,分配人力和其它資源,制定進(jìn)度時(shí)序1603二月20233.1.6追蹤和控制由項(xiàng)目管理人員負(fù)責(zé)追蹤在進(jìn)度安排中標(biāo)明的每一個(gè)任務(wù)。如果任務(wù)實(shí)際完成日期滯后于進(jìn)度安排,則管理人員必須確定在項(xiàng)目的中間里程碑上進(jìn)度誤期所造成的影響。還可對(duì)資源重新定向?qū)θ蝿?wù)重新安排(做為最壞的結(jié)果)可以修改交付日期以調(diào)整已經(jīng)暴露的問題。用這種方式可以較好地控制軟件的開發(fā)。1703二月2023提綱3.1項(xiàng)目管理過程3.2風(fēng)險(xiǎn)管理3.3軟件質(zhì)量和效率度量3.4軟件項(xiàng)目估算3.5軟件項(xiàng)目進(jìn)度安排3.6項(xiàng)目組織結(jié)構(gòu)設(shè)計(jì)3.7項(xiàng)目過程監(jiān)控1803二月20233.2風(fēng)險(xiǎn)管理進(jìn)度過分緊迫;預(yù)算過分緊張;性能過分的超群,軟件可靠性要求過高;人員缺乏經(jīng)驗(yàn),組織結(jié)構(gòu)不適宜;期望過高而不現(xiàn)實(shí);沒有明確或理解合同的條款;軟件規(guī)模估計(jì)不恰當(dāng);管理部門缺乏經(jīng)驗(yàn);風(fēng)險(xiǎn)分析和管理不恰當(dāng);缺乏政策性支持;不熟悉技術(shù)或過程;不熟悉必要的硬件;需求不一致(或定義不充分);需求不斷變動(dòng);軟件開發(fā)計(jì)劃不恰當(dāng);軟件開發(fā)過程模型不適用;缺乏軟件工程技術(shù)和方法;缺乏自動(dòng)化工具的支持;常見的軟件風(fēng)險(xiǎn)類別:進(jìn)度、經(jīng)費(fèi)、性能、組織、管理、人事、過程、方法、工具等。如下例證:1903二月20233.2風(fēng)險(xiǎn)管理對(duì)軟件項(xiàng)目的管理部門來說,在做出與規(guī)定費(fèi)用、按規(guī)定時(shí)間交付規(guī)定產(chǎn)品、或達(dá)到規(guī)定性能水平的決斷時(shí),風(fēng)險(xiǎn)是永遠(yuǎn)存在的。軟件項(xiàng)目管理部門因風(fēng)險(xiǎn)而導(dǎo)致工作失敗有三種方式:產(chǎn)品達(dá)不到規(guī)定的功能及性能水平、實(shí)際費(fèi)用過高、交付過遲等。就一個(gè)項(xiàng)目而言,其面臨的風(fēng)險(xiǎn)可分為五個(gè)方面:技術(shù)(與功能和性能有關(guān))、保障性(與性能有關(guān))、計(jì)劃(與信息環(huán)境有關(guān))、費(fèi)用和進(jìn)度(與人員有關(guān))。2003二月20233.2風(fēng)險(xiǎn)管理技術(shù)風(fēng)險(xiǎn):可以定義為發(fā)展某項(xiàng)新設(shè)計(jì)所包含的風(fēng)險(xiǎn),發(fā)展這項(xiàng)設(shè)計(jì)可能因?yàn)槭艿侥承┬碌募s束條件的作用而使性能水平原封未動(dòng),甚至反而有所下降。許多技術(shù)風(fēng)險(xiǎn)往往是由于對(duì)新系統(tǒng)和新設(shè)備提出前所未有的性能要求造成的。計(jì)劃風(fēng)險(xiǎn):是包括獲取和使用一些可能不受軟件項(xiàng)目控制但又可能影響軟件項(xiàng)目方向的可用資源和活動(dòng)。計(jì)劃風(fēng)險(xiǎn)一般不會(huì)與改善技術(shù)水平有直接關(guān)系。計(jì)劃風(fēng)險(xiǎn)可按一些因素的性質(zhì)和來源分類,這些因素有可能中斷軟件項(xiàng)目實(shí)施計(jì)劃。造成軟件中斷的因素主要以下幾種:(1)與軟件項(xiàng)目直接有關(guān)的高層權(quán)力機(jī)構(gòu)決策造成的中斷;(2)一些影響軟件項(xiàng)目的事件或行動(dòng)造成的中斷;(3)主要由于一些不能預(yù)見的與生產(chǎn)有關(guān)的問題造成的中斷;(4)因能力不足造成的中斷。2103二月20233.2風(fēng)險(xiǎn)管理保障性風(fēng)險(xiǎn):是與系統(tǒng)的部署和維護(hù)有關(guān)的風(fēng)險(xiǎn),這些系統(tǒng)指目前正在研制或正在部署的系統(tǒng)。保障性風(fēng)險(xiǎn)包含有技術(shù)和計(jì)劃兩個(gè)方面風(fēng)險(xiǎn)的特征。費(fèi)用和進(jìn)度風(fēng)險(xiǎn):一些性能和設(shè)計(jì)技術(shù)問題有時(shí)要靠增加費(fèi)用和延長進(jìn)度來解決,這往往會(huì)使問題變得復(fù)雜化。費(fèi)用和進(jìn)度增長指預(yù)計(jì)軟件項(xiàng)目費(fèi)用和進(jìn)度與實(shí)際費(fèi)用和時(shí)間之間的差異。因此,費(fèi)用和進(jìn)度增長會(huì)造成兩個(gè)主要的費(fèi)用/進(jìn)度風(fēng)險(xiǎn)區(qū):預(yù)計(jì)時(shí)定下不合理的低費(fèi)用/進(jìn)度目標(biāo)所造成的風(fēng)險(xiǎn);要想滿足合理的費(fèi)用/進(jìn)度目標(biāo),軟件項(xiàng)目就必須給定一個(gè)謹(jǐn)慎的風(fēng)險(xiǎn)。2203二月20233.2.1風(fēng)險(xiǎn)估計(jì)是否所有項(xiàng)目都要進(jìn)行風(fēng)險(xiǎn)分析。

No,風(fēng)險(xiǎn)分析成本較高,只有當(dāng)軟件的成本、性能、作用、與其他系統(tǒng)間的關(guān)系對(duì)于重要的系統(tǒng)有比較大的影響時(shí),即軟件的風(fēng)險(xiǎn)對(duì)整個(gè)系統(tǒng)的成敗有關(guān)鍵影響時(shí),才有必要進(jìn)行風(fēng)險(xiǎn)分析和管理。風(fēng)險(xiǎn)估計(jì)的步驟1.明確項(xiàng)目的目標(biāo)、策略、可以使用的方法和資源;2.保證項(xiàng)目的目標(biāo)和結(jié)果是可度量的,并標(biāo)明使用的資源;3.制定項(xiàng)目成功的標(biāo)準(zhǔn)集合;(見下頁)4.根據(jù)估計(jì)的結(jié)果確定是否進(jìn)行風(fēng)險(xiǎn)分析。2303二月20233.2.1風(fēng)險(xiǎn)估計(jì)度量項(xiàng)目成功的標(biāo)準(zhǔn):

1.最大限度的收益;(1-5對(duì)開發(fā)方)

2.最小的費(fèi)用;

3.最小的風(fēng)險(xiǎn)損失;

4.最大限度的市場;

3.最小的周期性波動(dòng);

6.形成有益的形象;

7.最佳的服務(wù)質(zhì)量;(對(duì)用戶方)

8.最高的增長率;

9.員工的滿意度最高;

10.公司的聲望最高。2403二月20233.2.2風(fēng)險(xiǎn)分析步驟一:風(fēng)險(xiǎn)識(shí)別(已知-未知)根據(jù)已知的風(fēng)險(xiǎn)事件,標(biāo)識(shí)潛在風(fēng)險(xiǎn)項(xiàng):收集信息,標(biāo)明相關(guān)的風(fēng)險(xiǎn)。觀察風(fēng)險(xiǎn)的征兆,理解其原因。收集信息:主要依靠過去的經(jīng)驗(yàn)和一些著名的案例,考慮類似的因素并進(jìn)行常識(shí)性的判斷。(如需求變動(dòng)的風(fēng)險(xiǎn))判斷收集到的信息是否有用。信息分類:如:有風(fēng)險(xiǎn)(經(jīng)常發(fā)生的情況)、可預(yù)見的風(fēng)險(xiǎn)(較高概率發(fā)生)、不可預(yù)見的風(fēng)險(xiǎn)(事前很難預(yù)料),原因可分為:缺乏信息、管理和時(shí)間等。2503二月2023風(fēng)險(xiǎn)識(shí)別–

風(fēng)險(xiǎn)檢查表舉例需求階段:可能的風(fēng)險(xiǎn)事件包括:項(xiàng)目目標(biāo)不清;項(xiàng)目范圍不明確;用戶參與和溝通少;對(duì)業(yè)務(wù)了解不夠,缺少領(lǐng)域知識(shí);對(duì)需求了解不夠;沒有進(jìn)行可行性研究;2603二月2023風(fēng)險(xiǎn)識(shí)別–

風(fēng)險(xiǎn)檢查表舉例設(shè)計(jì)階段:可能的風(fēng)險(xiǎn)事件包括:項(xiàng)目隊(duì)伍缺乏經(jīng)驗(yàn),比如缺乏有經(jīng)驗(yàn)的系統(tǒng)分析員;沒有變更控制計(jì)劃;倉促計(jì)劃,可能帶來進(jìn)度風(fēng)險(xiǎn);漏項(xiàng);2703二月2023風(fēng)險(xiǎn)識(shí)別–

風(fēng)險(xiǎn)檢查表舉例開發(fā)階段:可能的風(fēng)險(xiǎn)事件包括:開發(fā)環(huán)境未準(zhǔn)備好;設(shè)計(jì)錯(cuò)誤帶來的實(shí)施困難;程序員開發(fā)能力差;項(xiàng)目范圍改變;項(xiàng)目進(jìn)度改變;人員變動(dòng);開發(fā)團(tuán)隊(duì)內(nèi)部溝通不暢;沒有切實(shí)可行的測試計(jì)劃;測試人員經(jīng)驗(yàn)不足;2803二月20233.2.2風(fēng)險(xiǎn)分析步驟二:單個(gè)風(fēng)險(xiǎn)分析 估計(jì)每個(gè)風(fēng)險(xiǎn)的大小及其出現(xiàn)的可能性:度量風(fēng)險(xiǎn)的后果和嚴(yán)重程度。選擇一種度量尺度:命名尺度、序次尺度、坐標(biāo)尺度、比例尺度等;將待估計(jì)的風(fēng)險(xiǎn)信息(敘述性、定性、定量三種類型)與度量尺度相對(duì)應(yīng),確定風(fēng)險(xiǎn)等級(jí);消除風(fēng)險(xiǎn)估計(jì)中的主觀判斷的偏差。(缺乏可以用來進(jìn)行判斷風(fēng)險(xiǎn)的信息,只能憑自己的觀念和偏好進(jìn)行主觀理解,與客觀情況必然存在著偏差。)2903二月20233.2.2風(fēng)險(xiǎn)分析步驟三:多個(gè)風(fēng)險(xiǎn)分析:要考慮風(fēng)險(xiǎn)間的相互作用。(第二步考慮的是單個(gè)風(fēng)險(xiǎn)的影響)考慮各種風(fēng)險(xiǎn)的綜合影響后,對(duì)已識(shí)別風(fēng)險(xiǎn)發(fā)生的可能性及其后果給出最終的量值;標(biāo)明風(fēng)險(xiǎn)優(yōu)先程度,以便予以適當(dāng)安排;考慮其它可替代的方案,尋求可以避免風(fēng)險(xiǎn)的基本方法。3003二月20233.2.3風(fēng)險(xiǎn)評(píng)估第一步:確定風(fēng)險(xiǎn)評(píng)估標(biāo)準(zhǔn),確定風(fēng)險(xiǎn)的后果,判定該風(fēng)險(xiǎn)是否可以忍受;第二步:確定風(fēng)險(xiǎn)最終的級(jí)別(風(fēng)險(xiǎn)特征的三個(gè)方面:發(fā)生頻率、損害的嚴(yán)重性、發(fā)生的時(shí)刻可知性);第三步:把系統(tǒng)風(fēng)險(xiǎn)和“對(duì)照風(fēng)險(xiǎn)”相比較,確定系統(tǒng)風(fēng)險(xiǎn)是否可以接受。(<<可接受;>>不可能接受;≈不適合接受)3103二月20233.2.3風(fēng)險(xiǎn)評(píng)估什么是“對(duì)照風(fēng)險(xiǎn)”呢?對(duì)照風(fēng)險(xiǎn)是一組單個(gè)風(fēng)險(xiǎn)的集合,也可是對(duì)項(xiàng)目造成最大損害的一個(gè)或多個(gè)風(fēng)險(xiǎn)。對(duì)照風(fēng)險(xiǎn)考慮了風(fēng)險(xiǎn)間可能發(fā)生的耦合或復(fù)合情況。對(duì)照風(fēng)險(xiǎn)說明了在把系統(tǒng)作為整體條件下,風(fēng)險(xiǎn)會(huì)造成系統(tǒng)失敗或成功的概率。3203二月20233.2.4風(fēng)險(xiǎn)管理任務(wù)風(fēng)險(xiǎn)管理的任務(wù):制定風(fēng)險(xiǎn)計(jì)劃:

風(fēng)險(xiǎn)管理計(jì)劃—RMP和風(fēng)險(xiǎn)排除計(jì)劃—RA(aversion)P。(確定風(fēng)險(xiǎn)可接受目標(biāo);調(diào)整新的“對(duì)照風(fēng)險(xiǎn)”;尋求可替代的解決方案。)進(jìn)行風(fēng)險(xiǎn)控制:

執(zhí)行風(fēng)險(xiǎn)計(jì)劃中體現(xiàn)風(fēng)險(xiǎn)排除策略的控制機(jī)制。(確定風(fēng)險(xiǎn)排除策略:后果、時(shí)間和頻率;確定風(fēng)險(xiǎn)排除戰(zhàn)術(shù):建立在軟件工程過程基礎(chǔ)上;建立風(fēng)險(xiǎn)管理計(jì)劃:有關(guān)工作編入文檔{風(fēng)險(xiǎn)狀態(tài)估計(jì)RES說明項(xiàng)目的總體狀況,風(fēng)險(xiǎn)管理計(jì)劃RMP說明如何在一個(gè)項(xiàng)目中施行風(fēng)險(xiǎn)分析和管理程序,風(fēng)險(xiǎn)排除計(jì)劃RAP是排除風(fēng)險(xiǎn)的詳細(xì)計(jì)劃}。)對(duì)風(fēng)險(xiǎn)進(jìn)行監(jiān)管:監(jiān)管軟件工程過程和產(chǎn)品,確定風(fēng)險(xiǎn)排除策略是否達(dá)到預(yù)期目標(biāo),是否有可能進(jìn)一步改進(jìn)風(fēng)險(xiǎn)排除計(jì)劃,為控制新的風(fēng)險(xiǎn)提供一些必要的決策信息等。3303二月2023提綱3.1項(xiàng)目管理過程3.2風(fēng)險(xiǎn)管理3.3軟件質(zhì)量和效率度量3.4軟件項(xiàng)目估算3.5軟件項(xiàng)目進(jìn)度安排3.6項(xiàng)目組織結(jié)構(gòu)設(shè)計(jì)3.7項(xiàng)目過程監(jiān)控3403二月20233.3軟件質(zhì)量和效率度量度量是任何工程項(xiàng)目最基礎(chǔ)的工作,軟件工程也不例外。LordKelvin:如果誰能夠度量他所說的事物并能用數(shù)字來表示它時(shí),則說明他了解了它;但當(dāng)他不能度量它,也不能用數(shù)字表示出來時(shí),則說明他對(duì)那種事物的知識(shí)還比較貧乏、不足;這也可能是了解的開始,但在他的思想中很難達(dá)到科學(xué)的境地。軟件度量的范圍涉及很廣,在軟件項(xiàng)目管理范圍內(nèi),應(yīng)主要關(guān)心生產(chǎn)率與質(zhì)量的度量,即根據(jù)投入的工作量,對(duì)軟件開發(fā)活動(dòng)和開發(fā)成果的質(zhì)量作出度量。3503二月20233.3.1為什么要進(jìn)行度量表明軟件產(chǎn)品的質(zhì)量;弄清軟件開發(fā)人員的生產(chǎn)率;定量管理給出使用了新的軟件工程方法和工具所得到的(在生產(chǎn)率和質(zhì)量兩方面)的效益;建立項(xiàng)目估算的“基線”;過程改進(jìn)幫助調(diào)整對(duì)新的工具和附加培訓(xùn)的要求。3603二月20233.3.2軟件度量方式軟件工程過程的直接度量包括所投入的成本和工作量。軟件產(chǎn)品的直接度量包括產(chǎn)生的代碼行數(shù)(LOC)、執(zhí)行速度、存儲(chǔ)量大小、在某種時(shí)間周期中所報(bào)告的差錯(cuò)數(shù)。軟件產(chǎn)品的間接度量包括功能性、復(fù)雜性、效率、可靠性、可維護(hù)性和許多其它的質(zhì)量特性。3703二月20233.3.2軟件度量方式集中在軟件工程過程的輸出。軟件滿足用戶要求的程度。集中在軟件的性能指標(biāo)而不是軟件開發(fā)全過程上。收集與直接度量有關(guān)的軟件工程輸出信息和質(zhì)量信息。提供直接度量的尺度。收集有關(guān)人們開發(fā)計(jì)算機(jī)軟件所用方式的信息和人們理解有關(guān)工具和方法的效率的信息。3803二月20233.3.3面向規(guī)模的度量面向規(guī)模的度量是對(duì)軟件和軟件開發(fā)過程的直接度量??梢越⒁粋€(gè)面向規(guī)模的數(shù)據(jù)表格來記錄項(xiàng)目的某些信息。該表格應(yīng)列出在過去幾年完成的每一個(gè)軟件開發(fā)項(xiàng)目和關(guān)于這些項(xiàng)目的相應(yīng)面向規(guī)模的數(shù)據(jù)。3903二月20233.3.3面向規(guī)模的度量工作量和成本是針對(duì)軟件開發(fā)全過程的,而不是僅針對(duì)編碼。4003二月20233.3.3面向規(guī)模的度量對(duì)于每一個(gè)項(xiàng)目,可以根據(jù)表格中列出的基本數(shù)據(jù)計(jì)算簡單的面向規(guī)模的生產(chǎn)率和質(zhì)量的度量。 生產(chǎn)率=KLOC/PM(人月) 質(zhì)量=錯(cuò)誤數(shù)/KLOC

成本=元/LOC

文檔=文檔頁數(shù)/KLOC4103二月20233.3.3面向規(guī)模的度量大多數(shù)爭議是是否使用代碼行數(shù)(LOC)做為度量的依據(jù)。支持者認(rèn)為LOC是所有軟件開發(fā)項(xiàng)目的必然產(chǎn)物,它能夠很容易地被計(jì)算;現(xiàn)在許多既存的軟件估算模型都是使用LOC或者KLOC做為關(guān)鍵輸入的;而且大量以LOC為根據(jù)的文獻(xiàn)和數(shù)據(jù)已經(jīng)存在。反對(duì)者們認(rèn)為LOC度量與程序設(shè)計(jì)語言有關(guān),它們不適用于設(shè)計(jì)很好且較短的程序,也不適合于非過程型語言。若在估算中使用,很難達(dá)到要求的詳細(xì)程度(計(jì)劃者必須在分析和設(shè)計(jì)遠(yuǎn)未完成之前就要估算出需要生產(chǎn)的LOC)。4203二月20233.3.4面向功能的度量面向功能的軟件度量是對(duì)軟件和軟件開發(fā)過程的間接度量。面向功能度量主要考慮程序的“功能性”和“實(shí)用性”,而不是對(duì)LOC計(jì)數(shù)。該度量是一種叫做功能點(diǎn)方法的生產(chǎn)率度量法,利用軟件信息域中的一些計(jì)數(shù)和軟件復(fù)雜性估計(jì)的經(jīng)驗(yàn)關(guān)系式而導(dǎo)出功能點(diǎn)FP。4303二月20233.3.4面向功能的度量面向不同應(yīng)用的輸入數(shù)面向不同應(yīng)用的輸出(報(bào)告、屏幕信息、錯(cuò)誤信息)數(shù)不同即時(shí)查詢的計(jì)數(shù)邏輯主文件(邏輯上的一組數(shù)據(jù),可以是一個(gè)數(shù)據(jù)庫的一部分,也可以是一個(gè)單獨(dú)的文件)數(shù)。與系統(tǒng)中其他設(shè)備通過外部接口讀寫信息的次數(shù)使用者自行擬定一些準(zhǔn)則來確定一個(gè)系數(shù),帶有主觀性。4403二月20233.3.4面向功能的度量計(jì)算功能點(diǎn),使用如下的關(guān)系式:

FP=總計(jì)數(shù)×(0.65+0.01×SUM(Fi))Fi(i=1..14)是復(fù)雜性校正值,它們應(yīng)通過逐一回答下一頁的提問來確定。Fi的取值0..5:

0

沒有影響

1

偶然的

2

適中的 3

普通的

4

重要的 5

極重要的SUM(Fi)是求和函數(shù)。4503二月20233.3.4面向功能的度量1.

系統(tǒng)是否需要可靠的備份和恢復(fù)?2.

是否需要數(shù)據(jù)通信?3.

是否有分布處理的功能?4.

是否性能成為關(guān)鍵?3.

系統(tǒng)是否運(yùn)行在現(xiàn)有的高度實(shí)用化的操作環(huán)境中?6.

系統(tǒng)是否需要聯(lián)機(jī)數(shù)據(jù)項(xiàng)?7.

聯(lián)機(jī)數(shù)據(jù)項(xiàng)是否需要建立多重窗口顯示和操作,以處理輸入處理。8.

主文件是否聯(lián)機(jī)更新?9.

輸入、輸出、文件、查詢是否復(fù)雜?10.

內(nèi)部處理過程是否復(fù)雜?11.

程序代碼是否可復(fù)用?12.

設(shè)計(jì)中是否包括了轉(zhuǎn)移和安裝?13.

系統(tǒng)是否設(shè)計(jì)成可以重復(fù)安裝在不同機(jī)構(gòu)中14.

系統(tǒng)是否設(shè)計(jì)成易修改和易使用?4603二月20233.3.4面向功能的度量一旦計(jì)算出功能點(diǎn),就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量和其它屬性:

生產(chǎn)率=FP/PM(人月) 質(zhì)量=錯(cuò)誤數(shù)/FP

成本=元/FP

文檔=文檔頁數(shù)/FP4703二月20233.3.4面向功能的度量功能點(diǎn)度量的支持者認(rèn)為FP與程序設(shè)計(jì)語言無關(guān),它所依據(jù)的是在項(xiàng)目評(píng)估早期就可能知道的數(shù)據(jù)。反對(duì)者認(rèn)為這種方法需要某些“魔術(shù)手法”:在其計(jì)算中依賴的是主觀因素而不是客觀實(shí)際。

信息域的數(shù)據(jù)事后很難收集,而且FP沒有直接的物理意義,它只不過是一個(gè)數(shù)字。4803二月20233.3.5軟件質(zhì)量度量質(zhì)量度量貫穿于軟件工程的全過程中以及軟件交付用戶使用之后。在軟件交付之前得到的度量可作為判斷設(shè)計(jì)和測試質(zhì)量好壞的依據(jù)。這一類度量包括程序復(fù)雜性、有效的模塊和總的程序規(guī)模。在軟件交付之后的度量則把注意力集中于還未發(fā)現(xiàn)的缺陷數(shù)和系統(tǒng)的可維護(hù)性方面。4903二月20程序復(fù)雜性度量程序復(fù)雜性主要指模塊內(nèi)程序的復(fù)雜性。它直接關(guān)聯(lián)到軟件開發(fā)費(fèi)用的多少、開發(fā)周期的長短和軟件內(nèi)部潛伏錯(cuò)誤的多少。(1)代碼行度量法(2)McCabe度量法(3)Halstead度量法5003二月2023代碼行度量法源代碼行數(shù)度量法基于兩個(gè)前提:程序復(fù)雜性隨著程序規(guī)模的增加不均衡地增長;控制程序規(guī)模最好是采用分而治之的辦法。統(tǒng)計(jì)一個(gè)程序模塊的源代碼行數(shù)目,以源代碼行數(shù)做為程序復(fù)雜性的度量。設(shè)每行代碼的出錯(cuò)率為每100行源程序中可能有的錯(cuò)誤數(shù)目。Thayer曾指出,程序出錯(cuò)率的估算范圍是從0.04%~7%之間,每行代碼的出錯(cuò)率與源程序行數(shù)之間不存在簡單的線性關(guān)系5103二月2023代碼行度量法Lipow指出,對(duì)于小程序,每行代碼出錯(cuò)率為1.3%~1.8%;對(duì)于大程序,每行代碼的出錯(cuò)率增加到2.7%~3.2%之間,這只是考慮了程序的可執(zhí)行部分,沒有包括程序中的說明部分。Lipow及其他研究者得出一個(gè)結(jié)論:對(duì)于少于100個(gè)語句的小程序,源代碼行數(shù)與出錯(cuò)率是線性相關(guān)的。隨著程序的增大,出錯(cuò)率以非線性方式增長。5203二月2023McCabe度量法McCabe度量法,又稱環(huán)路復(fù)雜性度量,是一種基于程序控制流的復(fù)雜性度量方法。它基于一個(gè)程序模塊的程序圖中環(huán)路的個(gè)數(shù),因此計(jì)算它先要畫出程序圖。程序圖是退化的程序流程圖。流程圖中每個(gè)處理都退化成一個(gè)結(jié)點(diǎn),流線變成連接不同結(jié)點(diǎn)的有向弧。5303二月20235403二月2023(2)McCabe度量法程序圖僅描述程序內(nèi)部的控制流程,完全不表現(xiàn)對(duì)數(shù)據(jù)的具體操作,以及分支和循環(huán)的具體條件。計(jì)算環(huán)路復(fù)雜性的方法:根據(jù)圖論,在一個(gè)強(qiáng)連通的有向圖G中,環(huán)的個(gè)數(shù)由以下公式給出:

V(G)=m-n+p

其中,V(G)是有向圖G中環(huán)路個(gè)數(shù),m是圖G中弧數(shù),n是圖G中結(jié)點(diǎn)數(shù),p是圖G中的強(qiáng)連通分量個(gè)數(shù)。在例示中,n=11,m=13,p=1,則有

V(G)=m-n+p=13-11+1=3.等于程序圖中弧所封閉的區(qū)域數(shù)。5503二月2023(2)McCabe度量法環(huán)路復(fù)雜度取決于程序控制結(jié)構(gòu)的復(fù)雜度。當(dāng)程序的分支數(shù)目或循環(huán)數(shù)目增加時(shí)其復(fù)雜度也增加。環(huán)路復(fù)雜度與程序中覆蓋的路徑條數(shù)有關(guān)。環(huán)路復(fù)雜度是可加的。例如,模塊A的復(fù)雜度為3,模塊B的復(fù)雜度為4,則模塊A與模塊B的復(fù)雜度是7。5603二月2023McCabe度量法McCabe建議,對(duì)于復(fù)雜度超過10的程序,應(yīng)分成幾個(gè)小程序,以減少程序中的錯(cuò)誤。這種度量的缺點(diǎn)是:對(duì)于不同種類的控制流的復(fù)雜性不能區(qū)分

簡單IF語句與循環(huán)語句的復(fù)雜性同等看待

嵌套IF語句與簡單CASE語句的復(fù)雜性是一樣的

模塊間接口當(dāng)成一個(gè)簡單分支一樣處理一個(gè)具有1000行的順序程序與一行語句的復(fù)雜性相同(3)Halstead度量法采用一組基本的度量值,這些度量值可以通過編碼之后,或者提前到設(shè)計(jì)完成之后得到。預(yù)測的Halstead長度:n1表示不同的操作符個(gè)數(shù);n2表示不同操作數(shù)的個(gè)數(shù);則H=n1

log2n1+n2

log2n2操作符包括:算術(shù)運(yùn)算符、賦值符、數(shù)組操作符、邏輯運(yùn)算符、分界符,關(guān)系運(yùn)算符等操作數(shù)包括變量和常量5703二月2023Halstead度量法實(shí)際的Halstead長度N1為程序中實(shí)際的操作符總個(gè)數(shù);N2為程序中實(shí)際的操作數(shù)總個(gè)數(shù);則H=N1+N2程序的詞匯表詞匯表為不同的操作符種類數(shù)和不同的操作數(shù)種類數(shù)的總和,用n表示;則n=n1+n25803二月2023(3)Halstead度量法5903二月2023SUBROUTINESORT(X,N)

DIMENSIONX(N)

IF(N.LT.2)RETURN

DO20I=2,N

DO10J=1,I

IF(X(I).GE.X(J))GOTO10

SAVE=X(I)

X(I)=X(J)

X(J)=SAVE

10CONTINUE

20CONTINUE

RETURN

END

運(yùn)算符

計(jì)數(shù)

運(yùn)算對(duì)象

計(jì)數(shù)

可執(zhí)行語句結(jié)束7X6

數(shù)組下標(biāo)6I5

5J4IF(

)2N2DO222

,2SAVE2

程序結(jié)束111.LT.1

n2=7N2=22.GE.1

GOTO101

n1=10N1=28

Halstead度量法預(yù)測的詞匯量H=n1

log2n1+n2

log2n2=10log210+7log27=52.87實(shí)際的詞匯量N=N1+N2=28+22=50程序的詞匯表n=n1+n2=10+7=176003二月2023Halstead度量法程序量V,表明程序在“詞匯上的復(fù)雜性”V=(N1+N2)log2(n1+n2)V*

表示只有兩個(gè)操作符的情況程序量比率:L=V*/V

針對(duì)前一頁的例子:V=(28+22)log2(10+7)=2046103二月2023Halstead度量法程序員工作量EE=V/L或E=H×log2(n1+n2)×[(n1×n2)/(2×n2)]程序的潛在錯(cuò)誤BB=(N1+N2)log2(n1+n2)/3000B=V/3000一個(gè)程序?qū)?5個(gè)數(shù)據(jù)庫表共訪問1300次,對(duì)150個(gè)操作符共使用了1200次,那么預(yù)測該程序的錯(cuò)誤數(shù):B=(1300+1200)log2(75+150)∕3000=6.56203二月20236303二月20233.3.6使用軟件度量LOC/PM(FP/PM)不能用來評(píng)價(jià)單個(gè)系統(tǒng)的性能,因?yàn)橛性S多因素都會(huì)影響生產(chǎn)率。人的因素:軟件開發(fā)組織的規(guī)模和專長;(90%)問題因素:問題的復(fù)雜性和對(duì)設(shè)計(jì)限制,以及需求的變更次數(shù);(40%)過程因素:使用的分析與設(shè)計(jì)技術(shù)、語言和CASE工具的有效性,及評(píng)審技術(shù);(50%)產(chǎn)品因素:計(jì)算機(jī)系統(tǒng)的可靠性和性能需求;(140%)資源因素:CASE工具、硬件和軟件資源的有效性。(40%)6403二月20233.3.6使用軟件度量功能點(diǎn)和LOC已被公認(rèn)是比較精確的軟件開發(fā)工作量和成本預(yù)測工具。使用軟件度量建立項(xiàng)目基線,管理部門能夠建立改進(jìn)軟件工程過程的目標(biāo),從而評(píng)價(jià)項(xiàng)目的生產(chǎn)率和質(zhì)量。建立基線:根據(jù)歷史經(jīng)驗(yàn),在軟件工程過程的銜接處劃出一條基線,在此基線上附有一些用于度量的經(jīng)驗(yàn)?zāi)繕?biāo)信息,作為工程過程評(píng)估的依據(jù),判斷工程過程的完成是否達(dá)到預(yù)想的要求。質(zhì)量度量數(shù)據(jù)一旦收集到,軟件開發(fā)組織就可以根據(jù)它們來調(diào)整其軟件工程項(xiàng)目,以消除那些對(duì)軟件開發(fā)有重大影響的差錯(cuò)產(chǎn)生的根源。6503二月20233.3.6使用軟件度量為了幫助計(jì)劃、成本和工作量估算,基線的數(shù)據(jù)應(yīng)當(dāng)具有下列屬性:數(shù)據(jù)必須合理、精確,應(yīng)避免單純根據(jù)以往項(xiàng)目進(jìn)行“盲目估算”;應(yīng)從盡可能多的項(xiàng)目中收集數(shù)據(jù);數(shù)據(jù)必須一致;基線數(shù)據(jù)的應(yīng)用必須與要做估算的工作類似。6603二月2023提綱3.1項(xiàng)目管理過程3.2風(fēng)險(xiǎn)管理3.3軟件質(zhì)量和效率度量3.4軟件項(xiàng)目估算3.5軟件項(xiàng)目進(jìn)度安排3.6項(xiàng)目組織結(jié)構(gòu)設(shè)計(jì)3.7項(xiàng)目過程監(jiān)控6703二月20233.4軟件項(xiàng)目估算軟件項(xiàng)目管理過程開始于項(xiàng)目策劃。項(xiàng)目策劃的首要活動(dòng)就是估算(Estimation)。估算所需的資源、成本及進(jìn)度。估算資源、成本和進(jìn)度時(shí)需要經(jīng)驗(yàn)、有用的歷史信息、足夠的定量數(shù)據(jù)。---確定基線估算本身帶有風(fēng)險(xiǎn)。估算往往存在某些不確定性?,F(xiàn)在已使用的實(shí)用技術(shù)是成本和工作量估算。6803二月20233.4.1估算的影響因素項(xiàng)目的復(fù)雜性較大程度地影響到估算的不確定性。項(xiàng)目規(guī)模越大,劃分越困難,模塊間的連接越復(fù)雜,估算的風(fēng)險(xiǎn)越高。估算與風(fēng)險(xiǎn)6903二月20233.4.1估算的影響因素項(xiàng)目的規(guī)模越大,項(xiàng)目劃分越困難,項(xiàng)目元素間的連接復(fù)雜,估算風(fēng)險(xiǎn)越高;項(xiàng)目的結(jié)構(gòu)化程度越高,功能分解和信息分層越容易,項(xiàng)目估算能力越強(qiáng);歷史信息的有效性影響估算的風(fēng)險(xiǎn);其他風(fēng)險(xiǎn):項(xiàng)目范圍不確定、用戶要求經(jīng)常變更。7003二月20233.4.2軟件項(xiàng)目策劃項(xiàng)目策劃目標(biāo):提供一個(gè)能使項(xiàng)目管理人員對(duì)資源、成本和進(jìn)度做出合理估算的框架。項(xiàng)目策劃的步驟:(1)項(xiàng)目策劃的首要任務(wù)是確定軟件范圍:包括功能、性能、限制、接口和可靠性。

-成本和進(jìn)度的估算都與功能有關(guān);(采用功能分析的原因) -性能包括處理和響應(yīng)時(shí)間的需求;

-限制表示外部硬件、可用存儲(chǔ)或其他現(xiàn)有系統(tǒng)對(duì)軟件的限制。

功能、性能和限制要一起估算。7103二月20233.4.2軟件項(xiàng)目策劃

-接口:軟件和硬件間的接口、軟件間的接口、人機(jī)接口、軟件運(yùn)行前后的一系列過程;必須明確通過接口的信息轉(zhuǎn)換。

-可靠性:很難在策劃階段使用量化的可靠性,只能通過軟件的一般性質(zhì)規(guī)定一些具體要求來保障可靠性。通過這些規(guī)定的具體要求來調(diào)整工作量和成本的估算公式。7203二月20233.4.2軟件項(xiàng)目策劃(2)項(xiàng)目策劃的第二個(gè)任務(wù)是對(duì)完成該項(xiàng)目所需的資源進(jìn)行估算。7303二月20237403二月20233.4.2軟件項(xiàng)目策劃(3)第三步,軟件成本和工作量估算-很難精確,因?yàn)樽兓蛩靥啵喝?、技術(shù)、環(huán)境、政治等都會(huì)影響最終成本和工作量。

-得到可靠的成本和工作量的方法有:

>估算推到項(xiàng)目后期進(jìn)行(必須事前度量)

>使用相對(duì)簡單的分解技術(shù)生成項(xiàng)目的成本和工作量的估算結(jié)果。

>為軟件成本和工作量估算開發(fā)或配備一個(gè)經(jīng)驗(yàn)?zāi)P停?/p>

>獲取一個(gè)或更多的自動(dòng)估算工具。7503二月20233.4.3利用分解技術(shù)進(jìn)行估算當(dāng)一個(gè)待解決的問題過于復(fù)雜時(shí),我們可以把它進(jìn)一步分解一組較小的問題,直到分解后的子問題變得容易管理為止。然后,再定于它們的特性??梢詮膬蓚€(gè)不同的角度進(jìn)行分解:問題分解;過程分解;首先要解決的軟件規(guī)模問題。7603二月20233.4.3利用分解技術(shù)進(jìn)行估算基于問題的估算。應(yīng)用LOC/FP度量。作為估算變量;作為基線度量;功能分解,估算LOC/FP,導(dǎo)出每個(gè)功能的成本和工作量。為每個(gè)功能計(jì)數(shù)值分別計(jì)算“樂觀”Sopt、‘可能’Sm、‘悲觀’Spess值,

S=(Sopt+4Sm+Spess)/67703二月20233.4.3利用分解技術(shù)進(jìn)行估算來自于歷史基線數(shù)據(jù)基于LOC/FP進(jìn)行估算7803二月20233.4.3利用分解技術(shù)進(jìn)行估算基于過程的估算。根據(jù)所采用的軟件過程將問題分解為一組較小的任務(wù),估算每個(gè)任務(wù)的工作量。抽取軟件功能,給出實(shí)現(xiàn)功能的一系列軟件框架活動(dòng)。估算各個(gè)軟件活動(dòng)所需的工作量,估算成本時(shí)應(yīng)考慮勞動(dòng)力的不同成本。7903二月20233.4.3利用分解技術(shù)進(jìn)行估算基于直接工作量進(jìn)行估算8003二月20233.4.3利用分解技術(shù)進(jìn)行估算對(duì)于一個(gè)大型的軟件項(xiàng)目,由于項(xiàng)目的復(fù)雜性,開發(fā)成本的估算不是一件簡單的事,要進(jìn)行一系列的估算處理。主要靠分解和類推。基本估算方法分為三類。自頂向下的估算方法

自底向上的估計(jì)法差別估計(jì)法8103二月20233.4.3利用分解技術(shù)進(jìn)行估算自頂向下的估算方法這種方法的主要思想是從項(xiàng)目的整體出發(fā),進(jìn)行類推。估算人員根據(jù)以前已完成項(xiàng)目所消耗的總成本(或總工作量),推算將要開發(fā)的軟件的總成本(或總工作量),然后按比例將它分配到各開發(fā)任務(wù)單元中去,再來檢驗(yàn)它是否能滿足要求。這種方法的優(yōu)點(diǎn)是估算工作量小,速度快。缺點(diǎn)是對(duì)項(xiàng)目中的特殊困難估計(jì)不足,估算出來的成本盲目性大,有時(shí)會(huì)遺漏被開發(fā)軟件的某些部分。8203二月20238303二月20233.4.3利用分解技術(shù)進(jìn)行估算自底向上的估算方法這種方法的主要思想是把待開發(fā)的軟件細(xì)分,直到每一個(gè)子任務(wù)都已經(jīng)明確所需要的開發(fā)工作量,然后把它們加起來,得到軟件開發(fā)的總工作量。它的優(yōu)點(diǎn)是估算各個(gè)部分的準(zhǔn)確性高。缺點(diǎn)是缺少各項(xiàng)子任務(wù)之間相互聯(lián)系所需要的工作量,還缺少許多與軟件開發(fā)有關(guān)的系統(tǒng)級(jí)(配置管理、質(zhì)量管理、項(xiàng)目管理)工作量.8403二月20233.4.3利用分解技術(shù)進(jìn)行估算差別估計(jì)法這種方法綜合了上述兩種方法的優(yōu)點(diǎn),其主要思想是把待開發(fā)的軟件項(xiàng)目與過去已完成的軟件項(xiàng)目進(jìn)行類比,從其開發(fā)的各個(gè)子任務(wù)中區(qū)分出類似的部分和不同的部分。類似的部分按過去的實(shí)際量自頂向下進(jìn)行估算,不同的部分則采用自底向上方法進(jìn)行估算。這種的方法的優(yōu)點(diǎn)是可以提高估算的準(zhǔn)確程度,缺點(diǎn)是不容易明確“類似”的界限。8503二月20233.4.4專家評(píng)判技術(shù)由多位專家進(jìn)行成本估算單獨(dú)一位專家可能會(huì)有種種偏見。最好由多位專家進(jìn)行估算,取得多個(gè)估算值。有多種方法把這些估算值合成一個(gè)估算值。一種方法是簡單地求各估算值的中值或平均值。其優(yōu)點(diǎn)是簡便。缺點(diǎn)是可能會(huì)由于受一、二個(gè)極端估算值的影響而產(chǎn)生嚴(yán)重的偏差。一種方法是召開小組會(huì),使各位專家們統(tǒng)一于或至少同意某一個(gè)估算值。優(yōu)點(diǎn)是可以摒棄蒙昧無知的估算值,缺點(diǎn)是一些組員可能會(huì)受權(quán)威或政治因素的影響。8603二月20233.4.4專家評(píng)判技術(shù)標(biāo)準(zhǔn)Delphi技術(shù)

①組織者發(fā)給每位專家一份軟件系統(tǒng)規(guī)格說明書和一張記錄估算值的表格,請(qǐng)他們進(jìn)行估算。

②專家詳細(xì)研究軟件規(guī)格說明書的內(nèi)容,對(duì)該軟件提出三個(gè)規(guī)模的估算值,即:

ai(最?。﹎i(可能)bi(最大),無記名地填寫表格,在填表的過程中,專家互相不進(jìn)行討論但可以向組織者提問。

③組織者對(duì)專家們填在表格中的答復(fù)進(jìn)行整理:

a.計(jì)算各位專家估算的期望值Ei;

b.對(duì)專家的估算結(jié)果分類摘要。

專家對(duì)此估算值另做一次估算。

④在綜合專家估算結(jié)果的基礎(chǔ)上,組織專家再次無記名地填寫表格。比較兩次估算的結(jié)果。若差異很大,則要通過查詢找出差異的原因。 ⑤上述過程可重復(fù)多次。最終可獲得一個(gè)得到多數(shù)專家共識(shí)的軟件規(guī)模(源代碼行數(shù))。在此過程中不得進(jìn)行小組討論。8703二月20233.4.5軟件估算的經(jīng)驗(yàn)?zāi)P蛙浖浪隳P屯ǔ2捎媒?jīng)驗(yàn)公式來預(yù)測軟件項(xiàng)目計(jì)劃所需要的成本、工作量和進(jìn)度數(shù)據(jù)。工作量是LOC/FP的函數(shù)用以支持大多數(shù)模型的經(jīng)驗(yàn)數(shù)據(jù)都是從有限的一些項(xiàng)目樣本中得到的。還沒有一種估算模型能夠適用于所有的軟件類型和開發(fā)環(huán)境。應(yīng)該對(duì)估算模型進(jìn)行調(diào)整,以反映當(dāng)前項(xiàng)目的情況。方法:將數(shù)據(jù)代入模型中,將實(shí)際結(jié)果與預(yù)期結(jié)果進(jìn)行比較,并進(jìn)行調(diào)整,循環(huán)往復(fù)。8803二月20233.4.5軟件估算的經(jīng)驗(yàn)?zāi)P凸浪隳P偷慕Y(jié)構(gòu)。典型的估算模型是通過回歸分析得出,形式如下:E=A+B*(ev)C其中:A,B,C是常量,E是工作量,ev是估算變量(LOC/FP)可根據(jù)項(xiàng)目特性進(jìn)行調(diào)整,如:復(fù)雜性、經(jīng)驗(yàn)、環(huán)境。分析三種模型IBM模型Putnam模型COCOMO模型8903二月20IBM模型E=3.2×L0.91D=4.1×L0.36

=14.47×E0.35S=0.54×E0.6DOC=49×L1.01L是源機(jī)器代碼行數(shù)(KLOC),E

是工作量(PM),D是項(xiàng)目持續(xù)時(shí)間(月),S

是人員需要量(人),DOC是文檔數(shù)量(頁)。9003二月20IBM模型IBM模型是靜態(tài)單變量模型。在此模型中,一般指一條機(jī)器指令為一行源代碼。一個(gè)軟件的源代碼行數(shù)不包括程序注釋、作業(yè)命令、調(diào)試程序在內(nèi)。對(duì)于非機(jī)器指令編寫的源程序,例如匯編語言或高級(jí)語言程序,應(yīng)轉(zhuǎn)換成機(jī)器指令源代碼行數(shù)來考慮。定義:轉(zhuǎn)換系數(shù)=機(jī)器指令條數(shù)/非機(jī)器語言執(zhí)行步數(shù)。如:Fortran的轉(zhuǎn)換系數(shù)為4~6。9103二月20Putnam模型Putnam模型是一種動(dòng)態(tài)多變量模型。適用于大型項(xiàng)目,但也可以應(yīng)用在一些較小的軟件項(xiàng)目中。它是假定在軟件開發(fā)的整個(gè)生存期中工作量有特定的分布。大型軟件項(xiàng)目的開發(fā)工作量分布可以用Rayleigh-Norden曲線表示。這個(gè)曲線把已交付的源代碼行數(shù)與工作量和開發(fā)時(shí)間聯(lián)系起來。9203二月20Putnam模型9303二月2023用Rayleigh-Norden曲線可以導(dǎo)出一個(gè)“軟件方程”L是源代碼行數(shù)(LOC),Ck是技術(shù)狀態(tài)常數(shù),因開發(fā)環(huán)境而異。K是軟件開發(fā)與維護(hù)在內(nèi)的整個(gè)生存期所花費(fèi)的工作量(人年),td

是開發(fā)持續(xù)時(shí)間(年)9403二月20Putnam模型9503二月20COCOMO模型COnstructiveCOstModel(Boehm)結(jié)構(gòu)型成本估算模型是一種精確、易于使用的成本估算方法。應(yīng)用開發(fā)模式和成本驅(qū)動(dòng)因子來反映項(xiàng)目的特性。在該模型中使用的基本量有以下幾個(gè):1.DSI(DeliverySourceInstruction):源程序行數(shù);1KDSI=1024DSI2.MM:開發(fā)工作量;(人月)1MM=19人日=152人時(shí)=1/12人年3.TDEV:開發(fā)進(jìn)度;(月)由工作量決定9603二月20COCOMO模型基本COCOMO模型:是一個(gè)靜態(tài)單變量模型,它用源代碼行數(shù)(LOC)為自變量的(經(jīng)驗(yàn))函數(shù)來計(jì)算軟件開發(fā)工作量。中間COCOMO模型:在用LOC為自變量的函數(shù)計(jì)算軟件開發(fā)工作量(此時(shí)稱為名義工作量)的基礎(chǔ)上,再用涉及產(chǎn)品、硬件、人員、項(xiàng)目等方面屬性的影響因素來調(diào)整工作量的估算。詳細(xì)COCOMO模型:包括中間COCOMO模型的所有特性,但用上述各種影響因素調(diào)整工作量估算時(shí),還要考慮對(duì)軟件工程過程中每一步驟(分析、設(shè)計(jì)等)的影響。9703二月20.1基本COCOMO模型9803二月20.2中間COCOMO模型進(jìn)一步考慮15種影響軟件工作量的因素,通過定下乘法因子,修正COCOMO工作量公式和進(jìn)度公式,可以更合理地估算軟件(各階段)的工作量和進(jìn)度。中間COCOMO模型的名義工作量與進(jìn)度公式9903二月20.2中間COCOMO模型10003二月20.3詳細(xì)COCOMO模型詳細(xì)COCOMO模型的名義工作量公式和進(jìn)度公式與中間COCOMO模型相同。工作量因素分級(jí)表分層、分階段給出。針對(duì)每一個(gè)影響因素,按模塊層、子系統(tǒng)層、系統(tǒng)層,有三張工作量因素分級(jí)表,供不同層次的估算使用。每一張表中工作量因素又按開發(fā)各個(gè)不同階段給出。使用這些表格,可以比中間COCOMO模型更方便、更準(zhǔn)確地估算軟件開發(fā)工作量。10103二月2023軟件可靠性工作量因素分級(jí)表(子系統(tǒng)層)10203二月2023提綱3.1項(xiàng)目管理過程3.2風(fēng)險(xiǎn)管理3.3軟件質(zhì)量和效率度量3.4軟件項(xiàng)目估算3.5軟件項(xiàng)目進(jìn)度安排3.6項(xiàng)目組織結(jié)構(gòu)設(shè)計(jì)3.7項(xiàng)目過程監(jiān)控10303二月20233.5軟件項(xiàng)目進(jìn)度安排前置條件:已經(jīng)選擇合適的軟件過程模型,確定了必須完成的軟件工程任務(wù)(問題分解),估算了工作量和資源(人員數(shù)),明確了項(xiàng)目的結(jié)束期限,甚至已進(jìn)行了風(fēng)險(xiǎn)分析。項(xiàng)目進(jìn)度安排和跟蹤創(chuàng)建任務(wù)網(wǎng)絡(luò),保證按時(shí)完成工作;為每個(gè)任務(wù)確定責(zé)任,確保履行責(zé)任;10403二月20233.5軟件項(xiàng)目進(jìn)度安排導(dǎo)致項(xiàng)目進(jìn)度延誤的原因是:“某天某時(shí)”。項(xiàng)目管理者職責(zé):定義所有的項(xiàng)目任務(wù);建立任務(wù)網(wǎng)絡(luò)來描述任務(wù)之間的依賴關(guān)系;明確網(wǎng)絡(luò)中的關(guān)鍵路徑;跟蹤關(guān)鍵任務(wù)的進(jìn)展,確保能在“某天某時(shí)”發(fā)現(xiàn)進(jìn)度延誤情況??傊盒枰敿?xì)的項(xiàng)目進(jìn)度表,監(jiān)督進(jìn)度、控制項(xiàng)目。軟件項(xiàng)目進(jìn)度安排—是活動(dòng)。將工作量——〉任務(wù)---〉進(jìn)度表分配10503二月20233.5軟件項(xiàng)目進(jìn)度安排項(xiàng)目進(jìn)度安排的指導(dǎo)原則:劃分/分解:將項(xiàng)目劃分成可管的活動(dòng)、任務(wù);相互依賴性:任務(wù)之間的依賴關(guān)系(順序、并發(fā));時(shí)間分配:任務(wù)量(人月或人日),起止時(shí)間。工作量確認(rèn):確保所分配工作量<可分配工作量。確定責(zé)任:安排進(jìn)度計(jì)劃的每個(gè)任務(wù)都應(yīng)指定人。明確結(jié)果:明確每個(gè)任務(wù)的輸出結(jié)果。確定里程碑:每個(gè)任務(wù)/任務(wù)組都應(yīng)與一個(gè)項(xiàng)目里程碑相關(guān)聯(lián)。10603二月20233.5軟件項(xiàng)目進(jìn)度安排軟件開發(fā)項(xiàng)目的進(jìn)度安排有兩種方式:

(1)系統(tǒng)最終交付日期已經(jīng)確定,軟件開發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論