Margaret Hamiltonová (softwarová inženýrka)

Původně se chtěla v Bostonu zapsat na postgraduální studium abstraktní matematiky na Brandeisově univerzitě. V létě 1959 však Hamiltonová začala pracovat pro Edwarda Nortona Lorenze na meteorologickém oddělení MIT. Vyvíjela software pro předpovídání počasí a programovala na počítačích LGP-30 a PDP-1 v rámci projektu MAC Marvina Minského. Její práce přispěla k Lorenzovým publikacím o teorii chaosu. V té době nebyla informatika a softwarové inženýrství ještě zavedenými obory; místo toho se programátoři učili při práci s praktickými zkušenostmi. V létě 1961 přešla na jiný projekt a jako svého nástupce najala a vyškolila Ellen Fetterovou.

Projekt SAGEEdit

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

Co dělali, když jste přišli do této organizace jako začátečníci, bylo, že vám přidělili program, který nikdo nikdy nebyl schopen vyřešit nebo zprovoznit. 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 was her efforts on this project that made her a candidate for the position at NASA as the lead developer for Apollo flight software.

Draper LaboratoryEdit

Hamilton in 1969, standing next to listings of the software she and her MIT team produced for the Apollo project

Hamilton during her time as lead Apollo flight software designer

Hamilton then joined the Charles Stark Draper Laboratory at MIT, která pracovala na vesmírné misi Apollo. Hamiltonová byla původně najata jako programátorka pro tento proces, ale přešla k návrhům systémů. Nakonec měla na starosti veškerý software velitelského modulu, což byl veškerý software pro navigaci a navádění na přistání na Měsíci. Nakonec vedla tým, který se zasloužil o vývoj softwaru pro Apollo a Skylab. Hamiltonové tým byl zodpovědný za vývoj softwaru za letu, který zahrnoval algoritmy navržené různými vedoucími vědci pro velitelský modul Apolla, lunární modul a následný Skylab. Další část jejího týmu navrhla a vyvinula systémový software. Ten zahrnoval software pro detekci a obnovu chyb, jako jsou restarty a Display Interface Routines (známé také jako prioritní displeje), které Hamiltonová navrhla a vyvinula. Pracovala tak, aby získala praktické zkušenosti v době, kdy kurzy informatiky nebyly běžné a kurzy softwarového inženýrství neexistovaly. Hamiltonová působila také jako ředitelka oddělení softwarového inženýrství.

Mezi její odborné znalosti patří: návrh systémů a vývoj softwaru, modelování podniků a procesů, vývojové paradigma, formální jazyky pro modelování systémů, systémově orientované objekty pro modelování a vývoj systémů, automatizovaná prostředí životního cyklu, metody pro maximalizaci spolehlivosti a opakovaného použití softwaru, analýza domén, 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, techniky testování end-to-end a techniky řízení životního cyklu. Díky nim byl její kód neuvěřitelně spolehlivý, protože pomáhal programátorům identifikovat a opravit anomálie dříve, než se z nich staly závažné problémy.

Apollo programEdit

V jednom z kritických okamžiků mise Apollo 11 odvrátil řídicí počítač Apolla spolu s palubním letovým softwarem přerušení přistání na Měsíci. Tři minuty před dosednutím lunárního modulu na povrch Měsíce se spustilo několik počítačových alarmů. Palubní letový software tyto alarmy zachytil pomocí displejů „nikdy se nemělo stát“ a přerušil astronauty prioritním zobrazením alarmů.“ Právě na tuto situaci se Hamilton připravil již před lety:

Byla tu ještě jedna pojistka, na kterou Hamilton rád vzpomíná. Její inovace „prioritního displeje“ vytvořila domino riziko, že se astronaut a počítač vymknou synchronizaci právě ve chvíli, kdy na tom nejvíce záleží. Když se spustily alarmy a prioritní displeje nahradily ty běžné, skutečné přepnutí na nové programy za obrazovkami probíhalo „o krok pomaleji“, než by tomu bylo dnes.

Hamiltonová o tom dlouho přemýšlela. Znamenalo to, že pokud by Aldrin například stiskl tlačítko na prioritním displeji příliš rychle, mohl by stále dostat „normální“ odpověď. Její řešení: Při zobrazení prioritního displeje nejprve napočítejte do pěti.

