敏捷開發(fā)介紹.ppt_第1頁
敏捷開發(fā)介紹.ppt_第2頁
敏捷開發(fā)介紹.ppt_第3頁
敏捷開發(fā)介紹.ppt_第4頁
敏捷開發(fā)介紹.ppt_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、敏捷開發(fā)介紹-SCRUM,張華 2010-08-25,目錄,敏捷開發(fā)歷史 軟件開發(fā)模式介紹 軟件生命周期模式 敏捷開發(fā)介紹 敏捷開發(fā)-SCRUM名詞解釋 敏捷開發(fā)-實施Scrum的過程介紹 敏捷開發(fā)-原則和方法 敏捷開發(fā)-宣言 推薦書籍及后期應(yīng)用,敏捷開發(fā)歷史,敏捷開發(fā)并不現(xiàn)代 起源于20世紀(jì)30年代的一些項目(美國航天局水星計劃) 最早記載使用在20世紀(jì)70年代 最早的有記載的使用迭代和增量開發(fā)的主要項目之一,是為第一艘美國三叉戟潛艇開發(fā)的第一指揮和控制系統(tǒng)。該項目有大約一百萬行代碼,進(jìn)行得非常成功。 在1976年,第一部闡述敏捷方法的書籍 Tom Gilb在他的著作軟件度量(“Softwa

2、re Metrics”)一書中闡述了他的迭代和增量開發(fā)實踐 20世紀(jì)80年代正式定義迭代開發(fā)螺旋模型 20世紀(jì)80年代在1895年,巴里貝母(Barry Boehm)正式定義了使用迭代開發(fā)的螺旋模型,敏捷開發(fā)歷史,美國國防部的項目審查早期使用瀑布模式開發(fā)的軟件項目,有75%以失敗告終,有些開發(fā)出來的產(chǎn)品根本沒有被使用過,只有2%的軟件產(chǎn)品無需大量修改就能被正常使用。 20世紀(jì)90年代推薦使用迭代和增量開發(fā)的出版物和文獻(xiàn)顯著增加 2001年二月敏捷開發(fā)宣言后形成敏捷聯(lián)盟 一組由17位在DSDM,XP,Scrum,F(xiàn)SD等領(lǐng)域的專家組成的代表團(tuán)齊聚美國猶他州,尋找這些方法的共同點。最終,這些專家制

3、定并宣布了敏捷開發(fā)宣言。由此形成了現(xiàn)在我們所認(rèn)識的敏捷開發(fā)和后來的敏捷聯(lián)盟,軟件開發(fā)模式介紹,軟件生命周期 -同任何事物一樣,一個軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育、誕生、成長、成熟、 -衰亡等階段,這一般稱為軟件生命周期。 -軟件開發(fā)生命周期(SDLC)是指軟件開發(fā)的全部過程、活動和任務(wù)的結(jié)構(gòu)框架。 SDLC的一般步驟包括:確定問題、可行性分析與開發(fā)計劃、收集需求、分析與設(shè)計、編碼開發(fā)、測試、安裝、維護(hù)。 軟件生命周期模式 典型的幾種生命周期模式包括:瀑布模式、演化模式、螺旋模式、快速原型模式、噴泉模式和混合模式等。在這里只介紹其中最常用的幾種模式:,軟件生命周期模式,瀑布式 它首先是由Royc

4、e提出,該模式由于酷似瀑布聞名。在該模式中首先確定需求,然后擬定規(guī)格說明,在通過驗證后方可進(jìn)入計劃階段。因此,瀑布模式中至關(guān)重要的一點是只有當(dāng)一個階段的文檔獲得認(rèn)可才可以進(jìn)入下一個階段。瀑布模式通過強制性規(guī)約來確保每個階段都能很好的完成任務(wù),但是實際上卻往往難以辦到。因為整個瀑布模式幾乎都是以文檔驅(qū)動的,這對于非專業(yè)的用戶來說是難以閱讀和理解的。雖然瀑布模式有很多很好的思想可以借鑒,但是在過程能力上有天生的缺陷。 演化模式 它主要是針對事先不能完整定義需求的軟件開發(fā)。它的方法是用戶先給出待開發(fā)系統(tǒng)的核心需求,并且在核心需求實現(xiàn)后,再提出反饋以支持系統(tǒng)的最終設(shè)計和實現(xiàn)。也就是說:開發(fā)人員首先會根

