軟件工程敏捷軟件開(kāi)發(fā)課件

上傳人:29 文檔編號(hào):230975806 上傳時(shí)間:2023-08-29 格式:PPT 頁(yè)數(shù):47 大?。?.13MB
收藏 版權(quán)申訴 舉報(bào) 下載
軟件工程敏捷軟件開(kāi)發(fā)課件_第1頁(yè)
第1頁(yè) / 共47頁(yè)
軟件工程敏捷軟件開(kāi)發(fā)課件_第2頁(yè)
第2頁(yè) / 共47頁(yè)
軟件工程敏捷軟件開(kāi)發(fā)課件_第3頁(yè)
第3頁(yè) / 共47頁(yè)

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《軟件工程敏捷軟件開(kāi)發(fā)課件》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《軟件工程敏捷軟件開(kāi)發(fā)課件(47頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、軟件工程軟件工程軟件工程軟件工程第5章 敏捷軟件開(kāi)發(fā) 軟件工程軟件工程內(nèi)容摘要內(nèi)容摘要敏捷敏捷軟件開(kāi)件開(kāi)發(fā)概述概述極限極限編程(程(XP)方法)方法相關(guān)敏捷相關(guān)敏捷過(guò)程模型程模型Scrum方法方法動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法敏捷建模敏捷建模敏捷統(tǒng)一過(guò)程敏捷統(tǒng)一過(guò)程2 軟件工程軟件工程敏捷軟件開(kāi)發(fā)的產(chǎn)生背景敏捷軟件開(kāi)發(fā)的產(chǎn)生背景軟件開(kāi)件開(kāi)發(fā)的新挑的新挑戰(zhàn)快速的市場(chǎng)進(jìn)入時(shí)間,要求高生產(chǎn)率快速的市場(chǎng)進(jìn)入時(shí)間,要求高生產(chǎn)率快速變化的需求快速變化的需求快速發(fā)展的技術(shù)快速發(fā)展的技術(shù)傳統(tǒng)的的軟件開(kāi)件開(kāi)發(fā)方法方法強(qiáng)調(diào)過(guò)程和文檔強(qiáng)調(diào)過(guò)程和文檔對(duì)變化的適應(yīng)能力偏弱對(duì)變化的適應(yīng)能力偏弱3提提高對(duì)變化的適應(yīng)能力高

2、對(duì)變化的適應(yīng)能力Martin Fowler認(rèn)為:提前預(yù)測(cè)需求是困難的。同樣,對(duì)項(xiàng)目進(jìn)行提前預(yù)測(cè)需求是困難的。同樣,對(duì)項(xiàng)目進(jìn)行過(guò)程中客戶(hù)需求優(yōu)先級(jí)的變更進(jìn)行預(yù)測(cè)也很過(guò)程中客戶(hù)需求優(yōu)先級(jí)的變更進(jìn)行預(yù)測(cè)也很困難困難對(duì)很多項(xiàng)目來(lái)說(shuō),軟件設(shè)計(jì)和構(gòu)建是交錯(cuò)進(jìn)對(duì)很多項(xiàng)目來(lái)說(shuō),軟件設(shè)計(jì)和構(gòu)建是交錯(cuò)進(jìn)行的。也就是說(shuō),設(shè)計(jì)需要通過(guò)實(shí)施構(gòu)建來(lái)行的。也就是說(shuō),設(shè)計(jì)需要通過(guò)實(shí)施構(gòu)建來(lái)獲得驗(yàn)證,而在構(gòu)建的過(guò)程中新獲得的知識(shí)獲得驗(yàn)證,而在構(gòu)建的過(guò)程中新獲得的知識(shí)又可以幫助設(shè)計(jì)又可以幫助設(shè)計(jì)從制定計(jì)劃的角度來(lái)看,分析、設(shè)計(jì)、構(gòu)建從制定計(jì)劃的角度來(lái)看,分析、設(shè)計(jì)、構(gòu)建和測(cè)試活動(dòng)并不容易預(yù)測(cè)和測(cè)試活動(dòng)并不容易預(yù)測(cè) 軟件工程軟件工

3、程4 軟件工程軟件工程5敏捷方法的基本觀點(diǎn)敏捷方法的基本觀點(diǎn)強(qiáng)調(diào)強(qiáng)調(diào)適應(yīng)性適應(yīng)性而不是可預(yù)測(cè)性而不是可預(yù)測(cè)性經(jīng)典軟件開(kāi)發(fā)方法經(jīng)典軟件開(kāi)發(fā)方法:通過(guò)控制變化實(shí)現(xiàn)軟件開(kāi)發(fā)的通過(guò)控制變化實(shí)現(xiàn)軟件開(kāi)發(fā)的可預(yù)測(cè)性可預(yù)測(cè)性敏捷敏捷軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)方法:變化變化是不可避免的,應(yīng)該通過(guò)是不可避免的,應(yīng)該通過(guò)改善管理實(shí)踐和工程實(shí)踐來(lái)更好地適應(yīng)改善管理實(shí)踐和工程實(shí)踐來(lái)更好地適應(yīng)變化變化強(qiáng)調(diào)強(qiáng)調(diào)人人在在項(xiàng)目中項(xiàng)目中的的關(guān)鍵作用關(guān)鍵作用敏捷軟件開(kāi)發(fā)認(rèn)為人不是可以互相替換的敏捷軟件開(kāi)發(fā)認(rèn)為人不是可以互相替換的“編程部編程部件件”,而是具有創(chuàng)造力的個(gè)體,成功的軟件開(kāi)發(fā)活,而是具有創(chuàng)造力的個(gè)體,成功的軟件開(kāi)發(fā)活動(dòng)依賴(lài)于

