Margaret Hamilton (ingeniera de software) - Margaret Hamilton (software engineer)

Margaret Hamilton
Margaret Hamilton 1995.jpg
Hamilton en 1995
Nació
Margaret Elaine Heafield

( 17 de agosto de 1936 )17 de agosto de 1936 (85 años)
Paoli, Indiana , Estados Unidos
Educación Universidad Earlham College
de Michigan
Ocupación Ingeniero de software
Esposos)
Niños 1 hija, Lauren Hamilton
Parientes James Cox Chambers (ex yerno)
Premios Medalla presidencial de la libertad

Margaret Heafield Hamilton (nacida el 17 de agosto de 1936) es una científica informática estadounidense , ingeniera de sistemas y propietaria de un negocio. Fue directora de la División de Ingeniería de Software de la Instrumentation Laboratory del MIT , que desarrolló el software de vuelo a bordo de la NASA 's programa Apolo . Más tarde fundó dos empresas de software: Higher Order Software en 1976 y Hamilton Technologies en 1986, ambas en Cambridge, Massachusetts .

Hamilton ha publicado más de 130 artículos, actas e informes sobre sesenta proyectos y seis programas principales. Ella es una de las personas a las que se le atribuye haber acuñado el término " ingeniería de software ".

El 22 de noviembre de 2016, Hamilton recibió la Medalla Presidencial de la Libertad del presidente Barack Obama por su trabajo que condujo al desarrollo de software de vuelo a bordo para las misiones Apollo Moon de la NASA.

Vida personal y educación

Margaret Elaine Heafield nació el 17 de agosto de 1936 en Paoli, Indiana , a Kenneth Heafield y Ruth Esther Heafield ( de soltera  Partington); tiene dos hermanos menores: David y Kathryn. Más tarde, la familia se mudó a Michigan , donde Margaret se graduó de Hancock High School en 1954. Estudió matemáticas en la Universidad de Michigan en 1955 antes de trasladarse a Earlham College, donde su madre era estudiante; obtuvo una licenciatura en matemáticas con una especialización en filosofía en 1958. Cita a Florence Long, directora del departamento de matemáticas de Earlham, quien la ayudó con su deseo de seguir las matemáticas abstractas y convertirse en profesora de matemáticas. Tuvo otras inspiraciones, incluido su padre (filósofo y poeta) y su abuelo (director de escuela y ministro cuáquero ). Ella dice que estos hombres la inspiraron a incluir una especialización en filosofía en sus estudios.

Mientras estaba en Earlham, Hamilton conoció a su primer marido, James Cox Hamilton, un estudiante de último año con especialización en química. Se casaron el 15 de junio de 1958, el verano después de que ella se graduara de Earlham. Enseñó brevemente matemáticas y francés en la escuela secundaria en una escuela pública en Boston, Indiana , mientras que su esposo completó su licenciatura en Earlham. Luego, la pareja se mudó a Boston , Massachusetts , donde James luego obtendría su maestría en química de la Universidad de Brandeis ; tuvieron una hija, Lauren, nacida el 10 de noviembre de 1959. James se graduó más tarde de la Facultad de Derecho de Harvard en 1963; fundó un bufete de abogados en Boston y más tarde también se desempeñó en la junta de la Unión Estadounidense de Libertades Civiles . La pareja se divorció en 1967 y Margaret se casó con Dan Lickly dos años después.

Carrera profesional

En Boston, inicialmente tenía la intención de inscribirse en estudios de posgrado en matemáticas abstractas en Brandeis. Sin embargo, en el verano de 1959, Hamilton comenzó a trabajar para Edward Norton Lorenz , en el departamento de meteorología del MIT . Desarrolló software para predecir el clima, programar en las computadoras LGP-30 y PDP-1 en el Proyecto MAC de Marvin Minsky . Su trabajo contribuyó a las publicaciones de Lorenz sobre la teoría del caos . En ese momento, la informática y la ingeniería de software aún no eran disciplinas establecidas; en cambio, los programadores aprendieron en el trabajo con experiencia práctica. Pasó a otro proyecto en el verano de 1961 y contrató y capacitó a Ellen Fetter como su reemplazo.

Proyecto SAGE

De 1961 a 1963, Hamilton trabajó en el Proyecto Semi-Automatic Ground Environment (SAGE) en el MIT Lincoln Lab , donde fue una de las programadoras que escribió software para el prototipo de computadora AN / FSQ-7 (la XD-1) , utilizado por la Fuerza Aérea de los EE. UU. para buscar aviones posiblemente hostiles. También escribió software para un proyecto de rastreo de satélites en los Laboratorios de Investigación de Cambridge de la Fuerza Aérea . El Proyecto SAGE fue una extensión del Proyecto Torbellino , iniciado por el MIT para crear un sistema informático que pudiera predecir los sistemas meteorológicos y rastrear sus movimientos mediante simuladores. SAGE pronto se desarrolló para uso militar en defensa aérea antiaérea. Hamilton dijo:

