# Margaret Hamilton (Informatikerin)

Margaret Hamilton geb. Heafield (* 17. August 1936 in Paoli, Indiana) ist eine US-amerikanische Informatikerin und Mathematikerin. Sie war Direktorin der Softwareentwicklungs-Abteilung des Instrumentation Laboratory (jetzt Draper Laboratory) am Massachusetts Institute of Technology (MIT), an dem die On-Board-Flugsoftware für den Apollo Guidance Computer entwickelt wurde.

## Leben

Margaret Heafield schloss 1954 die Hancock High School ab und erhielt 1958 ihren B.Sc. der Mathematik am Earlham College. Dort lernte sie den Chemiestudenten James Cox Hamilton (1937–2014) kennen, dessen Nachnamen sie bei ihrer Eheschließung annahm. Die gemeinsame Tochter Lauren Hamilton, eine Schauspielerin und Kamerafrau, wurde 1959 geboren. Mit der Absicht, einen Abschluss an der Brandeis University zu erlangen, zog sie nach Massachusetts, nahm aber stattdessen eine Stelle als Softwareentwicklerin am MIT an.
Von 1976 bis 1984 war Hamilton Geschäftsführerin von Higher Order Software (HOS), einem Unternehmen, das sie mitgegründet hatte. 1986 gründete sie in Cambridge, Massachusetts, Hamilton Technologies, Inc. und war Vorstandsvorsitzende des Unternehmens. Die Arbeit des Unternehmens basierte auf der Universal Systems Language, die auf ihrem Paradigma für System- und Softwaredesign „Entwicklung vor dem Bedarf“ („development before the fact“) basiert.

### NASA

Bei der NASA war Hamilton dafür verantwortlich, die On-Board-Flugsoftware zu entwickeln, die notwendig war, um zum Mond und zurück zu navigieren sowie auf dem Mond zu landen. Die Software wurde danach während weiterer Raumfahrtprogramme eingesetzt, unter anderem bei der Weltraumstation Skylab. Sie erwarb praktische Erfahrungen in der Informatik und in der Softwareentwicklung, noch bevor es entsprechende Ausbildungen gab.
Dabei entwickelte sie innovative Ansätze in den Bereichen der Systemarchitektur, der Softwareentwicklung, Geschäfts- und Prozessmodellierung, Fehlervermeidung von Entwicklungsparadigmen, formalen System- und Softwaremodellierungs-Sprachen, systemorientierten Ansätzen zur Systemmodellierung und -entwicklung, automatisierten Laufzeit-Umgebungen, Methoden um die Zuverlässigkeit und Wiederverwendbarkeit von Software zu maximieren, Problemanalyse, dem Überprüfen der Korrektheit von Spracheigenschaften, Techniken für offene Architekturen stabiler Systeme, vollständige Automatisierung des Lebenszyklus, Qualitätssicherung, der nahtlosen Integration, verteilten Prozesssystemen, Fehlererkennung und -behebung, Mensch-Maschine-Schnittstellen, Betriebssysteme, Ende-zu-Ende-Test-Techniken und dem Management von Software über deren Lebenszyklus.
Auf dieser Basis entwickelte sie Konzepte für asynchrone Software, prioritätsgesteuerte Aufgabenabarbeitung und der „man-in-the-loop“ Entscheidungsfindung, die die Grundlage moderner, äußerst verlässlicher Softwarearchitektur darstellt.

### Apollo 11

