SDLC 階段 [解釋]:如何在 2021 年打造出色的軟件
已發表: 2019-10-02目錄
了解 SDLC 流程
軟件開發過程的結構
SDLC模型
包起來
軟件開發行業正在蓬勃發展。 我們每年都在不斷地產生大量的代碼。
該行業的核心是軟件開發生命週期(SDLC) - 指導軟件團隊如何構建和規劃其工作的過程。
因此,讓我們踏上穿越軟件開發危險地帶的旅程。
我們將看看 SDLC 究竟是什麼並追踪它的演變。 我們將看到哪些是行業使用的主要模型。
我們將發現 SDLC 階段,即軟件在問世之前經歷的階段 - 以及每個階段的關鍵執行者。
最後,我們將為您提供整個過程的鳥瞰圖。
了解 SDLC 流程
構建軟件是一個過程。 因此,它需要一個明確定義的目標、實現目標的方法以及衡量、維護和改進結果的方法。 軟件開發的不同方法提供了所有這些。 不過,它們並非都是從同一塊布上剪下來的。 根據您的情況,您可能需要選擇截然不同的方法。
這取決於許多變量,例如:
- 行業
- 組織規模
- 團隊和項目
- 預計時間範圍
- 和分配的預算。
常見的是每個軟件都遵循特定的SDLC 流程。
該框架充實了完成所需的階段、所需的資源以及在此過程中要執行的任務。
該SDLC過程最終是需要完成什麼樣一個結構良好的時間表。 它在估計的時間和成本限制內決定最佳軟件開發方法。
SDLC 通常被認為是更廣泛的術語“系統開發生命週期”的子集——用於開發信息系統的最古老的框架。
它出現在 1960 年代初期,是對能夠處理大量數據的業務系統的必要性的回應。 第一個有據可查的SDLC 框架是 1969 年的結構化編程範式。
1990 年代出現了各種軟件開發方法。 其中一些是面向對象的編程、Scrum 和 Rational Unified Process。 敏捷統一流程出現於 2005 年。
軟件開發過程的結構
軟件產品的開發是一系列協調良好的階段。 根據所選的開發方法, SDLC 步驟的數量可能會有所不同。
我們將回顧 SDLC 的 5 階段和 7 階段風味。
5 階段版本
軟件開發過程的 5 階段版本如下:
需求與分析
這是一個關鍵階段,與客戶和利益相關者的互動至關重要。 他們需要確定預期的結果,即軟件產品的目標。 除了客戶要求之外,還有各種其他因素需要考慮。 這些包括:
- 建築
- 功能性
- 非功能性
- 表現
- 和設計相關的
為了成功完成這個階段,開發了一個名為“軟件需求規範”的文檔。 它是從這一刻開始發生的一切的基礎。
開發項目的成功在很大程度上取決於需求分析。 此階段的關鍵執行者是業務分析師 (BA)。 他管理所有通信以收集業務需求,執行徹底分析,最重要的是 - 在利益相關者和開發人員之間轉換該信息。
設計
軟件的設計基於既定的需求。 這是我們確定開發環境、編程語言、架構框架、硬件等的地方。這也是確定將使用的測試策略的時候。 系統架構師的角色在這里至關重要。 他們需要考慮“需求規範”文檔中的所有先決條件,並提供用於下一步的設計文件。
編碼階段
到目前為止,開發人員已經非常了解設計規範。 工作被分成模塊,然後開始編碼。 客戶也應該參與到這個階段。 他們確保為產品採取所有措施以滿足他們的期望。 生產一個可以工作的軟件是這個階段的最終結果。
測試
現在我們有了一個可行的產品,測試階段就可以開始了。 根據設計規範文檔中概述的測試策略,這可能以多種方式發生。
然而,目標保持不變。 首先,驗證是否滿足所有初始要求,其次,確定代碼中是否存在任何錯誤。 測試人員是這裡的關鍵執行者。 他們努力的結果是一個功能齊全的軟件,隨時可以發布。
維護
沒有完美的軟件產品。 這就是客戶服務在開發過程中扮演重要角色的原因。 一旦交付給最終客戶,就會出現實時問題並且需要修復。 如果您想讓客戶滿意,則必須進行持續維護。
7 階段版本
現在,這個過程的7 階段風味有點不同。 它有一些額外的階段,不可避免地也會改變其他階段的性質。 讓我們來看看:
規劃
啟動SDLC 流程的另一種方法是規劃階段。 它在需求收集之前,主要尋求反饋。 來自利益相關者、業務合作夥伴、工程師和最終客戶的意見決定了項目的範圍。 此階段回答以下問題:
- 必須做什麼?
- 需要什麼資源?
- 需要多少時間?
- 它要花多少錢?
需求與分析
在這裡,業務分析師根據客戶的反饋編制需求列表。 然後,他們將這些信息提供給軟件工程師。 溝通是必不可少的。
此階段應生成一份概述所有要求的文件,並作為下一階段的基礎。
系統設計
軟件需求現在進入系統架構。 此時,我們可以確定交付項目所需的功能手段和操作。 一旦準備好,設計計劃就會提交給企業。 我們在實際編程開始之前整合所有反饋。
軟件開發
一旦需求明確,軟件工程師就可以開始工作了。 此階段的目標是一個可用於測試的工作程序。 這也是SDLC 流程中生產的開始。
測試
質量保證團隊的作用是確定是否滿足初始業務要求。 他們檢查軟件代碼的質量。 錯誤得到修復。 有一整套軟件測試方法需要經過:功能測試、集成測試、性能測試等等。
自動化測試是一種通過使用外部軟件(例如 Bamboo 和 Jenkins)來自動化運行重複測試的過程的方法。
執行
一旦代碼通過了測試階段,就可以將其部署到生產環境中。 根據公司政策,此過程可能需要批准; 然而,在大多數情況下,它是軟件開發生命週期中的一個自動化步驟。
維護和操作
一旦軟件在生產中發布,各種問題都會出現。 通過監控,他們可以得到識別和解決。 新功能也可以進入產品。 這是可以衡量和改進性能的階段。
SDLC模型
開發軟件的過程在很大程度上是通用的。 有增加更多階段或簡化現有階段的空間——但大體上是一樣的。
當我們查看開發方法時,這並不成立。 儘管他們都在觀察這個過程,但他們以截然不同的方式進行。
要選擇最合適的一個,有幾個關鍵因素需要考慮。 在客戶的需求和開發軟件的實際細節之間始終保持平衡。 有一些因素,例如:
- 項目的複雜性
- 選定的技術
- 和團隊規模。
所有這些決定了哪種方法最有效。 我們將對一些最廣為人知和使用的SDLC 方法進行概述。
瀑布
瀑布模型是一個線性順序設計過程。 這是軟件工程中使用的最古老的已知方法。 它起源於1970年代的製造業和建築業。
遵循瀑布模型的開發項目的進度嚴格遵循 SDLC 管道。 只有在 SDLC 的前一階段成功完成後,才有可能進行進度。 倒退沒有明確的流程。
該SDLC瀑布是一個非常結構化的方法。 它在以下情況下運行良好:
- 需求和活動是明確定義和理解的
- 技術可靠
- 支持團隊可用,您估計一個短期項目
該方法的缺點與其缺乏靈活性有關。 您無法在此過程中實現新出現的需求。 由於直到開發過程後期才生產有形產品,因此風險和不確定性很高。 如果您決定動態修改項目的要求或範圍,這可能是一種非常昂貴的方法。
迭代
這種方法基於這樣一種觀念,即軟件可以通過一系列重複循環來構建。 它從一組簡單的要求開始。 在每一輪中,工程師都從軟件早期版本的行為中學習,並能夠增強其功能。
這種方法的最大優點是在每個週期完成後都會生成軟件的工作原型。 這使得實施變更和識別風險變得更加容易。 當每次迭代執行的SDLC測試相對容易些。
軟件開發迭代模型的缺點歸結為資源和成本。 增加迭代次數會消耗更多資源。 項目完成期限未定,風險也未定。 因此,要使這種方法發揮作用,需要高技能的專家進行風險分析。
該方法不適合較小的項目。
敏捷
軟件開發的敏捷方法相對較新。 儘管如此,它還是迅速在全球範圍內流行起來。
敏捷SDLC是基於提供可工作的軟件,並尋求來自客戶的即時反饋的一小部分。 這種方法的核心在於團隊之間的強大協作和持續溝通。 每個週期大約持續一到三週,此時工作模塊/功能將交付給客戶。 然後重複該過程。
每次迭代都會進行測試,這樣可以儘早解決問題。 它鼓勵演示軟件功能和獲取反饋。 該模型提供了結果的清晰可見性。 它提倡團隊合作並為軟件工程師提供靈活性。
由於沒有大量文檔的要求,因此存在依賴某些人的風險。 在將知識轉移給團隊的新成員時,這也可能是一個挑戰。
傾斜
精益軟件開發方法被認為是敏捷軟件開發方法的一部分。 遵循精益方法的SDLC 流程包括七項原則:
- 消除浪費
- 擴大學習
- 盡量晚做決定
- 盡快交付
- 為團隊賦能
- 建立誠信
- 看大圖
理解這個模型的關鍵是通過這些原則。 這將導致將這些轉變為功能性敏捷實踐並將其實施到工作流程中。
精益原則圍繞為最終用戶創造盡可能多的附加值的想法進行組織,同時優化質量、速度、成本和業務預期。 為此,取消了一些任務(大量文檔),優化了其他任務(會議頻率)。
開發運營
DevOps 模型部分基於敏捷和精益。 這是一種新興的方法,在整個開發生命週期中將軟件開發和運營團隊之間的密切協作聯繫起來。
這種方法的關鍵方面是強調開發過程的自動化。 最終目標是縮短 SDLC,同時交付符合業務需求的高質量、創新結果。
通過這種方法,開發人員、運營團隊和質量保證成員都在同一頁面上。 他們使用相同的工具並遵循相同的流程。 這可以改善溝通,並帶來更好、更及時的結果。
螺旋
這是迭代開發和瀑布模型的一些概念的結合。 它允許在每個迭代周期中部分發佈軟件。
這四個階段和重複被稱為“螺旋”。 該SDLC階段是:規劃和收集的要求; 設計; 開發和測試。
風險分析起著關鍵作用。 在每個螺旋中,都會執行風險分析,以便識別和避免或克服任何潛在風險。 它適用於大型項目,儘管管理和過程本身可能很複雜。
包起來
選擇正確的軟件開發方法需要大量研究。 通過定義項目的範圍、要求和目標,您可以確定您的產品需要經歷的SDLC 階段。
您選擇的方法不僅是開發功能性產品的過程。 這是使您的組織和團隊的價值觀保持一致以創造和諧工作環境的一種方式。
常問問題
根據您選擇的方法,您的軟件將經歷不同數量的階段。 無論哪種方式,以下活動都應該是其中的一部分:
- 計劃、收集需求和分析
- 就設計或系統架構達成一致
- 生成代碼
- 測試生成的代碼
- 將代碼部署到生產環境中
- 持續維護和改進
刨削; 需求和分析; 設計; 發展; 測試; 執行; 維護。
這取決於你的項目! 您對行業的分析、項目的目標、可用的能力和資源、時間和成本指標將是選擇最佳 SDLC 方法的指導因素。