Margaret Hamilton (programvaruutvecklare) - Margaret Hamilton (software engineer)

Margaret Hamilton
Margaret Hamilton 1995.jpg
Hamilton 1995
Född
Margaret Elaine Heafield

( 1936-08-17 )17 augusti 1936 (85 år)
Utbildning Earlham College
University of Michigan
Ockupation Mjukvaruingenjör
Makar)
Barn 1 dotter, Lauren Hamilton
Släktingar James Cox Chambers (tidigare svärson)
Utmärkelser Presidentens frihetsmedalj

Margaret Heafield Hamilton (född 17 augusti 1936) är en amerikansk datavetare , systemingenjör och företagare. Hon var chef för Software Engineering Division på MIT Instrumentation Laboratory , som utvecklade ombordflygprogramvara för NASA : s Apollo-program . Hon grundade senare två mjukvaruföretag - Higher Order Software 1976 och Hamilton Technologies 1986, båda i Cambridge, Massachusetts .

Hamilton har publicerat mer än 130 artiklar, förhandlingar och rapporter om sextio projekt och sex stora program. Hon är en av de personer som krediteras med att ha myntat termen " mjukvaruteknik ".

Den 22 november 2016 mottog Hamilton Presidential Medal of Freedom av president Barack Obama för hennes arbete som ledde till utveckling av ombordflygprogramvara för NASA: s Apollo Moon-uppdrag.

Personligt liv och utbildning

Margaret Elaine Heafield föddes den 17 augusti 1936 i Paoli, Indiana , till Kenneth Heafield och Ruth Esther Heafield ( född  Partington); hon har två yngre syskon: David och Kathryn. Familjen flyttade senare till Michigan , där Margaret tog examen från Hancock High School 1954. Hon studerade matematik vid University of Michigan 1955 innan hon flyttade till Earlham College där hennes mamma var student; hon tog en kandidatexamen i matematik med en filosofiexamen 1958. Hon nämner Florence Long, chef för matematiska institutionen i Earlham, för att hjälpa till med sin önskan att bedriva abstrakt matematik och bli matematikprofessor. Hon hade andra inspirationskällor, inklusive hennes far (en filosof och poet) och hennes farfar (en rektor och Quaker -minister). Hon säger att dessa män inspirerade henne att inkludera en mindreårig i filosofi i sina studier.

Medan han var i Earlham träffade Hamilton sin första make, James Cox Hamilton, en senior med inriktning på kemi. De gifte sig den 15 juni 1958, sommaren efter att hon tog examen från Earlham. Hon undervisade kortfattat i gymnasiet i matematik och franska på en offentlig skola i Boston, Indiana , medan hennes man avslutade sin grundutbildning vid Earlham. Paret flyttade sedan till Boston , Massachusetts , där James senare skulle ta sin magisterexamen i kemi från Brandeis University ; de hade en dotter, Lauren, född den 10 november 1959. James tog senare examen från Harvard Law School 1963; han grundade en advokatbyrå i Boston och tjänstgjorde också senare i styrelsen för American Civil Liberties Union . Paret skilde sig 1967 och Margaret gifte sig med Dan Lickly två år senare.

Karriär

I Boston tänkte hon inledningsvis skriva in sig på forskarstudier i abstrakt matematik vid Brandeis. Men sommaren 1959 började Hamilton arbeta för Edward Norton Lorenz , på meteorologiska avdelningen vid MIT . Hon utvecklade mjukvara för att förutsäga vädret, programmering på LGP-30 och PDP-1 datorer på Marvin Minsky 's Project MAC . Hennes arbete bidrog till Lorenz publikationer om kaosteori . Vid den tiden var datavetenskap och mjukvaruteknik ännu inte etablerade discipliner; i stället lärde sig programmerare på jobbet med praktisk erfarenhet. Hon gick vidare till ett annat projekt sommaren 1961 och anställde och utbildade Ellen Fetter som ersättare.

SAGE -projekt

Från 1961 till 1963 arbetade Hamilton på projektet Semi-Automatic Ground Environment (SAGE) vid MIT Lincoln Lab , där hon var en av programmerarna som skrev programvara för prototypen AN/FSQ-7-dator (XD-1) , används av US Air Force för att söka efter eventuellt ovänliga flygplan. Hon skrev också programvara för ett satellitspårningsprojekt vid Air Force Cambridge Research Laboratories . SAGE -projektet var en förlängning av Project Whirlwind , startat av MIT för att skapa ett datasystem som kan förutsäga vädersystem och spåra deras rörelser med hjälp av simulatorer. SAGE utvecklades snart för militär användning inom luftvärn. Hamilton sa:

