瀑布模型
將軟件生命周期划分為制訂計划、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,並且規定了他們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落
若某一階段發現上一階段產品不能滿足要求, 則需返回重做.
優點:有利於大型軟件開發過程中人員的組織、管理,從而提高了大型軟件項目開發的質量和效率。
缺點: 過於理想,缺乏靈活性,容易產生需求偏差
V模型
V模型強調軟件開發的協作和速度,將軟件實現和驗證有機地結合起來,在保證較高的軟件質量情況下縮短開發周期
優點:適合工程量小、人力資源少並且開發過程中改動不大的項目
缺點:錯誤發現時間遲,產生的風險代價高
原型模型
先建立一個快速原型,實現客戶與系統的交互,客戶對原型進行評價,進一步細化待開發軟件的需求.
通過逐步調整原型使其滿足客戶的要求,開發人員可以借此確定客戶的真正需求.
原型模型分為兩種:
演化式原型模型: 逐步修改原型, 直至其成為可以滿足客戶需求的最終軟件產品.
快速原型模型: 原型獲得用戶真實需求后即被拋棄, 重新開始開發.
優點: 可以得到比較良好的需求定義,容易適應需求的變化, 開發費用低、開發周期短且對用戶更友好
缺點: 客戶與開發者對原型理解不同, 准確的原型設計比較困難, 不利於開發人員的創新。
增量模型
軟件被作為一系列的增量構件來設計、實現、集成和測試,每一個構件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構成。
增量模型在各個階段並不交付一個可運行的完整產品,而是交付滿足客戶需求的一個子集的可運行產品。
整個產品被分解成若干個構件,開發人員逐個構件地交付產品,這樣做的好處是軟件開發可以較好地適應變化,客戶可以不斷地看到所開發的軟件,從而降低開發風險,有利於快速開發軟件。
螺旋模型
綜合了瀑布模型和演化模型的優點,還增加了風險分析,特別適合於大型復雜的系統。
持續集成
持續集成是一種敏捷開發實踐, 持續集成指的是,頻繁地(一天多次)將代碼集成到主干。.
持續集成的優點在於:
-
快速發現錯誤: 每次提交均經過測試, 便於定位錯誤
-
防止分支大幅偏離主干: 如果不是經常集成,主干又在不斷更新,會導致以后集成的難度變大,甚至難以集成。
與持續集成相關的,還有兩個概念,分別是持續交付和持續部署。
-
持續交付(Continuous delivery)指的是,頻繁地將軟件的新版本,交付給質量團隊或者用戶,以供評審。
-
持續部署(continuous deployment)是持續交付的下一步,指的是代碼通過評審以后,自動部署到生產環境。持續部署的目標是,代碼在任何時刻都是可部署的,可以進入生產階段。
持續集成的流程為:
(1) 提交更改
(2) 代碼倉庫對commit操作配置了鈎子(hook),只要提交代碼或者合並進主干,就會執行自動化測試。 測試通過, 修改就可以合並如主干完成交付.
(3) 構建工程(build), 進入第二輪全面自動測試.
(4) 通過第二輪測試后, 得到新的可部署版本, 將其自動部署到生產環境.
若任一測試未通過則會放棄集成, 回滾到上一個可部署版本.
考試專用的分隔線
需求理論性的東西很少, 不知道加在哪了, 建議按一下[Ctrl] + W快捷鍵
需求的分類:
-
功能性需求(Functional Requirement): 對特定功能要求的說明
-
質量需求(Quality Requirement): 對軟件響應能力, 負載能力, 健壯性等非功能性的要求
-
設計約束(Design Constraint): 平台, 交互模式等要求
-
工藝約束(Process Constraint): 對軟件所用技術, 資源的約束