Margaret Hamilton (Software-Ingenieurin) - Margaret Hamilton (software engineer)

Margaret Hamilton
Margaret Hamilton 1995.jpg
Hamilton im Jahr 1995
Geboren
Margaret Elaine Heafield

( 1936-08-17 )17. August 1936 (85 Jahre)
Ausbildung Earlham College
University of Michigan
Beruf Softwareentwickler
Ehepartner
Kinder 1 Tochter, Lauren Hamilton
Verwandte James Cox Chambers (ehemaliger Schwiegersohn)
Auszeichnungen Freiheitsmedaille des Präsidenten

Margaret Heafield Hamilton (geboren 17. August 1936) ist ein amerikanischer Informatiker , Systemingenieur und Unternehmer. Sie war Direktorin der Software Engineering Division des MIT Instrumentation Laboratory , die die Bord-Flugsoftware für das Apollo-Programm der NASA entwickelte . Später gründete sie zwei Softwareunternehmen – Higher Order Software im Jahr 1976 und Hamilton Technologies im Jahr 1986, beide in Cambridge, Massachusetts .

Hamilton hat mehr als 130 Aufsätze, Proceedings und Berichte über sechzig Projekte und sechs große Programme veröffentlicht. Sie gehört zu den Persönlichkeiten, die den Begriff „ Software Engineering “ geprägt haben.

Am 22. November 2016 erhielt Hamilton die Presidential Medal of Freedom von Präsident Barack Obama für ihre Arbeit, die zur Entwicklung einer Bord-Flugsoftware für die Apollo-Mond-Missionen der NASA führte.

Persönliches Leben und Bildung

Margaret Elaine Heafield wurde am 17. August 1936 in Paoli, Indiana , als Tochter von Kenneth Heafield und Ruth Esther Heafield ( geb.  Partington) geboren; sie hat zwei jüngere Geschwister: David und Kathryn. Die Familie zog später nach Michigan , wo Margaret 1954 die Hancock High School abschloss. 1955 studierte sie Mathematik an der University of Michigan, bevor sie zum Earlham College wechselte, wo ihre Mutter Studentin war; 1958 erwarb sie einen BA in Mathematik mit Nebenfach Philosophie. Sie zitiert Florence Long, die Leiterin der mathematischen Fakultät in Earlham, als hilfreich bei ihrem Wunsch, abstrakte Mathematik zu verfolgen und Mathematikprofessorin zu werden. Sie hatte andere Inspirationen, darunter ihren Vater (ein Philosoph und Dichter) und ihren Großvater (ein Schulleiter und Quäker- Minister). Sie sagt, diese Männer hätten sie dazu inspiriert, ein Nebenfach Philosophie in ihr Studium aufzunehmen.

Während seiner Zeit in Earlham lernte Hamilton ihren ersten Ehemann James Cox Hamilton kennen, einen Senior mit Hauptfach Chemie. Sie heirateten am 15. Juni 1958, im Sommer nach ihrem Abschluss in Earlham. Sie unterrichtete kurz Mathematik und Französisch an einer öffentlichen Schule in Boston, Indiana , während ihr Mann seinen Bachelor in Earlham machte. Das Paar zog dann nach Boston , Massachusetts , wo James später seinen Master in Chemie an der Brandeis University machte ; sie hatten eine Tochter, Lauren, geboren am 10. November 1959. James machte 1963 seinen Abschluss an der Harvard Law School ; er gründete eine Anwaltskanzlei in Boston und war später auch im Vorstand der American Civil Liberties Union . Das Paar ließ sich 1967 scheiden und Margaret heiratete zwei Jahre später Dan Lickly .

Karriere

In Boston wollte sie sich zunächst für ein Aufbaustudium in abstrakter Mathematik bei Brandeis einschreiben . Im Sommer 1959 begann Hamilton jedoch für Edward Norton Lorenz in der Meteorologie- Abteilung des MIT zu arbeiten . Sie entwickelte Software Wetter für die Vorhersage, die Programmierung auf der LGP-30 und den PDP-1 - Computer an Marvin Minsky ‚s Projekt MAC . Ihre Arbeit trug zu Lorenz' Veröffentlichungen zur Chaostheorie bei . Zu der Zeit, Informatik und Software - Engineering wurden noch nicht Disziplinen etabliert; Stattdessen lernten Programmierer bei der Arbeit mit praktischer Erfahrung. Im Sommer 1961 wechselte sie zu einem anderen Projekt und stellte Ellen Fetter als ihren Ersatz ein und trainierte sie.

