軟件項(xiàng)目管理-CH01-選擇恰當(dāng)?shù)倪^程-典型軟件開發(fā)過程模型.ppt_第1頁
軟件項(xiàng)目管理-CH01-選擇恰當(dāng)?shù)倪^程-典型軟件開發(fā)過程模型.ppt_第2頁
軟件項(xiàng)目管理-CH01-選擇恰當(dāng)?shù)倪^程-典型軟件開發(fā)過程模型.ppt_第3頁
軟件項(xiàng)目管理-CH01-選擇恰當(dāng)?shù)倪^程-典型軟件開發(fā)過程模型.ppt_第4頁
軟件項(xiàng)目管理-CH01-選擇恰當(dāng)?shù)倪^程-典型軟件開發(fā)過程模型.ppt_第5頁
已閱讀5頁,還剩122頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件項(xiàng)目管理Software Project Management(SPM),郭建東,CH01 選擇恰當(dāng)?shù)拈_發(fā)過程-典型軟件工程過程模型,01.1 軟件工程過程 01.2 典型軟件工程過程模型 01.3 過程模型的選擇,2,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,01.1 軟件工程過程,軟件過程是近十年來人們關(guān)注的焦點(diǎn)。軟件過程是為開發(fā)高質(zhì)量軟件所需要完成的任務(wù)的框架。軟件工程是有創(chuàng)造力、有知識的人在定義好的、成熟的軟件過程框架中進(jìn)行的。,3,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程,軟件過程層次圖,質(zhì)量焦點(diǎn),過程,方法,工具,4,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程

2、,軟件過程提供了一個(gè)框架,在該框架下可以建立一個(gè)軟件開發(fā)的綜合計(jì)劃: 若干框架活動(dòng)適用于所有軟件項(xiàng)目,而不在乎其規(guī)模和復(fù)雜性。 若干不同任務(wù)的集合-每一個(gè)集合都由任務(wù)、里程碑、交付物以及質(zhì)量保證點(diǎn)組成-使得框架活動(dòng)適應(yīng)于不同軟件項(xiàng)目的特征和項(xiàng)目組的需求。 若干保護(hù)性活動(dòng)-如軟件質(zhì)量保證、軟件配置管理、測試與度量-它們貫穿于整個(gè)過程模型之中。保護(hù)性活動(dòng)獨(dú)立于任何一個(gè)框架活動(dòng),且貫穿于整個(gè)過程之中。,5,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程,里程碑、交付物,SQA點(diǎn),公共過程框架,框架活動(dòng),保護(hù)性活動(dòng),任務(wù)集合,工作任務(wù),6,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程,軟件過

3、程可分為三大類: 基本過程類:是構(gòu)成軟件生存周期主要部分的那些過程,包括獲取、供應(yīng)、開發(fā)、操作、維護(hù)等過程。 支持過程類:可穿插到基本過程中提供支持的一系列過程,包括文檔開發(fā)、配置管理、質(zhì)量保證、驗(yàn)證、確認(rèn)、聯(lián)合評審、審計(jì)、問題解決等過程。 組織過程類:一個(gè)組織用來建立、實(shí)施一種基礎(chǔ)結(jié)構(gòu)、并不斷改進(jìn)該基礎(chǔ)結(jié)構(gòu)的過程,包括管理、基礎(chǔ)、改進(jìn)、培訓(xùn)等過程。,7,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程模型,軟件過程模型是軟件開發(fā)的指導(dǎo)思想和全局性框架,軟件過程模型的提出和發(fā)展反映了人們對軟件過程的某種認(rèn)識觀,體現(xiàn)了人們對軟件過程認(rèn)識的提高和飛躍。,8,軟件項(xiàng)目管理 CH01 選擇過程 郭建

4、東,什么是過程?,軟件工程中的目標(biāo)就是開發(fā)和維護(hù)軟件及相關(guān)產(chǎn)品,9,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,當(dāng)前主流的軟件過程,CMM RUP MSF XP,10,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,過程鐵三角,過程:把各部分集成在一起 CMM,11,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,過 程,過程就是針對某一給定目標(biāo)的一系列運(yùn)作步驟,IEEE-STD-610 是在過程環(huán)境下的一系列有序活動(dòng)。所謂活動(dòng)(Activity)就是過程對象一次狀態(tài)改變,也叫過程步(Step)。 活動(dòng)起始態(tài)和活動(dòng)結(jié)果態(tài)表征了活動(dòng)的進(jìn)行??梢哉f一切事物的發(fā)生、發(fā)展、消亡都離不開過程,都寓于過程之中。,12,

