軟件工程概論 6- 統(tǒng)一過程與敏捷過程學(xué)習(xí)課件_第1頁
軟件工程概論 6- 統(tǒng)一過程與敏捷過程學(xué)習(xí)課件_第2頁
軟件工程概論 6- 統(tǒng)一過程與敏捷過程學(xué)習(xí)課件_第3頁
軟件工程概論 6- 統(tǒng)一過程與敏捷過程學(xué)習(xí)課件_第4頁
軟件工程概論 6- 統(tǒng)一過程與敏捷過程學(xué)習(xí)課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

哈爾濱工業(yè)大學(xué)軟件學(xué)院第6章統(tǒng)一過程與敏捷過程楊大易2015/12/30本章內(nèi)容6.1統(tǒng)一過程6.2敏捷過程6.3極限編程6.4Scrum6.5本章小結(jié)6.6思考問題哈爾濱工業(yè)大學(xué)軟件學(xué)院16.1統(tǒng)一過程

軟件開發(fā)方法的演進(jìn)哈爾濱工業(yè)大學(xué)軟件學(xué)院26.1統(tǒng)一過程

RUP過程的二維表示

橫軸表示時間:劃分為階段和迭代

縱軸表示過程組件:開發(fā)各階段的任務(wù)

時間軸:4個順序階段

初始階段(Inception)

細(xì)化階段(Elaboration)

構(gòu)造階段(Construction)

交付階段(Transition)

每個階段又分為若干個迭代(Iteration)哈爾濱工業(yè)大學(xué)軟件學(xué)院36.1統(tǒng)一過程

過程組件軸:9個工作流

核心過程工作流??????業(yè)務(wù)建模(BusinessModeling)需求(Requirement)分析與設(shè)計(jì)(Analysis&Design)實(shí)現(xiàn)(Implementation)測試(Test)部署(Deployment)

核心支持工作流?項(xiàng)目管理(ProjectManagement)?配置和變更管理(ConfigurationandChangeManagement)?環(huán)境(Environment)哈爾濱工業(yè)大學(xué)軟件學(xué)院46.1統(tǒng)一過程

統(tǒng)一過程(RUP:RationalUnifiedProcess)哈爾濱工業(yè)大學(xué)軟件學(xué)院56.1統(tǒng)一過程

統(tǒng)一過程提供了在開發(fā)組織中分派任務(wù)和責(zé)任的紀(jì)律化方法;

統(tǒng)一過程目標(biāo)是在可預(yù)見的日程和預(yù)算前提下,確保滿足最終用戶需求的高質(zhì)量產(chǎn)品;

統(tǒng)一過程模型是一種用例驅(qū)動,以體系結(jié)構(gòu)為核心,迭代及增量的軟件過程框架,由UML方法和工具支持。統(tǒng)一過程模型與瀑布模型、原型模型和增量模型等相比有哪些差異?哈爾濱工業(yè)大學(xué)軟件學(xué)院66.2敏捷過程

提出敏捷過程的背景

許多公司軟件團(tuán)隊(duì)陷入了不斷增長的過程泥潭

為矯正某些官僚煩瑣的軟件過程

2001年2月,17個方法學(xué)家達(dá)成一致并發(fā)起成立敏捷軟件開發(fā)聯(lián)盟

軟件開發(fā)宣言

軟件團(tuán)隊(duì)具有快速工作、快速響應(yīng)變化的能力

4條基本價(jià)值觀+12條原則哈爾濱工業(yè)大學(xué)軟件學(xué)院76.2敏捷過程

敏捷宣言的價(jià)值觀敏捷軟件開發(fā)宣言我們正在通過親身實(shí)踐以及幫助他人實(shí)踐,揭示更好的軟件開發(fā)方法。通過這項(xiàng)工作,我們認(rèn)為:個體和交互可以工作的軟件客戶合作響應(yīng)變化勝過勝過勝過勝過過程和工具面面俱到的文檔合同談判遵循計(jì)劃雖然右項(xiàng)也具有價(jià)值,但我們認(rèn)為左項(xiàng)具有更大的價(jià)值。KentBeckMikeBeedleArieVanBennekumAlistairCockburnWardCunninghamMartinFowlerJamesGrenningJimHighsmithAndrewHuntRonJeffriesJonKernBrianMarickRobertC.MartinSteveMellorKenSchwaberJeffSutherlandDaveThomas哈爾濱工業(yè)大學(xué)軟件學(xué)院86.2敏捷過程(1)個體和交互勝過過程和工具

