軟件開(kāi)發(fā)是一個(gè)把用戶(hù)需要轉化為軟件需求,把軟件需求轉化為軟件設計,用軟件代碼來(lái)實(shí)現軟件設計,對軟件代碼進(jìn)行測試,并簽署確認它可以投入運行使用的過(guò)程。在這個(gè)過(guò)程中的每一階段,都包含有相應的文檔編制工作。
軟件開(kāi)發(fā)過(guò)程當中,遵循一定的流程,主要包括系統分析、系統設計、系統編碼、系統測試以及系統的維護等幾個(gè)階段。依次概述如下:
1.系統分析
系統分析包括軟件需求分析和系統可行性分析。軟件需求分析就是回答做什么的問(wèn)題。它是一個(gè)對用戶(hù)的需求進(jìn)行去粗取精、去偽存真、正確理解,然后把它用軟件工程開(kāi)發(fā)語(yǔ)言(形式功能規約,即需求規格說(shuō)明書(shū))表達出來(lái)的過(guò)程。系統可行性分析就是通過(guò)需求調查來(lái)確定此系統是否具有可行性。
2.系統設計
系統設計可以分為概要設計和詳細設計兩個(gè)階段。實(shí)際上軟件設計的主要任務(wù)就是將軟件分解成模塊。概要設計就是結構設計,其主要目標就是給出軟件的模塊結構,用軟件結構圖表示。詳細設計的首要任務(wù)就是設計模塊的程序流程、算法和數據結構,次要任務(wù)就是設計數據庫,常用方法還是結構化程序設計方法。
3.系統編碼
系統編碼是指把軟件設計轉換成計算機可以接受的程序,即寫(xiě)成以某一程序設計語(yǔ)言表示的"源程序清單"。
4.系統測試
系統測試的目的不是驗證軟件的正確性,而是以較小的代價(jià)發(fā)現盡可能多的錯誤。測試從需求階段開(kāi)始,此后與整個(gè)開(kāi)發(fā)過(guò)程并行,換句話(huà)說(shuō),伴隨著(zhù)開(kāi)發(fā)過(guò)程的每一個(gè)階段,都有一個(gè)重要的測試活動(dòng),它是預期內按時(shí)交付高質(zhì)量的軟件的保證。
5.系統維護
系統維護是指在已完成對軟件的研制(分析、設計、編碼和測試)工作并交付使用以后,對軟件產(chǎn)品所進(jìn)行的一些軟件工程的活動(dòng)。即根據軟件運行的情況,對軟件進(jìn)行適當修改,以適應新的要求,以及糾正運行中發(fā)現的錯誤。編寫(xiě)軟件問(wèn)題報告、軟件修改報告。在實(shí)際開(kāi)發(fā)過(guò)程中,軟件開(kāi)發(fā)并不是從第一步進(jìn)行到最后一步,而是在任何階段,在進(jìn)入下一階段前一般都有一步或幾步的回溯。在測試過(guò)程中的問(wèn)題可能要求修改設計,用戶(hù)可能會(huì )提出一些需要來(lái)修改需求說(shuō)明書(shū)等。
我認為,軟件開(kāi)發(fā)是一個(gè)環(huán)環(huán)相扣的設計和實(shí)施過(guò)程,整個(gè)系統開(kāi)發(fā)的過(guò)程當中,系統分析和設計是重中之重。只有把握好系統分析,才能使后續改動(dòng)盡可能多的減少;只有把握好系統設計,才能保證軟件的根基比較穩固。也即是它們很大程度上決定著(zhù)軟件開(kāi)發(fā)的周期以及壽命。另外,完美的開(kāi)發(fā)團隊和開(kāi)發(fā)過(guò)程的合理控制是軟件成功開(kāi)發(fā)關(guān)鍵要素之一。