4、人的主觀能動(dòng)性動(dòng)依賴(lài)于人的主觀能動(dòng)性 軟件工程軟件工程6 軟件工程軟件工程強(qiáng)調(diào)強(qiáng)調(diào)“剛剛好剛剛好”(Just enough)在保證軟件開(kāi)發(fā)有成功產(chǎn)出的前提下,盡量減少開(kāi)在保證軟件開(kāi)發(fā)有成功產(chǎn)出的前提下,盡量減少開(kāi)發(fā)過(guò)程中的活動(dòng)和制品的方法,即開(kāi)發(fā)中的活動(dòng)及發(fā)過(guò)程中的活動(dòng)和制品的方法,即開(kāi)發(fā)中的活動(dòng)及制品既不要太多也不要太少制品既不要太多也不要太少7敏捷方法的產(chǎn)生敏捷方法的產(chǎn)生從從20世世紀(jì)90年代開(kāi)始,逐年代開(kāi)始,逐漸產(chǎn)生了一大生了一大批敏捷批敏捷軟件開(kāi)件開(kāi)發(fā)方法方法其中比其中比較有影響的包括:極限有影響的包括:極限編程、程、Scrum、看板方法、精益看板方法、精益軟件開(kāi)件開(kāi)發(fā)方法、水晶方法、

5、水晶軟件開(kāi)件開(kāi)發(fā)方法(方法(crystal)、自適)、自適應(yīng)軟件開(kāi)件開(kāi)發(fā)(adaptive software development,ASD)、)、動(dòng)態(tài)系系統(tǒng)開(kāi)開(kāi)發(fā)方法(方法(dynamic system development method,DSDM)等)等 軟件工程軟件工程8敏捷宣言敏捷宣言2001年年2月,月,17位敏捷方法的先位敏捷方法的先驅(qū)在美國(guó)在美國(guó)猶他州召開(kāi)了猶他州召開(kāi)了為期期2天的會(huì)天的會(huì)議,成立了敏成立了敏捷捷軟件開(kāi)件開(kāi)發(fā)聯(lián)盟盟 并并發(fā)布了布了“敏捷宣言敏捷宣言”該宣言由四個(gè)價(jià)宣言由四個(gè)價(jià)值觀聲明聲明組成,并提成,并提煉出出敏捷敏捷軟件開(kāi)件開(kāi)發(fā)方法必方法必須遵循的遵循的12條

6、原條原則 軟件工程軟件工程9敏捷宣言敏捷宣言我們我們正通過(guò)親身或者協(xié)助他人進(jìn)行軟件開(kāi)發(fā)實(shí)踐來(lái)正通過(guò)親身或者協(xié)助他人進(jìn)行軟件開(kāi)發(fā)實(shí)踐來(lái)探索更好的軟件開(kāi)發(fā)方法。探索更好的軟件開(kāi)發(fā)方法?;诖耍覀兘⒘巳缦碌膬r(jià)值觀:基于此,我們建立了如下的價(jià)值觀:個(gè)體個(gè)體和交互和交互 重于重于 過(guò)程和工具程和工具工作的工作的軟件件 重于重于 詳盡的文檔盡的文檔客客戶(hù)合作合作 重于重于 合同合同談判判響響應(yīng)變化化 重于重于 遵循遵循計(jì)劃劃也就是說(shuō)也就是說(shuō),盡管右項(xiàng)有其價(jià)值,盡管右項(xiàng)有其價(jià)值,我們更重視左項(xiàng)的價(jià)值我們更重視左項(xiàng)的價(jià)值 軟件工程軟件工程10 軟件工程軟件工程個(gè)體和交互個(gè)體和交互 重于重于 過(guò)程和工具過(guò)程

7、和工具過(guò)程和工具是重要的,但是程和工具是重要的,但是軟件開(kāi)件開(kāi)發(fā)中人的作用和中人的作用和交流的作用更需要被交流的作用更需要被進(jìn)一步一步強(qiáng)調(diào)軟件是由人件是由人組成的成的團(tuán)隊(duì)來(lái)開(kāi)來(lái)開(kāi)發(fā)的,與的,與軟件件項(xiàng)目相關(guān)目相關(guān)的各的各類(lèi)人人員通通過(guò)充分的交流和有效的合作,才能成充分的交流和有效的合作,才能成功地開(kāi)功地開(kāi)發(fā)出得到用出得到用戶(hù)滿(mǎn)意的意的軟件件如果光有定如果光有定義良好的良好的過(guò)程和先程和先進(jìn)的工具,而人的工具,而人員的的技能很差,或者不能很好地交流和技能很差,或者不能很好地交流和協(xié)作,作,軟件是很件是很難成功地開(kāi)成功地開(kāi)發(fā)的的11 軟件工程軟件工程工作的軟件工作的軟件 重于重于 詳盡的文檔詳盡的

8、文檔可以工作的可以工作的軟件是件是軟件開(kāi)件開(kāi)發(fā)工作的最工作的最終目目標(biāo)好的好的必要的文必要的文檔能檔能幫助我?guī)椭覀兝斫饫斫廛浖鍪裁?,怎么件做什么,怎么做以及如何使用做以及如何使用,是有價(jià),是有價(jià)值的。但是,的。但是,軟件開(kāi)件開(kāi)發(fā)的的主要目主要目標(biāo)仍然是仍然是創(chuàng)建可運(yùn)行的建可運(yùn)行的軟件件敏捷敏捷軟件開(kāi)件開(kāi)發(fā)強(qiáng)調(diào)不斷地快速地向用不斷地快速地向用戶(hù)提交可運(yùn)行提交可運(yùn)行的的軟件(不一定是完整的件(不一定是完整的軟件),以得到用件),以得到用戶(hù)的的認(rèn)可可12 軟件工程軟件工程客戶(hù)合作客戶(hù)合作 重于重于 合同談判合同談判只有客只有客戶(hù)才能明確才能明確說(shuō)明需要什么明需要什么樣的的軟件,然而,件,然而,大