人是軟件項(xiàng)目獲得成功最為重要的因素;

合作、溝通以及交互能力要比單純的軟件編程能力更為重要。(2)可以工作的軟件勝過面面俱到的文檔

軟件開發(fā)的主要目標(biāo):交付給用戶可以工作的軟件而不是文檔;

軟件開發(fā)的主要和中心活動是創(chuàng)建可以工作的軟件,直到迫切需要并且意義重大時,才進(jìn)行文檔編制。哈爾濱工業(yè)大學(xué)軟件學(xué)院96.2敏捷過程(3)客戶合作勝過合同談判

客戶不可能做到一次性地將他們的需求完整清晰地表述在合同當(dāng)中;

開發(fā)團(tuán)隊(duì)與客戶緊密協(xié)作,為開發(fā)團(tuán)隊(duì)和客戶的協(xié)同工作方式提供指導(dǎo)的合同是最好的合同。(4)響應(yīng)變化勝過遵循計(jì)劃

變化是軟件開發(fā)中存在的現(xiàn)實(shí);

響應(yīng)變化的有效途徑之一是制定靈活可塑的計(jì)劃。敏捷過程中的哪些做法與傳統(tǒng)軟件工程觀念不同?哈爾濱工業(yè)大學(xué)軟件學(xué)院106.2敏捷過程

敏捷開發(fā)的12條原則(1)最優(yōu)先要做的是通過盡早的、持續(xù)的交付有價(jià)值的軟件來使客戶滿意;(2)即使到了開發(fā)的后期,也歡迎改變需求,敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢;(3)經(jīng)常性交付可以工作的軟件,交付的間隔可以從幾個星期到幾個月,交付的時間間隔越短越好;(4)在整個項(xiàng)目開發(fā)期間,商務(wù)人員和開發(fā)人員必須天天都工作在一起;(5)圍繞被激勵起來的個體來構(gòu)建項(xiàng)目,給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作;哈爾濱工業(yè)大學(xué)軟件學(xué)院116.2敏捷過程(6)在團(tuán)隊(duì)內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對面的交談;(7)工作的軟件是首要的進(jìn)度度量標(biāo)準(zhǔn);(8)敏捷過程提倡可持續(xù)的開發(fā)速度,責(zé)任人、開發(fā)者和用戶應(yīng)該能夠保持一個長期的、恒定的開發(fā)速度;(9)不斷關(guān)注優(yōu)秀設(shè)計(jì)技能和好的設(shè)計(jì)會增強(qiáng)敏捷能力;(10)簡單:使未完成的工作最大化的藝術(shù)是根本的;(11)最好的構(gòu)架、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì);(12)每隔一定時間,團(tuán)隊(duì)會在如何才能更有效地工作方面進(jìn)行反省,然后相應(yīng)地對自己的行為進(jìn)行調(diào)整。哈爾濱工業(yè)大學(xué)軟件學(xué)院126.2敏捷過程

統(tǒng)一過程與敏捷過程

統(tǒng)一過程:提供的是理想開發(fā)環(huán)境下軟件過程的一種完整且完美的模式。

敏捷過程:針對商業(yè)環(huán)境下通常具有有限資源和有限時間約束的小型項(xiàng)目提出了一些獨(dú)具特色的、操作性較強(qiáng)的解決方案。

敏捷過程在人員、方法、產(chǎn)品等方面的論述遠(yuǎn)不及統(tǒng)一過程全面詳細(xì)。

敏捷過程可作為對統(tǒng)一過程的補(bǔ)充和完善。哈爾濱工業(yè)大學(xué)軟件學(xué)院136.3極限編程

極限編程(XP:ExtremeProgramming)

一個輕量級的、靈巧的敏捷開發(fā)方法;

