軟體工程系列文章四
軟體維護是軟體生命週期的最後一個階段,處於系統投入生產性執行之後的時期,因此不屬於系統開發過程。軟體維護是在軟體已經交付使用之後,為了改正錯誤或滿足新的需求而修改軟體的過程,即軟體在交付使用後對軟體所做的一切改動。
系統可維護性概念
系統的可維護性可以定義為維護人員理解、改正、改動和改進這個軟體的難易程度。提高可維護性是開發軟體系統所有步驟的關鍵目的,系統是否能被很好地維護,可以用系統的可維護性這一指標來衡量。
系統可維護指標
- 可理解性:指別人能理解系統的結構、介面、功能和內部過程的難易程度。模組化、詳細設計文件、結構化設計和良好的高階程式設計語言等都有助於提高可理解性。
- 可測試性:診斷和測試的容易程度取決於易理解的程度。好的文件資料有利於診斷和測試,同時,程式的結構、高效能的測試工具以及周密計劃的測試程序也是至關重要的。為此,開發人員在系統設計和程式設計階段就應盡力把程式設計成易診斷和測試的。此外,在進行系統維護時,應該充分利用在系統測試階段保存下來的測試案例。
- 可修改性:診斷和測試的容易程度與系統設計所制定的設計原則有直接關係。模組的耦合、內聚、作用範圍與控制範圍的關係等都對可修改性有影響。
維護與軟體文件
文件是軟體可維護性的決定因素。由於長期使用的大型軟體系統在使用過程中必然會經過多次修改,所以文件顯得非常重要。
軟體系統的文件可以分為使用者文件和系統文件兩類。使用者文件主要描述系統功能和使用方法,並不關心這些功能是如何實作的;系統文件描述系統設計、實作和測試等各方面的內容。
可維護性是所有軟體都應具有的基本特點,必須在開發階段保證軟體具有可維護性的特點。在軟體工程的每一個階段都應考慮並提高軟體的可維護性,在每個階段結束前的技術審查和管理複查中,應該著重對可維護性進行複審。
軟體文件
編寫高品質文件可以提高軟體開發的品質。
文件也是軟體的一部分,沒有文件的軟體就不能稱之為軟體。
軟體文件的編制在軟體開發工作中佔有突出的地位和相當大的工作量,高品質的文件對於軟體產品的效益有著重要的意義。
系統維護的內容及類型
系統維護主要包括硬體維護、軟體維護和資料維護。
硬體維護
硬體維護應由專職的硬體維護人員來負責。
軟體維護
軟體維護主要是根據需求變化或硬體環境的變化對應用程式進行部分或全部修改。修改時充分利用原始程式,修改後要填寫程式修改登記表,並在程式變更通知書上寫明新舊程式的不同之處。
軟體維護的內容一般有以下幾個方面:
- 改正性維護:指改正性在系統開發階段已發現而系統測試階段尚未發現的錯誤。
- 適應性維護:指使應用軟體適應資訊技術變化和管理需求變化而進行的修改。
- 完善性維護:是為擴充功能和改善效能而進行的修改,主要是指對已有的軟體系統增加一些在系統分析和設計階段中沒有規定的功能與效能特徵。
- 預防性維護:為了改進應用軟體的可靠性和可維護性,為了適應未來的軟硬體環境變化,應主動增加預防性的新功能,以使應用系統適應各類變化而不被淘汰。
資料維護
資料維護工作主要是由資料庫管理員(DBA)來負責,主要負責資料庫的安全性和完整性以及進行並行控制。
軟體的品質屬性
可靠性、可用性和可維護性是軟體的品質屬性,軟體工程中,用 0-1 之間的數來度量。
可靠性是指一個系統對於給定的時間間隔內、在給定條件下無失效運作的機率。可以用 MTTF/(1+MTTF) 來度量,其中 MTTF 為平均故障前時間(Mean Time To Failure)。
可用性是在給定的時間點上,一個系統能夠按照規格說明正確運作的機率。可以用 MTBF/(1+MTBF) 來度量,其中 MTBF 為平均失效間隔時間(Mean Time Between Failures)。
可維護性是在給定的使用條件下,在規定的時間間隔內,使用規定的過程和資源完成維護活動的機率。可以用 1/(1+MTTR) 來度量,其中 MTTR 為平均修復時間(Mean Time To Repair)。