軟件工程:理論、技術(shù)及實踐 課件 第9章 軟件項目管理_第1頁
軟件工程:理論、技術(shù)及實踐 課件 第9章 軟件項目管理_第2頁
軟件工程:理論、技術(shù)及實踐 課件 第9章 軟件項目管理_第3頁
軟件工程:理論、技術(shù)及實踐 課件 第9章 軟件項目管理_第4頁
軟件工程:理論、技術(shù)及實踐 課件 第9章 軟件項目管理_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章軟件項目管理本章學(xué)習(xí)目標(biāo)1.了解軟件工程項目管理的相關(guān)知識。2.了解軟件團(tuán)隊管理的基本方法。3.熟悉需求變更管理的基本方法。4.熟悉常用軟件工程中計劃與估算方法。5.熟悉軟件項目風(fēng)險管理的基本方法。6.掌握軟件項目管理計劃的制定方法

軟件項目管理

為使軟件項目開發(fā)獲得成功,關(guān)鍵問題是要掌握軟件項目的工作范圍、可能風(fēng)險、需要的資源(人、硬件、軟件)、要實現(xiàn)的任務(wù)、經(jīng)歷的里程碑、花費(fèi)工作量(成本)、進(jìn)度安排等。軟件項目管理在技術(shù)工作開始之前就應(yīng)當(dāng)開始,在軟件從概念到實現(xiàn)的過程中繼續(xù)進(jìn)行,當(dāng)軟件工程過程最后結(jié)束時才終止。軟件項目管理是為了使軟件項目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量順利完成,而對人員(People)、產(chǎn)品(Product)、過程(Process)和項目(Project)進(jìn)行分析和管理的活動。軟件工程項目管理1計劃與估算2軟件項目團(tuán)隊管理39.1軟件工程項目管理軟件工程項目管理的介紹軟件工程項目管理是指在軟件開發(fā)過程中對項目的規(guī)劃、組織、指導(dǎo)和控制,以確保項目按時、按質(zhì)高效完成的管理活動。大型軟件項目需要龐大的開發(fā)團(tuán)隊來進(jìn)行協(xié)作和開發(fā),包括開發(fā)人員、測試人員、項目經(jīng)理、業(yè)務(wù)分析師等。同時,大型軟件項目涉及多個團(tuán)隊和多個利益相關(guān)者,需要跨團(tuán)隊和跨部門的溝通和協(xié)作,管理工作量較大。對于這樣龐大的項目如果沒有管理,其質(zhì)量保障是難以想象的。在軟件工程項目管理方面比較權(quán)威的體系是項目管理知識體系(ProjectManagementBodyofKnowledge,簡稱PMBOK),它是由美國項目管理協(xié)會(ProjectManagementInstitute,簡稱PMI)發(fā)起的。9.1.1項目啟動管理項目啟動時一般需要明確以下幾個問題:(1)項目范圍、項目周期、關(guān)鍵里程碑點(diǎn)。(2)識別相關(guān)人員,明確溝通、匯報渠道及各個角色的職責(zé)。(3)項目規(guī)則約定、表單模板、流程。(4)項目資源、費(fèi)用預(yù)算。(5)產(chǎn)品業(yè)務(wù)需求、技術(shù)需求,以及用戶群體。(6)識別可能存在的項目風(fēng)險。(7)需要什么樣的技術(shù)支持,是否需要前期學(xué)習(xí)和調(diào)查。9.1.2項目計劃管理

項目計劃管理是在項目計劃階段對項目實施的管理,包括范圍管理、進(jìn)度管理和綜合管理。一個科學(xué)的計劃,不僅可以保證項目工期,減少資源浪費(fèi),還可以對項目的進(jìn)程進(jìn)行跟蹤控制管理,從而保證項目的按期完成。

項目計劃應(yīng)在項目開始初期制定出來,并隨著工程的進(jìn)展?jié)u進(jìn)明細(xì)。(1)開發(fā)進(jìn)度計劃制訂識別活動識別活動依賴關(guān)系估算活動資源為活動分配人員創(chuàng)建進(jìn)度圖表圖9-1項目進(jìn)度安排9.1.2項目計劃管理圖9-2項目進(jìn)度計劃甘特圖(2)計劃跟蹤與監(jiān)控

計劃做得再好,如果沒有有效執(zhí)行,也等于沒做。項目進(jìn)度跟蹤與控制過程需要采用日志的方式或相應(yīng)的工具,讓項目組成員每天填寫工作完成情況。9.1.3人員組織與管理

