Margaret Elaine Hamilton (nascida Heafield, nascida em 17 de agosto de 1936) é uma renomada cientista da computação americana. Ela atuou como diretora da Divisão de Engenharia de Software no Laboratório de Instrumentação do MIT, onde sua liderança foi fundamental no desenvolvimento do software de voo a bordo do Apollo Guidance Computer da NASA, crucial para o programa Apollo. Posteriormente, ela fundou duas empresas de software: Higher Order Software em 1976 e Hamilton Technologies em 1986, ambas situadas em Cambridge, Massachusetts.
Margaret Elaine Hamilton (nascida Heafield; nascida em 17 de agosto de 1936) é uma cientista da computação americana. Ela dirigiu a Divisão de Engenharia de Software no Laboratório de Instrumentação do MIT, onde liderou o desenvolvimento do software de voo de bordo do Apollo Guidance Computer da NASA para o programa Apollo. Mais tarde, ela fundou duas empresas de software, Higher Order Software em 1976 e Hamilton Technologies em 1986, ambas em Cambridge, Massachusetts.
O extenso corpo de trabalho de Hamilton inclui mais de 130 artigos, procedimentos e relatórios publicados, juntamente com contribuições para aproximadamente sessenta projetos e seis programas significativos. Ela é creditada por cunhar o termo "engenharia de software", articulando seu propósito como: "Comecei a usar o termo 'engenharia de software' para distingui-lo de hardware e outros tipos de engenharia, mas tratei cada tipo de engenharia como parte do processo geral de engenharia de sistemas." Em 22 de novembro de 2016, o presidente Barack Obama conferiu a Medalha Presidencial da Liberdade a Hamilton, reconhecendo suas contribuições essenciais para o desenvolvimento de software de voo a bordo para as missões Apollo Moon da NASA.
Primeira vida e formação educacional
Margaret Elaine Heafield nasceu em 17 de agosto de 1936, em Paoli, Indiana, filha de Kenneth Heafield e Ruth Esther Heafield (nascida Partington). Posteriormente, sua família mudou-se para Michigan, onde completou o ensino secundário na Hancock High School em 1954.
Ela iniciou seus estudos em matemática na Universidade de Michigan em 1955, transferindo-se posteriormente para Earlham College, instituição anteriormente frequentada por sua mãe. Em 1958, ela obteve o diploma de bacharel em matemática, complementado por uma especialização em filosofia. Ela credita a Florence Long, que presidiu o departamento de matemática em Earlham, por promover sua aspiração de seguir a matemática abstrata e uma carreira como professora de matemática.
Ela atribui sua decisão de incorporar um curso de filosofia menor em suas atividades acadêmicas à influência de seu pai, um poeta, e de seu avô, um diretor.
Carreira Profissional
Inicialmente, enquanto estava em Boston, Hamilton planejou fazer pós-graduação em matemática abstrata na Universidade Brandeis. No entanto, em meados de 1959, Hamilton começou a trabalhar com Edward Norton Lorenz no departamento de meteorologia do Instituto de Tecnologia de Massachusetts (MIT). Suas responsabilidades incluíam o desenvolvimento de software para previsão do tempo, utilizando os computadores LGP-30 e PDP-1 no Projeto MAC de Marvin Minsky. Suas contribuições foram essenciais para as publicações subsequentes de Lorenz sobre a teoria do caos, fato reconhecido pelo próprio Lorenz. Durante essa época, a ciência da computação e a engenharia de software ainda não haviam sido formalmente estabelecidas como disciplinas acadêmicas; conseqüentemente, os programadores normalmente adquiriam suas habilidades por meio de experiência prática no trabalho. No verão de 1961, ela fez a transição para um projeto diferente, posteriormente contratando e treinando Ellen Fetter como sua sucessora.
O Projeto SAGE
Entre 1961 e 1963, Hamilton esteve envolvido no Projeto Semi-Automatic Ground Environment (SAGE) no Laboratório Lincoln do MIT, servindo como um dos programadores responsáveis pelo desenvolvimento de software para o protótipo do computador AN/FSQ-7 (o XD-1), que a Força Aérea dos EUA empregou para detectar aeronaves potencialmente hostis. Além disso, ela desenvolveu software para uma iniciativa de rastreamento de satélite nos Laboratórios de Pesquisa de Cambridge da Força Aérea. O Projeto SAGE originou-se como uma extensão do Projeto Whirlwind, uma iniciativa do MIT que visa criar um sistema computacional capaz de prever padrões climáticos e monitorar suas trajetórias por meio de simulação. O SAGE foi posteriormente adaptado para aplicações militares em defesa aérea antiaérea. Hamilton contou:
O que eles costumavam fazer quando você entrou nesta organização como um iniciante, era atribuir-lhe este programa que ninguém foi capaz de descobrir ou executar. Quando eu era iniciante, eles me deram também. E o que aconteceu foi que a programação era complicada, e a pessoa que a escreveu ficou encantada com o fato de todos os seus comentários serem em grego e latim. Então fui designado para esse programa e realmente o fiz funcionar. Até imprimiu as suas respostas em latim e grego. Fui o primeiro a fazê-lo funcionar.
Seus esforços bem-sucedidos neste projeto a posicionaram como uma forte candidata para o cargo de desenvolvedora líder do software de voo Apollo na NASA.
Laboratório de Instrumentação do MIT e Desenvolvimento de Computador de Orientação Apollo
Em 1965, Margaret Hamilton tomou conhecimento do projeto Apollo e procurou envolvimento, atraída pela perspectiva "muito emocionante" de uma iniciativa de exploração lunar. Posteriormente, ela ingressou no Laboratório de Instrumentação do MIT, entidade responsável pelo desenvolvimento do Apollo Guidance Computer para o programa de exploração lunar Apollo. Hamilton se destacou como a primeira programadora contratada para o projeto Apollo no MIT e a primeira programadora feminina no empreendimento, eventualmente ascendendo ao cargo de Diretora da Divisão de Engenharia de Software. Suas responsabilidades incluíam liderar a equipe que desenvolveu e testou rigorosamente todo o software de bordo do Módulo de Comando e Lunar da espaçonave Apollo, bem como da estação espacial Skylab subsequente. Um segmento distinto de sua equipe se concentrou em projetar e implementar o software de sistemas, que incluía mecanismos críticos de detecção e recuperação de erros, como reinicializações e rotinas de interface de exibição (também conhecidas como exibições prioritárias), ambas concebidas e desenvolvidas por Hamilton. Ela adquiriu experiência prática durante uma época em que os currículos formais de ciência da computação eram escassos e os cursos de engenharia de software inexistentes. A extensa experiência de Hamilton abrangia um amplo espectro de disciplinas, incluindo design de sistemas e desenvolvimento de software, modelagem empresarial e de processos, paradigmas de desenvolvimento, linguagens formais de modelagem de sistemas, objetos orientados a sistemas para modelagem e desenvolvimento de sistemas, ambientes de ciclo de vida automatizados, metodologias para otimizar a confiabilidade e reutilização de software, análise de domínio, garantia de correção por meio de propriedades de linguagem integradas, técnicas de arquitetura aberta para sistemas robustos, abrangentes. automação do ciclo de vida, garantia de qualidade, integração perfeita, técnicas avançadas de detecção e recuperação de erros, sistemas de interface homem-máquina, sistemas operacionais, protocolos de teste ponta a ponta e estratégias sofisticadas de gerenciamento do ciclo de vida. Essas técnicas integradas foram projetadas para aumentar a confiabilidade do código, facilitando a identificação precoce e a retificação de erros no processo de desenvolvimento de software.
A aterrissagem lunar da Apollo 11
Durante uma fase crítica da missão Apollo 11, o Apollo Guidance Computer, em conjunto com seu software de voo a bordo, evitou com sucesso o aborto do pouso lunar. Aproximadamente três minutos antes do pouso do módulo lunar, vários alarmes de computador foram ativados. O engenheiro de software Robert Wills indicou que o astronauta Buzz Aldrin iniciou uma solicitação para que o computador exibisse a altitude e outros dados pertinentes em sua tela. Embora o sistema tenha sido projetado para acomodar sete programas simultâneos, a contribuição de Aldrin constituiu um oitavo. Esta ação, que Aldrin praticava frequentemente em simulações, resultou numa sequência de códigos de erro imprevistos durante a descida real. O software de voo a bordo interceptou esses alarmes, apresentando “exibições que nunca deveriam acontecer” que interrompiam os astronautas com notificações de alarme prioritárias. Hamilton previu e se preparou precisamente para esse cenário com anos de antecedência.
Hamilton frequentemente lembrava de um mecanismo adicional à prova de falhas. Seu inovador sistema de “exibição de prioridade” introduziu um risco consequente: o potencial de dessincronização entre o astronauta e o computador durante períodos operacionais críticos. Quando os alarmes foram acionados e as exibições de prioridade substituíram as padrão, a transição subjacente para novos programas ocorreu em um ritmo descrito como "um passo mais lento" do que os sistemas contemporâneos.
Hamilton analisou extensivamente esse problema potencial. A sua análise indicou que se um astronauta, como Aldrin, interagisse demasiado rapidamente com uma exibição de prioridade, o sistema ainda poderia registar uma resposta “normal”. A solução idealizada foi uma instrução de procedimento: ao aparecer uma exibição de prioridade, o astronauta deveria primeiro contar até cinco.
De acordo com alguns relatos, os alarmes foram disparados pelos astronautas que inadvertidamente deixaram o interruptor do radar de encontro ativado; no entanto, esta afirmação sobre a ativação não intencional do radar é contestada por Robert Wills, do Museu Nacional de Computação. O computador experimentou uma sobrecarga de interrupções, que resultou do fornecimento de energia com fase incorreta ao radar de encontro do módulo de pouso. Os alarmes do programa sinalizaram “excessos de execução”, indicando que o computador de orientação não conseguiu executar todas as tarefas atribuídas em tempo real e, consequentemente, teve que adiar algumas operações. A equipe de Hamilton aproveitou o executivo assíncrono, originalmente projetado por J. Halcombe Laning, para desenvolver o software de voo assíncrono.
O software de voo incorporou técnicas avançadas de detecção e recuperação de erros, como reinicialização "matar e recomputar" em todo o sistema a partir de um "local seguro" e funcionalidades de instantâneo/reversão. Estas capacidades facilitaram o desenvolvimento de rotinas de interface de exibição (também conhecidas como exibições prioritárias), que, combinadas com recursos man-in-the-loop, poderiam interromper as exibições padrão da missão dos astronautas para apresentar alarmes de emergência críticos. Essa funcionalidade dependia da atribuição de uma prioridade única a cada processo de software, garantindo a execução temporal e sequencial precisa de todos os eventos.
O sistema de alarme prioritário de Hamilton foi projetado para substituir as exibições padrão dos astronautas durante emergências, apresentando informações críticas que permitiram uma decisão de "ir/não ir" em relação ao pouso. Durante um incidente crítico, Jack Garman, engenheiro de computação da NASA no controle da missão, interpretou com precisão as mensagens de erro transmitidas pelas exibições de prioridade, autorizando a continuação da missão com a exclamação: "Vá, vá!" Paul Curto, um tecnólogo sênior que posteriormente nomeou Hamilton para o prêmio NASA Space Act, elogiou suas contribuições como "a base para um design de software ultraconfiável".
Hamilton posteriormente documentou sua perspectiva sobre o incidente:
O software do sistema foi projetado para detectar uma condição de sobrecarga, indicando uma solicitação de mais tarefas do que poderia executar de maneira ideal. Após a detecção, disparou um alarme, sinalizando ao astronauta: 'Atualmente estou sobrecarregado de tarefas e priorizarei apenas as mais críticas', ou seja,, aquelas essenciais para o pouso. Além do mero reconhecimento de erros, o software incorporou um conjunto abrangente de programas de recuperação. Neste caso específico, a resposta do software envolveu a desativação de tarefas de menor prioridade e o restabelecimento de funções de maior prioridade. Se o sistema não tivesse conseguido identificar esse problema e iniciar a recuperação, o sucesso do pouso lunar da Apollo 11 teria sido significativamente comprometido.
Empreendimentos Empreendedores
Em 1976, Hamilton co-fundou o Higher Order Software (HOS) com Saydean Zeldin, com o objetivo de avançar conceitos de prevenção de erros e tolerância a falhas derivados de seu trabalho no programa Apollo no MIT. Posteriormente, desenvolveram o USE.IT, um produto baseado na metodologia HOS formulada no MIT. Este produto encontrou aplicação bem-sucedida em várias iniciativas governamentais, notadamente em um projeto para formalizar e implementar C-IDEF, uma iteração automatizada de IDEF, uma linguagem de modelagem originada pela Força Aérea dos EUA dentro do projeto Integrated Computer-Aided Manufacturing (ICAM). Em 1980, o cientista da computação britânico-israelense David Harel propôs uma linguagem de programação estruturada derivada de HOS, enquadrada pela perspectiva de subobjetivos AND/OR. Além disso, o HOS foi empregado por outros pesquisadores para formalizar a semântica de quantificadores linguísticos e para estabelecer projetos rigorosos para sistemas embarcados confiáveis em tempo real.
Hamilton atuou como CEO da HOS até 1984, deixando a empresa em 1985. Em março de 1986, ela fundou a Hamilton Technologies, Inc. Esta nova entidade centrou-se na Universal Systems Language (USL) e no ambiente automatizado que a acompanha, o 001 Tool Suite, ambos baseados no seu paradigma de "desenvolvimento antes do fato" para design de sistemas abrangentes e engenharia de software.
Impacto duradouro
Hamilton é amplamente reconhecido por cunhar o termo "engenharia de software". Posteriormente, ela elaborou a gênese desta nomenclatura:
Inicialmente, o termo não era familiar em nossa esfera profissional. Isso permaneceu motivo de brincadeira por um longo período, com colegas muitas vezes me provocando por causa de meus conceitos não convencionais. Um momento crucial ocorreu quando um especialista em hardware altamente respeitado afirmou publicamente em uma reunião que o desenvolvimento de software merecia reconhecimento como uma disciplina de engenharia, análoga à engenharia de hardware. Esta aceitação resultou não apenas da adoção da nova terminologia, mas do reconhecimento coletivo de que o nosso trabalho se estabeleceu como um campo legítimo da engenharia.
Durante as missões Apollo iniciais, quando Hamilton introduziu o termo "engenharia de software", a disciplina de desenvolvimento de software carecia do reconhecimento e da posição científica concedida a outros campos da engenharia. O objetivo de Hamilton era estabelecer o desenvolvimento de software como uma disciplina legítima de engenharia. Posteriormente, a “engenharia de software” alcançou respeito comparável a outras disciplinas técnicas. A edição de setembro/outubro de 2018 da IEEE Software comemorou o 50º aniversário da engenharia de software. Hamilton discutiu a profunda influência dos “Erros” em seus esforços de engenharia de software, particularmente como sua linguagem desenvolvida, USL, poderia mitigar a maioria dos “Erros” do sistema. O projeto da USL teve como objetivo evitar a maioria dos erros no desenvolvimento inicial do sistema, reduzindo assim a dependência de extensos testes pós-desenvolvimento. Sua experiência durante a missão Apollo, que a levou à formulação de uma teoria matemática para sistemas e software, informou a criação da USL. Esta metodologia tem mantido influência significativa no campo da engenharia de software. Robert McMillan, escrevendo para a Wired, destacou sua contribuição no MIT, afirmando que ela "ajudou na criação dos princípios básicos da programação de computadores enquanto trabalhava com seus colegas na escrita de código para o primeiro computador portátil do mundo". As inovações de Hamilton vão além de seu papel fundamental nas missões lunares. Karen Tegan Padir, da Wired, afirmou ainda que Hamilton, ao lado de Grace Hopper, a inventora do COBOL e outra pioneira da programação, merece reconhecimento substancial por facilitar a entrada e o sucesso de mulheres em áreas STEM, como software.
Comemorações
Em 2017, um conjunto LEGO "Mulheres da NASA" foi lançado, incluindo minifiguras de Hamilton, das astronautas Mae Jemison e Sally Ride e de Nancy Grace Roman, a primeira chefe de astronomia da NASA. Maia Weinstock propôs originalmente o conjunto para homenagear as contribuições dessas mulheres para a história da NASA. O segmento de Hamilton no conjunto recria notavelmente sua icônica fotografia de 1969, retratando-a ao lado de uma pilha substancial de suas listagens de software.
Em 2019, comemorando o 50º aniversário do pouso da Apollo, o Google homenageou Hamilton configurando os espelhos na Ivanpah Solar Power Facility para projetar uma imagem dela e da Apollo 11 usando a luz da lua.
A personagem de Margo Madison, uma engenheira fictícia da NASA apresentada na série de história alternativa For All Mankind, inspira-se em Hamilton.
Reconhecimentos
- Em 1986, a Associação para Mulheres na Computação conferiu o Prêmio Augusta Ada Lovelace a Hamilton.
- Ela recebeu o prêmio NASA Exceptional Space Act em 2003, em reconhecimento às suas contribuições científicas e técnicas. Este prêmio, totalizando US$ 37.200, representou a soma monetária mais substancial já concedida a um indivíduo na história da NASA.
- O Earlham College concedeu-lhe o Outstanding Alumni Award em 2009.
- Em 2016, ela recebeu a Medalha Presidencial da Liberdade de Barack Obama, que constitui a honraria civil mais proeminente nos Estados Unidos.
- Em 28 de abril de 2017, ela foi homenageada com o prêmio Computer History Museum Fellow, um prêmio que reconhece indivíduos ilustres cujas contribuições à computação impactaram profundamente o mundo.
- A Universidade Politécnica da Catalunha conferiu-lhe o título de doutor honorário em 2018.
- Ela recebeu o Prêmio Washington em 2019.
- O Bard College concedeu-lhe o título de doutor honorário em 2019.
- Ela recebeu o prêmio Intrepid pelo conjunto de sua obra em 2019.
- Em 2022, ela foi incluída no Hall da Fama da Aviação Nacional, localizado em Dayton, Ohio.
Publicações selecionadas
- Hamilton, M.; Zeldin, S. (março de 1976). "Software de ordem superior - uma metodologia para definir software". Transações IEEE em Engenharia de Software. SE-2 (1): 9–32. doi:10.1109/TSE.1976.233798. S2CID 7799553.Hamilton, M.; Zeldin, S. (1º de janeiro de 1979). “A relação entre design e verificação”. Jornal de Sistemas e Software. §34§: 29–56. doi:10.1016/0164-1212(79)90004-9.Design Eletrônico.
- Hamilton, M. (junho de 1994). "001: Um ambiente de engenharia de sistemas e desenvolvimento de software de ciclo de vida completo" . (História de capa). Suplemento Editorial Especial. 22ES-30ES. Design Eletrônico.
- Hamilton, M.; Hackler, WR (2004). "Princípios de arquitetura de software comum para a unidade de navegação de orientação profundamente integrada (DI-GNU)". (Revisado em 29 de dezembro de 2004). DAAAE30-02-D-1020 e DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004.
- Hamilton, M.; Hackler, WR (2007). "A Universal Systems Language for Preventative Systems Engineering", Proceedings of the 5th Annual Conference on Systems Engineering Research (CSER), Stevens Institute of Technology, março de 2007, artigo nº 36.
- Hamilton, Margaret H.; Hackler, William R. (2007). "Uma semântica formal de sistemas universais para SysML". Simpósio Internacional Incose. 17 (1). Wiley: 1333–1357. doi:10.1002/j.2334-5837.2007.tb02952.x. ISSN 2334-5837. S2CID 57214708.Hamilton, Margaret H.; Hackler, William R. (2008). "A linguagem de sistemas universais: insights do programa Apollo". Computador. 41 (12). Instituto de Engenheiros Elétricos e Eletrônicos (IEEE): 34–43. doi:10.1109/mc.2008.541. ISSN 0018-9162.Hamilton, M. H. (setembro de 2018). "Insights derivados da análise de erros". Software IEEE. 35 (5): 32–37. doi:10.1109/MS.2018.290110447. S2CID 52896962.Vida pessoal
Hamilton tem uma irmã, Kathryn Heafield.
Ela conheceu seu primeiro marido, James Cox Hamilton, em meados da década de 1950, enquanto cursava a faculdade. O casamento deles ocorreu em 15 de junho de 1958, após sua formatura em Earlham naquele verão. Posteriormente, ela ocupou um breve cargo de professora de matemática e francês no ensino médio em uma instituição pública em Boston, Indiana. O casal mais tarde se mudou para Boston, Massachusetts, onde sua filha, Lauren, nasceu em 10 de novembro de 1959. O divórcio foi finalizado em 1967, e Margaret se casou com Dan Lickly dois anos depois.
- Lista dos pioneiros da ciência da computação
Referências
Steafel, Eleanor (20 de julho de 2019). “Uma mulher singular em meio a um ambiente dominado pelos homens”. A Revista Telégrafo. Londres: Daily Telegraph plc. pp. 56–59, 61. OCLC 69022829.
- Steafel, Eleanor (20 de julho de 2019). “Uma mulher numa sala cheia de homens”. Revista Telegraph. Londres: Daily Telegraph plc. pp. 56–59, 61. OCLC 69022829.
- Hamilton Technologies, Inc.
- Margaret Hamilton Arquivado em 5 de setembro de 2017, na Wayback Machine Vídeo produzido por Makers: Women Who Make America
- Margaret Hamilton ’58 – ganhadora da Medalha Presidencial da Liberdade, arquivada em 30 de julho de 2019, na Wayback Machine: perfil do Earlham College