Margaret Elaine Hamilton (née Heafield, née le 17 août 1936) est une éminente informaticienne américaine. Elle a été directrice de la division de génie logiciel au laboratoire d'instrumentation du MIT, où son leadership a joué un rôle déterminant dans le développement du logiciel de vol embarqué pour l'ordinateur de guidage Apollo de la NASA, crucial pour le programme Apollo. Par la suite, elle a créé deux entreprises de logiciels : Higher Order Software en 1976 et Hamilton Technologies en 1986, toutes deux situées à Cambridge, Massachusetts.
Margaret Elaine Hamilton (née Heafield ; née le 17 août 1936) est une informaticienne américaine. Elle a dirigé la division de génie logiciel au laboratoire d'instrumentation du MIT, où elle a dirigé le développement du logiciel de vol embarqué pour l'ordinateur de guidage Apollo de la NASA pour le programme Apollo. Elle a ensuite fondé deux sociétés de logiciels, Higher Order Software en 1976 et Hamilton Technologies en 1986, toutes deux à Cambridge, Massachusetts.
Le vaste corpus de travaux de Hamilton comprend plus de 130 articles, actes et rapports publiés, ainsi que des contributions à environ soixante projets et six programmes importants. On lui attribue l'invention du terme « génie logiciel », en articulant son objectif comme suit : « J'ai commencé à utiliser le terme « génie logiciel » pour le distinguer du matériel et d'autres types d'ingénierie, tout en traitant chaque type d'ingénierie comme faisant partie du processus global d'ingénierie des systèmes. missions.
Petite enfance et formation
Margaret Elaine Heafield est née le 17 août 1936 à Paoli, Indiana, de Kenneth Heafield et Ruth Esther Heafield (née Partington). Par la suite, sa famille a déménagé dans le Michigan, où elle a terminé ses études secondaires à la Hancock High School en 1954.
Elle a commencé ses études en mathématiques à l'Université du Michigan en 1955, puis a été transférée au Earlham College, un établissement auparavant fréquenté par sa mère. En 1958, elle obtient un baccalauréat ès arts en mathématiques, complété par une mineure en philosophie. Elle attribue à Florence Long, qui a présidé le département de mathématiques d'Earlham, le mérite d'avoir favorisé son aspiration à poursuivre des mathématiques abstraites et une carrière de professeur de mathématiques.
Elle attribue sa décision d'incorporer une mineure en philosophie dans ses études universitaires à l'influence de son père, poète, et de son grand-père, directeur.
Carrière professionnelle
Au départ, alors qu'il était à Boston, Hamilton avait prévu de poursuivre des études supérieures en mathématiques abstraites à l'Université Brandeis. Cependant, au milieu de 1959, Hamilton commença à travailler chez Edward Norton Lorenz au sein du département de météorologie du Massachusetts Institute of Technology (MIT). Ses responsabilités comprenaient le développement de logiciels de prévision météorologique, en utilisant les ordinateurs LGP-30 et PDP-1 du projet MAC de Marvin Minsky. Ses contributions faisaient partie intégrante des publications ultérieures de Lorenz sur la théorie du chaos, un fait reconnu par Lorenz lui-même. À cette époque, l’informatique et le génie logiciel n’étaient pas encore officiellement établis en tant que disciplines académiques ; par conséquent, les programmeurs ont généralement acquis leurs compétences grâce à une expérience pratique sur le terrain. À l'été 1961, elle passa à un autre projet, embauchant et formant ensuite Ellen Fetter pour lui succéder.
Le projet SAGE
Entre 1961 et 1963, Hamilton a participé au projet SAGE (Semi-Automatic Ground Environment) au laboratoire Lincoln du MIT, en tant que programmeur responsable du développement du logiciel pour le prototype d'ordinateur AN/FSQ-7 (le XD-1), que l'US Air Force utilisait pour détecter les avions potentiellement hostiles. De plus, elle a développé un logiciel pour une initiative de suivi par satellite aux laboratoires de recherche de l'Air Force Cambridge. Le projet SAGE est né d'une extension du projet Whirlwind, une initiative du MIT visant à créer un système informatique capable de prédire les conditions météorologiques et de surveiller leurs trajectoires par simulation. SAGE a ensuite été adapté pour des applications militaires dans la défense aérienne anti-aérienne. Hamilton a raconté :
Ce qu'ils faisaient lorsque vous êtes arrivé dans cette organisation en tant que débutant, c'était vous assigner ce programme que personne n'était jamais capable de comprendre ou d'exécuter. Quand j'étais débutant, ils me l'ont donné aussi. Et ce qui s'est passé, c'est qu'il s'agissait d'une programmation délicate, et la personne qui l'a écrit était ravie du fait que tous ses commentaires étaient en grec et en latin. On m'a donc assigné ce programme et je l'ai fait fonctionner. Il a même imprimé ses réponses en latin et en grec. J'ai été le premier à le faire fonctionner.
Ses efforts réussis sur ce projet l'ont positionnée comme une candidate solide pour le rôle de développeur principal du logiciel de vol Apollo à la NASA.
Laboratoire d'instrumentation du MIT et développement informatique de guidage Apollo
En 1965, Margaret Hamilton a pris connaissance du projet Apollo et a cherché à y participer, attirée par la perspective « très excitante » d'une initiative d'exploration lunaire. Elle a ensuite rejoint le MIT Instrumentation Laboratory, entité chargée de développer l'Apollo Guidance Computer pour le programme d'exploration lunaire Apollo. Hamilton s'est distinguée en tant que première programmeuse embauchée pour le projet Apollo au MIT et en tant que première femme programmeuse au sein de l'entreprise, accédant finalement au poste de directrice de la division de génie logiciel. Ses responsabilités comprenaient la direction de l'équipe qui a développé et testé rigoureusement tous les logiciels de bord embarqués pour le module de commande et lunaire du vaisseau spatial Apollo, ainsi que pour la station spatiale Skylab ultérieure. Un segment distinct de son équipe s'est concentré sur la conception et la mise en œuvre du logiciel système, qui comprenait des mécanismes de détection et de récupération des erreurs critiques tels que les redémarrages et les routines d'interface d'affichage (également connues sous le nom d'affichages prioritaires), tous deux conçus et développés par Hamilton. Elle a acquis une expertise pratique à une époque où les programmes formels d'informatique étaient rares et les cours de génie logiciel inexistants.
La vaste expertise de Hamilton englobait un large éventail de disciplines, notamment la conception de systèmes et le développement de logiciels, la modélisation d'entreprise et de processus, les paradigmes de développement, les langages de modélisation de systèmes formels, les objets orientés système pour la modélisation et le développement de systèmes, les environnements de cycle de vie automatisés, les méthodologies d'optimisation de la fiabilité et de réutilisation des logiciels, l'analyse de domaine, la garantie de l'exactitude grâce aux propriétés de langage intégrées, les techniques d'architecture ouverte pour des systèmes robustes, une automatisation complète du cycle de vie, une assurance qualité, une intégration transparente, des techniques avancées de détection et de récupération des erreurs, des systèmes d'interface homme-machine, des systèmes d'exploitation, des protocoles de test de bout en bout et des stratégies sophistiquées de gestion du cycle de vie. Ces techniques intégrées ont été conçues pour améliorer la fiabilité du code en facilitant l'identification précoce et la rectification des erreurs au sein du processus de développement logiciel.
L'atterrissage lunaire d'Apollo 11
Au cours d'une phase critique de la mission Apollo 11, l'ordinateur de guidage Apollo, en conjonction avec son logiciel de vol embarqué, a réussi à empêcher l'interruption de l'alunissage. Environ trois minutes avant l'atterrissage de l'atterrisseur lunaire, plusieurs alarmes informatiques ont été activées. L'ingénieur logiciel Robert Wills a indiqué que l'astronaute Buzz Aldrin avait lancé une demande pour que l'ordinateur affiche l'altitude et d'autres données pertinentes sur son écran. Bien que le système ait été conçu pour accueillir sept programmes simultanés, la contribution d'Aldrin en constituait un huitième. Cette action, qu'Aldrin avait fréquemment pratiquée dans des simulations, entraînait une séquence de codes d'erreur imprévus lors de la descente réelle. Le logiciel de vol embarqué a intercepté ces alarmes, présentant des « affichages jamais censés se produire » qui ont interrompu les astronautes avec des notifications d'alarme prioritaires. Hamilton avait anticipé et préparé précisément ce scénario des années à l'avance.
Hamilton a fréquemment rappelé un mécanisme de sécurité supplémentaire. Son système innovant « d'affichage prioritaire » introduisait un risque conséquent : le potentiel de désynchronisation entre l'astronaute et l'ordinateur pendant les périodes opérationnelles critiques. Lorsque les alarmes étaient déclenchées et que les affichages prioritaires remplaçaient les affichages standards, la transition sous-jacente vers de nouveaux programmes se produisait à un rythme décrit comme « un pas plus lent » que les systèmes contemporains.
Hamilton avait analysé en profondeur ce problème potentiel. Son analyse a indiqué que si un astronaute, tel qu'Aldrin, interagissait trop rapidement avec un affichage prioritaire, le système pourrait quand même enregistrer une réponse « normale ». La solution qu'elle a imaginée était une instruction procédurale : dès l'apparition d'un affichage prioritaire, l'astronaute doit d'abord compter jusqu'à cinq.
Selon certains rapports, les alarmes auraient été précipitées par les astronautes laissant par inadvertance l'interrupteur du radar de rendez-vous activé ; cependant, cette affirmation concernant l'activation involontaire du radar est contestée par Robert Wills du National Museum of Computing. L'ordinateur a connu une surcharge d'interruptions, résultant d'une alimentation incorrectement phasée fournie au radar de rendez-vous de l'atterrisseur. Les alarmes du programme signalaient des « débordements d'exécutifs », indiquant que l'ordinateur de guidage n'était pas en mesure d'exécuter toutes les tâches qui lui étaient assignées en temps réel et devait par conséquent reporter certaines opérations. L'équipe de Hamilton a exploité l'exécutif asynchrone, initialement conçu par J. Halcombe Laning, pour développer le logiciel de vol asynchrone.
Le logiciel de vol incorporait des techniques avancées de détection d'erreurs et de récupération, telles qu'un redémarrage "kill and recalcule" à l'échelle du système à partir d'un "endroit sûr" et des fonctionnalités d'instantané/restauration. Ces capacités ont facilité le développement de routines d'interface d'affichage (également appelées affichages prioritaires) qui, combinées à des fonctionnalités d'homme dans la boucle, pourraient interrompre les affichages de mission standard des astronautes pour présenter des alarmes d'urgence critiques. Cette fonctionnalité reposait sur l'attribution d'une priorité unique à chaque processus logiciel, garantissant une exécution temporelle et séquentielle précise de tous les événements.
Le système d'alarme prioritaire d'Hamilton a été conçu pour remplacer les affichages standard des astronautes en cas d'urgence, présentant des informations critiques permettant de prendre une décision « Go/No-Go » concernant l'atterrissage. Lors d'un incident critique, Jack Garman, ingénieur informaticien au contrôle de mission de la NASA, a interprété avec précision les messages d'erreur véhiculés par les affichages prioritaires, autorisant la poursuite de la mission avec l'exclamation « Go, go ! Paul Curto, un technologue senior qui a ensuite nominé Hamilton pour un NASA Space Act Award, a salué ses contributions comme étant « le fondement d'une conception de logiciels ultra-fiables ».
Hamilton a ensuite documenté son point de vue sur l'incident :
Le logiciel du système a été conçu pour détecter une condition de surcharge, indiquant une demande pour plus de tâches qu'il ne pouvait exécuter de manière optimale. Lors de sa détection, il a déclenché une alarme, signalant à l'astronaute : "Je suis actuellement surchargé de tâches et je donnerai la priorité uniquement aux plus critiques", c'est-à-dire, celles essentielles à l'atterrissage. Au-delà de la simple reconnaissance des erreurs, le logiciel intègre une suite complète de programmes de récupération. Dans ce cas précis, la réponse du logiciel a consisté à désactiver les tâches de moindre priorité et à rétablir les fonctions de priorité plus élevée. Si le système n'avait pas réussi à identifier ce problème et à lancer la récupération, le succès de l'alunissage d'Apollo 11 aurait été considérablement compromis.
Entreprises entrepreneuriales
En 1976, Hamilton a cofondé Higher Order Software (HOS) avec Saydean Zeldin, dans le but de faire progresser les concepts de prévention des erreurs et de tolérance aux pannes issus de leurs travaux sur le programme Apollo au MIT. Ils ont ensuite développé USE.IT, un produit fondé sur la méthodologie HOS formulée au MIT. Ce produit a trouvé une application réussie dans diverses initiatives gouvernementales, notamment un projet visant à formaliser et à mettre en œuvre C-IDEF, une itération automatisée d'IDEF, un langage de modélisation créé par l'US Air Force dans le cadre du projet Integrated Computer-Aided Manufacturing (ICAM). En 1980, l'informaticien anglo-israélien David Harel a proposé un langage de programmation structuré dérivé de HOS, encadré par la perspective des sous-objectifs AND/OR. En outre, HOS a été employé par d'autres chercheurs pour formaliser la sémantique des quantificateurs linguistiques et pour établir des conceptions rigoureuses pour des systèmes embarqués en temps réel fiables.
Hamilton a été PDG de HOS jusqu'en 1984, avant de quitter l'entreprise en 1985. En mars 1986, elle a créé Hamilton Technologies, Inc. à Cambridge, Massachusetts. Cette nouvelle entité centrée sur le langage USL (Universal Systems Language) et son environnement automatisé associé, la suite d'outils 001, reposaient tous deux sur son paradigme de « développement avant le fait » pour la conception de systèmes complets et l'ingénierie logicielle.
Impact durable
Hamilton est largement reconnu pour avoir inventé le terme « génie logiciel ». Elle a ensuite expliqué la genèse de cette nomenclature :
Au départ, le terme était peu familier dans notre sphère professionnelle. Cela est resté un sujet de plaisanterie pendant une longue période, mes collègues me taquinant souvent à propos de mes concepts non conventionnels. Un moment charnière s'est produit lorsqu'un expert en matériel informatique très respecté a affirmé publiquement lors d'une réunion que le développement de logiciels méritait d'être reconnu en tant que discipline d'ingénierie, analogue à l'ingénierie matérielle. Cette acceptation découle non seulement de l'adoption de la nouvelle terminologie, mais aussi de la reconnaissance collective que notre travail s'est imposé comme un domaine d'ingénierie légitime.
Lors des premières missions Apollo, lorsque Hamilton a introduit le terme « génie logiciel », la discipline du développement logiciel n'avait pas la reconnaissance et le statut scientifique accordés à d'autres domaines de l'ingénierie. L'objectif de Hamilton était de faire du développement logiciel une discipline d'ingénierie légitime. Par la suite, le « génie logiciel » a acquis un respect comparable à celui des autres disciplines techniques. Le numéro de septembre/octobre 2018 d'IEEE Software commémorait le 50e anniversaire du génie logiciel. Hamilton a discuté de la profonde influence des « erreurs » sur ses efforts en matière d'ingénierie logicielle, en particulier de la façon dont son langage développé, USL, pourrait atténuer la plupart des « erreurs » du système. La conception d'USL visait à éviter la majorité des erreurs lors du développement initial du système, réduisant ainsi le recours à des tests approfondis post-développement. Son expérience lors de la mission Apollo, qui l'a conduite à formuler une théorie mathématique pour les systèmes et les logiciels, a éclairé la création de l'USL. Cette méthodologie a conservé une influence significative dans le domaine du génie logiciel. Robert McMillan, écrivant pour Wired, a souligné sa contribution au MIT, déclarant qu'elle "a aidé à la création des principes fondamentaux de la programmation informatique alors qu'elle travaillait avec ses collègues à l'écriture du code pour le premier ordinateur portable au monde". Les innovations de Hamilton vont au-delà de son rôle central dans les missions lunaires. Karen Tegan Padir de Wired' a en outre affirmé que Hamilton, aux côtés de Grace Hopper, l'inventrice de COBOL et une autre pionnière de la programmation, mérite une reconnaissance substantielle pour avoir facilité l'entrée et la réussite des femmes dans les domaines STEM tels que les logiciels.
Commémorations
En 2017, un ensemble LEGO « Les femmes de la NASA » a été publié, comprenant des figurines de Hamilton, des astronautes Mae Jemison et Sally Ride, ainsi que de Nancy Grace Roman, la première chef de l'astronomie de la NASA. Maia Weinstock avait initialement proposé cet ensemble pour honorer les contributions de ces femmes à l'histoire de la NASA. Le segment de Hamilton dans l'ensemble recrée notamment sa photographie emblématique de 1969, la représentant aux côtés d'une pile importante de ses listes de logiciels.
En 2019, commémorant le 50e anniversaire de l'atterrissage d'Apollo, Google a honoré Hamilton en configurant les miroirs de la centrale solaire d'Ivanpah pour projeter une image d'elle et d'Apollo 11 au clair de lune.
Le personnage de Margo Madison, une ingénieure fictive de la NASA présentée dans la série d'histoire alternative. Pour toute l'humanité, s'inspire de Hamilton.
Récompenses
- En 1986, l'Association for Women in Computing a décerné le prix Augusta Ada Lovelace à Hamilton.
- Elle a reçu le prix NASA Exceptional Space Act en 2003, en reconnaissance de ses contributions scientifiques et techniques. Ce prix, d'un montant total de 37 200 $, représentait la somme monétaire la plus importante jamais décernée à un individu dans l'histoire de la NASA.
- L'Earlham College lui a décerné le prix Outstanding Alumni Award en 2009.
- En 2016, Barack Obama lui a décerné la Médaille présidentielle de la liberté, qui constitue la plus haute distinction civile aux États-Unis.
- Le 28 avril 2017, elle a reçu le Computer History Museum Fellow Award, une distinction récompensant des personnalités distinguées dont les contributions à l'informatique ont profondément marqué le monde.
- L'Université polytechnique de Catalogne lui a décerné un doctorat honorifique en 2018.
- Elle a reçu le Washington Award en 2019.
- Le Bard College lui a décerné un doctorat honorifique en 2019.
- Elle a reçu l'Intrepid Lifetime Achievement Award en 2019.
- En 2022, elle a été intronisée au National Aviation Hall of Fame, situé à Dayton, Ohio.
Publications sélectionnées
- Hamilton, M. ; Zeldin, S. (mars 1976). "Logiciel d'ordre supérieur - Une méthodologie pour définir un logiciel". Transactions IEEE sur le génie logiciel. SE-2 (1) : 9–32. est ce que je:10.1109/TSE.1976.233798. S2CID 7799553.Hamilton, M. ; Zeldin, S. (1er janvier 1979). "La relation entre conception et vérification". Journal des systèmes et logiciels. §34§ : 29–56. est ce que je:10.1016/0164-1212(79)90004-9.Conception électronique.
- Hamilton, M. (juin 1994). "001 : un environnement d'ingénierie de systèmes et de développement de logiciels à cycle de vie complet". (Histoire de couverture). Supplément éditorial spécial. 22ES-30ES. Conception électronique.
- Hamilton, M. ; Hackler, WR (2004). "Principes de l'architecture logicielle commune pour l'unité de navigation de guidage profondément intégrée (DI-GNU)". (Révisé le 29 décembre 2004). DAAAE30-02-D-1020 et DAAB07-98-D-H502/0180, Picatinny Arsenal, New Jersey, 2003-2004.
- Hamilton, M. ; Hackler, WR (2007). "A Universal Systems Language for Preventative Systems Engineering", Actes de la 5e conférence annuelle sur la recherche en ingénierie des systèmes (CSER), Stevens Institute of Technology, mars 2007, document n° 36.
- Hamilton, Margaret H. ; Hackler, William R. (2007). "Une sémantique formelle des systèmes universels pour SysML". Symposium international Incose. 17 (1). Wiley : 1333–1357. est ce que je:10.1002/j.2334-5837.2007.tb02952.x. ISSN2334-5837. S2CID 57214708.Hamilton, Margaret H. ; Hackler, William R. (2008). "Le langage des systèmes universels : aperçus du programme Apollo". Ordinateur. 41 (12). Institut d'ingénieurs en électricité et électronique (IEEE) : 34–43. est ce que je:10.1109/mc.2008.541. ISSN 0018-9162.Hamilton, M. H. (septembre 2018). "Informations dérivées de l'analyse des erreurs". Logiciel IEEE. 35 (5) : 32–37. est ce que je :10.1109/MS.2018.290110447. S2CID 52896962.Vie personnelle
Hamilton a une sœur, Kathryn Heafield.
Elle a rencontré son premier mari, James Cox Hamilton, au milieu des années 1950, alors qu'elle poursuivait ses études universitaires. Leur mariage a eu lieu le 15 juin 1958, après l'obtention de son diplôme à Earlham cet été-là. Par la suite, elle a occupé un bref poste d’enseignante de mathématiques et de français au lycée dans un établissement public de Boston, Indiana. Le couple a ensuite déménagé à Boston, dans le Massachusetts, où leur fille, Lauren, est née le 10 novembre 1959. Leur divorce a été finalisé en 1967 et Margaret a ensuite épousé Dan Lickly deux ans plus tard.
- Liste des pionniers de l'informatique
Références
Steafel, Eleanor (20 juillet 2019). "Une femme singulière dans un environnement dominé par les hommes". Le magazine télégraphique. Londres : Daily Telegraph plc. pp. 56-59, 61. OCLC 69022829.
- Steafel, Eleanor (20 juillet 2019). "Une femme dans une pièce pleine d'hommes". Le Telegraph Magazine. Londres : Daily Telegraph plc. pp. 56–59, 61. OCLC 69022829.
- Hamilton Technologies, Inc.
- Margaret Hamilton Archivée le 5 septembre 2017 sur Wayback Machine Vidéo produite par Makers : Women Who Make America
- Margaret Hamilton '58 – Récipiendaire de la Médaille présidentielle de la liberté Archivée le 30 juillet 2019 sur la Wayback Machine : profil du Earlham College