軟件構建的基本概念之一 - 軟件開發生命周期模型。或者隻是SDLC模型。SDLC - 是一個連續的過程,從決定啟動項目的那一刻開始,并在它完全從開發中移除的那一刻結束。沒有一個單一的SDLC模型。它們分為主要組,每組都有其特點和弱點。
階段1.計劃和需求分析 (Planning and Requirement Analysis)每個軟件開發生命周期模型都從分析開始,過程的利益相關者讨論對最終産品的要求。此階段的目标是系統要求的詳細定義。此外,還需要确保所有流程參與者都清楚地了解任務以及每個需求将如何實施。通常,讨論涉及質量保證專家,如果有必要,他們甚至可以在開發階段幹預過程中的添加。
階段2.設計項目架構 (Project Architecture)在軟件開發生命周期的第二階段,開發人員實際上正在設計架構。所有利益相關者(包括客戶)都會讨論此階段可能出現的所有不同技術問題。此外,還定義了項目中使用的技術,團隊負載,限制,時間範圍和預算。最合适的項目決策是根據定義的要求做出的。
第3階段。開發和編程 (Development and Coding)在批準要求後,該過程進入下一階段 - 實際開發。程序員從這裡開始編寫源代碼,同時牢記先前定義的需求。系統管理員調整軟件環境,前端程序員開發程序的用戶界面以及與服務器交互的邏輯。編程本身假設有四個階段
測試階段包括調試過程。開發過程中遺漏的所有代碼缺陷都會在此處檢測到,記錄下來并傳回給開發人員進行修複。重複測試過程,直到删除所有關鍵問題并且軟件工作流程穩定。
階段5.部署 (Deployment)當程序最終确定并且沒有關鍵問題時 - 是時候為最終用戶啟動它了。新程序版本發布後,技術支持團隊加入。該部門提供用戶反饋; 在利用期間咨詢和支持用戶。此外,此階段還包括所選組件的更新,以确保軟件是最新的,并且不會受到安全漏洞的影響。
SDLC模型 (Software Development Lifecycle Model)從第一個也是最古老的“瀑布式”SDLC模型演變而來,它們的種類顯着擴大。SDLC模型的多樣性由衆多産品類型預先确定 - 從簡單的網站到複雜的醫療軟件。如果你采用下面提到的SDLC模型之一作為基礎 - 無論如何,它應該根據産品,項目和公司的特征進行調整。下面給出了最常用,最受歡迎和最重要的SDLC模型:
瀑布 - 是一個級聯SDLC模型,其中開發過程看起來像流程,一步一步地進行分析,預測,實現,測試,實施和支持階段。該SDLC模型包括完全逐步執行每個階段。該過程嚴格記錄并預定義,具有該軟件開發生命周期模型的每個階段所期望的功能。
好處 |
劣勢 |
簡單易用和理解 |
隻有在最後一個階段結束後,軟件才會準備就緒 |
由于其剛性,管理簡單:每個階段都有明确的結果和流程審查 |
高風險和不确定性 |
發展階段逐一進行 |
不是複雜和面向對象項目的最佳選擇 |
适用于要求明确且不模棱兩可的小型或中型項目 |
不适合長期項目 |
易于确定開發周期中的關鍵點 |
階段的進展很難衡量,但仍處于發展階段 |
易于分類和确定任務的優先級 |
集成在最後完成,不提供預先識别問題的選項 |
Waterfall SDLC模型的用例:
在項目開始之前,疊代SDLC模型不需要完整的需求列表。開發過程可以從對功能部件的要求開始,可以在以後擴展。該過程是重複的,允許為每個循環制作新版本的産品。每次疊代(持續兩到六周)都包括開發系統的單獨組件,然後,将此組件添加到之前開發的功能中。說到數學術語,疊代模型是順序逼近方法的實現; 這意味着逐漸接近計劃的最終産品形狀。
好處 |
劣勢 |
某些功能可以在開發生命周期的開始階段快速開發 |
疊代模型比瀑布模型需要更多資源 |
可以應用并行開發 |
需要持續管理 |
進展很容易衡量 |
可能會出現架構或設計問題,因為在短期規劃階段并未預見到所有要求 |
較短的疊代是 - 更容易的測試和調試階段 |
小項目的糟糕選擇 |
由于首先完成高風險任務,因此更容易控制風險 |
這個過程很難管理 |
在下一個sprint中可以防止在一次疊代中定義的問題和風險 |
即使在項目的最後階段,風險也可能無法完全确定 |
靈活性和準備變化的要求 |
風險分析需要高素質專家的參與 |
疊代模型的用例:
螺旋模型 - 是SDLC模型,它分階段結合了架構和原型。它是Iterative和Waterfall SDLC模型的組合,具有重要的風險分析重點。螺旋模型的主要問題是确定進入下一階段的正确時機。建議将初步設定的時間範圍作為此問題的解決方案。即使前一階段的工作尚未完成,也将根據計劃完成向下一階段的轉變。該計劃是根據統計數據引入的,即使從個人開發人員的經驗來看,也可以在之前的項目中收到。
好處 |
劣勢 |
生命周期分為小部分,如果風險集中度較高,則可以提前完成階段以解決問題 |
可能相當昂貴 |
開發過程準确記錄,可根據變化進行擴展 |
風險控制需要高技能專業人員的參與 |
可伸縮性允許在相對較晚的階段進行更改并添加新功能 |
對小項目可能無效 |
早期的工作原型已經完成 - 用戶可以更快地指出這些缺陷 |
大量的中間階段需要過多的文檔 |
旋模型的用例
V形SDLC模型是經典瀑布模型的擴展,它基于每個開發階段的相關測試階段。這是一個非常嚴格的模型,下一階段僅在前一階段之後開始。這也稱為“驗證和驗證”模型。每個階段都有當前的過程控制,以确保可以轉換到下一個階段。
好處 |
劣勢 |
V形模型的每個階段都有嚴格的結果,因此很容易控制 |
缺乏靈活性 |
測試和驗證在早期階段進行 |
小項目的糟糕選擇 |
适用于需求穩定且清晰的小型項目 |
相對較大的風險 |
V形模型的用例:
在每次開發疊代之後的敏捷方法中,客戶能夠看到結果并理解他是否滿意或不滿意。這是敏捷軟件開發生命周期模型的優勢之一。其缺點之一是,由于缺乏明确的要求,很難估計資源和開發成本。極限編程是敏捷模型的實際應用之一。這種模型的基礎包括每周短暫的會議 - Sprint是Scrum方法的一部分。
好處 |
劣勢 |
功能需求的更正被實施到開發過程中以提供競争力 |
由于永久性變化而無法衡量最終成本 |
項目按短而透明的疊代劃分 |
團隊應該是高度專業和客戶導向的 |
靈活的變更過程使風險最小化 |
新要求可能與現有架構沖突 |
快速發布第一個産品版本 |
通過所有更正和更改,項目可能會超出預期時間 |
敏捷模型的用例:
END
網安加社區作為行業知名的交流社區,秉承“讓開發人員更懂安全”的理念,集聚行業專家,各細分領域領航人士,整合各方優質資源,提供行業專業認證培訓課程、積極開展各類專題活動,逐步形成一個積極鮮明的學習成長圈,全面助力行業人才發展培養。
持續關注,定期舉行各類線下線上活動,了解最新行業咨詢,發展!
公衆号:網安加雲課堂
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!