軟件是怎么開(kāi)發(fā)出來(lái)的?相信很多準備定制開(kāi)發(fā)企業(yè)管理軟件的朋友們都會(huì )比較關(guān)注這個(gè)問(wèn)題,下面小編就為大家科普一下軟件定制開(kāi)發(fā)流程,大概了解一下軟件開(kāi)發(fā)中什么階段做什么、怎么做、誰(shuí)來(lái)做,以及軟件定制開(kāi)發(fā)時(shí)間、質(zhì)量、進(jìn)度三者平衡工作。
軟件開(kāi)發(fā)基礎掃盲:軟件是怎么開(kāi)發(fā)出來(lái)的?
1、制定軟件開(kāi)發(fā)項目計劃
最初計劃是里程碑性質(zhì)的??梢韵劝雌俨寄P驮O置,里程碑點(diǎn)主要為需求評審、設計評審、經(jīng)過(guò)代碼開(kāi)發(fā)和單元測試后進(jìn)行集成測試、部署上線(xiàn)是一個(gè)很重要的里程碑,一般用戶(hù)會(huì )期望系統何時(shí)能使用進(jìn)入試運行期(也可以稱(chēng)為用戶(hù)測試階段)。
2、需求開(kāi)發(fā)階段
怎么樣寫(xiě)好需求很關(guān)鍵,如何學(xué)會(huì )進(jìn)行需求開(kāi)發(fā)可以去看下經(jīng)典的《需求工程》這個(gè)翻譯的書(shū),不是很厚,但需要能理解為什么那樣做更好,這個(gè)需要實(shí)踐經(jīng)驗鍛煉自己。如果有項目成員,可以一起做需求,這個(gè)階段對于業(yè)務(wù)理解、分析、如何開(kāi)展調研以及文字表述、業(yè)務(wù)流程圖描述還有文檔編輯能力都有不少要求。一般分為《用戶(hù)需求說(shuō)明書(shū)》和《需求規格說(shuō)明書(shū)》,小項目可以寫(xiě)一個(gè)《需求分析報告》,《用戶(hù)需求說(shuō)明書(shū)》是用用戶(hù)的語(yǔ)言進(jìn)行描述,讓用戶(hù)和開(kāi)發(fā)團隊對于需求的達成一致的理解,《需求規格說(shuō)明書(shū)》,則是對用戶(hù)需求的分析,形成系統要具有的功能,這個(gè)是真正提供用戶(hù)可交互操作的文檔,也就是后期設計和代碼開(kāi)發(fā)的重要基線(xiàn)。
另外,作為了解需求,拿出用戶(hù)UI和用戶(hù)交流也是一項比較重要的需求獲取手段,雖然這個(gè)屬于設計的范疇。
軟件開(kāi)發(fā)基礎掃盲:軟件是怎么開(kāi)發(fā)出來(lái)的?
3、系統設計階段
系統總體架構,結合用戶(hù)對系統環(huán)境、開(kāi)發(fā)語(yǔ)言以及運行的網(wǎng)絡(luò )硬件等要求,確定開(kāi)發(fā)工具等,對應用系統關(guān)系進(jìn)行架構性設計,通過(guò)需求階段對用戶(hù)的分析歸類(lèi),用圖的方式描述出用戶(hù)和各子系統或模塊的全局視圖,以及和其他系統的關(guān)系。也就是搞清楚系統的邊界問(wèn)題。
概要設計中除了高層架構設計,還需要設計網(wǎng)絡(luò )拓撲圖,以及系統部署圖。概要設計比較重要的還有就是子系統、模塊進(jìn)行合理的劃分。模塊的名稱(chēng)很大程度上會(huì )成為用戶(hù)的主要菜單,如何用用戶(hù)的角度去取比較清楚的子系統和模塊是很重要的。
4、代碼開(kāi)發(fā)和單元測試階段
這個(gè)階段一般來(lái)說(shuō)需要改進(jìn)瀑布模型,類(lèi)似跌代開(kāi)發(fā),把模塊進(jìn)行合理劃分,把項目總體計劃的代碼開(kāi)發(fā)測試階段劃分為多個(gè)時(shí)間段,每個(gè)時(shí)間段都包括代碼開(kāi)發(fā)、單元測試和集成測試,這個(gè)階段還需要對需求變更進(jìn)行跟蹤控制,如果需求有變更,那么要把需求文檔、設計文檔都重新跟上。跌代開(kāi)發(fā)的好處就是不讓代碼開(kāi)發(fā)階段拉的過(guò)程,沒(méi)有進(jìn)行及時(shí)的自我檢查,不小心到了提交時(shí)間,卻不是用戶(hù)想要的,還有可能都不是自己想要的。
項目經(jīng)理重要的責任是控制好進(jìn)度,能及早發(fā)現風(fēng)險,并能拿出好的預防和解決辦法的措施。合理安排好開(kāi)發(fā)團隊的任務(wù),合時(shí)的任務(wù)安排和銜接,你會(huì )覺(jué)得非常有藝術(shù)感,這個(gè)要自己體會(huì )了。另外,關(guān)注項目團隊各人員的狀況,保持高的戰斗力,及時(shí)發(fā)現并能鼓勵團隊共同朝一個(gè)目標前進(jìn)。
5、測試工作
測試是項目的很重要的環(huán)節,怎么測試,怎么準確測試,怎么有效測試,怎么覆蓋測試,時(shí)間、人手、經(jīng)驗扽個(gè)方面都會(huì )有制約。高級測試人員能夠分析系統各測試要點(diǎn),在需求、設計階段都要參與,提早了解如何去測試,能寫(xiě)出測試用例。
6、文檔工作
文檔在項目開(kāi)發(fā)中也占有重要位置,除非你覺(jué)得代碼是項目先進(jìn)成果,那么你把文檔拋掉吧,什么都在你的腦子里,團隊中人員一走,項目的一部分也就帶走了。代碼開(kāi)發(fā)其實(shí)也需要文檔,代碼是成果,代碼注釋是成果,模塊開(kāi)發(fā)卷宗也是重要的成果,因為程序員在開(kāi)發(fā)時(shí)候的邏輯是怎么樣的,對于今后查問(wèn)題很有作用。除非你的系統設計程度到了方法、類(lèi),把代碼邏輯也都設計好了,那么程序員就CODEING去吧。
7、QA(售后保障)
QA是對項目過(guò)程的質(zhì)量保障,有些公司吧QA和測試工作合成一個(gè)崗位叫做QA&測試人員,或者就叫QA人員。QA是對項目全過(guò)程的監管,獨立于項目之外。監督項目經(jīng)理在各項目里程碑提交相關(guān)成果,入庫形成基線(xiàn)。