大部分實(shí)踐與敏捷過程的價(jià)值觀和原則一致,并對敏捷過程進(jìn)一步發(fā)展和補(bǔ)充,如結(jié)對編程、隱喻等。

極限編程過程哈爾濱工業(yè)大學(xué)軟件學(xué)院146.3極限編程

極限編程的四個價(jià)值目標(biāo)

溝通:敏捷方法采用了一些實(shí)踐來強(qiáng)制溝通,如結(jié)對編程、策劃游戲、驗(yàn)收測試等;

簡單:今天做的簡單一些,然后明天需要時再花些時間進(jìn)行改進(jìn),比今天做的復(fù)雜但以后再也用不到要好。

反饋:加強(qiáng)與用戶的反饋,反饋越多,溝通越容易。

勇氣:快速的進(jìn)入開發(fā)階段,并在必要時果斷對系統(tǒng)進(jìn)行重構(gòu)。哈爾濱工業(yè)大學(xué)軟件學(xué)院156.3極限編程

極限編程的實(shí)踐要點(diǎn)(1)結(jié)對編程:由兩個開發(fā)人員在同一臺電腦上共同編寫解決同一問題的代碼,通常一個人負(fù)責(zé)編碼,而另一個負(fù)責(zé)保證代碼的正確性與可讀性;(2)客戶作為團(tuán)隊(duì)成員:要求至少有一名實(shí)際的客戶代表在整個項(xiàng)目開發(fā)周期和團(tuán)隊(duì)開發(fā)人員在一起緊密地工作;(3)短交付周期:每兩周交付一次可以工作的軟件;(4)測試驅(qū)動開發(fā):在編碼開始之前,首先將測試寫好,而后再進(jìn)行編碼,直至所有測試都得以通過;(5)集體所有權(quán):開發(fā)小組的每個成員都有更改代碼的權(quán)利,所有的人對于全部代碼負(fù)責(zé);哈爾濱工業(yè)大學(xué)軟件學(xué)院166.3極限編程(6)可持續(xù)的開發(fā)速度:開發(fā)人員每周工作時間不超過40小時,加班不得連續(xù)超過兩周,否則反而會影響生產(chǎn)率;(7)開放的工作空間:項(xiàng)目的所有參與者(開發(fā)人員、測試人員、客戶等)一起工作在一個開放的場所中;(8)簡單的設(shè)計(jì):設(shè)計(jì)恰好與計(jì)劃在本次迭代中要完成的用戶素材相匹配,不考慮未來的用戶素材;(9)重構(gòu):重新調(diào)整、優(yōu)化系統(tǒng)結(jié)構(gòu)以減少復(fù)雜性、消除冗余、增加靈活性和提高性能;(10)隱喻:整個系統(tǒng)聯(lián)系在一起的全局視圖、系統(tǒng)的未來影像,描述系統(tǒng)如何運(yùn)作、新的功能以何種方式加入到系統(tǒng)。哈爾濱工業(yè)大學(xué)軟件學(xué)院176.4Scrum

Scrum基本假設(shè)

開發(fā)軟件就像是開發(fā)新產(chǎn)品,無法一開始就能定義最終產(chǎn)品的規(guī)程,過程中需要研發(fā)、創(chuàng)意、嘗試錯誤,所以沒有一種固定的流程可以保證項(xiàng)目成功。

Scrum將軟件開發(fā)團(tuán)隊(duì)比擬成橄欖球隊(duì)

有明確的最高目標(biāo)

熟悉開發(fā)流程中所需具備的最佳典范與技術(shù)

具有高度自主權(quán),緊密地溝通合作

以高度彈性解決各種挑戰(zhàn)

確保每天、每個階段都朝向目標(biāo)有明確的推進(jìn)哈爾濱工業(yè)大學(xué)軟件學(xué)院186.4Scrum

Scrum團(tuán)隊(duì)

7人組成。團(tuán)隊(duì)不止是一個程序員隊(duì)伍,它由各種背景下的不同角色組合而成,包括商業(yè)分析者,設(shè)計(jì)師,程序員和測試者等。