Die Entwicklungen Hamiltons und ihres Teams am MIT verhinderten 1969 den Abbruch der Apollo-11-Mondlandung. Drei Minuten, bevor die Landefähre die Mondoberfläche erreichte, wurden mehrere Computerwarnungen ausgelöst. Der Computer wurde von den eingehenden Daten überlastet, weil das für die Landung nicht erforderliche Rendezvous-Radar-System einen Zähler aktualisierte, was unnötig Rechenzeit verbrauchte. Aufgrund der stabilen Architektur (Fixed-priority pre-emptive scheduling) konnte der Computer dennoch weiterarbeiten, da die Apollo-Flugsoftware derart entwickelt wurde, dass wichtige Aufgaben, wie etwa die kritischen für die Landung, weniger wichtige Aufgaben unterbrechen konnten. Ursprünglich wurde das Problem einer fehlerhaften Checkliste und des ungeplanten Aktivierens des Radars der Besatzung zugeschrieben.
   „Aufgrund eines Fehlers in der Checkliste wurde der Schalter für das Rendezvous-Radar in die falsche Position gebracht. Dadurch wurden falsche Signale an den Computer gesendet. In der Folge musste der Computer seine normalen Funktionen für die Landung ausführen und erhielt gleichzeitig zusätzlich sinnlose Daten, deren Verarbeitung bis zu 15 % seiner Kapazität beanspruchte. Der Computer (bzw. vielmehr die Software in ihm), war schlau genug zu erkennen, dass mehr Arbeit von ihm verlangt wurde, als er ausführen konnte. Er löste daher einen Alarm aus, der dem Astronauten sagen sollte: ‚Ich bin durch Aufgaben überlastet, die ich jetzt nicht ausführen sollte, und ich werde mich nur auf die wichtigen Aufgaben konzentrieren,‘ also die, die für die Landung benötigt werden. […] Tatsächlich war der Computer programmiert, mehr zu tun, als nur den Fehler zu erkennen: In der Software befand sich ein ganzer Satz an Rettungsprogrammen. In diesem Fall reagierte er damit, die weniger wichtigen Aufgaben abzubrechen und die wichtigeren wieder zum Zug kommen zu lassen. […] Hätte der Computer das Problem nicht erkannt und entsprechend reagiert, dann bezweifle ich, dass Apollo 11 die erfolgreiche Mondlandung geworden wäre, die sie war.“
Eine erneute Untersuchung kam 2005 zu dem Schluss, dass ein Fehler im Design der Hardware des Rendezvous-Radars den Computer mit falschen Informationen versorgte, obwohl es sich im Stand-By-Modus befand.

## Softwareentwicklung

Hamilton popularisierte den Begriff Software-Engineering. In diesem Bereich entwickelte sie Konzepte zu asynchroner Software, prioritätsgesteuerter Ausführung, Ende-zu-Ende-Tests und Man-in-the-loop-Entscheidungsfähigkeit, die durch Prioritätsanzeigen später die Grundlage besonders zuverlässiger Softwarearchitektur wurde.
Das Umfeld ihrer Arbeit war davon geprägt, dass es in jener Zeit noch keine Ausbildungsrichtungen für Informatik oder Softwareentwicklung gab. Gelernt wurde durch praktische Erfahrung.

## Auszeichnungen

1986 wurde Hamilton von der Association for Women in Computing (AWC) der Augusta Ada Lovelace Award verliehen.
2003 zeichnete man sie für ihren wissenschaftlichen und technischen Anteil am Gelingen des Apollo-Programms mit dem NASA Exceptional Space Act Award aus. Der Preis war mit 37.200 US-Dollar dotiert, der höchsten Summe, die die NASA bis dahin an einen einzelnen Preisträger ausgezahlt hat.
Im November 2016 verlieh ihr Präsident Barack Obama die Presidential Medal of Freedom. 2017 wurde sie Fellow des Computer History Museum.
Im Jahr 2018 wurde ihr die Ehrendoktorwürde der Polytechnischen Universität von Katalonien verliehen.

## Veröffentlichungen

Margaret Hamilton hat 130 Artikel und Berichte über die 60 Projekte und die sechs größten Programme veröffentlicht, an denen sie beteiligt war. Eine Auswahl:
* M. Hamilton, S. Zeldin (1976) „Higher order software—A methodology for defining software“ IEEE Transactions on Software Engineering, vol. SE-2, no. 1, Mar. 1976
* M. Hamilton (1994), „Inside Development Before the Fact,“ cover story, Editorial Supplement, 8ES-24ES. Electronic Design, Apr. 1994
* M. Hamilton, W. R. Hackler (2004), Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles (revised dec-29-04), DAAAE30-02-D-1020 and DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004
* M. H. Hamilton and W.R. Hackler (2007), „Universal Systems Language for Preventative Systems Engineering,“ Proc. 5th Ann. Conf. Systems Eng. Res. (CSER), Stevens Institute of Technology, Hoboken, NJ. Mar. 14-16, 2007, paper #36