Some Software Tools and Techniques

The section will briefly present some software tools, tests and techniques that are applied as part of software assurance programs. Of course, this is just a small sample selected among hundreds of other possibilities. The purpose of this section is to give the AAQ user a really general idea about the countless resources available.


Litmus Test

NASA employs a Litmus test to determine safety critical software.

The Litmus test is a set of three criteria. If the SW meets any of the three, then it is deemed safety-critical. The three criteria are:

  1. "Resides in a safety-critical system (as determined by a hazard analysis) AND at least one of the following apply:
    1. Causes or contributes to a hazard.
    2. Provides control or mitigation for hazards.
    3. Controls safety-critical functions.
    4. Processes safety-critical commands or data2.
    5. Detects and reports, or takes corrective action, if the system reaches a specific hazardous state.
    6. Mitigates damage if a hazard occurs.
    7. Resides on the same system (processor) as safety-critical software.
  2. Processes data or analyzes trends that lead directly to safety decisions (e.g., determining when to turn power off to a wind tunnel to prevent system destruction).
  3. Provides full or partial verification or validation of safety-critical systems, including hardware or software subsystems.”      

(Source:  NASA-STD-8739.83)


It is up to you: Click on the hotspots of the image below in order to discover the the hazard analysis classifications.


Software Classification


NASA uses five different criteria for determining SW class:


  • Class A: Human Related SW
  • Class B: Non-human Related SW
  • Class C: Mission Support SW
  • Class D: Analysis and Distribution SW
  • Class E: Development Support SW


Additional classifications of SW can be appointed by the chief information officer (CIO). NASA uses a scoring system to help identify the SW classification. An example is shown below (the user may switch to full screen mode in order to improve readability).



SW Requirements Compliance Matrix

NASA employs a matrix to ensure compliance to SW requirements. A sample is shown below (the user may switch to full screen mode in order to improve readability).


Software Configuration Management (SCM)

Various tools can be used to control software. One such tool is provided by IBM and is titled ClearCase. It provides CM (Configuration Management) control for SW code. If you want to know more about Clear Case and how to purchase and install it, check this section on the IBM website.

Figure 1: Clear Case


It is up to you: Pretend that you work for a group which is producing a master software for a x-ray machine. The software will  operate the x-ray machine since the patient is correctly positioned and the operator inputs a set of data to define the procedure and the region to be investigated. Review the tools you learned by doing the exercise below, which will require from you to link a task with the adequate supporting-tool.