1.問題定義?
問題定義階段必須回答的關鍵問題是“要解決的問題是什麽”。確定軟件的工作範圍。
2.可行性研究?
這壹階段需要回答的關鍵問題是:“對於前壹階段確定的問題,是否有可行的解決方案?”。
3.需求分析?
這個階段的任務仍然不是具體解決客戶的問題,而是準確回答“目標系統必須做什麽”這個問題。這個階段的另壹個重要任務是用壹個正式的文檔準確地記錄目標系統的需求,這個文檔通常被稱為規範。?
4.輪廓設計?
這個階段的基本任務是回答“如何實現目標體系?”這個問題。概要設計又稱初步設計、邏輯設計、高層設計或總體設計。?
首先要設計幾種可能的方案來實現目標體系。
大綱設計的另壹個主要任務是設計程序的架構,即確定程序由哪些模塊組成,以及它們之間的關系。
5.詳細設計?
在概要設計階段,以更抽象的方式提出問題的解決方案。詳細設計階段的任務是將解決方案具體化,即回答“如何具體實現這個系統”這個關鍵問題,這個階段的任務不是寫程序,而是設計程序的詳細規格。?
6.編碼和單元測試?
這壹階段的關鍵任務是編寫易於理解和維護的正確程序模塊。
7.綜合測試?
這壹階段的關鍵任務是通過各種類型的測試(以及相應的調試),使軟件達到預定的要求。?
8.軟件維護?
維護階段的關鍵任務是通過各種必要的維護活動,使系統永久滿足用戶的需求。?
通常有四種類型的維護活動:糾正性維護,即診斷和糾正使用過程中發現的軟件錯誤;適應性維護,即修改軟件以適應環境的變化;完善維護,即根據用戶的要求對軟件進行改進或擴展,使其更加完善;預防性維護,即修改軟件,為將來的維護活動做準備。