TORIma Accademia Logo TORIma Accademia
Margaret Hamilton (software engineer)
Scienze

Margaret Hamilton (software engineer)

TORIma Accademia — Ingegnere del software

Margaret Hamilton (software engineer)

Margaret Hamilton (software engineer)

Margaret Elaine Hamilton (nata Heafield; nata il 17 agosto 1936) è un'informatica americana. Ha diretto la Divisione di Ingegneria del Software presso il MIT…

Margaret Elaine Hamilton (nata Heafield, nata il 17 agosto 1936) è un'illustre scienziata informatica americana. Ha ricoperto il ruolo di direttore della divisione di ingegneria del software presso il MIT Instrumentation Laboratory, dove la sua leadership è stata determinante nello sviluppo del software di volo di bordo per l'Apollo Guidance Computer della NASA, fondamentale per il programma Apollo. Successivamente, ha fondato due società di software: Higher Order Software nel 1976 e Hamilton Technologies nel 1986, entrambe con sede a Cambridge, Massachusetts.

Margaret Elaine Hamilton (nata Heafield; nata il 17 agosto 1936) è un'informatica americana. Ha diretto la divisione di ingegneria del software presso il MIT Instrumentation Laboratory, dove ha guidato lo sviluppo del software di volo di bordo per l'Apollo Guidance Computer della NASA per il programma Apollo. Successivamente ha fondato due società di software, Higher Order Software nel 1976 e Hamilton Technologies nel 1986, entrambe a Cambridge, Massachusetts.

L'ampio corpus di lavori di Hamilton comprende oltre 130 articoli, atti e rapporti pubblicati, insieme a contributi a circa sessanta progetti e sei programmi significativi. A lei viene attribuito il merito di aver coniato il termine "ingegneria del software", articolandone lo scopo come: "Ho iniziato a usare il termine 'ingegneria del software' per distinguerlo dall'hardware e da altri tipi di ingegneria, trattando tuttavia ogni tipo di ingegneria come parte del processo complessivo di ingegneria dei sistemi". missioni.

Primi anni di vita e background educativo

Margaret Elaine Heafield è nata il 17 agosto 1936 a Paoli, Indiana, da Kenneth Heafield e Ruth Esther Heafield (nata Partington). Successivamente, la sua famiglia si trasferì nel Michigan, dove completò gli studi secondari alla Hancock High School nel 1954.

Iniziò gli studi di matematica all'Università del Michigan nel 1955, trasferendosi successivamente all'Earlham College, un istituto precedentemente frequentato da sua madre. Nel 1958 conseguì una laurea in matematica, integrata da una specializzazione in filosofia. Attribuisce a Florence Long, che presiedeva il dipartimento di matematica di Earlham, il merito di aver incoraggiato la sua aspirazione a perseguire la matematica astratta e una carriera come professore di matematica.

Attribuisce la sua decisione di incorporare una laurea in filosofia nelle sue attività accademiche all'influenza di suo padre, un poeta, e di suo nonno, un preside.

Carriera professionale

Inizialmente, mentre era a Boston, Hamilton aveva programmato di proseguire gli studi universitari in matematica astratta presso la Brandeis University. Tuttavia, verso la metà del 1959, Hamilton iniziò a lavorare con Edward Norton Lorenz all'interno del dipartimento di meteorologia del Massachusetts Institute of Technology (MIT). Le sue responsabilità includevano lo sviluppo di software per la previsione del tempo, utilizzando i computer LGP-30 e PDP-1 presso il Project MAC di Marvin Minsky. I suoi contributi furono parte integrante delle successive pubblicazioni di Lorenz sulla teoria del caos, un fatto riconosciuto dallo stesso Lorenz. In quell’epoca, l’informatica e l’ingegneria del software non erano ancora state formalmente stabilite come discipline accademiche; di conseguenza, i programmatori in genere acquisiscono le proprie competenze attraverso l'esperienza pratica sul posto di lavoro. Nell'estate del 1961 passò a un progetto diverso, assumendo e formando Ellen Fetter come suo successore.