9、量的大量的實(shí)踐表明,在開(kāi)踐表明,在開(kāi)發(fā)的早期客的早期客戶(hù)常常不能完整常常不能完整地表達(dá)他地表達(dá)他們的全部需求,有些早期確定的需求,以的全部需求,有些早期確定的需求,以后也可能會(huì)改后也可能會(huì)改變由于由于軟件開(kāi)件開(kāi)發(fā)的的預(yù)測(cè)性的困性的困難,想通,想通過(guò)合同合同談判的判的方式,將需求固定下來(lái)常常是困方式,將需求固定下來(lái)常常是困難的的敏捷敏捷軟件開(kāi)件開(kāi)發(fā)強(qiáng)調(diào)與客與客戶(hù)的的協(xié)作,通作,通過(guò)與客與客戶(hù)的交的交流和流和緊密合作來(lái)密合作來(lái)發(fā)現(xiàn)用用戶(hù)的需求的需求13 軟件工程軟件工程響應(yīng)變化響應(yīng)變化 重于重于 遵循計(jì)劃遵循計(jì)劃任何任何軟件件項(xiàng)目的開(kāi)目的開(kāi)發(fā)都都應(yīng)該制制訂一個(gè)一個(gè)項(xiàng)目目計(jì)劃,以劃,以確定各開(kāi)確定各

10、開(kāi)發(fā)任任務(wù)的的優(yōu)先先順序和起止日期。然而,隨序和起止日期。然而,隨著著項(xiàng)目的目的進(jìn)展,需求、展,需求、業(yè)務(wù)環(huán)境、技境、技術(shù)等都可能等都可能變化,任化,任務(wù)的的優(yōu)先先順序和起止日期也可能因種種原因序和起止日期也可能因種種原因會(huì)改會(huì)改變因此,因此,項(xiàng)目目計(jì)劃劃應(yīng)具有可塑性,有具有可塑性,有變動(dòng)的余地。當(dāng)?shù)挠嗟?。?dāng)出出現(xiàn)變化化時(shí)及及時(shí)做出反做出反應(yīng),修,修訂計(jì)劃以適劃以適應(yīng)變化化14敏捷宣言的敏捷宣言的12條原則條原則 我們的最高優(yōu)先級(jí)是持續(xù)不斷地、及早地交付有價(jià)值的我們的最高優(yōu)先級(jí)是持續(xù)不斷地、及早地交付有價(jià)值的軟件來(lái)使客戶(hù)滿(mǎn)意軟件來(lái)使客戶(hù)滿(mǎn)意 擁抱變化,即使是在項(xiàng)目開(kāi)發(fā)的后期。敏捷過(guò)程愿意為擁抱

11、變化,即使是在項(xiàng)目開(kāi)發(fā)的后期。敏捷過(guò)程愿意為了客戶(hù)的競(jìng)爭(zhēng)優(yōu)勢(shì)而了客戶(hù)的競(jìng)爭(zhēng)優(yōu)勢(shì)而接納接納變化變化 經(jīng)常地交付可工作的軟件,相隔幾星期或一兩個(gè)月,傾經(jīng)常地交付可工作的軟件,相隔幾星期或一兩個(gè)月,傾向于向于采用采用較短的周期較短的周期 業(yè)務(wù)人員和開(kāi)發(fā)人員必須在項(xiàng)目的整個(gè)階段緊密合作業(yè)務(wù)人員和開(kāi)發(fā)人員必須在項(xiàng)目的整個(gè)階段緊密合作 圍繞著被激勵(lì)的個(gè)體構(gòu)建項(xiàng)目。為個(gè)體提供所需的環(huán)境圍繞著被激勵(lì)的個(gè)體構(gòu)建項(xiàng)目。為個(gè)體提供所需的環(huán)境和支持,給予信任,從而達(dá)成目標(biāo)和支持,給予信任,從而達(dá)成目標(biāo) 在團(tuán)隊(duì)內(nèi)和團(tuán)隊(duì)間溝通信息的最有效和最高效的方式是在團(tuán)隊(duì)內(nèi)和團(tuán)隊(duì)間溝通信息的最有效和最高效的方式是面對(duì)面的交流面對(duì)面的

12、交流 軟件工程軟件工程15敏捷宣言的敏捷宣言的12條原則(續(xù))條原則(續(xù))可工作的軟件是進(jìn)度的首要度量標(biāo)準(zhǔn)??晒ぷ鞯能浖沁M(jìn)度的首要度量標(biāo)準(zhǔn)。敏捷過(guò)程倡導(dǎo)可持續(xù)開(kāi)發(fā)。項(xiàng)目發(fā)起者、開(kāi)發(fā)人員和用敏捷過(guò)程倡導(dǎo)可持續(xù)開(kāi)發(fā)。項(xiàng)目發(fā)起者、開(kāi)發(fā)人員和用戶(hù)應(yīng)該維持一個(gè)可持續(xù)的步調(diào)。戶(hù)應(yīng)該維持一個(gè)可持續(xù)的步調(diào)。持續(xù)地追求技術(shù)卓越和良好設(shè)計(jì),可以提高敏捷性持續(xù)地追求技術(shù)卓越和良好設(shè)計(jì),可以提高敏捷性 以簡(jiǎn)潔為本,它是減少不必要工作的藝術(shù)。以簡(jiǎn)潔為本,它是減少不必要工作的藝術(shù)。最好的架構(gòu)、需求和設(shè)計(jì)是從自組織的團(tuán)隊(duì)中涌現(xiàn)出來(lái)最好的架構(gòu)、需求和設(shè)計(jì)是從自組織的團(tuán)隊(duì)中涌現(xiàn)出來(lái)的。的。團(tuán)隊(duì)定期地反思如何變得更加高效,并相

