Margaret Hamilton (scientifique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Margaret Hamilton.
Margaret Hamilton
Description de cette image, également commentée ci-après

Margaret Hamilton en 1995

Naissance
Paoli, Indiana (Etats-Unis)
Nationalité Américaine
Domaines informatique, génie logiciel, mathématiques
Institutions MIT, NASA
Renommée pour Programme Apollo

Margaret Hamilton, née le 17 août 1936 à Paoli (Indiana), U.S., est une informaticienne et mathématicienne. Elle était directrice du département génie logiciel (« software engineering », terme de son invention[1]) du MIT Instrumentation Laboratory qui conçut le système embarqué du programme Apollo[2].

Biographie[modifier | modifier le code]

Hamilton est diplômée du Lycée Hancock en 1954. À l'âge de 17 ans, elle commence à réaliser des programmes[3] et obtient une licence en mathématiques du Earlham College (en) en 1958. Elle déménage dans l'état du Massachusetts avec l'intention de poursuivre des études de Mathématiques pures à l'Université Brandeis mais finalement choisit d'intégrer le MIT pour développer des programmes informatiques de prévision météorologique sur des ordinateurs LGP-30 (en) et PDP-1[4]. De 1961 à 1963 elle travaille sur le projet militaire SAGE au laboratoire Lincoln du MIT où elle développe des programmes de détection d'avions sur l'ordinateur géant AN/FSQ-7 (en). Elle rejoint en 1963 le Laboratoire Charles Stark Draper du MIT (en).

Responsable de projets pour la NASA[modifier | modifier le code]

Margaret Hamilton se tenant auprès du code du logiciel de navigation qu'elle et son équipe du MIT Draper Lab ont produit pour le programme Apollo.

Au laboratoire Draper elle travaille pour les missions du programme Apollo de la NASA sur les logiciels embarqués dans les vaisseaux spatiaux qui doivent prendre en charge la navigation et l'atterrissage sur la Lune. Elle devient responsable de l'équipe chargée du développement du logiciel embarqué utilisé par les missions Apollo puis Skylab[2]. Elle acquiert ainsi une solide expérience sur la conception des logiciels à une époque où les méthodes de gestion et de conception des projets informatiques en sont à leur balbutiement.

Dans le cadre de ces projets informatiques, elle innove dans le domaine de la conception de système et de développement de logiciels, de la modélisation de processus, de la conception de systèmes de prévention, du paradigme de développement, des systèmes formels et des langages informatiques de modélisation, de la conception et de la programmation orientée objet, de la gestion automatisée des cycles de vie, des méthodes de fiabilisation et de réutilisation des logiciels, d'analyse de domaine, de l'exactitude de propriétés linguistiques intégrées, des techniques d'architecture ouverte pour des systèmes robustes, de l'automatisation du cycle de vie complet, de l'assurance qualité, de l'intégration transparente, des systèmes distribués, des techniques de détection d'erreur et de récupération, des systèmes d'interface homme-machine, des systèmes d'exploitation, des techniques de test bout en bout et des techniques de gestion du cycle de vie[2].

Elle est à l'origine des concepts de logiciel asynchrone, de gestion des priorités, des possibilités de décision avec intervention humaine qui sont les fondations des techniques modernes de conception de logiciel fiable.

Apollo 11[modifier | modifier le code]

Margaret Hamilton durant le programme Apollo.

La qualité des programmes développés sous la supervision d'Hamilton et du système d'exploitation de J. Halcombe Laning (en) installés sur l'ordinateur Apollo Guidance Computer (AGC) ont joué un rôle critique au cours de la mission Apollo 11 en évitant une interruption de l'atterrissage du module lunaire Apollo sur la Lune[5]. Trois minutes avant que le module lunaire Apollo atteigne la surface de la Lune, des alarmes informatiques répétées se déclenchent. Elles signalent que l'ordinateur AGC est saturé. Grâce à l'architecture du logiciel attribuant des priorités aux programmes, l'ordinateur réussit néanmoins à mener sa mission principale consistant à poser le module lunaire sur la Lune. Le logiciel était conçu en utilisant des exécutions asynchrones de telle manière que les tâches ayant la plus haute priorité (essentielles à l'atterrissage) puissent interrompre des tâches moins prioritaires. L'analyse de l'incident effectuée après la mission l'avait attribué à une erreur de l'équipage qui aurait laissé le radar fonctionner dans cette phase de vol saturant les capacités de calcul limitées de l'AGC. Une nouvelle analyse réalisée en 2005 a conclu qu'il s'agissait d'une erreur dans la conception matérielle du radar qui continuait à envoyer des informations à l'ordinateur alors qu'il avait été mis en veille par l'équipage[6].

