軟體開發中程式相容性相關問題及處理

2021-09-25 01:43:31 字數 2331 閱讀 7614

一.相關概念

向後相容(backward compatibility,=向下相容):「後」指「落後」,即舊的版本。指公升級新版本程式後,能後匯入舊版本程式的資料(個人設定、配置檔案等)及支援原有通訊協議,並正常執行。

向前相容(forward compatibility,=向上相容):「前」指「新」,即新(高階)的版本。應用程式的早期版本能夠開啟較新版本中的檔案並忽略早期版本中未實現的功能。例如,word 2003 向前相容 word 2007,因為它能夠成功地使用轉換器開啟 word 2007 檔案。

對於軟體的相容:

向後:較高版本的程式能順利處理較低版本程式的資料。

向前:應用程式的早期版本能夠開啟較新版本中的檔案並忽略早期版本中未實現的功能。例如,word 2003 向前相容 word 2007,因為它能夠成功地使用轉換器開啟 word 2007 檔案。

涉及計算平台的相容性:

向下相容:如基於pentium微處理器的pc相容機可以執行早期在486上執行的全部軟體。向下相容可以使使用者在進行軟體或硬體公升級時,廠商不必為新裝置或新平台從頭開始編制應用程式,以前的程式在新的環境中任然有效,節省大量軟體開發成本。即高版本平台可以執行在低版本平台上開發的程式。

向上相容:在計算機中指在較低檔計算機上編寫的程式,可以在同一系列的較高檔計算機上執行,或者在某一平台的較低版本環境中編寫的程式可以在較高版本的環境中執行,都稱為向上相容,前者是硬體相容,而後者是軟體相容。例如,基於intel386的pc相容機上所有的軟體也可以執行在486或更高的機型上。向上相容具有非常重要的意義,一些大型軟體的開發,工作量極大,如這些軟體都能做到相容,則無需在其它機器上重新開發,就可節省龐大的人力和物力。即在低版本平台上開發的程式可以在高版本平台上執行。

情況1:新版本配置檔案格式與舊版本檔案不同:

參考以下兩種方案:

(1)公升級時,將舊版本格式資料轉化為新版本格式。

(2)新版本程式通過識別不同格式,同時支援2種格式的資料的處理。

情況2:新版本與舊版本採用不同的通訊協議

方案:一般需要新版本同時支援2種通訊協議的處理(比如新舊通訊協議、編碼解碼庫的支援)。

二.向下程式中資料儲存方式及處理

1.配置檔案

(1)舊版本中的配置檔案在新版本中不存在。此種情況說明新版本可能已經不支援舊版本程式的某個功能,或對舊版本程式優化後不需要某些配置。該檔案不需要匯入到新版本中。

(2)配置檔案在新版本與舊版本都存在,格式沒有變化。直接匯入舊版本資料或直接使用舊版本的配置檔案就可以了。

(3)配置檔案在新版本與舊版本都存在,新版本中增加了某些舊版本沒有的字段。可讀取舊版本配置檔案中的所有資料,寫入新版本配置檔案。如果增加的字段不多,也可以直接使用舊版本配置檔案,然後單獨把新增加的字段寫入。

(4)配置檔案在新版本與舊版本都存在,舊版本某些欄位被刪除了。說明新版本已經不會讀取這些被刪除的字段,可以不用匯入。

2.資料庫

在新版本中的資料庫有新增或減少的資料庫、表、字段,可參照對配置檔案的處理進行類似操作。操作前應做好資料庫備份。如果是舊資料庫補充新曾的資料庫、表及字段時,同時注意他們的屬性,欄位的型別是否設定的正確。

當新版本程式在乙個表中新增加了乙個字段,此時舊版本資料庫表中是沒有這個欄位的,這種情況需要在程式開發時單獨考慮。例如,有個儲存壓縮檔案的表,表的字段包括檔案的路徑,檔名,檔案大小,修改時間等等資訊。在新版本程式中引入了一種新的壓縮演算法(儲存的值是壓縮方式1,壓縮方式2等),增加了乙個壓縮格式的字段。此時舊版本資料庫中是沒有這個欄位的。公升級後,程式根據壓縮格式的字段儲存的壓縮方式,進行解壓。這時候對於原有資料需要指定乙個值,表示舊檔案是用某種格式壓縮。如果某些情況在公升級時不知道該為舊資料的新字段賦什麼值,可以設定乙個未知,然後在程式中對這種情況單獨處理(比如依次嘗試所有可用的解壓方式來開啟)。

3.協議

有時候生產環境中只能對部分程式進行公升級,其餘一部分伺服器由於某些原因(比如該伺服器上同時執行其他程式,公升級後可能對其他程式有影響,公升級風險大)不能公升級,需要考慮新舊版本程式之間通訊是否正常。新版本程式與舊版本在一起工作時會產生的問題。

三.開發程式時應考慮哪些相容性方面的問題。

1.考慮新版本程式是否需要和舊版本程式同時工作(多台伺服器中部分只能公升級部分伺服器程式時)。

2.對於新增的資料表、字段,如果與原有資料有關聯時,是否需要特別處理。

文章中記述的內容部分屬於個人理解,如有問題或錯誤,歡迎指出和討論。

參考:

前端相容性相關的問題

首先先解釋一下瀏覽器為什麼會產生相容問題 第乙個是瀏覽器種類很多,但是它們採用的核心無非就是以下幾種 簡稱五大瀏覽器四大核心 1 trident核心 ie核心 ie瀏覽器 2 webkit核心 以前chrome採用的現在是safari採用該核心 3 gecko核心 firefox採用的 4 pres...

移動開發相容性問題及效能優化

相容性問題 三星i9100 android 4.0.4 不支援display webkit flex這種寫法的彈性布局,但支援display webkit box這種寫法的布局,相關的屬性也要相應修改,如 webkit box pack center 移動端採用彈性布局時,建議直接寫display ...

軟體開發新技術(工具及相關技術)

一 使用者介面設計 1.easyui easyui是一種基於jquery的使用者介面外掛程式集合。為建立現代化,互動,j ascript應用程式,提供必要的功能。使用easyui你不需要寫很多 你只需要通過編寫一些簡單html標記,就可以定義使用者介面。easyui是個完美支援html5網頁的完整框...