13、應(yīng)地調(diào)整自身團(tuán)隊(duì)定期地反思如何變得更加高效,并相應(yīng)地調(diào)整自身的行為。的行為。軟件工程軟件工程16敏捷方法的公共特征敏捷方法的公共特征致力于降低致力于降低變化化帶來(lái)來(lái)的成本的成本強(qiáng)調(diào)價(jià)價(jià)值強(qiáng)調(diào)人的人的作用作用使用增量和迭代的開(kāi)使用增量和迭代的開(kāi)發(fā)方法方法 軟件工程軟件工程17 軟件工程軟件工程內(nèi)容摘要內(nèi)容摘要敏捷敏捷軟件開(kāi)件開(kāi)發(fā)概述概述極限極限編程(程(XP)方法)方法相關(guān)敏捷相關(guān)敏捷過(guò)程模型程模型Scrum方法方法動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法敏捷建模敏捷建模敏捷統(tǒng)一過(guò)程敏捷統(tǒng)一過(guò)程18 軟件工程軟件工程XP(eXtreme Programming)方法方法1996年,年,Kent Beck

14、等人在等人在Chrysler的的C3項(xiàng)目的開(kāi)目的開(kāi)發(fā)過(guò)程中逐步程中逐步產(chǎn)生了極限生了極限編程的基本概程的基本概念念1999年,年,Kent Beck撰寫(xiě)了撰寫(xiě)了解析極限解析極限編程:程:擁抱抱變化化,對(duì)極限極限編程的價(jià)程的價(jià)值觀、原、原則和和實(shí)踐踐進(jìn)行了行了闡述述19極限編程過(guò)程極限編程過(guò)程 軟件工程軟件工程20XP方法方法XP 策劃策劃開(kāi)始于傾聽(tīng),傾聽(tīng)產(chǎn)生一系列開(kāi)始于傾聽(tīng),傾聽(tīng)產(chǎn)生一系列“用戶(hù)故事用戶(hù)故事”。團(tuán)隊(duì)成員評(píng)估每一個(gè)故事,并給出以開(kāi)發(fā)周數(shù)為度量單團(tuán)隊(duì)成員評(píng)估每一個(gè)故事,并給出以開(kāi)發(fā)周數(shù)為度量單位的位的成本成本。團(tuán)隊(duì)共同決定如何將故事分組,并置于將要開(kāi)發(fā)的下一團(tuán)隊(duì)共同決定如何將故事分

15、組,并置于將要開(kāi)發(fā)的下一個(gè)個(gè)軟件增量軟件增量中中。給出對(duì)給出對(duì)下一個(gè)發(fā)布版本的基本承諾(就包括的故事、交下一個(gè)發(fā)布版本的基本承諾(就包括的故事、交付日期和其他項(xiàng)目事項(xiàng))付日期和其他項(xiàng)目事項(xiàng))項(xiàng)目的第一個(gè)發(fā)行版本(也稱(chēng)為一個(gè)軟件增量)交付之項(xiàng)目的第一個(gè)發(fā)行版本(也稱(chēng)為一個(gè)軟件增量)交付之后,后,XP團(tuán)隊(duì)計(jì)算團(tuán)隊(duì)計(jì)算項(xiàng)目的速度項(xiàng)目的速度,用于幫助估計(jì)后續(xù)發(fā)行版用于幫助估計(jì)后續(xù)發(fā)行版本的發(fā)布日期和進(jìn)度安排。本的發(fā)布日期和進(jìn)度安排。軟件工程軟件工程21XP方法方法XP設(shè)計(jì)設(shè)計(jì)嚴(yán)格遵循KIS(Keep It Simple,保持簡(jiǎn)潔)原則。鼓勵(lì)使用CRC卡。如果在設(shè)計(jì)中碰到困難,推薦使用“Spike解決方

16、案”鼓勵(lì)“重構(gòu)”以不改變代碼外部行為而改進(jìn)其內(nèi)部結(jié)構(gòu)的方式來(lái)修改軟件系統(tǒng)的過(guò)程。XP編程編程推薦在編碼開(kāi)始之前建立單元測(cè)試。鼓勵(lì)“結(jié)對(duì)編程”。XP測(cè)試測(cè)試所有單元測(cè)試應(yīng)當(dāng)使用一個(gè)可以自動(dòng)實(shí)施的框架?!膀?yàn)收測(cè)試”由客戶(hù)規(guī)定技術(shù)條件,并且著眼于客戶(hù)可見(jiàn)的系統(tǒng)級(jí)特征和功能。22結(jié)對(duì)編程結(jié)對(duì)編程結(jié)對(duì)編程程提高了提高了設(shè)計(jì)的可靠性和的可靠性和質(zhì)量量在做任何設(shè)計(jì)的時(shí)候在做任何設(shè)計(jì)的時(shí)候,都有兩個(gè)程序員一起思考,都有兩個(gè)程序員一起思考,可以匯集兩個(gè)程序員的設(shè)計(jì)思想可以匯集兩個(gè)程序員的設(shè)計(jì)思想在代碼編寫(xiě)完成的時(shí)候同時(shí)也通過(guò)了代碼審查在代碼編寫(xiě)完成的時(shí)候同時(shí)也通過(guò)了代碼審查這種方式有助于減少程序中的種方式有助于

