Programvare er generelt skrevet for bruk på et bestemt operativsystem, og noen ganger også for bestemt maskinvare. Når programmet porteres til å kjøre på et annen operativsystem kan funksjonaliteten programmet krever bli implementert annerledes av det andre systemet (navn på funksjoner, betydningen av argumenter osv.) Dette krever at programmet må tilpasses, endres eller annen måte opprettholdes.