GlobalLogic treći put partner .debuga, prezentirani brojni projekti

ZAGREB, 14. lipnja 2022. - Još jedan .debug je za nama. Treću godinu za redom bili smo jedan od partnera ove, sve bolje, developerske Konferencije. Konferencija je pokrenuta u jeku pandemije i veliki je uspjeh što se kvaliteta iz godine u godinu podizala što je kulminiralo s rekordnim brojem posjetitelja i sjajnih predavanja ove godine.

Izazovni projekti i rast kompanije

Mi smo se ove godine predstavili kroz članke i intervjue, a na samoj Konferenciji, 2. i 3. lipnja 2022., putem predavanja. Tako ste u članku - Developerski izazov: beskontaktno upravljanje dizalom putem mobitela – mogli pročitati kako smo za jednog od vodećih svjetskih proizvođača dizala razvili aplikaciju putem koje korisnici mogu upravljati dizalom, tj. pozivati ga i zadavati mu ciljno odredište, bez da dodiruju tipke. Klijent je već prije koristio sustav QR kodova, a predloženo je da se sustav pojednostavi korištenjem Bluetooth tehnologije. Pročitajte s kojim izazovima su se nosili naši inženjeri.

Tradicionalno smo se predstavili kroz razgovor u studiju. Vladimir Kosanović, direktor GlobalLogic Croatia podijelio je mnoštvo informacija o projektima koji su u tijeku kao i rastu kompanije i budućem razvoju. U posljednjih godinu dana broj softverskih inženjera je porastao za više od 60 posto, a potrebe su sve veće jer sve više zanimljivih projekata na svjetskoj razini dolazi do Hrvatske. To je posljedica višegodišnjeg dvoznamenkastog rasta GlobalLogica u svijetu, a i preuzimanja od strane multinacionalne kompanije Hitachi iz srpnja prošle godine. U svakom trenutku otvoreno je više desetaka radnih mjesta, a kako su potrebe veće nego što ih može zadovoljiti hrvatski obrazovni sustav, u GlobalLogic Croatia sve više dolaze raditi i stranci. U intervjuu možete doznati i o organizacijskoj kulturi, benefitima i slično.

Zašto dolazi do pogrešaka u ugradbenim sustavima?

Svojevrsni uvod u predavanje o pogreškama u Embedded sustavu bio je članak “Katastrofa rakete Ariane 5 - Kad dođe do pogreške u Embedded softwareu”.. Radi se o jednoj od najvećih katastrofa pri lansiranju rakete koja je 1996. godine trebala u orbitu ponijeti nekoliko znanstvenih satelita. Nažalost, samo 40 sekundi nakon lansiranja, raketa se srušila u skupom vatrometu od 370 milijuna dolara, srećom bez ljudskih žrtava. Kako se kasnije uspostavilo pogreška je bila u jednom od ugradbenih sustava, odnosno u sustavu navigacije.

Zašto je došlo do te greške, a i kako prevenirati slične pogreške odgovor su putem predavanja “Ugradbeni sustav bez glavobolje – model upravljanja pogreškama” dali Mario Rotim, Senior Software Engineer, i Krešimir Tušek, Senior Software Engineer. Pred nešto više od 70 sudionika, u prvom dijelu su klasificirali pogreške po trajanju, ispravljivosti, propustima u dizajnu ili slučajnim događajima dok je sustav na terenu.

Krešimir Tušek je naglasio da su vrlo česte pogreške u dizajnu. Obično svi inženjeri rade dobar dizajn, no izazov je da on pokrije sve rubne uvjete iz čega nastaju krive specifikacije, a greška u sustavu ostaje zauvijek. „Odličan primjer je lansiranje rakete Ariane 5 koja je preuzela sustav navigacije od rakete Ariane 4. No, problem je bio što je Ariane 5 imala drugačiju horizontalnu putanju. U sustavu prethodne rakete izračunato je da određene varijable vezane uz horizontalni pomak nikad neće izaći iz opsega, a u novom sustavu s novom putanjom se to dogodilo zbog čega su se na sabirnici pojavile dijagnostičke greške umjesto letnih informacija kao što su pozicija, brzina i slično. Centralno računalo se posljedično zbunilo i sreća u nesreći je što je sustav za samouništenje funkcionirao te uništio raketu prije nego što je napravila veću štetu“, rekao je Krešimir Tušek te dodao da u ovom slučaju ništa ne bi značilo da smo imali i sedam rezervnih sustava, a ne dva jer se loš/krivi dizajn kopira svaki put. Ovoga puta greška je bila u kontekstu, odnosno pretpostavljena su ograničenja u vrijednostima varijabli iz prethodne generacije primjenjena na potpuno nove okolnosti. Mnogi bi očekivali da je greška bila u implementaciji, možda negdje u kodu, no problem su bili pogrešni zahtjevi. Sve je napravljeno uredno po specifikacijama, no one nisu bile dobre.

Greške zbog slučajnih događaja

Mario Rotim je pojasnio drugu vrstu grešaka, odnosno greške koje nastaju zbog slučajnih događanja tj. raznih vanjskih faktora, kao što su promjene u temperaturi, elektromagnetsko zračenje, kozmička zračenja i slično. „Njih je jako teško predvidjeti i testirati, tj. napraviti okruženje za test. Upravo iz tog razloga, moramo biti spremni na najgore scenarije. Dobar primjer je auto industrija u okviru koje je donesen AUTOSAR health monitoring standard, koji nam omogućuje provjeru funkcionira li aplikacija, je li završila u nekoj slijepoj ulici ili da li se izvršava u logičnom slijedu. Razne vrste supervizija osiguravaju da aplikacija radi. Tako deadline supervizija osigurava da nije došlo do nekog trajnog zastoja, a logičkom supervizijom nadziremo da li aplikacija prolazi ispravnim redoslijedom kroz logičke dijelove koje treba izvršiti“, kaže Mario Rotim. Dodaje kako se mogu uspostaviti kriteriji što raditi i kako postupiti ako se nešto dogodi u sustavu. Tako se može osigurati da se pozove neka vanjska funkcija sigurnosne aplikacije ili standardna operacija za obranu od pogrešaka. Na grafu je moguće vidjeti kako izgleda niz pravila kojima definiramo uvjete i jednažbe koje trebaju zadovoljiti parametri.

Zaključno, naglašeno je kako program sam po sebi nije siguran ili nesiguran već ovisi o okolišu i kontekstu u kojem treba raditi. U pravilu su dva pristupa pogreškama, zavisno da li su uzrokovane lošim/krivim dizajnom ili okolišom, a one zahtjevaju drugačiji pristup. Vezano uz dizajn jedini način je da imamo dobar dizajn i tu treba imati na umu da se dobar dizajn mora raditi od samog početka – kad prikupljamo zahtjeve, odmah se treba početi s planiranjem upravljanja pogreškama, a isto moramo raditi kroz cijeli životni ciklus proizvoda, a ne samo na kraju.

S druge strane slučajni događaji zahtjevaju drugačiji pristup. Tu možemo kroistiti razne tehnike – definirati blokove kritičnih varijabli, ili kritične varijable držati na više mjesta, pa raditi usporedbe. Možemo koristiti i watchdog, no to je zadnja linija obrane i i treba biti oprezan da ne postane izlika za loš dizajn i nedovoljno upravljanje pogreškama.

  • URL copied!