As part of NASA’s Mars Exploration Program, the Perseverance rover’s landing was another exciting step towards knowing more about our Martian neighbor. JPL has been a long-time customer of GrammaTech and are regular users of CodeSonar on their software projects. As such, we take great pride in being a small part of their success and achieving their project goals.
As with the Curiosity rover program, GrammaTech has a history of helping JPL improve their software quality and safety. Included with this is CodeSonar’s mapping of the JPL Institutional Coding Standards for the C Programming Language. JPL’s coding standard was built from a combination of MISRA C and the “Power of Ten” rules developed in-house by Gerard Holzmann at JPL.
GrammaTech worked directly with JPL to investigate the use of coding standards in conjunction with advanced static analysis tools to improve the safety of JPL’s software. See our case study covering this project. We extended CodeSonar to automatically enforce the Power of 10 rules, as well as automatically flagging serious defects. In developing the coding guidelines, JPL looked at the types of software related anomalies that had been discovered in missions during the last few decades and came up with a short list of problems that seem to be common across almost every mission. This led to the idea of defining a very small set of rules that could easily be remembered, that clearly related to risk, and for which compliance could mechanically be verified. The 10 rules are designed to reduce risk for mission critical software, and have evolved into the JPL Institutional Coding Standard for the Development of Flight Software. As part of this work, it was recognized that advanced static analysis tools should be used aggressively throughout the development process.
We continue to help JPL improve their software quality and safety and wish them every success on Perseverance and all future missions.
Interested in reading more? Check out our Curiosity Rover Case Study.