人員是軟件工程項目中最重要、最為活躍的資源因素。如何組織得更加合理,管理得更加有效,從而最大限度地發(fā)揮這一重要的資源潛力,對于軟件項目的成功至關(guān)重要。高效的開發(fā)團(tuán)隊一般具有以下特征:(1)具有明確和挑戰(zhàn)性的共同目標(biāo)(2)團(tuán)隊具有很強(qiáng)的凝聚力(3)具有融洽的交流環(huán)境(4)具有共同的工作規(guī)范和框架(5)采用合理的開發(fā)過程9.1.4變更管理

需求變更可能發(fā)生在任何階段,即使到項目后期也會存在。后期的變更往往會對項目產(chǎn)生一些負(fù)面的影響。需求變更是軟件開發(fā)過程中開發(fā)人員和管理者們最為頭疼的一件事情。9.1.4變更管理需求變更管理一般需要完成以下幾個任務(wù):(1)確定變更控制過程。確定一個選擇、分析和決策需求變更的過程;所有的需求變更都需遵循此流程。(2)建立一個由項目風(fēng)險承擔(dān)者組成的軟件變更控制委員會(SoftwareChangControlBoard,簡稱SCCB),由他們來評估和確定需求變更。(3)進(jìn)行變更影響分析,評估需求變更對項目進(jìn)度、資源、工作量和項目范圍以及其他需求的影響。(4)跟蹤變更影響的產(chǎn)品,當(dāng)進(jìn)行某項需求變更時,根據(jù)需求跟蹤矩陣找到相關(guān)的其他需求、設(shè)計文檔、源代碼和測試用例;這些相關(guān)部分可能也需要修改。9.1.4變更管理(5)建立基準(zhǔn)和控制版本;需求文檔要確定一個基線,之后的需求變更遵循變更控制過程即可。(6)維護(hù)變更的歷史記錄;記錄變更需求文檔版本的日期、所做的變更及其原因,還包括由誰負(fù)責(zé)更新和更新后新版本號等情況。(7)跟蹤每項需求的狀態(tài);狀態(tài)包括“確定”“已實現(xiàn)”“暫緩”“新增”“變更”等,建立一個數(shù)據(jù)庫,其中每一條記錄一項需求。(8)衡量需求穩(wěn)定性;記錄基線需求的數(shù)量和每周或每月的變更(添加、修改、刪除)數(shù)量。9.1.4變更管理表9-1需求變更申請表模板9.1.5風(fēng)險管理軟件項目風(fēng)險是指在軟件開發(fā)過程中遇到的預(yù)算和進(jìn)度等方面的問題,以及這些問題對軟件項目的影響。軟件項目風(fēng)險會影響項目計劃的實現(xiàn)。如果項目風(fēng)險變成現(xiàn)實,就有可能影響項目的進(jìn)度,增加項目的成本,甚至使軟件項目不能實現(xiàn)。如果對項目進(jìn)行風(fēng)險進(jìn)行有效管理,就可以最大限度地減少風(fēng)險的發(fā)生。項目風(fēng)險管理可劃分為識別風(fēng)險、分析風(fēng)險、規(guī)劃風(fēng)險應(yīng)對和控制風(fēng)險等過程。9.2計劃與估算本節(jié)具體介紹兩種類型的計劃,一個是貫穿項目始終的計劃,另一個是完成規(guī)格說明之后必須產(chǎn)生的詳細(xì)計劃。9.2.1計劃項目計劃完整地記錄以下內(nèi)容:要完成的工作,誰將執(zhí)行此項工作,開發(fā)進(jìn)度安排,以及項目的成果是什么。計劃驅(qū)動開發(fā)基于工程項目管理技術(shù),可以看作管理大型軟件開發(fā)項目的傳統(tǒng)方法。計劃驅(qū)動的開發(fā)的問題是,由于軟件開發(fā)和使用的環(huán)境的變化,必須修改許多早期的決策。項目計劃較好的做法是將計劃驅(qū)動方法和敏捷開發(fā)結(jié)合起來,其中的平衡取決于項目的類型和人員的技術(shù)水平。9.2.1計劃(1)項目計劃

在計劃驅(qū)動的項目開發(fā)中,項目計劃包括項目可用資源的分配、工作分解以及完成工作的進(jìn)度安排。

多數(shù)的計劃書應(yīng)該包括以下幾個部分:

①引言。

②項目組織。

③風(fēng)險分析。

④硬件和軟件資源需求。

⑤工作分解。

⑥項目進(jìn)度安排。

⑦監(jiān)控和報告機(jī)制。9.2.1計劃(2)計劃過程項目計劃是一個迭代的過程,在項目的啟動階段,初始項目計劃的創(chuàng)建就開始了。計劃不可避免地會改變。由于在項目進(jìn)行期間不斷產(chǎn)生新的關(guān)于系統(tǒng)和項目團(tuán)隊的信息,所以必須經(jīng)常性地修正原有計劃,反映需求、進(jìn)度安排以及風(fēng)險的變更。9.2.2軟件規(guī)模估算

9.2.2軟件規(guī)模估算

用代碼行技術(shù)度量軟件規(guī)模,當(dāng)程序較小時常用的單位是代碼行數(shù)(linesofcode,簡稱LOC),當(dāng)程序較大時常用的單位是千行代碼數(shù)(kilolinesofcode,簡稱KLOC)。①代碼行技術(shù)的優(yōu)點(diǎn)a.代碼行是所有軟件開發(fā)項目都有的“產(chǎn)品”,而且很容易計算。b.許多現(xiàn)有的軟件估算模型使用LOC或KLOC作為關(guān)鍵的輸入數(shù)據(jù)。c.已有大量基于代碼行的文獻(xiàn)和數(shù)據(jù)存在。②代碼行技術(shù)的缺點(diǎn)a.源程序僅是軟件配置的一個成分,用它的規(guī)模代表整個軟件的規(guī)模似乎不太合理。b.用不同語言實現(xiàn)同一個軟件產(chǎn)品所需要的代碼行數(shù)并不相同。c.這種方法不適用于非過程語言。9.2.2軟件規(guī)模估算(2)功能點(diǎn)技術(shù)

功能點(diǎn)技術(shù)依據(jù)對軟件信息域特性和軟件復(fù)雜性的評估結(jié)果,估算軟件規(guī)模。這種方法用功能點(diǎn)(functionpoints,簡稱FP)為單位,度量軟件的規(guī)模。①信息域特性功能點(diǎn)技術(shù)定義了信息域的5個特性,分別是輸入項數(shù)(Inp)、輸出項數(shù)(Out)、查詢數(shù)(Inq)、主文件數(shù)(Maf)和外部接口數(shù)(Inf)。a.輸入項數(shù):用戶向軟件輸入的項數(shù),這些輸入給軟件提供面向應(yīng)用的數(shù)據(jù)。b.輸出項數(shù):軟件向用戶輸出的項數(shù),它們向用戶提供面向應(yīng)用的信息,如報表、屏幕、出錯信息等。報表內(nèi)的數(shù)據(jù)項不單獨(dú)計數(shù)。c.查詢數(shù):所謂查詢是一次聯(lián)機(jī)輸入,它導(dǎo)致軟件以聯(lián)機(jī)輸出方式產(chǎn)生某種即時響應(yīng)。d.主文件數(shù):邏輯主文件(即數(shù)據(jù)的一個邏輯組合,它可能是某個大型數(shù)據(jù)庫的一部分或是一個獨(dú)立的文件)的數(shù)目。e.外部接口數(shù):機(jī)器可讀的全部接口(如磁帶或磁盤上的數(shù)據(jù)文件)的數(shù)量,用這些接口把信息傳送給另一個系統(tǒng)。9.2.2軟件規(guī)模估算②估算功能點(diǎn)的步驟用下述3個步驟,可以估算出一個軟件的功能點(diǎn)數(shù)(即軟件規(guī)模)。a.計算未調(diào)整的功能點(diǎn)數(shù)(UFP)。首先,把產(chǎn)品信息域的每個特性(即Inp、Out、Inq、Maf和Inf)都分類成簡單級、平均級或復(fù)雜級。根據(jù)其等級,為每個特性都分配一個功能點(diǎn)數(shù)。例如,一個平均級的輸入項分配4個功能點(diǎn),一個簡單級的輸入項是3個功能點(diǎn),而一個復(fù)雜級的輸入項分配6個功能點(diǎn)。9.2.2軟件規(guī)模估算表9-4信息域特性系數(shù)值復(fù)雜級別復(fù)雜級別/特性系數(shù)簡單平均復(fù)雜346457346710155710

9.2.2軟件規(guī)模估算

