Naučite kako iskoristiti GenAI za migraciju koda starih legacy sustava

Autor: Mario Rotim, Senior Software Engineer, GlobalLogic Croatia

Mnoge tvrtke i organizacije suočavaju se s izazovom modernizacije svojih starih uhodanih sustava (en.  legacy) na modernije inačice. Ovi sustavi, koji su često zastarjeli i uključuju komponente poput mainframe računala te softver napisan u programskim jezicima poput COBOL-a, još su uvijek ključni za poslovanje iznenađujuće velikog broja tvrtki u različitim područjima. Istovremeno, takvi sustavi predstavljaju prepreku za inovacije i integraciju sa suvremenim tehnologijama.

Modernizacija nije tek zamjena starih komponenti novima; to je izrazito složen proces koji zahtijeva pažljivo planiranje, razumijevanje postojeće infrastrukture i softverskih aplikacija te strateški pristup transformaciji.

Jedan dio ovog izazovnog zadatka modernizacije je migracija softverskih aplikacija, a upravo su jedan takav posao završili inženjeri iz GlobalLogica za prvog klijenta iz Japana.

Korištenje GenAI i semantičkog parsera

Posao je obuhvaćao izradu alata za migraciju izvornog koda napisanog u COBOL85 programskom jeziku u moderniju verziju COBOL2002.  “Važna komponenta koja igra ključnu ulogu u izvršenju migracije aplikacija jest Semantički parser. Korištenje ovog alata u kombinaciji s GenAI tehnologijom može značajno pojednostaviti proces migracije, smanjujući rizik od pogrešaka i ubrzavajući prelazak s COBOL85 na modernije verzije jezika poput COBOL2002. S obzirom na to da se COBOL jezik i danas koristi u mnogim financijskim institucijama, državnim agencijama i poslovnim sustavima, potreba za migracijom takvih aplikacija je izrazito važna.”, kaže Mario Rotim, Senior Software Engineer u GlobalLogic Croatia i kreator semantičkog parsera. Osim toga, migracija nije ograničena samo na programski jezik COBOL, već je po istom principu moguće ostvariti migracije i na druge jezike.

Mario Rotim

U kontekstu sveobuhvatne modernizacije legacy sustava, migracija softverskih aplikacija se ističe kao jedan od najvažnijih koraka. Bez uspješne migracije, sva ostala modernizacija infrastrukture i tehnologije ostaje nedovoljno iskorištena. Migracija omogućava transformaciju zastarjelog softvera, koji je često ograničen nekompatibilnim operacijskim sustavima i hardverom, u oblik koji je kompatibilan s najnovijim tehnološkim dostignućima.

Treba naglasiti da migracija nije samo tehnički zadatak; to je strategija koja otvara vrata za kontinuirano poboljšanje i adaptaciju u brzo mijenjajućem tehnološkom svijetu. Kroz uspješno izvedenu migraciju, tvrtke ne samo da osiguravaju svoje operacije, već stvaraju temelj za budući razvoj i konkurentnost na tržištu.

Kreiranje vlastitog parsera za specifične zadatke

Migracija koda, bilo između različitih generacija istog programskog jezika ili potpuno različitih programskih jezika, predstavlja iznimno izazovan zadatak. On zahtjeva preciznost i duboko razumijevanje oba jezična okvira. U tom procesu, semantički parser igra ključnu ulogu, omogućujući razumijevanje i prevođenje složenih konstrukcija izvornog koda u njihove ekvivalente u ciljanom jeziku. Kreiranje semantičkog parsera za pojedini jezik također je zahtjevan zadatak. Postoje specijalizirani alati za kreiranje takvih parsera, a najbliži primjer je Antlr4 parser generator. Međutim, moguće je kreirati i vlastiti, specijalizirani parser koji će potpuno kontrolirano izvršavati specifične zadatke. Upravo je zadatak našeg tima bio kreirati semantički parser temeljen na javno dostupnoj gramatici COBOL85 programskog jezika. Ova gramatika je dodatno prilagođena u skladu sa specifičnostima COBOL standarda zahtijevanog od strane naručitelja.

Važno je istaknuti da semantički parser analizira izvorni kod napisan u COBOL85 programskom jeziku. Parsiranjem, provodi se leksička i sintaksna analiza, te otkrivaju sintaksne pogreške. Obzirom na to da su u pitanju aplikacije koje su već dugo vremena u pogonu i dobro su provjerene, ova funkcija  semantičkog parsera se ne koristi. “Osnovni zadatak koji postavlja pred semantički parser jest transformacija izvornog koda u takozvanu strukturu apstraktnog sintaksnog stabla (AST). AST struktura se zatim koristiti za potrebe migracije samog izvornog koda”, pojašnjava Mario Rotim.

Struktura semantičkog parsera

Zajedničkim radom prikazanih komponenti, semantički parser omogućava učinkovitu i točnu migraciju koda, što je ključno za modernizaciju zastarjelih sustava.

Koja je bila uloga GenAI alata

