Contexte et rôle au sein du programme Apollo

En 1965, Margaret Hamilton rejoint le Instrumentation Lab du MIT après avoir travaillé sur le projet SAGE (Semi‑Automatic Ground Environment) et sur des modèles de prévision météorologique avec Edward Lorenz. Son recrutement coïncide avec le contrat NASA pour développer le logiciel embarqué des missions Apollo. Dès 1968, elle devient assistante directrice du groupe chargé du Command and Service Module (CSM) et du Lunar Module (LM), supervisant plus de 400 ingénieurs et programmeurs.

Architecture du logiciel de vol Apollo

Le logiciel d’Apollo repose sur le ordinateur de guidage Apollo (AGC), un processeur de 2 kB de RAM et 36 kB de ROM. Hamilton organise le code en modules indépendants – navigation, guidage, contrôle d’attitude – afin de limiter les dépendances et faciliter les tests unitaires. Chaque module possède une table de priorité qui permet au système d’interrompre les tâches moins critiques en cas d’anomalie, un mécanisme précurseur du real‑time operating system (RTOS). Cette hiérarchisation a permis, lors de la mission Apollo 11, de réagir à des dépassements de seuils de capteurs sans interrompre le processus de descente.

Approche de la fiabilité logicielle

Consciente des risques d’une mission lunaire, Hamilton introduit le concept de software reliability en insistant sur la redondance et la vérification exhaustive. Elle impose des tests de simulation couvrant plus de 2 000 scénarios d’erreur, incluant des pannes de capteurs et des interruptions de communication. Le processus de asynchronous error handling repose sur des routines de récupération qui réinitialisent les sous‑systèmes tout en conservant l’état critique du vol. Cette méthodologie, documentée dans plus de 130 publications, a posé les bases de la discipline moderne du génie logiciel.

Héritage et influence sur l’ingénierie logicielle

Après le programme Apollo, Hamilton fonde Hamilton Technologies et continue de promouvoir les principes de fiabilité et de modularité dans les systèmes critiques. Son travail a été reconnu par la medaille présidentielle de la liberté en 2016, citation soulignant que son architecture logicielle a « permis à l’humanité de poser le pied sur la Lune ». Les concepts de priorité de tâche, de redondance logicielle et de tests de scénarios multiples sont aujourd’hui intégrés aux standards de l’industrie aérospatiale et aux systèmes embarqués critiques.