Select Page

Prevedere il peggio e saperlo gestire

L’importanza del software nel nostro Cansat, ma anche in tutti i progetti legati all’elettronica e quindi anche all’esplorazione dello spazio, è notevole.
Noi, nel nostro piccolo progetto, ma anche la NASA e l’ESA, si trovano a dover far fronte a situazioni complicate in cui bisogna valutare bene via software ogni singola azione da far compiere ai dispositivi pilotati dall’elettronica di bordo per ogni situazione possibile. In missioni dai costi miliardari anche un minuscolo problema può mandare in fumo il lavoro svolto e portare a complicazioni disastrose.

Schermata con l’editor di codice Visual Studio Code durante lo sviluppo del software per il nostro Cansat. Per il nostro progetto utilizziamo il linguaggio di programmazione C++. (Foto: Mattia Bassi)


Immaginate ora se durante il funzionamento di una sonda spaziale, magari anche distante migliaia e migliaia di chilometri, o addirittura centinaia di UA (unità astronomiche, ovvero la distanza dalla Terra al Sole) dove i segnali possono impiegare molte ore per raggiungere la Terra, un problema con uno dei tanti sensori o dei dispositivi a bordo dovesse portare, a causa di un problema nel programma, al blocco immediato della lettura o della trasmissione dei dati, o al blocco di attività vitali per il velivolo e quindi alla fine della missione senza la possibilità di sistemare questo problema da solo e da remoto. Sarebbe davvero frustrante che un piccolo problema software a causa di una condizione non prevista o ignorata porti al fallimento dell’intera missione. Per evitare situazioni simili perciò bisogna mettere in atto diversi accorgimenti volti al rilevamento degli errori e alla gestione di quest’ultimi ultimi, cercando di marginare il problema o meglio ancora di sistemarlo definitivamente.

Una donna dalle innovative idee

La persona che ha dato un grande contributo a “l’ingegneria del software”, termine alla quale le si attribuisce la coniatura, e alla buona riuscita dell’allunaggio della missione Apollo 11, è stata la brillante scienziata informatica e ingegnere di sistemi Margaret Hamilton, nata a Paoli nello Stato dell’Indiana USA il 17 agosto 1936.
Direttrice della Software Engineering Division del MIT Instrumentation Laboratory che ha sviluppato il software di volo di bordo per il programma Apollo, ha dato un notevole contributo alla missione Apollo 11 grazie alle sue idee rivoluzionarie legate alla gestione degli errori durante l’esecuzione dei processi. Si pensi che all’epoca lo sviluppo software non era preso sul serio rispetto ad altri rami dell’ingegneria; la Hamilton però si è dibattuta per far sì che l’ingegneria del software venisse considerata allo stesso livello di tutte le altre discipline.
Oltre ad essere una pioniera dell’ingegneria software, ha inoltre contribuito ad aprire le porte del mondo legato al campo scientifico-tecnologico alle donne.

Margaret Hamilton nel 1969, accanto agli elenchi del software che lei e il suo team del MIT hanno prodotto per il progetto Apollo (Wikipedia 2021)

Il software con le idee di una donna salva l’allunaggio

Il 20 luglio del 1969, a bordo del modulo lunare della missione Apollo 11 che avrebbe portato per la prima volta l’essere umano sulla Luna, durante la fase di approccio con il suolo lunare, vennero segnalati dal computer di bordo sul display più volte degli errori (codice d’errore 1202 e 1201) a causa del rilevamento di un sovraccarico di dati in entrata e alle svariate operazioni da fare in contemporanea. In questa situazione il computer non riusciva più ad adempire a tutti i suoi compiti, come tra i più essenziali quello di stabilire la traiettoria per l’allunaggio. Gli astronauti non avevano mai visto questo tipo di codice d’errore. Chiedono chiarimenti a Houston. La situazione era davvero critica, mancavano pochi minuti all’allunaggio e ci si trovava di fronte a una situazione GO o NO GO, continuare e eseguire l’allunaggio o annullare la missione e rientrare. Dopo un po’ arriva il GO. La repentina segnalazione prioritaria sul display del computer dell’errore agli astronauti con la conseguente comunicazione a Houston dell’errore, ha permesso di scoprire la presenza del problema e di agire di conseguenza, valutando che l’errore non pregiudicava l’annullamento dell’allunaggio. Il computer grazie al software supervisionato dalla Hamilton era riuscito a cavarsela e a gestire il problema del sovraccarico di dati e far sì che la missione potesse continuare. Il resto è storia.