5、軟件項(xiàng)目管理 CH01 選擇過程 郭建東,過程的一般定義,13,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,煮蛋的啟示,14,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程,軟件過程是將用戶的需求轉(zhuǎn)化成有效的軟件解決方案的一系列活動(dòng)。 許多軟件組織無法正確定義和控制這一過程,但這恰恰是組織改進(jìn)的關(guān)鍵。,15,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程(Cont.),過程的好壞由結(jié)果狀態(tài)與預(yù)期狀態(tài)的差異決定,也就是目標(biāo)成果質(zhì)量的好壞。 規(guī)程(Procedure)是人們對客觀事物運(yùn)動(dòng)規(guī)律 的理解和掌握,使規(guī)范了的過程。 軟件過程是為了獲得高質(zhì)量軟件產(chǎn)品所需要完 成的一系列任務(wù)的框架,它規(guī)

6、定了完成各項(xiàng)任務(wù)的工作步驟。 軟件過程必須科學(xué)、合理,才能開發(fā)出高質(zhì)量 的軟件產(chǎn)品。,16,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程(Cont.),軟件過程又稱軟件生存周期過程,是軟件生存周期內(nèi)為達(dá)到一定目標(biāo)而必須實(shí)施的一系列相關(guān)過程的集合。 早期: 立項(xiàng)、需求分析、設(shè)計(jì)、編碼、 測試、交付、維護(hù)、退役,17,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程(Cont.),項(xiàng)目計(jì)劃就是安排實(shí)際的過程,制作項(xiàng)目計(jì)劃首先要定義過程。項(xiàng)目計(jì)劃是某個(gè)軟件過程模型的實(shí)例。 軟件過程是人類制作產(chǎn)物的一系列活動(dòng),而過去的軟件工程師把產(chǎn)物和人分離,只研究產(chǎn)品過程及其質(zhì)量,假定人力、物力資源是無限大

7、、無限好?,F(xiàn)在認(rèn)識到面對實(shí)際資源實(shí)施軟件過程學(xué),求相對最佳質(zhì)量才是有效的。,18,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件過程(Cont.),現(xiàn)在的軟件生命周期過程包括: 早期: 立項(xiàng)、需求分析、設(shè)計(jì)、編碼、 測試、交付、維護(hù)、退役 又加入了: 管理各種活動(dòng)、質(zhì)量保證 環(huán)境基礎(chǔ)設(shè)施配置、文檔管理等。,19,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)問題的循環(huán)解決過程,狀態(tài)描述 問題定義 技術(shù)開發(fā) 方案綜述,20,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)過程,為開發(fā)小組的活動(dòng)順序提供向?qū)?詳細(xì)說明那些制品將被開發(fā),以及什么時(shí)候開發(fā) 指導(dǎo)每一個(gè)開發(fā)人員和整個(gè)開發(fā)組的工作 為

8、監(jiān)控和度量項(xiàng)目的產(chǎn)品和活動(dòng)提供準(zhǔn)則,21,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件工程 方法學(xué),傳統(tǒng)方法學(xué) 面向?qū)ο蟮姆椒▽W(xué),22,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,傳統(tǒng)方法學(xué)(生命周期方法學(xué)),仍然是使用十分廣泛的軟件工程方法學(xué)。 采用結(jié)構(gòu)化技術(shù)來完成軟件開發(fā)的各項(xiàng)任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結(jié)構(gòu)化技術(shù)的運(yùn)用。 從上而下,順序地完成軟件開發(fā)的各階段任務(wù)。,23,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,01.2 典型軟件工程過程模型,24,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,瀑布模型(Waterfall) 原型模型(Prototype) 增量模型(Inc

9、remental) 螺旋模型(Spiral) 迭代模型(Iterative),01.2 典型軟件工程過程模型,25,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,瀑布模型(線性順序模型),瀑布式模型包含以下活動(dòng): 系統(tǒng)/信息工程和建模 軟件需求分析 設(shè)計(jì) 代碼生成 測試 維護(hù),26,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,基本概念,軟件生存期(過程)模型: 軟件生存期是軟件產(chǎn)品或系統(tǒng)一系列相關(guān)活動(dòng)的全周期。從形成概念開始,經(jīng)過研制,交付使用,在使用中不斷增補(bǔ)修訂,直到最后被淘汰,讓位于新的軟件產(chǎn)品的過程。對軟件生存期的不同劃分,形成了不同的軟件生存期模型。,27,軟件項(xiàng)目管理 CH01 選擇過程

