軟體維護
出自 MBA智库百科(https://wiki.mbalib.com/)
軟體維護(Software Maintenance)
目錄 |
軟體維護是指軟體系統交付使用以後,為了改正軟體運行錯誤,或者為了滿足用戶新的需求而加入新功能的修改軟體的過程。
軟體維護主要是指根據需求變化或硬體環境的變化對應用程式進行部分或全部的修改,修改時應充分利用源程式。修改後要填寫《程式修改登記表》,併在《程式變更通知書》上寫明新舊程式的不同之處。一般認為軟體維護只和修正錯誤有關。不過有研究指出80%的軟體維護工作是用在非糾正性的行動。
軟體維護同時包括管理層面及技術層面。管理層面的問題包括:配合客戶的優先順序、人員配置及費用估計。技術層面的問題包括:對需求、系統或問題有限的理解、影響分析、測試以及可維護性的量測。軟體可維護性:
根據國家標準《軟體工程 產品質量 第1部分:質量模型》(GB/T 16260.1-2006),軟體可維護性是指軟體產品被修改的能力,修改包括糾正、改進或軟體對環境、需求和功能規格說明變化的適應。GB/T 16260.1-2006標準還規定了可維護性的五個子特性:
(1)易分析性。軟體產品診斷軟體中的缺陷或失效原因或識別待修改部分的能力。
(2)易改變性。軟體產品使指定的修改可以被實現的能力,實現包括編碼、設計和文檔的更改。如果軟體由最終用戶修改,那麼易改變性可能會影響易操作性。
(3)穩定性。軟體產品避免由於軟體修改而造成意外結果的能力。
(4)易測試性。軟體產品使已修改軟體能被確認的能力。
(5)維護性的依從性。軟體產品遵循與維護性相關的標準或約定的能力。
軟體維護活動類型總起來大概有四種:糾錯性維護(校正性維護)、適應性維護、完善性維護或增強、預防性維護或再工程。除此四類維護活動外,還有一些其它類型的維護活動,如:支援性維護(如用戶的培訓等)。針對以上幾種類型的維護,可以採取一些維護策略,以控制維護成本。
(1)改正性維護。
改正性維護是改正在系統開發階段已發生而系統測試階段尚未發現的錯誤。這方面的維護工作量要占整個維護工作量的17%~21%。所發現的錯誤有的不太重要,不影響系統的正常運行,其維護工作可隨時進行,為了識別和糾正軟體錯誤、改正軟體性能上的缺陷、排除實施中的誤使用,應當進行的診斷和改正錯誤的過程就稱為改正性維護。
(2)適應性維護。
在使用過程中,外部環境(新的硬、軟體配置)、數據環境(資料庫、數據格式、數據輸入/輸出方式、數據存儲介質)可能發生變化。為使軟體適應這種變化,而去修改軟體的過程就稱為適應性維護。
適應性維護是指使用軟體適應信息技術變化和管理需求變化而進行的修改。這方面的維護工作量占整個維護工作量的18%~25%。由於電腦硬體價格的不斷下降,各類系統軟體屢出不窮,人們常常為改善系統硬體環境和運行環境而產生系統更新換代的需求;企業的外部市場環境和管理需求的不斷變化也使得各級管理人員不斷提出新的信息需求。這些因素都將導致適應性維護工作的產生。
(3)完善性維護。
在軟體的使用過程中,用戶往往會對軟體提出新的功能與性能要求。為了滿足這些要求,需要修改或再開發軟體,以擴充軟體功能、增強軟體性能、改進加工效率、提高軟體的可維護性。這種情況下進行的維護活動稱為完善性維護。完善性維護是為擴充功能和改善性能而進行的修改,主要是指對已有的軟體系統增加一些在系統分析和設計階段中沒有規定的功能與性能特征。
(4)預防性維護。
預防性維護為了改進應用軟體的可靠性和可維護性,為了適應未來的軟硬體環境的變化,應主動增加預防性的新的功能,以使應用系統適應各類變化而不被淘汰。這是指預先提高軟體的可維護性、可靠性等,為以後進一步改進軟體打下良好基礎。通常,預防性維護可定義為“把今天的方法學用於昨天的系統以滿足明天的需要”。也就是說,採用先進的軟體工程方法對需要維護的軟體或軟體中的某一部分(重新)進行設計、編碼和測試。