« Suite à une erreur dans le manuel décrivant la checklist, le bouton d'arrêt du radar de rendez-vous a été placé dans la mauvaise position. Ce qui a provoqué l'envoi de mauvais signaux à l'ordinateur. Il était ainsi demandé à l'ordinateur de réaliser toutes les tâches liées à l'atterrissage tout en recevant une charge supplémentaire qui utilisait plus de 15 % du temps de traitement. L'ordinateur (ou plutôt son logiciel) a été assez intelligent pour reconnaître qu'on lui demandait d'effectuer plus de tâches qu'il ne devait en accomplir. Il a lancé une alarme qui indiquait aux astronautes "J'ai trop de tâches à effectuer par rapport à ce que je suis en mesure de réaliser et je vais continuer en n'effectuant que les tâches les plus importantes", c'est-à-dire celles associée à l'atterrissage. En fait, l'ordinateur était programmé pour faire mieux que simplement identifier une situation d'erreur. Des programmes de récupération avait été incorporés dans le logiciel qui permettaient d'éliminer les tâches ayant les priorités plus faibles et d’exécuter les plus importantes. Si l'ordinateur n'avait pas reconnu le problème et entrepris ces actions de récupérations, je doute qu'Apollo 11 aurait réussi son atterrissage sur la Lune comme il l'a fait. »

— Margaret Hamilton, Lettre à Datamation (en), 1er mars 1971[7]

.

Carrière postérieure[modifier | modifier le code]

En 1986, elle crée et dirige la société Hamilton Technologies qui met au point un nouveau langage de programmation l'Universal Systems Language (en) (USL). Développé à partir de son expérience à la NASA ce langage repose sur des objets orientés système et des modèles orientés système. L'objectif est d'améliorer la fiabilité du code tout en réduisant les coûts de développement et les risques[8].

Sa carrière en tant que femme[modifier | modifier le code]

Dans les années 1960 Margaret Hamilton constituait une exception dans le milieu informatique essentiellement masculin dans lesquels les postes de responsabilité technique étaient rarement attribués aux femmes. Elle avait une petite fille et devait affronter les critiques des personnes qui ne comprenaient pas qu'une mère puisse poursuivre une carrière en parallèle[9]. Les réalisations et les innovations de Margaret Hamilton, à une époque où les femmes ne constituaient qu'une toute petite minorité, ont contribué à ouvrir la discipline informatique aux femmes[10]. Elle est notamment citée dans l'initiative de Maia Weinstock pour que Lego créé des figurines pour rendre hommage aux « femmes de la Nasa »[11].

Récompenses[modifier | modifier le code]

Publications[modifier | modifier le code]

Hamilton a publié plus de 130 articles et rapports concernant la soixantaine de projets et les 6 programmes majeurs auxquels elle a participé[2].

  • M. Hamilton, S. Zeldin (1976) "Higher order software—A methodology for defining software" IEEE Transactions on Software Engineering, vol. SE-2, no. 1, mars 1976.
  • M. Hamilton (1994), Inside Development Before the Fact, cover story, Editorial Supplement, 8ES-24ES. Electronic Design, Apr. 1994.
  • M. Hamilton, Hackler, W.R.. (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. Hamilton and W.R. M. Hackler (2007), Universal Systems Language for Preventative Systems Engineering, Proc. 5th Ann. Conf. Systems Eng. Res. (CSER), Stevens Institute of Technology, mars 2007, paper #36.

Notes et références[modifier | modifier le code]

  1. (en) « NASA Engineers and Scientists-Transforming Dreams Into Reality »
  2. a, b, c et d (en) « About Margaret Hamilton »
  3. « Invisibilisées • Margaret Hamilton Informaticienne et... », sur invisibilisees.tumblr.com (consulté le 7 mars 2016)
  4. a et b (en) « Margaret Hamilton », sur Cambridge Women's Heritage Project
  5. a et b Michael Braukus NASA News "NASA Honors Apollo Engineer" (septembre 3, 2003)
  6. Don Eyles, « Tales from the Lunar Module Guidance Computer », 27th annual Guidance and Control Conference, American Astronautical Society, Breckenridge, CO, (consulté le 13 juin 2013)
  7. Margaret H. Hamilton, « Computer Got Loaded », Datamation, Cahners Publishing Company,‎ (ISSN 0011-6963)
  8. femaleheroes, « Margaret Hamilton, informaticienne inconnue », sur Héros du passé (consulté le 7 mars 2016)
  9. (en) « Her Code Got Humans on the Moon—And Invented Software Itself », sur WIRED (consulté le 21 mars 2016)
  10. katacharin, « Margaret Hamilton – One Giant Leap for Womankind » (consulté le 21 mars 2016)
  11. « Des figurines Lego pour rendre hommage aux femmes de la Nasa » (consulté le 13 mars 2017)
  12. Sean O'Keefe, administrateur de la NASA, a commenté cette récompense en disant "Les concepts qu'elle a créés avec son équipe sont devenus les blocs de base de l'ingénierie logicielle moderne. C'est un honneur de reconnaître Mme Hamilton pour ses contributions extraordinaires à la NASA."
  13. NASA Press Release "NASA Honors Apollo Engineer" (September 03, 2003)
  14. « 2009 Outstanding Alumni and Distinguished Service Awards », Earlham College (consulté le 10 décembre 2014)
  15. « Apollo code developer Margaret Hamilton receives Presidential Medal of Freedom », MIT News,‎ (lire en ligne)

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Sur les autres projets Wikimedia :