10、 郭建東,軟件工程的傳統(tǒng)途徑生命周期方法學(xué),生命周期方法學(xué)的基本內(nèi)容 從時(shí)間角度對軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件生命的漫長周 期依次劃分為若干個(gè)階段,每個(gè)階段有相對獨(dú)立的任務(wù),然后逐步完成每個(gè)階 段的任務(wù)。 生命周期方法學(xué)的應(yīng)用方法 從對任務(wù)的抽象邏輯分析開始,一個(gè)階段一個(gè)階段地進(jìn)行開發(fā);前一個(gè)階段任 務(wù)的完成是后一個(gè)階段工作的前提和基礎(chǔ),而后一個(gè)階段任務(wù)通常是使前一階 段提出的解法更進(jìn)一步的具體化,加進(jìn)了更多的實(shí)現(xiàn)細(xì)節(jié)。 階段過渡方法 每一個(gè)階段的開始和結(jié)束都有嚴(yán)格標(biāo)準(zhǔn),前一階段結(jié)束的標(biāo)準(zhǔn)是后一階段工作 開始的標(biāo)準(zhǔn)。 技術(shù)審查和管理復(fù)審。 基本概念 文檔及其作用。 生命周期各階段的

11、基本任務(wù) 問題定義可行性研究 需求分析 總體設(shè)計(jì)(概要設(shè)計(jì)) 詳細(xì)設(shè)計(jì) 編碼和單元測試 綜合測試 軟件維護(hù)。,28,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件工程(生命周期各階段的基本任務(wù)),問題定義,可行性研究,需求分析,總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼與單元測試,綜合測試,軟件維護(hù),要解決的問題是什么?,問題性質(zhì)、工程目標(biāo)和規(guī)模的報(bào)告,分析員:實(shí)際用戶+負(fù)責(zé)人,是否有解決辦法?,分析員,高層邏輯模型,準(zhǔn)確和具體的工程規(guī)模和目標(biāo),成本/效益分析等可行性報(bào)告,為了解決的問題,目標(biāo)系統(tǒng)必須做什么?準(zhǔn)確確定系統(tǒng)的功能,系統(tǒng)的邏輯模型 (數(shù)據(jù)流圖+數(shù)據(jù)字典+簡要算法),如何解決這些問題,模塊劃分軟件結(jié)構(gòu)

12、,如何具體地實(shí)現(xiàn)系統(tǒng):每個(gè)模塊的流程圖 (程序的詳細(xì)規(guī)格說明),通過各種類型的測試,使軟件達(dá)到預(yù)定的要求,寫出正確的容易理解和容易維護(hù)的程序模塊,通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要,29,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,生命周期法各階段的工作小結(jié),生命周期法各階段的工作小結(jié),“生命周期法”的特點(diǎn),階段具有順序性和依賴性 推遲實(shí)現(xiàn)的觀點(diǎn) 質(zhì)量保證的觀點(diǎn) 每個(gè)階段都必須完成規(guī)定的文檔 每個(gè)階段結(jié)束前都要對所完成的文檔進(jìn)行評審,以便盡早發(fā)現(xiàn)問題,改正錯(cuò)誤。,32,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件工程瀑布模型,瀑布模型,問題定義,特點(diǎn):1) 階段間具有順序性和依賴

13、性 2) 推遲實(shí)現(xiàn)的觀點(diǎn) 3) 質(zhì)量保證的觀點(diǎn)。,可行性研究,需求分析,總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼與單元測試,綜合測試,軟件維護(hù),軟件定義時(shí)期,軟件開發(fā)時(shí)期,軟件維護(hù)時(shí)期,33,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)過程模型,瀑布模型的特征 從上一項(xiàng)活動(dòng)中接受該項(xiàng)活動(dòng)的工作對象,作為輸入。 利用這一輸入實(shí)施該項(xiàng)活動(dòng)應(yīng)完成的內(nèi)容 給出該項(xiàng)活動(dòng)的工作成果,作為輸出傳給下一項(xiàng)活動(dòng) 對該項(xiàng)活動(dòng)實(shí)施的工作進(jìn)行評審。若其工作得到確認(rèn),則繼續(xù)下一項(xiàng)活動(dòng)。,34,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,瀑布模型 特點(diǎn),文檔驅(qū)動(dòng)的模型 階段間具有順序性和依賴性 推遲實(shí)現(xiàn)的觀點(diǎn) 質(zhì)量保證的觀點(diǎn),35,