Podle některých tvrzení nechali astronauti nedopatřením zapnutý spínač radaru pro setkání, což způsobilo spuštění těchto alarmů (zda radar nechali astronauti zapnutý nedopatřením, zpochybňuje Robert Wills z Národního muzea výpočetní techniky). Počítač byl přetížen přerušeními způsobenými nesprávně rozfázovaným napájením setkávacího radaru přistávacího modulu. Alarmy programu signalizovaly „výkonné přetečení“, což znamenalo, ž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í exekutiva navržená J. Halcombe Laningem, použil Hamiltonův tým k vývoji asynchronního letového softwaru:

Díky technikám detekce a obnovy chyb letového softwaru, které zahrnovaly jeho přístup k restartu celého systému „kill and recompute“ z „bezpečného místa“ až po techniky snapshotu a rollbacku, bylo možné vytvořit rutiny rozhraní zobrazení (AKA prioritní zobrazení) spolu s jeho schopnostmi člověka ve smyčce, aby bylo možné v případě nouze přerušit normální zobrazení mise astronautů prioritním zobrazením kritických alarmů. To záviselo na tom, že jsme 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 ostatnímu, co se děje.

Hamiltonovy prioritní displeje alarmů přerušovaly normální displeje astronautů, aby je varovaly, že došlo k mimořádné události, a „daly astronautům možnost rozhodnout se, zda přistát, nebo nepřistát“. Jack Garman, počítačový inženýr NASA v řídicím středisku mise, rozpoznal význam chyb, které byly astronautům prezentovány prioritními displeji, a vykřikl: „Jdi, jdi!“ a oni pokračovali. Paul Curto, vedoucí technolog, který Hamiltona nominoval na cenu NASA Space Act Award, označil Hamiltonovu práci za „základ pro návrh ultra spolehlivého softwaru“.

Hamilton později o incidentu napsal:

Počítač (nebo spíše software v něm) byl dost chytrý na to, aby rozpoznal, že se po něm chce více úkolů, než by měl plnit. Vyslal tedy alarm, který pro astronauta znamenal: „Jsem přetížen více úkoly, než bych měl v tuto chvíli vykonávat, a ponechám si jen ty důležitější“; tj. ty, které jsou potřebné pro přistání … Ve skutečnosti byl počítač naprogramován tak, aby dokázal víc než jen rozpoznat chybové stavy. Do softwaru byla začleněna kompletní sada programů pro obnovu. Činnost softwaru v tomto případě spočívala v odstranění úloh s nižší prioritou a obnovení těch důležitějších … Kdyby počítač tento problém nerozpoznal a neprovedl obnovovací akci, pochybuji, že by Apollo 11 bylo tak úspěšné, jak bylo přistání na Měsíci.

– Dopis od Margaret H. Hamiltonové, ředitelky programování letového počítače Apolla MIT Draper Laboratory, Cambridge, Massachusetts, s názvem „Computer Got Loaded“, zveřejněný v časopise Datamation, 1. března 1971

BusinessesEdit

V roce 1976 Hamiltonová spolu se Saydeanem Zeldinem založila společnost Higher Order Software (HOS), aby dále rozvíjela myšlenky o prevenci chyb a odolnosti proti chybám, které vyplynuly z jejich zkušeností z MIT při práci na programu Apollo. Na základě metodiky HOS, kterou vyvinuli na MIT, vytvořili produkt s názvem USE.IT. Úspěšně jej použili 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 integrované počítačem podporované výroby (ICAM). V roce 1980 publikoval britsko-izraelský informatik David Harel návrh strukturovaného programovacího jazyka odvozeného z HOS z hlediska a/nebo dílčích cílů. Jiní použili HOS k formalizaci sémantiky lingvistických kvantifikátorů a k formalizaci návrhu spolehlivých vestavěných systémů reálného času.

Hamilton byl výkonným ředitelem HOS do roku 1984 a v roce 1985 společnost opustil. V březnu 1986 založila společnost Hamilton Technologies, Inc. v Cambridge ve státě Massachusetts. Společnost vznikla kolem jazyka Universal Systems Language (USL) a s ním spojeného automatizovaného prostředí 001 Tool Suite, založeného na jejím paradigmatu vývoje před skutečností pro návrh systémů a vývoj softwaru.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.