TORIma Academia Logo TORIma Academia
Margaret Hamilton (software engineer)
Ciencias

Margaret Hamilton (software engineer)

TORIma Academia — Ingeniero de software

Margaret Hamilton (software engineer)

Margaret Hamilton (software engineer)

Margaret Elaine Hamilton (de soltera Heafield; nacida el 17 de agosto de 1936) es una científica informática estadounidense. Dirigió la División de Ingeniería de Software en el MIT…

Margaret Elaine Hamilton (de soltera Heafield, nacida el 17 de agosto de 1936) es una distinguida científica informática estadounidense. Se desempeñó como directora de la División de Ingeniería de Software en el Laboratorio de Instrumentación del MIT, donde su liderazgo fue fundamental en el desarrollo del software de vuelo a bordo para la Computadora de Orientación Apollo de la NASA, crucial para el programa Apollo. Posteriormente, fundó dos empresas de software: Higher Order Software en 1976 y Hamilton Technologies en 1986, ambas ubicadas en Cambridge, Massachusetts.

Margaret Elaine Hamilton (de soltera Heafield; nacida el 17 de agosto de 1936) es una científica informática estadounidense. Dirigió la División de Ingeniería de Software en el Laboratorio de Instrumentación del MIT, donde dirigió el desarrollo del software de vuelo a bordo para la Computadora de Orientación Apollo de la NASA para el programa Apollo. Posteriormente fundó dos empresas de software, Higher Order Software en 1976 y Hamilton Technologies en 1986, ambas en Cambridge, Massachusetts.

El extenso trabajo de Hamilton incluye más de 130 artículos, actas e informes publicados, junto con contribuciones a aproximadamente sesenta proyectos y seis programas importantes. Se le atribuye haber acuñado el término "ingeniería de software", articulando su propósito de la siguiente manera: "Comencé a usar el término 'ingeniería de software' para distinguirlo del hardware y otros tipos de ingeniería, pero trato cada tipo de ingeniería como parte del proceso general de ingeniería de sistemas".

El 22 de noviembre de 2016, el presidente Barack Obama confirió la Medalla Presidencial de la Libertad a Hamilton, reconociendo sus contribuciones fundamentales al desarrollo de software de vuelo a bordo para las misiones Apolo a la Luna de la NASA.

Vida temprana y antecedentes educativos

Margaret Elaine Heafield nació el 17 de agosto de 1936 en Paoli, Indiana, hija de Kenneth Heafield y Ruth Esther Heafield (de soltera Partington). Posteriormente, su familia se mudó a Michigan, donde completó su educación secundaria en Hancock High School en 1954.

Comenzó sus estudios de matemáticas en la Universidad de Michigan en 1955, transfiriéndose posteriormente al Earlham College, institución a la que anteriormente asistía su madre. En 1958, obtuvo una licenciatura en matemáticas, complementada con una especialización en filosofía. Ella le da crédito a Florence Long, quien presidió el departamento de matemáticas en Earlham, por fomentar su aspiración de dedicarse a las matemáticas abstractas y una carrera como profesora de matemáticas.

Atribuye su decisión de incorporar una especialización en filosofía en sus actividades académicas a la influencia de su padre, un poeta, y su abuelo, un director.

Carrera profesional

Inicialmente, mientras estaba en Boston, Hamilton había planeado realizar estudios de posgrado en matemáticas abstractas en la Universidad Brandeis. Sin embargo, a mediados de 1959, Hamilton comenzó a trabajar con Edward Norton Lorenz en el departamento de meteorología del Instituto Tecnológico de Massachusetts (MIT). Sus responsabilidades incluían desarrollar software para la predicción del tiempo, utilizando las computadoras LGP-30 y PDP-1 en el Proyecto MAC de Marvin Minsky. Sus contribuciones fueron parte integral de las publicaciones posteriores de Lorenz sobre la teoría del caos, un hecho reconocido por el propio Lorenz. Durante esa época, la informática y la ingeniería de software aún no se habían establecido formalmente como disciplinas académicas; en consecuencia, los programadores normalmente adquirieron sus habilidades a través de la experiencia práctica en el trabajo. En el verano de 1961, pasó a un proyecto diferente y posteriormente contrató y capacitó a Ellen Fetter como su sucesora.

El Proyecto SAGE

Entre 1961 y 1963, Hamilton participó en el proyecto Semi-Automatic Ground Environment (SAGE) en el Laboratorio Lincoln del MIT, y fue uno de los programadores responsables del desarrollo de software para el prototipo de computadora AN/FSQ-7 (el XD-1), que la Fuerza Aérea de EE. UU. empleó para detectar posibles aeronaves hostiles. Además, desarrolló software para una iniciativa de seguimiento por satélite en los Laboratorios de Investigación de Cambridge de la Fuerza Aérea. El Proyecto SAGE se originó como una extensión del Proyecto Whirlwind, una iniciativa del MIT destinada a crear un sistema informático capaz de predecir patrones climáticos y monitorear sus trayectorias mediante simulación. Posteriormente, SAGE se adaptó para aplicaciones militares en defensa aérea antiaérea. Hamilton relató:

