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.