Margaret Hamilton (softwarová inženýrka) - Margaret Hamilton (software engineer)

Margaret Hamiltonová
Margaret Hamilton 1995.jpg
Hamilton v roce 1995
narozený
Margaret Elaine Heafield

( 1936-08-17 )17.srpna 1936 (věk 85)
Vzdělávání Earlham College
University of Michigan
obsazení Softwarový inženýr
Manžel / manželka
Děti 1 dcera, Lauren Hamilton
Příbuzní James Cox Chambers (bývalý zeť)
Ocenění Prezidentská medaile svobody

Margaret Heafield Hamilton (narozený 17 srpna 1936) je americký počítačový vědec , systémový inženýr a majitel firmy. Byla ředitel softwarového inženýrství divize MIT měřicí laboratoře , který se vyvíjel na palubě letu software pro NASA ‚s programem Apollo . Později založila dvě softwarové společnosti - Software vyššího řádu v roce 1976 a Hamilton Technologies v roce 1986, obě v Cambridgi, Massachusetts .

Hamilton publikoval více než 130 článků, sborníků a zpráv o šedesáti projektech a šesti hlavních programech. Je jednou z lidí, kterým se připisuje termín „ softwarové inženýrství “.

22. listopadu 2016 převzala Hamilton prezidentskou medaili svobody od prezidenta Baracka Obamy za její práci vedoucí k vývoji palubního letového softwaru pro mise NASA Apollo Moon.

Osobní život a vzdělání

Margaret Elaine Heafield se narodila 17. srpna 1936 v Paoli v Indianě Kennethovi Heafieldovi a Ruth Esther Heafieldové ( rozená  Partingtonová); má dva mladší sourozence: Davida a Kathryn. Rodina se později přestěhovala do Michiganu , kde Margaret promovala na Hancock High School v roce 1954. Studovala matematiku na University of Michigan v roce 1955, poté přešla na Earlham College, kde byla její matka studentkou; v roce 1958 získala bakalářský titul z matematiky a ve filozofii menší obor. Jako svou touhu věnovat se abstraktní matematice a stát se profesorem matematiky uvádí Florence Longovou, vedoucí matematického oddělení v Earlhamu. Měla další inspiraci, včetně jejího otce (filozofa a básníka) a jejího dědečka (ředitele školy a kvakerského ministra). Říká, že ji tito muži inspirovali, aby do studia zahrnula nezletilého z filozofie.

Zatímco v Earlhamu se Hamilton setkala se svým prvním manželem Jamesem Coxem Hamiltonem, vedoucím chemie. Vzali se 15. června 1958, v létě poté, co absolvovala Earlham. Krátce vyučovala středoškolskou matematiku a francouzštinu na veřejné škole v Bostonu v Indianě , zatímco její manžel dokončil bakalářské studium na Earlhamu. Pár se poté přestěhoval do Bostonu , Massachusetts , kde James později získal magisterský titul z chemie na Brandeis University ; měli dceru Lauren, narozenou 10. listopadu 1959. James později absolvoval Harvard Law School v roce 1963; v Bostonu založil advokátní kancelář a také později působil ve správní radě Americké unie občanských svobod . Pár se rozvedl v roce 1967 a Margaret se o dva roky později provdala za Dana Licklyho .

Kariéra

V Bostonu původně zamýšlela zapsat se na postgraduální studium abstraktní matematiky na Brandeis. V létě 1959 však Hamilton začal pracovat pro Edwarda Nortona Lorenza v meteorologickém oddělení na MIT . Ona vyvinula software pro předpovídání počasí, programování na LGP-30 a PDP-1 počítačů na Marvin Minsky ‚s Project MAC . Její práce přispěla k Lorenzovým publikacím o teorii chaosu . V té době ještě nebyly počítačové vědy a softwarové inženýrství zavedenými obory; místo toho se programátoři naučili v práci s praktickými zkušenostmi. V létě 1961 přešla na jiný projekt a najala a vycvičila Ellen Fetter jako její náhradu.

Projekt SAGE

V letech 1961 až 1963 pracovala Hamilton na projektu SAGE ( Semi-Automatic Ground Environment ) v laboratoři MIT Lincoln Lab , kde byla jedním z programátorů, kteří psali software pro prototyp počítače AN/FSQ-7 (XD-1) , používané americkým letectvem k hledání možná nepřátelských letadel. Napsala také software pro projekt satelitního sledování ve výzkumných laboratořích Air Force Cambridge . Projekt SAGE byl rozšířením projektu Whirlwind , který zahájila společnost MIT s cílem vytvořit počítačový systém, který by dokázal předpovídat meteorologické systémy a sledovat jejich pohyby pomocí simulátorů. SAGE byl brzy vyvinut pro vojenské použití v protiletadlové protivzdušné obraně. Hamilton řekl:

