軟體維護的代價是很大的,據1994年Software Engineering Encyclopedia記載,80年代末用於軟體維護的花費約占整個軟體生命周期花費的75%,而且還在逐年上升。一、軟體維護類型
根據引起軟體維護的原因,軟體維護通常可非為一下四種類型。
1.改正性維護
改正性維護是指在使用過程中發現了隱蔽的錯誤後,為了診斷和改正這些隱蔽錯誤而修改軟體的活動。
2.適應性維護
適應性維護是指為了適應變化了的環境而修改軟體的活動。
3.完善性維護
完善性維護是指為了擴充活完善原有軟體的功能或性能而修改軟體的活動。
4.預防性維護
預防性維護是指為了提高軟體的可維護性和可靠性、為未來的進一步改進打下基礎而修改的活動。
軟體的可維護性是指理解、改正、改動、改進軟體的難易程度。根據Boehm模型,通常影響軟體可維護性的因素有可理解性、可測試性和可修改性。
1.可理解性
可理解性是指維護人員理解軟體的結構、藉口、功能和內部過程的難易程度。
2.可測試性
可測試性是指測試和診斷軟體錯誤的難易程度。
3.可修改性
可修改性是指修改軟體的難易程度。
為了提高軟體的可維護性,在軟體生命周期的各個階段都必須考慮維護問題。先進的軟體工程方法,是軟體可維護的基礎保證。
面向對象學的對象封閉機制、訊息通信機制、繼承機制和多態機制從根本上提高了軟體的可理解性、可測試性和可修改性。
結構化設計的幾條主要原則:模組化、信息隱蔽、高內聚、低耦合等,對於提高軟體的可理解性、可維護性和可修改性也都有很重要的作用。
另外,書寫詳細正確的文檔、書寫源檔案的內部註解、使用良好的程式語言、具有良好的程式設計風格,也有助於提高軟體的可理解性。使用先進的測試工具、保存以前的測試過程和測試用例,則有助於提高軟體的可測試性。
軟體維護管理是指為了保證維護質量、提高維護效率、控制維護成本而進行的維護過程管理,它要求對軟體的每次“修改”均需經過申請、評估、批准、實施、驗證等步驟。
短劍維護管理的的核心是維護評估和維護驗證。維護評估的主要工作包括:判定維護申請的合理性與輕重緩急、確定維護的可行性與實踐及費用、制定維護策略與維護計畫等。維護驗證主要審查修改後的軟體是否實現了維護目標、軟體文檔是否也做了相應的修改等。