Vissza a tartalomjegyzékhez

MOLNÁR LÁSZLÓ, KADINGER ANDRÁS
Ezredvégi K.O.

Hazai számítástechnikai kutatók új „fegyverrel” rukkoltak elő az úgynevezett „ezredvégi vírus” elleni harcban. Az Y2K.O. nevű program képes kiszűrni, kijavítani az évszámokkal dolgozó szoftvereket, és tesztelni azon részeket, amelyeknek problémája lehet a 2000. év kezelésével. A találmány jó üzletnek is bizonyul, a kutatók mellé állt egy pénzügyi befektető, 300 ezer dollárral alapított egy céget. A Londonban bejegyzett Balthazar Ltd. a világ 100 országában nyújtotta be szabadalmazási kérelmét. Magyarországon - ahol ezt már megkapta - sikerrel indult a program, két pénzügyi intézetben is kipróbálták, s találtak olyan hibákat, amelyeket más program nem vett észre.

A kétezredik év legnagyobb problémáját egy régebbi programozási technika okozza. Az akkori számítástechnikusok úgy döntöttek, hogy az évszámok elejérôl helytakarékosságból elhagyják az elsô két számjegyet, mivel az mindig azonos. A problémát az okozza, hogy 2000-ben ez megváltozik.
A hiba kijavítása nem egyszerű. Egyrészt, mert kevés idônk maradt, másrészt sok évszámmal dolgozó program van. Rádásul a pénzintézetek többségénél, a hadseregnél, az adóhivataloknál, az egészségügyi intézményekben, és a közigazgatás számos területén használt programot az akkoriban nagyon népszerű, de mára gyakorlatilag kihalt COBOL programozási nyelven írták. Súlyosbítja a dolgot, hogy mint ahogy a regényírók mind különbözô stílusban írnak, úgy a programozók is.
Átérezhetjük tehát a több évtizedes programok kijavításának nehézségét, ha magunk elé képzeljük egy rendkívül szövevényes regény átírását: ha valahol egy kicsit megváltoztatom a cselekményt, akkor a logikai rend megôrzése érdekében több helyen is át kell írni, ami azután újabb helyeken követel módosításokat. A programozónak át kell látnia az egész program szerkezetét, ezek után meg kell találnia benne az évszámokat hibásan kezelô részeket, ki kell javítania ôket, majd alapos tesztnek kell ezeket alávetni. Minden próbaadatra kézzel kell kiszámítani a helyes eredményt, reménykedve, hogy a programrész a ki nem próbált adatokkal is helyes eredményt fog majd adni.
Az Y2K.O. erre kínál egy gyorsabb megoldást. Képes a programokat alkotó szövevényes döntéseket és számításokat automatikusan végigkövetni. Kis emberi segítséggel képes megtalálni, hogy hol futnak az évszámok, illetve a dátumjellegű adatok a vizsgált programban, majd végigköveti és kiemeli azokat a részeket, ahol az adatok változnak, amíg eredmény lesz belôlük. Ez azonban csak az egyik részlet: az Y2K.O. képes arra is, hogy a kiemelt részeket apró, átlátható részletekre darabolva, a részeket külön-külön nagyon alapos és hatékony tesztelésnek vesse alá. Így a programozónak a több ezer oldalas „programregény” végigolvasása helyett csak a kijegyzetelt „bekezdéseket” kell végigkövetnie, megértenie és kijavítania. Természetesen a kijavított programrészletet ismét tesztnek vethetjük alá, és így meggyôzôdhetünk a javítás hibátlanságáról, vagy tovább javíthatunk, ha szükséges. Jelenleg leginkább COBOL nyelvű programok analizálására van szükség, így a jelenlegi verzió ennek a nyelvnek a nyelvjárásait ismeri, de a fejlesztôk szerint a más programnyelvre való átállás viszonylag rövid idô alatt lehetséges.