SAGE-Projekt

Von 1961 bis 1963 arbeitete Hamilton am Semi-Automatic Ground Environment (SAGE) Project am MIT Lincoln Lab , wo sie eine der Programmierer war, die Software für den Prototyp des AN/FSQ-7-Computers (den XD-1) schrieb. von der US Air Force verwendet , um nach möglicherweise unfreundlichen Flugzeugen zu suchen. Sie schrieb auch Software für ein Satellitenverfolgungsprojekt in den Cambridge Research Laboratories der Air Force . Das SAGE-Projekt war eine Erweiterung des Projekts Whirlwind , das vom MIT gestartet wurde , um ein Computersystem zu entwickeln, das Wettersysteme vorhersagen und ihre Bewegungen mit Simulatoren verfolgen konnte. SAGE wurde bald für den militärischen Einsatz in der Flugabwehr entwickelt. Hamilton sagte:

Als Sie als Anfänger in diese Organisation kamen, haben sie Ihnen dieses Programm zugewiesen, das niemand jemals herausfinden oder ausführen konnte. Als ich der Anfänger war, haben sie es mir auch gegeben. Und was passiert war, war, dass es sich um eine knifflige Programmierung handelte, und die Person, die es schrieb, freute sich darüber, dass alle seine Kommentare auf Griechisch und Latein verfasst waren. Also wurde mir dieses Programm zugewiesen und ich habe es tatsächlich zum Laufen gebracht. Es druckte sogar seine Antworten auf Latein und Griechisch aus. Ich war der Erste, der es zum Laufen gebracht hat.

Ihre Bemühungen bei diesem Projekt machten sie zu einer Kandidatin für die Position bei der NASA als leitende Entwicklerin für Apollo-Flugsoftware.

Tuchlabor

Hamilton im Jahr 1969, neben Listen der Software, die sie und ihr MIT-Team für das Apollo-Projekt produzierten
Hamilton während ihrer Zeit als leitende Apollo-Flugsoftwaredesignerin

Hamilton trat dann dem Charles Stark Draper Laboratory am MIT bei, das an der Apollo Space Mission arbeitete . Hamilton wurde zunächst als Programmierer für diesen Prozess eingestellt, wechselte jedoch zu Systemdesigns. Schließlich war sie für die gesamte Command Module-Software verantwortlich, die die gesamte Software für die Navigation und die Landeführung auf dem Mond war. Schließlich leitete sie ein Team, dem die Entwicklung der Software für Apollo und Skylab zugeschrieben wurde . Hamiltons Team war für die Entwicklung der Bordsoftware verantwortlich, die Algorithmen enthielt, die von verschiedenen leitenden Wissenschaftlern für das Apollo-Kommandomodul, den Mondlander und das nachfolgende Skylab entwickelt wurden. Ein anderer Teil ihres Teams entwarf und entwickelte die Systemsoftware. Dazu gehörte Fehlererkennungs- und Wiederherstellungssoftware wie Neustarts und die Display Interface Routines (auch bekannt als Priority Displays), die Hamilton entworfen und entwickelt hat. Sie sammelte praktische Erfahrungen in einer Zeit, in der Informatik-Kurse selten waren und Software-Engineering-Kurse noch nicht existierten. Hamilton war auch Direktor der Software Engineering Division.

Ihre Fachgebiete umfassen: Systemdesign und Softwareentwicklung , Unternehmens- und Prozessmodellierung , Entwicklungsparadigma, formale Systemmodellierungssprachen , systemorientierte Objekte für die Systemmodellierung und -entwicklung, automatisierte Lebenszyklusumgebungen, Methoden zur Maximierung der Softwarezuverlässigkeit und -wiederverwendung , Domäne Analyse , Korrektheit durch eingebaute Spracheigenschaften, offene Architekturtechniken für robuste Systeme, vollständige Lebenszyklusautomatisierung, Qualitätssicherung , nahtlose Integration, Fehlererkennungs- und Wiederherstellungstechniken , Mensch-Maschine-Schnittstellensysteme , Betriebssysteme , End-to-End Testtechniken und Life-Cycle-Management-Techniken. Diese machten ihren Code unglaublich zuverlässig, weil sie Programmierern halfen, Anomalien zu erkennen und zu beheben, bevor sie zu größeren Problemen wurden.

