軟件開發模型

   軟件開發模型(Software Development Model)是指軟件開發全部過程、活動和任務的結構框架。軟件開發包括需求、設計、編碼和測試等階段,有時也包括維護階段。
   軟件開發模型能清晰、直觀地表達軟件開發全過程,明確規定了要完成的主要活動和任務,用來作為軟件項目工作的基礎。對于不同的軟件系統,可以采用不同的開發方法、使用不同的程序設計語言以及各種不同技能的人員參與工作、運用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環境。
   最早出現的軟件開發模型是1970年W·Royce提出的瀑布模型。該模型給出了固定的順序,將生存期活動從上一個階段向下一個階段逐級過渡,如同流水下瀉,最終得到所開發的軟件產品,投入使用。但計算拓廣到統計分析、商業事務等領域時,大多數程序采用高級語言(如FORTRAN、COBOL等)編寫。瀑布模式模型也存在著缺乏靈活性、無法通過并發活動澄清本來不夠確切的需求等缺點。
   常見的軟件開發模型還有:演化模型、螺旋模型、噴泉模型、智能模型等。
   軟件開發模型(Software Development Model)是指軟件開發全部過程、活動和任務的結構框架。軟件開發包括需求、設計、編碼和測試等階段,有時也包括維護階段。
   軟件開發模型能清晰、直觀地表達軟件開發全過程,明確規定了要完成的主要活動和任務,用來作為軟件項目工作的基礎。
   最早出現的軟件開發模型是1970年W·Royce提出的瀑布模型。該模型給出了固定的順序,將生存期活動從上一個階段向下一個階段逐級過渡,如同流水下瀉,最終得到所開發的軟件產品,投入使用。但計算拓廣到統計分析、商業事務等領域時,大多數程序采用高級語言(如FORTRAN、COBOL等)編寫。瀑布模式模型也存在著缺乏靈活性、無法通過并發活動澄清本來不夠確切的需求等缺點。
   典型的開發模型有:①瀑布模型(waterfall model);②漸增模型/演化/迭代(incremental model);③原型模型(prototype model);④螺旋模型(spiral model);⑤噴泉模型(fountain model);⑥智能模型(intelligent model) ; 7. 混合模型(hybrid model)
瀑布模型(Waterfall Model)
   1970年Winston Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被廣泛采用的軟件開發模型。
   瀑布模型將軟件生命周期劃分為制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,并且規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。
   在瀑布模型中,軟件開發的各項活動嚴格按照線性方式進行,當前活動接受上一項活動的工作結果,實施完成所需的工作內容。當前活動的工作結果需要進行驗證,如果驗證通過,則該結果作為下一項活動的輸入,繼續進行下一項活動,否則返回修改。
   瀑布模型強調文檔的作用,并要求每個階段都要仔細驗證。但是,這種模型的線性過程太理想化,已不再適合現代的軟件開發模式,幾乎被業界拋棄,其主要問題在于:
   (1) 各個階段的劃分完全固定,階段之間產生大量的文檔,極大地增加了工作量;
   (2) 由于開發模型是線性的,用戶只有等到整個過程的末期才能見到開發成果,從而增加了開發的風險;
   (3) 早期的錯誤可能要等到開發后期的測試階段才能發現,進而帶來嚴重的后果。
   我們應該認識到,"線性"是人們最容易掌握并能熟練應用的思想方法。當人們碰到一個復雜的"非線性"問題時,總是千方百計地將其分解或轉化為一系列簡單的線性問題,然后逐個解決。一個軟件系統的整體可能是復雜的,而單個子程序總是簡單的,可以用線性的方式來實現,否則干活就太累了。線性是一種簡潔,簡潔就是美。當我們領會了線性的精神,就不要再呆板地套用線性模型的外表,而應該用活它。例如增量模型實質就是分段的線性模型,螺旋模型則是接連的彎曲了的線性模型,在其它模型中也能夠找到線性模型的影子。

什么老师平特肖