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