17、減少程序中的錯(cuò)誤,降低,降低測(cè)試時(shí)間和和測(cè)試成本成本 軟件工程軟件工程23 軟件工程軟件工程XP核心實(shí)踐:用戶(hù)故事核心實(shí)踐:用戶(hù)故事故事是故事是對(duì)團(tuán)隊(duì)?wèi)?yīng)該完成的工作的完成的工作的陳述述。極限。極限編程程通通過(guò)故事來(lái)體故事來(lái)體現(xiàn)價(jià)價(jià)值觀中的中的“溝通溝通”的原的原則。好的。好的用用戶(hù)故事故事應(yīng)該能能夠觸觸發(fā)客客戶(hù)和開(kāi)和開(kāi)發(fā)團(tuán)隊(duì)之之間的的溝通溝通作作為和客和客戶(hù)的良好溝通的成果,故事的良好溝通的成果,故事?lián)碛星宄耐暧星宄耐瓿沙蓸?biāo)準(zhǔn)。一種常準(zhǔn)。一種常見(jiàn)的策略是,從用的策略是,從用戶(hù)的角度描述一的角度描述一組驗(yàn)收收測(cè)試用例,開(kāi)用例,開(kāi)發(fā)團(tuán)隊(duì)使用使用該驗(yàn)收收測(cè)試用例來(lái)用例來(lái)驗(yàn)證是否已是否已經(jīng)完成了某

18、個(gè)完成了某個(gè)故事故事24 軟件工程軟件工程XP核心實(shí)踐核心實(shí)踐:估算:估算估算是極限估算是極限編程中程中隱含的含的實(shí)踐,很多踐,很多應(yīng)用極限用極限編程程的的團(tuán)隊(duì)使用估算來(lái)幫助溝通、制定迭代和使用估算來(lái)幫助溝通、制定迭代和發(fā)布布計(jì)劃劃估算不估算不僅僅是幫助確定故事的是幫助確定故事的規(guī)模,更重要的是通模,更重要的是通過(guò)對(duì)故事點(diǎn)的故事點(diǎn)的討論,團(tuán)隊(duì)可以可以發(fā)現(xiàn)需求或需求或?qū)崿F(xiàn)中可中可能存在的能存在的問(wèn)題25 軟件工程軟件工程XP核心實(shí)踐:簡(jiǎn)單設(shè)計(jì)核心實(shí)踐:簡(jiǎn)單設(shè)計(jì)完成了定完成了定義的功能的功能,能通能通過(guò)所有的所有的測(cè)試該設(shè)計(jì)描述了程序描述了程序員的重要意的重要意圖,便于理解和溝通;,便于理解和溝通

19、;設(shè)計(jì)和和實(shí)現(xiàn)沒(méi)有冗余、沒(méi)有重復(fù)的沒(méi)有冗余、沒(méi)有重復(fù)的邏輯在在滿(mǎn)足以上條件的前提下,沒(méi)有多余的足以上條件的前提下,沒(méi)有多余的類(lèi)和方法和方法26 軟件工程軟件工程XP核心實(shí)踐:重構(gòu)核心實(shí)踐:重構(gòu)重構(gòu)是在不改重構(gòu)是在不改變代代碼的外部行的外部行為的情況下,通的情況下,通過(guò)調(diào)整內(nèi)部的整內(nèi)部的結(jié)構(gòu),來(lái)持構(gòu),來(lái)持續(xù)保持代保持代碼的可理解、可的可理解、可維護(hù)特征特征27 軟件工程軟件工程XP核心實(shí)踐:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)核心實(shí)踐:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)測(cè)試驅(qū)動(dòng)開(kāi)開(kāi)發(fā)的的3個(gè)快速循個(gè)快速循環(huán)的步的步驟:編寫(xiě)一個(gè)寫(xiě)一個(gè)測(cè)試該測(cè)試試圖發(fā)現(xiàn)代代碼中有一中有一處功能沒(méi)有功能沒(méi)有實(shí)現(xiàn),或,或者代者代碼中存在一個(gè)需要修復(fù)的中存在一個(gè)需要

20、修復(fù)的問(wèn)題 編寫(xiě)代寫(xiě)代碼使用盡可能快的方式使用盡可能快的方式編寫(xiě)寫(xiě)產(chǎn)品代品代碼,使,使這個(gè)個(gè)測(cè)試得以通得以通過(guò) 對(duì)代代碼進(jìn)行重構(gòu)行重構(gòu)28 軟件工程軟件工程XP核心實(shí)踐核心實(shí)踐:結(jié)對(duì)編程:結(jié)對(duì)編程結(jié)對(duì)編程提高了程提高了設(shè)計(jì)的可靠性和的可靠性和質(zhì)量量在做任何設(shè)計(jì)的時(shí)候在做任何設(shè)計(jì)的時(shí)候,都有兩個(gè)程序員一起思考,可以都有兩個(gè)程序員一起思考,可以匯集兩個(gè)程序員的設(shè)計(jì)匯集兩個(gè)程序員的設(shè)計(jì)思想思想在代碼編寫(xiě)完成的時(shí)候同時(shí)也通過(guò)了在代碼編寫(xiě)完成的時(shí)候同時(shí)也通過(guò)了代碼審查代碼審查這種方式有助于減少程序中的種方式有助于減少程序中的錯(cuò)誤,降低,降低測(cè)試時(shí)間和和測(cè)試成本成本29瀑布模式:瀑布模式:重型開(kāi)發(fā)方式,每

