常用的4種開發模式

2021-10-21 21:35:48 字數 2402 閱讀 8067

瀑布式開發

瀑布式開發是由w.w.royce在2023年提出的軟體開發模型,是一種比較老的計算機軟體開發模式,也是典型的預見性的開發模式。在瀑布式開發模式中,開發嚴格遵循預先計畫的需求分析、設計、編碼、整合、測試、維護的步驟進行,步驟的成果作為衡量進度的方法,例如需求規格、設計文件、測試計畫和**審閱等。瀑布式開發最早強調系統開發應有完整的週期,且必須完整地經歷每個週期內的每個開發階段,並系統化地考量分析所涉及的技術、時間與資源投入等。

瀑布式開發的主要問題是它的嚴格分級導致自由度降低,專案早期即作出承諾會導致對後期需求的變化難以調整且代價很大,這在需求不明晰並且在專案進行過程中可能有變化的情況下基本上是不可行的。瀑布式開發如下圖所示。

瀑布式開發

迭代式開發

迭代式開發也被稱為迭代增量式開發,是一種與傳統的瀑布式開發相反的軟體開發過程,它彌補了傳統開發方式的一些弱點,有更高的成功率。在迭代式開發中,整個開發工作被組織為一系列短小的、固定長度的小專案,每次迭代都包括需求分析、設計、實現與測試。採用迭代式開發時,工作可以在需求被完整地確定之前啟動,並在一次迭代種完成系統的一部分功能或業務,再通過客戶的反饋來細化需求,並開始新一輪的迭代。迭代式開發如下圖所示。

迭代式開發

迭代式開發有如下特點:

每次只設計和實現產品的一部分。

一步一步地完成。

每次設計和實現乙個階段,這叫作乙個迭代。

3. 螺旋式開發

螺旋式開發是由巴利·波姆(barry boehm)在2023年正式發表的軟體系統開發模型,它兼顧了快速原型的迭代特徵及瀑布模型的系統化和嚴格監控,其最大的特點是引入了其他模型不具備的風險分析,使軟體在無法排除重大風險時有機會停止,以減少損失。同時,在每個迭代階段構建原型是螺旋模型用來減少風險的方法。螺旋模型更適合大型的昂貴的系統級的軟體開發,一開始應用的規模很小,當專案被定義得更好、更穩定時逐漸展開。其核心在於不需要在剛開始時就把所有事情都定義清楚,可以先定義最重要的功能去實現它,然後聽取客戶的意見,再進入下乙個階段,入此不斷迴圈、重複,直到得到滿意的產品。螺旋模型在很大程度上是一種風險驅動的方法體系,因為在每個階段及經常發生的迴圈之前,都必須先進行風險評估。螺旋式開發如下圖所示。

螺旋式開發

螺旋式開發有如下特點:

制定計畫:確定軟體目標,選定實施方案,弄清楚專案開發的限制條件。

風險分析:分析、評估所選方案,考慮如何識別和消除風險。

實施工程:實施軟體開發和驗證。

客戶評估:評價開發工作,提出修正建議,制定下一步計畫。

4. 敏捷軟體開發

敏捷軟體開發又被稱為敏捷開發,是一種從2023年開始逐漸引起人們廣泛關注的新型軟體開發方式,具有應對快速變化的需求的軟體開發能力。它的具體名稱、理念、過程、術語都不盡相同,相對於非敏捷開發,更強調程式設計師團隊與業務專家之間的緊密協作及面對面溝通,比單純通過書面文件溝通更有效,能更頻繁地交付新的軟體版本,使自我組織、自我約束的團隊能夠更好地適應需求的變化,也更注重軟體開發過程中人的作用。如下圖所示。

敏捷開發

敏捷軟體開發有如下特點:

首要任務是盡早地、持續地交付可評價的軟體,以使客戶滿意。

樂於接受需求變更,即使在開發後期也是如此。敏捷軟體開發能夠駕馭需求的變化,從而贏得競爭優勢。

頻繁交付可使用的軟體,交付的間隔越短越好,可以從幾個月縮減到幾個星期。

在整個專案開發期間,業務人員和開發人員必須朝夕工作在一起。

圍繞那些有推動力的人們來構建專案,給予他們所需的環境和支援,並且相信他們能夠把工作做好。

開發團隊及在開發團隊內部進行最快速、有效的傳遞資訊的方法是面對面交談。

可使用的軟體是進度的主要衡量指標。

提倡可持續發現。出資人、開發人員及使用者應該共同維持穩定的開發速度。

為了增強敏捷能力,應持續關注技術上的傑出成果和良好的設計。

簡潔,最小化那些沒有必要投入的工作量是至關重要的。

最好的架構、需求和設計都源於自我組織的團隊。

團隊定期反思如何變得更有戰鬥力,然後相應地轉變並調整其行為。

4種開發模式總結

瀑布式開發:在從需求到設計、從設計到編碼、從編碼到測試、從測試到提交的每個開發階段都要做到最好,特別是在前期階段設計得越完美,提交後的損失就越少。然而現在的系統很複雜且多變,所以很難在現實中應用瀑布式開發。

迭代式開發:不要求每個階段的任務都做到最好,可以容忍一些不足,先不去完善它,將主要功能先搭建起來,以最短的時間及最少的損失完成乙個不完美的成果直至提交,然後通過客戶或使用者的反饋資訊,在這個不完美的成果上逐步進行完善。

螺旋開發:在很大程度上是一種風險驅動的方法體系,因為在每個階段及經常發生的迴圈之前,都必須先進行風險評估。

敏捷開發:和迭代式開發相比,兩者都強調在較短的開發周期內提交軟體,但是,敏捷開發的週期可能更短,且更強調隊伍種的高度協作。敏捷方法有時被誤認為是五計畫性和紀律性的方法,實際上更確切的說法是敏捷方法強調適應性而非預見性,適應性的方法主要用於快速適應需求的變化。當專案的需求有變化時,團隊能夠迅速應對新的需求。

Activity的4種啟動模式

1.standard模式 standard是activity預設的啟動模式,在不指定activity啟動模式的情況下,所有activity使用的都是standard模式。因此,前面是用的activity都是standard啟動模式。在standard模式下,每當啟動乙個新的activity,它就會進...

linux vim的4種模式切換

1.正常模式 normal mode 啟動vim後預設處於正常模式。不論位於什麼模式,按下鍵 有時需要按兩下 都會進入正常模式。2.插入模式 insert mode 在正常模式中按下i,i,a,a等鍵 後面系列文章會詳細介紹 會進入插入模式。現在只用記住按i鍵會進行插入模式。插入模式中,擊鍵時會寫入...

VMware的4種組網模式

如果主機 你正在使用的計算機 正好在乙個乙太網內 可以理解為正連著真實的 網 絡 那麼橋接模式就是將客機 虛擬機器 連入網路的最簡單的方式。此時客機的物理地位等同於主機,客機就像在同乙個網段中新增加的計算機。並且 客機享有所有與主機一樣的服務。該網段中的計算機可以相互訪問。如同連在同一網段 中。該模...