![第8章敏捷方法_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/aa0e9368-5b63-4196-a11e-a19df1d8760d/aa0e9368-5b63-4196-a11e-a19df1d8760d1.gif)
![第8章敏捷方法_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/aa0e9368-5b63-4196-a11e-a19df1d8760d/aa0e9368-5b63-4196-a11e-a19df1d8760d2.gif)
![第8章敏捷方法_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/aa0e9368-5b63-4196-a11e-a19df1d8760d/aa0e9368-5b63-4196-a11e-a19df1d8760d3.gif)
![第8章敏捷方法_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/aa0e9368-5b63-4196-a11e-a19df1d8760d/aa0e9368-5b63-4196-a11e-a19df1d8760d4.gif)
![第8章敏捷方法_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/aa0e9368-5b63-4196-a11e-a19df1d8760d/aa0e9368-5b63-4196-a11e-a19df1d8760d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、六盤水師范學院 孫新杰1l敏捷方法與極限編程敏捷方法與極限編程 (Agile與與XP)六盤水師范學院 孫新杰21、敏捷宣言與基本原則、敏捷宣言與基本原則 在軟件業(yè)經(jīng)歷了無數(shù)次項目失敗(進度延遲、預算在軟件業(yè)經(jīng)歷了無數(shù)次項目失?。ㄟM度延遲、預算失控、質(zhì)量低、難以維護等等)之后,人們開始反思軟失控、質(zhì)量低、難以維護等等)之后,人們開始反思軟件開發(fā)的工程特性,反思計劃與控制的有效性,反思開件開發(fā)的工程特性,反思計劃與控制的有效性,反思開發(fā)中對不確定性的態(tài)度和反應。發(fā)中對不確定性的態(tài)度和反應。 2001年年2月,在猶他州的月,在猶他州的Snowbird舉行的一場為期兩舉行的一場為期兩天的工作會,由天的
2、工作會,由17位軟件界專家,包括位軟件界專家,包括Kent Beck(eXtreme Programming,XP)、)、Alistair Cockburn(Crystal Methodologies)、)、Jim Highsmith(Adaptive Software Development)等,成立了)等,成立了“敏捷軟件開發(fā)聯(lián)盟敏捷軟件開發(fā)聯(lián)盟”并發(fā)布了并發(fā)布了“敏捷宣言敏捷宣言”(The Manifesto for Agile Software Development),并在宣言基礎上制定了一組原),并在宣言基礎上制定了一組原則,構(gòu)成了敏捷過程應遵循的標準。則,構(gòu)成了敏捷過程應遵循的標
3、準。 六盤水師范學院 孫新杰3 我們正在通過親身實踐以及幫助他人實踐的方式,我們正在通過親身實踐以及幫助他人實踐的方式,揭示更好的軟件開發(fā)之路。通過這項工作,我們認為:揭示更好的軟件開發(fā)之路。通過這項工作,我們認為: Individuals and interactions over processes and tools (個體和交互(個體和交互 勝過勝過 過程和工具)過程和工具) Working software over comprehensive documentation (可工作的軟件(可工作的軟件 勝過勝過 面面俱到的文檔)面面俱到的文檔) Customer collaborat
4、ion over contract negotiation (客戶合作(客戶合作 勝過勝過 合同談判)合同談判) Responding to change over following a plan (響應變化(響應變化 勝過勝過 遵循計劃)遵循計劃) 雖然上述的右項很有價值,但我們認為左項具有更雖然上述的右項很有價值,但我們認為左項具有更大的價值。大的價值。 (隨后是(隨后是17位專家的簽字)位專家的簽字)六盤水師范學院 孫新杰4 敏捷宣言是敏捷宣言是“敏捷軟件開發(fā)敏捷軟件開發(fā)”價值和目標的濃縮定義。價值和目標的濃縮定義。敏捷聯(lián)盟為希望達到敏捷的人們定義了敏捷聯(lián)盟為希望達到敏捷的人們定義了1
5、2條原則:條原則: (1)最優(yōu)先要做的是)最優(yōu)先要做的是通過盡早地、持續(xù)地交付有價值的軟通過盡早地、持續(xù)地交付有價值的軟件來使客戶滿意件來使客戶滿意(這也可以說是敏捷開發(fā)的總體目標)。(這也可以說是敏捷開發(fā)的總體目標)。 (2 )(按周而不是按月)頻繁地交付可用的軟件。)(按周而不是按月)頻繁地交付可用的軟件。 (3)可工作的軟件是進度的首要度量標準。)可工作的軟件是進度的首要度量標準。 (4)即使到了開發(fā)后期,也歡迎需求變化。)即使到了開發(fā)后期,也歡迎需求變化。 (5)在項目的整個開發(fā)期間,業(yè)務人員和開發(fā)人員應該每)在項目的整個開發(fā)期間,業(yè)務人員和開發(fā)人員應該每天在一起工作。天在一起工作。
6、(6)圍繞被激勵起的個體來構(gòu)建項目(參與項目人員的態(tài))圍繞被激勵起的個體來構(gòu)建項目(參與項目人員的態(tài)度應積極)度應積極) 。為他們提供所需的環(huán)境和支持,并信任他們能。為他們提供所需的環(huán)境和支持,并信任他們能勝任工作(他們能得到信任)。勝任工作(他們能得到信任)。 六盤水師范學院 孫新杰5 (7)最好的架構(gòu)、需求和設計來自于自組織團隊)最好的架構(gòu)、需求和設計來自于自組織團隊(self-organizing team,由一群志向和理念接近,為,由一群志向和理念接近,為了共同的目標走到一起來的人主動結(jié)成的團隊了共同的目標走到一起來的人主動結(jié)成的團隊 ) 。 (8)在團隊內(nèi)部,最有效果和最有效率的傳遞
7、信息)在團隊內(nèi)部,最有效果和最有效率的傳遞信息的方法是面對面地交流。的方法是面對面地交流。 (9)敏捷過程提倡可持續(xù)的開發(fā)速度。)敏捷過程提倡可持續(xù)的開發(fā)速度。 (10)持續(xù)關注技術(shù)的卓越程度和良好的設計。)持續(xù)關注技術(shù)的卓越程度和良好的設計。 (11)簡單至上。)簡單至上。 (12)讓團隊有規(guī)律的適應不斷變化的環(huán)境。(自適)讓團隊有規(guī)律的適應不斷變化的環(huán)境。(自適應性)應性)六盤水師范學院 孫新杰6 敏捷方法被稱為輕量級方法敏捷方法被稱為輕量級方法(lightweight methodologies),這些新的方法嘗試著在毫無過程和),這些新的方法嘗試著在毫無過程和太多過程之間找到一個有效的
8、平衡點,只提供必要的太多過程之間找到一個有效的平衡點,只提供必要的過程以得到一個合理的結(jié)果。過程以得到一個合理的結(jié)果。 表面上看,敏捷方法和重量級方法最大的不同是:表面上看,敏捷方法和重量級方法最大的不同是:不是以文檔驅(qū)動,在很多方面,是以代碼驅(qū)動的,最不是以文檔驅(qū)動,在很多方面,是以代碼驅(qū)動的,最重要的文檔是源代碼。重要的文檔是源代碼。 Martin Fowler認為這不是敏捷方法的重點所在,認為這不是敏捷方法的重點所在,較少的文檔只是兩種方法之間更深層次的不同點的一較少的文檔只是兩種方法之間更深層次的不同點的一個癥狀。他認為敏捷方法的本質(zhì)是:個癥狀。他認為敏捷方法的本質(zhì)是:六盤水師范學院
9、孫新杰7 (1)敏捷方法強調(diào)適應,而非可預測。重量級方)敏捷方法強調(diào)適應,而非可預測。重量級方法花費大量的人力物力,試圖制定一系列詳細的龐大法花費大量的人力物力,試圖制定一系列詳細的龐大的計劃來指導長期的工作,而一旦情況變化,計劃就的計劃來指導長期的工作,而一旦情況變化,計劃就不再適應。因此本質(zhì)上重量級方法是抵制變化的,而不再適應。因此本質(zhì)上重量級方法是抵制變化的,而敏捷方法則強調(diào)適應變化。敏捷方法則強調(diào)適應變化。 (2)敏捷方法強調(diào)以人為中心而不是以過程為中心。)敏捷方法強調(diào)以人為中心而不是以過程為中心。在軟件開發(fā)中,人的經(jīng)驗和創(chuàng)造力無法用制度和流程在軟件開發(fā)中,人的經(jīng)驗和創(chuàng)造力無法用制度和
10、流程去控制。敏捷方法強調(diào)軟件開發(fā)應順乎人的本性去控制。敏捷方法強調(diào)軟件開發(fā)應順乎人的本性(Work with peoples nature),軟件開發(fā)應帶來樂趣,軟件開發(fā)應帶來樂趣,激發(fā)人的積極性和創(chuàng)造力。激發(fā)人的積極性和創(chuàng)造力。 正如正如Cockburn和和Highsmith所說所說“敏捷開發(fā)關注個敏捷開發(fā)關注個人的才智和技巧,根據(jù)特定人員和團隊來塑造過程人的才智和技巧,根據(jù)特定人員和團隊來塑造過程”。六盤水師范學院 孫新杰8l在敏捷中國大會上,特別強調(diào)了人在開發(fā)過程中在敏捷中國大會上,特別強調(diào)了人在開發(fā)過程中的作用,提到的作用,提到“要做好軟件,人是最大的可挖掘要做好軟件,人是最大的可挖掘
11、潛力潛力”。敏捷開發(fā)要求每一個參與者能夠單獨完。敏捷開發(fā)要求每一個參與者能夠單獨完成一項完整的模塊,并非要求參與者精通所有方成一項完整的模塊,并非要求參與者精通所有方面,但在大多數(shù)領域的能力到達中等或以上的水面,但在大多數(shù)領域的能力到達中等或以上的水平是必要的。平是必要的。l敏捷方法的重要理念之一認為軟件開發(fā)中最大的敏捷方法的重要理念之一認為軟件開發(fā)中最大的消磨在于溝通的不足,而由消磨在于溝通的不足,而由“通才通才”組成的團隊組成的團隊能夠最大的減少交流障礙,從而能夠快速開發(fā)。能夠最大的減少交流障礙,從而能夠快速開發(fā)。l敏捷開發(fā)要求程序員要不斷學習,否則會加快其敏捷開發(fā)要求程序員要不斷學習,否
12、則會加快其在行業(yè)內(nèi)被淘汰的速度。在行業(yè)內(nèi)被淘汰的速度。六盤水師范學院 孫新杰9 2、極限編程(、極限編程(eXtreme Programming,XP) 由由Kent Beck提出,是敏捷方法的中最富提出,是敏捷方法的中最富盛名的一個,是針對某種特定環(huán)境(需求不確盛名的一個,是針對某種特定環(huán)境(需求不確定、變化快,小型項目、小型開發(fā)團隊)的具定、變化快,小型項目、小型開發(fā)團隊)的具體過程實施模型?,F(xiàn)已成為小組開發(fā)方法的典體過程實施模型?,F(xiàn)已成為小組開發(fā)方法的典型。型。 該方法通過非常短的周期來對付需求的變該方法通過非常短的周期來對付需求的變化,首先開發(fā)軟件最重要的特性,迅速向用戶化,首先開發(fā)軟
13、件最重要的特性,迅速向用戶提供所需的功能,再通過重構(gòu)來滿足新的需求,提供所需的功能,再通過重構(gòu)來滿足新的需求,從而降低風險。從而降低風險。六盤水師范學院 孫新杰10XP方法的價值觀方法的價值觀(4個特性):個特性): 改善改善溝通溝通(communication) 項目相關人員之間充分的多渠道的的溝通。項目相關人員之間充分的多渠道的的溝通。 尋求尋求簡單簡單(simplicity) 選擇最簡單的設計和實現(xiàn)來處理客戶的需要。選擇最簡單的設計和實現(xiàn)來處理客戶的需要。 獲得獲得反饋反饋(feedback) 強調(diào)各種形式的反饋:小交付、短迭代、先考慮強調(diào)各種形式的反饋:小交付、短迭代、先考慮測試再編碼
14、。測試再編碼。 富有富有勇氣勇氣(courage) 面對壓力作正確的判斷并敢于付諸行動,如盡早面對壓力作正確的判斷并敢于付諸行動,如盡早地和經(jīng)常交付功能的承諾,敢于丟棄設計不良的代碼地和經(jīng)常交付功能的承諾,敢于丟棄設計不良的代碼等。等。 六盤水師范學院 孫新杰11XP的有效實踐的有效實踐: (1)計劃博弈)計劃博弈 要求結(jié)合項目的進展來調(diào)整下一階段的計劃。計劃不要求結(jié)合項目的進展來調(diào)整下一階段的計劃。計劃不是一成不變的。是一成不變的。 (2)小型發(fā)布)小型發(fā)布 短期內(nèi)以增量式的方式發(fā)布可以工作的軟件。短期內(nèi)以增量式的方式發(fā)布可以工作的軟件。 (3)系統(tǒng)隱喻)系統(tǒng)隱喻 通過一些可參照的模式來指導
15、系統(tǒng)的開發(fā),不需要事通過一些可參照的模式來指導系統(tǒng)的開發(fā),不需要事先進行詳細的架構(gòu)設計先進行詳細的架構(gòu)設計 。 (4)簡單設計)簡單設計 代碼設計恰好滿足當前功能的需要。代碼設計恰好滿足當前功能的需要。 (5)測試驅(qū)動)測試驅(qū)動 “先編寫測試程序(測試的可執(zhí)行組件,包括了測試先編寫測試程序(測試的可執(zhí)行組件,包括了測試用例),后編寫源程序用例),后編寫源程序”。以測試用例驅(qū)動設計與編碼。以測試用例驅(qū)動設計與編碼。 六盤水師范學院 孫新杰12 (6)重構(gòu))重構(gòu) 重構(gòu)是以不改變軟件外部行為而改進其內(nèi)部結(jié)構(gòu)的方式重構(gòu)是以不改變軟件外部行為而改進其內(nèi)部結(jié)構(gòu)的方式來修改軟件系統(tǒng)的過程。為減少引入錯誤、減
16、少冗余、提高來修改軟件系統(tǒng)的過程。為減少引入錯誤、減少冗余、提高性能等目的,隨時調(diào)整、優(yōu)化系統(tǒng)的結(jié)構(gòu)。性能等目的,隨時調(diào)整、優(yōu)化系統(tǒng)的結(jié)構(gòu)。 (7)結(jié)隊編程)結(jié)隊編程 是一種加強開發(fā)人員溝通與評審的方式是一種加強開發(fā)人員溝通與評審的方式 。兩人共同負責。兩人共同負責解決同一問題的代碼,一個人負責寫編碼,而另一個負責保解決同一問題的代碼,一個人負責寫編碼,而另一個負責保證代碼的質(zhì)量,如編碼標準、接口標準、代碼的正確性與可證代碼的質(zhì)量,如編碼標準、接口標準、代碼的正確性與可讀性等。讀性等。 (8)代碼全體擁有)代碼全體擁有 強調(diào)所有的人都對代碼負責。如果一個開發(fā)人員的代碼強調(diào)所有的人都對代碼負責。
17、如果一個開發(fā)人員的代碼有錯誤,另外一個開發(fā)人員也可以進行有錯誤,另外一個開發(fā)人員也可以進行BUG的修復。的修復。 提高了代碼的透明度,增進了團隊的合作精神。一定要有嚴提高了代碼的透明度,增進了團隊的合作精神。一定要有嚴格的配置管理。格的配置管理。六盤水師范學院 孫新杰13 (9)持續(xù)集成)持續(xù)集成 集成系統(tǒng)每日隨時進行并不斷的回歸測試。要有良集成系統(tǒng)每日隨時進行并不斷的回歸測試。要有良好的軟件配置變更管理系統(tǒng)(如好的軟件配置變更管理系統(tǒng)(如VSS)的有效支持。)的有效支持。 (10)每周)每周40小時工作制小時工作制 不過分加班,疲勞容易產(chǎn)生錯誤,要合理安排工作不過分加班,疲勞容易產(chǎn)生錯誤,要
18、合理安排工作量和進度。量和進度。 (11)現(xiàn)場客戶)現(xiàn)場客戶 提倡客戶代表在開發(fā)現(xiàn)場,一起工作,隨時和開發(fā)提倡客戶代表在開發(fā)現(xiàn)場,一起工作,隨時和開發(fā)人員溝通信息。人員溝通信息。 (12)代碼規(guī)范)代碼規(guī)范 制定嚴格的編寫代碼的標準。制定嚴格的編寫代碼的標準。六盤水師范學院 孫新杰14XP的開發(fā)過程的開發(fā)過程制定交制定交付計劃付計劃迭代迭代開發(fā)開發(fā)驗收驗收測試測試用戶用戶情節(jié)情節(jié)需求需求系統(tǒng)隱喻系統(tǒng)隱喻交付計劃交付計劃不確不確定的定的估計估計確定確定的估的估計計難點難點刺探刺探新用戶故事新用戶故事最新版本最新版本bugs下一個迭代(下一個迭代(1-3周)周)小交付小交付測試用例測試用例其中:其
19、中:“用戶情節(jié)用戶情節(jié)”類似于用例,更簡單,只涉及功能需求。類似于用例,更簡單,只涉及功能需求。 “難點刺探難點刺探(spike)”意在試探解決有關技術(shù)難點,走通意在試探解決有關技術(shù)難點,走通技術(shù)路線。技術(shù)路線。認可認可六盤水師范學院 孫新杰15 XP要求開發(fā)團隊必須具備熟練的代碼設計技能和嚴要求開發(fā)團隊必須具備熟練的代碼設計技能和嚴格的測試保障技術(shù),了解面向?qū)ο蠛湍J剑莆樟酥貥?gòu)格的測試保障技術(shù),了解面向?qū)ο蠛湍J剑莆樟酥貥?gòu)和和OO測試技術(shù)。測試技術(shù)。 在在XP的的12種實踐方法中測試驅(qū)動、持續(xù)集成、簡化種實踐方法中測試驅(qū)動、持續(xù)集成、簡化設計、代碼規(guī)范、現(xiàn)場客戶、每周設計、代碼規(guī)范、現(xiàn)場
20、客戶、每周40小時工作制、小型小時工作制、小型發(fā)布、都應該積極提倡和鼓勵;而代碼全體擁有、結(jié)隊發(fā)布、都應該積極提倡和鼓勵;而代碼全體擁有、結(jié)隊編程、重構(gòu)、隱喻、計劃博弈等做法并不是在任何情況編程、重構(gòu)、隱喻、計劃博弈等做法并不是在任何情況下都適用,項目組可對這些實踐進行修改或增刪后再應下都適用,項目組可對這些實踐進行修改或增刪后再應用。用。 在軟件學科和許多其他領域中,針對同一個問題通在軟件學科和許多其他領域中,針對同一個問題通常至少有兩種以上解決方法。相對于傳統(tǒng)的常至少有兩種以上解決方法。相對于傳統(tǒng)的以架構(gòu)為中以架構(gòu)為中心的自頂向下過程心的自頂向下過程,XP方法論省略了架構(gòu)的詳細設計,方法論
21、省略了架構(gòu)的詳細設計,從簡短的計劃直接進入編碼的循環(huán),設計、編碼、測試從簡短的計劃直接進入編碼的循環(huán),設計、編碼、測試同時進行。它的出現(xiàn)證明了同時進行。它的出現(xiàn)證明了以代碼設計為中心的自底向以代碼設計為中心的自底向上過程上過程的合理性和有效性。的合理性和有效性。六盤水師范學院 孫新杰163、敏捷開發(fā)的其他方法、敏捷開發(fā)的其他方法(1)SCRUM(并列爭球法)(并列爭球法) 該方法將工業(yè)控制中的概念應用到軟件開發(fā)中來,該方法將工業(yè)控制中的概念應用到軟件開發(fā)中來,認為軟件開發(fā)過程更多的是認為軟件開發(fā)過程更多的是經(jīng)驗性過程經(jīng)驗性過程(empirical process),而不是,而不是確定性過程確定
22、性過程(defined process)。確定確定性過程性過程是可明確描述的、可預測的過程,因而可重復是可明確描述的、可預測的過程,因而可重復執(zhí)行并能產(chǎn)生預期的結(jié)果,并能通過科學理論對其最執(zhí)行并能產(chǎn)生預期的結(jié)果,并能通過科學理論對其最優(yōu)化。優(yōu)化。經(jīng)驗性過程經(jīng)驗性過程與之相反,把軟件處理作為一個黑與之相反,把軟件處理作為一個黑箱,對黑箱的輸入輸出進行度量,結(jié)合經(jīng)驗判斷對黑箱,對黑箱的輸入輸出進行度量,結(jié)合經(jīng)驗判斷對黑箱進行調(diào)控,使其產(chǎn)生滿意的輸出。箱進行調(diào)控,使其產(chǎn)生滿意的輸出。 該方法將傳統(tǒng)開發(fā)中的分析、設計、實施視為一該方法將傳統(tǒng)開發(fā)中的分析、設計、實施視為一個黑箱,認為應加強黑箱內(nèi)部的混沌
23、性,使項目組工個黑箱,認為應加強黑箱內(nèi)部的混沌性,使項目組工作在混沌的邊沿充分發(fā)揮人的創(chuàng)造力。如果將經(jīng)驗性作在混沌的邊沿充分發(fā)揮人的創(chuàng)造力。如果將經(jīng)驗性過程按確定性過程(例如瀑布模型)來處理,必將使過程按確定性過程(例如瀑布模型)來處理,必將使過程缺乏適應力。過程缺乏適應力。六盤水師范學院 孫新杰17 SCRUM的開發(fā)過程:的開發(fā)過程: 計劃與體系結(jié)構(gòu)的設計(確定性過程)。計劃與體系結(jié)構(gòu)的設計(確定性過程)。 若干個每若干個每30天一次的迭代(稱為沖刺,天一次的迭代(稱為沖刺,sprint),即,即工作任務。(經(jīng)驗性過程)。工作任務。(經(jīng)驗性過程)。 每個每個sprint包含:開發(fā)、打包、評審
24、、調(diào)整活動。包含:開發(fā)、打包、評審、調(diào)整活動。 交付與鞏固(確定性過程)。交付與鞏固(確定性過程)。 該方法還包含了對開發(fā)過程的控制與管理技術(shù)。如該方法還包含了對開發(fā)過程的控制與管理技術(shù)。如在每個在每個sprint其間的其間的調(diào)控措施調(diào)控措施是:是: 例會。每天在同一地點進行,例會。每天在同一地點進行,15分鐘,分鐘,master對每對每個小組成員提問題:昨天的工作進展,今天的工作打算,個小組成員提問題:昨天的工作進展,今天的工作打算,困難和障礙。困難和障礙。 Sprint評審會議。根據(jù)每人的工作成績進行激勵。評審會議。根據(jù)每人的工作成績進行激勵。 該方法特別強調(diào)開發(fā)隊伍和管理層的交流協(xié)作。開
25、該方法特別強調(diào)開發(fā)隊伍和管理層的交流協(xié)作。開發(fā)隊伍每天都會向管理層匯報進度,如有問題,也會向發(fā)隊伍每天都會向管理層匯報進度,如有問題,也會向管理層要求幫助解決。管理層要求幫助解決。 六盤水師范學院 孫新杰18(2)DSDM(動態(tài)系統(tǒng)開發(fā)方法)(動態(tài)系統(tǒng)開發(fā)方法) DSDM起源于起源于1994年英國一個由年英國一個由17家公司發(fā)起的工家公司發(fā)起的工業(yè)聯(lián)盟業(yè)聯(lián)盟 。最初的目的是開發(fā)一種更好的面向領域的快。最初的目的是開發(fā)一種更好的面向領域的快速應用開發(fā)(速應用開發(fā)(RAD)方法?,F(xiàn)會員已擴展到美國、?。┓椒ā,F(xiàn)會員已擴展到美國、印度等國,應用范圍不再限于度等國,應用范圍不再限于IT行業(yè)。行業(yè)。 基
26、本思想基本思想: 在時間進度和可用資源預先固定的情況下力求需求在時間進度和可用資源預先固定的情況下力求需求的最大化滿足。具體做法是采用時間框(的最大化滿足。具體做法是采用時間框(TimeBox)技)技術(shù),每個時間框可被分解為術(shù),每個時間框可被分解為2-6周的子時間框,并按用周的子時間框,并按用戶需求的優(yōu)先級原則(戶需求的優(yōu)先級原則(Must do,should do,Could do,Wont do)進行開發(fā)。進行開發(fā)。 另外另外DSDM還通過工作間(還通過工作間(Workshop )方法加強)方法加強信息溝通,提高開發(fā)效率。信息溝通,提高開發(fā)效率。六盤水師范學院 孫新杰19DSDM基本原則基
27、本原則 積極主動的用戶參與。積極主動的用戶參與。 賦予項目組充分的決策權(quán)。賦予項目組充分的決策權(quán)。 強調(diào)經(jīng)常性的產(chǎn)品提交。強調(diào)經(jīng)常性的產(chǎn)品提交。 以是否適合商業(yè)目標作為工作確認的首要衡量標準。以是否適合商業(yè)目標作為工作確認的首要衡量標準。 迭代和增量式的開發(fā)。迭代和增量式的開發(fā)。 開發(fā)中所有變化是可追溯的開發(fā)中所有變化是可追溯的(reversible)。)。 基于軟件需求提出的開發(fā)計劃作為宏觀進度控制的基基于軟件需求提出的開發(fā)計劃作為宏觀進度控制的基線。線。 測試活動貫穿于軟件開發(fā)周期的各個階段。測試活動貫穿于軟件開發(fā)周期的各個階段。 強調(diào)所有項目相關人員的合作。強調(diào)所有項目相關人員的合作。六
28、盤水師范學院 孫新杰20 DSDM的開發(fā)過程的開發(fā)過程 一個周期一個周期2-6周,每個周期包括以下周,每個周期包括以下5個階段。其個階段。其中前兩個階段有順序關系,是后續(xù)工作的基礎和前提。中前兩個階段有順序關系,是后續(xù)工作的基礎和前提。后三個階段可并行、交叉、重疊。后三個階段可并行、交叉、重疊。 可行性研究可行性研究 項目實施的技術(shù)和管理條件是否滿足。項目實施的技術(shù)和管理條件是否滿足。 業(yè)務研究業(yè)務研究 確定系統(tǒng)的范圍,建立系統(tǒng)功能和信息的需求,確定系統(tǒng)的范圍,建立系統(tǒng)功能和信息的需求,根據(jù)需求設定開發(fā)進度基線,設計系統(tǒng)體系結(jié)構(gòu)和可根據(jù)需求設定開發(fā)進度基線,設計系統(tǒng)體系結(jié)構(gòu)和可維護性目標。維護
29、性目標。六盤水師范學院 孫新杰21 功能模型迭代功能模型迭代 開發(fā)一系列證明其功能的增量原型,通過使用原開發(fā)一系列證明其功能的增量原型,通過使用原型獲得反饋信息和額外需求。型獲得反饋信息和額外需求。 設計與構(gòu)造迭代設計與構(gòu)造迭代 對原型進行增量開發(fā),生成可用的系統(tǒng)。對原型進行增量開發(fā),生成可用的系統(tǒng)。 實施實施 移交到運行環(huán)境、評審、培訓等。移交到運行環(huán)境、評審、培訓等。 當增量沒有全部完成或增量需要改變時,當增量沒有全部完成或增量需要改變時,DSDM開發(fā)轉(zhuǎn)向功能模型迭代繼續(xù)進行。開發(fā)轉(zhuǎn)向功能模型迭代繼續(xù)進行。 DSDM不但遵循了敏捷方法的原理,而且也適合不但遵循了敏捷方法的原理,而且也適合那
30、些對成熟的傳統(tǒng)開發(fā)方法有堅實基礎的軟件組織。那些對成熟的傳統(tǒng)開發(fā)方法有堅實基礎的軟件組織。 六盤水師范學院 孫新杰22(3)自適應軟件開發(fā)()自適應軟件開發(fā)(Adaptive Software Development,ASD) 基于復雜自適應系統(tǒng)理論,通常稱為混沌理論基于復雜自適應系統(tǒng)理論,通常稱為混沌理論(chaos theory)。通過提高組織的自適應力來應對當)。通過提高組織的自適應力來應對當前極度變化、難以預測的快速軟件開發(fā)要求。前極度變化、難以預測的快速軟件開發(fā)要求。 混沌理論提出的主要概念是在一定混沌理論提出的主要概念是在一定環(huán)境環(huán)境中的中的主體主體(agents)相互競爭和合作,
31、導出系統(tǒng)產(chǎn)出的相互競爭和合作,導出系統(tǒng)產(chǎn)出的浮現(xiàn)浮現(xiàn)(emergence)。)。ADS視開發(fā)組織為環(huán)境,組織中的成視開發(fā)組織為環(huán)境,組織中的成員為主體,產(chǎn)品為浮現(xiàn)。該方法提出了兩個關鍵策略來員為主體,產(chǎn)品為浮現(xiàn)。該方法提出了兩個關鍵策略來建立自適應和協(xié)作的環(huán)境:建立自適應和協(xié)作的環(huán)境: 管理人員要關注結(jié)果而非過程;管理人員要關注結(jié)果而非過程; 管理人員要提供工具和技巧來培養(yǎng)自組織能力。管理人員要提供工具和技巧來培養(yǎng)自組織能力。六盤水師范學院 孫新杰23 關注結(jié)果要求使用迭代的開發(fā)方法。關注結(jié)果要求使用迭代的開發(fā)方法。ASD將每次將每次迭代分為三個階段:迭代分為三個階段: 思考:討論和定義本次迭
32、代要達到的目標;思考:討論和定義本次迭代要達到的目標; 協(xié)作:基于思考階段定義的產(chǎn)品特征和持續(xù)的外協(xié)作:基于思考階段定義的產(chǎn)品特征和持續(xù)的外部輸入,項目組開展協(xié)作(開發(fā)活動);部輸入,項目組開展協(xié)作(開發(fā)活動); 學習:對結(jié)果進行評審,并為下一迭代做準備。學習:對結(jié)果進行評審,并為下一迭代做準備。項目啟動項目啟動自適應的自適應的迭代計劃迭代計劃并發(fā)構(gòu)并發(fā)構(gòu)件工程件工程質(zhì)量評審質(zhì)量評審最終最終QA和交付和交付學習回路學習回路 思考思考 協(xié)作協(xié)作 學習學習ASD的開發(fā)周期的開發(fā)周期六盤水師范學院 孫新杰24 Highsmith認為軟件開發(fā)人員常高估自己對技術(shù)、過認為軟件開發(fā)人員常高估自己對技術(shù)、過
33、程和項目的理解力,學習將幫助他們改進其真正的理解程和項目的理解力,學習將幫助他們改進其真正的理解水平。水平。ASD通過以下三種方式學習:通過以下三種方式學習: 焦點組??蛻艋蛴脩魧σ寻l(fā)布軟件增量提供反饋,焦點組。客戶或用戶對已發(fā)布軟件增量提供反饋,給出產(chǎn)品是否滿足業(yè)務需求的直接指標。給出產(chǎn)品是否滿足業(yè)務需求的直接指標。 正式技術(shù)評審。正式技術(shù)評審。ASD團隊評審他們開發(fā)的構(gòu)件,學團隊評審他們開發(fā)的構(gòu)件,學習知識并在工作中提高質(zhì)量。習知識并在工作中提高質(zhì)量。 事后剖析。事后剖析。 ASD團隊以學習和改進為目的自我反省。團隊以學習和改進為目的自我反省。 ASD整體上強調(diào)軟件項目團隊具有自我組織的動
34、態(tài)整體上強調(diào)軟件項目團隊具有自我組織的動態(tài)性、人與人的協(xié)作、個人與團隊的學習,從而使團隊具性、人與人的協(xié)作、個人與團隊的學習,從而使團隊具有成功率高的可能性。有成功率高的可能性。六盤水師范學院 孫新杰25(4)特征驅(qū)動開發(fā)()特征驅(qū)動開發(fā)(Feature Driven Development ,FDD) 是一個模型驅(qū)動、短迭代的開發(fā)方法。適用于變化是一個模型驅(qū)動、短迭代的開發(fā)方法。適用于變化周期短的應用開發(fā)。特征點(周期短的應用開發(fā)。特征點(feature)意旨具有客戶價)意旨具有客戶價值的功能項,在兩周或更短的時間內(nèi)被實施,產(chǎn)生可見值的功能項,在兩周或更短的時間內(nèi)被實施,產(chǎn)生可見的能運行的代
35、碼。的能運行的代碼。 FDD開發(fā)過程開發(fā)過程(5項任務)項任務) 開發(fā)總體模型開發(fā)總體模型 組建建模團隊,領域分析,識別對象及其行為,生組建建模團隊,領域分析,識別對象及其行為,生成非正式的特征點列表成非正式的特征點列表 。 構(gòu)造特征點列表構(gòu)造特征點列表 將對象的行為轉(zhuǎn)換成特征點,形成具體的、正式的、將對象的行為轉(zhuǎn)換成特征點,形成具體的、正式的、排序后的特征點列表,復雜的特征點分解成可在兩周內(nèi)排序后的特征點列表,復雜的特征點分解成可在兩周內(nèi)實施的小塊。實施的小塊。六盤水師范學院 孫新杰26 按特征點計劃按特征點計劃 根據(jù)優(yōu)先級制訂各特征點和項目的完成日期,特征根據(jù)優(yōu)先級制訂各特征點和項目的完成
36、日期,特征點集分配給主程序員,主程序員將類分配給類擁有者。點集分配給主程序員,主程序員將類分配給類擁有者。 按特征點設計按特征點設計 本階段開始了兩周左右的迭代過程,將本次迭代需本階段開始了兩周左右的迭代過程,將本次迭代需要完成的特征點進行分析、標識涉及到的類、建立行為要完成的特征點進行分析、標識涉及到的類、建立行為模型、設計評審等。模型、設計評審等。 按特征點實施按特征點實施 各各類擁有者類擁有者編碼、單元測試,代碼評審后提交配置編碼、單元測試,代碼評審后提交配置管理,主程序員確認后,將類代碼打包,形成可執(zhí)行的管理,主程序員確認后,將類代碼打包,形成可執(zhí)行的產(chǎn)品。產(chǎn)品。 以上以上5項任務前項任務前3項在項目開始時完成,后項在項目開始時完成,后2項在每項在每次迭代周期中都要執(zhí)行。次迭代周期中都要執(zhí)行。六盤水師范學院 孫新杰27FDD對項目的管理對項目的管理 項目人員及組織項目人員及組織 每次迭代都按特征點以主程序員為中心形成特征每次迭代都按特征
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代智能技術(shù)推動下的藥店未來展望分析
- 2024-2025學年八年級物理下冊 第七章 運動和力 四 同一直線上二力的合成說課稿 (新版)北師大版
- 2024年九年級化學上冊 第5單元 化學方程式說課稿 (新版)新人教版
- 生產(chǎn)設備管理與成本控制策略
- 現(xiàn)代商務禮儀與職場技能提升
- 環(huán)保法律法規(guī)與企業(yè)綠色發(fā)展的關系
- 環(huán)保材料在電子設計中的應用探索
- 現(xiàn)代中醫(yī)在兒童口腔健康教育的角色
- 未來趨勢大數(shù)據(jù)驅(qū)動的校園智慧餐飲解決方案
- 現(xiàn)代居住區(qū)火災風險評估與預防策略
- Creo-7.0基礎教程-配套課件
- 六年級人教版上冊數(shù)學計算題練習題(及答案)100解析
- 化療藥物分類及不良反應的處理課件
- 超聲科質(zhì)量控制制度及超聲科圖像質(zhì)量評價細則
- 初中物理滬粵版八年級下冊《第六章 力和機械》章節(jié)練習(含答案)
- 金礦管理制度
- 橋梁樁基礎施工概述及施工控制要點
- SB/T 10415-2007雞粉調(diào)味料
- JB/T 20036-2016提取濃縮罐
- GB/T 3452.4-2020液壓氣動用O形橡膠密封圈第4部分:抗擠壓環(huán)(擋環(huán))
- 《社會主義市場經(jīng)濟理論(第三版)》第十三章社會主義市場經(jīng)濟標準論
評論
0/150
提交評論