21、個(gè)階段都要求完美,無(wú)法適應(yīng)變更迭代開(kāi)迭代開(kāi)發(fā)不要求每個(gè)階段的任務(wù)都完美,逐步完善螺旋開(kāi)螺旋開(kāi)發(fā)風(fēng)險(xiǎn)驅(qū)動(dòng)的開(kāi)發(fā)方式敏捷開(kāi)敏捷開(kāi)發(fā)相比迭代,開(kāi)發(fā)周期更短,并強(qiáng)調(diào)溝通合作 軟件工程軟件工程30極限編程的核心價(jià)值極限編程的核心價(jià)值溝通溝通簡(jiǎn)單反反饋勇氣勇氣謙遜強(qiáng)調(diào)把列出的每個(gè)方法和思想做到極限把列出的每個(gè)方法和思想做到極限 軟件工程軟件工程31 軟件工程軟件工程內(nèi)容摘要內(nèi)容摘要敏捷敏捷軟件開(kāi)件開(kāi)發(fā)概述概述極限極限編程(程(XP)方法)方法相關(guān)敏捷相關(guān)敏捷過(guò)程模型程模型Scrum方法方法動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法敏捷建模敏捷建模敏捷統(tǒng)一過(guò)程敏捷統(tǒng)一過(guò)程32敏捷開(kāi)發(fā)的本質(zhì)敏捷開(kāi)發(fā)的本質(zhì)以人以人為中心

22、、迭代、循序中心、迭代、循序漸進(jìn)的開(kāi)的開(kāi)發(fā)方法方法不以文檔作不以文檔作為驅(qū)動(dòng),強(qiáng)調(diào)人與人之人與人之間的面的面對(duì)面的溝通交面的溝通交流流迭代:把復(fù)迭代:把復(fù)雜并且開(kāi)并且開(kāi)發(fā)周期周期長(zhǎng)的開(kāi)的開(kāi)發(fā)任任務(wù),分解成很多,分解成很多小周期可完成的任小周期可完成的任務(wù),這樣的每個(gè)小周期就是一個(gè)迭代的每個(gè)小周期就是一個(gè)迭代過(guò)程,每次迭代都程,每次迭代都產(chǎn)生一個(gè)可交付的生一個(gè)可交付的產(chǎn)品品快速迭代快速迭代 擁抱抱變化化敏捷是一種指敏捷是一種指導(dǎo)思想,思想,Scrum和和XP就是具體的開(kāi)就是具體的開(kāi)發(fā)方式方式了,了,Scrum偏重于偏重于過(guò)程,而程,而XP重在重在實(shí)踐踐Scrum,橄橄欖球運(yùn)球運(yùn)動(dòng)的的專(zhuān)業(yè)術(shù)語(yǔ),表

