軟件開發生命週期模型和方法

軟件開發生命週期(SDLC)是一系列階段,提供對軟件構建過程的共同理解。如何從業務理解和需求啟發階段實現和開發軟件,將這些業務思想和需求轉換為功能和特性,直到其使用和運行,以實現業務需求。優秀的軟件工程師應該對如何根據項目環境和業務需求選擇SDLC模型有足夠的了解。

在本文中,我們將探討不同類型的SDLC模型以及每種模型的優缺點以及何時使用它們。

您可以將SDLC模型視為可用於更好地交付軟件項目的工具。因此,了解和理解每個模型以及何時使用它們,每個模型的優點和缺點對於了解哪個模型適合項目環境非常重要。

軟件開發生命週期模型和方法

開發生命週期的軟件類型(SDLC)

  • 瀑布模型 (Waterfall)
  • V形模型 (V-Shaped)
  • 進化原型模型 (Evolutionary Prototyping)
  • 螺旋方法(Spiral)
  • 迭代和增量方法 (Iterative and Incremental)
  • 敏捷開發 (Agile)

瀑布模型

該瀑布模型是線性順序流。在軟件實施階段,進展被視為穩步向下(如瀑布)。這意味著開發過程中的任何階段僅在前一階段完成時才開始。瀑布方法沒有定義返回上一階段以處理需求變化的過程。瀑布方法是最早的方法,也是最廣為人知的用於軟件開發的方法。

waterfall model的圖片搜尋結果

用法

不關注改變要求的項目,例如,從提案請求(RFP)發起的項目,客戶有明確的文件要求

的優點和缺點

好處 缺點
  • 易於向用戶解釋。
  • 結構方法。
  • 階段和活動定義明確。
  • 幫助計劃和安排項目。
  • 每個階段的驗證可確保及早發現錯誤/誤解。
  • 每個階段都有具體的可交付成果。
  • 假設可以凍結系統的要求。
  • 完成後很難回到任何階段。
  • 一點靈活性和調整範圍是困難和昂貴的。
  • 除了詳細的計劃之外,還需要更多的時間和更多的時間。

V形模型

它是瀑布模型的擴展,而不是以線性方式向下移動,在實現和編碼階段之後,處理步驟向上彎曲,以形成典型的V形。V形模型和瀑布模型之間的主要區別在於V形模型中的早期測試計劃。

用法

  • 軟件要求明確定義和已知
  • 軟件開發技術和工具是眾所周知的

的優點和缺點

好處 缺點
  • 簡單易用
  • 每個階段都有具體的可交付成果。
  • 由於在生命週期的早期階段開發了測試計劃,因此瀑布模型的成功率更高。
  • 適用於易於理解要求的地方。
  • 在產品開發的早期階段驗證和驗證產品。
  • 非常不靈活,就像瀑布模型一樣。
  • 調整範圍既困難又昂貴。
  • 該軟件是在實施階段開發的,因此不會生成軟件的早期原型。
  • 該模型沒有為測試階段發現的問題提供明確的途徑。
  • 除了詳細的計劃之外,還需要更多的時間和更多的時間

原型模型

它指的是創建軟件應用程序原型的活動,例如,正在開發的軟件程序的不完整版本。它是一種可以在軟件開發中發生的活動,它用於可視化軟件的某些組件,以限制開發團隊誤解客戶需求的差距。這也將減少瀑布方法中可能發生的迭代,並且由於瀑布方法的不靈活性而難以實現。因此,當開發最終原型時,該要求被認為是凍結的。

它有一些類型,例如:

  • 丟失原型:原型最終被丟棄而不是成為最終交付軟件的一部分

  • 進化原型:通過迭代結合用戶反饋演變為最終系統的原型。

  • 增量原型:最終產品是作為單獨的原型構建的。最後,單獨的原型在整體設計中合併。

  • 極端原型:主要用於Web應用程序。基本上,它將Web開發分為三個階段,每個階段都基於前一個階段。第一階段是一個靜態原型,主要由HTML頁面組成。在第二階段,使用模擬服務層對屏幕進行編程和完全功能。在第三階段,服務得以實施

