第2章軟件項目管理_第1頁
第2章軟件項目管理_第2頁
第2章軟件項目管理_第3頁
第2章軟件項目管理_第4頁
第2章軟件項目管理_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

會計學1第2章軟件項目管理22.1軟件項目管理的概念

?

項目:以一套獨特而相互聯(lián)系的任務為前提,有效的利用資源,為實現(xiàn)一個特定目標所作的工作。項目的成功受以下幾個因素的制約:技術范圍、成本、進度、用戶滿意度、人員等。

?

項目管理的職責:確保項目目標的實現(xiàn),即在預算內按時完成質量合格的產品。

?

軟件項目管理:是對傳統(tǒng)項目管理進行軟件工程化的一種擴展與拓延,是它在軟件工程的任何技術活動之前開始,并持續(xù)貫穿于整個軟件定義、開發(fā)和支持階段的庇護性活動,是決定一個產品或項目能否成功最重要的指標之一。

第1頁/共78頁34個P(People、Product、Process、Project)對軟件項目管理有實質性的影響:

人員必須被組織成有效的開發(fā)團隊。

產品需求被劃分成較小的組成部分,便于分配給軟件開發(fā)小組。開發(fā)過程應根據(jù)人員和產品選擇合適的開發(fā)模型。

項目必須被組織成便于控制和管理的方式,使有計劃的進行。第2頁/共78頁4◆

人員:人員是一個成功軟件項目中最重要的因素??煞譃?類:⑴高級管理者:負責定義業(yè)務問題,影響著項目。⑵技術管理者:組織、激勵和控制開發(fā)人員。⑶開發(fā)人員:負責開發(fā)一個產品或應用所需的技術。⑷客戶(customer):負責說明待開發(fā)的軟件需求。⑸最終用戶(user):直接使用發(fā)布的軟件。第3頁/共78頁5

每一個軟件項目都有上述的人員參與。必須被組織成有效的小組,最大限度的發(fā)輝每個人的技術和能力,激勵他們進行高質量的工作,并協(xié)調他們實現(xiàn)有效的通信。Constantine提出4個“組織范型”:(1)封閉式范型:傳統(tǒng)的控制層次,垂直通信,難以創(chuàng)新。(2)隨機式范型:小組管理較松散,依賴于成員個人的主動性。不適合“有次序地完成”。(3)開放式范型:具有封閉式范型的控制性,又包含隨機式范型的創(chuàng)新性。適合于解決復雜問題。可能不像其他類型小組那么有效率。(4)同步式范型:依賴于問題的自然劃分,小組成員各自解決問題的獨立部分。主動通信差。建立一個有凝聚力的小組,要有團隊精神。第4頁/共78頁6

產品:進行項目計劃之前,應該首先定義產品的目的和范圍,考慮可選的解決方案,標識技術和管理的約束。無這些信息,就不可能進行合理的、準確的成本估算、有效的風險評估、適當?shù)捻椖咳蝿談澐帧⒖晒芾淼捻椖窟M度安排。

“目的”指從用戶的角度標識出該產品的總體目標而不考慮這些目標如何實現(xiàn)。

“范圍”指標識出與產品相關的主要數(shù)據(jù)、功能和行為。確定了目的和范圍,就可以根據(jù)產品交付的期限、預算的限制、可用的人員、技術接口及各種其他因素,選擇最好的解決方案途徑。

第5頁/共78頁7◆過程

根據(jù)以下條件選擇一個合適的軟件過程模型:⑴開發(fā)人員及需要該產品的用戶⑵產品本身的特征⑶項目組的工作環(huán)境采用如下的框架活動集合:客戶交流、計劃、風險分析、工程實施、構造及發(fā)布、用戶評估。這些活動可被修改以適應不同軟件項目的特征和項目組的需求。每個活動可被分解為更詳細的工作任務。如客戶交流活動可能需要下列任務:第6頁/共78頁8

⑴列出需要澄清問題的清單⑵安排與用戶進行討論的會議⑶評審用戶要求及范圍的陳述⑷研究推薦的解決方案⑸為正式的會議準備工作文檔⑹共同制訂能反映軟件的數(shù)據(jù)、功能和行為特征的規(guī)約,形成軟件范圍的文檔⑺評審文檔⑻根據(jù)需求修改文檔

……庇護性活動貫穿于整個過程。第7頁/共78頁9