23、示,表示“爭(zhēng)球爭(zhēng)球”動(dòng)作,作,軟件工程軟件工程33Scrum方法方法Scrum90年代中期,敏捷過(guò)程模型年代中期,敏捷過(guò)程模型Scrum 橄欖球比賽橄欖球比賽;Sprint 比賽中的沖刺比賽中的沖刺框架性過(guò)程活動(dòng)框架性過(guò)程活動(dòng)需求需求分析分析設(shè)計(jì)設(shè)計(jì)演化演化交付交付 軟件工程軟件工程34過(guò)程流過(guò)程流35Scrum開(kāi)發(fā)過(guò)程開(kāi)發(fā)過(guò)程 軟件工程軟件工程36 軟件工程軟件工程37Scrum開(kāi)發(fā)過(guò)程開(kāi)發(fā)過(guò)程確定確定Product Backlog(按(按優(yōu)先先順序排列的一個(gè)序排列的一個(gè)產(chǎn)品需求列表品需求列表;Scrum Team根據(jù)根據(jù)Product Backlog列表,做工作量的列表,做工作量的預(yù)估和安

24、估和安排;排;根據(jù)根據(jù)Product Backlog列表,通列表,通過(guò) Sprint Planning Meeting來(lái)從來(lái)從中挑中挑選出出一個(gè)一個(gè)Story作作為本次迭代完成的目本次迭代完成的目標(biāo),該目目標(biāo)的的時(shí)間周周期是期是14個(gè)星期,然后把個(gè)星期,然后把這個(gè)個(gè)Story進(jìn)行行細(xì)化,形成一個(gè)化,形成一個(gè)Sprint Backlog;Sprint Backlog是由是由Scrum Team去完成的,每個(gè)成去完成的,每個(gè)成員根據(jù)根據(jù)Sprint Backlog再再細(xì)化成更小的任化成更小的任務(wù)(細(xì)到每個(gè)任到每個(gè)任務(wù)的工作量在的工作量在2天內(nèi)能完成);天內(nèi)能完成);軟件工程軟件工程38在在Scru

25、m Team完成完成計(jì)劃會(huì)劃會(huì)議上上選出的出的Sprint Backlog過(guò)程中,程中,需要需要進(jìn)行行 Daily Scrum Meeting(每日站立會(huì)(每日站立會(huì)議),),每次會(huì)每次會(huì)議控控制在制在15分分鐘左右左右,每個(gè)人向所有成,每個(gè)人向所有成員當(dāng)面當(dāng)面匯報(bào)你昨天完成了什么,你昨天完成了什么,并且向所有成并且向所有成員承承諾你今天要完成什么,同你今天要完成什么,同時(shí)遇到不能解決的遇到不能解決的問(wèn)題也可以提出,每個(gè)人回答完成后,要走到黑板前更新自己的也可以提出,每個(gè)人回答完成后,要走到黑板前更新自己的Sprint burn down(Sprint燃盡燃盡圖)每日集成,每天都要有一個(gè)可以成

26、功每日集成,每天都要有一個(gè)可以成功編譯、并且可以演示的版本、并且可以演示的版本(自自動(dòng)工具工具實(shí)現(xiàn))當(dāng)一個(gè)當(dāng)一個(gè)Story完成,也就是完成,也就是Sprint Backlog被完成,也就表示一被完成,也就表示一次次Sprint完成,要完成,要進(jìn)行行Srpint Review Meeting(演示會(huì)(演示會(huì)議),),也稱(chēng)也稱(chēng)為評(píng)審會(huì)會(huì)議,產(chǎn)品品負(fù)責(zé)人和客人和客戶(hù)都要參加每一個(gè)都要參加每一個(gè)Scrum Team的成的成員都要向他都要向他們演示自己完成的演示自己完成的軟件件產(chǎn)品品Sprint RetrospectiveMeeting(回(回顧會(huì)會(huì)議),也稱(chēng)),也稱(chēng)為總結(jié)會(huì)會(huì)議,以,以輪流流發(fā)言方式言

27、方式進(jìn)行,每個(gè)人都要行,每個(gè)人都要發(fā)言,言,總結(jié)并并討論改改進(jìn)的的地方,放入下一地方,放入下一輪Sprint的的產(chǎn)品需求中;品需求中;軟件工程軟件工程39 軟件工程軟件工程40Scrum的的33553個(gè)角色個(gè)角色Product Owner:產(chǎn)品品負(fù)責(zé)人,清楚的知道人,清楚的知道產(chǎn)品的愿景,品的愿景,需要需要對(duì)產(chǎn)品待品待辦列表的梳理,列表的梳理,優(yōu)化,化,優(yōu)先先級(jí)排序等排序等負(fù)責(zé)。決定決定團(tuán)隊(duì)每個(gè)沖刺要完成哪些任每個(gè)沖刺要完成哪些任務(wù),負(fù)責(zé)產(chǎn)品的功能和品的功能和達(dá)到要求的達(dá)到要求的標(biāo)準(zhǔn),指定準(zhǔn),指定軟件的件的發(fā)布日期和交付內(nèi)容布日期和交付內(nèi)容Scrum Master是是Scrum教教練和和團(tuán)隊(duì)帶

28、頭人,確保人,確保團(tuán)隊(duì)合理的運(yùn)作合理的運(yùn)作Scrum,并幫助,并幫助團(tuán)隊(duì)掃除除實(shí)施中的障礙,施中的障礙,負(fù)責(zé)流程在流程在項(xiàng)目中的目中的順利利實(shí)施和施和進(jìn)行行Team是開(kāi)是開(kāi)發(fā)團(tuán)隊(duì),能,能夠交付一個(gè)端到端的真正交付一個(gè)端到端的真正對(duì)客客戶(hù)有價(jià)有價(jià)值的的產(chǎn)品品 軟件工程軟件工程413個(gè)工件個(gè)工件Product Backlog:是指是指產(chǎn)品待品待辦事事項(xiàng)的集合,其中事的集合,其中事務(wù)有有優(yōu)先先級(jí)判斷,先判斷,先處理理優(yōu)先先級(jí)高的事高的事項(xiàng)。Sprint Backlog:每個(gè)迭代的功能開(kāi)每個(gè)迭代的功能開(kāi)發(fā)列表,列表,PO會(huì)根會(huì)根據(jù)據(jù)團(tuán)隊(duì)的能力并按照的能力并按照產(chǎn)品待品待辦列表中的列表中的優(yōu)先先級(jí)來(lái)來(lái)選

29、取每取每個(gè)沖刺要做的事情。個(gè)沖刺要做的事情。團(tuán)隊(duì)可以可以專(zhuān)注在每個(gè)迭沖刺要走的注在每個(gè)迭沖刺要走的事情上而不被打斷。事情上而不被打斷。Burn down chart:燃盡燃盡圖,在每個(gè)迭代,在每個(gè)迭代顯示剩余工作示剩余工作時(shí)間和任和任務(wù)完成情況完成情況 軟件工程軟件工程425種活動(dòng)種活動(dòng)Sprint:沖刺沖刺,一個(gè)固定的一個(gè)固定的時(shí)間周期(通常周期(通常為2w-4w),團(tuán)隊(duì)要盡可能在要盡可能在這個(gè)周期內(nèi)交付可以工作的個(gè)周期內(nèi)交付可以工作的軟件件給客客戶(hù)sprint planning meeting:沖刺開(kāi)始的沖刺開(kāi)始的時(shí)候,候,PO會(huì)和會(huì)和團(tuán)隊(duì)一起從一起從PB中中選擇本次要做的任本次要做的任務(wù)

30、/故事,并且會(huì)故事,并且會(huì)對(duì)團(tuán)隊(duì)提出的疑提出的疑問(wèn)進(jìn)行解行解釋和澄清。同和澄清。同時(shí)團(tuán)隊(duì)會(huì)估算故事并分解成任會(huì)估算故事并分解成任務(wù),最后會(huì)形成本次的,最后會(huì)形成本次的Sprint Backlog.daily standup meeting:每日站會(huì),每日站會(huì),scrum為了加了加強(qiáng)團(tuán)隊(duì)溝通,每天溝通,每天團(tuán)隊(duì)都要都要選擇一個(gè)一個(gè)時(shí)間站在一起,互相交流彼此的站在一起,互相交流彼此的進(jìn)展和展和問(wèn)題,以便及以便及時(shí)解決解決出出現(xiàn)的的問(wèn)題,同,同時(shí)也能也能讓團(tuán)隊(duì)隨隨時(shí)了解我了解我們離沖刺目離沖刺目標(biāo)還有多有多遠(yuǎn)。sprint review:在在sprint周期最后,需要周期最后,需要進(jìn)行一次行一次評(píng)審

31、會(huì)會(huì)議,讓團(tuán)隊(duì)向向產(chǎn)品品負(fù)責(zé)人和利益相關(guān)者展示已完成的功能。人和利益相關(guān)者展示已完成的功能。sprint審核的大部分核的大部分實(shí)踐用于踐用于團(tuán)隊(duì)成成員展示功能、回答利益相關(guān)者展示功能、回答利益相關(guān)者對(duì)展示的疑展示的疑問(wèn)并并記錄所期望的更改。所期望的更改。評(píng)審會(huì)會(huì)議可以吸引相關(guān)利益者的關(guān)注,可以吸引相關(guān)利益者的關(guān)注,讓其他人了解其他人了解團(tuán)隊(duì)在做些什么,在做些什么,并得到重要反并得到重要反饋。做演示也會(huì)迫使開(kāi)。做演示也會(huì)迫使開(kāi)發(fā)團(tuán)隊(duì)真正完成一些工作。真正完成一些工作。retrospective meeting:回回顧會(huì)會(huì)議,通常在,通常在reivew會(huì)會(huì)議之后開(kāi)始,有之后開(kāi)始,有團(tuán)隊(duì)成成員在沖刺

32、在沖刺結(jié)束之后束之后對(duì)上個(gè)迭代上個(gè)迭代進(jìn)行行總結(jié),同,同時(shí)提出一些改提出一些改進(jìn)方案,方案,這是一個(gè)持是一個(gè)持續(xù)改改進(jìn)的的過(guò)程程 軟件工程軟件工程435個(gè)價(jià)值觀個(gè)價(jià)值觀承承諾 愿意愿意對(duì)目目標(biāo)做出承做出承諾專(zhuān)注注 把你的心思和能力都用到你承把你的心思和能力都用到你承諾的工的工作上去作上去開(kāi)放開(kāi)放 Scrum 把把項(xiàng)目中的一切開(kāi)放目中的一切開(kāi)放給每個(gè)人每個(gè)人看看尊重尊重 每個(gè)人都有他獨(dú)特的背景和每個(gè)人都有他獨(dú)特的背景和經(jīng)驗(yàn)勇氣勇氣 有勇氣做出承有勇氣做出承諾,履行承,履行承諾,接受,接受別人的尊重人的尊重 軟件工程軟件工程4445動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法(DSDM)在可控在可控項(xiàng)目目環(huán)境

33、中使用增量原型開(kāi)境中使用增量原型開(kāi)發(fā)模式以完模式以完全全滿(mǎn)足足對(duì)時(shí)間有有約束的系束的系統(tǒng)的構(gòu)建和的構(gòu)建和維護(hù)是一種是一種過(guò)程框架,程框架,使用迭代使用迭代軟件件過(guò)程程,Pareto原原則(20%的的時(shí)間完成完成80%的功能的功能)三個(gè)迭代周期三個(gè)迭代周期功能模型迭代設(shè)計(jì)和構(gòu)建迭代實(shí)現(xiàn) 增量不需要100%完成46敏捷建模敏捷建模對(duì)于大型,業(yè)務(wù)關(guān)鍵型系統(tǒng),傳統(tǒng)建模以及文檔:對(duì)于大型,業(yè)務(wù)關(guān)鍵型系統(tǒng),傳統(tǒng)建模以及文檔:完美完美 龐大龐大 難以維護(hù)難以維護(hù)由由Scott Ambler提出,以輕量級(jí)方式對(duì)待軟件提出,以輕量級(jí)方式對(duì)待軟件建模的標(biāo)準(zhǔn)、原則和實(shí)踐建模的標(biāo)準(zhǔn)、原則和實(shí)踐敏捷建模原則敏捷建模原則

34、有目的的建模有目的的建模使用多個(gè)模型,不同模型表達(dá)系統(tǒng)不同方面使用多個(gè)模型,不同模型表達(dá)系統(tǒng)不同方面輕裝上陣,只保留能提供長(zhǎng)期價(jià)值的模型輕裝上陣,只保留能提供長(zhǎng)期價(jià)值的模型內(nèi)容重于表述形式;內(nèi)容重于表述形式;理解模型及工具;建模方法適應(yīng)本地團(tuán)隊(duì)需要理解模型及工具;建模方法適應(yīng)本地團(tuán)隊(duì)需要47敏捷統(tǒng)一過(guò)程敏捷統(tǒng)一過(guò)程(AUP)Agile Unified Process,在大型上連續(xù),在小型在大型上連續(xù),在小型上迭代上迭代采用經(jīng)典采用經(jīng)典UP階段活動(dòng):起始、細(xì)化、構(gòu)建和轉(zhuǎn)換階段活動(dòng):起始、細(xì)化、構(gòu)建和轉(zhuǎn)換每個(gè)活動(dòng)中,迭代使用敏捷,盡快交付軟件增量每個(gè)活動(dòng)中,迭代使用敏捷,盡快交付軟件增量每個(gè)每個(gè)AUP迭代執(zhí)行以下活動(dòng):迭代執(zhí)行以下活動(dòng):建模建模實(shí)現(xiàn)實(shí)現(xiàn)測(cè)試測(cè)試部署部署配置及項(xiàng)目管理配置及項(xiàng)目管理環(huán)境管理環(huán)境管理

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!