演化模型
出自 MBA智库百科(https://wiki.mbalib.com/)
演化模型(Evolutionary Model)
目錄 |
演化模型主要針對事先不能完整定義需求的軟體開發。用戶可以給出待開發系統的核心需求,並且當看到核心需求實現後,能夠有效地提出反饋,以支持系統的最終設計和實現。軟體開發人員根據用戶的需求,首先開發核心系統。當該核心系統投入運行後,用戶試用之,完成他們的工作,並提出精化系統、增強系統能力的需求。軟體開發人員根據用戶的反饋,實施開發的迭代過程。第一迭代過程均由需求、設計、編碼、測試、集成等階段組成,為整個系統增加一個可定義的、可管理的子集。
在開發模式上採取分批迴圈開發的辦法,每迴圈開發一部分的功能,它們成為這個產品的原型的新增功能。於是,設計就不斷地演化出新的系統。 實際上,這個模型可看作是重覆執行的多個“瀑布模型”。
“演化模型”要求開發人員有能力把項目的產品需求分解為不同組,以便分批迴圈開發。這種分組並不是絕對隨意性的,而是要根據功能的重要性及對總體設計的基礎結構的影響而作出判斷。有經驗指出,每個開發迴圈以六周到八周為適當的長度。
1、演化模型的優點
1)任何功能一經開發就能進入測試以便驗證是否符合產品需求。
2)幫助導引出高質量的產品要求。如果沒有可能在一開始就弄清楚所有的產品需求,它們可以分批取得。而對於已提出的產品需求,則可根據對現階段原型的試用而作出修改。
3)風險管理可以在早期就獲得項目進程數據,可據此對後續的開發迴圈作出比較切實的估算。提供機會去採取早期預防措施,增加項目成功的機率。
4)大大有助於早期建立產品開發的配置管理,產品構建(build ),自動化測試,缺陷跟蹤,文檔管理。均衡整個開發過程的負荷。
5)開發中的經驗教訓能反饋應用於本產品的下一個迴圈過程,大大提高質量與效率。
6)如果風險管理髮現資金或時間已超出可承受的程度,則可以決定調整後續的開發,或在一個適當的時刻結束開發,但仍然有一個具有部分功能的,可工作的產品。
7)心理上,開發人員早日見到產品的雛型,是一種鼓舞。
8)使用戶可以在新的一批功能開發測試後,立即參加驗證,以便提供非常有價值的反饋。
9)可使銷售工作有可能提前進行,因為可以在產品開發的中後期取得包含了主要功能的產品原型去向客戶作展示和試用。
2、演化模型的缺點
1)如果所有的產品需求在一開始並不完全弄清楚的話,會給總體設計帶來困難及削弱產品設計的完整性,並因而影響產品性能的優化及產品的可維護性。
2)如果缺乏嚴格的過程管理的話,這個生命周期模型很可能退化為一種原始的無計劃的“試-錯-改”模式。
3)心理上,可能產生一種影響盡最大努力的想法,認為雖然不能完成全部功能,但還是造出了一個有部分功能的產品。
4)如果不加控制地讓用戶接觸開發中尚未測試穩定的功能,可能對開發人員及用戶都產生負面的影響。