14、軟件項(xiàng)目管理 CH01 選擇過程 郭建東,思考?,傳統(tǒng)瀑布模型存在什么問題?,36,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,傳統(tǒng)的瀑布模型 存在什么問題?,傳統(tǒng)的瀑布模型過于理想化了,事實(shí)上,人在工作過程中不可能不犯錯(cuò)誤。 在設(shè)計(jì)階段可能發(fā)生規(guī)格說明文檔中的錯(cuò)誤。 而設(shè)計(jì)上的缺陷或錯(cuò)誤可能在實(shí)現(xiàn)過程中顯現(xiàn)出 來。 在綜合測試階段將發(fā)現(xiàn)需求分析、設(shè)計(jì)或編碼階段 的許多錯(cuò)誤。,37,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,Tom Gilb: “假如你不積極地解決你項(xiàng)目中存在的風(fēng)險(xiǎn),它們就會積極地解決掉你” 瀑布方法會掩飾項(xiàng)目中真正的風(fēng)險(xiǎn),當(dāng)你太晚發(fā)現(xiàn)它們時(shí)已無濟(jì)于事。,38,軟件項(xiàng)目管理 CH

15、01 選擇過程 郭建東,瀑布模型 問題,實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行 用戶常常難以清楚地給出所有需求 用戶必須有耐心 開發(fā)者常常被不必要地耽擱,39,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)過程模型,瀑布模型的缺點(diǎn): 從認(rèn)識論角度看,人的認(rèn)識是一個(gè)多次反復(fù)循環(huán)的過程,不可能一次完成。但瀑布模型中劃分的幾個(gè)階段,沒有反映出這種認(rèn)識過程的反復(fù)性。 軟件開發(fā)是一個(gè)知識密集型的開發(fā)活動(dòng),需要相互合作完成,但瀑布模型沒有體現(xiàn)這一點(diǎn)。,40,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,瀑布模型 實(shí)際的瀑布模型,需求分析,驗(yàn)證,規(guī)格說明,驗(yàn)證,設(shè)計(jì),驗(yàn)證,編碼,測試,綜合測試,維護(hù),變化的需

16、求,驗(yàn)證,41,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)過程模型,具有維護(hù)循環(huán)的軟件生存期的瀑布模型,42,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)過程模型原型模型,基本思想 在獲取一組基本的需求定義后,利用高級軟件工具的可開發(fā)環(huán)境,快速地建立一個(gè)目標(biāo)系統(tǒng)的最初版本,并把它交給用戶試用、補(bǔ)充和修改,再進(jìn)行新的版本開發(fā)。反復(fù)進(jìn)行這個(gè)過程,直到得出系統(tǒng)的“精確解”,即用戶滿意為止。經(jīng)過這樣一個(gè)反復(fù)補(bǔ)充和修改的過程,應(yīng)用系統(tǒng)的“最初版本”就逐步演變?yōu)橄到y(tǒng)的“最終版本”。,43,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型,快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,他所能完成的

17、功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。,44,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型 適用情況,用戶定義了一組一般性目標(biāo),但不能標(biāo)識出詳細(xì)的輸入、處理及輸出需求; 開發(fā)者可能不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式; 原型模型可能是最好的選擇,45,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型(Cont.),原型模型從需求收集開始。 開發(fā)者和用戶在一起定義軟件的總體目標(biāo),標(biāo)識出已知的需求,并規(guī)劃出進(jìn)一步定義的區(qū)域。 然后是“快速設(shè)計(jì)”,快速設(shè)計(jì)集中于軟件那些對用戶可見部分的表示?!翱焖僭O(shè)計(jì)”導(dǎo)致原型的建造。 原型由用戶評估,并進(jìn)一步精化待開發(fā)軟件的需求,逐步

18、調(diào)整原型使其滿足客戶的要求。同時(shí)開發(fā)者對將要做的事情有更好的理解, 這個(gè)過程是迭代的。,46,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型(Cont.),快速原型,驗(yàn)證,規(guī)格說明,驗(yàn)證,設(shè)計(jì),驗(yàn)證,編碼,測試,綜合測試,維護(hù),變化的需求,驗(yàn)證,維護(hù)過程,開發(fā)過程,47,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型存在的問題,用戶似乎看到的是軟件的工作版本,其實(shí) 開發(fā)者常常需要實(shí)現(xiàn)上的折衷,以使原型能夠盡快工作,48,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型,在“需求分析”、“原型設(shè)計(jì)”兩個(gè)階段中,開發(fā)者和用戶一起為想象中的系統(tǒng)的某些主要部分定義需求和規(guī)格說明,并由開發(fā)者在

