複製鏈接
請複製以下鏈接發送給好友

向後移植

鎖定
向後移植是一種對現有軟件進行更改(補丁)的動作,其將較新版本的改變部份移植到舊版軟件上。它構成了軟件開發過程中的軟件維護步驟,通常用於修復舊版軟件中的安全性錯誤。
中文名
向後移植
性    質
對現有軟件進行更改的動作
目    的
修復舊版軟件中的安全性錯誤
領    域
計算機

向後移植軟件介紹

向後移植最簡單也最常見的情況是,在新版軟件中有一個已經被修復的安全性漏洞,而舊版軟件也存在這個漏洞。下面是一個簡化過的例子:
  • 軟件v2.0版有一個已被修復的計算機安全隱患,只要將字符串 'is_unsecured' 更換成 'is_secured' 就可以修復。
  • 同樣的安全漏洞也存在軟件v1.0版中,雖然是基於較新版本的代碼庫,但該字符串仍為 'is_unsecured'。
做出這些修改修復軟件v2.0版,並更改使其可以應用在軟件v1.0版上,此即稱為向後移植。
在現實生活中,這些改變可能非常容易(只需要更改幾行源代碼),也可能需要大規模的修改(修改分佈在許多文件中的源代碼)。在後面這一種情況下,向後移植可能會繁瑣且效率不彰,所以通常只在軟件的舊版本比新版本更加的被需要的情況下才會發生(例如,新版本可能仍有穩定性問題存在時)。 [1] 

向後移植步驟

向後移植大致可分為以下這幾個步驟:
  • 找出舊版軟件需要利用向後移植修復的問題
  • 找出修復(通常是最近的)這個問題的源代碼更動
  • 在舊版代碼的基礎上進行適應性修改(正確的向後移植)
  • 一或多層次的質量控制- 測試產出的版本是否保持了先前的功能並正確實現了新的功能。
通常來説,多個此類型的修改都會集合成補丁套裝。
向後移植可以由核心軟件設計師提供。因為向後移植需要軟件源代碼的訪問權,這是閉源軟件向後移植的唯一方法-向後移植通常伴隨着二進制文件升級。而開源軟件的部分,向後移植有時候會由Linux發行版做出,然候送到上游(就是提交到受影響的軟件的核心開發人員)。 [2] 

向後移植示例

Windows XP的Service Pack 3發佈時,許多Windows Vista的特性被向後移植到Windows XP上,讓許多最低要求是Windows Vista的應用程序(多數是遊戲)得以在Windows XP SP3上運行。 [1] 

向後移植軟件維護

軟件維護(英語:Software maintenance)是一個軟件工程名詞,是指在軟件產品發佈後,因修正錯誤、提升性能或其他屬性而進行的軟件修改。
一般認為軟件維護只和修正錯誤有關。不過有研究指出80%的軟件維護工作是用在非糾正性的行動。
軟件維護同時包括管理層面及技術層面。管理層面的問題包括:配合客户的優先級、人員配置及費用估計。技術層面的問題包括:對需求、系統或問題有限的理解、影響分析、測試以及可維護性的量測。 [2] 
參考資料
  • 1.    Donald Melanson. Microsoft backports Vista features for new Windows XP SP3 beta. engadget.com. 2007-10-09
  • 2.    Pigoski, Thomas M. Description for Software Evolution and Maintenance (version 0.5). SWEBOK Knowledge Area.