瀑布模式簡介及分析
1.什麼是瀑布模式?
瀑布模型将軟體生命周期劃分為問題定義、可行性分析、需求分析、軟體設計、程式編寫、軟體測試和運作維護等基本活動,并且規定了它們自上而下、互相銜接的固定次序,如同瀑布流水,逐級下落,故而形象地稱為“瀑布模型”。
其核心思想是按工序将問題化簡,将功能的實作與設計分開,便于分工協作,即采用結構化的分析與設計方法将邏輯實作與實體實作分開。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLzsmaONzaE1keRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwIjNxQTN0YTM4EDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.為什麼會産生瀑布模式,或者瀑布模式有什麼必要性?
任何行業都要經曆一個從無到有的過程。對于軟體開發這個行業,在一開始的一片混亂,從業人員工作的無序性,随意性和項目的返工率高等現象都表明這個行業缺少一個标準。而這個标準正是從規範工作,減少錯誤,加快效率這些方面制定,具體展現在以下幾個方面:
a.階段間的順序性和依賴性
順序性是指:在瀑布模型軟體開發過程中必須等到前一階段的工作完成以後,才能開始下一階段的工作。
依賴性是指:前一階段的輸出文檔就是後一階段的輸入文檔。是以前一階段文檔的正确性是保證後一階段工作的前提條件。
b.推遲實作的觀點
采用瀑布模型會強制研發人員按照階段步驟進行軟體設計,避免了一開始就直接進行詳細編碼的錯誤做法。編碼處于軟體開發的中後期,強調了需求分析和系統設計的重要性,展現了推遲實作的觀點。如果堅持階段性的評審,采用瀑布模型可以避免後期大量返工的現象,還可以減少後期維護工作的人力和費用。
c.文檔驅動推進研發程序
瀑布模型在每階段要完成規定的文檔。軟體開發是許多人共同參加、分工合作的工作,完整而合格的文檔是開發人員間聯系的媒介,同時是維護時期的重要依據。是以沒有完成文檔,就被認為沒有完成該階段的工作。
3.就當時看,瀑布模式有什麼優點?
a.瀑布模型提供了一個标準或者說是架構,使得軟體軟體開發可以在這個架構下有條不紊的進行,克服了軟體開發的随意性。
b.推遲了編碼測試等,強調了需求階段和設計階段的重要性,避免出現後期大量返工的現象,減少後期維護工作的人力和費用。
c.目前一階段完成後,才開始要去關注下一階段,以規定的時間點和規定的文檔進行評審,以便盡早發現錯誤和改正錯誤,可以實作階段性品質保證。
d.完整的軟體配置文檔,便于設計和後期維護。
4.就現在看,瀑布模式有什麼缺點?
a.從客戶角度考慮:隻有在整個過程的後期才能見到産品,中間溝通較少,進而增加了客戶對開發産品不滿意的風險;對于軟體需求不明确和變更追加需求的客戶很不友好。
b.從流程角度考慮:線性模式過于刻闆,在上一階段未完成就進入不了下一階段會導緻項目組工作效率的降低。
c.從從業人員考慮:追求過多的文檔導緻從業人員很難集中在自己所工作的内容。
題外:其實就瀑布模式的文檔來說,該如何定義它是優點還是缺點呢?按現在的标準,極大增加了從業人員的工作内容,肯定是不好的,但按照當時,通訊工具不夠強大時,一個項目組那麼多從業人員,大家如何能有條不紊的銜接好工作呢,隻能依照階段性的文檔,是以放在當時一定必不可少的一環!而現在,通訊工具強大,多注重工作團隊之間還有與客戶需求之間的溝通,過多文檔反而是個累贅。是以剖析視角看沒有絕對的優點也沒有絕對的缺點,結合時代和項目組的條件因地制宜才是王道。