bannera

Book A.
Introduction

Book B.
7150 Requirements Guidance

Book C.
Topics

Tools,
References, & Terms

SPAN
(NASA Only)

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Error formatting macro: alias: java.lang.NullPointerException
SWE-020 - Software Classification
Unknown macro: {div3}

1. Requirements

2.2.8.1 The project shall classify each system and subsystem containing software in accordance with the software classification definitions for Classes A, B, C, D, E, F, G, and H software in Appendix E.

1.1 Notes">1.1 Notes

The applicability of requirements in this NPR to specific systems and subsystems containing software is determined through the use of the NASA-wide definitions for software classes in Appendix E and the designation of the software as safety-critical or non safety-critical in conjunction with the Requirements Mapping Matrix in Appendix D. These definitions are based on 1) usage of the software with or within a NASA system, 2) criticality of the system to NASA's major programs and projects, 3) extent to which humans depend upon the system, 4) developmental and operational complexity, and 5) extent of the Agency's investment. The NPR allows software written to support development activities (e.g., verification software, simulations) to be classified separately from the system under development; however, such support software is usually developed in conjunction with the system and not as a separate project. Projects may decide to reuse processes and work products established for the development of the system to satisfy the NPR 7150.2 requirements for the support software. The software assurance organization will perform an independent classification assessment and the results will be compared as per NASA-STD-8739.8, Software Assurance Standard. Software management and software assurance must reach agreement on classification of systems and subsystems. Disagreements are elevated via both the Engineering Technical Authority and Safety and Mission Assurance Technical Authority chains. The classification decision is documented in the Software Development or Management Plan as defined in Chapter 5.

1.2 Applicability Across Classes

Appendix D of NPR 7150.2 does not include any notes for this requirement.

Class

  A_SC 

A_NSC

  B_SC 

B_NSC

  C_SC 

C_NSC

  D_SC 

D_NSC

  E_SC 

E_NSC

     F      

     G      

     H      

Applicable?

   

   

   

   

   

   

   

   

   

   

   

   

   

Key:    A_SC = Class A Software, Safety Critical | A_NSC = Class A Software, Not Safety Critical | ... | - Applicable | - Not Applicable
X - Applicable with details, read above for more | P(C) - P(Center), follow center requirements or procedures

Unknown macro: {div3}

2. Rationale

Classifying software provides essentially pre-tailoring of software engineering requirements, software safety requirements, software assurance requirements and other software requirements for different types and levels of software.  While every requirement may be applicable to the highest classification, not every requirement will be applicable to lower level classifications.

Unknown macro: {div3}

3. Guidance

Complete classifying software as soon as it has been determined that a project includes software.  Both the project and software assurance independently classify software and, as stated in the NPR 7150.2 note for this requirement, "Software management and software assurance must reach agreement on classification of systems and subsystems. Disagreements are elevated via both the Engineering Technical Authority and Safety and Mission Assurance Technical Authority chains. The classification decision is documented in the Software Development or Management Plan ..."

When classifying software be sure to consider:

  • All software for the system or subsystem (classification may need to be assessed separately2)
  • How the software is intended to be used
  • Relevance to major programs and projects
  • Interaction with humans
  • Safety criticality (see "Safety-Critical Software Determination" in the NASA Software Safety Standard)
  • Complexity (developmental and operational complexity is woven into the class definitions)
  • Investment

A no-cost classification tool is available to help organizations classify software.  Section 7.2 - Classification Tool and Safety Critical Assessment Tool of this handbook contains an introduction to the tool and its current Web address. This tool is just a first step in classifying software, but can be useful when starting the process because the results from the tool and the supporting rationale can be printed and included in classification documentation.  Final classification of software occurs through project agreement with the independent check performed by the Software Assurance organization (see [SWE-132]).  In the event of a conflict, the designated Software Engineering Technical Authority facilitates a resolution between the project and the Center Safety and Mission Assurance Organization, if possible. Note that software is not to be mis-classified to reduce requirements on small or higher risk missions. In these instances, a waiver request for reduced requirements submitted to the Engineering Technical Authority is the recommended course of action.

As a project progresses the software classification is revisited since design and usage decisions may be made which alter the original classification. For example, a research project may be so successful during development and testing that a decision is made to take the system out of the research laboratory and directly to the field for use in a real-world environment.  This decision alters the software classification and, therefore, the engineering, safety, and assurance requirements associated with it.

When questions arise regarding engineering software classification, consult the Engineering Technical Authority (TA).

Consult Center Process Asset Libraries (PALs) for Center-specific guidance and resources related to classifying software.

Additional guidance related to classifying software may be found in the following related requirement in this handbook:

[SWE-021]

Transition to a Higher Class


Unknown macro: {div3}

4. Small Projects

There is currently no guidance for this requirement specific to small projects.

Unknown macro: {div3}

5. Resources

  1. NASA Technical Standard, "NASA Software Safety Standard", NASA-STD-8719.13B, 2004.
  2. NASA Technical Standard, "NASA Software Assurance Standard", NASA-STD-8739.8, 2004.
  3. Software Engineering Process Group, Glenn Research Center, "Software Project Planning", GRC-SW-7150.3, Revision C, 2011.

5.1 Tools

Tools relative to this SWE may be found in the table below. You may wish to reference the Tools Table in this handbook for an evolving list of these and other tools in use at NASA. Note that this table should not be considered all-inclusive, nor is it an endorsement of any particular tool. Check with your Center to see what tools are available to facilitate compliance with this requirement.

No tools have been currently identified for this SWE. If you wish to suggest a tool, please leave a comment below.

Unknown macro: {div3}

6. Lessons Learned

There are currently no Lessons Learned identified for this requirement.

  • No labels