




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、敏捷開發(fā)介紹-SCRUM,張華 2010-08-25,目錄,敏捷開發(fā)歷史 軟件開發(fā)模式介紹 軟件生命周期模式 敏捷開發(fā)介紹 敏捷開發(fā)-SCRUM名詞解釋 敏捷開發(fā)-實施Scrum的過程介紹 敏捷開發(fā)-原則和方法 敏捷開發(fā)-宣言 推薦書籍及后期應用,敏捷開發(fā)歷史,敏捷開發(fā)并不現代 起源于20世紀30年代的一些項目(美國航天局水星計劃) 最早記載使用在20世紀70年代 最早的有記載的使用迭代和增量開發(fā)的主要項目之一,是為第一艘美國三叉戟潛艇開發(fā)的第一指揮和控制系統(tǒng)。該項目有大約一百萬行代碼,進行得非常成功。 在1976年,第一部闡述敏捷方法的書籍 Tom Gilb在他的著作軟件度量(“Softwa
2、re Metrics”)一書中闡述了他的迭代和增量開發(fā)實踐 20世紀80年代正式定義迭代開發(fā)螺旋模型 20世紀80年代在1895年,巴里貝母(Barry Boehm)正式定義了使用迭代開發(fā)的螺旋模型,敏捷開發(fā)歷史,美國國防部的項目審查早期使用瀑布模式開發(fā)的軟件項目,有75%以失敗告終,有些開發(fā)出來的產品根本沒有被使用過,只有2%的軟件產品無需大量修改就能被正常使用。 20世紀90年代推薦使用迭代和增量開發(fā)的出版物和文獻顯著增加 2001年二月敏捷開發(fā)宣言后形成敏捷聯盟 一組由17位在DSDM,XP,Scrum,FSD等領域的專家組成的代表團齊聚美國猶他州,尋找這些方法的共同點。最終,這些專家制
3、定并宣布了敏捷開發(fā)宣言。由此形成了現在我們所認識的敏捷開發(fā)和后來的敏捷聯盟,軟件開發(fā)模式介紹,軟件生命周期 -同任何事物一樣,一個軟件產品或軟件系統(tǒng)也要經歷孕育、誕生、成長、成熟、 -衰亡等階段,這一般稱為軟件生命周期。 -軟件開發(fā)生命周期(SDLC)是指軟件開發(fā)的全部過程、活動和任務的結構框架。 SDLC的一般步驟包括:確定問題、可行性分析與開發(fā)計劃、收集需求、分析與設計、編碼開發(fā)、測試、安裝、維護。 軟件生命周期模式 典型的幾種生命周期模式包括:瀑布模式、演化模式、螺旋模式、快速原型模式、噴泉模式和混合模式等。在這里只介紹其中最常用的幾種模式:,軟件生命周期模式,瀑布式 它首先是由Royc
4、e提出,該模式由于酷似瀑布聞名。在該模式中首先確定需求,然后擬定規(guī)格說明,在通過驗證后方可進入計劃階段。因此,瀑布模式中至關重要的一點是只有當一個階段的文檔獲得認可才可以進入下一個階段。瀑布模式通過強制性規(guī)約來確保每個階段都能很好的完成任務,但是實際上卻往往難以辦到。因為整個瀑布模式幾乎都是以文檔驅動的,這對于非專業(yè)的用戶來說是難以閱讀和理解的。雖然瀑布模式有很多很好的思想可以借鑒,但是在過程能力上有天生的缺陷。 演化模式 它主要是針對事先不能完整定義需求的軟件開發(fā)。它的方法是用戶先給出待開發(fā)系統(tǒng)的核心需求,并且在核心需求實現后,再提出反饋以支持系統(tǒng)的最終設計和實現。也就是說:開發(fā)人員首先會根
5、據用戶的需求開發(fā)核心系統(tǒng),然后提供給用戶試用;用戶試用后再提出增強系統(tǒng)能力的需求;最后開發(fā)人員再根據用戶的反饋,實施迭代開發(fā)。實際上,這個模式可看作是重復執(zhí)行的多個瀑布模式。演化模式要求開發(fā)人員把項目的產品需求分解為不同組,以便分批循環(huán)開發(fā)。但這種分組并不是隨意性的,而是要根據功能的重要性及對總體設計的基礎結構的影響而作出判斷。,軟件生命周期模式,螺旋模式: 它是瀑布模式與演化模式相結合,并加入兩者所忽略的風險分析所建立的一種軟件開發(fā)模式。螺旋模式基本的做法是在瀑布模式的每一個開發(fā)階段之前,引入非常嚴格的風險識別、風險分析和風險控制。直到采取了消除風險的措施之后,才開始計劃下一階段的開發(fā)工作。
6、否則,項目就很可能被暫停。另外,如果有充足的把握判斷遺留的風險已降低到一定的程度,項目管理人員還可作出決定讓余下的開發(fā)工作采用另外的生命周期模式,如演化模式,瀑布模式或自定的混合模式。 過程開發(fā)模式: 它又叫混合模式或元模式,是指把幾種不同模式組合成一種混合模式,它允許一個項目能沿著最有效的路徑發(fā)展。因為上述的模式中都有自己獨特的思想,現在的軟件開發(fā)團隊中很少說標準的采用那一種模式的,因為模式和實際應用還是有很大的區(qū)別的。實際上,許多軟件開發(fā)團隊都是在使用幾種不同的開發(fā)方法組成他們自己的混合模式。,軟件生命周期模式-總結,最后,我們來總結一下。螺旋模式是典型的迭代式生命周期模式,而RUP則是近
7、代迭代式生命周期的代表。與螺旋模式相比,RUP將風險管理放在更重要的地位。最新的迭代式生命周期模式的代表是模式驅動架構(MDA)和敏捷(Agile)軟件開發(fā)。MDA模式是基于可執(zhí)行規(guī)格說明的思想,是現代轉換模式的代表,其核心技術是組件技術。而敏捷開發(fā)生命周期的典型代表是XP編程,是把傳統(tǒng)的系統(tǒng)設計和實現由敏捷軟件開發(fā)過程中的驗收測試、重構和測試驅動所取代;把傳統(tǒng)的集成和部署由敏捷軟件開發(fā)中的持續(xù)集成和短周期所取代。 其實上,無論是瀑布開發(fā)模式還是螺旋開發(fā)模式,軟件生命周期模式的發(fā)展實際上是體現了軟件工程理論的發(fā)展。在最早的時候,軟件的生命周期處于無序、混亂的情況。一些人為了能夠管理和控制軟件的
8、開發(fā)過程,就把軟件開發(fā)嚴格的區(qū)分為多個不同的階段,并在階段間加上嚴格的審查,這就是軟件開發(fā)模式產生的起因。它們體現了人們對軟件過程的一個希望:嚴格控制、確保質量。 來源:軟件開發(fā)如何選擇合適的生命周期模式?,敏捷開發(fā)介紹,敏捷開發(fā)(agile development) 是一種以人為核心、迭代、循序漸進的開發(fā)方法。在敏捷開發(fā)中,軟件項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特征。簡言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。 捷開發(fā)由幾種輕量級的軟件開發(fā)方法組成。 它們包括:極限編程(XP),Sc
9、rum,精益開發(fā)(Lean Development),動態(tài)系統(tǒng)開發(fā)方法(DSDM),特征驅動開發(fā)(Feature Driver Development),水晶開發(fā)(Cristal Clear)等等,敏捷開發(fā)介紹-極限編程XP,主要目的是降低需求變化的成本 定義了一套簡單的開發(fā)流程 包括:編寫用戶案例,架構規(guī)范,實施規(guī)劃,迭代計劃,代碼開發(fā),單元測試,驗收測試等等 提倡互動交流、反饋、簡單、勇氣、團隊 核心做法: 小規(guī)模,頻繁的版本發(fā)布,短迭代周期。測試驅動開發(fā)(Test-driven development)。結對編程(Pair programming)。持續(xù)集成(Continuous int
10、egration)。每日站立會議(Daily stand-up meeting)。共同擁有代碼Collative code ownership.系統(tǒng)隱喻(System metaphor)。,敏捷開發(fā)介紹-精益,精益開發(fā)起源從豐田公司的產品開發(fā)方法中演化而來。它主要包括兩個部分:一部分是核心思想及原則,另外一部分由一些在相應的工具構成。 核心思想 查明和消除浪費。在軟件開發(fā)過程中,錯誤(bugs),沒用的功能,等待以及其他任何對實現結果沒有益處的東西都是浪費。浪費及其源頭必須被分析查明,然后設法消除。 精益開發(fā)的原則包括: 強調學習。不斷改進所開發(fā)的產品和開發(fā)效率。 在最后時刻做決定。避免在可能
11、改變的事情上做無謂的努力,避免浪費。 用最快的速度交付用戶??s短迭代周期加速開發(fā)及交付,加快交流,提高生產力 給團隊自主權。激勵團隊并讓團隊成員自我管理-敏捷方法成功的基本因素之一。 誠信。確保系統(tǒng)正常工作,客戶需求是團隊努力堅持的誠信和對用戶的承諾。 全局觀。精益開發(fā)強調整體優(yōu)化的系統(tǒng)。無論開發(fā)的組織還是被開發(fā)的產品, 從整體上考慮優(yōu)化比從各個局部去優(yōu)化更高效。 精益軟件更重要的是不斷完善開發(fā)過程的一種思維方式。,敏捷開發(fā)介紹-scrum,SCRUM是一個敏捷開發(fā)框架它由一個開發(fā)過程,幾種角色以及一套規(guī)范的實施方法組成。它可以被運用于軟件開發(fā),項目維護,也可以被用來作為一種管理敏捷項目的框架
12、。 Scrum定義了4種主要的角色: 1、產品擁有者(Product Owner):該角色負責產品的遠景規(guī)劃,平衡所有利益相關者(stakeholder)的利益,確定不同的產品需求積壓的優(yōu)先級等。它是開發(fā)團隊和客戶或最終用戶之間的聯絡點。 2、利益相關者(Stakeholder):該角色與產品之間有直接或間接的利益關系,通常是客戶或最終用戶代表。他們負責收集編寫產品需求,審查項目成果等。 3、Scrum專家(Scrum Master):Scrum專家負責指導開發(fā)團隊進行Scrum開發(fā)與實踐。它也是開發(fā)團隊與產品擁有者之間交流的聯絡點。 4、團隊成員(Team Member):即項目開發(fā)人員。,
13、敏捷開發(fā)-瀑布式開發(fā)對比,敏捷開發(fā)-SCRUM名詞解釋,backlog:可以預知的所有任務,包括功能性的和非功能性的所有任務。 sprint:一次跌代開發(fā)的時間周期,一般最多以30天為一個周期。在這段時間內,開發(fā)團隊需要完成一個制定的backlog,并且最終成果是一個增量的,可以交付的產品。 sprint backlog: 一個sprint周期內所需要完成的任務。 scrumMaster:負責監(jiān)督整個Scrum進程,修訂計劃的一個團隊成員。 time-box:一個用于開會時間段。比如每個daily scrum meeting的time-box為15分鐘。,敏捷開發(fā)-SCRUM名詞解釋,spri
14、nt planning meeting: 在啟動每個sprint前召開。一般為一天時間(8小時)。該會議需要制定的任務是:產品Owner和團隊成員將backlog分解成小的功能模塊,決定在即將進行的sprint里需要完成多少小功能模塊,確定好這個Product Backlog的任務優(yōu)先級。另外,該會議還需詳細地討論如何能夠按照需求完成這些小功能模塊。制定的這些模塊的工作量以小時計算。 Daily Scrum meeting: 開發(fā)團隊成員召開,一般為15分鐘。每個開發(fā)成員需要向ScrumMaster匯報三個項目:今天完成了什么?遇到了障礙無法繼續(xù)下去?明天要做什么?通過該會議,團隊成員可以相互
15、了解項目進度。 Sprint review meeting: 在每個Sprint結束后,這個Team將這個Sprint的工作成果演示給Product Owner和其他相關的人員。一般該會議為4小時。Sprint retrospective meeting:對剛結束的Sprint進行總結。會議的參與人員為團隊開發(fā)的內部人員。一般該會議為3小時。,敏捷開發(fā)-實施Scrum的過程介紹,敏捷開發(fā)-實施Scrum的過程介紹,確定Sprint Backlog 將整個產品的backlog分解成Sprint Backlog,這個Sprint Backlog是按照目前的人力物力條件可以完成的。 召開sprint
16、 planning meeting 劃分,確定這個Sprint內需要完成的任務,標注任務的優(yōu)先級并分配給每個成員。注意這里的任務是以小時計算的,并不是按人天計算。 sprint開發(fā)周期進入sprint開發(fā)周期,在這個周期內,每天需要召開Daily Scrum meeting。 成果演示 整個sprint周期結束,召開Sprint review meeting,將成果演示給Product Owner。 回顧團隊成員最后召開Sprint retrospective meeting,總結問題和經驗。 下一次Sprint。,敏捷開發(fā),每日會議: 目的:信息同步平臺,非交流問題、討論問題渠道。 形式:固
17、定地點、時間的站立會議。 生產率估算 燃盡線,敏捷開發(fā)原則和方法,迭代式開發(fā)。即整個開發(fā)過程被分為幾個迭代周期,每個迭代周期是一個定長或不定長的時間塊每個迭代周期持續(xù)的時間一般較短,通常為一到六周。 增量交付。產品是在每個迭代周期結束時被逐步交付使用,而不是在整個開發(fā)過程結束的時候一次性交付使用。每次交付的都是可以被部署到用戶應用環(huán)境中被用戶使用的、能給用戶帶來即時效益和價值的產品。 開發(fā)團隊和用戶反饋推動產品開發(fā)。敏捷開發(fā)方法主張用戶能夠全程參與到整個開發(fā)過程中。這使需求變化和用戶反饋能被動態(tài)管理并及時集成到產品中。同時,團隊對于用戶的需求也能及時提供反饋意見。 持續(xù)集成。新的功能或需求變化總是盡可能頻繁地被整合到產品中。一些項目是在每個迭代周期結束的時候集成, 有些項目則每天都在這么做。 開發(fā)團隊自我管理。擁有一個積極的、自我管理的、具備自由交流風格的開發(fā)團隊,是每個敏捷項目必不可少的條件。人是敏捷開發(fā)的核心。敏捷開發(fā)總是以人為中心建立開發(fā)的過程和機制,而非把過程和機制強加給人。,敏捷開發(fā)宣言,極限編程的思想體現了適應客戶需求的快速變化,激發(fā)開發(fā)者的熱情,也是目前敏捷開發(fā)思維的重要支持者。2001年,17名編程大師分別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷漆標線合同范本
- 出售新舊彩鋼瓦合同范例
- 2024年蕪湖無為市投資促進發(fā)展有限公司招聘考試真題
- led電源合同范本
- 公司購銷合同范本
- 2024年清遠英德市市區(qū)學校選調教師(編制)考試真題
- 個人買賣定金合同范本
- 五人合伙工程合同范本
- 交通類ppp合同范本
- 代簽銷售合同范本
- 如何發(fā)揮好辦公室協(xié)調、督導、服務職能
- 部隊安全教育教案大全
- 交易商協(xié)會非金融企業(yè)債務融資工具發(fā)行注冊工作介紹
- 《人與環(huán)境》課程教學大綱
- 班組長管理能力提升培訓(PPT96張)課件
- 深圳市城市用地分類表
- 法蘭蝶閥螺栓配用表
- 垃圾中轉站施工方案及施工方法
- 內蒙古自治區(qū)小額貸款公司試點管理實施細則
- 勞務分包入住生活區(qū)承諾書
- 直系親屬關系證明(存根)(共1頁)
評論
0/150
提交評論