




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