Margaret Hamilton (ingénieur logiciel)

À Boston, elle avait initialement l’intention de s’inscrire à des études supérieures en mathématiques abstraites à Brandeis. Cependant, durant l’été 1959, Hamilton commence à travailler pour Edward Norton Lorenz, dans le département de météorologie du MIT. Elle développe des logiciels de prévision du temps, programmés sur les ordinateurs LGP-30 et PDP-1 du projet MAC de Marvin Minsky. Son travail a contribué aux publications de Lorenz sur la théorie du chaos. À l’époque, l’informatique et le génie logiciel n’étaient pas encore des disciplines établies ; les programmeurs apprenaient plutôt sur le tas, avec une expérience pratique. Elle est passée à un autre projet au cours de l’été 1961, et a embauché et formé Ellen Fetter pour la remplacer.

SAGE ProjectEdit

De 1961 à 1963, Hamilton a travaillé sur le projet Semi-Automatic Ground Environment (SAGE) au Lincoln Lab du MIT, où elle était l’un des programmeurs qui ont écrit un logiciel pour le prototype d’ordinateur AN/FSQ-7 (le XD-1), utilisé par l’armée de l’air américaine pour rechercher des avions possiblement hostiles. Elle a également écrit des logiciels pour un projet de suivi des satellites aux laboratoires de recherche de l’armée de l’air à Cambridge. Le projet SAGE était une extension du projet Whirlwind, lancé par le MIT pour créer un système informatique capable de prévoir les systèmes météorologiques et de suivre leurs mouvements à l’aide de simulateurs. SAGE a rapidement été développé pour une utilisation militaire dans la défense anti-aérienne. Hamilton a déclaré:

Ce qu’ils avaient l’habitude de faire lorsque vous arriviez dans cette organisation en tant que débutant, c’était de vous assigner ce programme que personne n’a jamais été capable de comprendre ou de faire fonctionner. When I was the beginner they gave it to me as well. And what had happened was it was tricky programming, and the person who wrote it took delight in the fact that all of his comments were in Greek and Latin. So I was assigned this program and I actually got it to work. It even printed out its answers in Latin and Greek. I was the first one to get it to work.

It was her efforts on this project that made her a candidate for the position at NASA as the lead developer for Apollo flight software.

Draper LaboratoryEdit

Hamilton in 1969, standing next to listings of the software she and her MIT team produced for the Apollo project

Hamilton during her time as lead Apollo flight software designer

Hamilton then joined the Charles Stark Draper Laboratory at MIT, qui a travaillé sur la mission spatiale Apollo. Hamilton a d’abord été embauchée comme programmeur pour ce processus, mais elle a évolué vers la conception de systèmes. Finalement, elle a été chargée de tous les logiciels du module de commande, c’est-à-dire de tous les logiciels de navigation et de guidage pour l’atterrissage lunaire. Elle a finalement dirigé une équipe à qui l’on doit le développement des logiciels d’Apollo et de Skylab. L’équipe d’Hamilton était responsable du développement du logiciel de vol, qui comprenait des algorithmes conçus par divers scientifiques de haut niveau pour le module de commande Apollo, l’atterrisseur lunaire et le Skylab qui a suivi. Une autre partie de son équipe a conçu et développé le logiciel des systèmes. Il s’agissait notamment de logiciels de détection et de récupération des erreurs, comme les redémarrages et les routines d’interface d’affichage (également connues sous le nom d’affichages prioritaires), que Hamilton a conçus et développés. Elle a travaillé pour acquérir une expérience pratique à une époque où les cours d’informatique étaient rares et où les cours de génie logiciel n’existaient pas. Hamilton a également occupé le poste de directrice de la division du génie logiciel.

Ses domaines d’expertise comprennent : la conception de systèmes et le développement de logiciels, la modélisation d’entreprise et de processus, le paradigme de développement, les langages formels de modélisation de systèmes, 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éthodes pour maximiser la fiabilité et la réutilisation des logiciels, l’analyse de domaine, la correction par les propriétés intégrées du langage, les techniques d’architecture ouverte pour les systèmes robustes, l’automatisation du cycle de vie complet, l’assurance qualité, l’intégration transparente, les techniques de détection et de récupération des erreurs, les systèmes d’interface homme-machine, les systèmes d’exploitation, les techniques de test de bout en bout et les techniques de gestion du cycle de vie. Celles-ci ont rendu son code incroyablement fiable car elles ont aidé les programmeurs à identifier et à corriger les anomalies avant qu’elles ne deviennent des problèmes majeurs.

Apollo programEdit

Dans l’un des moments critiques de la mission Apollo 11, l’ordinateur de guidage Apollo ainsi que le logiciel de vol embarqué ont évité un abandon de l’atterrissage sur la Lune. Trois minutes avant que l’atterrisseur lunaire n’atteigne la surface de la Lune, plusieurs alarmes informatiques se sont déclenchées. Le logiciel de vol embarqué a capturé ces alarmes avec les « affichages jamais censés se produire » interrompant les astronautes avec des affichages d’alarme prioritaires.Hamilton s’était préparée justement à cette situation des années auparavant :

Il y avait une autre sécurité intégrée dont Hamilton aime se souvenir. Son innovation  » affichage prioritaire  » avait créé un risque en retour que l’astronaute et l’ordinateur se désynchronisent au moment où cela comptait le plus. Alors que les alarmes se déclenchaient et que les affichages prioritaires remplaçaient les affichages normaux, le passage réel aux nouveaux programmes derrière les écrans se faisait « un pas plus lent » qu’aujourd’hui.

