軟件生存週期包括軟件定義階段、軟件開發階段和軟件使用、維護和更新換代階段。系統分析師、設計師、編程人員、測試人員以及維護人員可以作爲參考,瞭解軟件整個生命週期的階段。
1、軟件定義階段
軟件定義階段的基本任務是確定軟件系統的工程需要,可分爲兩個階段。
1.1、軟件系統的可行性研究
-經濟可行性研究
-技術可行性研究
-法律可行性研究
-開發方案的選擇性研究
可行性研究的任務是瞭解用戶的要求及實現的環境,從技術、經濟和社會等各個方面進行研究,並從成功和風險兩方面來論證軟件系統的可行性。參與軟件開發的分析人員應在用戶配合下對用戶要求及實現環境作深入細緻的調查,寫出調研報告,並進行可行性論證。
1.2、項目需求分析
-軟件功能需求:系統必須完成的功能
-軟件性能需求:安全性、可靠性、可維護性和用戶培訓等
-軟件運行環境約束
-需求建模
-問題抽象、問題分解與多視點分析
-支持需求分析的快速原型技術
-需求規格說明與評審
軟件需求是指用戶對其目標軟件系統的功能、行爲、性能、設計約束等諸方面的期望。用過與用戶反覆交流,對應用問題及環境充分地理解與分析,爲問題涉及的信息、功能及系統行爲建立模型。去除無關的和使人誤解的信息,尋找是否有對類似問題的解決辦法,將用戶需求精確化、完全化,最終形成需求規格說明,完成軟件開發生存週期的需求分析階段。
2、軟件開發階段
軟件開發階段包括概要設計、詳細設計、實現、組裝測試和確認測試5個階段。
2.1、概要設計:根據軟件需求規格說明進行
-建立系統總體結構和各模塊之間的關係
-定義各功能模塊的接口
-設計全局數據庫或數據結構
-規定設計約束
-制定組裝測試計劃
2.2、詳細設計
-對概要設計進行細化
-建立文檔資料
2.3、實現
-選擇何時的編程語言編寫程序
-制定模塊測試方案和測試數據
-制定模塊預期測試結果
-制定組裝測試方案和測試數據
-制定預期測試結果
-保存相應的文檔資料
2.4、組裝測試
-根據模塊測試方案和測試數據進行模塊測試
-根據組裝測試方案和測試數據逐步進行組裝測試
-系統各模塊連接正確性測試
-軟件系統或子系統的正確性和容錯性能測試
-保存相應的文檔資料
2.5、確認測試
-由專家、客戶、開發人員組成系統測試評審小組
-向用戶提供最終的用戶手冊、操作手冊、源程序清單及其他軟件文檔資料
-三方共同根據組裝測試方案和測試數據逐條嚴格進行組裝測試,確認軟件系統是否達到用戶的系統需求
-確認系統測試結束時應建立確認系統測試報告、項目開發總結報告
-保存相應文檔資料
由專家、客戶、開發人員組成的軟件測試評審小組在對軟件確認報告、測試結果和軟件經銷評審通過以後,軟件產品得到確認,就可以交付用戶使用。另外需要強調說明的是,軟件在開發過程中通常會有很多中方案可供人們選擇,可以根據成本、進度、功能、性能、系統複雜性、時空開銷、風險等諸方面進行折衷平衡,以便用較小的代價實現客戶對軟件總體目標的需求。
3、軟件使用、維護和更新換代階段
3.1、軟件的使用
-推廣軟件的應用。使用軟件的用戶越多,其社會經濟效果越大
-客戶和系統維護人員必須認真收集軟件使用時發現的軟件錯誤
-定期撰寫“軟件問題報告”
3.2、系統維護
-對發現的軟件產品中潛伏的錯誤進行修改維護
-對用戶提出的軟件需求進行修改維護
-軟件運行環境發生變化時需要對軟件進行修改維護
-對軟件定義和軟件開發各階段生存的文檔資料進行修改維護
軟件維護需要花費大量勞動,軟件維護的好壞直接影響到軟件的應用和軟件生存週期,而軟件的可維護性又與軟件設計密切相關,所以軟件在開發過程中應當重視對軟件可維護性的支持。
3.3、系統更新換代
軟件生存週期的最後一個階段。本軟件已完成其歷史使命,但軟件中的一些構件或模塊還可以複用,可以成爲新系統的一個組成部分。
(以上摘自《面向對象技術導論-系統分析與設計》一書)