Faculdade

Notícias

Lembrando os 50 anos da Apollo 11, e do software que ajudou a tornar o sonho possível

18-07-2019

Por ocasião do 50º aniversário da maior conquista tecnológica da humanidade, a primeira alunagem tripulada a 20 de Julho de 1969 UTC, o DI FCT NOVA e o NOVA Laboratory for Computer Science and Informatics associam-se às comemorações mundiais, recordando o mais espantoso sistema ciberfísico alguma vez concebido: a nave Apollo. 
 
Vale a pena lembrar o primeiro parágrafo do relatório técnico sobre o software de pilotagem do Módulo Lunar Apollo, um projeto liderado por Margaret Hamilton, MIT, (Margaret Hamilton, NASA's First Software Engineer) consistindo em cerca de 145 mil "linhas de código" (cf. Apple OSX 86 milhões de loc).
 
"This report describes how the Apollo lunar-descent guidance works, why it was designed this way, and, in several cases, how it might have been designed differently. The concepts described can be applied to landing on any planetary body, with or without atmosphere, should man resolve to continue this adventure. The solutions presented offer ample opportunity for checking the theory. Such checks have been made, and all algorithms are known to work as conceived." 
 
Ciência, humanismo, eficácia, visão e pragmatismo supremos.
 

 
A alunagem não seria possível de todo sem o uso intensivo de software e da combinação humano-máquina: guiar a nave manualmente da órbita até ao ponto de alunagem não seria obviamente uma capacidade acessível a um ser humano.
 
Assim, conjugando inúmeras disciplinas de Ciência e Engenharia, como Electrónica, Física, Materiais, Estruturas, Mecânica, Química, Matemática, mas também favorecendo fenómenos como os movimentos ambientalista inspirados pela imagem do "Blue Marble" ou a ironia social subjacente num "Space Oddity", o programa Apollo promoveu um salto quântico para a Ciência da Computação e a Engenharia de Computadores, de que todos nos orgulhamos.
 
No entanto, o que tornou mesmo possível o impossível, foi sem dúvida o esforço notável de colaboração em grande escala, focado no objetivo comum de transformar um sonho em realidade, separando o essencial do secundário, não comprometendo num milímetro o rigor e profissionalismo, e acreditando na viabilidade da meta. 
 
Os resultados falam por si, sem necessidade de empolamento. Verdadeiramente inspirador!
 
Muitos conceitos fundamentais, quer teóricos quer tecnológicos, presentes em dispositivos computacionais banais hoje em dia, tanto em arquitetura de computadores como em software de sistemas, foram criados no contexto do programa Apollo. O software desenvolvido, publicado recentemente no github, incorporou novos princípios e técnicas em sistemas de operação, controle em tempo real, tolerância a falhas, interação baseada em eventos, processamento paralelo, ou algortimos de pequena pegada energética (computação verde, como hoje se diria), que podem ser encontrados na maior parte dos computadores modernos, incluíndo os nossos smartphones. Foram também desenvolvidas pela primeira vez metodologias de desenvolvimento e métodos de validação de software para sistemas críticos, incluindo a introdução da designação "engenharia de software".
 
A título de curiosidade, chama-se a vossa atenção para a data de publicação da versão final do software de navegação do módulo lunar Eagle: 14 de Julho de 1969, apenas dois dias antes do lançamento do foguetão Apollo 11 Saturn V, e apenas seis dias antes da alunagem, ou seja, just in time :-) !!
 
Stay tuned !
 
Luís Caires, com o NOVA Laboratory for Computer Science and Informatics