This version of SWEHB is associated with NPR 7150.2B. Click for the latest version of the SWEHB based on NPR7150.2D

SWE-133 - Software Safety Determination

1. Requirements

3.5.3 The project manager, in conjunction with the Safety and Mission Assurance organization,  shall determine the software safety criticality in accordance with NASA-STD-8719.13. 

1.1 Notes

Software Safety Critical Assessment Tool, in NASA-HDBK-2203, can be used to determine the software safety criticality.  Engineering and software assurance must reach agreement on safety-critical determination of the software.  Disagreements are elevated via both the Engineering Technical Authority and Safety and Mission Assurance Technical Authority chains.

1.2 Applicability Across Classes























Key:    - Applicable | - Not Applicable

2. Rationale

Each project, with the responsible Software Assurance organization, evaluates the project software to determine if the software is safety-critical.  If the software is determined to be safety critical, the software safety requirements within NPR 7150.2, NASA Software Engineering Requirements, and NASA-STD-8719.13, NASA Software Safety Standard 271, are applied to the safety-critical project software.

3. Guidance

The project can use NASA-STD-8739.8 278 to perform its determination of the software safety criticality. The software safety litmus test in Appendix A.1 of the Standard is applicable to all projects. The software is considered safety critical if it meets any of the three major criteria listed in the appendix. If the project is determined to be safety critical, then the project must adhere to the applicable statements in NASA-STD-8719.13 271.
As noted in NASA-STD-8719.13 271, non safety-critical software residing with safety-critical software is a concern because it may fail in a way that it disables or impairs the functioning of the safety-critical software. When methods to separate the code, such as partitioning, can't be used to limit the software defined as safety critical, care must be exercised to assure safety for a block of software (multiple CSCI) where only a portion are safety critical, and or for individual safety critical CSC's within a larger CSCI.

NASA-STD-8719.13 271 requires the software safety criticality to be re-assessed periodically (typically at each major milestone review) by the project's responsible software assurance engineer. This individual evaluates the project software for determination of safety criticality utilizing the Software Safety Litmus Test within NASA-STD-8719.13 271. This allows the software safety requirements to be refined and applied to the required areas (preventing a possibly costly over-application or a non-compliant and risky under application). It also assures that requirements are met and/or changes to the software are addressed and checked for safety criticality.

The software safety criticality assessment process and the location of the assessment results are documented within the Software Safety Plan (or equivalent). Most projects document the software safety criticality with the software classification. The project's system safety documentation also addresses it.

A best practice is to document the software safety criticality assessment results with the software classification assessment, with local S&MA and the Engineering TA both approving the results.  An example form is provided in NASA-STD-8719.13 271.

4. Small Projects

No additional guidance is available for small projects. The community of practice is encouraged to submit guidance candidates for this paragraph.

5. Resources

5.1 Tools

Tools to aid in compliance with this SWE, if any, may be found in the Tools Library in the NASA Engineering Network (NEN).

NASA users find this in the Tools Library in the Software Processes Across NASA (SPAN) site of the Software Engineering Community in NEN.

The list is informational only and does not represent an “approved tool list”, nor does it represent an endorsement of any particular tool. The purpose is to provide examples of tools being used across the Agency and to help projects and centers decide what tools to consider.

6. Lessons Learned

A documented lesson from the NASA Lessons Learned database notes the following: 

  • Mars Global Surveyor (MGS) Spacecraft Loss of Contact. Lesson Number 1805:  "Contact was lost with the Mars Global Surveyor (MGS) spacecraft in November 2006 during its 4th extended mission. A routine memory load command sent to an incorrect address 5 months earlier corrupted positioning parameters, and their subsequent activation placed MGS in an attitude that fatally overheated a battery and depleted spacecraft power. The report by the independent MGS Operations Review Board listed 10 key recommendations to strengthen operational procedures and processes, correct spacecraft design weaknesses, and assure that economies implemented late in the course of long-lived missions do not impose excessive risks."  569
  • No labels