java實戰(zhàn)教程(一)軟件開發(fā)流程-u0026開發(fā)模式
這里小編為了方便處于不同學習階段的童鞋,準備了三個系列的文章,java系列教程、java實戰(zhàn)教程、java進階教程,對于剛入坑的童鞋,可以先按照這三個系列教程一步步的了解,循序漸進,java實戰(zhàn)系列教程是針對于對java有一定了解并且熟悉到一定程度的童鞋品嘗,如果對java基礎不是很了解的同學可以參考java系列教程,也可以通過網上一些渠道進行java基礎方面的學習。這里就不多說了,開始進入本系列的學習撒~
首先先簡單描述一下軟件開發(fā)的大致的一個流程
這里小編舉個例子,寫軟件好比我們蓋房子,我們蓋房子首先需要有一個設計藍圖,我們要蓋一個什么樣的房子,多大,要容納多少人,采用什么材料等等,這個就類比我們軟件開發(fā)階段的需求收集以及原型建立的怎么個階段,明確我們需要做一個什么樣的軟件,完成什么樣的功能需求,這一塊一般是軟件產品經理的工作。房子的藍圖有了,我們不可能直接就擼起袖子加油干,因為可能這個藍圖并不靠譜,所以設計藍圖弄好之后需要有個審核階段,以確保蓋出來的房子是可靠的,這個階段我們可以類比軟件開發(fā)過程中的需求評審階段,產品經理將需求跟原型整理好了,聚集各位開發(fā)人員測試人員進行需求的評審,確認需求是否合理,這回大家就會展開頭腦風暴,各抒己見,盡量將開發(fā)過程中的風險提前避開。這回藍圖審核好了,也就是軟件的需求原型已經建立了,那么擼起袖子加油干撒,這回就進入了一個任務分解排期階段,比如說這個房子我需要先打好地基,然后需要澆筑主體,砌磚,封頂等等,需要把這每一項工作進行排期,這樣才能控制進度,以及總體工程耗費時間在一個可控的范圍內,這里類比軟件開發(fā),首先需要根據需求進行系統(tǒng)的設計然后對模塊以及功能進行分解,系統(tǒng)整體有多少個模塊,多少功能點,需要多少人去完成,每個功能點由誰去實現,完成功能點需要多長時間等,以確保項目按照既定的排期推進,明確分工之后,這回就可以按部就班,擼起袖子加油干了,在一切順利的前提下,房子如期竣工,這回可以直接交付給房主了嗎?當然不行需要,房子在蓋完之后需要進行驗收確認各個指標到達設計的要求,這就類比軟件開發(fā)的測試階段,測試人員介入,根據系統(tǒng)需求進行測試用例編寫,對軟件進行全方位的測試以確保交付軟件的可靠,其實最后還有一個階段產品經理驗收,產品經理需要對軟件進行驗收確保軟件達到了設計的需求。大致的一個軟件開發(fā)流程是這樣的,不同的公司,可能會有細微的差別,大型公司軟件開發(fā)流程把控會相對比較完善。
關于開發(fā)模式
現在比較主流的開發(fā)模式有兩種
一、傳統(tǒng)的瀑布式開發(fā)(SDLC)
圖片來源:Software Testing Help
- Requirement gathering & Analysis: 需求收集以及分析階段,由產品經理主導,產品經理梳理項目的需求進行分析生成軟件需求說明書
- Design: 設計階段,根據產品需求說明書進行系統(tǒng)架構設計,例如技術選型,數據庫設計等
- Implementation & Coding: 功能需求編碼實現,由開發(fā)人員完成
- Testing: 測試階段,開發(fā)人員實現功能需求之后需要進行集成測試,確保軟件質量
- Deployment: 軟件部署階段,測試完成后需要進行部署投產交付
- Maintenance:軟件的日常維護工作
二、敏捷開發(fā)模式(agile model)
product backlog: 翻譯過來可以理解成“積壓的工作”,product backlog是一個具有優(yōu)先級的需求列表, 并對每個需求進行了粗略的估算。表示可以預知的所有任務,包括未細化的產品功能要求、Bugs、缺陷、用戶提出的改進、具競爭力的功能及技術升級等,按優(yōu)先級定義出來,這些任務可能不是完整的,甚至可能隨時會更改或添加。Prodcut Backlog永遠處于不完整狀態(tài),它隨著產品及其使用環(huán)境的變化而變化,它是動態(tài)的,管理層不斷對之做出改變,確定產品需求,保證產品適用性、實用性和競爭性
然后在每一個迭代周期內,團隊會根據優(yōu)先級從product backlog池中取出,然后細分成一個個任務指派到具體的人去執(zhí)行,通常在敏捷開發(fā)模式下,每天都會舉行一個daily meeting會議,成員匯報工作進度,更新 sprint burn down (燃盡圖)
當一個迭代周期完成后,需要進行復盤也就是展開一個評審會議(sprint review meeting)r如果順利的話進行這一周期內完成的需求發(fā)布,并且對這一個周期進行復盤,做一個總結
這里針對開發(fā)模式不做太深入的了解,只是簡單的介紹,如果后續(xù)大家對這一塊感興趣可以留言哈