Margaret Hamilton (inginer software)

În Boston, intenționa inițial să se înscrie la studii postuniversitare de matematică abstractă la Brandeis. Cu toate acestea, în vara anului 1959, Hamilton a început să lucreze pentru Edward Norton Lorenz, în cadrul departamentului de meteorologie de la MIT. Ea a dezvoltat software pentru prezicerea vremii, programând pe calculatoarele LGP-30 și PDP-1 în cadrul Proiectului MAC al lui Marvin Minsky. Munca ei a contribuit la publicațiile lui Lorenz despre teoria haosului. La acea vreme, știința calculatoarelor și ingineria software nu erau încă discipline consacrate; în schimb, programatorii învățau la locul de muncă, cu experiență practică. Ea s-a mutat la un alt proiect în vara anului 1961 și a angajat-o și instruit-o pe Ellen Fetter pentru a o înlocui.

Proiectul SAGEEdit

Între 1961 și 1963, Hamilton a lucrat la Proiectul Semi-Automatic Ground Environment (SAGE) de la Laboratorul Lincoln al MIT, unde a fost unul dintre programatorii care au scris software-ul pentru prototipul computerului AN/FSQ-7 (XD-1), folosit de Forțele Aeriene ale SUA pentru a căuta aeronave posibil neprietenoase. De asemenea, a scris software pentru un proiect de urmărire a sateliților la Laboratoarele de cercetare Cambridge ale Forțelor Aeriene. Proiectul SAGE a fost o extensie a Proiectului Whirlwind, inițiat de MIT pentru a crea un sistem informatic care să poată prezice sistemele meteorologice și să le urmărească mișcările cu ajutorul simulatoarelor. În scurt timp, SAGE a fost dezvoltat pentru uz militar în domeniul apărării antiaeriene. Hamilton a declarat:

Ce obișnuiau să facă atunci când intrai în această organizație ca începător, era să îți atribuie acest program pe care nimeni nu reușea să îl înțeleagă sau să îl facă să funcționeze. 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, care a lucrat la misiunea spațială Apollo. Hamilton a fost angajat inițial ca programator pentru acest proces, dar a trecut la proiectarea sistemelor. În cele din urmă, ea s-a ocupat de tot software-ul modulului de comandă, care era tot software-ul de navigație și de ghidare a aterizării lunare. În cele din urmă, ea a condus o echipă căreia i s-a atribuit dezvoltarea software-ului pentru Apollo și Skylab. Echipa lui Hamilton a fost responsabilă pentru dezvoltarea software-ului de zbor, care includea algoritmi concepuți de diverși oameni de știință seniori pentru modulul de comandă Apollo, modulul de aterizare pe Lună și ulterior Skylab. O altă parte a echipei sale a proiectat și dezvoltat software-ul sistemelor. Acesta includea software-ul de detectare și recuperare a erorilor, cum ar fi repornirile și rutinele de interfață de afișare (cunoscute și sub numele de afișaje prioritare), pe care Hamilton le-a proiectat și dezvoltat. Ea a lucrat pentru a dobândi experiență practică într-o perioadă în care cursurile de informatică erau puțin frecvente, iar cursuri de inginerie software nu existau. Hamilton a ocupat, de asemenea, funcția de director al diviziei de inginerie software.

Domeniile sale de expertiză includ: proiectarea sistemelor și dezvoltarea de software, modelarea întreprinderii și a proceselor, paradigma de dezvoltare, limbaje formale de modelare a sistemelor, obiecte orientate pe sistem pentru modelarea și dezvoltarea sistemelor, medii automatizate de ciclu de viață, metode pentru maximizarea fiabilității și reutilizării software-ului, analiza domeniului, corectitudinea prin proprietăți de limbaj încorporate, tehnici de arhitectură deschisă pentru sisteme robuste, automatizarea întregului ciclu de viață, asigurarea calității, integrarea perfectă, tehnici de detectare și recuperare a erorilor, sisteme de interfață om-mașină, sisteme de operare, tehnici de testare de la un capăt la altul și tehnici de gestionare a ciclului de viață. Acestea au făcut ca codul ei să fie incredibil de fiabil, deoarece i-au ajutat pe programatori să identifice și să rezolve anomaliile înainte ca acestea să devină probleme majore.

Programul ApolloEdit

În unul dintre momentele critice ale misiunii Apollo 11, computerul de ghidare Apollo, împreună cu software-ul de zbor de la bord, a evitat o întrerupere a aterizării pe Lună. Cu trei minute înainte ca modulul de aselenizare să atingă suprafața Lunii, s-au declanșat mai multe alarme ale computerului. Software-ul de zbor de la bord a captat aceste alarme cu ajutorul afișajelor „never supposed to happen”, întrerupând astronauții cu afișaje de alarmă prioritare.” Hamilton se pregătise exact pentru această situație cu ani înainte:

A mai existat o altă siguranță pe care lui Hamilton îi place să și-o amintească. Inovația sa privind „afișajul prioritar” crease un risc în lanț ca astronautul și computerul să nu se sincronizeze exact atunci când era cel mai important. Pe măsură ce alarmele se declanșau și afișajele prioritare le înlocuiau pe cele normale, trecerea efectivă la noile programe din spatele ecranelor se întâmpla „cu un pas mai lent” decât ar fi făcut-o astăzi.