◆項目有計劃的控制軟件項目,Boehm提出了一種方法,強調項目目標、里程碑、進度、責任、管理和技術方法以及需要的資源,稱之為W5H2原則。通過下面一系列的提問和回答,可以導出項目的關鍵特征并產生項目計劃的大綱:⑴為什么(Why)該系統(tǒng)被開發(fā)?值得嗎?⑵將做什么(What)?什么時候(When)做?建立項目進度,標識關鍵的項目任務和里程碑。⑶某功能由誰(Who)負責?開發(fā)人員的角色和責任。⑷哪里需要(Where)?客戶、用戶和其他投資者也有責任。⑸工作將如何(How)進行?定義項目的管理和技術策略。⑹資源需要多少(Howmuch)?

第8頁/共78頁10

軟件項目管理中的主要元素及之間的關系

開發(fā)人員、小組、角色、任務、工作產品、進度表(UML類圖)之間的關系第9頁/共78頁11

軟件項目管理的主要內容:

?定義問題(確定新系統(tǒng)的作用域-目標)

?確認項目的可行性

?建立項目的進度計劃

?建立項目的質量保證體系

?建立項目配置管理體系和準則

?項目版本變更管理

?

跟蹤、監(jiān)控項目的進展

?風險管理

?團隊建設(人員管理,包括績效評估等)

第10頁/共78頁122.2可行性研究

1、可行性研究的任務和目的GB8566-88《計算機軟件開發(fā)規(guī)范》中指出:

可行性研究的主要任務是了解客戶的要求及現(xiàn)實環(huán)境,從技術、經濟和社會因素等方面研究并論證本軟件項目的可行性,編寫可行性研究報告供項目管理人員評審,以便作出是否開發(fā)軟件項目的決策。第11頁/共78頁13◆技術可行性

度量一個系統(tǒng)解決方案的實用性及技術資源的可用性。考慮的問題:(1)開發(fā)風險分析(2)資源分析(3)相關技術的發(fā)展(現(xiàn)有技術能否實現(xiàn)新系統(tǒng)、技術難點、建議采用技術的先進性)第12頁/共78頁14◆經濟可行性

主要內容:成本/效益分析不可能得到精確的分析結果?系統(tǒng)成本:①軟件開發(fā)費用②購置并安裝軟硬件機有關設備的費用估算③系統(tǒng)安裝、運行和維護費用④人員培訓費用?系統(tǒng)效益包括經濟效益和社會效益經濟效益:可通過直接的或統(tǒng)計的方法估算社會效益:定性的方法估算第13頁/共78頁15◆社會因素可行性

政策、法律、使用、環(huán)境等2、可行性研究的步驟(1)復查確認系統(tǒng)目標、規(guī)模(2)研究現(xiàn)行系統(tǒng)的工作流程(3)導出目標系統(tǒng)高層邏輯模型(4)導出和評價供選擇的方案(5)推薦可行的方案(6)編寫可行性研究報告,送審第14頁/共78頁163、可行性研究報告的編寫提示(1)引言:編寫目的、背景、定義、參考資料;(2)可行性研究的前提:要求、目標、條件、假定和限制、進行可行性研究的方法、評價尺度;(3)對現(xiàn)有系統(tǒng)的分析:工作流程、工作負荷、費用開支、人員、設備、局限性;(4)所建議的系統(tǒng):說明、數(shù)據(jù)流程和處理流程、改進之處、影響、局限性、技術條件的可行性;(5)可選擇的其它系統(tǒng)方案;(6)投資及收益分析:支出、收益、收益/投資比、投資回收期等;(7)社會條件方面的可行性(法律、使用)。

第15頁/共78頁17例:一個軟件系統(tǒng)的開發(fā)費用(一次):人員:2名系統(tǒng)分析員(450小時/名,45美元/小時)$40,500

5名系統(tǒng)開發(fā)人員(275小時/名,36美元/小時)$49,5001名數(shù)據(jù)通訊專家(60小時/名,42美元/小時)$2,520

1名數(shù)據(jù)庫管理員(30小時/名,42美元/小時)$1,2602名技術寫作者(120小時/名,25美元/小時)$6,0001名秘書(160小時/名,15美元/小時)$2,4002名在轉換期間數(shù)據(jù)輸入人員$960(40小時/名,12美元/小時)

第16頁/共78頁18培訓:三天的開發(fā)人員內部培訓課程$7,00030個用戶,三天的內部培訓課程$10,000復印$500磁盤、紙張等消耗品$650購買硬件、軟件:20臺工作站W(wǎng)indows軟件$1,00020臺工作站內存升級$8,000網(wǎng)絡軟件$17,50020臺工作站辦公軟件產品$20,000系統(tǒng)開發(fā)總費用$167,790(成本)第17頁/共78頁19

