Porting
Yazılım Mühendisliğinde, yazılım uyarlama süreci genel olarak porting ya da "port etmek" olarak isimlendirilir. Çalışan bir uygulamanın farklı koşullara (işlemci, işletim sistemi, üçüncü parti uygulamalar) sahip bir ortama uyarlanması anlamına gelir.
Bir yazılımın porting maliyeti, sıfırdan yazma maliyetinden daha düşükse, bu yazılım portable yani uyarlanabilirdir. Porting maliyeti görece düşük olan yazılım, daha uyarlanabilirdir denilebilir.
Etimoloji
Türkçede "liman, giriş, iskele" gibi anlamlara gelen port kelimesi, Latince'de "taşımak" anlamına gelen portare sözcüğünden türetilmiştir.
Terim genellikle daha düşük bellekli (fakat aynı işlemci ya da işletim sistemine sahip) bir ortama yazılım uyarlama süreci, ya da kodun farklı bir dilde yeniden yazılması (dil dönüştürme ya da çeviri) anlamında kullanılmaz.
Yazılım geliştiriciler genellikle geliştirdikleri yazılımlarının yeni bir platforma kolayca uyarlanabileceğini, yani portable olduğunu iddia ederler. Oysa taşıma maliyeti pek çok farklı faktöre bağlıdır. Orijinal platform (kaynak) ile yeni platform arasındaki farklılıkların derecesi, geliştiricilerin programlama dillerinin yapısı ve taşınabilir olmayan üçüncü parti kütüphaneler hakkındaki tecrübeleri gibi etkenler, taşıma maliyetini doğrudan etkiler.
Tarihçe
Günümüzde masaüstü bilgisayarlarda kullanılan işlemcilerin ve işletim sistemlerinin farklılıkları, geçmişe göre oldukça azalmış durumdadır. x86 mimarisinin piyasadaki baskınlığı nedeniyle, pek çok masaüstü yazılım başka işlemciler için hiç port edilmemiştir.Aynı piyasada işletim sistemi tercihleri de ciddi oranda azalmış ve üçe kadar inmiştir: Microsoft Windows, Mac OS/Mac OS X, ve Unix/Linux. Ancak gömülü sistemler için taşınabilirlik halen ciddi bir sorundur.
Uluslararası standartlar, örneğin ISO tarafından yürürlüğe konulanlar, farklı platformlarda geliştirilen yazılımların belli standartlara uymasını sağlayarak büyük fayda sağlamıştır.