瀑布模型是最典型的預見性的方法,嚴格遵循預先計畫的需求分析、設計、編碼、整合、測試、維護的步驟順序進行。步驟成果作為衡量進度的方法,例如需求規格,設計文件,測試計畫和**審閱等等。 瀑布式的主要的問題是它的嚴格分級導致的自由度降低,專案早期即作出承諾導致對後期需求的變化難以調整,代價高昂。瀑布式方法在需求不明並且在專案進行過程中可能變化的情況下基本是不可行的。
優點:
缺點:
迭代模式每次只設計和實現這個產品的一部分, 逐步逐步完成的方法叫迭代開發, 每次設計和實現乙個階段叫做乙個迭代. 在迭代式開發方法中,整個開發工作被組織為一系列的短小的、固定長度(如3周)的小專案,被稱為一系列的迭代。每一次迭代都包括了需求分析、設計、實現與測試。採用這種方法,開發工作可以在需求被完整地確定之前啟動,並在一次迭代中完成系統的一部分功能或業務邏輯的開發工作。再通過客戶的反饋來細化需求,並開始新一輪的迭代。
迭代式開發的優點:
1、降低風險
2、得到早期使用者反饋
3、持續的測試和整合
4、使用變更
5、提高復用性
螺旋開發:2023年,巴利·玻姆(barry boehm)正式發表了軟體系統開發的「螺旋模型」,它將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合於大型複雜的系統。
「螺旋模型」剛開始規模很小,當專案被定義得更好、更穩定時,逐漸展開。
「螺旋模型」的核心就在於您不需要在剛開始的時候就把所有事情都定義的清清楚楚。您輕鬆上陣,定義最重要的功能,實現它,然後聽取客戶的意見,之後再進入到下乙個階段。如此不斷輪迴重複,直到得到您滿意的最終產品。
螺旋模型很大程度上是一種風險驅動的方法體系,因為在每個階段之前及經常發生的迴圈之前,都必須首先進行風險評估。
5個步驟:
確定目標,選擇方案和限制條件。
對方案風險進行評估,並能解決風險。
進行本階段的開發和測試。
計畫下一階段。
確定進入下階段的方法。
優點:嚴格的全過程風險管理;強調各開發階段的質量;提供機會評估專案是否有價值繼續下去。
缺點:可能難以使使用者(尤其在有合同約束的情況下)相信演化方法是可控的;專案的成功依賴於風險評估專門技術,如果乙個大的風險未被發現和管理,就會出現問題。
敏捷方**採用迭代/增量開發的過程模型。是一種以人為核心、迭代、循序漸進的開發方法。組織上,軟體專案的構建被切分成多個子專案,各個子專案的成果都經過測試,具備整合和可執行的特徵。時間上,相對於傳統的瀑布式開發,迭代開發把軟體生命週期分成很多個小週期(一般不大於2個月,建議2周),每一次迭代都可以生成乙個可執行、可驗證的版本,並確保軟體不斷的增加新的價值。
敏捷開發由幾種輕量級的軟體開發方法組成。它們包括:極限程式設計(xp),scrum,精益開發(leandevelopment)等等
步驟:編寫使用者案例,架構規範,實施規劃,迭代計畫,代
碼開發,單元測試,驗收測試等等
四者對比區別:
傳統的瀑布式開發,也就是從需求到設計,從設計到編碼,從編碼到測試,從測試到提交大概這樣的流程,要求每乙個開發階段都要做到最好。
特別是前期階段,設計的越完美,提交後的成本損失就越少。
迭代式開發,不要求每乙個階段的任務做的都是最完美的,而是明明知道還有很多不足的地方,卻偏偏不去完善它,而是把主要功能先搭建起來為目的,以最短的時間,最少的損失先完成乙個「不完美的成果物」直至提交。然後再通過客戶或使用者的反饋資訊,在這個「不完美的成果物」上逐步進行完善。
螺旋開發,很大程度上是一種風險驅動的方法體系,因為在每個階段之前及經常發生的迴圈之前,都必須首先進行風險評估。
敏捷開發,相比迭代式開發兩者都強調在較短的開發周期提交軟體,但是,敏捷開發的週期可能更短,並且更加強調隊伍中的高度協作。
敏捷方法有時候被誤認為是無計畫性和紀律性的方法,實際上更確切的說法是敏捷方法強調適應性而非預見性。
適應性的方法集中在快速適應現實的變化。當專案的需求起了變化,團隊應該迅速適應。這個團隊可能很難確切描述未來將會如何變化.
軟體開發模式
軟體的開發模式包括 大棒開發法 邊寫邊改法 瀑布法 快速原型法和螺旋模式法,它們的定義及特點如下 第一,大棒開發法。它是源於能量爆發創造宇宙,萬物都由能量和物質積聚而成的理論,但如果不是遵循某種正確的排列和組合,形成的將不是預先期望的事物 大棒模式與上述理論一樣 一大堆能量 這裡指開發軟體所需的人力...
軟體開發模式
軟體開發模式大概有11種,如下所示 邊做邊改模型 build and fix model 瀑布模型 wate ll model 快速原型模型 rapid prototype model 增量模型 incremental model 迭代模型 stagewise model 螺旋模型 spiral m...
軟體開發模式
瀑布模型式嚴格遵循預先計畫的需求分析 設計 編碼 整合 測試 維護的步驟順序進行。瀑布模型是以每個步驟所取得的成果作為衡量進度的方法 由於它的嚴格分級,所以在專案前期需求不明確或者需求頻繁更改時代價高昂,是不可行的。所以在開發的前期,需求設計越完美,則損失越少。迭代式開發值每次只設計和完成產品的一部...