19、規(guī)格說明級用原型描述語言構(gòu)造一個(gè)系統(tǒng)原型,它代表了部分系統(tǒng),包括那些為滿足用戶需求的必要屬性。該原型可用來幫助分析和設(shè)計(jì)工作,而不是一個(gè)軟件產(chǎn)品。,49,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型,在演示原型期間,用戶可以根據(jù)他所期望的系統(tǒng)行為來評價(jià)原型的實(shí)際行為。如果原型不能滿意地運(yùn)行,用戶能立刻找出問題和不可接受的地方,并與開發(fā)者重新定義需求。該過程一直持續(xù)到用戶認(rèn)為該原型能成功地體現(xiàn)想象中的系統(tǒng)的主要部分功能為止。在這期間,用戶和開發(fā)者都不要為程序算法或設(shè)計(jì)技巧等枝節(jié)問題分心,而是要確定開發(fā)者是否理解了用戶的意思,同時(shí)試驗(yàn)實(shí)現(xiàn)它們的若干方法。,50,軟件項(xiàng)目管理 CH01 選擇過

20、程 郭建東,原型模型特征,原型特征 軟件原型是軟件的最初版本,以最少的費(fèi)用、最短的時(shí)間開發(fā)出的、以反映最后軟件的主要特征的系統(tǒng)。它具有以下特征: (1)它是一個(gè)可實(shí)際運(yùn)行的系統(tǒng)。,51,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型特征,(2)它沒有固定的生存期。一種極端是扔掉原型(以最簡便方式大量借用已有軟件,做出最后產(chǎn)品的模型,證實(shí)產(chǎn)品設(shè)想是成功的,但產(chǎn)品中并不使用);另一種極端是最終產(chǎn)品的一部分即增量原型(先做出最終產(chǎn)品的核心部分,逐步增加補(bǔ)充模塊),演進(jìn)原型居于其中(每一版本扔掉一點(diǎn),增加一點(diǎn),逐步完善至最終產(chǎn)品)。,52,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型特征,(

21、3)從需求分析到最終產(chǎn)品都可作原型,即可為不同目標(biāo)作原型。 (4)它必須快速、廉價(jià)。 (5)它是迭代過程的集成部分,即每次經(jīng)用戶評價(jià)后修改、運(yùn)行,不斷重復(fù)雙方認(rèn)可。,53,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,原型模型評價(jià),原型法的評價(jià) 優(yōu)點(diǎn) 1.原型法在得到良好的需求定義上比傳統(tǒng)生存周期法好得多,可處理模糊需求,開發(fā)者和用戶可充分通信。 2.原型系統(tǒng)可作為培訓(xùn)環(huán)境,有利于用戶培訓(xùn)和開發(fā)同步,開發(fā)過程也是學(xué)習(xí)過程。 3.原型給用戶以機(jī)會更改心中原先設(shè)想的、不盡合理的最終系統(tǒng)。 4.原型可低風(fēng)險(xiǎn)開發(fā)柔性較大的計(jì)算機(jī)系統(tǒng)。 5.原型增加使系統(tǒng)更易維護(hù)、對用戶更友好的機(jī)會。 6.原型使總的開發(fā)費(fèi)

22、用降低,時(shí)間縮短。,54,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,缺點(diǎn) 1.“模型效應(yīng)”或“管中窺豹”。對于開發(fā)者不熟悉的領(lǐng)域把次要部分當(dāng)作主要框架,做出不切題的原型。 2.原型迭代不收斂于開發(fā)者預(yù)先的目標(biāo)。即每次更改,為了消除錯(cuò)誤,次要部分越來越大,“淹沒”了主要部分。 3.原型過快收斂于需求集合,而忽略了一些基本點(diǎn)。 4.資源規(guī)劃和管理較為困難,隨時(shí)更新文檔也帶來麻煩。 5.長期在原型環(huán)境上開發(fā),只注意得到滿意的原型,容易“遺忘”用戶環(huán)境和原型環(huán)境的差異。,原型模型評價(jià),55,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,適用范圍:原型開發(fā)可以應(yīng)用于軟件生存周期的不同階段,也可以替代生存期的