9.2.2軟件規(guī)模估算表9-5技術(shù)復(fù)雜性因子(TCF)序號Fi技術(shù)因素1F1數(shù)據(jù)通信2F2分布式數(shù)據(jù)處理3F3性能標(biāo)準(zhǔn)4F4高負(fù)荷的硬件5F5高處理率6F6聯(lián)機(jī)數(shù)據(jù)輸入7F7終端用戶效率8F8聯(lián)機(jī)更新9F9復(fù)雜的計算10F10可重用性11F11安裝方便12F12操作方便13F13可移植性14F14可維護(hù)性9.2.2軟件規(guī)模估算

計算機(jī)軟件估算模型使用由經(jīng)驗導(dǎo)出的公式來預(yù)測軟件開發(fā)的工作量。工作量是軟件規(guī)模(LOC或FP)的函數(shù),工作量的單位通常是人月(pm)。支持大多數(shù)估算模型的經(jīng)驗數(shù)據(jù),都是從有限個項目的樣本集中總結(jié)出來的。因此,沒有一個估算模型能夠適用于所有類型的軟件和開發(fā)環(huán)境。1981年Boehm在《軟件工程經(jīng)濟(jì)學(xué)》中首次提出了構(gòu)造性成本模型COCOMO(ConstructiveCostModel)。1997年Boehm等人提出的COCOMO2模型,是原始的COCOMO模型的修訂版,它反映了十多年來在成本估計方面所積累的經(jīng)驗。9.2.3工作量估算COCOMO2給出了3個層次的軟件開發(fā)工作量估算模型,這3個層次的模型在估算工作量時,對軟件細(xì)節(jié)考慮的詳盡程度逐級增加。這些模型既可以用于不同類型的項目,也可以用于同一個項目的不同開發(fā)階段。①應(yīng)用系統(tǒng)組成模型:這個模型主要用于估算構(gòu)建原型的工作量,模型名字暗示在構(gòu)建原型時大量使用已有的構(gòu)件。②早期設(shè)計模型:這個模型適用于體系結(jié)構(gòu)設(shè)計階段。③后體系結(jié)構(gòu)模型:這個模型適用于完成體系結(jié)構(gòu)設(shè)計之后的軟件開發(fā)階段。9.2.3工作量估算

9.2.3工作量估算9.2.3工作量估算表9-6成本因素及工作量系數(shù)成本因素級別甚低低正常高甚高特高產(chǎn)品因素要求的可靠性0.750.881.001.151.39

數(shù)據(jù)庫規(guī)模

0.931.001.091.19

產(chǎn)品復(fù)雜程度0.750.881.001.151.301.66要求的可重用性

0.911.001.141.291.49需要的文檔量0.890.951.001.061.13

平臺因素執(zhí)行時間約束

1.001.111.311.67主存約束

1.001.061.211.57平臺變動

0.101.001.151.30

人員因素分析員能力1.501.221.000.830.67

程序員能力1.371.161.000.870.74

應(yīng)用領(lǐng)域經(jīng)驗1.221.101.000.890.81

平臺經(jīng)驗1.241.101.000.920.84

語言和工作經(jīng)驗1.251.121.000.880.81

人員連續(xù)性1.241.101.000.920.84

項目因素使用軟件工具1.241.121.000.860.72

多地點(diǎn)開發(fā)1.251.101.000.920.840.78要求的開發(fā)進(jìn)度1.291.101.001.001.00