Lo que solían hacer cuando ingresaste a esta organización como principiante, era asignarte este programa que nadie pudo entender o ejecutar. Cuando era principiante también me lo dieron. Y lo que había sucedido era que era una programación complicada, y la persona que la escribió se deleitó con el hecho de que todos sus comentarios estaban en griego y latín. Así que me asignaron este programa y de hecho lo hice funcionar. Incluso imprimió sus respuestas en latín y griego. Fui el primero en hacerlo funcionar.

Fueron sus esfuerzos en este proyecto los que la convirtieron en candidata para el puesto en la NASA como desarrolladora principal del software de vuelo Apollo.

Laboratorio Draper

Hamilton en 1969, junto a las listas del software que ella y su equipo del MIT produjeron para el proyecto Apollo.
Hamilton durante su tiempo como diseñadora principal de software de vuelo de Apollo

Luego, Hamilton se unió al Laboratorio Charles Stark Draper en el MIT, que trabajaba en la Misión Espacial Apollo . Hamilton fue contratado inicialmente como programador para este proceso, pero pasó a diseñar sistemas. Finalmente, estuvo a cargo de todo el software del módulo de comando, que era todo el software para la navegación y la guía de aterrizaje lunar. Finalmente, dirigió un equipo al que se le atribuye el desarrollo del software para Apollo y Skylab . El equipo de Hamilton fue responsable del desarrollo de software en vuelo, que incluía algoritmos diseñados por varios científicos senior para el módulo de comando Apollo, el módulo de aterrizaje lunar y el subsiguiente Skylab. Otra parte de su equipo diseñó y desarrolló el software de sistemas. Esto incluyó software de detección y recuperación de errores, como reinicios y las rutinas de interfaz de pantalla (también conocidas como pantallas prioritarias), que Hamilton diseñó y desarrolló. Trabajó para adquirir experiencia práctica durante una época en la que los cursos de informática eran poco comunes y los cursos de ingeniería de software no existían. Hamilton también se desempeñó como Director de la División de Ingeniería de Software.

Sus áreas de especialización incluyen: diseño de sistemas y desarrollo de software , modelado de procesos y empresas , paradigma de desarrollo, lenguajes de modelado de sistemas formales , objetos orientados al sistema para el modelado y desarrollo de sistemas, entornos de ciclo de vida automatizados, métodos para maximizar la confiabilidad y la reutilización del software , dominio análisis , corrección mediante propiedades de lenguaje integradas, técnicas de arquitectura abierta para sistemas robustos, automatización del ciclo de vida completo, garantía de calidad , integración perfecta, técnicas de detección y recuperación de errores , sistemas de interfaz hombre-máquina, sistemas operativos , de extremo a extremo técnicas de prueba y técnicas de gestión del ciclo de vida. Esto hizo que su código fuera increíblemente confiable porque ayudaron a los programadores a identificar y corregir anomalías antes de que se convirtieran en problemas importantes.

Programa Apolo

En uno de los momentos críticos de la misión Apolo 11 , la Computadora de Orientación Apolo junto con el software de vuelo a bordo evitaron la interrupción del aterrizaje en la Luna. Tres minutos antes de que el módulo de aterrizaje lunar alcanzara la superficie de la Luna, se activaron varias alarmas informáticas. El software de vuelo a bordo capturó estas alarmas con las pantallas de "nunca se suponía que sucederían" que interrumpían a los astronautas con pantallas de alarma de prioridad. Hamilton se había preparado para esta situación años antes:

Hubo otro seguro que a Hamilton le gusta recordar. Su innovación en la "pantalla prioritaria" había creado un riesgo en cadena de que el astronauta y la computadora se desincronizaran justo cuando más importaba. A medida que se disparaban las alarmas y las pantallas de prioridad reemplazaban a las normales, el cambio real a nuevos programas detrás de las pantallas estaba sucediendo "un paso más lento" de lo que ocurriría hoy.

Hamilton había pensado mucho en esto. Significaba que si Aldrin, digamos, pulsaba un botón en la pantalla de prioridad demasiado rápido, aún podría obtener una respuesta "normal". Su solución: cuando vea una pantalla de prioridad, primero cuente hasta cinco.

