軟體生命週期模型的選擇過程引數
軟體開發生命週期 (SDLC) 是軟體行業用來設計、開發和測試高質量軟體的過程。SDLC 的目的是產生高質量的軟體,滿足或超越客戶期望,在規定的時間內完成,並且成本更低。
SDLC 是軟體開發生命週期的縮寫。
它也被稱為軟體開發過程。
軟體開發生命週期是一個框架,它概述了在軟體開發過程中的每個步驟中執行的任務。
軟體生命週期過程標準是 ISO/IEC 12207,它是國際公認的。它側重於成為一個標準,該標準描述了開發和維護軟體所需的所有任務。
什麼是 SDLC?
軟體開發生命週期是在軟體組織中針對軟體專案所遵循的過程。它包括一個分步計劃,解釋瞭如何開發、維護、替換和更改或改進特定軟體。生命週期提供了一種增強軟體質量和整體開發過程的方法。
典型軟體開發生命週期的各個階段如下:
- 計劃
- 定義
- 設計
- 構建
- 測試
- 部署
現在我們將詳細瞭解每個階段。
階段 1:計劃和需求分析
需求分析是軟體開發生命週期中最重要和最基礎的階段。來自客戶、銷售部門、市場調查和行業領域專家的反饋作為輸入,團隊高階成員利用這些輸入來執行任務。此詳細資訊隨後用於規劃基本專案範圍並在經濟、運營和技術領域進行產品可行性研究。
例如,計劃質量保證需求和識別
在計劃階段,會計劃質量保證需求,以及與專案相關的風險。技術可行性研究將概述可用於有效實施專案並最大程度地降低風險的不同技術方法。
階段 2:建立需求
在完成需求研究後,下一階段是明確描述和記錄產品需求,並獲得客戶或市場分析師的批准。這是透過使用 SRS(軟體需求規格說明)文件來完成的,該文件包含在整個專案生命週期中必須定義和生成的全部產品需求。
階段 3:產品架構設計
對於尋找新產品的最佳架構的產品架構師來說,SRS 是必不可少的資源。通常會根據 SRS 標準提出並定義多種產品架構設計方法,這些方法都記錄在 DDS-設計文件規範中。
所有關鍵利益相關者都會評估此 DDS,並根據風險評估、產品穩健性、設計模組化、預算和時間限制等多種因素選擇最佳的產品設計策略。
設計方法準確地概述了產品的所有架構模組,以及它與外部和第三方模組的通訊和資料流表示(如果適用)。擬議架構的所有模組的內部設計都應在 DDS 中完全指定,直至最細微的細節。
階段 4:建立或改進產品
SDLC 的這一階段開始了產品的實際開發。在此階段,將根據 DDS 生成程式設計程式碼。如果設計詳細且結構化,則程式碼生成可以輕鬆完成。
開發人員必須遵守其組織的編碼規範,並且使用編譯器、直譯器、偵錯程式等程式設計工具來建立程式碼。對於編碼,使用許多高階程式語言,例如 C、C++、Pascal、Java 和 PHP。程式語言的選擇取決於正在建立的軟體型別。
階段 5:產品測試
與現代 SDLC 模型一樣,測試活動主要包含在所有 SDLC 階段中,此階段通常是所有階段的子集。但是,此階段僅指產品的測試階段,在此階段,會報告、監控、修復和重新測試產品故障,直到產品滿足 SRS 中指定的質量要求。
階段 6:市場部署和維護
一旦產品經過徹底測試並準備就緒,它就會正式在相關市場釋出。根據組織的業務計劃,產品部署可能會分階段進行。產品可能會首先在小型市場部門中推出並在真實世界業務環境中進行測試(UAT-使用者驗收測試)。
然後,根據反饋,產品可能會按原樣釋出,或者在目標市場群體中釋出推薦的增強功能。在產品釋出到市場後,將為當前客戶群維護該產品。
SDLC 模型
已經建立了各種軟體開發生命週期模型,旨在在軟體開發過程中使用。這些也被稱為“軟體開發過程模型”。為了確保軟體開發過程的成功,每個過程模型都遵循一組特定於其型別的程式。
以下是業界最基本和最廣泛使用的 SDLC 模型:
- 瀑布模型
- 迭代模型
- 螺旋模型
- V 模型
- 大爆炸模型
敏捷模型、RAD 模型、快速應用開發和原型模型也是類似的方法。
SDLC 的瀑布模型
瀑布模型最初被稱為過程模型。它也被稱為線性順序生命週期模型。它非常易於理解和應用。在瀑布模型中,必須完成每個階段才能開始下一個階段,並且階段之間不能重疊。
瀑布模型是軟體開發中使用的第一個 SDLC 方法。
瀑布模型以順序的線性流程描繪了軟體開發過程。這意味著開發過程的任何步驟只有在先前階段完成後才能開始。此瀑布模型中的階段不重疊。
使用瀑布模型進行設計
瀑布方法是第一個廣泛應用於軟體工程以確保專案成功的 SDLC 模型。“瀑布”方法將整個軟體開發過程劃分為階段。在此瀑布方法中,一個階段的輸出通常用作下一個階段的輸入,以順序方式進行。
SDLC 的迭代模型
迭代方法從一小部分軟體需求的原始實現開始,並迭代地改進不斷發展的版本,直到整個系統完成並準備部署。
迭代生命週期模型不尋求從一整套需求開始。相反,開發從描述和實現程式的一小部分開始,然後進行測試以發現更多需求。然後重複此過程,在每次模型迭代後產生程式的新版本。
設計迭代模型
迭代方法從軟體需求子集的基本實現開始,並迭代地改進不斷發展的版本,直到完成整個系統。在每次迭代中進行設計更改並新增新的功能。此方法背後的主要思想是在一段時間內以小的增量(迭代)構建系統(增量)。
迭代和增量的組合是一種開發方法,它將迭代設計或迭代過程與增量構建策略相結合。“在軟體開發中,可能同時有多個軟體開發週期的迭代正在進行。”這稱為“演進式獲取”或“增量構建”。
在此增量方法中,整個需求被分解成多個構建。在每次迭代中,開發模組都會經歷需求、設計、實現和測試過程。每個後續的模組釋出都會為先前迭代新增功能。重複此方法,直到整個系統滿足需求。
成功使用迭代軟體開發生命週期的關鍵是嚴格的需求驗證,以及在模型的每個迴圈內根據這些需求對程式的每個版本的驗證和測試。隨著程式在連續迴圈中增長,必須執行和擴充套件測試以確保軟體的每個版本都是正確的。
SDLC 的螺旋模型
螺旋模型將重複開發的概念與瀑布模型的有條理、規範的元素相結合。這種螺旋模型是迭代開發過程模型和順序線性開發模型(通常稱為瀑布模型)的混合體,非常重視風險分析。它允許在圍繞螺旋的每次迭代中進行增量產品釋出或增量改進。
V模型 SDLC
V模型是一種 SDLC 正規化,其中流程以 V 形順序執行。它有時被稱為驗證和確認模型。
V模型是在瀑布模型的基礎上新增的,它將測試階段分配到每個開發步驟。這意味著開發週期的每個階段都有一個測試階段。這是一種非常規範的方法,只有在上一階段完成之後才能開始下一階段。
SDLC - 大爆炸理論
大爆炸模型是一種 SDLC 正規化,其中沒有遵循精確的程式。開發過程以所需的資金和精力作為輸入開始,結果是生成的軟體,它可能滿足也可能不滿足客戶的需求。這種大爆炸模型不遵循任何方法或協議,並且需要很少的前期思考。即使是買家也不確定自己想要什麼,並且標準是在沒有過多思考的情況下動態應用的。