[導航目錄] 記錄今日份學習內容,同時開始使用markdown方式記錄--2020-05-17
1.軟件開發(fā)流程
- 需求分析
- 概要設計
- 詳細設計
- 編碼
- 測試
- 軟件交付
- 驗收
- 維護
2.軟件開發(fā)流程的演變
2.1 傳統瀑布模型
項目計劃 =》需求分析 =》軟件設計 =》程序開發(fā) =》軟件測試 =》集成維護
2.2 敏捷開發(fā)模型
- 更強調程序員團隊與業(yè)務專家之間的緊密協作
- 面對面的溝通
- 頻繁交付新的軟件版本
- 緊湊而自我組織型的團隊
- 能夠很好的適應需求變化的代碼編寫和團隊組織方法
- 更注重軟件開發(fā)過程中人的作用
2.2.1 XP - 極限編程
XP是一種近螺旋式的開發(fā)方法,它將復雜的開發(fā)過程分解成一個個相對比較簡單的小周期;通過積極的交流反饋等方法,可以清楚開發(fā)進度、變化、待解決問題和潛在困難等,可以及時調整開發(fā)過程
[圖片上傳中...(image.png-304ee9-1589682743432-0)]
2.2.2. SCRUM
Scrum是用于開發(fā)、交付和持續(xù)支持復雜產品的一個框架,是一個增量的、迭代的開發(fā)過程

- 3個角色:產品負責人(Product Owner)、Scrum Master、開發(fā)團隊
- 3個工件:產品Backlog、SprintBacklog、產品增量(Increment)
- 5個事件:Sprint:Sprint計劃會議(Sprint Planning Meeting)、每日站會(Daily Scrum Meeting)、Sprint評審會議(Sprint Review Meeting)、Sprint回顧會議(Sprint Retrospective Meeting)
- 5個價值:承諾、專注、開放、尊重、勇氣
- 三大支柱:透明性(Transparency)、檢驗(Inspection)、適應(Adaptation)
-
XP與Scrum區(qū)別
迭代長度:1-2周/2-4周
是否允許修改需求:未實現的可以/不可以
是否嚴格優(yōu)先級:必須/可優(yōu)先被依賴需求
是否嚴格的工程方法:嚴格規(guī)定/自覺保證
2.3 DevOps開發(fā)模型
DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用于促進開發(fā)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。
它是一種重視“軟件開發(fā)人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟件交付”和“架構變更”的流程,來使得構建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。
它的出現是由于軟件行業(yè)日益清晰地認識到:為了按時交付軟件產品和服務,開發(fā)和運維工作必須緊密合作。
需求頻繁變化、開發(fā)需要敏捷、測試需要敏捷;
-
減少變更范圍、加強發(fā)布協調、自動化
持續(xù)開發(fā):
計劃:jira
編碼:Git、SVN
打包:Ant、Maven、Grade持續(xù)測試:
自動化測試工具:Selenium、Appium、Pytest、TestNG等
可以使用Docker容器實時模擬測試環(huán)境-
持續(xù)集成:
新功能代碼與現有代碼集成的階段:Jenkins
image.png 持續(xù)部署:
將代碼部署到生產環(huán)境的階段:配置管理工具、容器化工具持續(xù)監(jiān)控:
非常關鍵的階段:使用監(jiān)控工具密切監(jiān)視系統的運行狀態(tài)
2.4 CI/CD
CI 持續(xù)集成(Continuous integration)
CD 持續(xù)交付(Continuous delivery)


