Il Quarto Membro dell’Equipaggio (6) – Lo sviluppo del software

Un ‘piccolo’ listato

Lo sviluppo del software per l’AGC fu una delle sfide più difficili ed inizialmente sottovalutate della NASA e dell’MIT. Le difficoltà iniziali, che misero a rischio la possibilità del progetto di avere successo nei tempi dettati dalla sfida di Kennedy, portarono però alla fine alla definizione di una serie di procedure e tecniche che diedero i loro frutti al di là del Progetto Apollo.

All’inizio degli anni 60 la definizione di un ciclo di sviluppo (raccolta dei requisiti, progettazione, codifica, test e manutenzione) non erano appieno apprezzati dai programmatori. Persino all’interno di una elite come quella dei programmatori dell’MIT. L’inesperienza della NASA nella gestione di simili progetti, ben diversi dal punto di vista gestionale da quelli della realizzazione su grande scala di capsule, razzi, etc., contribuì ai problemi.

Uno di primi passi per cercare di ottenere il livello di controllo necessario sul processo fu la creazione di 3 commissioni che si occupassero delle gestione integrata di hardware e software:

  • L’Apollo Spacecraft Configuration Control Board, che controllava e valutava le modifiche richieste per i veicoli e anche per i sistemi di guida e navigazione

  • Il Procedures Change Control Board, si occupava dei requisiti di progettazione di ogni richiesta che impattava l’interfaccia utente

  • Il Software Configuration Control Board, si occupava delle modifiche richieste al software vero e proprio

Il secondo passo fu lo sviluppo di una serie di punti di verifica all’interno del ciclo di sviluppo:

  • Il Critical Design Review (CDR), che approvava le specifiche e i requisiti del software per una missione, raccolti nel Guidance and Navigation System Operations Plan (GSOP)

  • Il First Article Configuration Inspection (FACI), che seguiva e approvava la definizione e lo sviluppo delle equazioni di guida nonchè le procedure di simulazione e verifica delle stesse

  • Il Customer Acceptance Readiness Review (CARR), che concludeva il processo con la approvazione finale della correttezza del software realizzato

Il Flowchart di una routine
dell’AGC (Controllo RCS)

Il GSOP era il documento che la NASA e l’MIT realizzavano e che conteneva i requisiti dettagliati del software da realizzare per una specifica missione. La Mission Planning and Analysis Division della NASA arrivava a dettagliare i requisiti del sistema di guida fino a fornire le equazioni matematiche necessarie. In molti casi i requisiti erano rappresentati in forma di diagrammi di flusso (flowchars) come quello nell’immagine qui accanto. La revisione del documento era pianificata a 18, 16 e 14 mesi dal lancio; la versione finale veniva ‘congelata’ a 13.5 mesi dal lancio. Il codice doveva essere realizzato nei tre mesi successivi e poi testato fino ad 8 mesi prima del lancio. A quel punto veniva inviato ai costruttori per realizzare le core rope. Core rope che dovevano esser pronte a 4 mesi dal lancio. Nastri magnetici con copia dei programmi venivano inviati a Houston, alla North American e alla Grumman per essere utilizzati nei simulatori.

Lo sviluppo dei programmi avveniva utilizzando un computer Honeywell 1800 all’inizio e un IBM 360 in seguito, ma mai sull’hardware effettivo ovvero l’AGC. I computer di sviluppo generavano codice binario e il listato cartaceo. Il codice binario salvato su nastro magnetico veniva usato per i test e come visto inviato ai produttori delle core rope e delle capsule. Il listato (commentato) serviva come documentazione.

Per l’AGC gli ingegneri dell’MIT idearono un sistema operativo, chiamato Executive, e uno speciale linguaggio chiamato Interpreter. La programmazione avveniva in modo misto, utilizzando sia il linguaggio macchina dell’AGC sia tramite l’Interpreter. Questo era un linguaggio interpretato (come dice il nome stesso) e quindi più lento nell’esecuzione rispetto al puro linguaggio macchina. Ma il set di istruzioni ne risultava esteso (da 37 istruzioni a 128), le routine occupavano meno spazio in memoria e c’era un notevole miglioramento nell’accuratezza e nella velocità dei calcoli.

Le varie versioni del
software dell’AGC

Lo staff dell’MIT diede nomi abbastanza originali ai vari programmi. Molti di essi facevano riferimento al Sole (SUNDISK, SUNBURST e SUNDIAL) dato che Apollo era il dio del Sole nella mitologia greca. Altri avevano nome anche più strani come BURNBABY! Ma i due programmi principali utilizzati per le missioni lunari presero il nome di COLOSSUS (il software del Command Module) e LUMINARY (quello del Lunar Module). I nomi vennero scelti poiché iniziavano con le iniziali delle capsule a cui erano destinati. Queste erano le uniche versioni del software in grado di gestire la navigazione nelle missioni lunari e vennero messi alla prova per la prima volta nel corso della missione Apollo 8.

Non era possibile testare il software nelle esatte condizioni in cui si sarebbe trovato ad operare ovviamente. La necessità di garantire la totale affidabilità venne seguito un esteso programma di test con almeno tre diverse modalità:

  • Simulazioni interamente digitali sui computer usati per lo sviluppo (gli Honeywell 1800 e gli IBM 360)

  • Simulazioni ‘ibride’ in laboratorio con un vero AGC con un vero DSKY collegato ad un simulatore di core rope

  • Verifiche ad-hoc con l’utilizzo dei programmi nei simulatori di Houston e Cape Canaveral

Per poter stare dietro alle richieste della NASA, l’MIT dovette procedere all’assunzione di un piccolo esercito di tecnici. Allo staff iniziale di programmatori, ne vennero rapidamente aggiunti altri 50 e poi altri ancora. Ad agosto 1968 lo staff raggiunse le 400 unità, per poi calare rapidamente, con il completamento delle versioni base di COLOSSUS e LUMINARY.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...