Lo que solían hacer cuando llegaste a esta organización como principiante, era asignarte este programa que nadie fue capaz de descifrar o ejecutar. Cuando era principiante también me lo regalaron. Y lo que pasó fue 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. Entonces me asignaron este programa y realmente lo hice funcionar. Incluso imprimió sus respuestas en latín y griego. Fui el primero en hacerlo funcionar.

Sus esfuerzos exitosos en este proyecto la posicionaron como una fuerte candidata para el puesto de desarrolladora principal del software de vuelo Apollo en la NASA.

Laboratorio de instrumentación del MIT y desarrollo del ordenador de orientación Apollo

En 1965, Margaret Hamilton tuvo conocimiento del proyecto Apolo y buscó participar, atraída por la perspectiva "muy emocionante" de una iniciativa de exploración lunar. Posteriormente se unió al Laboratorio de Instrumentación del MIT, entidad responsable del desarrollo de la Computadora de Orientación Apollo para el programa de exploración lunar Apollo. Hamilton se distinguió como la programadora inaugural contratada para el proyecto Apollo en el MIT y la primera mujer programadora dentro del esfuerzo, ascendiendo finalmente al puesto de Directora de la División de Ingeniería de Software. Sus responsabilidades incluían liderar el equipo que desarrolló y probó rigurosamente todo el software de vuelo a bordo para el módulo lunar y de comando de la nave espacial Apollo, así como para la posterior estación espacial Skylab. Un segmento distinto de su equipo se centró en diseñar e implementar el software del sistema, que incluía mecanismos críticos de detección y recuperación de errores como reinicios y rutinas de interfaz de pantalla (también conocidas como pantallas prioritarias), ambos concebidos y desarrollados por Hamilton. Adquirió experiencia práctica durante una era en la que los planes de estudios formales de ciencias de la computación eran escasos y los cursos de ingeniería de software eran inexistentes.

La amplia experiencia de Hamilton abarcaba un amplio espectro de disciplinas, incluido el diseño de sistemas y desarrollo de software, modelado empresarial y de procesos, paradigmas de desarrollo, lenguajes formales de modelado de sistemas, objetos orientados a sistemas para modelado y desarrollo de sistemas, entornos de ciclo de vida automatizados, metodologías para optimizar la confiabilidad y reutilización del software, análisis de dominio, garantía de corrección a través de propiedades de lenguaje integradas y arquitectura abierta. técnicas para sistemas robustos, automatización integral del ciclo de vida, garantía de calidad, integración perfecta, técnicas avanzadas de detección y recuperación de errores, sistemas de interfaz hombre-máquina, sistemas operativos, protocolos de prueba de extremo a extremo y estrategias sofisticadas de gestión del ciclo de vida. Estas técnicas integradas fueron diseñadas para mejorar la confiabilidad del código al facilitar la identificación y rectificación temprana de errores dentro del proceso de desarrollo de software.

El alunizaje del Apolo 11

Durante una fase crítica de la misión Apolo 11, la computadora de guía Apollo, junto con su software de vuelo a bordo, impidieron con éxito la interrupción del aterrizaje lunar. Aproximadamente tres minutos antes del aterrizaje del módulo de aterrizaje lunar, se activaron múltiples alarmas informáticas. El ingeniero de software Robert Wills indicó que el astronauta Buzz Aldrin inició una solicitud para que la computadora mostrara la altitud y otros datos pertinentes en su pantalla. Aunque el sistema fue diseñado para acomodar siete programas simultáneos, la aportación de Aldrin constituyó un octavo. Esta acción, que Aldrin había practicado frecuentemente en simulaciones, resultó en una secuencia de códigos de error imprevistos durante el descenso real. El software de vuelo a bordo interceptó estas alarmas, presentando "pantallas que nunca se suponía que sucederían" que interrumpían a los astronautas con notificaciones de alarma prioritarias. Hamilton había anticipado y preparado precisamente para este escenario con años de antelación.

Hamilton recordaba con frecuencia un mecanismo de seguridad adicional. Su innovador sistema de "visualización de prioridad" introdujo un riesgo consecuente: la posibilidad de desincronización entre el astronauta y la computadora durante períodos operativos críticos. Cuando se activaron las alarmas y las pantallas de prioridad reemplazaron a las estándar, la transición subyacente a nuevos programas se produjo a un ritmo descrito como "un paso más lento" que los sistemas contemporáneos.