Vad de brukade göra när du kom in i denna organisation som nybörjare, var att tilldela dig detta program som ingen någonsin kunde ta reda på eller få köra. När jag var nybörjare gav de det till mig också. Och det som hade hänt var att det var en knepig programmering, och personen som skrev det glädde sig åt att alla hans kommentarer var på grekiska och latin. Så jag fick det här programmet och fick det faktiskt att fungera. Den skrev till och med ut sina svar på latin och grekiska. Jag var den första som fick det att fungera.

Det var hennes ansträngningar för detta projekt som gjorde henne till en kandidat för tjänsten på NASA som ledande utvecklare för Apollo flygprogram.

Draper Laboratory

Hamilton 1969, bredvid listor över programvaran hon och hennes MIT -team producerade för Apollo -projektet
Hamilton under sin tid som ledande Apollo -mjukvarudesigner

Hamilton gick sedan in på Charles Stark Draper Laboratory på MIT, som arbetade på Apollo Space Mission . Hamilton anställdes ursprungligen som programmerare för denna process men gick vidare till systemdesigner. Så småningom var hon ansvarig för all Command Module -programvara, som var all programvara för navigering och månlandningsvägledning. Hon ledde så småningom ett team som krediterades med att utveckla programvaran för Apollo och Skylab . Hamiltons team var ansvarigt för att utveckla programvara för flygning, som inkluderade algoritmer som designats av olika seniorforskare för kommandomodulen Apollo, månlandaren och efterföljande Skylab. En annan del av hennes team designade och utvecklade systemprogramvaran. Detta inkluderade feldetekterings- och återställningsmjukvara, till exempel omstart och Display Interface Routines (även känt som Priority Displays), som Hamilton konstruerade och utvecklade. Hon arbetade för att få praktisk erfarenhet under en tid då datavetenskapliga kurser var ovanliga och programvaruteknikkurser inte fanns. Hamilton fungerade också som chef för Software Engineering Division.

Hennes expertområden inkluderar: systemdesign och mjukvaruutveckling , företags- och processmodellering , utvecklingsparadigm, formella systemmodelleringsspråk , systemorienterade objekt för systemmodellering och utveckling, automatiserade livscykelmiljöer, metoder för att maximera programvarans tillförlitlighet och återanvändning , domän analys , korrekthet med inbyggda språkegenskaper, öppen arkitekturteknik för robusta system, hel livscykelautomatisering, kvalitetssäkring , sömlös integration, feldetektering och återställningsteknik , gränssnittssystem mellan människa och maskin , operativsystem , end-to-end testtekniker och livscykelhanteringstekniker. Dessa gjorde hennes kod otroligt tillförlitlig eftersom de hjälpte programmerare att identifiera och åtgärda avvikelser innan de blev stora problem.

Apollo -programmet

I ett av de kritiska stunderna i Apollo 11- uppdraget avvärjde Apollo Guidance Computer tillsammans med flygprogramvaran ombord en avbrott av landningen på månen. Tre minuter innan månlandaren nådde månens yta utlöstes flera datorlarm. Den inbyggda flygprogramvaran fångade upp dessa larm med att "aldrig tänkt att hända visningar" avbröt astronauterna med prioriterade larmdisplayer. Hamilton hade förberett just denna situation år tidigare:

Det var en annan felsäker som Hamilton gillar att komma ihåg. Hennes "prioriterade display" -innovation hade skapat en risk för att astronaut och dator skulle glida ur synk när det var viktigast. När larmet gick och prioritetsdisplayer ersatte normala, skedde själva övergången till nya program bakom skärmarna "ett steg långsammare" än det skulle göra idag.

Hamilton hade tänkt länge på detta. Det innebar att om Aldrin, säg, trycker på en knapp på prioritetsdisplayen för snabbt, kan han fortfarande få ett "normalt" svar. Hennes lösning: när du ser en prioritetsvisning, räkna först till fem.