Apollo-Programm

In einem der kritischen Momente der Apollo-11- Mission verhinderte der Apollo Guidance Computer zusammen mit der Bord-Flugsoftware einen Abbruch der Mondlandung. Drei Minuten bevor der Mondlander die Mondoberfläche erreichte, wurden mehrere Computeralarme ausgelöst. Die Flugsoftware an Bord erfasste diese Alarme mit den "Nie passieren sollen"-Anzeigen, die die Astronauten mit Prioritäts-Alarmanzeigen unterbrachen. Hamilton hatte sich Jahre zuvor auf genau diese Situation vorbereitet:

Es gab noch eine andere Ausfallsicherung, an die sich Hamilton gerne erinnert. Ihre Innovation "Prioritätsanzeige" hatte das Risiko geschaffen, dass Astronaut und Computer aus dem Takt geraten würden, wenn es am wichtigsten war. Als die Alarme losgingen und Prioritätsanzeigen die normalen ersetzten, geschah die eigentliche Umschaltung auf neue Programme hinter den Bildschirmen "einen Schritt langsamer" als heute.

Hamilton hatte lange und gründlich darüber nachgedacht. Es bedeutete, dass Aldrin, wenn er beispielsweise zu schnell auf eine Taste auf der Prioritätsanzeige drückte, möglicherweise immer noch eine "normale" Antwort erhielt. Ihre Lösung: Wenn Sie eine Prioritätsanzeige sehen, zählen Sie zuerst bis fünf.

Nach einigen Berichten hatten die Astronauten den Rendezvous-Radarschalter versehentlich eingeschaltet gelassen, wodurch diese Alarme ausgelöst wurden (ob das Radar von den Astronauten versehentlich eingeschaltet blieb, wird von Robert Wills mit dem National Museum of Computing bestritten ). Der Computer war mit Unterbrechungen überlastet, die durch eine falsch phasengesteuerte Stromversorgung des Rendezvous-Radars des Landers verursacht wurden . Die Programmalarme zeigten "Executive Overflows" an, was bedeutete, dass der Leitrechner nicht alle seine Aufgaben in Echtzeit erledigen konnte und einige davon verschieben musste. Die von J. Halcombe Laning entworfene asynchrone Exekutive wurde von Hamiltons Team verwendet, um asynchrone Flugsoftware zu entwickeln:

Aufgrund der Fehlererkennungs- und Wiederherstellungstechniken der Systemsoftware der Flugsoftware, die ihren systemweiten "Kill and Recompute"-Ansatz von einem "sicheren Ort" aus bis hin zu ihren Snapshot- und Rollback-Techniken umfassten, sind die Display Interface Routines (AKA die Prioritätsanzeigen) zusammen mit seinen Man-in-the-Loop-Fähigkeiten geschaffen werden, um im Notfall die normalen Missionsanzeigen der Astronauten mit Prioritätsanzeigen kritischer Alarme zu unterbrechen. Dies hing davon ab, dass wir jedem Prozess in der Software eine eindeutige Priorität zuweisen, um sicherzustellen, dass alle seine Ereignisse in der richtigen Reihenfolge und zum richtigen Zeitpunkt im Verhältnis zu allem anderen abliefen.

Hamiltons Prioritätsalarmanzeigen unterbrachen die normalen Anzeigen der Astronauten, um sie zu warnen, dass es einen Notfall gab, "den Astronauten eine Go/No-Go- Entscheidung zu geben (zu landen oder nicht zu landen)". Jack Garman , ein Computeringenieur der NASA in der Missionskontrolle, erkannte die Bedeutung der Fehler, die den Astronauten von den Prioritätsanzeigen angezeigt wurden, und rief: "Los, go!" und sie fuhren fort. Paul Curto, leitender Technologe, der Hamilton für einen NASA Space Act Award nominierte, nannte Hamiltons Arbeit "die Grundlage für ultrazuverlässiges Softwaredesign".

