軟件開發模型之瀑布模型


軟件開發模型(Software Development Model)是指軟件開發全部過程、活動和任務的結構框架。軟件開發包括需求、設計、編碼和測試等階段,有時也包括維護階段。 軟件開發模型能清晰、直觀地表達軟件開發全過程,明確規定了要完成的主要活動和任務,用來作為軟件項目工作的基礎。對於不同的軟件系統,可以采用不同的開發方法、使用不同的程序設計語言以及各種不同技能的人員參與工作、運用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環境

1970年Winston Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被廣泛采用的軟件開發模型。

瀑布模型

瀑布模型

瀑布模型將軟件生命周期划分為制定計划、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,並且規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。

在瀑布模型中,軟件開發的各項活動嚴格按照線性方式進行,當前活動接受上一項活動的工作結果,實施完成所需的工作內容。當前活動的工作結果需要進行驗證,如果驗證通過,則該結果作為下一項活動的輸入,繼續進行下一項活動,否則返回修改。

瀑布模型強調文檔的作用,並要求每個階段都要仔細驗證。但是,這種模型的線性過程太理想化,已不再適合現代的軟件開發模式,幾乎被業界拋棄,其主要問題在於:

(1) 各個階段的划分完全固定,階段之間產生大量的文檔,極大地增加了工作量;

(2) 由於開發模型是線性的,用戶只有等到整個過程的末期才能見到開發成果,從而增加了開發的風險;

(3) 早期的錯誤可能要等到開發后期的測試階段才能發現,進而帶來嚴重的后果。

我們應該認識到,"線性"是人們最容易掌握並能熟練應用的思想方法。當人們碰到一個復雜的"非線性"問題時,總是千方百計地將其分解或轉化為一系列簡單的線性問題,然后逐個解決。一個軟件系統的整體可能是復雜的,而單個子程序總是簡單的,可以用線性的方式來實現,否則干活就太累了。線性是一種簡潔,簡潔就是美。當我們領會了線性的精神,就不要再呆板地套用線性模型的外表,而應該用活它。例如增量模型實質就是分段的線性模型,螺旋模型則是接連的彎曲了的線性模型,在其它模型中也能夠找到線性模型的影子。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM