Margaret Hamilton (scienziata)

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
Margaret Hamilton nel 1995

Margaret Heafield Hamilton (Paoli (Indiana), 17 agosto 1936) è un'informatica, ingegnere e imprenditrice statunitense. È stata la direttrice del Software Engineering Division del MIT Instrumentation Laboratory, che sviluppò il software di bordo per il programma Apollo[1]. Il team della Hamilton ha risolto le complicazioni relative allo sbarco dell'Apollo 11 sulla Luna, garantendo il successo della missione.[2] Nel 1986, la Hamilton ha fondato la Hamilton Technologies, Inc. nella città di Cambridge, Massachusetts. La società nacque per sviluppare il cosiddetto Universal Systems Language basato sul paradigma di Development Before the Fact (DBTF) per la progettazione di sistemi e di software.[3]

La Hamilton ha pubblicato più di 130 articoli, atti e relazioni su vari argomenti; ha lavorato a 60 progetti ed è stata coinvolta in sei grandi programmi.

Biografia[modifica | modifica wikitesto]

Formazione[modifica | modifica wikitesto]

Nata a Paoli (Indiana) da Kenneth Heafield e Ruth Ester Heafield (nata Partington)[4], si è diplomata alla Hancock High School nel 1954; successivamente si è laureata in matematica presso l'Università del Michigan e ha poi conseguito la laurea in matematica e filosofia presso l'Earlham College nel 1958[5]. Fino alla laurea ha per un breve periodo insegnato matematica e francese alle scuole superiori, allo scopo di sostenere il marito nei suoi studi di primo livello a Harvard, con lo scopo di conseguire un titolo di secondo livello in un secondo momento. Si è trasferita a Boston (Massachusetts) con l'intenzione di fare ricerca nell'ambito della matematica pura alla Brandeis University. Nel 1960 ha ottenuto un impiego temporaneo al Massachusetts Institute of Technology (MIT) per sviluppare software per le previsioni meteo per i calcolatori LGP-30 e PDP-1 per un progetto del professor Edward Norton Lorenz, del dipartimento di meteorologia.[6] A quel tempo, informatica e ingegneria del software non erano ancora discipline universitarie; al contrario, i programmatori si sono formati facendo esperienza sul campo.[1]

Progetto SAGE[modifica | modifica wikitesto]

Dal 1961 al 1963 la Hamilton ha lavorato al progetto Semi Automatic Ground Environment (SAGE) presso i Lincoln Labs. Il progetto SAGE era un'estensione del progetto Whirlwind, avviato dal MIT e volto allo sviluppo di un sistema informatico per le previsioni e simulazioni meteorologiche. Il SAGE è stato quindi sviluppato ad uso militare, come sistema di difesa antiaerea in previsione di possibili attacchi sovietici durante la guerra fredda. Hamilton disse in merito al suo lavoro per il progetto

(EN)

«What they used to do when you came into this organization as a beginner, was to assign you this program which nobody was able to ever figure out or get to run. When I was the beginner they gave it to me as well. And what had happened was it was tricky programming, and the person who wrote it took delight in the fact that all of his comments were in Greek and Latin. So I was assigned this program and I actually got it to work. It even printed out its answers in Latin and Greek. I was the first one to get it to work»

(IT)

«Quello che erano soliti fare quando entravi, senza esperienza, in questa organizzazione, era di assegnarti un programma che nessuno era in grado nemmeno di capire come far funzionare. Quando ero alle prime armi lo diedero anche a me, e quel che successe è che si trattava di un programma pieno d'insidie e la persona che lo aveva realizzato si era divertito a commentare il codice in greco e in latino. Così, fui assegnata a questo programma e riuscii a farlo funzionare. Addirittura riportava l'output in greco e latino. Fui la prima a riuscire a farlo funzionare»