23、部分或全部階段,具體可以用于以下領(lǐng)域: 1.輔助分析和確定用戶需求的任務(wù)。 2.作為軟件設(shè)計(jì)的一種工具。例如:研究系統(tǒng)設(shè)計(jì)的可行性和適應(yīng)性。 3.作為一種解決不確定性的工具。例如:研究一種新技術(shù)的效果,逐步使其適應(yīng)預(yù)定的環(huán)境。 4.作為一種實(shí)驗(yàn)工具。 5.充作同步培訓(xùn)工具。 6.“一次性”的應(yīng)用。例如寫一個(gè)能運(yùn)行的程序,一旦得到答案,該程序?qū)⒉辉偈褂谩?7.作為軟件維護(hù)的輔助工具。特別是在用戶需求不穩(wěn)定,維護(hù)工作量很大的情況下,要求大量的重新設(shè)計(jì)工作。,原型模型評價(jià),56,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,增量模型,融合了瀑布模型的基本成分和原型的迭代特征。采用隨著日程時(shí)間的進(jìn)展而交錯(cuò)

24、的線性序列。,57,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,增量模型(Cont.),需求分析,驗(yàn)證,規(guī)格說明,驗(yàn)證,設(shè)計(jì),驗(yàn)證,維護(hù),針對每個(gè)構(gòu)件完成詳細(xì)設(shè)計(jì)、編碼和集成,經(jīng)測試后交付給用戶,58,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,增量模型 (Cont.),分析,分析,分析,分析,設(shè)計(jì),設(shè)計(jì),設(shè)計(jì),設(shè)計(jì),編碼,編碼,編碼,編碼,測試,測試,測試,測試,增量1,增量2,增量3,增量4,59,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,增量模型 (Cont.),增量模型融合了瀑布模型的基本成分和原型 的迭代特性。 例如,使用增量模型開發(fā)字處理軟件 基本的文件管理、編輯和文檔生成功能。 更完

25、善的編輯和文檔生成能力。 實(shí)現(xiàn)拼寫和文法檢查功能。 完成高級的頁面布局功能。,60,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,增量模型 (Cont.),第一個(gè)增量往往是核心產(chǎn)品 每一個(gè)增量均發(fā)布一個(gè)可操作產(chǎn)品 早期的增量是最終產(chǎn)品的“可拆卸”版本,61,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)過程模型,噴泉模型 噴泉模型認(rèn)為軟件生命周期的各個(gè)階段是相互重疊和多次反復(fù)的。 主要用于面向?qū)ο蠓椒ㄖ?62,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)過程模型螺旋模型,在原型基礎(chǔ)上,進(jìn)行多次原型反復(fù)并增加風(fēng)險(xiǎn)評估,形成螺旋模型。,63,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)

26、過程模型螺旋模型,64,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)過程模型螺旋模型,65,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,螺旋模型分析 在螺旋模型結(jié)構(gòu)中,維護(hù)只是螺旋模型的另一個(gè)周期,在維護(hù)和開發(fā)之間本質(zhì)上并沒有區(qū)別,從而解決了做太多測試或未作足夠測試所帶來的風(fēng)險(xiǎn)。 適用條件 內(nèi)部的大規(guī)模軟件的開發(fā),不太適合合同軟件。 一般只適用于大規(guī)模軟件的開發(fā),軟件開發(fā)過程模型螺旋模型,66,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,迭代模型,建立在Barry Boehm 的螺旋模型基礎(chǔ)上的。,67,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,迭代模型(Cont.),68,軟件項(xiàng)目管理 C

27、H01 選擇過程 郭建東,迭代模型(Cont.),Each iteration results in an executable release.,69,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,70,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,Time,Risk,Waterfall Risk,Risk Profiles,71,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,特點(diǎn),這種方法可以在生命周期早期強(qiáng)制性的確定項(xiàng)目中存在的風(fēng)險(xiǎn)。 這種方法是一個(gè)連續(xù)地發(fā)現(xiàn)、創(chuàng)造和實(shí)現(xiàn)的過程。 在每個(gè)迭代過程中,促使開發(fā)小組以一種循環(huán)的、可預(yù)測的方式驅(qū)動(dòng)項(xiàng)目制品的生產(chǎn)和制作。,72,軟件項(xiàng)目管理 CH01 選擇過

28、程 郭建東,提供解決方案:,在生命周期的早期,這種方法可以及時(shí)地發(fā)現(xiàn)一些嚴(yán)重的需求理解錯(cuò)誤,此時(shí)還可能修正這些錯(cuò)誤。 允許并鼓勵(lì)用戶反饋信息,以明確系統(tǒng)的真實(shí)需求。 這種方法使開發(fā)小組重視項(xiàng)目中最關(guān)鍵的問題,而屏蔽掉那些使他們遠(yuǎn)離項(xiàng)目真實(shí)風(fēng)險(xiǎn)的問題。 不斷地迭代測試能夠給出項(xiàng)目狀況的客觀評價(jià)。,73,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,提供解決方案: (Cont.),盡早地發(fā)現(xiàn)需求、設(shè)計(jì)和實(shí)現(xiàn)中的不一致。 在整個(gè)項(xiàng)目生命周期中更加平均地分配開發(fā)組的工作量,特別是測試小組的工作量。 開發(fā)組可以不斷打在開發(fā)中進(jìn)行學(xué)習(xí)從而改進(jìn)過程。 在整個(gè)生命周期中,項(xiàng)目相關(guān)人員可以通過具體證據(jù)了解項(xiàng)目狀況。