Un’indagine ha rilevato in seguito che il sovraccarico del computer era dovuto ai molteplici dati trasmessi dal radar d’appuntamento. Il radar d’appuntamento in quella fase doveva essere spento, invece a causa di una checklist errata era stato mantenuto acceso anche nella fase di allunaggio. In sé, i dati provenienti dal radar dovevano essere gestibili, ma un difetto di progettazione con l’interfaccia tra il computer di guida e il radar d’appuntamento potevano portare a instabilità e innescare continue richieste di ricalcolo. Questa è stata la causa del sovraccarico del computer e della segnalazione del codice d’errore. Questo problema era già sorto nella missione Apollo 5, ma le instabilità rilevate non erano state reputate gravi e il problema era stato sottovalutato. Per le missioni seguenti, sono state prese degli accorgimenti atti ad evitare problemi di questo tipo.

La Hamilton in seguito scrisse dell’incidente in una lettera pubblicata su Datamation il 1 marzo 1971. Diceva:

Il computer (o meglio il software in esso contenuto) era abbastanza intelligente da riconoscere che gli veniva chiesto di eseguire più attività di quelle che avrebbe dovuto eseguire. Quindi ha inviato un allarme, che significava per l’astronauta: “Sono sovraccarico di più compiti di quelli che dovrei fare in questo momento e manterrò solo i compiti più importanti”; cioè quelli necessari per l’atterraggio … In realtà, il computer era programmato per fare qualcosa di più che riconoscere le condizioni di errore. Nel software è stato incorporato un set completo di programmi di ripristino. L’azione del software, in questo caso, è stata quella di eliminare le attività con priorità più bassa e ristabilire quelle più importanti … Se il computer non avesse riconosciuto questo problema e avesse intrapreso un’azione di ripristino, dubito che l’Apollo 11 sarebbe stato lo sbarco sulla luna di successo che è stato.

Lettera di Margaret H. Hamilton, Direttore dell’Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, intitolata “Computer Got Loaded”, pubblicata su Datamation , 1 marzo 1971 (testo tratto da Wikipedia)

Le insidie che possono portare all’interruzione di una missione e comprometterne la riuscita possono trovarsi dappertutto e spesso sorgono a causa di piccoli errori e fattori non previsti. Il fatto di controllare la presenza di problemi che possono sorgere durante l’esecuzione di un programma, capirne la fonte, il gestire le azioni da intraprendere per sistemare il problema, non compromettere tutto il resto delle attività, segnalarli e comunicarli in maniera prioritaria può evitare grossi problemi e addirittura non compromettere la riuscita di un allunaggio.

Safe software e intraprendenza

Margaret Hamilton ha fondato due società di software: la Higher Order Software nel 1976 e la Hamilton Technologies nel 1986, entrambe con sede a Cambridge, nel Massachusetts, nel ramo della prevenzione e resistenza agli errori software e allo sviluppo software di alta qualità per sistemi critici per la sicurezza.
Il 22 novembre 2016, Margaret Hamilton ha ricevuto la Presidential Medal of Freedom dal presidente Barack Obama per il suo lavoro che ha portato allo sviluppo del software di volo a bordo per le missioni Apollo della NASA. Un grande riconoscimento per una grande donna.

Per concludere vorrei ricordare che dietro a tutti i grandi successi si nascondono molte persone che vengono lasciate un po’ in disparte in secondo piano ma che però senza la quale non sarebbero stati possibili, e il loro ruolo fondamentale lo si riconosce solo in un secondo tempo. Il ruolo delle donne, molte anche di origini afroamericane, nelle missioni Apollo della NASA, è stato molto importante per la parte matematica, fisica, scientifica e di programmazione dei computer ma è stato riconosciuto solo dopo molto tempo. È giusto che tutti, senza discriminazioni e restrizioni possano seguire le proprie ambizioni, seguire un certo percorso formativo e lavorativo sentendosi liberi di farlo e di poter dare il proprio contributo alla società. L’ingegneria e per tutte e tutti.

Fonti delle informazioni sulla missione Apollo 11 e della biografia di Margaret Hamilton:
https://it.wikipedia.org/wiki/Modulo_Lunare_Apollo
https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer)
https://it.wikipedia.org/wiki/Modulo_Lunare_Apollo

Ultima revisione: 03.03.2021