軟體開發模型可以概括地描述軟體過程,典型的軟體模型有四種:瀑布模型、快速原型模型、增量模型、螺旋模型。
瀑布模型是最早也是應用最為廣泛的一種開發模型,它將軟體生命週期分為制定計畫、需求分析、軟體設計、編碼、測試、執行維護等基本活動,並且規定了這些活動自上而下、相互銜接的固定先後次序,如同瀑布流水一般。
推遲實現:把邏輯設計和物理實現劃分開,盡可能推遲程式的物理實現。
推遲實現是瀑布模型的一條重要指導思想,可理解為「欲速則不達」「磨刀不誤砍柴工」,缺乏經驗的軟體開發人員往往喜歡接到開發任務後盡早地開始編寫程式,但實踐表明,過早地考慮程式實現而沒有紮實好前期工作,往往導致大量返工,使得開發時間變得更長。
質量保證:強迫開發人員採用規範的技術方法,嚴格規定了每個階段必須提交的文件,每個階段結束前必須對產生的文件進行嚴格評審。
及時複審有利於盡早排查問題,降低開發成本,保證軟體的優質質量。
要求一開始就給出所有的需求,並且之後不能有任何的變化。但這是不可能實現的,使用者常常也難以給出所有精準的需求表達,同時在開發開始階段存在許多的不確定性。
瀑布模型是由文件驅動的,也就意味著程式的執行版本要等到開發周期的很後期才能得到。在這之前,使用者只能通過文件來了解產品的樣子,而這恰恰可能導致最終的產品不能滿足使用者需求。
該模型是快速建立起來的、可以在計算機上執行的程式,它所完成的功能一般是最終產品功能的乙個子集。
基本想法是開發乙個原型給使用者,根據使用者的使用和評價,重新修改模型。
收集需求。
快速建立原型。
使用者評估原型,並進一步精化需求。
逐步調整原型使其滿足使用者需求。
相對於瀑布模型,快速原型模型有以下優點:
為開發人員和使用者提供了一種整理、分析和提煉軟體需求的機制。開發人員給使用者提供乙個「原型」,使用者很容易就能從中找到不滿意的地方,好比建築工程師與其拿著建築圖紙給客戶講解,不如直接給他看乙個建築物模型比劃兩下來得實在。
使用者不必等很久才等到乙個執行版本。
可能太慢、太大、難以使用,並沒有考慮軟體的質量和長期可維護性,因此在大多數專案中很少使用。
增量模型中,軟體產品被作為一系列增量構件來設計、編碼、整合和測試。它由一系列線性序列構成,融合了瀑布模型的基本成分,並在每乙個線性末尾產生乙個軟體可發布的「增量」(其實質便是一些列的瀑布模型)。同時增量模型也有與快速原型類似的過程。
能在短時間內向使用者提交可完成部分工作的產品。
逐步增加產品功能,從而使使用者有較充裕的時間學習適應新產品,減少乙個全新軟體帶給使用者的衝擊。
融合了瀑布模型和快速原型模型,在「需求有變化」是不可避免的時候,增量模型遠遠優於其餘兩種模型。
軟體過程容易失去整體性,退化為「邊做邊改模型」。
螺旋模型=瀑布模型+快速原型。
基本思想是使用原型及其他方法降低開發過程中的風險(降低風險是其他模型中所忽略的),而降低風險的一種方法是構建原型,因此可以簡單的把螺旋模型理解為是每個階段之前增加了風險分析的快速原型模型。
該模型特別適合於大型複雜的系統。
有利於已有軟體的重用。
有助於把軟體質量作為軟體開發的乙個重要目標。
減少了測試過多或測試不足帶來的風險。
軟體維護與軟體開發沒有本質區別。
軟體開發模型
軟體開發模型 software development model 是指軟體開發全部過程 活動和任務的結構框架。軟體開發包括需求 設計 編碼和測試等階段,有時也包括維護階段。軟體開發模型能清晰 直觀地表達軟體開發全過程,明確規定了要完成的主要活動和任務,用來作為軟體專案工作的基礎。對於不同的軟體系統...
軟體開發模型
前提 在介紹軟體開發模型之前,要說一下軟體的生命週期,如同人的一生一樣,要經過嬰兒期,兒童期,少年期,青年期,老年期直到衰老死亡的過程。同樣,乙個軟體產品也要經過計畫,分析,設計,程式設計,測試和維護直到被淘汰的過程,軟體的這一過程稱為軟體生命週期。定義 軟體開發模型 software develo...
軟體開發模型
常見的軟體開發模型有瀑布模型 演化模型 螺旋模型 噴泉模型。1.瀑布模型 wate ll model 將軟體生命週期劃分為需求分析 軟體設計 程式編寫 軟體測試和執行維護等基本活動,並且規定了它們自上而下 相互銜接的固定次序,如同瀑布流水,逐級下落。不適應使用者需求的變化,開發模型是線性的,使用者只...