Information Technology

Debugging Code Is Rocket Science
Subheadline
A simple NASA static program analyzer finds coding errors for business as well as rockets

Originally published 12/15/2020
Body

Incorrect computer code can blow up rockets, as NASA learned from the first launch in the Ariane 5 rocket series. The 501 rocket used computer code written for the Ariane 4 series – but the change to the rocket systems resulted in an anomaly responsible for an explosion 37 seconds after launch. Finding and fixing coding errors, or bugs, required a new approach.

The airline industry, equally concerned about safety, needed a similar tool.

Software errors are even found during deployment, a major concern, explains Ames Research Center’s Guillaume Brat. Industry lobbied NASA to help with software verification, and IKOS is one of these tools developed.

The Inference Kernel for Open Static (IKOS) Analyzer can evaluate any program written in C or C++ computer language, without running the program it’s analyzing. It looks for mistakes inadvertently introduced by programmers, similar to how a grammar-check program might find errors in an essay.

The program will occasionally identify some coding as having an anomaly when it doesn’t. Fortunately, IKOS has a low rate of those mistakes. Error-free code is marked green. Problems are noted in red. And yellow indicates a potential problem that requires a programmer’s review. Less than 5% of the code is mistakenly marked as needing correction, compared to 20 to 50% for other automated analyzers.

The automated review ultimately saves thousands of staff hours and related expenses. The cost of catching and fixing a software error grows exponentially with each phase of the development cycle, adds Brat. Periodic use of a tool like IKOS makes it possible to uncover bugs early — and it only takes a few minutes to review millions of lines of code.

IKOS was “optimized for the type of software found in civilian aircraft, ranging from small drones to transport aircraft,” he notes. Helping the airline industry meet software certification required by the Federal Aviation Administration was a key motivator driving the development of IKOS. Mandated code review was time consuming and expensive.

However, now anyone can download the open-source program and use it at no cost. Private companies, individuals and government institutions downloaded IKOS more than 1,200 times since 2013, and it has gathered 1,255 stars on GitHub. The software is improving the quality of computer code used in a variety of applications.

Atlas V rocket

The Atlas V rocket shown here carrying NASA's Lunar Reconnaissance Orbiter and Lunar Crater Observation and Sensing Satellite in 2009. Some of the computer code can be used from one generation of rocket to the next. To make sure the introduction of a new rocket system doesn’t produce errors, the IKOS Analyzer flags possible bugs for programmers to review and fix. Credit: NASA

A man using an industrial baler

Industrial machinery, such as this baler, can be dangerous to operate, so it has strict safety requirements. The Inference Kernel for Open Static (IKOS) Analyzer developed by NASA helps companies find and correct programming errors in controller systems for these machines, ensuring safe operations. Credit: JE Electronic A/S

woman coding software

Credit: gorodenkoff via Getty Images