Software Design Principles and Software Safety
NASA software safety requirements are documented in NPR 7150.2 083, and elaborated in the Software Assurance and Software Safety Standard, NASA-STD-8739.8A278 .
Design features are a small but important part of an overall software safety implementation. The driving requirement in this area is NPR 7150.2C, requirement SWE-134. The design principles that support specific provisions of SWE-134 are shown in the table below. A verified application of the NASA software design principles can help form the basis for demonstrating compliance with SWE-134.
SWE-134 Sub-requirement | Applicable Design Principle |
|---|---|
a. The software is initialized, at first start and restarts, to a known safe state. | |
b. The software safely transitions between all predefined known states. | |
c. Termination performed by the software functions is performed to a known safe state. | |
d. Operator overrides of software functions require at least two independent actions by an operator. | |
e. The software rejects commands received out of sequence when the execution of those commands out of sequence can cause a hazard. | |
f. The software detects inadvertent memory modification and recovers to a known safe state. | 9.09 Incorrect Memory Use or Access |
g. The software performs integrity checks on inputs and outputs to/from the software system. | |
h. The software performs prerequisite checks prior to the execution of safety-critical software commands. | |
i. No single software event or action is allowed to initiate an identified hazard. | |
j. The software responds to an off-nominal condition within the time needed to prevent a hazardous event. | |
k. The software provides error handling. | |
l. The software can place the system into a safe state. |
2. Resources
2.1 References
- (SWEREF-083) NPR 7150.2D, Effective Date: March 08, 2022, Expiration Date: March 08, 2027 https://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7150&s=2D Contains link to full text copy in PDF format. Search for "SWEREF-083" for links to old NPR7150.2 copies.
- (SWEREF-278) NASA-STD-8739.8B, NASA TECHNICAL STANDARD, Approved 2022-09-08 Superseding "NASA-STD-8739.8A"


