軟體維護

![]() |
软件开发 |
---|
核心行动 |
范式与模式 |
方法论与框架 |
支持行为 |
实践 |
工具 |
标准与知识体系 |
軟體維護是指在軟體發佈之後進行的修改。
一般會認為軟體維護需要的技術比新軟體開發要少,也比較不會受到獎勵。因此,許多公司會將軟體維護外包或是離岸外包。通常維護軟體和開發軟體會由不同的團隊進行。開發者沒有動機將程式以方便維護的方式撰寫。軟體發行時多半功能還不完整,也還有一些需維護團隊修正的錯誤。軟體維護一開始會包括新功能的開發,但隨著產品的進展,維護會減到最小程度,在產品結束生命週期時,其維護也完全結束。
維護周期多半是從修改請求開始的,一般是來自終端用戶,隨後會對請求進行分析,若評估的結果是要修改,程式設計者在修改前,會研究既有的程式,瞭解程式如何運作。維護成本中最主要是在測試,測試已有的程式功能正常運作,而且也加入新的功能。
雖然軟體維護佔了軟體生命週期中,成本的最大部份,但對其的研究比其他軟體開發的週期要少。從1980年代開始到現在,對軟體維護的瞭解沒有大幅的變化。軟體維護可以依照是預防性維護或反應維護來分成不同的幾類。有些軟體維護是要加新功能,有些則是面對環境的變化(例如從DOS系統到Windows系統),要保留原有的功能。
歷史
[编辑]在1970年代初期,各企業開始將軟體維護的工作移到其他公司,讓自身公司软件开发的團隊可以免於維護的工作[1]。R. G. Canning在1972年出版了"The Maintenance 'Iceberg'",他在其中認為軟體維護是軟體開發的延伸,其中有多一個輸入:已有的系統[1]。從那時候起到現在,軟體維護的原原則改變的不多[2]。有一個二十一世紀的創新,是公司刻意發行不完整的軟體,並且計劃在後續的發佈中再發佈完整軟體。這類的變更,以及一些擴充功能的變更,常常不會視為是軟體維護,而會稱為軟體演進[2]。
軟體維護的分類
[编辑]軟體維護工作包括以下五種:適應性維護、修正性維護、完善性維護、代码复用及代码槓桿(code leverage)[3]。
參考資料
[编辑]- ^ 1.0 1.1 Tripathy & Naik 2014,第25頁.
- ^ 2.0 2.1 Offutt, Jeff. Overview of Software Maintenance and Evolution. George Mason University Department of Computer Science. January 2018 [5 May 2024].
- ^ Advances in Computers. Academic Press. 29 September 1994: 34–. ISBN 978-0-08-056671-9.
來源
[编辑]- Tripathy, Priyadarshi; Naik, Kshirasagar. Software Evolution and Maintenance: A Practitioner's Approach. John Wiley & Sons. 2014. ISBN 978-0-470-60341-3 (英语).