Il progetto SAGE

Tra il 1961 e il 1963, Hamilton fu impegnato nel progetto Semi-Automatic Ground Environment (SAGE) presso il Lincoln Laboratory del MIT, servendo come uno dei programmatori responsabili dello sviluppo del software per il prototipo del computer AN/FSQ-7 (l'XD-1), utilizzato dall'aeronautica americana per rilevare potenziali aerei ostili. Inoltre, ha sviluppato un software per un'iniziativa di tracciamento satellitare presso i laboratori di ricerca dell'Air Force Cambridge. Il progetto SAGE è nato come estensione del progetto Whirlwind, un'iniziativa del MIT volta a creare un sistema informatico in grado di prevedere i modelli meteorologici e monitorare le loro traiettorie attraverso la simulazione. SAGE è stato successivamente adattato per applicazioni militari nella difesa aerea antiaerea. Hamilton ha raccontato:

Ciò che facevano quando entravi in questa organizzazione da principiante, era assegnarti questo programma che nessuno era mai in grado di capire o eseguire. Quando ero principiante lo regalarono anche a me. E quello che era successo era che si trattava di una programmazione complicata, e la persona che l'aveva scritta si rallegrava del fatto che tutti i suoi commenti fossero in greco e latino. Quindi mi è stato assegnato questo programma e l'ho fatto funzionare davvero. Ha persino stampato le sue risposte in latino e greco. Sono stato il primo a farlo funzionare.

I suoi sforzi di successo in questo progetto l'hanno posizionata come una forte candidata per il ruolo di sviluppatore principale per il software di volo Apollo presso la NASA.

MIT Instrumentation Laboratory e Apollo Guidance Computer Development

Nel 1965, Margaret Hamilton venne a conoscenza del progetto Apollo e ne cercò il coinvolgimento, attratta dalla prospettiva "molto entusiasmante" di un'iniziativa di esplorazione lunare. Successivamente è entrata a far parte del MIT Instrumentation Laboratory, un'entità responsabile dello sviluppo dell'Apollo Guidance Computer per il programma di esplorazione lunare Apollo. Hamilton si distinse come la prima programmatrice assunta per il progetto Apollo al MIT e la prima donna programmatrice all'interno dell'impresa, arrivando infine alla posizione di Direttore della Divisione di Ingegneria del Software. Le sue responsabilità comprendevano la guida del team che ha sviluppato e testato rigorosamente tutto il software di bordo per il modulo di comando e lunare della navicella spaziale Apollo, nonché per la successiva stazione spaziale Skylab. Un segmento distinto del suo team si è concentrato sulla progettazione e implementazione del software di sistema, che includeva meccanismi di rilevamento e ripristino degli errori critici come i riavvii e le routine di interfaccia di visualizzazione (note anche come display prioritari), entrambi concepiti e sviluppati da Hamilton. Ha acquisito competenze pratiche in un'epoca in cui i programmi formali di informatica erano scarsi e i corsi di ingegneria del software erano inesistenti.

La vasta esperienza di Hamilton comprendeva un ampio spettro di discipline, tra cui progettazione di sistemi e sviluppo di software, modellazione di processi e imprese, paradigmi di sviluppo, linguaggi di modellazione di sistemi formali, oggetti orientati ai sistemi per la modellazione e lo sviluppo di sistemi, ambienti automatizzati del ciclo di vita, metodologie per ottimizzare l'affidabilità e il riutilizzo del software, analisi di dominio, garanzia della correttezza attraverso proprietà del linguaggio integrate, architettura aperta. tecniche per sistemi robusti, automazione completa del ciclo di vita, garanzia della qualità, integrazione perfetta, tecniche avanzate di rilevamento e ripristino degli errori, sistemi di interfaccia uomo-macchina, sistemi operativi, protocolli di test end-to-end e sofisticate strategie di gestione del ciclo di vita. Queste tecniche integrate sono state progettate per migliorare l'affidabilità del codice facilitando l'identificazione precoce e la correzione degli errori all'interno del processo di sviluppo del software.

L'atterraggio lunare dell'Apollo 11

Durante una fase critica della missione Apollo 11, l'Apollo Guidance Computer, insieme al suo software di volo di bordo, è riuscito a impedire l'interruzione dell'atterraggio sulla Luna. Circa tre minuti prima dell'atterraggio del lander lunare, furono attivati ​​diversi allarmi del computer. L'ingegnere del software Robert Wills ha indicato che l'astronauta Buzz Aldrin ha avviato una richiesta affinché il computer visualizzasse l'altitudine e altri dati pertinenti sul suo schermo. Sebbene il sistema fosse stato progettato per ospitare sette programmi simultanei, il contributo di Aldrin ne costituiva un ottavo. Questa azione, che Aldrin aveva spesso praticato nelle simulazioni, provocò una sequenza di codici di errore imprevisti durante la discesa effettiva. Il software di volo di bordo ha intercettato questi allarmi, presentando "visualizzazioni che non avrebbero mai dovuto accadere" che interrompevano gli astronauti con notifiche di allarmi prioritari. Hamilton aveva previsto e preparato proprio questo scenario con anni di anticipo.

Hamilton ricordava spesso un ulteriore meccanismo di sicurezza. Il suo innovativo sistema di "visualizzazione prioritaria" introduceva un rischio consequenziale: la potenziale desincronizzazione tra l'astronauta e il computer durante i periodi operativi critici. Quando sono stati attivati ​​gli allarmi e le visualizzazioni delle priorità hanno sostituito quelle standard, la transizione verso i nuovi programmi è avvenuta a un ritmo descritto come "un passo più lento" rispetto ai sistemi contemporanei.

Hamilton aveva analizzato approfonditamente questo potenziale problema. La sua analisi ha indicato che se un astronauta, come Aldrin, dovesse interagire con un display di priorità troppo rapidamente, il sistema potrebbe comunque registrare una risposta "normale". La soluzione da lei ideata era un'istruzione procedurale: quando appare un display di priorità, l'astronauta dovrebbe prima contare fino a cinque.

Secondo alcuni rapporti, gli allarmi furono attivati dal fatto che gli astronauti lasciarono inavvertitamente attivato l'interruttore del radar del rendez-vous; tuttavia, questa affermazione riguardante l'attivazione involontaria del radar è contestata da Robert Wills del National Museum of Computing. Il computer ha subito un sovraccarico di interruzioni, derivante dall'alimentazione fornita in fase errata al radar di rendezvous del lander. Gli allarmi del programma segnalavano "overflow esecutivi", indicando che il computer di guida non era in grado di eseguire tutti i compiti assegnati in tempo reale e di conseguenza doveva rinviare alcune operazioni. Il team di Hamilton ha sfruttato l'esecutivo asincrono, originariamente progettato da J. Halcombe Laning, per sviluppare il software di volo asincrono.

Il software di volo incorporava tecniche avanzate di rilevamento e ripristino degli errori, come un riavvio "kill and recompute" a livello di sistema da un "luogo sicuro" e funzionalità di snapshot/rollback. Queste funzionalità hanno facilitato lo sviluppo di routine di interfaccia di visualizzazione (note anche come visualizzazioni di priorità), che, combinate con le funzionalità man-in-the-loop, potrebbero interrompere le visualizzazioni di missione standard degli astronauti per presentare allarmi di emergenza critici. Questa funzionalità si basava sull'assegnazione di una priorità univoca a ciascun processo software, garantendo un'esecuzione precisa, temporale e sequenziale di tutti gli eventi.

Il sistema di allarme prioritario di Hamilton è stato progettato per ignorare i display standard degli astronauti durante le emergenze, presentando informazioni critiche che consentivano una decisione "vai/non vai" riguardo all'atterraggio. Durante un incidente critico, Jack Garman, un ingegnere informatico della NASA al controllo missione, interpretò accuratamente i messaggi di errore trasmessi dai display di priorità, autorizzando la continuazione della missione con l'esclamazione "Vai, vai!" Paul Curto, un tecnologo senior che successivamente nominò Hamilton per un NASA Space Act Award, lodò i suoi contributi come "la base per la progettazione di software ultra affidabile".

Hamilton successivamente documentò il suo punto di vista sull'incidente:

Il software del sistema è stato progettato per rilevare una condizione di sovraccarico, indicando una richiesta di più attività di quelle che poteva eseguire in modo ottimale. Una volta rilevato, ha attivato un allarme, segnalando all'astronauta: "Al momento sono sovraccarico di compiti e darò priorità solo a quelli più critici", cioè, quelli essenziali per l'atterraggio. Oltre al semplice riconoscimento degli errori, il software incorporava una suite completa di programmi di ripristino. In questo caso specifico, la risposta del software prevedeva la disattivazione delle attività con priorità più bassa e il ripristino delle funzioni con priorità più alta. Se il sistema non fosse riuscito a identificare questo problema e ad avviare il ripristino, il successo dell'allunaggio dell'Apollo 11 sarebbe stato notevolmente compromesso.

Avventure imprenditoriali

Nel 1976, Hamilton ha co-fondato Higher Order Software (HOS) con Saydean Zeldin, con l'obiettivo di far avanzare i concetti di prevenzione degli errori e tolleranza agli errori derivati dal loro lavoro sul programma Apollo al MIT. Successivamente hanno sviluppato USE.IT, un prodotto basato sulla metodologia HOS formulata al MIT. Questo prodotto ha trovato applicazione con successo in varie iniziative governative, in particolare un progetto per formalizzare e implementare C-IDEF, un'iterazione automatizzata di IDEF, un linguaggio di modellazione originato dall'aeronautica americana nell'ambito del progetto ICAM (Integrated Computer-Aided Manufacturing). Nel 1980, lo scienziato informatico britannico-israeliano David Harel propose un linguaggio di programmazione strutturato derivato da HOS, inquadrato dalla prospettiva dei sotto-obiettivi AND/OR. Inoltre, HOS è stato utilizzato da altri ricercatori per formalizzare la semantica dei quantificatori linguistici e per stabilire progetti rigorosi per sistemi embedded affidabili in tempo reale.

Hamilton è stata CEO di HOS fino al 1984, lasciando l'azienda nel 1985. Nel marzo 1986, ha fondato Hamilton Technologies, Inc. a Cambridge, Massachusetts. Questa nuova entità era incentrata sull'Universal Systems Language (USL) e sul relativo ambiente automatizzato, la 001 Tool Suite, entrambi basati sul suo paradigma di "sviluppo prima dei fatti" per la progettazione completa di sistemi e l'ingegneria del software.

Impatto duraturo

Hamilton è ampiamente riconosciuto per aver coniato il termine "ingegneria del software". Successivamente ha elaborato la genesi di questa nomenclatura:

Inizialmente il termine non era familiare nel nostro ambito professionale. È rimasto oggetto di scherzo per un lungo periodo, con i colleghi che spesso mi prendevano in giro per i miei concetti non convenzionali. Un momento cruciale si è verificato quando un esperto di hardware molto rispettato ha affermato pubblicamente in un incontro che lo sviluppo del software meritava il riconoscimento come disciplina ingegneristica, analoga all'ingegneria dell'hardware. Questa accettazione derivava non solo dall'adozione della nuova terminologia, ma dal riconoscimento collettivo che il nostro lavoro si era affermato come un campo ingegneristico legittimo.

Durante le missioni Apollo iniziali, quando Hamilton introdusse il termine "ingegneria del software", la disciplina dello sviluppo del software non aveva il riconoscimento e la posizione scientifica accordati ad altri campi dell'ingegneria. L'obiettivo di Hamilton era quello di stabilire lo sviluppo del software come una disciplina ingegneristica legittima. Successivamente, l'"ingegneria del software" ha raggiunto un livello comparabile rispetto ad altre discipline tecniche. Il numero di settembre/ottobre 2018 di IEEE Software ha commemorato il cinquantesimo anniversario dell'ingegneria del software. Hamilton ha discusso della profonda influenza degli "Errori" sui suoi sforzi di ingegneria del software, in particolare di come il suo linguaggio sviluppato, USL, potrebbe mitigare la maggior parte degli "Errori" di sistema. Il progetto dell'USL mirava a prevenire la maggior parte degli errori derivanti dallo sviluppo iniziale del sistema, riducendo così la dipendenza da test approfonditi post-sviluppo. La sua esperienza durante la missione Apollo, che portò alla formulazione di una teoria matematica per sistemi e software, ha informato la creazione dell'USL. Questa metodologia ha mantenuto un'influenza significativa nel campo dell'ingegneria del software. Robert McMillan, scrivendo per Wired, ha evidenziato il suo contributo al MIT, affermando che "ha contribuito alla creazione dei principi fondamentali della programmazione informatica mentre lavorava con i suoi colleghi alla scrittura del codice per il primo computer portatile al mondo". Le innovazioni di Hamilton vanno oltre il suo ruolo chiave nelle missioni lunari. Karen Tegan Padir di Wired ha inoltre affermato che Hamilton, insieme a Grace Hopper, l'inventore di COBOL e un'altra pioniera della programmazione, merita un sostanziale riconoscimento per aver facilitato l'ingresso e il successo delle donne nei campi STEM come il software.

Commemorazioni

Nel 2017 è stato rilasciato un set LEGO "Donne della NASA", che include le minifigure di Hamilton, degli astronauti Mae Jemison e Sally Ride e di Nancy Grace Roman, il primo capo dell'astronomia della NASA. Maia Weinstock originariamente propose il set per onorare il contributo di queste donne alla storia della NASA. Il segmento di Hamilton all'interno del set ricrea in particolare la sua iconica fotografia del 1969, raffigurandola accanto a una notevole quantità di elenchi di software.

Nel 2019, per commemorare il 50° anniversario dello sbarco dell'Apollo, Google ha onorato Hamilton configurando gli specchi dell'Ivanpah Solar Power Facility per proiettare un'immagine di lei e dell'Apollo 11 utilizzando la luce della luna.

Il personaggio di Margo Madison, un ingegnere immaginario della NASA presente nella serie storica alternativa. For All Mankind, trae ispirazione da Hamilton.

Riconoscimenti

Pubblicazioni selezionate

Çavkanî: Arşîva TORÎma Akademî

Su questo articolo

Informazioni su Margaret Hamilton (software engineer)

Una breve guida alla vita, alle ricerche, alle scoperte e all’importanza scientifica di Margaret Hamilton (software engineer).

Tag dell’argomento

Informazioni su Margaret Hamilton (software engineer) Chi era Margaret Hamilton (software engineer) Vita di Margaret Hamilton (software engineer) Ricerche di Margaret Hamilton (software engineer) Scoperte di Margaret Hamilton (software engineer) Contributi scientifici

Ricerche comuni su questo tema

  • Chi era Margaret Hamilton (software engineer)?
  • Che cosa ha scoperto Margaret Hamilton (software engineer)?
  • Quali contributi ha dato Margaret Hamilton (software engineer)?
  • Perché Margaret Hamilton (software engineer) è importante?

Archivio categoria

Archivio di Scienza di Torima Akademi

Esplora l'ampio archivio di Scienza di Torima Akademi. Scopri articoli approfonditi, ricerche e spiegazioni dettagliate che spaziano dalle scienze naturali e fisiche all'informatica e alla matematica. Approfondisci

Home Torna a Scienze