پیشانتقال
پیشانتقال فرایند انتقال بخشهایی از نسخه جدیدتر یک سیستم نرمافزاری یا پیکرپار نرمافزاری و انتقال آنها به نسخهای قدیمیتر از همان نرمافزار میگویند. پیشانتقال بخشی از مرحله تعمیر و نگهداری (که با پیروی از قراردادهای کدنویسی آسانتر قابل انجام است) در فرایند توسعه نرمافزار است و بهطور معمول برای حل کردن مشکلات امنیتی در نسخههای قدیمیتر افزودن ویژگیهای جدید به نسخههای قدیمیتر مورد استفاده قرار میگیرد.
بررسی اجمالی
سادهترین و احتمالاً شایعترین حالت پیشانتقال یک مشکل امنیتی حل شده در نسخه جدیدتر از یک نرمافزار است. این مثال ساده را در نظر بگیرید:
- نرمافزار v2.0 دارای یک آسیبپذیری امنیتی است که با تغییر متن «is_unsecured» به «is_secured» حل میشود.
- سوراخ امنیتی مشابهی در نرمافزار v1.0 وجود دارد، که از کد آن برای ساخت نسخه جدید استفاده شده، اما در این نسخه متن ممکن است 'is_notsecure' باشد.
با در نظر گرفتن تغییراتی که مشکلات نسخه ۲٫۰ را حل میکند و تغییر آن به نحوی که در مورد نسخه ۱٫۰ نیز صدق کند، به درستی از پیشانتقال برای حل این مشکل استفاده شدهاست.[1]
در شرایط دنیای واقعی، تغییراتی که تنها برای یک جنبه از نرمافزار رخ دادهاست ممکن است ساده، (فقط چند خط کد تغییر کرده باشد) سنگین و عظیم (بسیاری از اصلاحات در فایلهای متعدد از کد پخش شدهاست) باشد. در مورد دوم، پیشانتقال ممکن است خستهکننده و ناکارآمد باشد و تنها باید در صورتی که نسخه قدیمی این نرمافزار واقعاً به نفع جدیدتر مورد نیاز باشد (اگر، برای مثال، نسخه جدیدتر هنوز از مشکلات ثبات رنج میبرد که استفاده آن را در وضعیتهای بحرانی غیرممکن میسازد)[2]
فرایند
فرایند پیشانتقال میتواند تقریباً به این مراحل تقسیم شود:[1]
- شناسایی مشکل در نسخههای قدیمی نرمافزار که باید توسط پیشانتقال حل شود
- پیدا کردن اینکه کدام تغییر در کد (معمولاً اخیراً) مشکل را حل کرده
- تطبیق اصلاح با کد قدیمی (پیشانتقال مناسب)
- یک یا چند سطح کنترل کیفیت. تست اینکه آیا نسخه پشتیبانی شده همانطور که عملکرد جدیدش را انجام میدهد، عملکردهای گذشته خود را نیز به درستی دارد یا خیر.
معمولاً تعدادی از این اصلاحات در یک مجموعه |وصله قرار میگیرند.
پیشانتقال میتواند توسط گروه توسعه دهنده اصلی نرمافزار انجام شود. از آنجا که پیشانتقال نیاز به دسترسی به کد منبع یک قطعه نرمافزاری دارد، این تنها راه انجام پیشانتقال برای نرمافزار منبع بستهاست. پیشانتقال معمولاً در ارتقاء دودویی یا در طول خط نسخه قدیمی نرمافزار گنجانده میشود. در مورد نرمافزار منبع باز، گاهی پیشانتقالها توسط توزیع کنندگان نرمافزار انجام شده و سپس به بالای زنجیره تولید فرستاده میشوند. (یعنی به توسعه دهندگان اصلی نرمافزار آسیب دیده).[2]
منابع
- "Backporting Security Fixes". Red Hat. Retrieved 2013-10-24.
- "Staying close to upstream projects". Fedora. Retrieved 2013-10-24.
- "Backporting Security Fixes". Red Hat. Retrieved 2013-10-24.
- Backporting#cite ref-fedora-upstream 2-0Backporting#cite ref-fedora-upstream 2-1"Staying close to upstream projects". Fedora. Retrieved 2013-10-24.
- Backporting#cite ref-3Donald Melanson (2007-10-09). "Microsoft backports Vista features for new Windows XP SP3 beta". engadget.com. Retrieved 2013-10-24.
- Backporting#cite ref-4https://www.debian.org/News/2010/20100905
- Backporting#cite ref-5https://help.ubuntu.com/community/UbuntuBackports