5、據(jù)用戶的需求開發(fā)核心系統(tǒng),然后提供給用戶試用;用戶試用后再提出增強系統(tǒng)能力的需求;最后開發(fā)人員再根據(jù)用戶的反饋,實施迭代開發(fā)。實際上,這個模式可看作是重復(fù)執(zhí)行的多個瀑布模式。演化模式要求開發(fā)人員把項目的產(chǎn)品需求分解為不同組,以便分批循環(huán)開發(fā)。但這種分組并不是隨意性的,而是要根據(jù)功能的重要性及對總體設(shè)計的基礎(chǔ)結(jié)構(gòu)的影響而作出判斷。,軟件生命周期模式,螺旋模式: 它是瀑布模式與演化模式相結(jié)合,并加入兩者所忽略的風(fēng)險分析所建立的一種軟件開發(fā)模式。螺旋模式基本的做法是在瀑布模式的每一個開發(fā)階段之前,引入非常嚴(yán)格的風(fēng)險識別、風(fēng)險分析和風(fēng)險控制。直到采取了消除風(fēng)險的措施之后,才開始計劃下一階段的開發(fā)工作。

6、否則,項目就很可能被暫停。另外,如果有充足的把握判斷遺留的風(fēng)險已降低到一定的程度,項目管理人員還可作出決定讓余下的開發(fā)工作采用另外的生命周期模式,如演化模式,瀑布模式或自定的混合模式。 過程開發(fā)模式: 它又叫混合模式或元模式,是指把幾種不同模式組合成一種混合模式,它允許一個項目能沿著最有效的路徑發(fā)展。因為上述的模式中都有自己獨特的思想,現(xiàn)在的軟件開發(fā)團(tuán)隊中很少說標(biāo)準(zhǔn)的采用那一種模式的,因為模式和實際應(yīng)用還是有很大的區(qū)別的。實際上,許多軟件開發(fā)團(tuán)隊都是在使用幾種不同的開發(fā)方法組成他們自己的混合模式。,軟件生命周期模式-總結(jié),最后,我們來總結(jié)一下。螺旋模式是典型的迭代式生命周期模式,而RUP則是近

7、代迭代式生命周期的代表。與螺旋模式相比,RUP將風(fēng)險管理放在更重要的地位。最新的迭代式生命周期模式的代表是模式驅(qū)動架構(gòu)(MDA)和敏捷(Agile)軟件開發(fā)。MDA模式是基于可執(zhí)行規(guī)格說明的思想,是現(xiàn)代轉(zhuǎn)換模式的代表,其核心技術(shù)是組件技術(shù)。而敏捷開發(fā)生命周期的典型代表是XP編程,是把傳統(tǒng)的系統(tǒng)設(shè)計和實現(xiàn)由敏捷軟件開發(fā)過程中的驗收測試、重構(gòu)和測試驅(qū)動所取代;把傳統(tǒng)的集成和部署由敏捷軟件開發(fā)中的持續(xù)集成和短周期所取代。 其實上,無論是瀑布開發(fā)模式還是螺旋開發(fā)模式,軟件生命周期模式的發(fā)展實際上是體現(xiàn)了軟件工程理論的發(fā)展。在最早的時候,軟件的生命周期處于無序、混亂的情況。一些人為了能夠管理和控制軟件的

8、開發(fā)過程,就把軟件開發(fā)嚴(yán)格的區(qū)分為多個不同的階段,并在階段間加上嚴(yán)格的審查,這就是軟件開發(fā)模式產(chǎn)生的起因。它們體現(xiàn)了人們對軟件過程的一個希望:嚴(yán)格控制、確保質(zhì)量。 來源:軟件開發(fā)如何選擇合適的生命周期模式?,敏捷開發(fā)介紹,敏捷開發(fā)(agile development) 是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項目的構(gòu)建被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備集成和可運行的特征。簡言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。 捷開發(fā)由幾種輕量級的軟件開發(fā)方法組成。 它們包括:極限編程(XP),Sc

