跳轉至內容

軟體工程/部署/維護簡介

來自華夏公益教科書

在軟體工程中,軟體維護是指在交付軟體產品後對其進行修改,以糾正錯誤,提高效能或其他屬性。[1]

人們普遍認為維護僅僅是修復 bug。然而,多年來的研究和調查表明,超過 80% 的維護工作用於非糾正性操作 (Pigosky 1997)。這種看法被使用者提交的問題報告所強化,而這些報告實際上是系統功能的增強。

Meir M. Lehman 在 1969 年首次提出了軟體維護和系統演進。在 20 年的時間裡,他的研究導致了八項演化定律的形成 (Lehman 1997)。他的研究的主要發現包括維護實際上是演化式開發,並且理解系統 (和軟體) 隨時間的變化有助於維護決策。Lehman 證明了系統會隨著時間的推移而不斷發展。在它們發展的同時,它們的複雜性也會增加,除非採取一些措施 (例如程式碼重構) 來降低複雜性。

軟體維護的關鍵問題既有管理方面的,也有技術方面的。關鍵的管理問題包括:與客戶優先順序的匹配、人員配置、哪個組織負責維護、估算成本。關鍵技術問題包括:理解有限、影響分析、測試、可維護性度量。

軟體維護流程

[編輯 | 編輯原始碼]

本節介紹六個軟體維護流程,如下所示:

  1. 實施流程包含軟體準備和過渡活動,例如維護計劃的概念和建立,處理開發過程中發現的問題的準備工作,以及對產品配置管理的後續跟進。
  2. 問題和修改分析流程,該流程在應用程式成為維護組的責任後執行。維護程式設計師必須分析每個請求,確認它 (透過重現情況) 並檢查它的有效性,調查它並提出解決方案,記錄請求和解決方案建議,最後,獲得執行修改所需的所有授權。
  3. 考慮修改本身實施的流程。
  4. 修改接受流程,透過與提交請求的個人確認修改後的工作,以確保修改提供瞭解決方案。
  5. 遷移流程 (例如平臺遷移) 屬於特殊情況,不屬於日常維護任務。如果軟體必須移植到另一個平臺而沒有任何功能變化,則將使用此流程,並且可能會分配一個維護專案團隊來執行此任務。
  6. 最後,最後一個維護流程,也是一個不經常發生的事件,是軟體的退休。

有一些流程、活動和實踐是維護人員獨有的,例如:

  • 過渡:一個受控且協調的活動序列,在此期間系統逐步從開發人員轉移到維護人員;
  • 服務級別協議 (SLA) 和維護人員協商的專門 (領域特定) 維護合同;
  • 修改請求和問題報告服務檯:維護人員用來優先處理、記錄和路由他們收到的請求的問題處理流程;
  • 修改請求接受/拒絕:維護人員可能會拒絕超過一定規模/工作量/複雜度的修改請求,並將其重新路由到開發人員。

ISO/IEC 14764 中的維護類別

[編輯 | 編輯原始碼]

E.B. Swanson 最初確定了三種維護類別:糾正性維護、適應性維護和完善性維護。[2] 這些類別後來進行了更新,ISO/IEC 14764 提出了以下類別:

  • 糾正性維護:在交付後執行的軟體產品的反應性修改,以糾正發現的問題。
  • 適應性維護:在交付後執行的軟體產品的修改,以使軟體產品在改變或不斷變化的環境中保持可用。
  • 完善性維護:在交付後執行的軟體產品的修改,以提高效能或可維護性。
  • 預防性維護:在交付後執行的軟體產品的修改,以在潛在故障成為有效故障之前檢測和糾正軟體產品中的潛在故障。

還有一種交付前/釋出前維護的概念,指的是為降低軟體的總擁有成本而採取的一切措施。例如,符合編碼標準,其中包括軟體可維護性目標。軟體耦合和內聚的管理。實現軟體可支援性目標 (例如 SAE JA1004、JA1005 和 JA1006)。另外要注意,一些學術機構正在進行研究,以量化由於缺乏資源 (例如設計文件和系統/軟體理解培訓和資源) 而導致的持續軟體維護成本 (在沒有設計資料的情況下,成本大約增加 1.5-2.0 倍)。

參考文獻

[編輯 | 編輯原始碼]
  1. ISO/IEC 14764:2006 軟體工程 - 軟體生命週期過程 - 維護
  2. E. Burt Swanson,維護的維度。第二屆軟體工程國際會議論文集,舊金山,1976 年,第 492-497 頁

進一步閱讀

[編輯 | 編輯原始碼]
  • April, Alain; Abran, Alain (2008). 軟體維護管理. 紐約: Wiley-IEEE. ISBN 978-0470-14707-8.{{cite book}}: CS1 maint: multiple names: authors list (link)
  • Gopalaswamy Ramesh; Ramesh Bhattiprolu (2006). 軟體維護:面向地理分散式環境的有效實踐. 新德里: Tata McGraw-Hill. ISBN 9780070483453.{{cite book}}: CS1 maint: multiple names: authors list (link)
  • Grubb, Penny; Takang, Armstrong (2003). 軟體維護. 新澤西州: World Scientific Publishing. ISBN 9789812384256.{{cite book}}: CS1 maint: multiple names: authors list (link)
  • Lehman, M.M.; Belady, L.A. (1985). 程式演進:軟體變更過程. 倫敦: Academic Press Inc. ISBN 0-12-442441-4.{{cite book}}: CS1 maint: multiple names: authors list (link)
  • Page-Jones, Meilir (1980). 結構化系統設計實用指南. 紐約: Yourdon Press. ISBN 0-917072-17-0.
[編輯 | 編輯原始碼]
華夏公益教科書