Skip to Main Content
Like industrial development organizations, the US space agency struggles with the challenges of creating reliable software. NASA's deep space community is attacking its software crisis via two complementary approaches - one stressing the power of engineering discipline, the other the potential of automated code generation and verification. Both predictable and unpredictable hazards await the spacecraft, robots, and scientific instruments that humans dispatch to explore our solar system. The toughest hazard may be the known presence of unknown bugs in even rigorously tested software. By exploring new technologies and approaches to develop provably reliable software within tough constraints, NASA has a chance to advance the state of the art, contributing to computer science as well as software engineering. In addition, any successful spin-off that improves reliability while cutting development time and costs could, in principle, generate savings for US industry equal to the nation's budget for space exploration.