29、,74,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,Review: 軟件過程模型,瀑布模型 原型模型 增量模型 螺旋模型 迭代模型,75,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,軟件開發(fā)問題的癥狀,對于最終用戶的需要理解得不夠精確 對需求的改變束手無策 程序塊不兼容 軟件不易維護(hù)或不易擴(kuò)展 對項(xiàng)目嚴(yán)重缺陷的發(fā)現(xiàn)較晚 軟件質(zhì)量低劣 軟件性能令人無法接受 開發(fā)組的人員按各自的方式進(jìn)行開發(fā),如果有人改變可部分軟件,將很難進(jìn)行重組 一個(gè)不可靠的構(gòu)造和發(fā)布過程,76,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,失敗原因,特別的需求管理 模糊和不精確的交流 脆弱的構(gòu)架 過度復(fù)雜 未檢測出需求、設(shè)計(jì)和實(shí)現(xiàn)之間

30、的不一致 測試的不足 對于項(xiàng)目狀況的評估過于主觀 未解決存在的風(fēng)險(xiǎn) 無法控制變化的產(chǎn)生和傳播 自動(dòng)控制不足,77,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP,RUPRational Unified Process,78,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP,現(xiàn)在軟件產(chǎn)業(yè)界普遍認(rèn)為,開發(fā)復(fù)雜軟件項(xiàng)目必須采用基于UML的、以構(gòu)架為中心、用例驅(qū)動(dòng)與風(fēng)險(xiǎn)驅(qū)動(dòng)相結(jié)合的迭代式增量開發(fā)過程,他是世界公認(rèn)的開發(fā)復(fù)雜軟件項(xiàng)目的最好過程,已經(jīng)成為軟件界的“圣經(jīng)”。這一開發(fā)過程目前已經(jīng)穩(wěn)定、成熟。 這就是:,79,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,Rational Unified Proc

31、essRUP,Rational 統(tǒng)一過程是由Rational 軟件公司開發(fā)和營銷的一種軟件工程過程,是開發(fā)組織用以分配與管理任務(wù)和職責(zé)的一種規(guī)范化方法。這個(gè)過程的目的是在預(yù)定的進(jìn)度和預(yù)算范圍內(nèi),開發(fā)出滿足最終用戶需要的高質(zhì)量軟件。,80,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP捕獲的6項(xiàng)最佳商業(yè)實(shí)踐,被證明是解決軟件開發(fā)過程中根本問題的方法,81,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,最佳軟件開發(fā)實(shí)踐 Best Practices,迭代地開發(fā)軟件 Develop Iteratively 管理需求 Manage Requirements 應(yīng)用基于構(gòu)件的構(gòu)架 Use Component

32、 Architectures 為軟件建立可視化的模型 Model Visually (UML) 不斷地驗(yàn)證軟件質(zhì)量 Continuously Verify Quality 控制軟件的變更 Manage Change,82,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的目標(biāo),按照預(yù)先制定的時(shí)間計(jì)劃和經(jīng)費(fèi)預(yù)算,開發(fā)出高質(zhì)量的軟件產(chǎn)品以滿足最終用戶的需求,83,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP是什么?,是一種軟件工程過程 是一個(gè)過程產(chǎn)品 有自己的過程框架 捕獲了現(xiàn)代軟件開發(fā)中的最佳實(shí)踐,84,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的三大特點(diǎn),用例驅(qū)動(dòng) 以架構(gòu)為中心 迭代

33、和增量開發(fā),85,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,用例驅(qū)動(dòng),用Use Case作為劃分問題的組織單元,分析和設(shè)計(jì)活動(dòng)的局部粒度都遵循這一劃分原則。Use Case的定義反映可系統(tǒng)外部要素根據(jù)特定目標(biāo)使用擬建系統(tǒng)的狀況,能確保問題的局部劃分粒度適當(dāng),保持了全局與局部的平衡。,86,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,87,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的整體架構(gòu),88,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的迭代模型,89,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的關(guān)鍵概念,90,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP,RUP將這些最

