Erodálódó szoftverek

Az idő vasfoga nemcsak a természeti vagy épített környezeten hagyja ott nyomát, hanem az olyan megfoghatatlan dolgokon is, mint egy szoftver. Szerencsére lehet védekezni a hatásai ellen.

Erózió alatt a természeti erők környezetre gyakorolt romboló hatását értjük. Kevesen tudják azonban, hogy a szoftverek kapcsán is beszélhetünk erózióról: ez hasonlóan általános romboló erő, amely lassan, de folyamatosan pusztítja azt, amit valaki gondos odafigyeléssel megtervezett, valamint nagy költségek árán kifejlesztett – mondja Bakota Tibor, a Szegedi Tudományegyetem kutatója.

 

Fejlesztés mellékhatásokkal

Ritka az a szoftver, amit egyszer kifejlesztenek, jól működik, és utána nem kell hozzányúlni. De még ha van is ilyen, a romboló erőktől így sem lehet elzárni. Természetesen nem a szél és a víz koptatja őket: a digitális világban a technológiai fejlődés, a felhasználói igények és elvárások változásai jelentik a romboló erőket. Hiába működött jól a szoftver az elkészítése pillanatában, a világ elhalad mellette – néhány év alatt menthetetlenül elavul és elértéktelenedik.

34914 18 erozio orszagalbum hu

Adódik a következtetés: a szoftvert folyamatosan fejleszteni kell. A rendszeresen módosított szoftver azonban még inkább ki van téve az erózió negatív hatásainak, figyelmeztet Bakota Tibor. A szoftveren végrehajtott bármilyen változtatás óhatatlanul nem kívánt mellékhatásokkal jár: funkcionális hibák jelentkeznek, kritikus lassulás következik be, nő a komplexitás. A mellékhatások pedig idővel kumulálódnak, növelve az erózió ütemét.

Gondolhatnánk, hogy a mellékhatások megszüntetése jelenthetné a megoldást az erózió megállításához. A szoftverfejlesztési tevékenység komplexitása, illetve a szoftverminőség-biztosítás jelenlegi fejlettségi szintje mellett azonban ez az elképzelés a gyakorlatban megvalósíthatatlan – más eszközökkel kell felvenni a küzdelmet az erózió ellen.

 

Nem több pénz kell

A Szegedi Tudományegyetem Szoftverfejlesztés Tanszékén évek óta kutatják és próbálják megérteni a szoftvererózió természetét, mondja Bakota Tibor. Az eróziót befolyásoló és jellemző tényezők között az egyik legfontosabb a szoftver karbantarthatósága – ez messze nem egyenlő a szoftver fejlesztésével! A tanszéken kidolgozott modellek néhány egyszerű alapfeltevésre alapozva, de komoly matematikai eszköztár hadrendbe állításával írják le a karbantarthatóság alakulását.

Az alapfeltevések között szerepel, hogy a szoftver folyamatosan változik; hogy a változtatása önmagában nem javít a karbantarthatóságon; és hogy a változtatás üteme a karbantarthatóság változásának ütemével szorosan összefügg. A modell alapján levonható következtetések tanulságosak: ha a fejlesztési költségek szinten tartása mellett a szoftver karbantartására nem költünk, akkor rendszerünk karbantarthatósága exponenciálisan csökken, a fejlesztés pedig hasonló ütemben lassul. Sokan úgy próbálják megoldani a problémát, hogy növelik a fejlesztésre szánt keretet. Ezzel viszont csak tovább gyorsítják az eróziót: még gyorsabban csökken a karbantarthatóság, ami miatt pedig ismét lassul a fejlesztés üteme.

 

Szoftvert a szervizbe

Az erózió által kifejtett rombolás ütemét sok tényező befolyásolja: az alkalmazott technológia, a fejlesztési módszertan, a fejlesztők tudása és tapasztalata, a minőségbiztosítási megoldások, vagy egy kódsor megváltoztatásának költsége – azaz szinte minden, ami a fejlesztésre is hatással van. A szegedi kutatók által kifejlesztett modell mindezt egy „rombolási együtthatóba” gyúrja. Az együttható összetevői természetesen megmutatják, hogyan lehet felvenni a küzdelmet a szoftvererózióval.

Egyrészt a rombolási együttható csökkentésével, vagyis a folyamatok javításával, a fejlesztők képzésével és a hatékony minőségbiztosítási megoldások alkalmazásával. Másrészt viszont szükség van a karbantarthatóság mesterséges növelésére is. Minden rendszer élete során többször eljön az a pillanat, amikor új funkcionalitás hozzáadása nélkül, kizárólag a karbantarthatóság növelése érdekében, jelentős ráfordításokat kell szánni a minőség javítására.

„Olyan ez, mint rendszeresen szervizbe vinni az autót: a folyamatos karbantartás olcsóbb, mint a már bekövetkezett hibák elhárítása. Szoftverek esetében is kimutatható, hogy ugyanannyi pénz ráfordítása mellett a folyamatosan javított szoftver karbantarthatósága felülmúlja a csak időszakos »nagyjavításokon« átesett szoftverekét” – hoz egy életből ellesett példát Bakota Tibor.

Ezt hívják a világban a continuous reengineering elvének. Ennek lényege, hogy szoftverünk állapotát folyamatosan mérni és elemezni szükséges. Azonosítani kell a kevésbé hatékony részeket, redundanciákat, majd az elemzések alapján a kritikus részeket át kell tervezni és újra kell írni, csökkentve a komplexitást. A statikus forráskódelemzés (más néven statikus tesztelés) és mérés technológiájának alkalmazása elengedhetetlen a continuous reengineering elv megvalósításához. A forráskód különböző jellemzőit leíró metrikák (komplexitás, csatolás, kohézió), a kódolási szabálysértések vagy a kódmásolatok kiváló alapul szolgálhatnak a karbantartási munkálatok folyamatos ellátásához.

 

Küzdeni becsülettel

Felmerülhet a kérdés, hogy vajon megéri-e a fáradságot és az erőforrásokat a szoftvererózió elleni küzdelem? Nem kifizetődőbb-e feladni a harcot, várni az elkerülhetetlent, majd végül kidobni az erodálódott rendszert és újraírni az egészet? A válasz Bakota Tibor szerint természetesen nem. Az eróziónak szabad utat engedve nemcsak a karbantartási költségek növekednek exponenciálisan, hanem az ügyfelek elégedetlensége is, akik nem fogják megvárni a rendszer újraírását. Számos esettanulmány támasztja alá, hogy egy karbantarthatatlanná vált rendszer teljes újraírása csupán tüneti kezelés, hiszen az új rendszer ugyanúgy ki lesz téve az erózió romboló erőinek, és könnyen elődje sorsára jut.

Az egyetlen járható út tehát minden fronton felvenni a harcot, és becsülettel küzdeni, annak ellenére, hogy az erózióval szemben végső győzelmet aratni nem lehet.

Schopp Attila

További tartalmak

Legolvasottabb tartalmak

Strategy

Valós idejű adózás

Human

Az egészség hálózatai

Technology

Egy év, amely átírta az emberiség és a mesterséges intelligencia viszonyát

Strategy

Exportcikk lehet a DÁP-ból

ITBUSINESS heti hírlevél feliratkozás

.
Scroll to Top