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.

62304 Software Training Course – February 23-25, 2021

IEC 62304 and Emerging Standards and FDA Expectations for Medical Device and Health IT Software – Virtual

This very popular 3-day course provides a clear understanding of applying IEC 62304 standard for medical device software and much more. The course compares and contrasts 62304 with FDA expectations and discusses approaches for alignment. In addition, participants will learn of other relevant standards and technical reports pertinent to medical device software, HealthIT, medical mobile apps, and Software as a Medical Device (SaMD) products (e.g., 82304, 80002-1, 14971, 80001-2-x, 62366).

Participants will gain practical advice and pragmatic experience with all types of medical software. Participants will leave with a clear understanding of how to effectively and efficiently integrate 62304 compliance into their software development lifecycle (SDLC).

Register (click):  EventZilla Registration Site

Need info?  Email us at training@softwarecpr.com

Corporate Office

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