NASA Software Verification Article and Key Points

A January 2014 ACM Journal has an interesting article on software verification at NASA JPL for the Mars Curiosity Rover at the link provided. A few things that I found interesting:

  • Their standard for flight software is ISO-C99.
  • The coding standard at JPL (http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf) is risk-based and has 6 “levels of compliance”. LOC-5 and LOC-6 are for safety-critical and human-rated software and include all MISRA rules.
  • They state that there is “compelling evidence that higher assertion densities correlate with lower residual defect densities”, and therefore they specify a minimum assertion density of 2%.
  • Assertions are left active in production code and if one triggers the system goes to a safe state.***
  • They use four static analyzers: Coverity, Codesonar, Semmle, and Uno.
  • They have an in-house tool called Scrub that combines the output of all four static analyzers plus human review comments into one unified system.
  • Multi-threading issues including race conditions are a big concern. To mitigate that they use a free logic model checker called Spin.

Several years ago while I watched the mission control video of the Curiosity lander, I overheard one of the technicians saying not to worry about an error that they received from the craft during the landing since the software was in “battle-short mode”.  So apparently there are times when the “safe-state” is overridden.

The article can be accessed here.

Need Your Input!

We have been researching where and when to hold our next 3-day 62304/FDA training course and we want your feedback!
1) Does the location in the US for a public course matter to you … for example, west coast (e.g., San Francisco area) vs. east coast (e.g., Boston)?
2) What locations do you prefer?
3) Would you prefer just the 3-day FDA/62034 course or to have the option of a full week 3-day course followed by cybersecurity 1-day, and a usability 1-day?
4) What other countries would you want to see our course offered publicly?
5) What are best two months of the year for the course?  What are the least favored (not workable) months?
Please respond by email to

office@softwarecpr.com by Sep 25, 2019 if possible!

Corporate Office

15148 Springview St
Tampa, FL 33624
USA
+1-781-721-2921
Partners located in the US (CA, FL, MA, MN) and Italy.