同任何事物類似,軟體也有一個從生到死的過程,這個過程一般稱為軟體生存周期或生命周期(software development life cycle,sdlc)。一般地,軟體生存周期可劃分為定義、開發和運作3個時期,每個時期又細分為若幹個階段。把整個軟體生存周期劃分為若幹階段,使得每個階段有明确的任務,使規模大、結構複雜和管理複雜的軟體開發變得容易控制和管理。
通常,軟體生存周期包括問題的定義與可行性分析、項目計劃、需求分析、軟體設計、編碼與測試、運作與維護等階段,每個階段又包含一系列的活動,可以将這些活動以适當的方式配置設定到不同的階段去完成。軟體産品經曆了從開始到結束的整個開發周期後,新一代産品将通過開發周期的重複而發展。即使開發階段重複進行,它們也不一定與開發周期最初的那些階段相同。
軟體生存周期的基本理念是把開發過程中複雜的問題趨于簡單化,進而有效地控制和管理的方法學。對軟體開發過程的研究,實際就是對軟體生存周期方法學的研究,是以,軟體生存周期方法學是軟體工程方法學的核心内容。
軟體生存周期的6個階段如下。
問題的定義與可行性分析。在此階段,軟體開發人員與客戶進行溝通,确定軟體的開發目标、範圍、規模等,以及項目的可行性。
項目計劃。項目計劃階段根據項目的問題、範圍、規模制訂初步的開發計劃,包括人員組織、項目過程、項目預算投入、項目風險管理、進度安排等。
需求分析。在确定軟體開發可行的情況下,對軟體需要實作的各個功能進行詳細分析。需求分析階段是一個很重要的階段,這一階段做得好,将為整個軟體開發項目的成功打下良好的基礎。同樣,需求也是在整個軟體開發過程中不斷變化和深入的,是以我們必須制訂需求變更計劃來應付這種變化,以保證整個項目的順利進行。
軟體設計。此階段主要根據需求分析的結果,對整個軟體系統進行設計,如系統架構結構設計、元件設計、資料庫設計等。軟體設計一般分為總體設計和詳細設計。好的軟體設計将為軟體程式編寫打下良好的基礎。
編碼與測試。此階段是将軟體設計的結果轉換成計算機可運作的程式代碼。在程式編碼中必須要制定統一、符合标準的編寫規範,以保證程式的可讀性、易維護性,提高程式的運作效率。在軟體設計完成後要經過嚴密的測試,以發現軟體在整個設計過程中存在的問題并加以糾正。整個測試過程分單元測試、組裝測試以及系統測試3個階段進行。在測試過程中需要建立詳細的測試計劃并嚴格按照測試計劃進行測試,以減少測試的随意性。
運作與維護。軟體維護是軟體生存周期中持續時間最長的階段。在軟體開發完成并投入使用後,由于多方面的原因,軟體不能繼續适應使用者的要求。要延續軟體的使用壽命,就必須對軟體進行維護。