一個系統(tǒng)的年運行費用(每年):人員:維護程序員/分析員(250小時/年,42美元/小時)$10,500網(wǎng)絡管理員(300小時/年,50美元/小時)$15,000購買硬件、軟件升級:硬件$5,000軟件$6,000物資和雜項$3,500每年總運行費用$40,000第18頁/共78頁202.3軟件度量

軟件度量(metrics)域分為過程度量、項目度量和產品度量。對過程、項目及產品的特定屬性進行度量產生指導管理及技術動作的指標,使得管理者和開發(fā)者能夠:

?

改善軟件過程

?

輔助軟件項目計劃

?

跟蹤及控制軟件項目的進展

?

評價軟件產品的質量第19頁/共78頁21

軟件度量的方式:直接度量間接度量

?軟件工程過程的直接度量包括所投入的成本和工作量。

?軟件產品的直接度量包括產生的代碼行數(shù)(LOC)、執(zhí)行速度、存儲量大小、在某種時間周期中所報告的錯誤數(shù)。

?軟件產品的間接度量包括功能性、復雜性、效率、可靠性、可維護性和許多其它的質量特性。第20頁/共78頁221.過程和項目的度量

◆過程度量:

使一個組織從戰(zhàn)略上考察已有過程的功效,如開發(fā)范型、工程任務的劃分、工作產品、里程碑等,使管理者評估那些部分起了作用。度量數(shù)據(jù)的收集跨越所有的項目,經歷較長的時間,目的是改善軟件過程。間接的度量一個軟件過程的功效:

?軟件發(fā)布之前發(fā)現(xiàn)的錯誤數(shù)

?交付給用戶后報告的缺陷數(shù)

?花費的工作量、時間、成本

?與進度計劃是否一致

第21頁/共78頁23

個體軟件過程(如PSP)提供了表格、腳本、標準以幫助開發(fā)人員估算、計劃以及度量、跟蹤自己工作的方法。過程度量對于一個組織(如企業(yè))提高其總體的過程成熟度能提供很大的幫助。如一個產品中,需求規(guī)約缺陷占了25.5%,原因如圖所示。通過分析一個完整的魚骨圖可以導出能改進軟件過程以降低錯誤和缺陷率的頻率。

第22頁/共78頁24

◆項目度量:

是戰(zhàn)術的,使項目管理者能夠以實時的方式改進項目的工作流程及技術方法,如軟件項目的工作量及時間的估算。

項目度量的基礎是歷史項目中收集的數(shù)據(jù)。隨著項目的進展,所花費的工作量及時間和預算的值進行比較,從而控制項目的進展。另外,可根據(jù)文檔的頁數(shù)、評審的時間、功能點及源代碼行數(shù)來度量軟件的生產率。

第23頁/共78頁25

項目度量可在項目進行的基礎上評估產品的質量,以指導在必要時修改技術方法以改進質量。軟件項目度量建議每個項目都應該測量:

?輸入:完成工作所需要的資源(如人員、環(huán)境);

?輸出:軟件工程過程中產生的工作產品;

?結果:最終產品的有效性。項目度量集成起來產生對整個軟件組織公用的過程度量。

第24頁/共78頁262.軟件度量的方法

(1)面向規(guī)模的度量

是對軟件和軟件開發(fā)過程的直接度量。可以建立一個面向規(guī)模的數(shù)據(jù)表格來記錄項目的某些信息。該表格列出了在過去幾年完成的每一個軟件開發(fā)項目和關于這些項目的相應面向規(guī)模的數(shù)據(jù)。

第25頁/共78頁27

基于所生產軟件的“規(guī)?!?,使用代碼行作為其他計算的規(guī)范化因子。計算:

?每千行代碼(KLOC)的錯誤數(shù)。

?每KLOC

的缺陷數(shù)。

?每個LOC的花費成本。

?每KLOC的文檔頁數(shù)

?每人月的錯誤數(shù)。

?每人月的代碼行。

?每頁文檔的成本。

第26頁/共78頁28

可制作一個如下的表:

對該方法的有效性有爭議:

支持:易計算,很多軟件估算模型以它為關鍵的輸入。

反對:LOC依賴于語言,不適用于非過程化語言,在分析與設計完成之前難以估算。項目名KLOC工作量(人月)成本(萬元)文檔頁數(shù)錯誤缺陷人員BETA1236101556085第27頁/共78頁29

(2)面向功能的度量

“功能”不能直接測量,利用其他的測量數(shù)據(jù)間接地導出。Albrecht提出來的一種稱為功能點的度量。用下表計算5個信息域的值:

第28頁/共78頁30其中:

?用戶輸入數(shù):每個用戶向系統(tǒng)提供的不同應用的輸入數(shù)據(jù)。

?用戶輸出數(shù):系統(tǒng)向每個用戶提供的信息,如報表、屏幕信息、出錯信息等。

?用戶查詢數(shù):每個不同的詢問/響應的交互操作。

?文件數(shù):可以是數(shù)據(jù)庫的一部分或是一個獨立的文件。

?外部接口數(shù):與系統(tǒng)中其他設備通過外部接口讀寫信息的次數(shù)。

“簡單、平均、復雜”中的常量值是加權因子,根據(jù)經驗確定。

第29頁/共78頁31

利用以下公式計算功能點(FP):FP=總計數(shù)值×(0.65+0.01×

Fi)

其中Fi(i=1~14)是回答14個方面問題而得到的復雜度調整值(值域為0~5),如輸入、輸出、查詢及內部處理復雜嗎?代碼復用嗎?有分布處理嗎等等(詳見p64)。計算出功能點。就可進行以下度量:

?每個功能點的錯誤數(shù)。

?每個功能點的缺陷數(shù)。

?每個功能點的成本。

?每個功能點的文檔頁數(shù)。

?每人月完成的功能點數(shù)。第30頁/共78頁32代碼行和功能點度量之間的關系依賴于實現(xiàn)軟件所采用的程序設計語言及設計的質量。下面給出了在不同的程序設計語言中建造一個功能點所需的平均代碼行數(shù)的統(tǒng)計:程序設計語言LOC/FP

匯編語言320

C128FORTRAN106Pascal90C++64Java46VisualBASIC32PowerBuilder16SQL12

第31頁/共78頁33

3、軟件質量度量

軟件工程的目標是產生高質量的系統(tǒng)或產品。質量依賴于描述問題的需求、建模、設計、編碼、測試。質量度量貫穿于軟件工程的全過程中以及軟件交付用戶使用之后。應評估分析與設計模型、源代碼、測試案例的質量。

第32頁/共78頁34

在軟件交付之前得到的度量數(shù)據(jù)可作為判斷設計和測試質量好壞的依據(jù)。這一類度量包括程序復雜性、有效的模塊性和總的程序規(guī)模。

在軟件交付之后的度量數(shù)據(jù)則把注意力集中于還未發(fā)現(xiàn)的缺陷數(shù)和系統(tǒng)的可維護性方面。

McCall提出了影響軟件質量的11個因素(詳見P367),其中重要的有以下幾點:

?正確性:軟件完成所需功能的程度,最常用

“缺陷數(shù)/kLoc”來測量。第33頁/共78頁35

?可維護性:遇到錯誤時程序能被修改的容易程度、環(huán)境變化時程序能被適應的容易程度、用戶希望改變需求時程序能被增強的容易程度,一種最簡單的測量方法是計算平均修改時間(MTTC)。

?完整性:測量系統(tǒng)在安全方面的抗攻擊性。

完整性=Σ[(1-威脅)×(1-安全性)]

其中威脅是某個特定類型的攻擊在給定時間內發(fā)生的可能性。安全性是某個特定類型的攻擊將被擊退的可能性。

?可用性:用戶友好性。另外還有可靠性、效率、可測試性、可移植性、可復用性等等。

第34頁/共78頁362.4軟件項目計劃

項目計劃既指出了項目組織未來努力的方向和奮斗目標,又是當前行動的準則。針對不同工作目標,軟件項目計劃有:

?項目實施計劃(軟件開發(fā)計劃)這是軟件開發(fā)的綜合性計劃,通常應包括任務、進度、人力、環(huán)境、資源、組織等多個方面。

?質量保證計劃把軟件開發(fā)的質量要求具體規(guī)定為每個開發(fā)階段可以檢查的質量保證活動。

?軟件測試計劃規(guī)定測試活動的任務、測試方法、進度、資源、人員職責等。

第35頁/共78頁37

?文檔編制計劃規(guī)定所開發(fā)項目應編制的文檔種類、內容、進度、人員職責等。

?用戶培訓計劃規(guī)定對用戶進行培訓的目標、要求、進度、人員職責等。

?綜合支持計劃規(guī)定軟件開發(fā)過程中所需要的支持,以及如何獲取和利用這些支持。

?軟件發(fā)布計劃軟件開發(fā)項目完成后,如何提交給用戶。這里,主要針對綜合計劃來介紹。第36頁/共78頁38項目管理是一個創(chuàng)造的過程,項目早期的不確定性因素,使計劃不可能在啟動階段就全部一次完成,需逐步展開和不斷修正,這又取決于計劃執(zhí)行情況的反饋與及時的信息交流。制訂項目基準計劃(BaselinePlan)的步驟:①定義項目目標,確定軟件范圍②把項目按項目范圍分解為多個任務③確定對應每個任務必須執(zhí)行的活動④將每個任務分配給一個小組,并為每個開發(fā)者分配角色和職責⑤用Gantt圖或PERT圖表示出項目的進度

第37頁/共78頁391、軟件項目估算項目計劃的一個重要的前提是項目估算(有時在可行性研究階段完成),一般以團隊的歷史經驗為基礎,讓團隊中的一線人員參與估算,才能保證項目計劃的可行性。成本及工作量的估算不是一門精確的科學,有幾種選擇:

?

基于已完成的類似項目進行估算;

?使用分解技術以生成項目成本及工作量的估算;

?使用一個或多個經驗模型;

(1)分解技術分解技術采用“分而治之”的策略進行軟件項目估算。將項目分解成若干主要功能及相關的軟件過程活動,通過逐步求精的方式進行成本及工作量估算。具體方法為:

第38頁/共78頁40

劃分主要的軟件功能,接著估算:①Loc的數(shù)量②對于FP,估算每個信息域特征(輸入、輸出、數(shù)據(jù)文件、查詢、外部接口)及14個復雜度調整值③實現(xiàn)每個功能所需的人月數(shù)④每個軟件過程活動所需人月數(shù)基本的估算方法:

?自頂向下估算:總成本按階段、步驟、工作單元?自底向上估算:先劃分,分別估算每個子任務所需的工作量,然后∑。

第39頁/共78頁41?差別估算法:與類似項目比較,估算每個不同之處對成本的影響。還有專家估算法等等。(2)經驗估算模型經驗估算模型可用于補充分解技術,并提供一種潛在有價值的估算方法。該模型是基于經驗(歷史數(shù)據(jù))的,可以用下面的形式表示:

=?()其中

是要估算的值(如工作量、成本、項目持續(xù)時間)之一,是選擇出來的獨立參數(shù)(如被估算的Loc或FP)。第40頁/共78頁42

由經驗導出的公式,最著名的是COCOMO模型,構造型成本模型(COnstructiveCOstMOdel)。初期的模型廣泛的使用于軟件成本估算,發(fā)展到反映不同階段的成本。

初始模型的分類:?基本COCOMO模型是靜態(tài)單變量模型,用源代碼行數(shù)(LOC)為自變量的經驗函數(shù)計算軟件開發(fā)工作量。?中間COCOMO模型該模型在用LOC為自變量的函數(shù)計算軟件開發(fā)工作量的基礎上,用涉及產品、硬件、人員、項目等方面的影響因素調整工作量估算。?詳細COCOMO模型該模型包括中間COCOMO模型的所有特性,但用上述各種影響因素調整工作量估算時,還要考慮對軟件工程過程中每一步驟(分析、設計等)的影響。

第41頁/共78頁43

模型的擴展:COCOCOMⅡ使用對象點、功能點、源代碼行作為不同層次模型的參數(shù)。

對象點只是一種間接軟件測量數(shù),使用以下計數(shù):①用戶界面上的屏幕數(shù)②報表數(shù)③建立應用軟件需要的構件數(shù)。每個對象實例(如一個屏幕或一個報表)給出三個復雜度權數(shù)(簡單、中等、復雜),如一個屏幕的權簡單為1,中等為2,復雜為3。通過以下公式計算總對象點數(shù):第42頁/共78頁44Σ(初始的對象實例數(shù)×加權因子)=總的對象點(NOP)當應用基于構件的開發(fā)時,對象點計數(shù)調整為:NOP=NOP×[(100-%復用)/100]進而計算:生產率=NOP/人月針對不同級別的開發(fā)者經驗和開發(fā)環(huán)境成熟度,給出對象點的生產率:非常低低額定高非常高47132550項目工作量=NOP/生產率第43頁/共78頁45

2、項目進度安排項目計劃中的一個重要內容是建立進度表,該表對項目進度進行科學度量、調整項目計劃起很重要的作用。在眾多軟件項目中,缺乏合理的進度安排是造成項目泄后的最主要原因。進度安排為項目管理者和開發(fā)者建立了一張行路圖。

(1)進度安排的指導原則:

?劃分:項目分解成若干易于管理的任務。如何進行任務的分解呢?可從兩個方面獲得幫助:①軟件開發(fā)模型:模型幫助將整個項目進行階段性的劃分,這些階段可以做計劃中很重要的里程碑。

軟件開發(fā)需求:開發(fā)模型只給項目計劃提供了個框架,需求的整理與規(guī)格化,是細化項目計劃的基礎。

第44頁/共78頁46

?

相互依賴性:各個被劃分的活動或任務之間的相互關系必須是確定的。有些任務必須順序進行,有些可以并發(fā)進行。

?

時間分配:必須為每個被調度的任務分配一定數(shù)量的工作單位(如,人天、人月),并指定開始和結束日期。

?

工作量確認:每個項目都有預定數(shù)量的人員參與。在進行時間分配時,必須確保在任意時段中分配給任務的人員數(shù)量不會超過項目組中的人員總量。

?

定義的責任:每個被調度的任務都應該指定某個特定的小組成員來負責。

?

定義的結果:每個被調度的任務都應該有一個定義好的輸出結果,輸出結果通常是一個工作產品或某個工作產品的一部分。

?

定義的里程碑:每個任務或任務組都應該與一個項目里程碑相關聯(lián)。當一個或多個工作產品經過質量評審并且得到認可時,標志著一個里程碑的完成。

第45頁/共78頁47(2)工作量分配(指導原則)計劃需求分析設計編碼測試

2%~3%10%~25%20%~25%15%~20%30%~40%(3)進度表(圖)

?

甘特圖(GanttChart)

也稱時間表,所有的項目任務都在左邊的欄目中列出。水平條表示每個任務的持續(xù)時間,當同一時間段中存在多個水平條時,表示任務之間存在并發(fā)。

?

PERT(ProgramEvaluationReviewTechnique)圖也稱任務網(wǎng)絡圖,表示一個項目的任務流程,刻畫了各項任務、任務之間的依賴關系及任務的持續(xù)時間。它的最簡單形式可當作宏觀進度表使用。第46頁/共78頁48

Gantt圖Gantt圖可清晰的表達每個任務活動的進展以及并發(fā)活動。水平條的顏色既可以表示概要任務和詳細任務的分解,也可以表示任務完成的情況。用一個特定的符號(如黑菱形)表示一個活動的結束(里程碑),以便檢查階段成果和最后成果。

第47頁/共78頁49

PERT圖PERT圖另一個重要的用途是用來判斷關鍵路徑,關鍵路徑表明了完成該項目可能需要的最小時間,并能識別最有可能成為瓶頸的活動,該路徑上的活動是項目負責人或小組長抓的主要工作。非關鍵路徑上的活動延遲,不會導致項目總體進度偏離。下圖是一個項目的總的PERT圖。

第48頁/共78頁50第49頁/共78頁51說明:①考慮進度表中的變化:建立進度表時,項目分解為哪些任務以及任務持續(xù)的時間往往根據(jù)歷史數(shù)據(jù)估算而來,項目進展過程中未預料到的事件,如需求的變化或較晚發(fā)現(xiàn)的設計缺陷,都會打亂進度表,因此在進度表中為將來可能的變化留有余地。②進度表可有不同的抽象層次:高層進度表反映整個項目的進度,應包括所有可交付產品的期限,底層進度表是任務和時間的分解??芍谱鞫唐趦鹊倪M度表,其余部分在項目進行過程中完成。底層進度表可用于指導每個小組的進度。③每個里程碑可以附帶一個標識進度值的百分比,用來說明項目完成了多少,如:30%。

第50頁/共78頁52

項目開展階段管理活動圖(UML活動圖)

2.5項目進度的跟蹤

第51頁/共78頁53

1、項目啟動

進行項目計劃

2、項目開展

項目的監(jiān)督與跟蹤

(1)收集狀況信息的方式

?

定期報告:非正式的會議和交流,報告工作產品、進度誤差等需要及早溝通的信息。

?

里程碑的監(jiān)督與驗證:里程碑可以是事件,也可以是工作產品,驗證是否在預定時間內完成。

?

項目檢查:正式會議,所有開發(fā)人員交換活動進展狀況,比較各項任務實際開始日期與計劃開始日期。

?

代碼檢查:同事之間的正式代碼檢查。

?

原型示范:原型是為了驗證需求或為了評估技術和功能而部分實現(xiàn)的系統(tǒng),可用來估算初始進度。

第52頁/共78頁54

?

度量:主要是修正錯誤數(shù)目的度量,即還需要付出多少努力的估量。

(2)項目再計劃根據(jù)項目的變化動態(tài)更新項目計劃,應對一些新的需求、新的變化、突發(fā)因素做出響應,或解決問題以適應計劃,或調整計劃以保證最后按時交付產品。

