基本介紹
- 中文名:向後移植
- 性質:對現有軟體進行更改的動作
- 目的:修復舊版軟體中的安全性錯誤
- 領域:計算機
概述,步驟,示例,軟體維護,
概述
向後移植最簡單也最常見的情況是,在新版軟體中有一個已經被修復的安全性漏洞,而舊版軟體也存在這個漏洞。下面是一個簡化過的例子:
- 軟體v2.0版有一個已被修復的計算機安全隱患,只要將字元串 'is_unsecured' 更換成 'is_secured' 就可以修復。
- 同樣的安全漏洞也存在軟體v1.0版中,雖然是基於較新版本的代碼庫,但該字元串仍為 'is_unsecured'。
做出這些修改修復軟體v2.0版,並更改使其可以套用在軟體v1.0版上,此即稱為向後移植。
在現實生活中,這些改變可能非常容易(只需要更改幾行原始碼),也可能需要大規模的修改(修改分布在許多檔案中的原始碼)。在後面這一種情況下,向後移植可能會繁瑣且效率不彰,所以通常只在軟體的舊版本比新版本更加的被需要的情況下才會發生(例如,新版本可能仍有穩定性問題存在時)。
步驟
向後移植大致可分為以下這幾個步驟:
- 找出舊版軟體需要利用向後移植修復的問題
- 找出修復(通常是最近的)這個問題的原始碼更動
- 在舊版代碼的基礎上進行適應性修改(正確的向後移植)
- 一或多層次的質量控制- 測試產出的版本是否保持了先前的功能並正確實現了新的功能。
通常來說,多個此類型的修改都會集合成補丁套裝。
向後移植可以由核心軟體設計師提供。因為向後移植需要軟體原始碼的訪問權,這是閉源軟體向後移植的唯一方法-向後移植通常伴隨著二進制檔案的升級。而開源軟體的部分,向後移植有時候會由Linux發行版做出,然候送到上游(就是提交到受影響的軟體的核心開發人員)。
示例
在Windows XP的Service Pack 3發布時,許多Windows Vista的特性被向後移植到Windows XP上,讓許多最低要求是Windows Vista的應用程式(多數是遊戲)得以在Windows XP SP3上運行。
軟體維護
一般認為軟體維護只和修正錯誤有關。不過有研究指出80%的軟體維護工作是用在非糾正性的行動。
軟體維護同時包括管理層面及技術層面。管理層面的問題包括:配合客戶的優先權、人員配置及費用估計。技術層面的問題包括:對需求、系統或問題有限的理解、影響分析、測試以及可維護性的量測。