ProductOwner:負(fù)責(zé)最大化項(xiàng)目投資回報(bào)。領(lǐng)導(dǎo)團(tuán)隊(duì)估算ProductBacklog,對UserStories/requirements具有最終的權(quán)力。

ScrumMaster:幫助ProductOwner選擇最優(yōu)價(jià)值的ProductBacklog,確保Scrum實(shí)踐得到執(zhí)行,最大化團(tuán)隊(duì)的生產(chǎn)率。哈爾濱工業(yè)大學(xué)軟件學(xué)院196.4Scrum

Scrum過程哈爾濱工業(yè)大學(xué)軟件學(xué)院206.4Scrum

Scrum任務(wù)劃分

ProductBacklog:具有優(yōu)先級的需求列表,并對每個需求進(jìn)行了粗略的估算。ProductBacklog是不斷完善優(yōu)化的。

SprintBacklog:細(xì)化高優(yōu)先級任務(wù),任務(wù)分解不超過16小時。哈爾濱工業(yè)大學(xué)軟件學(xué)院216.4Scrum

Sprint策劃會議

限時8小時,分成2部分,各4個小時

第一部分,挑選ProdectBacklog

第二部分,準(zhǔn)備SprintBacklog

產(chǎn)品負(fù)責(zé)人要提前在會議前準(zhǔn)備好產(chǎn)品Backlog

團(tuán)隊(duì)可提出建議,但是由ProductOwner制定ProductBacklog

團(tuán)隊(duì)負(fù)責(zé)從Productowner制定的ProductBacklog中挑選出期望在當(dāng)前Sprint內(nèi)完成的工作哈爾濱工業(yè)大學(xué)軟件學(xué)院226.4Scrum

Sprint策劃會議:第一部分

挑選增量ProductBacklog

確定ProductBacklog的工作量和優(yōu)先級

成員一致認(rèn)可Sprint目標(biāo)和ProductBacklog

Sprint策劃會議:第二部分

團(tuán)隊(duì)成員將選定ProductBacklog細(xì)分

制定SprintBacklog,包括任務(wù)、任務(wù)估計(jì)、任務(wù)分工哈爾濱工業(yè)大學(xué)軟件學(xué)院236.4Scrum

Sprint運(yùn)行

Sprint周期內(nèi)開發(fā)可交付的產(chǎn)品

Sprint內(nèi)包括設(shè)計(jì)、編碼、測試、編寫文檔等工作

在Sprint期間其他人不可向團(tuán)隊(duì)下達(dá)通知、指令、評論和方向指示,團(tuán)隊(duì)完全進(jìn)行自我管理

一旦Sprint開始了,只能由Scrum團(tuán)隊(duì)增加或刪除SprintBacklog中的任務(wù)

團(tuán)隊(duì)成員每日參加Scrum會議哈爾濱工業(yè)大學(xué)軟件學(xué)院246.4Scrum

每日Scrum會議

限時15分鐘

每日早晨,同一地點(diǎn)

站立會議

所有成員必須參加

成員必須準(zhǔn)時,否則懲罰

每個人給全體成員匯報(bào)工作進(jìn)展

同步進(jìn)展而不是解決問題哈爾濱工業(yè)大學(xué)軟件學(xué)院256.4Scrum

Scrum看板哈爾濱工業(yè)大學(xué)軟件學(xué)院266.4Scrum

燃盡圖哈爾濱工業(yè)大學(xué)軟件學(xué)院276.4Scrum

Sprint評審

限時4小時

團(tuán)隊(duì)向ProductOwner及其他利益相關(guān)者展示本次sprint完成的功能

不展示未完成的功能,不展示技術(shù)文檔

演示結(jié)束后調(diào)查利益相關(guān)者意見,記錄他們的意見、期望的變更等

基于反饋調(diào)整Backlog

可以在Sprint結(jié)束后確定是否還要繼續(xù)本產(chǎn)品的開發(fā)

不需要用ppt哈爾濱工業(yè)大學(xué)軟件學(xué)院286.4Scrum

Sprint回顧

限定在

溫馨提示

  • 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

提交評論