34、佳實(shí)踐活動(dòng)以一種適當(dāng)?shù)男问浇Y(jié)合起來,從而適應(yīng)了廣泛的項(xiàng)目和開發(fā)組織。,RUP 是一個(gè)過程產(chǎn)品(process product)。Rational (IBM) 軟件公司開發(fā)并維護(hù)著這個(gè)產(chǎn)品,并將其與Rational 軟件公司自己的一系列軟件開發(fā)工具集成。,91,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP,RUP 有自己的過程框架 (process framework), 這個(gè)框架可以被改造和擴(kuò)展以適應(yīng)采納此方法的組織。,軟件過程也是軟件 設(shè)計(jì)、開發(fā)、交付和維護(hù),92,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP 簡要?dú)v史,RUP 2000,RUP 5.5,RUP 5.0,ROP 4.1

35、,ROP 4.0,Rational 方法,Objective 過程3.8,2000 1999 1998 1997 1996 1995,實(shí)時(shí),ROOM,業(yè)務(wù)工程,配置和,變更管理,需求學(xué)院,Booch 方法,OMT,UML 0.8,SQA 過程,UML 1.1,數(shù)據(jù)工程,UI 設(shè)計(jì),UML 1.2,基于WEB的開發(fā),UML1.3,93,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,誰在使用RUP?,電信業(yè) Ericsson、Alcatel、MCI 交通、航空、國防 Lockheed-Martin、British Aerospace 制造業(yè) Xerox、Volvo、Intel 金融業(yè) Visa、Mer

36、rill Lynch、Schwab 系統(tǒng)集成業(yè) Ernst & Young、Oracle、Deloitte & Touche,94,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP,RUP核心是解決可操作性問題,幫助開發(fā)人員盡可能少地依賴那些“不可描述的經(jīng)驗(yàn)”。他詳細(xì)給出了每個(gè)階段參與該過程的各種焦色,然后表示在過程中,該角色創(chuàng)建的制品。,95,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,Rational Unified Process 的主要工件,及這些工件間的信息流,96,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,97,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,98,軟件項(xiàng)目管理 CH01

37、選擇過程 郭建東,99,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,100,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,101,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,102,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,增量和迭代開發(fā),基于風(fēng)險(xiǎn)前驅(qū)的原則,漸進(jìn)地展開分析、設(shè)計(jì)及其相關(guān)活動(dòng),每個(gè)迭代都會提供一次驗(yàn)證和調(diào)整模型機(jī)會,推動(dòng)軟件質(zhì)量的提升。,103,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP 二維過程結(jié)構(gòu),沿時(shí)間軸的組織結(jié)構(gòu),沿內(nèi)容軸的組織結(jié)構(gòu),104,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的生命開發(fā)周期,105,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的生命開發(fā)周

38、期,106,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的生命開發(fā)周期,107,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP的生命開發(fā)周期,108,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,主要困難,多層次持續(xù)的規(guī)劃與評估 判斷架構(gòu)中關(guān)鍵風(fēng)險(xiǎn)的經(jīng)驗(yàn) 高效率的驗(yàn)證和評價(jià)手段 多工種之間的頻繁溝通 多版本工作產(chǎn)品的管理,109,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,基礎(chǔ)保障,核心人員必要的管理與技術(shù)經(jīng)驗(yàn) 自動(dòng)化的驗(yàn)證和評價(jià)工具 團(tuán)隊(duì)成員之間有高效的溝通工具 軟件配置與變更管理工具,110,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,RUP 的裁減,RUP 僅僅是一個(gè)通用的過程框架,需要根

39、據(jù)實(shí)際情況裁減。,111,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,A Process is not Enough to Build a System,112,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,XP,XP(Extreme Programming),它是由Kent Beck大師提出的。大師在經(jīng)歷傳統(tǒng)軟件開發(fā)的痛苦之后,希望能夠找到一種優(yōu)秀的軟件開發(fā)方法。大師總結(jié)了大量的軟件的成功和失敗的因素之后,提出了改進(jìn)軟件開發(fā)方法的四個(gè)要素:溝通(communication)、簡單化(simplicity)、反饋(feedback)、勇氣(courage)。這形成了XP的核心價(jià)值觀。在經(jīng)歷了數(shù)年的發(fā)展,XP在軟件開發(fā)的各方面都發(fā)展出了眾多的方法來支持軟件開發(fā)。,113,軟件項(xiàng)目管理 CH01 選擇過程 郭建東,

溫馨提示

  • 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

提交評論