Hamilton avait longuement réfléchi à cela. Cela signifiait que si Aldrin, par exemple, appuyait trop rapidement sur un bouton de l’affichage prioritaire, il pouvait encore obtenir une réponse « normale ». Sa solution : lorsque vous voyez un affichage prioritaire, comptez d’abord jusqu’à cinq.

Selon certains témoignages, les astronautes avaient laissé par inadvertance l’interrupteur du radar de rendez-vous allumé, provoquant le déclenchement de ces alarmes (le fait que le radar ait été laissé allumé par inadvertance par les astronautes est contesté par Robert Wills du National Museum of Computing). L’ordinateur était surchargé d’interruptions causées par une alimentation en phase incorrecte du radar de rendez-vous de l’atterrisseur. Les alarmes du programme indiquaient des « débordements de l’exécutif », ce qui signifie que l’ordinateur de guidage ne pouvait pas accomplir toutes ses tâches en temps réel et devait en reporter certaines. L’exécutif asynchrone conçu par J. Halcombe Laning a été utilisé par l’équipe de Hamilton pour développer un logiciel de vol asynchrone :

En raison des techniques de détection et de récupération des erreurs du système-logiciel de vol qui comprenaient son approche de redémarrage  » kill and recompute  » à partir d’un  » endroit sûr  » à l’échelle du système, ainsi que ses techniques d’instantané et de retour en arrière, les routines d’interface d’affichage (alias les affichages prioritaires) ainsi que les capacités de l’homme dans la boucle ont pu être créées afin de pouvoir interrompre les affichages normaux de la mission des astronautes par des affichages prioritaires des alarmes critiques en cas d’urgence. Cela dépendait de notre capacité à attribuer une priorité unique à chaque processus du logiciel afin de garantir que tous ses événements se déroulent dans le bon ordre et au bon moment par rapport à tout ce qui se passe par ailleurs.

Les affichages prioritaires des alarmes de Hamilton interrompaient les affichages normaux des astronautes pour les avertir qu’il y avait une urgence « donnant aux astronautes une décision de type go/no go (atterrir ou non) ». Jack Garman, ingénieur informaticien de la NASA au contrôle de mission, a reconnu la signification des erreurs présentées aux astronautes par les affichages prioritaires et a crié « Go, go ! » et ils ont continué. Paul Curto, technologue principal qui a proposé la candidature d’Hamilton pour un Space Act Award de la NASA, a qualifié le travail d’Hamilton de « fondement de la conception de logiciels ultra-fiables ».

Hamilton a plus tard écrit au sujet de l’incident :

L’ordinateur (ou plutôt le logiciel qu’il contient) était suffisamment intelligent pour reconnaître qu’on lui demandait d’effectuer plus de tâches qu’il ne devait en effectuer. Il a alors envoyé une alarme, ce qui signifiait à l’astronaute :  » Je suis surchargé de plus de tâches que je ne devrais en effectuer en ce moment et je vais garder uniquement les tâches les plus importantes  » ; c’est-à-dire celles nécessaires à l’atterrissage…. En fait, l’ordinateur était programmé pour faire plus que reconnaître les conditions d’erreur. Un ensemble complet de programmes de récupération a été incorporé dans le logiciel. L’action du logiciel, dans ce cas, était d’éliminer les tâches de moindre priorité et de rétablir les plus importantes … Si l’ordinateur n’avait pas reconnu ce problème et pris des mesures de récupération, je doute qu’Apollo 11 ait été l’alunissage réussi qu’il a été.

– Lettre de Margaret H. Hamilton, directrice de la programmation de l’ordinateur de vol Apollo MIT Draper Laboratory, Cambridge, Massachusetts, intitulée « Computer Got Loaded », publiée dans Datamation, 1er mars 1971

BusinessEdit

En 1976, Hamilton a cofondé avec Saydean Zeldin une société appelée Higher Order Software (HOS) pour développer davantage les idées sur la prévention des erreurs et la tolérance aux pannes émergeant de leur expérience au MIT en travaillant sur le programme Apollo. Ils ont créé un produit appelé USE.IT, basé sur la méthodologie HOS qu’ils ont développée au MIT. Il a été utilisé avec succès dans de nombreux programmes gouvernementaux, notamment un projet visant à formaliser et à mettre en œuvre C-IDEF, une version automatisée d’IDEF, un langage de modélisation développé par l’armée de l’air américaine dans le cadre du projet ICAM (Integrated Computer-Aided Manufacturing). En 1980, l’informaticien britannico-israélien David Harel a publié une proposition de langage de programmation structuré dérivé de HOS du point de vue des et/ou des sous-buts. D’autres ont utilisé HOS pour formaliser la sémantique des quantificateurs linguistiques, et pour formaliser la conception de systèmes embarqués en temps réel fiables.

Hamilton a été le PDG de HOS jusqu’en 1984 et a quitté la société en 1985. En mars 1986, elle a fondé Hamilton Technologies, Inc. à Cambridge, Massachusetts. La société s’est développée autour du langage universel des systèmes (USL) et de l’environnement automatisé qui lui est associé, le 001 Tool Suite, basé sur son paradigme de développement avant le fait pour la conception de systèmes et le développement de logiciels.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.