Když vstupovali do této organizace jako začátečníci, dělali to, že vám přiřadili tento program, který nikdo nedokázal zjistit ani spustit. Když jsem byl začátečník, dali mi to také. A stalo se, že to bylo složité programování, a ten, kdo to napsal, měl radost, že všechny jeho komentáře byly v řečtině a latině. Byl mi tedy přidělen tento program a vlastně jsem ho dostal do práce. Své odpovědi dokonce vytisklo v latině a řečtině. Byl jsem první, komu se to podařilo.

Právě její úsilí o tento projekt z ní udělalo kandidátku na pozici v NASA jako vedoucí vývojář letového softwaru Apollo.

Draperova laboratoř

Hamilton v roce 1969, stojící vedle výpisů softwaru, který ona a její tým MIT vytvořili pro projekt Apollo
Hamilton během svého působení jako vedoucí návrhář letového softwaru Apollo

Hamilton se poté připojil k Charles Stark Draper Laboratory na MIT, která pracovala na vesmírné misi Apollo . Hamilton byl původně najat jako programátor pro tento proces, ale přešel k návrhům systému. Nakonec měla na starosti veškerý software Command Module, což byl veškerý software pro navigaci a navádění na měsíční přistání. Nakonec vedla tým, který se zasloužil o vývoj softwaru pro Apollo a Skylab . Hamiltonův tým byl zodpovědný za vývoj palubního softwaru, který zahrnoval algoritmy navržené různými vedoucími vědci pro velitelský modul Apollo, lunární přistávací modul a následný Skylab. Další část jejího týmu navrhla a vyvinula systémový software. To zahrnovalo software pro detekci a obnovu chyb, jako jsou restarty a rutiny rozhraní displeje (známé také jako prioritní displeje), který Hamilton navrhl a vyvinul. Pracovala na získání praktických zkušeností v době, kdy kurzy počítačové vědy byly neobvyklé a kurzy softwarového inženýrství neexistovaly. Hamilton také působil jako ředitel divize softwarového inženýrství.

Její odborné oblasti patří: projektování systémů a vývoj software , podnikání a modelování procesu , vývojové paradigma, formální systémy modelovací jazyk, systémové orientované objekty pro systémy modelování a vývoj, automatizované prostředí, životní cyklus, postupy pro maximalizaci spolehlivosti softwaru a opětovné použití , doménu analýza , správnost pomocí vestavěných vlastností jazyka, techniky otevřené architektury pro robustní systémy, automatizace celého životního cyklu, zajištění kvality , bezproblémová integrace, techniky detekce a obnovy chyb , systémy rozhraní člověk-stroj , operační systémy , end-to-end testovací techniky a techniky řízení životního cyklu. Díky tomu byl její kód neuvěřitelně spolehlivý, protože pomohly programátorům identifikovat a opravit anomálie, než se staly velkými problémy.

Program Apollo

V jednom z kritických okamžiků mise Apollo 11 odvrátil naváděcí počítač Apollo spolu s palubním letovým softwarem přerušení přistání na Měsíci. Tři minuty před tím, než se lunární přistávací modul dostal na povrch Měsíce, bylo spuštěno několik počítačových poplachů. Palubní letový software zachytil tyto alarmy pomocí „nikdy se nemělo stát displeje“, což kosmonauty přerušilo prioritními alarmy. Hamilton se na tuto situaci připravoval před lety:

Na Hamiltona rád vzpomíná ještě jeden, bezpečný. Její inovace „prioritního displeje“ vytvořila riziko, že astronaut a počítač vyklouznou ze synchronizace právě tehdy, když na tom nejvíce záleží. Když se spustily alarmy a prioritní displeje nahradily normální, skutečné přepínání na nové programy za obrazovkami probíhalo „o krok pomaleji“, než by tomu bylo dnes.

Hamilton o tom dlouho přemýšlel. Znamenalo to, že kdyby Aldrin, řekněme, stiskl tlačítko na prioritním displeji příliš rychle, mohl by přesto dostat „normální“ odpověď. Její řešení: když uvidíte prioritní displej, nejprve počítejte do pěti.

Podle některých účtů astronauti nechtěně nechali zapnutý setkávací radarový spínač, což způsobilo spuštění těchto poplachů (zda byl radar nechtěně zapnut astronauty, zpochybňuje Robert Wills s Národním muzeem výpočetní techniky ). Počítač byl přetížen přerušeními způsobenými nesprávně fázovaným napájením dodávaným do přistávacího radaru přistávacího modulu. Alarmy programu indikovaly „výkonné přetečení“, což znamená, že naváděcí počítač nemohl dokončit všechny své úkoly v reálném čase a některé z nich musel odložit. Asynchronní manažer navržený J. Halcombe Laningem použil Hamiltonův tým k vývoji asynchronního letového softwaru:

Kvůli technikám detekce a obnovy chyb systémového softwaru letového softwaru, které zahrnovaly jeho systémový přístup „zabít a přepočítat“ z restartu „bezpečného místa“ k technikám fotografování a vrácení zpět, rutiny rozhraní displeje (AKA zobrazuje prioritu) společně s jeho schopnostmi man-in-the-loop bylo možné vytvořit, aby bylo možné v případě nouze přerušit běžné mise astronautů s prioritním zobrazením kritických poplachů. To záviselo na tom, abychom každému procesu v softwaru přiřadili jedinečnou prioritu, abychom zajistili, že všechny jeho události proběhnou ve správném pořadí a ve správný čas vzhledem ke všemu, co se děje.

Hamiltonovy prioritní alarmové displeje přerušily normální displeje astronautů, aby je varovaly, že došlo k nouzové situaci „dát astronautům rozhodnutí jít/nejezdit (přistát nebo nepřistát)“. Jack Garman , počítačový inženýr NASA v řízení misí, rozpoznal význam chyb, které byly astronautům předloženy prioritními displeji, a zakřičel: „Jdi, jdi!“ a pokračovali. Paul Curto, hlavní technolog, který Hamiltona nominoval na cenu NASA Space Act Award, označil Hamiltonovu práci za „základ pro ultra spolehlivý design softwaru“.

Hamilton později o incidentu napsal:

Počítač (nebo spíše software v něm) byl dostatečně chytrý, aby rozpoznal, že byl požádán o provedení více úkolů, než by měl provádět. Poté vyslal poplach, což pro astronauta znamenalo: „Jsem přetížen více úkoly, než bych v tuto chvíli měl dělat, a budu plnit jen ty důležitější úkoly“; tj. ty, které jsou potřeba k přistání ... Ve skutečnosti byl počítač naprogramován tak, aby dokázal více než jen rozpoznat chybové stavy. Do softwaru byla začleněna kompletní sada programů pro obnovu. Úkolem softwaru v tomto případě bylo odstranit úkoly s nižší prioritou a obnovit ty důležitější ... Pokud počítač tento problém nerozpoznal a provedl akci obnovy, pochybuji, že by Apollo 11 bylo úspěšným měsícem přistání to bylo.

-  Dopis Margaret H. Hamiltonové, ředitelky Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, s názvem „Počítač byl načten“, publikovaný v Datamation , 1. března 1971

Podniky

V roce 1976 Hamilton spolu se Saydeanem Zeldinem založil společnost s názvem Higher Order Software (HOS) s cílem dále rozvíjet představy o prevenci chyb a odolnosti vůči chybám, které vyplynuly ze zkušeností z MIT s prací na programu Apollo. Vytvořili produkt s názvem USE.IT na základě metodiky HOS, kterou vyvinuli na MIT. Úspěšně byl použit v mnoha vládních programech, včetně projektu formalizace a implementace C-IDEF, automatizované verze IDEF , modelovacího jazyka vyvinutého americkým letectvem v rámci projektu ICAM ( Integrated Computer-Aided Manufacturing ). V roce 1980 publikoval britsko-izraelský počítačový vědec David Harel návrh strukturovaného programovacího jazyka odvozeného z HOS z hlediska a/nebo subgoals. Jiní použili HOS k formalizaci sémantiky lingvistických kvantifikátorů a k formalizaci návrhu spolehlivých vestavěných systémů v reálném čase.

Hamilton byl generálním ředitelem HOS přes 1984 a opustil společnost v roce 1985. V březnu 1986 založila Hamilton Technologies, Inc. v Cambridge, Massachusetts . Společnost byla vyvinuta kolem jazyka Universal Systems Language (USL) a souvisejícího automatizovaného prostředí 001 Tool Suite, na základě jejího paradigmatu vývoje před tím, než došlo k návrhu systémů a vývoji softwaru.

Dědictví

Oficiální fotografie pro NASA , 1989

Anthony Oettinger , Barry Boehm a Hamilton se zasloužili o pojmenování disciplíny „ softwarové inženýrství “. Hamilton podrobně popisuje, jak se dostala k pojmu „softwarové inženýrství“:

Když jsem poprvé přišel s termínem, nikdo o něm předtím neslyšel, alespoň v našem světě. Dlouho to byl pokračující vtip. Rádi si ze mě dělali legraci z mých radikálních myšlenek. Byl to nezapomenutelný den, kdy jeden z nejrespektovanějších hardwarových guruů na schůzce všem vysvětlil, že se mnou souhlasí, že proces vytváření softwaru by měl být také považován za inženýrskou disciplínu, stejně jako u hardwaru. Ne kvůli tomu, že přijal nový „termín“ sám o sobě, ale proto, že jsme si vysloužili jeho a přijetí ostatních v místnosti jako samostatného strojírenského oboru.

Když Hamilton během raných misí Apollo začal používat termín „softwarové inženýrství“, nebyl vývoj softwaru ve srovnání s jiným inženýrstvím brán vážně, ani nebyl považován za vědu. Hamilton se zabýval legitimizací vývoje softwaru jako inženýrské disciplíny. Časem si výraz „softwarové inženýrství“ získal stejný respekt jako jakékoli jiné technické disciplíny. Vydání softwaru IEEE září/říjen 2018 oslavuje 50. výročí softwarového inženýrství. Hamilton hovoří o „chybách“ a o tom, jak ovlivnily její práci související se softwarovým inženýrstvím a jak by její jazyk USL mohl být použit k prevenci většiny „chyb“ v systému. Robert McMillan ve Wired napsal: „Na MIT pomáhala při vytváření základních principů počítačového programování, když pracovala se svými kolegy při psaní kódu pro první přenosný počítač na světě“. Hamiltonovy inovace jdou nad rámec toho, že hrají důležitou roli při dopravě lidí na Měsíc. Podle Wired ' s Karen Tegan Padir: „To, spolu s uvedeným jiným počátkem programového průkopník, COBOL [ sic ] vynálezce Milosti Hopper , si také zaslouží obrovské uznání za pomoci otevřít dveře pro více žen ke vstupu a uspět v STEM odvětvích jako je software . "

V roce 2019, při oslavě 50 let od přistání Apolla, se Google rozhodl vzdát hold Hamiltonovi. Zrcadla v závodě Ivanpah byla nakonfigurována tak, aby vytvářela obraz Hamiltona a Apolla 11 za svitu měsíce.

Ocenění

Barack Obama udělil prezidentské medaili svobody Hamiltonovi v roce 2016
Ceremoniál Honoris Causa Margaret Hamiltonové, 2018

Publikace

  • Hamilton, M .; Zeldin, S. (březen 1976). „Software vyššího řádu - metodika pro definování softwaru“. Transakce IEEE v softwarovém inženýrství . SE-2 (1): 9–32. doi : 10.1109/TSE.1976.233798 . S2CID  7799553 .
  • Hamilton, M .; Zeldin, S. (1. ledna 1979). „Vztah mezi návrhem a ověřením“. Žurnál systémů a softwaru . 1 : 29–56. doi : 10,1016/0164-1212 (79) 90004-9 .
  • Hamilton, M. (duben 1994). „Vnitřní vývoj před skutečností“ . (Titulní příběh). Zvláštní redakční dodatek. 8ES-24ES. Elektronický design .
  • Hamilton, M. (červen 1994). „001: Inženýrské prostředí a prostředí pro vývoj softwarových systémů po celý životní cyklus“ . (Titulní příběh). Zvláštní redakční dodatek. 22ES-30ES. Elektronický design .
  • Hamilton, M .; Hackler, WR (2004). „Společně principy architektury softwarové architektury hluboce integrované naváděcí navigační jednotky (DI-GNU)“. (Revidováno 29. prosince 2004). DAAAE30-02-D-1020 a DAAB07-98-D-H502/0180, Picatinny Arsenal, New Jersey, 2003–2004.
  • Hamilton, M .; Hackler, WR (2007). „ Universal Systems Language for Preventative Systems Engineering “, Proč. 5. Ann. Konf. Systems Eng. Res. (CSER), Stevens Institute of Technology, březen 2007, papír č. 36.
  • Hamilton, M .; Hackler, WR (2007). „ Formální sémantika univerzálních systémů pro SysML “. 17. výroční mezinárodní sympozium, INCOSE 2007, San Diego, CA, červen 2007.
  • Hamilton, M .; Hackler, WR (2008). „ Universal Systems Language: Poučení z Apolla “. Počítač IEEE , prosinec 2008.
  • Hamilton, MH (září 2018). „Co nám chyby říkají“ . Software IEEE . 35 (5): 32–37. doi : 10.1109/MS.2018.290110447 . S2CID  52896962 .

Viz také

Reference

Další čtení

  • Steafel, Eleanor (20. července 2019). „Jedna žena v místnosti plné mužů“. The Telegraph Magazine . Londýn: Daily Telegraph plc. s. 56–59, 61. OCLC  69022829 .

externí odkazy