用法

  • 此過程可與任何開發生命週期模型的軟件一起使用。雖然在開發系統時應選擇此項,但用戶需要進行交互。因此,如果系統沒有用戶交互,例如係統,則某些計算不應具有原型。

的優點和缺點

好處 缺點
  • 減少時間和成本,但如果開發人員在開發原型方面浪費時間,這可能是一個缺點。
  • 改善並增加用戶參與度。
  • 分析不足。用戶混淆原型和成品系統。
  • 開發人員誤解了用戶目標。
  • 原型開發時間過長。
  • 實現原型成本很高

螺旋模型(SDM)

描述

它結合了設計和原型分階段的元素,努力結合自上而下和自下而上的概念的優勢。這種開發模型結合了原型模型和瀑布模型的特徵。螺旋模型適用於大型,昂貴且複雜的項目。該模型使用許多與瀑布模型相同的階段,基本上以相同的順序,通過規劃,風險評估以及原型和模擬的構建分開。

spiral model的圖片搜尋結果

用法

它用於內置小相或段的大型應用和系統中。

的優點和缺點

好處 缺點
  • 隨著工作的進展,估算(即預算,進度等)變得更加現實,因為早期發現了重要問題。
  • 早期參與開發人員。
  • 管理風險並將系統分階段發展。
  • 高成本和時間到達最終產品。
  • 需要特殊技能來評估風險和假設。
  • 高度定制的限制可重用性

迭代和增量模型

它的開發是為了克服瀑布模型的弱點。它從初始計劃開始,以部署之間的循環交互結束。這種方法背後的基本思想是通過重複循環(迭代)和一次較小的部分(增量)開發系統,允許軟件開發人員利用在開發早期部件或系統版本期間學到的知識。它可以包括迷你瀑布或迷你V形模型

增量SDLC

 

 

用法

它用於收縮包裝應用和內置小相或段的大型系統。另外,可以在系統中使用具有分離的組件,例如ERP系統。我們可以從預算模塊開始作為第一次迭代,然後我們可以從庫存模塊開始,依此類推。

迷你V型

的優點和缺點

好處 缺點
  • 在開發生命週期的早期產生業務價值。
  • 通過適當的增量定義更好地利用稀缺資源。
  • 可以在增量之間容納一些更改請求。
  • 比線性方法更注重客戶價值。
  • 我們可以更早地檢測項目問題和變更。
  • 需要大量文檔。
  • 遵循一組定義的流程。
  • 根據函數和功能依賴性定義增量。
  • 需要比線性方法更多的客戶參與。
  • 對功能和功能進行分區可能會有問題。
  • 如果在開發和項目規劃期間不考慮迭代,則迭代之間的集成可能是一個問題。

敏捷模型

它基於迭代和增量開發,其中需求和解決方案通過跨職能團隊之間的協作發展。

scrum visual paradigm的圖片搜尋結果

Scrum敏捷模型

用法

它可以與任何類型的項目一起使用,但它需要客戶的更多參與並且是交互式的。此外,當客戶需要在不到三週的時間內準備好一些功能需求並且要求不夠清晰時,我們就可以使用它。這將為軟件提供更有價值和可行的軟件,從而提高客戶滿意度。

的優點和缺點

好處 缺點
  • 減少利用某些系統功能所需的時間。
  • 面對面的溝通和客戶代表的持續投入不留任何猜測空間。
  • 最終結果是在最短的持續時間內滿足客戶的高質量軟件。
  • 可擴展性。
  • 客戶表達用戶需求的能力和協作。
  • 文檔在稍後階段完成。
  • 降低組件的可用性。
  • 需要團隊的特殊技能。

Agile & Scrum Basis

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。