Backporting

Backporting là hành động lấy các phần từ một phiên bản mới hơn của một hệ thống phần mềm hoặc thành phần phần mềm và port chúng sang một phiên bản cũ hơn của chính phần mềm đó. Đây là một phần của bước bảo trì trong quy trình phát triển phần mềm, thường được dùng để sửa các vấn đề bảo mật trong những phiên bản cũ hơn của phần mềm cũng như cung cấp tính năng mới cho các phiên bản cũ.

**Tổng quát**
Trường hợp đơn giản nhất và có lẽ là thường gặp nhất của backporting là một lỗ hổng bảo mật đã được sửa chữa trong một phiên bản mới hơn của phần mềm. Xét ví dụ đơn giản sau:- Phần mềm v2.0 có một lỗ hổng bảo mật đã được sửa bằng cách thay đổi dòng chữ 'is_unsecured' thành 'is_secured'.- Lỗ hổng bảo mật này cũng tồn tại trong Phần mềm v1.0, nơi bắt nguồn cơ sở mã của phiên bản mới hơn, nhưng ở đó dòng chữ này có thể được hiện kiểu khác, như 'is_notsecure' chẳng hạn.
Bằng cách sử dụng phép sửa đổi đã chữa lỗ hổng trên Phần mềm v2.0 và thay đổi nó để áp dụng lên Phần mềm v1.0, ta đã backport được bản vá này.
Trong thực tế, các sửa đổi đối với một khía cạnh nào đó của phần mềm có thể có mức độ rất đa dạng: từ đơn giản (chỉ thay đổi vài dòng trong mã nguồn) cho tới phức tạp và khổng lồ (nhiều sửa đổi trên nhiều tập tin mã). Ở trường hợp thứ hai, backporting có thể diễn ra trong thời gian dài, kém hiệu quả, và chỉ nên thực hiện nếu phiên bản cũ của phần mềm thật sự cần thiết so với phiên bản mới hơn (ví dụ như nếu phiên bản mới vẫn gặp phải các vấn đề về độ ổn định khiến nó không thể được sử dụng trong những tình huống quan trọng).

**Quy trình**
Quy trình backporting có thể được chia đại khái thành các bước sau:
# xác định vấn đề trong phiên bản phần mềm cũ hơn cần được sửa chữa bằng một bản backport
# xác định sửa đổi nào (thường là sửa đổi gần đây) trong mã nguồn đã giải quyết vấn đề
# thích ứng sửa đổi đó trong trường hợp mã nguồn cũ
# một hoặc nhiều cấp độ kiểm soát chất lượng kiểm thử xem phiên bản được backport có giữ được chức năng như trước kia không, cũng như chức năng mới có được triển khai tốt không.
Thông thường, nhiều sửa đổi như vậy sẽ được gộp chung vào một bản vá.
Các bản backport có thể được cung cấp bởi nhóm lập trình viên cốt lõi của phần mềm. Do backporting yêu cầu phải truy cập vào mã nguồn của phần mềm, đây là cách duy nhất để tiến hành backporting với các phần mềm nguồn đóng các bản backport thường được bao gồm trong những bản nâng cấp nhị phân cùng với dòng phiên bản cũ của phần mềm. Với phần mềm nguồn mở, các bản backport đôi lúc được tạo ra bởi các nhà phân phối phần mềm và sau đó được gửi lên những lập trình viên cốt lõi của phần mềm dó.

**Ví dụ**
 Nhiều tính năng của Windows Vista đã được backport sang Windows XP khi Service Pack 3 được phát hành dành cho Windows XP.- Dự án Debian kể từ tháng 9 năm 2010 đã cung cấp dịch vụ backporting chính thức cho một số gói phần mềm Debian Linux, và Ubuntu Linux cũng hỗ trợ các bản backport.- Vào năn 2024, một YouTuber có tên là MattKC đã backport các phiên bản 2.0 và 3.5 của .NET Framework lên Windows 95, trong khi hệ điều hành này không chính thức hỗ trợ framework.

**Xem thêm**
 Tương thích ngược- Retrofitting

**Tham khảo**
Thể loại:Bảo trì phần mềm
Thể loại:Chất lượng phần mềm