Según algunos informes, los astronautas habían dejado inadvertidamente el interruptor del radar de encuentro encendido, lo que provocó que se dispararan estas alarmas (si los astronautas dejaron el radar encendido inadvertidamente, Robert Wills lo discute con el Museo Nacional de Computación ). La computadora estaba sobrecargada con interrupciones causadas por la alimentación en fase incorrecta suministrada al radar de encuentro del módulo de aterrizaje. Las alarmas del programa indicaron "desbordamientos ejecutivos", lo que significa que la computadora de guía no pudo completar todas sus tareas en tiempo real y tuvo que posponer algunas de ellas. El equipo de Hamilton utilizó el ejecutivo asíncrono diseñado por J. Halcombe Laning para desarrollar software de vuelo asíncrono:

Debido a las técnicas de recuperación y detección de errores del software del sistema de vuelo que incluyeron su enfoque de reinicio de "matar y volver a calcular" en todo el sistema desde un "lugar seguro" hasta sus técnicas de instantánea y retroceso, las rutinas de interfaz de pantalla (también conocidas como pantallas de prioridad) juntas con sus capacidades de hombre en el circuito, se pudieron crear para tener la capacidad de interrumpir las pantallas de misión normales de los astronautas con pantallas de prioridad de alarmas críticas en caso de una emergencia. Esto dependía de que asignáramos una prioridad única a cada proceso en el software para asegurarnos de que todos sus eventos tuvieran lugar en el orden correcto y en el momento adecuado en relación con todo lo demás que estaba sucediendo.

Las pantallas de alarma de prioridad de Hamilton interrumpieron las pantallas normales de los astronautas para advertirles que había una emergencia "dando a los astronautas una decisión de ir / no ir (aterrizar o no aterrizar)". Jack Garman , un ingeniero informático de control de misiones de la NASA, reconoció el significado de los errores que las pantallas de prioridad presentaban a los astronautas y gritó: "¡Vamos, vamos!" y continuaron. Paul Curto, tecnólogo senior que nominó a Hamilton para un premio de la Ley Espacial de la NASA, calificó el trabajo de Hamilton como "la base para un diseño de software ultra confiable".

Hamilton escribió más tarde sobre el incidente:

La computadora (o más bien el software que contiene) era lo suficientemente inteligente como para reconocer que se le pedía que realizara más tareas de las que debería realizar. Luego envió una alarma, lo que significaba para el astronauta: 'Estoy sobrecargado con más tareas de las que debería estar haciendo en este momento y me quedaré solo con las tareas más importantes'; es decir, los necesarios para el aterrizaje ... En realidad, la computadora estaba programada para hacer más que reconocer condiciones de error. Se incorporó al software un conjunto completo de programas de recuperación. La acción del software, en este caso, fue eliminar las tareas de menor prioridad y restablecer las más importantes ... Si la computadora no hubiera reconocido este problema y tomado la acción de recuperación, dudo que el Apolo 11 hubiera sido la luna exitosa. aterrizaje fue.

-  Carta de Margaret H. Hamilton, Directora de Programación de Computadoras de Vuelo de Apollo MIT Draper Laboratory, Cambridge, Massachusetts, titulada "Computer Got Loaded", publicada en Datamation , 1 de marzo de 1971

Empresas

En 1976, Hamilton cofundó con Saydean Zeldin una empresa llamada Higher Order Software (HOS) para desarrollar más ideas sobre la prevención de errores y la tolerancia a fallas que surgen de su experiencia en el MIT trabajando en el programa Apollo. Crearon un producto llamado USE.IT, basado en la metodología HOS que desarrollaron en MIT. Se utilizó con éxito en numerosos programas gubernamentales, incluido un proyecto para formalizar e implementar C-IDEF, una versión automatizada de IDEF , un lenguaje de modelado desarrollado por la Fuerza Aérea de EE. UU . En el proyecto de Fabricación Asistida por Computadora Integrada (ICAM). En 1980, el científico informático británico-israelí David Harel publicó una propuesta para un lenguaje de programación estructurado derivado de HOS desde el punto de vista y / o subobjetivos. Otros han utilizado HOS para formalizar la semántica de cuantificadores lingüísticos y para formalizar el diseño de sistemas embebidos confiables en tiempo real.

Hamilton fue la directora ejecutiva de HOS hasta 1984 y dejó la empresa en 1985. En marzo de 1986, fundó Hamilton Technologies, Inc. en Cambridge, Massachusetts . La empresa se desarrolló en torno al lenguaje de sistemas universal (USL) y su entorno automatizado asociado, el conjunto de herramientas 001, basado en su paradigma de desarrollo antes del hecho para el diseño de sistemas y desarrollo de software.

Legado

Foto oficial de la NASA , 1989

A Anthony Oettinger , Barry Boehm y Hamilton se les atribuye el nombre de la disciplina de " ingeniería de software ". Hamilton detalla cómo llegó a inventar el término "ingeniería de software":

