軟體開發方式的發展
通常提到軟體開發流程,我們先來講講軟體開發流程的發展曆程,它從最初的瀑布式開發演變成了如今的靈活開發方式。
瀑布式開發是最古老的軟體開發方式,遵循的是線性執行順序。從需求收集到維護,逐漸依次推進,隻有完成了上一步才能繼續下一步。瀑布式開發能否成功,很大程度上取決于需求收集階段的輸出是否清晰。
靈活開發既有快速輕松的移動能力,又兼顧以溝通和靈活性為中心的靈活原則與方法,提倡以更短的周期和增量式地進行部署與釋出。在靈活開發中,每次傳遞的目标不一定是建構最小可行産品,也可能是建構可供客戶使用的軟體的一小部分。其傳遞出來的可能隻是某個功能,而非具有完全功能的産品。靈活開發更易于管理各種潛在風險,适用于不斷變化的需求。
軟體開發的一般流程
軟體開發流程,通常是指軟體開發設計的一般性過程,包括軟體總體結構、子產品構成、功能的設計,以及程式的編寫、調試、程式聯調、測試等等過程。軟體開發必須要遵從一定的流程、技術開發規範,軟體開發團隊中的每個成員都遵照統一的規範部署去設計、開發、測試、溝通,才能提高開發的效率,提高項目開發的品質。軟體開發流程一般有以下階段:
在與顧客确定好合作關系之後,首先要進行的第一個過程是對項目開發的分析和确定,需要确定需求方軟體開發的目标和具體需求。然後就是需求分析,此步驟也是确定實施軟體開發的具體思路的階段。在确定軟體開發可以進行後,對客戶的需要實作的軟體功能進行詳細的分析。同時要考慮開發過程中可能出現的變化,制定需求變更計劃,随時應對特殊情況的發生,保證軟體開發過程的順利進行。這些都屬于是需求開發階段,在這一階段,怎麼樣寫好需求很關鍵,這個階段對于業務了解、分析、如何開展調研以及文字表述、業務流程圖描述還有文檔編輯能力都有不小要求。一般分為《使用者需求說明書》和《需求規格說明書》,小項目可以寫一個《需求分析報告》,《使用者需求說明書》是用使用者的語言進行描述,讓使用者和開發團隊對于需求的達成一緻的了解,《需求規格說明書》,則是對使用者需求的分析,形成系統要具有的功能,這個是真正提供使用者可互動操作的文檔,也就是後期設計和代碼開發的重要基線。
等需求确認之後,就要開始進行UI設計,這個也是開發很重要的一部分,UI視覺設計的好壞直接影響app留存率。軟體開發公司通常會根據客戶想要的風格制作出大緻的界面圖,供客戶參考,直到客戶确定下來界面。
然後就到了系統設計階段,這一階段的重點是系統總體架構,結合使用者對系統環境、開發語言以及運作的網絡硬體等要求,确定開發工具等,對應用系統關系進行架構性設計,通過需求階段對需求的分析歸類,用導圖的方式描述出使用者和各子系統或子產品的全局視圖,以及和其他系統的關系,也就是搞清楚系統的邊界問題。除了高層架構設計,還需要設計網絡拓撲圖,以及系統部署圖。比較重要的還有子系統、子產品進行合理的劃分。子產品的名稱大機率會成為使用者的主要菜單,如何在使用者的角度去取比較清楚的子系統和子產品名稱是很重要的。
下一階段就到了代碼開發和單元測試,這個階段一般來說需要改進瀑布模型,類似疊代開發,把子產品進行合理劃分,把項目總體計劃的代碼開發測試階段劃分為多個時間段,每個時間段都包括代碼開發、單元測試和內建測試,這個階段還需要對需求變更進行跟蹤控制,如果需求有變更,那麼要把需求文檔、設計文檔都重新跟上。疊代開發的好處就是不讓代碼開發階段的過程,因沒有進行及時的自我檢查,到了送出時間,才發現不是使用者想要的,還有可能都不是自己想要的。軟體開發公司需要控制好進度,能及早發現風險,并能拿出好的預防和解決措施。合理安排好開發團隊的任務和任務銜接。
測試工作是開發項目的很重要的階段,怎麼測試,怎麼準确測試,怎麼有效測試,怎麼覆寫測試,時間、人手、經驗等各個方面都會有限制。客戶軟體按照設計用程式設計代碼實作後,也就是軟體程式完成後,需要修改書面的程式,形成整體架構,功能為單元,組裝,系統三個階段測試,測試程式的正确性,客戶要求功能的充分性,以确定軟體是否滿足需求,這也是一個發現問題、糾正問題的過程。除此之外文檔在項目開發中也占有重要位置,它記錄了程式員在開發時候的邏輯是怎麼樣的,對于今後查問題很有幫助。
軟體開發是通過以上核心環節完成的。接下來就在軟體開發之後滿足了客戶的要求,軟體系統交給了客戶,并向客戶傳遞軟體安裝程式、資料庫的資料字典、《使用者安裝手冊》、《使用者使用指南》、需求報告、設計報告、測試報告等文檔,指導客戶安裝軟體及安裝技巧。提醒客戶關注軟體的運作狀态、環境、伺服器及相關中間件的檢測和注意事項,了解客戶軟體的實際操作方法、使用流程等問題,實作合同規定的任務。使用者接受開發傳遞的軟體後,實際操作運作測試。達到滿意的結果後,對開發出來的軟體進行驗收。然後軟體公司将app上線釋出到各個應用商店,一般蘋果的APP store審查需要一周左右,Android審查需要三天左右,會更快。另外,根據個别情況,審查失敗,需要修改資料再送出,審查時間會變長。
定制開發的軟體通常需要提供售後服務,維護軟體,或者根據使用者的新需求修改應用軟體程式,不斷滿足客戶的實際需求。