Hamilton había analizado exhaustivamente este problema potencial. Su análisis indicó que si un astronauta, como Aldrin, interactuara con una pantalla de prioridad demasiado rápido, el sistema aún podría registrar una respuesta "normal". La solución que ideó fue una instrucción de procedimiento: cuando aparece una pantalla de prioridad, el astronauta debe contar primero hasta cinco.

Según ciertos informes, las alarmas fueron precipitadas por los astronautas que sin darse cuenta dejaron activado el interruptor del radar de encuentro; sin embargo, Robert Wills, del Museo Nacional de Computación, cuestiona esta afirmación sobre la activación involuntaria del radar. La computadora experimentó una sobrecarga de interrupciones, que resultó de un suministro de energía en fases incorrectas al radar de encuentro del módulo de aterrizaje. Las alarmas del programa señalaron "desbordamientos ejecutivos", indicando que la computadora de guía no pudo ejecutar todas las tareas asignadas en tiempo real y en consecuencia tuvo que aplazar algunas operaciones. El equipo de Hamilton aprovechó el ejecutivo asíncrono, diseñado originalmente por J. Halcombe Laning, para desarrollar el software de vuelo asíncrono.

El software de vuelo incorporó técnicas avanzadas de detección y recuperación de errores, como un reinicio de "eliminar y recalcular" en todo el sistema desde un "lugar seguro" y funcionalidades de instantánea/reversión. Estas capacidades facilitaron el desarrollo de rutinas de interfaz de visualización (también conocidas como pantallas de prioridad), que, combinadas con funciones de hombre en el circuito, podrían interrumpir las pantallas de misión estándar de los astronautas para presentar alarmas de emergencia críticas. Esta funcionalidad se basaba en asignar una prioridad única a cada proceso de software, asegurando una ejecución temporal y secuencial precisa de todos los eventos.

El sistema de alarma prioritaria de Hamilton fue diseñado para anular las pantallas estándar de los astronautas durante emergencias, presentando información crítica que permitía una decisión de "ir/no ir" con respecto al aterrizaje. Durante un incidente crítico, Jack Garman, ingeniero informático de la NASA en el control de la misión, interpretó con precisión los mensajes de error transmitidos por las pantallas de prioridad, autorizando la continuación de la misión con la exclamación: "¡Vamos, vamos!". Paul Curto, un tecnólogo senior que posteriormente nominó a Hamilton para un premio de la Ley Espacial de la NASA, elogió sus contribuciones como "la base para el diseño de software ultraconfiable".

Hamilton posteriormente documentó su perspectiva sobre el incidente:

El software del sistema fue diseñado para detectar una condición de sobrecarga, lo que indica una solicitud de más tareas de las que podía ejecutar de manera óptima. Al ser detectado, activó una alarma que le indicó al astronauta: "Actualmente estoy sobrecargado de tareas y priorizaré solo las más críticas", es decir, las esenciales para el aterrizaje. Más allá del mero reconocimiento de errores, el software incorporó un conjunto completo de programas de recuperación. En este caso específico, la respuesta del software implicó desactivar tareas de menor prioridad y restablecer funciones de mayor prioridad. Si el sistema no hubiera podido identificar este problema e iniciar la recuperación, el exitoso alunizaje del Apolo 11 se habría visto seriamente comprometido.

Empresas emprendedoras

En 1976, Hamilton cofundó Higher Order Software (HOS) con Saydean Zeldin, con el objetivo de avanzar en conceptos de prevención de errores y tolerancia a fallos derivados de su trabajo en el programa Apollo en el MIT. Posteriormente desarrollaron USE.IT, un producto basado en la metodología HOS formulada en el MIT. Este producto encontró una aplicación exitosa en varias iniciativas gubernamentales, en particular un proyecto para formalizar e implementar C-IDEF, una iteración automatizada de IDEF, un lenguaje de modelado originado por la Fuerza Aérea de EE. UU. dentro del proyecto de Fabricación Integrada Asistida por Computadora (ICAM). En 1980, el informático británico-israelí David Harel propuso un lenguaje de programación estructurado derivado de HOS, enmarcado en la perspectiva de los subobjetivos AND/OR. Además, otros investigadores han empleado HOS para formalizar la semántica de los cuantificadores lingüísticos y establecer diseños rigurosos para sistemas integrados confiables en tiempo real.

Hamilton fue directora ejecutiva de HOS hasta 1984, y dejó la empresa en 1985. En marzo de 1986, fundó Hamilton Technologies, Inc. en Cambridge, Massachusetts. Esta nueva entidad se centró en el Lenguaje de Sistemas Universal (USL) y el entorno automatizado que lo acompaña, el 001 Tool Suite, ambos basados en su paradigma de "desarrollo antes del hecho" para el diseño de sistemas integrales y la ingeniería de software.