(Margaret Hamilton alla prima conferenza dell'Apollo Guidance Computer History Project[7])

Grazie al suo contributo al progetto, è diventata una candidata per la posizione di capo sviluppo per il software di volo del programma Apollo alla NASA.

NASA[modifica | modifica wikitesto]

Hamilton è entrata quindi al Charles Stark Draper Laboratory al MIT, che all'epoca stava lavorando alle missioni Apollo, dove divenne infine direttrice e supervisore dello sviluppo software per i programmi Apollo e Skylab.[8] Alla NASA, il team diretto da Hamilton era responsabile dello sviluppo del software che avrebbe guidato le capsule del programma Apollo nella navigazione e nell'atterraggio sulla Luna, e le sue molteplici varianti usate in altri progetti successivi, tra i quali Skylab.[1]

Apollo 11[modifica | modifica wikitesto]

Margaret Hamilton nel 1969, accanto al codice sorgente del software dell'Apollo Guidance Computer[9]

Le scelte progettuali del gruppo di Hamilton e del sistema operativo di J. Halcombe Laning si sono rivelate cruciali, e in uno dei momenti critici durante lo svolgimento della missione Apollo 11, hanno evitato l'abbandono della missione.[10][11] Tre minuti prima dell'atterraggio del lander sulla superficie lunare, sono scattati diversi allarmi in quanto il computer era sovraccarico di dati in ingresso, a causa del fatto che il sistema radar di rendezvous (non necessario in fase di atterraggio) stava aggiornando un contatore, impegnando il computer in cycle stealing. Tuttavia, grazie allo scheduler pre-emptive a priorità fissa, i processi impegnati nell'atterraggio, a priorità maggiore, hanno interrotto i processi a priorità minore.[11] Il difetto è stato attribuito poi ad una checklist errata.

(EN)

«Due to an error in the checklist manual, the rendezvous radar switch was placed in the wrong position. This caused it to send erroneous signals to the computer. The result was that the computer was being asked to perform all of its normal functions for landing while receiving an extra load of spurious data which used up 15% of its time. The computer (or rather the software in it) was smart enough to recognize that it was being asked to perform more tasks than it should be performing. It then sent out an alarm, which meant to the astronaut, I'm overloaded with more tasks than I should be doing at this time and I'm going to keep only the more important tasks; i.e., the ones needed for landing ... Actually, the computer was programmed to do more than recognize error conditions. A complete set of recovery programs was incorporated into the software. The software's action, in this case, was to eliminate lower priority tasks and re-establish the more important ones ... If the computer hadn't recognized this problem and taken recovery action, I doubt if Apollo 11 would have been the successful moon landing it was.»

(IT)

«A causa di un errore nella checklist del manuale, l'interruttore del radar di rendezvous era stato commutato nella posizione sbagliata. Questo causò l'invio di segnali erronei al computer. Il risultato fu che al computer era richiesto di eseguire tutte le sue ordinarie funzionalità per l'atterraggio mentre riceveva un carico aggiuntivo di dati spuri che assorbivano il 15% delle sue risorse. Il computer (o meglio, il software che stava eseguendo) era sufficientemente furbo da riconoscere che era richiesta l'esecuzione di più processi rispetto a quelli che poteva sostenere. Inviò quindi un allarme, che significava per gli astronauti "sono sovraccarico con più attività di quelle che potrei fare in questo momento e mi accingo a mantenere in esecuzione solo le più importanti"; ovvero, quelle richieste per l'atterraggio ... In effetti il computer era programmato per fare più che riconoscere le condizioni di errore. Un insieme completo di procedure di ripristino era incorporato. L'azione eseguita dal software, in questo caso, fu quella di eliminare i processi a priorità più bassa e ripristinare i più importanti ... Se il computer non avesse riconosciuto questo problema e reagito di conseguenza, dubito che Apollo 11 sarebbe potuta essere l'allunaggio con successo che fu.»

(Margaret Hamilton, Director of Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, "Computer Got Loaded", Letter to Datamation, March 1, 1971[12])

Business[modifica | modifica wikitesto]

Dal 1976 al 1984 Hamilton è stata CEO di una società da lei cofondata, chiamata Higher Order Software (HOS), che si occupava di prevenzione e resistenza agli errori software, sulla base della sua esperienza maturata al MIT.[13] La società ha sviluppato un prodotto chiamato USE.IT, basato su metodologia HOS.[14][15][16]

Nel 1986 ha fondato ed è divenuta CEO della Hamilton Technologies, a Cambridge (Massachusetts). La società è nata sulla base del Universal Systems Language (USL) e del suo ambiente automatizzato, 001 Tool Suite, basato sul paradigma di progettazione e sviluppo software da lei sviluppato, development before the fact (DBTF).[3][17][18][19]

Eredità[modifica | modifica wikitesto]

Foto ufficiale per la NASA (1989)

Hamilton ha reso popolare l'espressione "ingegneria del software" (software engineering),[20] precedentemente coniato da Anthony Oettinger.[21][22] All'epoca l'ingegneria del software non era considerata con la stessa serietà di altre discipline ingegneristiche e non era vista come una scienza. Lei usava l'espressione "ingegneria del software" per distinzione rispetto all'ingegneria dell'hardware, e con il tempo l'ingegneria del software ha acquisito la sua dignità scientifica.[23] Nel suo lavoro al MIT ha preso parte alla definizione dei principi fondamentali della programmazione, lavorando sui primi computer mobili.[24] Il suo contributo va oltre il semplice successo delle missioni lunari, ma insieme a tante colleghe ingegnere rappresenta una figura simbolica nella conquista tutt'ora in corso della parità di genere nelle discipline STEM.[25]

Vita privata[modifica | modifica wikitesto]

Conobbe suo marito, James Cox Hamilton, al Earlham College. Si sposarono verso la fine degli anni cinquanta, dopo aver conseguito il bachelor a Heafield. Ebbero una figlia di nome Lauren che, in seguito, sposò il miliardario James Cox Chambers. Hamilton non ebbe problemi nel proseguimento della sua carriera alla NASA durante la maternità, e nel fine settimana spesso portava Lauren nei laboratori e passava del tempo con lei mentre lavorava alla programmazione del software Apollo.[24] In seguito divorziò dal marito.[26]

Riconoscimenti[modifica | modifica wikitesto]

Pubblicazioni[modifica | modifica wikitesto]

  • M. Hamilton (1994), "Inside Development Before the Fact," cover story, Special Editorial Supplement, 8ES-24ES. Electronic Design, aprile 1994.
  • M. Hamilton (1994), "001: A Full Life Cycle Systems Engineering and Software Development Environment," cover story, Special Editorial Supplement, 22ES-30ES. Electronic Design, giugno 1994.
  • M. Hamilton, Hackler, W. R.. (2004), Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles (revised dec-29-04), DAAAE30-02-D-1020 and DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003-2004.
  • M. Hamilton and W. R. Hackler (2007), "Universal Systems Language for Preventative Systems Engineering," Proc. 5th Ann. Conf. Systems Eng. Res. (CSER), Stevens Institute of Technology, marzo 2007, paper #36.
  • M. Hamilton and W. R. Hackler (2007), "A Formal Universal Systems Semantics for SysML", 17th Annual International Symposium, INCOSE 2007, San Diego, CA, giugno 2007.
  • M. Hamilton and W. R. Hackler (2008), "Universal Systems Language: Lessons Learned from Apollo", IEEE Computer, dicembre 2008.

Onorificenze[modifica | modifica wikitesto]

Medaglia presidenziale della libertà - nastrino per uniforme ordinaria Medaglia presidenziale della libertà
«Margaret H. Hamilton led the team that created the on-board flight software for NASA's Apollo command modules and lunar modules. A mathematician and computer scientist who started her own software company, Hamilton contributed to concepts of asynchronous software, priority scheduling and priority displays, and human-in-the-loop decision capability, which set the foundation for modern, ultra-reliable software design and engineering..[31]»
— 22 novembre 2016

Note[modifica | modifica wikitesto]

  1. ^ a b c NASA Office of Logic Design "About Margaret Hamilton" (Accesso: 3 febbraio 2010)
  2. ^ Michael Braukus NASA News "NASA Honors Apollo Engineer" (3 settembre 2003)
  3. ^ a b M. Hamilton, W.R. Hackler (Dicembre 2008). "Universal Systems Language: Lessons Learned from Apollo". IEEE Computer. doi:10.1109/MC.2008.541
  4. ^ Tiffany K. Wayne (2011). American Women of Science Since 1900. ABC-CLIO. pp. 480–1. ISBN 978-1-59884-158-9.
  5. ^ a b c "2009 Outstanding Alumni and Distinguished Service Awards". Earlham College. Accesso 15 dicembre 2014.
  6. ^ Steven Levy (1984), Hackers: Doubleday. ISBN 0-385-19195-2
  7. ^ AGC - Conference 1: Margaret Hamilton's introduction, su authors.library.caltech.edu. URL consultato il 9 dicembre 2015.
  8. ^ Margaret Hamilton, su Cambridge Women's Heritage Project. URL consultato il 23 dicembre 2014.
  9. ^ Dylan, Matthews (May 30, 2015). "Meet Margaret Hamilton, the badass '60s programmer who saved the moon landing". http://www.vox.com/2015/5/30/8689481/margaret-hamilton-apollo-software. Vox.
  10. ^ Tales From The Lunar Module Guidance Computer. Retrieved January 29, 2016
  11. ^ a b c Michael Braukus NASA News "NASA Honors Apollo Engineer" (Sept. 3, 2003)
  12. ^ Margaret H. Hamilton, Computer Got Loaded (Letter), in Datamation, Cahners Publishing Company, 1º marzo 1971, ISSN 0011-6963 (WC · ACNP).
  13. ^ AGC Biography - Margaret Hamilton, su authors.library.caltech.edu.
  14. ^ M. Hamilton, S. Zeldin (1976) "Higher order software—A methodology for defining software" IEEE Transactions on Software Engineering, vol. SE-2, no. 1, Mar. 1976.
  15. ^ Thompson, Arthur A.; Strickland, A. J., (1996), "Strategic Management: Concepts and Cases", McGraw-Hill Companies, ISBN 0-256-16205-0
  16. ^ Rowena Barrett, Management, Labour Process and Software Development: Reality Bites, Routledge, 1º giugno 2004, p. 42, ISBN 978-1-134-36117-5.
  17. ^ Krut, Jr., B., (1993) “Integrating 001 Tool Support in the Feature-Oriented Domain Analysis Methodology” (CMU/SEI-93-TR-11, ESC-TR-93-188), Pittsburgh, SEI, Carnegie Mellon University.
  18. ^ Ouyang, M., Golay, M.W. (1995), An Integrated Formal Approach for Developing High Quality Software of Safety-Critical Systems, Massachusetts Institute of Technology, Cambridge, MA, Report No. MIT-ANP-TR-035.
  19. ^ Software Productivity Consortium, (SPC) (December 1998), Object-Oriented Methods and Tools Survey, Herndon, VA.SPC-98022-MC, Version 02.00.02.
  20. ^ A.J.S. Rayl, NASA Engineers and Scientists-Transforming Dreams Into Reality, su 50th Magazine, NASA, 16 ottobre 2008. URL consultato il 27 dicembre 2014.
  21. ^ ACM Digital Library accessed January 24, 2016
  22. ^ The origin of "software engineering" accessed January 24, 2016
  23. ^ Verne, Margaret Hamilton, the Engineer Who Took the Apollo to the Moon, su Medium, 25 dicembre 2014. URL consultato il 29 aprile 2016.
  24. ^ a b (EN) Her Code Got Humans on the Moon—And Invented Software Itself, su WIRED. URL consultato il 29 aprile 2016.
  25. ^ (EN) Software — and a Woman — at the Heart of Lunar Triumph, su WIRED. URL consultato il 29 aprile 2016.
  26. ^ Emma Stickgold, James Cox Hamilton, at 77; lawyer was quiet warrior for First Amendment, in Boston Globe, 31 agosto 2014. URL consultato il 15 dicembre 2014.
  27. ^ awc-hq.org, http://www.awc-hq.org/ada-lovelace-awards.html.
  28. ^ NASA Press Release "NASA Honors Apollo Engineer" (September 03, 2003)
  29. ^ NASA Administrator Sean O'Keefe has commented saying "The concepts she and her team created became the building blocks for modern software engineering. It's an honor to recognize Ms. Hamilton for her extraordinary contributions to NASA.".
  30. ^ Margaret Hamilton, Apollo Software Engineer, Awarded Presidential Medal of Freedom, su nasa.gov, 22/11/16. URL consultato il 23/11/16.
  31. ^ (EN) President Obama Names Recipients of the Presidential Medal of Freedom, su whitehouse.gov, 16 novembre 2016.

Altri progetti[modifica | modifica wikitesto]

Controllo di autoritàVIAF (EN117145003297761300086 · LCCN (ENno2015153151