一、瀑布式 Waterfall
瀑布模型,簡而言之,就是等一個階段所有工作完成之后,再進入下一個階段。
由W.W.Royce在1970年最初提出的軟件開發模型。
瀑布開發模式:
瀑布開發模式有以下顯著的特點:
1.嚴格把軟件項目的開發分隔成各個開發階段:需求分析,要件定義,基本設計,詳細設計,編碼,單體測試,結合測試,系統測試等。
使用里程碑的方式,嚴格定義了各開發階段的輸入和輸出。如果達不到要求的輸出,下一階段的工作就不展開。
2.重視和強調過程文檔,在開發的中后期才會看到軟件原型,早起只能通過文檔來了解系統的模樣。
在這種情況下,文檔的重要性仿佛已經超過了代碼的重要性。
3.瀑布模型把每個開發階段都定義為黑盒,希望每個階段的人員只關心自己階段的工作,不需要關注其他階段的工作。
好處是:可以讓開發人員能夠更專注於本職工作,提高階段效率。
壞處是:
a.由於各階段的開發人員只能接觸到自己工作范圍內的東西,所以對客戶需求的理解程度高低不等,開發人員更像是定義為流水線上的工人。
b.對於客戶需求變更,編碼人員會比設計人員更容易產生很強的抵觸情緒。
c.在每個開發階段都會有一些信息刻意的不讓其他開發階段的人員知道(本意是為了提到效率,但實際上有時候產生的是互相的理解偏差)。
4.瀑布模型產生的管理文檔(計划書,進度表)等,能讓不太了解該項目的人也能看懂項目的進度情況(只有能看懂百分比就行),很適合向領導匯報用。所以管理人員比較喜歡瀑布模型,但是開發人員不喜歡,因為它束縛了開發人員的創造性。
5.既然叫做瀑布,就意味着不應該走回頭路。否則如果出現返工,付出的代價會很大。
軟件生命周期前期造成的Bug的影響比后期的大的多。
代價比較大的主要原因還是每個開發階段的步子過大,每一次調整都可能傷筋動骨。
6.更適合需求相對穩定的大型項目。
二、敏捷開發Agile Development
簡單來說,就是把大項目變成小項目,把大時間點變成小時間點,持續集成,持續交付。
CI/CD。Continuous Integration(持續集成),Continuous Delivery(持續交付)或Continuous Deployment(持續部署)。
1990年代興起。
scrum是比較流行的一種。
Scrum框架包括3個角色、5個會議、3套工具。
3個角色:
1. Scrum Master,Scrum過程的管理者,服務於PO、團隊和組織;
2. PO: Product Owner,對產品Roadmap和Backlog負責,確保產品價值最大化。
3. Dev Team:架構師、開發人員、測試人員等,負責實現Sprint目標。
5個會議
三、DevOps
Development&&Operations
四、螺旋式遞增模式
1988年,巴利·玻姆(Barry Boehm)正式發表了軟件系統開發的“螺旋模型”,它將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合於大型復雜的系統。
一般在軟件開發初期階段需求不是很明確時,采用漸進式的開發模式。螺旋模型是漸進式開發模型的代表之一。
這對於那些規模龐大、復雜度高、風險大的項目尤其適合
優點:
–強調嚴格的全過程風險管理
–強調各開發階段的質量
–提供機會檢討項目是否有價值繼續下去
缺點:
–引入非常嚴格的風險識別、風險分析和風險控制,這對風險管理的技能水平提出了很高的要求。這需要人 員、資金和時間的投入
五、V-Model:
汽車級產品V模型開發模式
六、CMMI
參考:
軟件開發周期的常見模型(v,w模型)
https://blog.csdn.net/weixin_40720301/article/details/102816101