Hamilton se gândise îndelung la acest lucru. Aceasta însemna că, dacă Aldrin, să zicem, apăsase prea repede un buton de pe ecranul prioritar, ar fi putut primi totuși un răspuns „normal”. Soluția ei: când vedeți un afișaj de prioritate, numărați mai întâi până la cinci.

Potrivit unor relatări, astronauții au lăsat din greșeală comutatorul radarului de întâlnire pornit, ceea ce a provocat declanșarea acestor alarme (dacă radarul a fost lăsat pornit din greșeală de către astronauți este contestat de Robert Wills de la National Museum of Computing). Calculatorul a fost suprasolicitat de întreruperi cauzate de alimentarea incorectă a radarului de întâlnire al modulului de aterizare. Alarmele programului indicau „depășiri de execuție”, ceea ce înseamnă că computerul de ghidare nu a putut finaliza toate sarcinile sale în timp real și a trebuit să amâne unele dintre ele. Executivul asincron conceput de J. Halcombe Laning a fost folosit de echipa lui Hamilton pentru a dezvolta un software de zbor asincron:

Din cauza tehnicilor de detectare a erorilor și de recuperare a software-ului de zbor, care includeau abordarea de repornire „kill and recompute” la nivelul întregului sistem, dintr-un „loc sigur”, până la tehnicile sale de snapshot și rollback, rutele de interfață de afișare (denumite și afișaje prioritare), împreună cu capacitățile sale „man-in-the-loop”, au putut fi create pentru a avea capacitatea de a întrerupe afișajele normale ale misiunii astronauților cu afișaje prioritare ale alarmelor critice în caz de urgență. Acest lucru a depins de atribuirea de către noi a unei priorități unice fiecărui proces din software pentru a ne asigura că toate evenimentele sale vor avea loc în ordinea corectă și la momentul potrivit în raport cu tot ceea ce se întâmplă.

Afișajele prioritare de alarmă ale lui Hamilton au întrerupt afișajele normale ale astronauților pentru a-i avertiza că există o situație de urgență „oferindu-le astronauților o decizie de a merge/nu merge (de a ateriza sau nu)”. Jack Garman, un inginer informatician NASA din cadrul controlului misiunii, a recunoscut semnificația erorilor care le erau prezentate astronauților de către afișajele prioritare și a strigat: „Hai, hai!”, iar aceștia au continuat. Paul Curto, tehnologul senior care l-a nominalizat pe Hamilton pentru un premiu NASA Space Act Award, a numit munca lui Hamilton „fundația pentru proiectarea de software ultrafiabil”.

Hamilton a scris mai târziu despre incident:

Computerul (sau mai degrabă software-ul din el) a fost suficient de inteligent pentru a recunoaște că i se cerea să îndeplinească mai multe sarcini decât ar fi trebuit să îndeplinească. Apoi a trimis o alarmă, ceea ce a însemnat pentru astronaut: „Sunt supraîncărcat cu mai multe sarcini decât ar trebui să fac în acest moment și voi păstra doar cele mai importante sarcini”; adică cele necesare pentru aterizare … De fapt, computerul a fost programat să facă mai mult decât să recunoască condițiile de eroare. Un set complet de programe de recuperare a fost încorporat în software. Acțiunea software-ului, în acest caz, a fost de a elimina sarcinile cu prioritate mai mică și de a le restabili pe cele mai importante … Dacă computerul nu ar fi recunoscut această problemă și nu ar fi întreprins acțiuni de recuperare, mă îndoiesc că Apollo 11 ar fi avut succesul pe care l-a avut aterizarea pe Lună.

– Scrisoare de la Margaret H. Hamilton, director al programării calculatoarelor de zbor Apollo MIT Draper Laboratory, Cambridge, Massachusetts, intitulată „Computer Got Loaded”, publicată în Datamation, 1 martie 1971

BusinessesEdit

În 1976, Hamilton a co-fondat împreună cu Saydean Zeldin o companie numită Higher Order Software (HOS) pentru a dezvolta în continuare ideile despre prevenirea erorilor și toleranța la erori care au apărut în urma experienței lor de la MIT, lucrând la programul Apollo. Ei au creat un produs numit USE.IT, bazat pe metodologia HOS pe care au dezvoltat-o la MIT. Acesta a fost utilizat cu succes în numeroase programe guvernamentale, inclusiv într-un proiect de formalizare și implementare a C-IDEF, o versiune automatizată a IDEF, un limbaj de modelare dezvoltat de U.S. Air Force în cadrul proiectului Integrated Computer-Aided Manufacturing (ICAM). În 1980, informaticianul britanic-israelian David Harel a publicat o propunere pentru un limbaj de programare structurat derivat din HOS din punctul de vedere al și/sau al subobiectivelor. Alții au folosit HOS pentru a formaliza semantica cuantificatorilor lingvistici și pentru a formaliza proiectarea de sisteme integrate fiabile în timp real.

Hamilton a fost directorul general al HOS până în 1984 și a părăsit compania în 1985. În martie 1986, a fondat Hamilton Technologies, Inc. în Cambridge, Massachusetts. Compania a fost dezvoltată în jurul Universal Systems Language (USL) și a mediului său automatizat asociat, 001 Tool Suite, bazat pe paradigma ei de dezvoltare înainte de fapte pentru proiectarea sistemelor și dezvoltarea de software.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.