Tu na scenu stupa GenAI putem kojeg se generira kod iz AST strukture. Semantički parser izravno koristi GenAI na način da semantičke dijelove izvornog koda transformira u željeni kod ciljanog programskog jezika. To je ono što semantički parser u kombinaciji s GenAI alatima čini izrazito moćnim alatom za migraciju izvornog koda. “Ne transformiramo cijele i velike komade izvornog koda što bi transformaciju činilo vrlo kompleksnom, netočnom i teško izvršivom s obzirom na ograničenja GenAI alata. Umjesto velikih komada izvornog koda semantički parser fokusira se na seriju transformacija manjih, ali semantički cjelovitih dijelova”, kaže Rotim.  Sama transformacija obavlja se u više koraka. U prvom koraku iz izvornog koda generira se dizajn dokumentacija koda, a u drugom ili više sljedećih koraka se iz tako generirane dizajn dokumentacije generira programski kod u ciljanom programskom jeziku. “Ovakva transformacija pokazuje veću točnost nego što bi bila direktna transformacija u ciljani programski jezik”, objašnjava Rotim.

Korištenje naprednih alata za rast u digitalnom dobu

U svijetu gdje se tehnološki napredak događa brzinom svjetlosti, sposobnost tvrtki da se prilagode i integriraju nove tehnologije ključna je za održavanje konkurentnosti. Migracija koda nije samo tehnički zadatak; to je strateški potez koji omogućava tvrtkama da revitaliziraju svoje operacije, smanje troškove i iskoriste prednosti naprednih tehnologija poput oblaka, umjetne inteligencije i automatizacije.

Semantički parser, u kombinaciji s GenAI tehnologijom, predstavlja moćan alat koji omogućuje preciznu i efikasnu migraciju koda, čime se postiže kompatibilnost s modernim platformama i osigurava kontinuirani razvoj i inovacije. Korištenjem ovih naprednih alata, možemo ne samo prevladati tehničke izazove migracije, već i otvoriti nove mogućnosti za rast i napredak u digitalnom dobu.

“Kako se industrija nastavlja razvijati, bit će zanimljivo pratiti daljnje napretke u području semantičke analize i generacije koda. Ono što je jasno jest da će tehnologija GenAI igrati ključnu ulogu u oblikovanju budućnosti softverske industrije, pomažući tvrtkama da premoste jaz između prošlosti i budućnosti informatičkih sistema”, zaključuje Mario Rotim.

U međuvremenu možete provjeriti ponude za posao u GlobalLogicu.

Za one koji žele znati više

Arhitektura semantičkog parsera

Semantički parser koji smo razvili za potrebe migracije koda sastoji se od tri osnovne komponente koje zajedno omogućuju preciznu analizu i transformaciju izvornog koda. Svaka od tih komponenti ima specifičnu ulogu u procesu obrade koda:

  1. Lekser: Prva komponenta u procesu obrade je lekser, koji je zadužen za razbijanje ulaznog teksta izvornog koda na manje jedinice, poznate kao leksemi ili tokeni. Lekser čita izvorni kod i prepoznaje osnovne leksičke dijelove jezika kao što su ključne riječi, identifikatori, operatori i separatori. Ovaj proces se često naziva leksičkom analizom i temelj je za daljnje korake obrade.
  2. Parser: Nakon što lekser izdvoji tokene, parser preuzima ulogu i provodi sintaksnu analizu. Prije početka rada parser generira potrebne podatkovne strukture. To su standardne sturkture: FIRST skup, FOLLOW skup i glavna LL parser tablica s naprednim mogućnostima za rad i parsiranje s ne isključivo LL gramatikama. Ove podatkovne strukture generiraju se na temelju gramatike polaznog programskog jezika. Parser nadalje analizira strukturu dolaznih tokena i njihove međusobne odnose kako bi izgradila apstraktno sintaksno stablo (AST). AST predstavlja hijerarhijsku strukturu izvornog koda koji se parsira te odražava logičku organizaciju programa, omogućujući tako lakše manipuliranje i transformaciju koda.
  3. Modul za generiranje dizajn dokumenata: Posljednja komponenta je modul za generiranje dizajn dokumenata koji preuzima AST i pretvara ga u ciljane dizajn dokumente. U standardnim parserima ovaj modul provodi semantičku analizu i optimizaciju te na temelju toga generira kod koji će biti izvršen na ciljnoj platformi. U našem slučaju, modul koristi tehnologiju GenAI za automatsko generiranje dizajn dokumenata. Semantički dijelovi koda obrađuju se GenAI alatom i tako dobiveni rezultati ugrađuju se u konačne rezultate. Zapravo semantički parser omogućava “sjeckanje” izvornog koda u točno određenim semantičkim cjelinama i zatim njihovu obradu GenAI alatima. Na taj način izbjegava se slanje cijelog koda direktno GenAI alatima. Umjesto toga transformiraju se manji dijelovi koda kontrolirano i organizirano. Time se postiže veća točnost i preciznost, te prevladavaju ograničenja GenAI alata kao što su količina ulaznih i izlaznih tokena, te se smanjuje kompleksnost prema upita prema GenAI strani.

GlobalLogic i ove godine nastupa na .debugu gdje će Ivan Vuger i Mario Bosnar 7. lipnja u 12:00 sati u dvorani #hardcore održati predavanje “Punjenje električnih vozila po azijskom standardu”. Provjerite detalje programa.

Više o toj temi pronađite ovdje.

U međuvremenu možete i provjeriti ponude za posao u GlobalLogicu.

Kupi ulaznicu

250 €

Ulaznica

50 €

Studentska ulaznica

100 €

Online ulaznica

30 €

Studentska online ulaznica