1. 程式人生 > >軟考複習之路—從瀑布模型到極限程式設計,敏捷開發

軟考複習之路—從瀑布模型到極限程式設計,敏捷開發

軟體開發是一門技術,也是一門藝術。

瀑布模型、極限程式設計、敏捷開發是有代表性的開發模式,在對開發者、客戶、最終的產品的關注上的變化,體現了軟體開發管理者在管理模式上的變化。

瀑布模型

是一種理想化的開發模型,要求有明確的需求分析,無法解決軟體需求不明確或不準確的問題。

瀑布模型像工廠流水線一樣把軟體開發過程分成各種工序,並且每個工序可以根據軟體產品的規模、參與

人員的多少進一步細分成更細的工序。更符合分層的設計思想,比較適合於大型軟體的開發。也因此瀑布模型

是使用最多的開發模型。

 

瀑布模型將複雜的問題簡單化,分層化,便於分工協作,採用結構化的分析與設計方法將邏輯實現與物理

實現分開。

特點:

1、強調文件,前一個階段的輸出就是下一個階段的輸入。文件是各個階段銜接的重要資訊,所以文件

為重中之重。但是各個階段之間產生大量的文件,極大地增加了工作量。

2、沒有迭代與反饋。瀑布模型對反饋沒有涉及,所以對變化的客戶需求非常不容易適應,意味著使用

了瀑布模型,最好不要走回頭路,否則付出的代價會很大的。

3、管理人員較開發人員更喜歡瀑布。文件很適合向領導彙報用,即使不瞭解專案的人也能看懂專案的

進度情況;同時它也束縛了開發人員的創造性。

4、由於開發流程是一個階段順序進行的,只有等到開發完成,使用者才能見到結果,增加了開發的風險

;同時由於這種特性,程式中早期的錯誤可能要等到開發後期的測試階段才能發現。

5、瀑布模型對人員的要求是,只要會基本的程式設計就可以。

由於瀑布模型不適合客戶需求不斷變化的軟體開發,並且把開發者程式設計流水線上的機器,大量重複性工作讓程式設計人員提不起興趣,程式設計成了一種沒有創意的機械勞動,於是極限程式設計帶來了新鮮的空氣。

極限程式設計

注重使用者反饋。有了反饋,開發時間變短,迭代就出現了,快速迭代。

是一種開發管理模式.

    強調:

1、角色定位:明確的把客戶加入到開發團隊中。使用者在軟體開發過程中的責任被提到與開發者同樣的

重要程度。

2、敏捷開發:追求合作與響應變化。迭代就是縮短版本的釋出週期,縮短到周、日,完成一個小的功

能模組,可以快速測試、並及時展現給客戶,以便及時反饋。小版本加快了客戶溝通反饋的頻率,功

能簡單,在設計、文擋環節大大簡化。極限程式設計中文擋不再重要的原因就是因為每個版本功能簡單,

不需要複雜的設計過程。極限程式設計追求設計簡單,實現客戶要求即可,無需為擴充套件考慮太多,因為客

戶的新需求隨時可以新增。

3、追求價值:極限程式設計把軟體開發變成自我與管理的挑戰,追求溝通、簡單、反饋、勇氣,體現開發

團隊的人員價值,激發參與者的情緒,最大限度地調動開發者的積極性,情緒高漲,認真投入,開發

的軟體質量就大大提高。

敏捷開發

    核心是迭代。最終目標是讓客戶滿意,所以能主動接受需求變更,這樣就使設計出來的軟體有靈活性,可

擴充套件性。

    特點:

1、迭代:軟體的功能是客戶的需求,對迭代強調的是縮短了軟體版本的週期。

2、專案團隊的人數不能太多

3專案經常發生變更

4高風險的專案實施

5開發人員可以參與決策

   注意:

1、客戶最關心的功能最先完成

2、小版本。快速功能的展現。

3、敏捷開發不等於不寫文件,而是減輕了繁重的文件,不以文件為驅動。

    瀑布模型由於其過程的不可回溯性,自 然決定了它無法應對需求的變化,對軟體開發過程無法及時反饋與

修改,或者說對於應對變化的成本較大。因此瀑布模型是面向過程的;而敏捷開發是面向人的,在開發過程中,

人是第一位。使軟體利用人的特點,充分發揮人的創造能力。

    不論是瀑布還是敏捷開發,在推行的時候還要認真分析要面對的團隊。有很多人現在執迷於敏捷開發,但

是沒有傳統的瀑布模型,怎麼會有敏捷開發,又怎麼會體會到敏捷開發的樂趣?況且,對於一個比較大型的需

求確定的專案,還是用瀑布模型比較有優勢。