9、rum,精益開發(fā)(Lean Development),動態(tài)系統(tǒng)開發(fā)方法(DSDM),特征驅(qū)動開發(fā)(Feature Driver Development),水晶開發(fā)(Cristal Clear)等等,敏捷開發(fā)介紹-極限編程XP,主要目的是降低需求變化的成本 定義了一套簡單的開發(fā)流程 包括:編寫用戶案例,架構(gòu)規(guī)范,實施規(guī)劃,迭代計劃,代碼開發(fā),單元測試,驗收測試等等 提倡互動交流、反饋、簡單、勇氣、團(tuán)隊 核心做法: 小規(guī)模,頻繁的版本發(fā)布,短迭代周期。測試驅(qū)動開發(fā)(Test-driven development)。結(jié)對編程(Pair programming)。持續(xù)集成(Continuous int

10、egration)。每日站立會議(Daily stand-up meeting)。共同擁有代碼Collative code ownership.系統(tǒng)隱喻(System metaphor)。,敏捷開發(fā)介紹-精益,精益開發(fā)起源從豐田公司的產(chǎn)品開發(fā)方法中演化而來。它主要包括兩個部分:一部分是核心思想及原則,另外一部分由一些在相應(yīng)的工具構(gòu)成。 核心思想 查明和消除浪費。在軟件開發(fā)過程中,錯誤(bugs),沒用的功能,等待以及其他任何對實現(xiàn)結(jié)果沒有益處的東西都是浪費。浪費及其源頭必須被分析查明,然后設(shè)法消除。 精益開發(fā)的原則包括: 強調(diào)學(xué)習(xí)。不斷改進(jìn)所開發(fā)的產(chǎn)品和開發(fā)效率。 在最后時刻做決定。避免在可能

11、改變的事情上做無謂的努力,避免浪費。 用最快的速度交付用戶。縮短迭代周期加速開發(fā)及交付,加快交流,提高生產(chǎn)力 給團(tuán)隊自主權(quán)。激勵團(tuán)隊并讓團(tuán)隊成員自我管理-敏捷方法成功的基本因素之一。 誠信。確保系統(tǒng)正常工作,客戶需求是團(tuán)隊努力堅持的誠信和對用戶的承諾。 全局觀。精益開發(fā)強調(diào)整體優(yōu)化的系統(tǒng)。無論開發(fā)的組織還是被開發(fā)的產(chǎn)品, 從整體上考慮優(yōu)化比從各個局部去優(yōu)化更高效。 精益軟件更重要的是不斷完善開發(fā)過程的一種思維方式。,敏捷開發(fā)介紹-scrum,SCRUM是一個敏捷開發(fā)框架它由一個開發(fā)過程,幾種角色以及一套規(guī)范的實施方法組成。它可以被運用于軟件開發(fā),項目維護(hù),也可以被用來作為一種管理敏捷項目的框架

12、。 Scrum定義了4種主要的角色: 1、產(chǎn)品擁有者(Product Owner):該角色負(fù)責(zé)產(chǎn)品的遠(yuǎn)景規(guī)劃,平衡所有利益相關(guān)者(stakeholder)的利益,確定不同的產(chǎn)品需求積壓的優(yōu)先級等。它是開發(fā)團(tuán)隊和客戶或最終用戶之間的聯(lián)絡(luò)點。 2、利益相關(guān)者(Stakeholder):該角色與產(chǎn)品之間有直接或間接的利益關(guān)系,通常是客戶或最終用戶代表。他們負(fù)責(zé)收集編寫產(chǎn)品需求,審查項目成果等。 3、Scrum專家(Scrum Master):Scrum專家負(fù)責(zé)指導(dǎo)開發(fā)團(tuán)隊進(jìn)行Scrum開發(fā)與實踐。它也是開發(fā)團(tuán)隊與產(chǎn)品擁有者之間交流的聯(lián)絡(luò)點。 4、團(tuán)隊成員(Team Member):即項目開發(fā)人員。,

13、敏捷開發(fā)-瀑布式開發(fā)對比,敏捷開發(fā)-SCRUM名詞解釋,backlog:可以預(yù)知的所有任務(wù),包括功能性的和非功能性的所有任務(wù)。 sprint:一次跌代開發(fā)的時間周期,一般最多以30天為一個周期。在這段時間內(nèi),開發(fā)團(tuán)隊需要完成一個制定的backlog,并且最終成果是一個增量的,可以交付的產(chǎn)品。 sprint backlog: 一個sprint周期內(nèi)所需要完成的任務(wù)。 scrumMaster:負(fù)責(zé)監(jiān)督整個Scrum進(jìn)程,修訂計劃的一個團(tuán)隊成員。 time-box:一個用于開會時間段。比如每個daily scrum meeting的time-box為15分鐘。,敏捷開發(fā)-SCRUM名詞解釋,spri

