A szoftverek felfúvódása (angolul: software bloat) egy olyan tendenciára használt kifejezés, amely során egyes szoftverek újabb és újabb verziói egyre több erőforrást igényelnek, miközben a funkcionális fejlődésük ezt nem indokolja.

A felfúvódás megítélése gyakran nem egyértelmű, mert az erőforrás-igény könnyen, míg a funkcionális fejlődés nehezen fejezhető ki egzakt számokkal. Olyan eset is előfordul, amikor egy szoftver egyes tényezőiben a felfúvódással ellentétes fejlődést produkál, eközben más tényezőkben jelentős felfúvódást tapasztalhatunk.

Tényezői szerkesztés

A szoftverek felfúvódása legtöbbször több dimenzióban párhuzamosan jelentkezik:

  • egy funkció futtatásához lényegesen több memória szükséges
  • a minimálisan igényelt memória mennyisége jelentősen növekszik
  • a szoftver telepítője lényegesen megnövekszik méretben
  • a telepítési idő jelentősen növekszik
  • a telepítés után felhasznált terület lényegesen növekszik
  • a szoftver beindulásához vagy szabályos leállításához szükséges idő lényegesen növekszik
  • a minimális processzorigény növekszik
  • újabb hardverelem vagy hardververzió szükséges, mint alapkövetelmény
  • új funkcióként jelenik meg olyan tulajdonság, amely a szoftver valamely megelőző verziójának sajátja volt, csak később a szoftver felfúvódása során elveszett
  • a szoftver a fejlettebb hardverelemem nagyobb teljesítményét úgy emészti fel, hogy a felhasználó számára a korszerűségből adódó előny teljesen elveszik

Kialakulásának okai szerkesztés

A szoftverek fejlesztése az 1970-es és 1980-as években a hardvereszközök szűkössége miatt még az optimalizációt a legfontosabb tényezők között tartotta. Ez a kényszer fokozatosan eltűnt, miközben a fejlesztés üteme felgyorsult azzal együtt, hogy a szoftverek élettartama szükségszerűen lecsökkent, így az értékesítésből és szoftvertámogatásból befolyó profitot rövidebb idő alatt kell realizálni. Ezért a legfontosabb paraméterek a nyújtott funkcionalitás növelése és a fejlesztési idő csökkentése lettek. Másik ok, hogy a kizárólag matematikusok és mérnökök helyett lehetővé vált széles tömegek számára, hogy szoftvert fejlesszenek komolyabb előképzettség nélkül. Az így keletkező szoftverek csak olyan mértékben optimalizáltak, amennyire azt a fejlesztőeszköz magától megoldja.

A felfúvódás egyik kevésbé ismert oka a visszafelé történő kompatibilitás kényszerű megtartása. Ehhez szükséges a régebbi megoldásokat is kezelő komponensek életben tartása, esetlegesen emulációs réteggel az újabb megoldás felé. Ez jelentős tényező a hardvereszközöket támogató szoftverek esetén, amilyen pl. a Linux kernel.

Következményei szerkesztés

A szoftverek felfúvódása folyamatosan indukálja a hardvereszközök cseréjét és bővítését a felhasználói oldalon. Ezen kívül a hatékony és elterjedt energiagazdálkodás ellenére a szoftverek elektromos energia fogyasztása nem csökken a kívánt mértékben. Ezen kívül a növekvő telepítőkészletek növekvő hálózati forgalmat indukálnak, bár ennek valódi aránya a hálózati forgalom növekedésében pontosan nem ismert.