摘要:本文為大家整理的是敏捷開發(fā)和瀑布式開發(fā)的區(qū)別,下面是具體介紹,供大家參考,更多PMI-ACP®考試相關(guān)資訊可關(guān)注希賽網(wǎng)。
在90年代末期,傳統(tǒng)軟件開發(fā)的方式因?yàn)槠浞彪s的過程,以及對(duì)文檔的過于嚴(yán)格的要求,造成了很大程度上的效率下降,也就是人們所說的“重型化危機(jī)”。因?yàn)檫@一原因,人們開始反思傳統(tǒng)方法的利弊,并對(duì)其弊端進(jìn)行了改進(jìn),提出了敏捷方法。那么敏捷開發(fā)與傳統(tǒng)瀑布式開發(fā)之間有什么區(qū)別呢?小編為大家整理了以下內(nèi)容,供大家參考。
傳統(tǒng)瀑布開發(fā)模式:
瀑布式(WM:Waterfall Model)開發(fā)是一種老舊的,正在過時(shí)的計(jì)算機(jī)軟件開發(fā)方法。最開始的軟件行業(yè)普遍采用這種方法,但是這種方法套用自傳統(tǒng)工業(yè)生產(chǎn),不適應(yīng)計(jì)算機(jī)軟件開發(fā)的具體情況。
大體分為這幾個(gè)階段:制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫、軟件測試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng)。由于這個(gè)架構(gòu)之中從制定計(jì)劃到最后的運(yùn)行維護(hù)過程中需求分析只在前期進(jìn)行了一次,在后面就沒有專門的需求分析過程,這個(gè)時(shí)候在需求變化的時(shí)候就很難去有效地響應(yīng)變化。因此,這個(gè)瀑布模型具有的缺點(diǎn)就是難于很好地表達(dá)和描述用戶的需求。其優(yōu)點(diǎn)是與一般系統(tǒng)工程一致,易于使用,不要求特別的技術(shù)與工具也能很好地進(jìn)行軟件開發(fā)。
傳統(tǒng)瀑布開發(fā)模式有以下顯著的特點(diǎn):
1、嚴(yán)格把軟件項(xiàng)目的開發(fā)分隔成各個(gè)開發(fā)階段:需求分析,要件定義,基本設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,單體測試,結(jié)合測試,系統(tǒng)測試等。使用里程碑的方式,嚴(yán)格定義了各開發(fā)階段的輸入和輸出。如果達(dá)不到要求的輸出,下一階段的工作就不展開。
2、重視和強(qiáng)調(diào)過程文檔,在開發(fā)的中后期才會(huì)看到軟件原型,早起只能通過文檔來了解系統(tǒng)的模樣。在這種情況下,文檔的重要性仿佛已經(jīng)超過了代碼的重要性。瀑布模型把每個(gè)開發(fā)階段都定義為黑盒,希望每個(gè)階段的人員只關(guān)心自己階段的工作,不需要關(guān)注其他階段的工作。
這種模式一般適用于需求比較明確、to B端項(xiàng)目。
敏捷開發(fā)模式:
敏捷開發(fā)(Agile)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測試,具備集成和可運(yùn)行的特征。
簡單地來說,敏捷開發(fā)并不追求前期完美的設(shè)計(jì)、完美編碼,而是力求在很短的周期內(nèi)開發(fā)出產(chǎn)品的核心功能,盡早發(fā)布出可用的版本。然后在后續(xù)的生產(chǎn)周期內(nèi),按照新需求不斷迭代升級(jí),完善產(chǎn)品。
與傳統(tǒng)開發(fā)方法相比,在敏捷開發(fā)的整個(gè)過程中,有以下幾個(gè)主要的特點(diǎn):
(1)敏捷開發(fā)的過程有著更強(qiáng)的適應(yīng)性而不是預(yù)設(shè)性,從敏捷宣言的第四條響應(yīng)變化高于預(yù)設(shè)計(jì)劃便可以看出來。因?yàn)檐浖_發(fā)過程的本身的不可預(yù)見性,很多用戶在項(xiàng)目開始時(shí)不可能對(duì)于這個(gè)項(xiàng)目有著一個(gè)完整而明確的預(yù)期。很多對(duì)軟件的預(yù)期都在后期的修改和完善過程中產(chǎn)生。因此高適應(yīng)性顯然更加符合軟件工程開發(fā)的實(shí)際。而敏捷開發(fā)實(shí)現(xiàn)其適應(yīng)性的方式主要在于,第一,縮短把項(xiàng)目提交給用戶的周期;第二,增加用戶,業(yè)務(wù)人員,開發(fā)人員這三者之間的交流;第三,通過減少重構(gòu)的成本以增加軟件的適應(yīng)性。
(2)敏捷開發(fā)的過程中,更加的注重人的因素。在傳統(tǒng)軟件工程中,個(gè)人的因素很少的被考慮到分工中,每個(gè)個(gè)體都是只是整個(gè)代碼開發(fā)機(jī)器的一個(gè)小小的螺絲釘,個(gè)人的意志和創(chuàng)造力很大程度上的被抹去為了更好的為集體服務(wù)。而在敏捷開發(fā)過程中,每個(gè)個(gè)人的潛力被充分的考慮,應(yīng)用什么技術(shù)很大程度上直接由在第開發(fā)的技術(shù)人員決定;每個(gè)人的特點(diǎn)和創(chuàng)造力都可以充分地發(fā)揮,這樣開發(fā)出來的軟件更加的具有生命力,因?yàn)樗谌肓碎_發(fā)者的心血和創(chuàng)意,開發(fā)者不再是進(jìn)行機(jī)械的乏味的堆砌,而是創(chuàng)造屬于自己的藝術(shù)品,這樣的條件下產(chǎn)生的代碼必然在質(zhì)量上更占優(yōu)勢。
(3)在敏捷開發(fā)的過程中,整個(gè)項(xiàng)目是測試驅(qū)動(dòng)的而不是文檔驅(qū)動(dòng)的。不僅每個(gè)模塊有著自己的相應(yīng)的測試單元,開發(fā)人員在開發(fā)自己的模塊的過程中必須保證自己所開發(fā)的模塊可以通過這一單元的測試,并且集成測試貫穿了整個(gè)開發(fā)過程的始終。集成測試每天會(huì)進(jìn)行十幾次甚至幾十次,而不是像傳統(tǒng)方法一樣只有當(dāng)各個(gè)模塊的編碼都結(jié)束了之后再進(jìn)行聯(lián)合調(diào)試。這樣,在軟件開發(fā)的進(jìn)程中每一點(diǎn)改動(dòng)所引起的問題都容嘉容易暴露出來,使得更加容易在錯(cuò)誤剛剛產(chǎn)生的時(shí)候發(fā)現(xiàn)問題從而解決問題。這樣就避免了在最后整個(gè)系統(tǒng)完成時(shí)錯(cuò)誤隱藏的太深給調(diào)試造成極大的困難。
總的來說,敏捷開發(fā)模式更適用于需求不明確、創(chuàng)新性強(qiáng)的項(xiàng)目,或者需要搶占市場的項(xiàng)目。
PMI-ACP®備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題