14、nt planning meeting: 在啟動每個sprint前召開。一般為一天時間(8小時)。該會議需要制定的任務(wù)是:產(chǎn)品Owner和團(tuán)隊成員將backlog分解成小的功能模塊,決定在即將進(jìn)行的sprint里需要完成多少小功能模塊,確定好這個Product Backlog的任務(wù)優(yōu)先級。另外,該會議還需詳細(xì)地討論如何能夠按照需求完成這些小功能模塊。制定的這些模塊的工作量以小時計算。 Daily Scrum meeting: 開發(fā)團(tuán)隊成員召開,一般為15分鐘。每個開發(fā)成員需要向ScrumMaster匯報三個項目:今天完成了什么?遇到了障礙無法繼續(xù)下去?明天要做什么?通過該會議,團(tuán)隊成員可以相互

15、了解項目進(jìn)度。 Sprint review meeting: 在每個Sprint結(jié)束后,這個Team將這個Sprint的工作成果演示給Product Owner和其他相關(guān)的人員。一般該會議為4小時。Sprint retrospective meeting:對剛結(jié)束的Sprint進(jìn)行總結(jié)。會議的參與人員為團(tuán)隊開發(fā)的內(nèi)部人員。一般該會議為3小時。,敏捷開發(fā)-實施Scrum的過程介紹,敏捷開發(fā)-實施Scrum的過程介紹,確定Sprint Backlog 將整個產(chǎn)品的backlog分解成Sprint Backlog,這個Sprint Backlog是按照目前的人力物力條件可以完成的。 召開sprint

16、 planning meeting 劃分,確定這個Sprint內(nèi)需要完成的任務(wù),標(biāo)注任務(wù)的優(yōu)先級并分配給每個成員。注意這里的任務(wù)是以小時計算的,并不是按人天計算。 sprint開發(fā)周期進(jìn)入sprint開發(fā)周期,在這個周期內(nèi),每天需要召開Daily Scrum meeting。 成果演示 整個sprint周期結(jié)束,召開Sprint review meeting,將成果演示給Product Owner。 回顧團(tuán)隊成員最后召開Sprint retrospective meeting,總結(jié)問題和經(jīng)驗。 下一次Sprint。,敏捷開發(fā),每日會議: 目的:信息同步平臺,非交流問題、討論問題渠道。 形式:固

17、定地點、時間的站立會議。 生產(chǎn)率估算 燃盡線,敏捷開發(fā)原則和方法,迭代式開發(fā)。即整個開發(fā)過程被分為幾個迭代周期,每個迭代周期是一個定長或不定長的時間塊每個迭代周期持續(xù)的時間一般較短,通常為一到六周。 增量交付。產(chǎn)品是在每個迭代周期結(jié)束時被逐步交付使用,而不是在整個開發(fā)過程結(jié)束的時候一次性交付使用。每次交付的都是可以被部署到用戶應(yīng)用環(huán)境中被用戶使用的、能給用戶帶來即時效益和價值的產(chǎn)品。 開發(fā)團(tuán)隊和用戶反饋推動產(chǎn)品開發(fā)。敏捷開發(fā)方法主張用戶能夠全程參與到整個開發(fā)過程中。這使需求變化和用戶反饋能被動態(tài)管理并及時集成到產(chǎn)品中。同時,團(tuán)隊對于用戶的需求也能及時提供反饋意見。 持續(xù)集成。新的功能或需求變化總是盡可能頻繁地被整合到產(chǎn)品中。一些項目是在每個迭代周期結(jié)束的時候集成, 有些項目則每天都在這么做。 開發(fā)團(tuán)隊自我管理。擁有一個積極的、自我管理的、具備自由交流風(fēng)格的開發(fā)團(tuán)隊,是每個敏捷項目必不可少的條件。人是敏捷開發(fā)的核心。敏捷開發(fā)總是以人為中心建立開發(fā)的過程和機制,而非把過程和機制強加給人。,敏捷開發(fā)宣言,極限編程的思想體現(xiàn)了適應(yīng)客戶需求的快速變化,激發(fā)開發(fā)者的熱情,也是目前敏捷開發(fā)思維的重要支持者。2001年,17名編程大師分別

溫馨提示

  • 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

提交評論