(3)風險管理風險是一些不利因素實際發(fā)生的可能性。如:人員跳槽,管理層變更,硬件缺乏,需求變化,描述延遲,低估了系統(tǒng)的規(guī)模,工具性能差,技術變更,產品竟爭等等。

第53頁/共78頁55風險管理的活動有:

?風險識別:確定風險的類型(管理、技術)。

?風險分析:評估風險出現(xiàn)的可能性及其后果。

?風險規(guī)劃:制定避免或降低風險的策略。

?風險控制:定期進行風險評估,及時修正緩解風險的計劃。3、項目總結

?用戶驗收:根據(jù)項目協(xié)議中規(guī)定的驗收標準對系統(tǒng)進行評價,并通過場景演示,測試系統(tǒng)功能性和非功能性需求。

?安裝:在目標環(huán)境下安裝、運行系統(tǒng)并提交文檔。

?總結:總結經驗教訓,建立團隊工作效率的歷史檔案,以便提高個人和團隊整體的軟件工程能力。第54頁/共78頁562.6軟件質量保證

1、概述軟件質量是軟件產品、體系或過程的一組固有特性滿足(顧客和其他相關方)要求的程度。軟件質量保證(SoftwareQualityAssurance,SQA)是一種應用于整個軟件過程的庇護性活動,包含:

?質量管理方法

?有效的軟件工程方法和工具

?過程中采用的正式技術評審

?多層次的測試策略

?對軟件文檔及其修改的控制

?保證與開發(fā)標準符合的規(guī)程

?軟件度量及報告機制等等方面的內容第55頁/共78頁57

軟件質量保證的對象一般有三方面:產品、過程和質量體系實施軟件質量保證需運用幾種支持過程作為質量保證的手段。

?驗證或確認:通過提供客觀證據(jù)對規(guī)定要求已得到滿足的認定。

?評審或審核:確定主題事項達到規(guī)定目標的適應性、充分性和有效性所進行的活動。聯(lián)合評審是由任何兩方(評價方和被評價方)用來在適當時機對項目的某個活動的狀態(tài)和產品進行評價并可能形成文件的過程。

第56頁/共78頁58

2、軟件質量保證過程中的數(shù)據(jù)

SQA過程中必然產生有關產品、過程和體系質量的多種數(shù)據(jù),是進行下一步工作的決策依據(jù),對于提高質量管理效果和改進質量管理過程至關重要。要收集、存儲、及時分析和使用這些數(shù)據(jù),才能做好質量保證工作。質量數(shù)據(jù)有多種:

?項目規(guī)模:FP表示軟件大小,以功能點計數(shù);

?工作量E:表示項目的人力總投入,以人月計數(shù);

?生產率:

P=FP/E;

?缺陷數(shù):D1表示軟件交付前發(fā)現(xiàn)的錯誤數(shù),D2表示交付后發(fā)現(xiàn)的缺陷數(shù);

?質量:Q=D2/FP,表示每個功能點包含多少交付的缺陷,

?缺陷引入率:DI=(D1+D2)/FP,整個項目生存期中每個功能點發(fā)現(xiàn)的缺陷數(shù);?缺陷排除率:

DR=D1/DI第57頁/共78頁59

3、SQA的實施(1)SQA小組的職責

SQA活動與兩種不同的參與者相關:做開發(fā)工作的軟件工程師和獨立的SQA小組。軟件開發(fā)人員對質量的考慮:采用可靠的技術方法,進行正式的技術評審,嚴格的、按計劃的測試軟件。

SQA小組的職責是輔助開發(fā)人員得到高質量的產品,負責質量保證的計劃、監(jiān)督、記錄、分析及報告工作。

(2)SQA過程的進入與退出

?進入準則:①方針明確②能力具備

③項目已定義

④已有SQAP制定規(guī)程和偏差處理規(guī)程

第58頁/共78頁60

?退出準則:

①產品符合需求

②數(shù)據(jù)記錄完整、受控

?具體活動的輸入(需要的數(shù)據(jù))與輸出(產生的結果):輸入包括合同中的有關說明或協(xié)議,軟件開發(fā)標準和規(guī)范,軟件設計準則,軟件測試標準或規(guī)范,軟件配置管理規(guī)范,軟件質量保證規(guī)范,軟件質量數(shù)據(jù)采集規(guī)程等。輸出包括SQAP,項目采用的標準和規(guī)程,各種評審和審核活動的記錄和報告、問題報告、問題解決報告和軟件質量有關的數(shù)據(jù)。

(3)SQA活動流程(見下圖)

第59頁/共78頁61

