1-1 軟件開發(fā)流程與項目管理

[導航目錄] 記錄今日份學習內容,同時開始使用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)


image.png

[導航目錄]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容