Enligt vissa konton hade astronauterna oavsiktligt lämnat rendezvous radar -omkopplaren, vilket orsakade att dessa larm utlöstes (om radarn oavsiktligt lämnades av astronauterna ifrågasätts av Robert Wills med National Museum of Computing ). Datorn var överbelastad med avbrott orsakade av felaktigt fasad strömförsörjning till landarens mötesradar. Programlarmen indikerade "exekutiva överflöden", vilket innebär att vägledningsdatorn inte kunde slutföra alla sina uppgifter i realtid och var tvungen att skjuta upp några av dem. Den asynkrona chefen designad av J. Halcombe Laning användes av Hamiltons team för att utveckla asynkron flygprogramvara:

På grund av flygprogramvarans system-mjukvarans tekniker för felupptäckt och återställning som inkluderade dess systemomfattande "döda och beräkna" från en "säker plats" omstartsmetod till dess ögonblicksbild och återställningstekniker, visar Display Interface Routines (AKA prioriteten) tillsammans med dess man-in-the-loop-kapacitet kunde skapas för att ha förmågan att avbryta astronauternas normala uppdragsdisplayer med prioriterade visningar av kritiska larm vid en nödsituation. Detta berodde på att vi tilldelade varje process i programvaran en unik prioritet för att säkerställa att alla dess händelser skulle äga rum i rätt ordning och vid rätt tid i förhållande till allt annat som pågick.

Hamiltons prioriterade larmdisplayer avbröt astronauternas normala displayer för att varna dem om att det var en nödsituation "som gav astronauterna ett go/no go -beslut (att landa eller inte landa)". Jack Garman , en NASA -datoringenjör inom uppdragskontroll, kände igen innebörden av de fel som presenterades för astronauterna av de prioriterade displayerna och ropade: "Gå, gå!" och de fortsatte. Paul Curto, seniortekniker som nominerade Hamilton till ett NASA Space Act Award, kallade Hamiltons arbete "grunden för extremt pålitlig mjukvarudesign".

Hamilton skrev senare om händelsen:

Datorn (eller snarare programvaran i den) var smart nog att inse att den ombads utföra fler uppgifter än den borde utföra. Det skickade sedan ut ett larm, vilket innebar för astronauten: "Jag är överbelastad med fler uppgifter än jag borde göra just nu och jag kommer bara att behålla de viktigare uppgifterna"; dvs de som behövs för landning ... Egentligen var datorn programmerad att göra mer än att känna igen felförhållanden. En komplett uppsättning återställningsprogram införlivades i programvaran. Programvarans åtgärd, i det här fallet, var att eliminera lägre prioriterade uppgifter och återupprätta de viktigare ... Om datorn inte hade insett detta problem och vidtagit återställningsåtgärder, tvivlar jag på om Apollo 11 skulle ha varit den lyckade månen landning var det.

-  Brev från Margaret H. Hamilton, chef för Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, med titeln "Computer Got Loaded", publicerad i Datamation , 1 mars 1971

Företag

År 1976 grundade Hamilton tillsammans med Saydean Zeldin ett företag som heter Higher Order Software (HOS) för att vidareutveckla idéer om felförebyggande och feltolerans som kommer från deras erfarenhet från MIT som arbetar med Apollo-programmet. De skapade en produkt som heter USE.IT, baserat på HOS -metodiken som de utvecklade på MIT. Det användes framgångsrikt i många regeringsprogram, inklusive ett projekt för att formalisera och implementera C-IDEF, en automatiserad version av IDEF , ett modelleringsspråk som utvecklats av US Air Force i projektet Integrated Computer-Aided Manufacturing (ICAM). 1980 publicerade den brittisk-israeliska datavetenskaparen David Harel ett förslag på ett strukturerat programmeringsspråk som härleds från HOS ur och/eller delmåls synvinkel. Andra har använt HOS för att formalisera semantiken för språkliga kvantifierare och för att formalisera utformningen av pålitliga realtidsinbäddade system.

Hamilton var VD för HOS till 1984 och lämnade företaget 1985. I mars 1986 grundade hon Hamilton Technologies, Inc. i Cambridge, Massachusetts . Företaget utvecklades kring Universal Systems Language (USL) och dess tillhörande automatiska miljö, 001 Tool Suite, baserat på hennes utvecklingsparadigm innan systemdesign och mjukvaruutveckling.

Arv

Officiellt foto för NASA , 1989

Anthony Oettinger , Barry Boehm och Hamilton har krediterats med att döpa disciplinen " mjukvaruteknik ". Hamilton beskriver hur hon skapade termen "programvaruteknik":

