Margaret Hamilton est une informaticienne et ingénieure américaine pionnière du génie logiciel. Elle a dirigé l'équipe qui a développé le logiciel de navigation embarqué des missions Apollo, contribuant directement à l'alunissage de 1969. Elle est considérée comme l'une des fondatrices du génie logiciel en tant que discipline.
Margaret Hamilton(1936 — ?)
Margaret Hamilton
États-Unis
8 min de lecture
Questions fréquentes
Faits marquants
- Née en 1936 à Paoli, Indiana, elle étudie les mathématiques au Earlham College
- À partir de 1961, elle intègre le MIT et travaille pour la NASA sur le programme Apollo
- En 1969, son logiciel de navigation est essentiel au succès d'Apollo 11 : il gère une alarme critique et permet l'alunissage
- Elle forge le terme 'software engineering' pour donner à la discipline ses lettres de noblesse face au hardware
- En 2016, elle reçoit la Médaille présidentielle de la Liberté des mains de Barack Obama
Œuvres & réalisations
Ensemble des logiciels embarqués dans les vaisseaux Apollo, conçus sous la direction de Hamilton. Ils géraient la navigation, l'alunissage, les urgences et le retour sur Terre pour toutes les missions lunaires.
Fonctionnalité critique développée par Hamilton malgré les réticences initiales de la NASA, qui permit de sauver Apollo 8 et de mener à bien l'alunissage d'Apollo 11 face à l'alarme 1202.
Méthode formelle de développement logiciel fondée sur des axiomes mathématiques, visant à prévenir les erreurs dès la conception. Hamilton fonda sa société pour commercialiser et diffuser cette approche.
Langage de modélisation et environnement de développement logiciel créé par Hamilton, poursuivant sa vision d'un génie logiciel rigoureux et préventif basé sur des fondements mathématiques.
Hamilton est créditée d'avoir inventé et popularisé l'expression 'software engineering', imposant l'idée que le développement logiciel doit répondre aux mêmes exigences de fiabilité que l'ingénierie traditionnelle.
Anecdotes
Margaret Hamilton avait l'habitude d'emmener sa fille Lauren au laboratoire du MIT les nuits et week-ends pendant qu'elle travaillait sur le logiciel d'Apollo. Un jour, Lauren appuya sur une touche qui simulait un crash du programme de navigation en vol. Hamilton voulut ajouter une protection contre cette erreur, mais la NASA refusa, estimant que les astronautes ne feraient jamais cette faute. Lors d'Apollo 8, l'astronaute Jim Lovell effaça exactement ces données par inadvertance, mais le programme de correction qu'Hamilton avait quand même développé permit de sauver la mission.
Lors de l'alunissage d'Apollo 11 en juillet 1969, à seulement trois minutes du sol lunaire, les ordinateurs de bord commencèrent à afficher des alarmes critiques (code 1202). C'est le logiciel conçu par Hamilton qui détecta la surcharge du processeur et décida automatiquement de prioriser les tâches essentielles à l'atterrissage, permettant à Neil Armstrong de poser le module. Sans cette décision logicielle autonome, la mission aurait dû être abandonnée.
Margaret Hamilton est à l'origine du terme 'software engineering' (génie logiciel). Dans les années 1960, la programmation n'était pas considérée comme une vraie discipline d'ingénierie. Elle utilisa cette expression pour défendre la rigueur et la fiabilité que son équipe apportait au développement logiciel, qui contrôlait des vies humaines. Ce terme, d'abord accueilli avec scepticisme, est aujourd'hui universel dans l'industrie informatique.
En 2016, Barack Obama lui remit la Médaille présidentielle de la Liberté, la plus haute distinction civile américaine. La photo symbolique qui circula sur internet à cette occasion montrait Hamilton debout à côté d'une pile de documents imprimés représentant le code source du logiciel Apollo, aussi haute qu'elle. Cette image devint virale et fit redécouvrir son rôle crucial à des millions de personnes qui ignoraient son nom.
Hamilton dirigeait une équipe majoritairement féminine au MIT, à une époque où les femmes étaient très peu représentées dans les sciences et l'ingénierie. Elle dut constamment prouver la fiabilité de son logiciel face à des ingénieurs en aéronautique sceptiques. Elle imposa des normes de tests et de documentation si rigoureuses que le logiciel Apollo ne connut aucun bug critique en vol lors des 17 missions du programme.
Sources primaires
The software detects errors and recovers from them in real time, allowing the mission to continue even in the presence of hardware or software failures. Priority scheduling ensures that critical tasks are always executed first.
The 1202 alarm indicated that the computer was being asked to do more than it could handle in the time allotted. The system automatically discarded lower-priority tasks and focused on those necessary for landing.
Margaret Hamilton's work on the Apollo program and her coinage of the term 'software engineering' helped pioneer the field. Her contributions transformed the way we think about computing.
The guidance software must operate reliably under extreme conditions, with no possibility of ground intervention. Fault detection and autonomous error correction are therefore fundamental design requirements.
Lieux clés
Lieu de travail principal de Hamilton pendant toutes les années Apollo. C'est ici qu'elle dirigea l'équipe de développement du logiciel de guidage, avec des équipes travaillant souvent la nuit.
Base de lancement des missions Apollo. Le logiciel développé par Hamilton y était chargé sur les vaisseaux avant chaque décollage.
Salle d'où les ingénieurs de la NASA supervisaient les vols en temps réel. Lors de l'alarme 1202 d'Apollo 11, les équipes au sol s'y coordonnèrent avec le logiciel d'Hamilton.
Ville natale de Margaret Hamilton, petite ville du Midwest américain où elle grandit avant de poursuivre ses études de mathématiques.
Site d'alunissage d'Apollo 11, où le logiciel de Hamilton permis à Neil Armstrong et Buzz Aldrin de se poser en sécurité le 20 juillet 1969.
Liens externes & ressources
Références
Œuvres
Logiciel de guidage et navigation Apollo (AGC Software)
1963–1972
Système de détection et récupération d'erreurs en vol
1968
Higher Order Software (HOS) — méthodologie USE.IT
1976
Hamilton Technologies — Universal Systems Language (USL)
1986
Formalisation du terme 'Software Engineering'
Années 1960