SQA活動流程第60頁/共78頁62需要指出的是,軟件測試與軟件質量保證是由不同人員實施的兩種不同過程,軟件測試是軟件開發(fā)過程的一個階段,而軟件質量保證貫穿于整個軟件開發(fā)過程。軟件開發(fā)過程需要多人合作,不按照一定的標準、規(guī)程、準則去做,很難將眾多的工作產品集成起來。不把開發(fā)過程分解為可控制的階段并對每個階段的工作和結果加以控制,很難保證產品的質量。正式技術評審是軟件質量保證的主要手段之一,也是使用最多的監(jiān)督方法。為了使評審取得應有的效果,注意三點:①有計劃,②有規(guī)程,③認真執(zhí)行計劃和規(guī)程。第61頁/共78頁632.7軟件配置管理

1、概念

軟件配置管理(SoftwareConfigurationManagement,SCM)是應用于整個軟件過程中的庇護性活動。軟件配置是一個軟件產品在生存期各個階段的不同形式和不同版本的程序、文檔及相關數(shù)據(jù)的集合。軟件開發(fā)過程中,會得到許多工作產品或階段產品,還會用到許多工具軟件,所有這些信息都需要管理,以便在提出某些特定的要求時能將其進行約定的組合來滿足使用的目的(見下圖)。

第62頁/共78頁64

兩個產品具有不同的配置

第63頁/共78頁65軟件開發(fā)屬于變化驅動的過程。軟件時時處于演化變更狀態(tài)。技術的快速發(fā)展、業(yè)務環(huán)境的不斷改變、不同用戶的不同需求、需求在開發(fā)中的頻繁變更、開發(fā)人員對階段產品的改變等等,都會對產品的最后質量造成影響。

SCM是對軟件生存期過程中的各階段產品和最終產品演化和變更的管理,是CMM第二級中的關鍵過程域。它的主要目的是對變更加以控制,將變更對成本、進度和質量影響降到最小。SCM的任務:

?制定SCM計劃

?配置標識

?變更控制

?配置審核

?版本管理和發(fā)行管理

第64頁/共78頁662、軟件配置標識

(1)確定配置項(SCI)大中型軟件項目在開發(fā)中產生幾十個、上百個文檔,每個階段都在演化,后期版本是對前期的修改及擴展(兩者有繼承關系),確定配置項就是確定哪些文檔需要被保存、被管理。

(2)配置項標識

?

唯一性:在一個項目內不能出現(xiàn)重名,

?可追溯性:名字能體現(xiàn)相鄰配置項之間的關系,如采用層次式命令規(guī)則反映樹狀結構。第65頁/共78頁673、變更管理

(1)軟件變更

?軟件變更的不可避免性:變更來源于用戶或開發(fā)人員;

?變更的復雜性:涉及一些相關部件和文檔,需要將某些變更通知相關人員。

(2)變更管理的任務

?分析變更:研究變更的必要性、經濟可行性(成本-效益比,是否合理)和技術可行性(能否實現(xiàn))。?記錄和追蹤變更。

?采取措施保證變更在受控狀態(tài)下進行。第66頁/共78頁68

(3)建立配置項庫

◆配置項庫的作用

①記錄與配置相關的所有信息,其中很重要的內容是存放受控的軟件配置項。

②利用庫中的信息評價變更的后果,對變更控制有重要的意義。③從庫中提取各種配置管理過程的管理信息,可利用庫中的信息查詢回答許多配置管理問題,例如:

?哪些客戶已提取了某個特定的系統(tǒng)版本??運行一個給定的系統(tǒng)版本需要什么硬件和系統(tǒng)軟件?

?一個系統(tǒng)到目前已生成了多少個版本,何時生成的??如果某一特定的構件變更了,會影響到系統(tǒng)的哪些版本??一個特定的版本曾提出過哪幾個變更請求??一個特定的版本有多少已報告的錯誤?第67頁/共78頁69

◆配置項庫的類別

?

開發(fā)庫存放開發(fā)過程中需要保留的各種信息,供開發(fā)人員個人使用,庫中的信息無需對其做任何限制,可以有較為頻繁的修改。

?受控庫在軟件開發(fā)的某個階段工作結束時,將工作產品或有關信息存入,應該對庫內的信息的讀寫和修改加以控制。

?產品庫所開發(fā)的軟件產品完成系統(tǒng)測試后,作為最終產品存入庫內,庫內的信息也應加以控制。受控庫和產品庫的規(guī)范化運行是實現(xiàn)軟件配置項管理的重要手段。第68頁/共78頁70

(4)建立配置基線(baseline)

溫馨提示

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

評論

0/150

提交評論