När jag först kom på termen hade ingen hört talas om det tidigare, åtminstone i vår värld. Det var ett pågående skämt länge. De gillade att lära mig om mina radikala idéer. Det var en minnesvärd dag när en av de mest respekterade hårdvaruguruerna förklarade för alla i ett möte att han höll med mig om att processen att bygga programvara också ska betraktas som en teknisk disciplin, precis som med hårdvara. Inte på grund av hans acceptans av den nya "termen" i sig, utan för att vi hade förtjänat hans och acceptansen för de andra i rummet som att vara i ett teknikområde i sig.

När Hamilton började använda termen "mjukvaruteknik" under de tidiga Apollo -uppdragen togs inte mjukvaruutveckling på allvar jämfört med annan teknik, och betraktades inte heller som en vetenskap. Hamilton var bekymrad över att legitimera mjukvaruutveckling som en teknisk disciplin. Med tiden fick termen "mjukvaruteknik" samma respekt som någon annan teknisk disciplin. IEEE Software September/oktober 2018 -nummer firar 50 -årsjubileet för programvaruteknik. Hamilton talar om "fel" och hur de påverkade hennes arbete med programvaruteknik och hur hennes språk, USL, skulle kunna användas för att förhindra majoriteten av "fel" i ett system. Robert McMillan skrev i Wired : "På MIT hjälpte hon till att skapa grundprinciperna för datorprogrammering när hon arbetade med sina kollegor för att skriva kod till världens första bärbara dator". Hamiltons innovationer går utöver prestationerna att spela en viktig roll för att få människor till månen. Enligt Wired : s Karen Tegan Padir: "Hon, tillsammans med den andra tidiga programmering pionjär, Cobol [ sic ] uppfinnare Grace Hopper , också förtjänar enorm kredit för att hjälpa till att öppna dörren för fler kvinnor att komma in och lyckas i STEM områden som programvara . "

År 2019, för att fira 50 år till Apollo -landningen, beslutade Google att hylla Hamilton. Speglarna vid Ivanpah -anläggningen konfigurerades för att skapa en bild av Hamilton och Apollo 11 i månsken.

Utmärkelser

Honoris Causa -ceremonin av Margaret Hamilton, 2018

Publikationer

  • Hamilton, M .; Zeldin, S. (mars 1976). "Programvara för högre order - en metod för att definiera programvara". IEEE -transaktioner om programvaruteknik . SE-2 (1): 9–32. doi : 10.1109/TSE.1976.233798 . S2CID  7799553 .
  • Hamilton, M .; Zeldin, S. (1 januari 1979). "Förhållandet mellan design och verifiering". Journal of Systems and Software . 1 : 29–56. doi : 10.1016/0164-1212 (79) 90004-9 .
  • Hamilton, M. (april 1994). "Inside Development Before the Fact" . (Omslagshistoria). Särskilt redaktionellt tillägg. 8ES-24ES. Elektronisk design .
  • Hamilton, M. (juni 1994). "001: En hel livscykelsystemsteknik och mjukvaruutvecklingsmiljö" . (Omslagshistoria). Särskilt redaktionellt tillägg. 22ES-30ES. Elektronisk design .
  • Hamilton, M .; Hackler, WR (2004). "Djupt integrerad Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles". (Reviderad 29 december 2004). DAAAE30-02-D-1020 och DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004.
  • Hamilton, M .; Hackler, WR (2007). " Universal Systems Language for Preventative Systems Engineering ", Proc. 5: e Ann. Konf. Systems Eng. Res. (CSER), Stevens Institute of Technology, mars 2007, papper #36.
  • Hamilton, M .; Hackler, WR (2007). " A Formal Universal Systems Semantics for SysML ". 17th Annual International Symposium, INCOSE 2007, San Diego, CA, juni 2007.
  • Hamilton, M .; Hackler, WR (2008). " Universal Systems Language: Lessons Learned from Apollo ". IEEE Computer , december 2008.
  • Hamilton, MH (september 2018). "Vad felen säger till oss" . IEEE -programvara . 35 (5): 32–37. doi : 10.1109/MS.2018.290110447 . S2CID  52896962 .

Se även

Referenser

Vidare läsning

  • Steafel, Eleanor (20 juli 2019). "En kvinna i ett rum fullt av män". The Telegraph Magazine . London: Daily Telegraph plc. s. 56–59, 61. OCLC  69022829 .

externa länkar