軟體過程模型
1.1 過程模型
1.1.1 瀑布模型
瀑布模型將軟體生命週期劃分為制定計劃、需求分析、軟體設計、程式編寫、軟體測試和執行維護等六個階段,每個階段完成後才完成後一個階段。優點:一,階段清晰,對新團隊和新人十分友好。二,前幾個階段都有輸出,方便事後總結。三,熟悉此模型有利於瞭解其它模型。四,根據各階段完成情況可以不斷修正估計的工期。缺點:一,工作量大,文件多、會議多。二,週期長,這意味不適應需求經常變化的專案。也意味著不能早點發現問題,問題發現得越早,問題的解決成本越小。
1.1.2 原型模型
探索型原型,用於獲取需求和驗證需求。實驗型原型用於驗證設計。演化型原型是過程模型。探索型原型確認完需求就會被拋棄,所以儘可能的簡單。一,只需要完成少量最核心的功能和風險最大的功能。二,每個功能的實現都儘可能的簡單,能演示就行。三,往往需要專門的工具來支援來開發快速原型。適用範圍:需求不明或需求經常變化。缺點:開發原型會增加額外成本。
1.1.3 螺旋模型
螺旋模型為應對風險而生。它將整個生命週期劃分為若干個子週期,在整個生命週期結束前不知道共有多個子週期。每個子週期只關心當前子週期,不關心下個子週期的內容。每個子週期分為4個階段:需求定義、風險分析、工程實現和評審。缺點:工期和成本未知,這意味著無法和客戶合作。適用範圍:試驗型產品或專案,只有上天才知道是否可行。
1.1.4 噴泉模型
噴泉模型解決了瀑布模型各階段不能並行進行的問題。其缺點是:一,管理難度大增。二,對前面幾個階段的人員要求高,因為需求弄錯了,後面的就全部白做了。優點:為了減少白做和返工,一定先完成穩定的、不會變化的部分,這些部分適合封裝。而封裝可以提高可複用性。噴泉模型適合成員相互熟悉、制度規範的成熟團隊。
1.1.5 增量模型
增量模型簡單的說將產品或專案分成幾個子產品或專案。每個子產品(子專案)都給使用者使用,都能給使用者創造價值。優點:一,使用者能夠較早使用。二,由於是分批交付,所以使用者能夠大致知道專案進度。三,降低失敗的損失。任何時候失敗都只損失一個子產品。缺點:一,由於要相容已完成的子產品,所以新子產品出生就帶著歷史包袱。二,可能會陷入區域性最優解,對子產品最合適,但對整個產品不是最合適。使用者已經使用的子產品,修改的成本太高,因為不能影響使用者使用。
1.1.6 演化型原型模型
演化型原型模型簡單的說將產品或專案分成幾個子產品或專案。每個子產品(子專案)都給使用者試用。優點:一,高度匹配使用者需求。二,由於只是試用,已完成的子產品可以大改。三,每個子產品的經驗可以直接用於下個子產品,有利於提高效率和質量。缺點:佔用使用者時間太多。由於試用產品的都是基層員工,他們不會因為對需求而減少本職工作。為了不影響本職工作,只能早早了事。假定你在餐館吃飯,廚師一會問你多大的火候,加多少油,加多少鹽?你是不是一臉茫然“多少顆鹽?還是多少克鹽?我都不知道”。建議:合同規定對方的員工至少花多少小時用於試用。
1.1.7 過程模型的選擇
如果是成長中的團隊,無腦選擇瀑布模型。成熟團隊分以下四種情況。無法確定方案是否可行,用螺旋模型;方案可行,具體需求無法全部確定,用原型模型。需求基本確定,需要分期用增量模型,不需要分期用噴泉模型。
------------恢復內容結束--------