Cuando se me ocurrió el término por primera vez, nadie había oído hablar de él antes, al menos en nuestro mundo. Fue una broma constante durante mucho tiempo. Les gustaba bromear sobre mis ideas radicales. Fue un día memorable cuando uno de los gurús del hardware más respetados explicó a todos en una reunión que estaba de acuerdo conmigo en que el proceso de creación de software también debe considerarse una disciplina de ingeniería, al igual que con el hardware. No por su aceptación del nuevo "término" per se, sino porque nos habíamos ganado el suyo y la aceptación de los demás en la sala como parte de un campo de la ingeniería por derecho propio.

Cuando Hamilton comenzó a utilizar el término "ingeniería de software" durante las primeras misiones de Apolo, el desarrollo de software no se tomó en serio en comparación con otra ingeniería, ni se consideró como una ciencia. A Hamilton le preocupaba legitimar el desarrollo de software como disciplina de ingeniería. Con el tiempo, el término "ingeniería de software" ganó el mismo respeto que cualquier otra disciplina técnica. La edición de IEEE Software de septiembre / octubre de 2018 celebra el 50 aniversario de la ingeniería de software. Hamilton habla sobre los "errores" y cómo influyeron en su trabajo relacionado con la ingeniería de software y cómo su lenguaje, USL, podría usarse para prevenir la mayoría de los "errores" en un sistema. Escribiendo en Wired , Robert McMillan señaló: "En el MIT, ayudó en la creación de los principios básicos de la programación de computadoras mientras trabajaba con sus colegas en la escritura de código para la primera computadora portátil del mundo". Las innovaciones de Hamilton van más allá de las hazañas de desempeñar un papel importante para llevar a los humanos a la Luna. De acuerdo con Wired ' s Karen Tegan Padir: "Ella, junto con ese otro pionero de programación temprana, COBOL [ sic ] inventor Grace Hopper , también merecen gran crédito por ayudar a abrir la puerta a más mujeres para entrar y tener éxito en los campos de STEM como el software . "

En 2019, para celebrar los 50 años del aterrizaje del Apolo, Google decidió hacer un homenaje a Hamilton. Los espejos de la planta de Ivanpah se configuraron para crear una imagen de Hamilton y el Apolo 11 a la luz de la luna.

Premios

Ceremonia Honoris Causa de Margaret Hamilton, 2018

Publicaciones

  • Hamilton, M .; Zeldin, S. (marzo de 1976). "Software de orden superior: una metodología para definir el software". Transacciones IEEE sobre ingeniería de software . SE-2 (1): 9–32. doi : 10.1109 / TSE.1976.233798 . S2CID  7799553 .
  • Hamilton, M .; Zeldin, S. (1 de enero de 1979). "La relación entre diseño y verificación". Revista de sistemas y software . 1 : 29–56. doi : 10.1016 / 0164-1212 (79) 90004-9 .
  • Hamilton, M. (abril de 1994). "Desarrollo interior antes del hecho" . (Artículo de portada). Suplemento editorial especial. 8ES-24ES. Diseño Electrónico .
  • Hamilton, M. (junio de 1994). "001: Un entorno de desarrollo de software e ingeniería de sistemas de ciclo de vida completo" . (Artículo de portada). Suplemento editorial especial. 22ES-30ES. Diseño Electrónico .
  • Hamilton, M .; Hackler, WR (2004). "Principios comunes de la arquitectura de software de la unidad de navegación de orientación profundamente integrada (DI-GNU)". (Revisado el 29 de diciembre de 2004). DAAAE30-02-D-1020 y DAAB07-98-D-H502 / 0180, Picatinny Arsenal, Nueva Jersey, 2003-2004.
  • Hamilton, M .; Hackler, WR (2007). " Lenguaje Universal de Sistemas para la Ingeniería de Sistemas Preventivos ", Proc. 5th Ann. Conf. Ing. De Sistemas Res. (CSER), Stevens Institute of Technology, marzo de 2007, artículo 36.
  • Hamilton, M .; Hackler, WR (2007). " Una semántica de sistemas universales formales para SysML ". 17 ° Simposio Internacional Anual, INCOSE 2007, San Diego, CA, junio de 2007.
  • Hamilton, M .; Hackler, WR (2008). " Lenguaje de sistemas universales: lecciones aprendidas de Apolo ". Computadora IEEE , diciembre de 2008.
  • Hamilton, MH (septiembre de 2018). "Lo que nos dicen los errores" . Software IEEE . 35 (5): 32–37. doi : 10.1109 / MS.2018.290110447 . S2CID  52896962 .

Ver también

Referencias

Otras lecturas

  • Steafel, Eleanor (20 de julio de 2019). "Una mujer en una habitación llena de hombres". La revista Telegraph . Londres: Daily Telegraph plc. págs. 56–59, 61. OCLC  69022829 .

enlaces externos