Hamilton schrieb später über den Vorfall:

Der Computer (oder besser gesagt die Software darin) war intelligent genug, um zu erkennen, dass er mehr Aufgaben ausführen sollte, als er ausführen sollte. Es sendete dann einen Alarm aus, der für den Astronauten bedeutete: „Ich bin mit mehr Aufgaben überlastet, als ich jetzt tun sollte, und ich werde nur die wichtigeren Aufgaben behalten“; dh die für die Landung benötigten ... Eigentlich war der Computer so programmiert, dass er mehr kann, als Fehlerzustände zu erkennen. Ein vollständiger Satz von Wiederherstellungsprogrammen wurde in die Software integriert. Die Aktion der Software bestand in diesem Fall darin, Aufgaben mit niedrigerer Priorität zu eliminieren und die wichtigeren wiederherzustellen ... Wenn der Computer dieses Problem nicht erkannt und Wiederherstellungsaktionen durchgeführt hätte, bezweifle ich, dass Apollo 11 der erfolgreiche Mond gewesen wäre Landung war es.

—  Brief von Margaret H. Hamilton, Direktorin des Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, mit dem Titel "Computer Got Loaded", veröffentlicht in Datamation , 1. März 1971

Unternehmen

1976 gründete Hamilton zusammen mit Saydean Zeldin ein Unternehmen namens Higher Order Software (HOS), um Ideen zur Fehlervermeidung und Fehlertoleranz weiterzuentwickeln, die aus ihrer Erfahrung am MIT bei der Arbeit am Apollo-Programm hervorgingen . Sie haben ein Produkt namens USE.IT entwickelt, das auf der HOS-Methodik basiert, die sie am MIT entwickelt haben. Es wurde erfolgreich in zahlreichen Regierungsprogrammen eingesetzt, darunter ein Projekt zur Formalisierung und Implementierung von C-IDEF, einer automatisierten Version von IDEF , einer Modellierungssprache, die von der US Air Force im Rahmen des Integrated Computer-Aided Manufacturing (ICAM)-Projekts entwickelt wurde. 1980 veröffentlichte der britisch-israelische Informatiker David Harel einen Vorschlag für eine von HOS abgeleitete strukturierte Programmiersprache aus Sicht und/oder Teilzielen. Andere haben HOS verwendet, um die Semantik linguistischer Quantoren zu formalisieren und den Entwurf zuverlässiger eingebetteter Echtzeitsysteme zu formalisieren.

Hamilton war bis 1984 CEO von HOS und verließ das Unternehmen 1985. Im März 1986 gründete sie Hamilton Technologies, Inc. in Cambridge, Massachusetts . Das Unternehmen wurde rund um die Universal Systems Language (USL) und die zugehörige automatisierte Umgebung, die 001 Tool Suite, basierend auf ihrem früheren Entwicklungsparadigma für Systemdesign und Softwareentwicklung entwickelt.

Erbe

Offizielles Foto für die NASA , 1989

Anthony Oettinger , Barry Boehm und Hamilton wird die Namensgebung der Disziplin „ Software Engineering “ zugeschrieben. Hamilton beschreibt, wie sie den Begriff "Software Engineering" erfunden hat:

Als ich zum ersten Mal auf den Begriff kam, hatte noch niemand davon gehört, zumindest in unserer Welt. Es war lange Zeit ein andauernder Scherz. Sie machten mich gerne über meine radikalen Ideen lustig. Es war ein denkwürdiger Tag, als einer der angesehensten Hardware-Gurus in einem Meeting allen erklärte, dass er mit mir übereinstimme, dass der Prozess der Softwareentwicklung ebenso wie die Hardware als Ingenieursdisziplin betrachtet werden sollte. Nicht wegen seiner Akzeptanz des neuen „Begriffs“ an sich, sondern weil wir seine und die Anerkennung der anderen im Raum als eigenständiges Ingenieurgebiet verdient hatten.