9.2.3工作量估算9.2.3工作量估算COCOMO2使用的5個分級因素如下所述。①項目先例性:這個分級因素指出對于開發(fā)組織來說該項目的新奇程度。諸如開發(fā)類似系統(tǒng)的經(jīng)驗,需要創(chuàng)新體系結(jié)構(gòu)和算法,以及需要并行開發(fā)硬件、軟件等因素的影響,都體現(xiàn)在這個分級因素中。②開發(fā)靈活性:這個分級因素反映出為了實現(xiàn)預(yù)先確定的外部接口需求及為了及早開發(fā)出產(chǎn)品而需要增加的工作量。③風(fēng)險排除度:這個分級因素反映了重大風(fēng)險已被消除的比例。在多數(shù)情況下,這個比例和指定了重要模塊接口(即選定了體系結(jié)構(gòu))的比例密切相關(guān)。④項目組凝聚力:這個分級因素表明了開發(fā)人員相互協(xié)作時可能存在的困難。它反映了開發(fā)人員在目標(biāo)和文化背景等方面相一致的程度,以及開發(fā)人員組成一個小組工作的經(jīng)驗。⑤過程成熟度:這個分級因素反映了按照能力成熟度模型度量出的項目組織的過程成熟度。9.2.4軟件項目管理計劃的組成1簡介1.1項目概述1.1.1意圖、范圍和目標(biāo)1.1.2設(shè)想和限制1.1.3可交付項目1.1.4時間表和預(yù)算概述1.2項目管理計劃的演化2參考材料3定義和縮略語4項目組織4.1外部接口4.2內(nèi)部結(jié)構(gòu)4.3角色和責(zé)任5管理過程計劃5.1啟動計劃5.1.1估算計劃5.1.2人員安置計劃5.1.3資源獲取計劃5.1.4項目人員培訓(xùn)計劃5.2工作計劃5.2.1工作活動5.2.2時間表分配5.2.3資源分配5.2.4預(yù)算分配5.3控制計劃5.3.1需求控制計劃5.3.2時間表控制計劃5.3.3預(yù)算控制計劃5.3.4質(zhì)量控制計劃5.3.5報表計劃5.3.6度量收集計劃5.4風(fēng)險管理計劃5.5項目打結(jié)計劃6技術(shù)過程計劃6.1過程模型6.2方法、工具和技術(shù)6.3基礎(chǔ)結(jié)構(gòu)計劃6.4產(chǎn)品驗收計劃7支持過程計劃7.1配置管理計劃7.2測試計劃7.3歸檔計劃7.4質(zhì)量保證計劃7.5評審和審計計劃7.6問題解決計劃7.7轉(zhuǎn)包商管理計劃7.8過程提升計劃8附加計劃圖9-3IEEE項目管理計劃框架9.3軟件項目團(tuán)隊管理軟件項目團(tuán)隊是具有共同目標(biāo)、緊密協(xié)作的一個集體,包括:項目發(fā)起人、資助者、項目組(開發(fā)團(tuán)隊)、供應(yīng)商、客戶等。一般情況下,軟件項目團(tuán)隊的特點(diǎn)是:臨時性、團(tuán)隊成員的不穩(wěn)定性、年輕化程度較高、是高度集中的知識型團(tuán)隊、成員的業(yè)績不易量化考核。軟件項目團(tuán)隊管理就是采用科學(xué)的方法,對項目組織結(jié)構(gòu)和項目全體參與人員進(jìn)行管理,在項目團(tuán)隊中開展一系列科學(xué)規(guī)劃、開發(fā)培訓(xùn)、合理調(diào)配、適當(dāng)激勵等方面的管理工作,使項目組織各方面的主觀能動性得到充分發(fā)揮,同時促進(jìn)高效的團(tuán)隊協(xié)作,以利于實現(xiàn)項目的目標(biāo)。9.3.1軟件項目團(tuán)隊管理概述(1)軟件項目的人力資源特征人既是最大的成本又是最重要的資源。人力成本:盡量使人力資源投入最小。人力資源:盡量發(fā)揮資源的價值,使人力資源的產(chǎn)出最大。(2)軟件項目團(tuán)隊管理的主要內(nèi)容①項目組織的規(guī)劃:確定項目中的角色、職責(zé)和組織結(jié)構(gòu)。②團(tuán)隊人員獲?。韩@得項目所需的人力資源(個人或集體)。③團(tuán)隊建設(shè):提高團(tuán)隊成員個人為項目做出貢獻(xiàn)的能力,提高團(tuán)隊作為集體發(fā)揮作用的能力。④團(tuán)隊日常工作管理:跟蹤團(tuán)隊成員工作績效,解決問題和沖突,協(xié)調(diào)變更事宜。⑤溝通管理:對在項目干系人之間傳遞項目信息的內(nèi)容、方法和過程進(jìn)行綜合管理。9.3.1軟件項目團(tuán)隊管理概述(3)團(tuán)隊協(xié)作的重要性軟件開發(fā)過程中提倡團(tuán)隊協(xié)作的主要原因包括:①軟件開發(fā)的過程復(fù)雜,特別是在一個較大型的軟件項目中,一個人的力量和智慧顯然是不夠的。②團(tuán)隊操作在很大程度上可以實現(xiàn)優(yōu)勢互補(bǔ)。③團(tuán)隊合作在很大程度上培養(yǎng)了人與人之間的溝通和理解能力。9.3.2項

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論