La sonda Schiapparelli precipita su Marte – bug del software?
La notizia della sonda Schiapparelli che è precipitata su Marte ha lasciato tutti attoniti e delusi per il fallimento di una parte della missione europea Exomars, in cui l’Italia ha partecipato attivamente. Dalle prime notizie a titoli cubitali dei quotidiani sembra che il problema sia dovuto ad un bug del software, il famoso “baco” con cui hanno a che fare tutti coloro che in qualche modo utilizzano o programmano i sistemi informatici.
Tutti sappiamo, specialmente noi che facciamo parte del mondo del software, che i programmi, una volta progettati e realizzati, seguono processi di test più o meno complessi. Nonostante vengano effettuati i test necessari, simulando il più possibile la realtà in cui i software verranno utilizzati, i bug compaiono sempre, a volte anche a distanza di anni. Ci è capitato di essere chiamati da nostri clienti che, dopo anni di utilizzo di nostri applicativi, hanno scoperto anomalie “nascoste” che accadevano solo con una determinata sequenza di operazioni.
Curiosa è un’ ipotesi sull’origine della parola bug, che indica in inglese un piccolo insetto. Il termine viene utilizzato nel settore informatico nel 1947, quando il Tenente Grace Hopper ed il suo gruppo, cercando di trovare la causa di un computer in errore, trovano una “falena” incastrata nei circuiti. Dopo aver rimosso l’insetto annotano in un appunto, che è conservato presso lo Smithsonian National Museum of American History, che è stato trovato il primo caso di insetto (“bug“) e lo corredano della falena.
Nella storia recente abbiamo spesso assisitito a fallimenti dovuti a bug o ad errori di progettazione dei software.
Il più famoso e capillare è forse il “millennium bug“, che più che un “baco” è stato una necessità di programmazione di gran parte dei programmi del XX secolo. L’anno, nelle date, veniva memorizzato in due caratteri (e non quattro) per risparmiare spazio in sistemi in con poca memoria. Le date memorizzate in questo modo avrebbero però potuto causare problemi e confusioni con il passaggio di secolo. Ad esempio una persona nata nel 1901 e morta nel 1975 avrebbe potuto essere considerata come nata nel 2001 e morta nel 1975! Intorno alla metà degli anni ’90 le aziende hanno iniziato a pensare a come avrebbero potuto comportarsi i loro programmi e a correggere di conseguenza gli applicativi nei punti più critici in cui avrebbero potuto manifestare crash dovuti al formato della data. Sono anche sorte softwarehouse che si occupavano solo di risolvere queste problematiche. Ci si aspettava che qualche grosso sistema avrebbe fallito e molti sistemisti e programmatori hanno lavorato sodo nei giorni a cavallo tra il 1999 e il 2000. Tutti si sono preparati per tempo, non si sono avute notizie di disastrosi errori nel passaggio.
Un altro bug comune nel software è la “Divisione per 0”, che, se non viene contemplata da chi progetta e realizza il software, può mandare in crash i sistemi (errore di overflow).
E’ successo ad una nave militare americana, la USS Yorktown, che il 21 settembre 1997, a causa di una divisione per zero, è rimasta in acqua per 3 ore “come morta.” Sembra che un membro dell’equipaggio abbia inserito uno zero nel sistema informativo ed una “divisone per zero, abbia messo fuori uso il sistema di propulsione della nave.
Un importante errore di calcolo è stato scoperto nel 1994 da un professore, Thomas Nicely, su un processore Intel Pentium. Questo errore, chiamato Pentium PDIV bug, causava un errore sistematico in alcune operazioni di divisione effettuate sui processori incriminati. L’errore avveniva se la divisione conteneva numeri con molte cifre decimali dopo la virgola.
Si ha anche notizia di errori “non accidentali” di software, di bug appositamente introdotti nei programmi per causare gravi incidenti. Nel corso della guerra fredda, quando le relazioni tra gli Stati Uniti e la Russia erano sempre sul filo del rasoio, sembra che la CIA abbia deliberatamente introdotto dei bug all’interno di un software di una società canadese che controllava la centrale del gas trans-siberiana. Questi bug hanno fatto in modo che i sistemi passassero deliberatamente la fase di test, ma che causassero una serie di gravi esplosioni nella fase di utilizzo della centrale. I settaggi delle pompe e delle valvole erano stati impostati in modo che il gasdotto non potesse sopportarne la pressione. Questa è stata la più grossa esplosione non nucleare della storia. Questa versione dei fatti non è mai stata accettata dal KGB che ha sempre sostenuto che il problema fosse di costruzione e non di sabotaggio.
A volte nel software vengono introdotte forzature, che in un primo momento potrebbero sembrare errori, create appositamente per ottenere dai software risultati diversi da quelli attesi. E’ il caso della Wolkswagen che, nel 2015, ha introdotto appositamente un software che forzava i risultati delle emissioni di sostanze inquinanti in fase di omologazione delle autovetture destinate al mercato americano, dove la normativa era più restrittiva. La centralina di controllo delle emissioni funzionava invece in maniera corretta in strada. Questa forzatura, subito scoperta, ha causato danni al mercato dell’automobile in Europa ed alla stessa Wolkwagen.
Come abbiamo visto l’errore fa parte del software, sta all’abilità di chi programma e di chi progetta di ridurne la quantità e l’incidenza.
Nel caso della sonda Schiapparelli, ovviamente, prima di esprimere il parere sul tipo di errore, occorre attendere le analisi sui dati da parte dell’Ente Spaziale Europeo. Potrebbe quindi essere un problema di software, come ipotizzato, ma potrebbe anche essere un problema di tipo diverso.
Se hai trovato interessante il nostro articolo o hai altri casi di “bug” famosi da evidenziare scrivi i tuoi commenti, saremo felici di risponderti.
Leggi anche i nostri ultimi articoli:
Realtà virtuale e realtà aumentata – scopri la differenza