Als Hamilton während der frühen Apollo-Missionen anfing, den Begriff "Software Engineering" zu verwenden, wurde Softwareentwicklung im Vergleich zu anderen Ingenieurswissenschaften nicht ernst genommen und auch nicht als Wissenschaft angesehen. Hamilton ging es darum, die Softwareentwicklung als Ingenieurdisziplin zu legitimieren. Im Laufe der Zeit erlangte der Begriff „Software Engineering“ den gleichen Respekt wie jede andere technische Disziplin. Die Ausgabe September/Oktober 2018 von IEEE Software feiert das 50-jährige Jubiläum der Softwareentwicklung. Hamilton spricht über "Fehler" und wie sie ihre Arbeit in Bezug auf Software-Engineering beeinflusst haben und wie ihre Sprache, USL, verwendet werden könnte, um die Mehrheit der "Fehler" in einem System zu verhindern. In Wired schrieb Robert McMillan: "Am MIT half sie bei der Entwicklung der Grundprinzipien der Computerprogrammierung, während sie mit ihren Kollegen am Schreiben von Code für den weltweit ersten tragbaren Computer arbeitete." Hamiltons Innovationen gehen über die Leistung hinaus, eine wichtige Rolle dabei zu spielen, Menschen zum Mond zu bringen. Laut Wired ' s Karen Tegan Padir: „Sie, zusammen mit dem anderen frühen Programmierung Pionier, Cobol [ sic ] Erfinder Grace Hopper , verdienen auch enormen Kredit für die Unterstützung für mehr Frauen , die Tür zu öffnen , um zu betreten und in MINT - Bereichen wie Software erfolgreich ."

Im Jahr 2019, um 50 Jahre nach der Apollo-Landung zu feiern, beschloss Google, Hamilton eine Hommage zu erweisen. Die Spiegel im Werk Ivanpah wurden so konfiguriert, dass sie bei Mondlicht ein Bild von Hamilton und der Apollo 11 erzeugen.

Auszeichnungen

Barack Obama verleiht Hamilton 2016 die Presidential Medal of Freedom
Honoris Causa Zeremonie von Margaret Hamilton, 2018

Veröffentlichungen

  • Hamilton, M.; Zeldin, S. (März 1976). „Software höherer Ordnung – Eine Methodik zum Definieren von Software“. IEEE-Transaktionen zum Software-Engineering . SE-2 (1): 9–32. doi : 10.1109/TSE.1976.233798 . S2CID  7799553 .
  • Hamilton, M.; Zeldin, S. (1. Januar 1979). „Die Beziehung zwischen Design und Verifikation“. Zeitschrift für Systeme und Software . 1 : 29–56. doi : 10.1016/0164-1212(79)90004-9 .
  • Hamilton, M. (April 1994). "Innere Entwicklung vor der Tatsache" . (Titelstory). Besondere redaktionelle Beilage. 8ES-24ES. Elektronisches Design .
  • Hamilton, M. (Juni 1994). "001: Eine Umgebung für Systemtechnik und Softwareentwicklung über den gesamten Lebenszyklus" . (Titelstory). Besondere redaktionelle Beilage. 22ES-30ES. Elektronisches Design .
  • Hamilton, M.; Hackler, WR (2004). "Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles". (Überarbeitet am 29. Dezember 2004). DAAAE30-02-D-1020 und DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004.
  • Hamilton, M.; Hackler, WR (2007). " Universelle Systemsprache für präventive Systemtechnik ", Proc. 5. Ann. Konf. Systeme Eng. Res. (CSER), Stevens Institute of Technology, März 2007, Aufsatz #36.
  • Hamilton, M.; Hackler, WR (2007). „ Eine formale universelle Systemsemantik für SysML “. 17. Internationales Jahressymposium, INCOSE 2007, San Diego, CA, Juni 2007.
  • Hamilton, M.; Hackler, WR (2008). „ Universal Systems Language: Lessons Learned from Apollo “. IEEE-Computer , Dez. 2008.
  • Hamilton, MH (September 2018). „Was uns die Fehler sagen“ . IEEE-Software . 35 (5): 32–37. doi : 10.1109/MS.2018.290110447 . S2CID  52896962 .

Siehe auch

Verweise

Weiterlesen

  • Steafel, Eleanor (20. Juli 2019). "Eine Frau in einem Raum voller Männer". Das Telegraph-Magazin . London: Daily Telegraph plc. S. 56–59, 61. OCLC  69022829 .

Externe Links