Impacto duradero

Hamilton es ampliamente reconocido por acuñar el término "ingeniería de software". Posteriormente explicó la génesis de esta nomenclatura:

Al principio, el término no era familiar en nuestro ámbito profesional. Durante mucho tiempo siguió siendo objeto de bromas, y mis colegas a menudo se burlaban de mí por mis conceptos poco convencionales. Se produjo un momento crucial cuando un experto en hardware muy respetado afirmó públicamente en una reunión que el desarrollo de software merecía reconocimiento como disciplina de ingeniería, análoga a la ingeniería de hardware. Esta aceptación surgió no sólo de la adopción de la nueva terminología, sino del reconocimiento colectivo de que nuestro trabajo se había establecido como un campo de ingeniería legítimo.

Durante las misiones Apolo iniciales, cuando Hamilton introdujo el término "ingeniería de software", la disciplina del desarrollo de software carecía del reconocimiento y la posición científica otorgada a otros campos de la ingeniería. El objetivo de Hamilton era establecer el desarrollo de software como una disciplina de ingeniería legítima. Posteriormente, la "ingeniería de software" alcanzó un respeto comparable al de otras disciplinas técnicas. La edición de septiembre/octubre de 2018 de IEEE Software conmemoró el 50.º aniversario de la ingeniería de software. Hamilton analizó la profunda influencia de los "Errores" en sus esfuerzos de ingeniería de software, particularmente cómo su lenguaje desarrollado, USL, podría mitigar la mayoría de los "Errores" del sistema. El diseño de USL tenía como objetivo evitar la mayoría de los errores del desarrollo inicial del sistema, reduciendo así la dependencia de pruebas exhaustivas posteriores al desarrollo. Su experiencia durante la misión Apolo, que la llevó a formular una teoría matemática para sistemas y software, influyó en la creación de USL. Esta metodología ha mantenido una influencia significativa dentro del campo de la ingeniería de software. Robert McMillan, que escribe para Wired, destacó su contribución en el MIT y afirmó que "ayudó en la creación de los principios básicos de la programación informática mientras trabajaba con sus colegas escribiendo código para la primera computadora portátil del mundo". Las innovaciones de Hamilton van más allá de su papel fundamental en las misiones lunares. Karen Tegan Padir de Wired afirmó además que Hamilton, junto con Grace Hopper, la inventora de COBOL y otra pionera de la programación, merece un reconocimiento sustancial por facilitar la entrada y el éxito de las mujeres en campos STEM como el software.

Conmemoraciones

En 2017, se lanzó un set LEGO "Mujeres de la NASA", que incluía minifiguras de Hamilton, las astronautas Mae Jemison y Sally Ride, y Nancy Grace Roman, la jefa inaugural de Astronomía de la NASA. Maia Weinstock propuso originalmente el set para honrar las contribuciones de estas mujeres a la historia de la NASA. El segmento de Hamilton dentro del set recrea notablemente su icónica fotografía de 1969, mostrándola junto a una importante pila de sus listados de software.

En 2019, para conmemorar el 50.º aniversario del aterrizaje del Apolo, Google honró a Hamilton configurando los espejos de la instalación de energía solar Ivanpah para proyectar una imagen de ella y el Apolo 11 a la luz de la luna.

El personaje de Margo Madison, una ingeniera ficticia de la NASA que aparece en el filme alternativo. serie de historia Para toda la humanidad, se inspira en Hamilton.

Reconocimientos

Publicaciones seleccionadas

Çavkanî: Arşîva TORÎma Akademî

Sobre este artículo

Información sobre Margaret Hamilton (software engineer)

Breve guía sobre la vida, investigaciones, descubrimientos e importancia científica de Margaret Hamilton (software engineer).

Etiquetas de tema

Información sobre Margaret Hamilton (software engineer) Quién fue Margaret Hamilton (software engineer) Vida de Margaret Hamilton (software engineer) Investigaciones de Margaret Hamilton (software engineer) Descubrimientos de Margaret Hamilton (software engineer) Aportes científicos

Búsquedas comunes sobre este tema

  • ¿Quién fue Margaret Hamilton (software engineer)?
  • ¿Qué descubrió Margaret Hamilton (software engineer)?
  • ¿Qué aportes hizo Margaret Hamilton (software engineer)?
  • ¿Por qué es importante Margaret Hamilton (software engineer)?

Archivo de categoría

Archivo de Ciencia: Artículos y Temas Clave

Sumérgete en el vasto universo del conocimiento científico. Nuestra colección de artículos sobre Ciencia te invita a explorar desde los fundamentos de la biología molecular como el ADN y el ARN, hasta conceptos

Inicio Volver a Ciencias