bannerd



Book A. Introduction

Welcome to the NASA Software Engineering 

and Assurance Handbook, NASA-HDBK-2203.



Software is a core capability and key enabling technology for NASA's missions and supporting infrastructure. 

Software plays a vital role as both a key capability and an enabling technology for NASA's missions and supporting infrastructure. This wiki-based handbook provides practical guidance for meeting the requirements outlined in NPR 7150.2, NASA Software Engineering Requirements, and NASA-STD-8739.8, Software Assurance and Software Safety Standard. These requirements are based on industry standards and NASA’s proven expertise in software engineering.

Designed for those involved in the acquisition, management, development, assurance, maintenance, and operations of NASA software, the handbook offers "best-in-class" strategies for developing safe and reliable software to support NASA’s projects.

NASA-HDBK-2203 serves as a readily accessible reference, consolidating the collective knowledge of experts with extensive experience in all aspects of NASA software systems. It is an integral part of NASA's ongoing effort to enhance software engineering and assurance processes and improve software product quality across the Agency.

Documents can be viewed and downloaded in PDF format:

You can submit any inputs and suggestions regarding SWEHB via "Feedback" in the NASA Technical Standards System (NTSS).

What's New in SWEHB!

Added Objective Evidence for Each Requirement

Objective evidence plays a crucial role in ensuring accountability, traceability, and reliability across software assurance and safety activities. It provides documented, unbiased proof that a specific activity has been performed or confirmed by the responsible software assurance/safety personnel — and it’s not just about checking a box. It amplifies the credibility of your processes.

Documenting objective evidence can take multiple forms depending on the activity being verified. Some examples include:

  • Audit Records and Checklist Results: Observations, findings, or risks identified, documented in a tracking system, or captured in emails.
  • Meeting Records: Attendance lists, meeting minutes, or notes stored in the project repository.
  • Status Updates: Memos, emails, or reports confirming an activity took place, supported by summaries or confirmation checklists.
  • Reviewed/Witnessed Activities: Signatures on reviewed products or processes to validate completion or compliance.
  • Short Summaries: Concise statements that provide insight into specific activities or milestones, such as:
    • Progress on IV&V Program Execution.
    • Percentage of hazards traced to software requirements.

When implemented consistently, objective evidence strengthens your project’s integrity, enhances collaboration, and aligns with the guidelines set forth in Section 8.16 of the handbook. Not only does it enable teams to track progress effectively, but it also instills confidence in the accuracy of assurance efforts.

The bottom line? Every requirement deserves solid, verifiable evidence. By prioritizing documentation, you’re not just managing activities — you’re building trust across the project.

5.09 - SRS - Software Requirements Specification guidance was rewritten with assistance from AI and PAT-059 updated.

Guidance for the Minimum Recommended Content of the Software Requirements Specification was rewritten and expanded using AI content. This rewrite includes expanded guidance, examples, and new guidance for Software Assurance. PAT-059 - Software Requirements Specification Assessment was updated to coincide with this new guidance.

5.10 - STP - Software Test Plan guidance has been totally rewritten using AI. 

Guidance for the Minimum Recommended Content of the Software Test Plan was rewritten and expanded using AI content. Due to the breadth of information and examples added, this enhanced guidance has been spread across multiple tabs.

Topic 7.23 has been added and is now available for use. 

Topic 7.23 - Software Fault Prevention and Tolerance This topic guides developers to reduce the likelihood of software faults pre-flight and to detect/mitigate the effects of software errors should they occur in-flight.  

A new Topic 8.30 - Flight and Ground PLD Development is now available. 

PLDs, especially FPGAs, are becoming increasingly critical in complex avionics and space systems. Establishing a standardized and scalable approach to their development and assurance will not only improve consistency across NASA projects but also enhance mission safety and reliability. By emphasizing early planning, hazard management, training, cross-center collaboration, and consistent application of best practices, NASA can address current limitations while building a foundation for future advancements.


Introduction

The NASA Software Engineering and Assurance Handbook (NASA-HDBK-2203) was created to address requests for additional guidance, rationale, resources, references, and lessons learned in the acquisition, management, development, assurance, and maintenance of NASA software systems. Its electronic wiki-based format was selected to meet evolving needs, including:

  • Publishing material in a timely manner.
  • Delivering concise, screen-friendly information.
  • Simplifying updates to keep the content current.
  • Enabling easy searches.
  • Providing a platform for engaging the NASA software community by:
    • Sharing best practices.
    • Contributing lessons learned from projects.

The handbook is accessible via:

It also includes links to additional processes, templates, and tools from the Software Processes Across NASA (SPAN) repository (available only to NASA users via the SPAN tab).

While the handbook can be used like a traditional hard copy guidebook, its digital format provides significant advantages. Users can quickly access relevant, concise information by navigating the structured chapters or searching directly. A brief familiarization with its organization is usually sufficient to fully leverage its resources.

The handbook provides detailed guidance linked to the Software Requirements (SWE) of NPR 7150.2, as well as information on software assurance, software safety requirements, and related topics. Users should also consult their NASA Center’s resources for specific local procedures and guidance.

For NASA users, the Software Engineering Handbook is available on the NEN from the Software Engineering Community of Practice homepage. This site offers additional guidance and information to software developers, including the Ask an Expert pick, a Contact List, a Document Repository, and much more. Frequent users may wish to add a direct bookmark to the NASA Software Engineering and Assurance Handbook, NASA-HDBK-2203 in their browser https://swehb.nasa.gov.

Here's an overview of each major section within the NASA Software Engineering and Assurance Handbook, NASA-HDBK-2203:

  • A contains the Introduction.
  • B contains the developed guidance for each institutional requirement in NPR 7150.2. These SWE descriptions are from Chapter 2 of NPR 7150.2. Each SWE guidance section provides stand-alone explanations and interpretive information about the implementation of the requirement. The guidance material includes hyperlinks for easy reference to related SWEs and Topics.
  • C contains the developed guidance for each software project requirement in NPR 7150.2. Each SWE guidance section provides a stand-alone explanation and interpretive information about the implementation of the requirement. The guidance includes hyperlinks for easy reference to related SWEs and Topics. Each requirement in C also includes the software assurance steps and software safety requirements and guidelines.
  • D contains special Topics, most in the form of essays, that are broader than any single SWE. Many of the special Topics take the form of "how-to" and instructional material for users seeking to improve their knowledge and practices in software engineering, software assurance, and software safety. The special topics help the user go beyond the minimum descriptions presented in each SWE. Topics are more expansive on particular ideas and contain additional instructions for developing and acquiring software.
  • E contains a list of terms including acronyms used in the Handbook, listings of and references to software development and assurance tools used by the Centers, and a complete listing of Handbook references in a numerated References Table.
  • F is a link to the Software Processes Across NASA (SPAN) repository accessible to NASA users only. This repository contains processes and process assets approved for use across the Agency.

Explanation of the SEARCH Box in the splash banner above: This utility allows the NASA Software Engineering and Assurance Handbook, NASA-HDBK-2203 user to interrogate the Handbook contents for particular items of interest.

In the handbook, each typical requirement, SWE, has seven sections:

  • THE REQUIREMENT: This section is a restatement of the NPR 7150.2 requirement wording, including any Notes from either the requirement paragraph itself or any applicable note from Appendix C. This section also gives a tabular representation of the applicability to each software class 438.
  • RATIONALE: This section provides useful information regarding the purpose of the requirement. Occasionally, historical information and references are included to support the rationale statement.
  • GUIDANCE: This section provides information helpful for interpreting the requirement, its scope, its relationship to other SWE, associated best practices, and references to supporting materials (standards, guides, published technical papers, the NEN, and SPAN materials).
  • SMALL PROJECTS: This section suggests implementation aids to small projects to help satisfy the SWE while accommodating the typically limited resources of time, funds, and personnel. The definition of a "small project" needs to be determined by the user.

This determination does not relieve a project from satisfying the requirements of the NPR. When small projects need to reduce the set of applicable software requirements due to constraints, consult the designated Center Software Technical Authority. NPR 7120.5 and the NASA Chief Engineer’s specific direction provide direction on tailoring the NPR 7120.5 requirements.

  • RESOURCES: This section provides a listing of referenced and footnoted texts, documents found within publicly accessible NASA repositories and out on the web, and other useful documents (e.g., checklists and templates). The Handbook includes in the Resources sections listings of additional readings, i.e., useful items not specifically cited or linked to in the GUIDANCE section, but thought by the authors to contain educational or expanded discussions of the ideas covered in the SWE write-up. Also, this section usually includes a separate table listing of tools and items that will help the user satisfy the requirement (e.g., developer tools). The Handbook wiki links SWEs and tools through the use of a master Tools table. The Tools table provides websites for accessing the tool. It also lists the Center(s) that currently use the tool in case the reader wants to seek out the "experiences" of a current user of the tool. Readers are invited to submit their tools for candidate inclusion in the Tools table for the benefit of others around the Agency.
  • LESSONS LEARNED (LL): This section contains references to the experiences of others involved in NASA software development activities as well as other industry and government development efforts. The majority are in the Public Lessons Learned library 439  at the Office of the Chief Engineer (OCE). Some are derived from specialized projects or Center collections as well as from reputable industry and government groups. Occasionally a lesson has only indirect applicability to the requirement. 
  • SOFTWARE ASSURANCE: This section contains the software assurance and software safety steps and requirements needed to assure each engineering requirement, the software assurance and software safety products required for each requirement, the software assurance, and software safety metrics required for each requirement, and the software assurance and software safety guidance associated with each software assurance and software safety step and requirement.

Remember that the NPR 7150.2 is a requirements document. It uses "shall" exclusively to indicate requirements. Applicability of an NPR 7150.2 requirement applies per the NASA Software Classification, and the matrix in Appendix C (of the NPR). The handbook is not a requirements document, only an informational document.

Earlier versions of NPR 7150.2 made extensive use of the NPR's Notes sections to help with the interpretation of the SWE. This Handbook is intended to collaborate with and augment the current NPR Notes, and to include valuable guidance from previous versions of NPR 7150.2.

The Requirements Mapping Matrix (RMM) in NPR 7150.2 provides a list of the applicability of each software project requirement by the class of software. Associated with many of the entries in the RMM are one or more notes that modify the applicability of the requirement for a particular class. Since the handbook makes explicit mention of these modifiers in section 1 of the guidance for each requirement, SWE, an additional explanation for the modifiers is:

  • X - Indicates an invoked requirement by this NPR consistent with Software Classification (ref. SWE-139). May be tailored with Technical Authority approval (ref. Chapter 2.2).
  • Blank - Optional/Not invoked by this NPR.

  • Center - Center Director or the Center Director’s designated Engineering Technical Authority, the Center Director's designated SMA Technical Authority, and the CHMO designated for Health and Medical Technical Authority. The CIO, or the designee, has institutional authority on all Class F software projects and has joint responsibility for the cybersecurity requirements in section 3.11 per the direction in the Requirements Mapping Matrix.

  • CIO - The OCIO, or the designee Center CIO, has institutional authority on all Class F software projects and has joint responsibility for the cybersecurity requirements in section 3.11 per the direction in the Requirements Mapping Matrix.

Each requirement marked 'X' for the project's software classification(s) should be addressed in the Requirements Mapping Matrix. All requirements can be tailored per the guidance in this directive. Requirements that do not apply to a given project, such as the IV&V requirements, should be tailored out in the Requirements Mapping Matrix with justification.

Some general comments:

  • Note that the SWE titles in the SWEHB may not always agree with those in the NPR. The SWEHB Development Team expanded the titles for some of the SWE to help distinguish between other similarly sounding SWE names (e.g., "bidirectional traceability").
  • See the Terms Table for a complete list of definitions of unique terms used in the SWEHB.
  • The referenced material listed in the Resources section is located on the NASA Headquarters NODIS site, e.g., NPRs, NPDs,  in NTSS 442, e.g., NASA standards, IEEE standards, or in other NASA sites, e.g., materials from the OCE, Public lesson learned sources; etc. Please note that many of the Agency or Center assets are subject to scheduled updates. While we will make every effort to link to the latest versions, editions, or documents, you may discover references that have broken links or require updating. We invite the community to submit requests for information via "Feedback" at http://standards.nasa.gov/ and requests for changes to the Handbook via MSFC Form 4657, Change Request for a NASA Engineering Standard.
  • The handbook uses citations to external sites and general web-hosted sites. While attempts were made to cite publicly available (i.e., "free") references, there may be an occasional reference that suggests the reader "buy" a copy. If you come across one of these, and you are a NASA user, try to access it through the NASA Technical Standards 442 site. This NASA site provides prepaid access to many external repositories through an Agency-wide agreement with the site.
  • (Caveat: Since the web is a dynamic place, some references in the Resources section of the SWE may have been discontinued online or moved to another host by their owners.  While all references have been verified on internal Agency networks as well as external Virtual Private Network (VPN) access, the variances in firewall and VPN settings, permissions, and configurations may affect access to these references.)

Title Material

NASA TECHNICAL HANDBOOK

National Aeronautics and Space Administration

Washington, DC  20546-0001

NASA Software Engineering and Software Assurance Handbook

NASA-HDBK-2203B

Approved: April 20, 2020

Superseding NASA-HDBK-2203A

DOCUMENT HISTORY LOG

Status

Document Revision

Approval Date

Description

Baseline

1

02-28-2013

Initial Release

Revision 

 01-13-2017

Handbook updated to address the NASA Software Engineering Requirements, NPR 7150.2B, changes.  Update the guidance topics.

Revision B 04-20-2020Handbook updated to address the NASA Software Engineering and Software Assurance Requirements, NPR 7150.2C, changes, and NASA-STD-8739.8 changes.  Update the guidance topics.
RevisionC
Handbook updated to address the NASA Software Engineering and Software Assurance Requirements, NPR 7150.2D, changes, and NASA-STD-8739.8 changes.  Update the guidance topics.

FOREWORD

This NASA Technical Handbook is published by the National Aeronautics and Space Administration (NASA) as a guidance document to provide engineering information; lessons learned; possible options to address technical issues; classification of similar items, materials, or processes; interpretative direction and techniques; and any other type of guidance information that may help the Government or its contractors in the design, construction, selection, management, support, or operation of systems, products, processes, or services.

This NASA Technical Handbook is approved for use by NASA Headquarters and NASA Centers and Facilities.  It may also apply to the Jet Propulsion Laboratory and other contractors only to the extent specified or referenced in applicable contracts.

This wiki-based NASA Technical Handbook provides users and practitioners with guidance material for implementing the requirements of NPR 7150.2, NASA Software Engineering Requirements 083  and the NASA Software Assurance and Software Safety Standard, NASA-STD-8739.8. The use of this Software Engineering and Software Assurance Handbook is intended to provide "best-in-class" guidance for the implementation of safe and reliable software in support of NASA projects. The NASA Software Engineering and Assurance Handbook, NASA-HDBK-2203 is a key component of the NASA Software community implementation of an Agency-wide plan to work toward a continuous and sustained software engineering and software assurance process and product improvement.

Requests for information should be submitted via "Feedback" at http://standards.nasa.gov/. Requests for changes to this NASA Technical Handbook should be submitted via MSFC Form 4657, Change Request for a NASA Engineering Standard.


Ralph R. Roe, Jr 
NASA Chief Engineer

Approval Date:


4. Resources

5. Accessing Handbook Versions

The version of the handbook that you are viewing is noted in the header image. Clicking on this image, while on any page of the SWEHBVD, will take you back to the Introduction page for this version.

To access other versions of the Software Engineering Handbook use the links below:

Four versions of the NASA Software Engineering and Assurance Handbook, NASA-HDBK-2203 are available for use (see Tab 5 to access the versions of the handbook)

  • The original version of the handbook - addresses the NASA Software Engineering Requirements in NPR 7150.2A. NPR 7150.2A had an effective date of November 19, 2009, to the expiration date of November 19, 2014.
  • Revision A - addresses the NASA Software Engineering Requirements in NPR 7150.2B. NPR 7150.2B had an effective date of November 19, 2014, to the expiration date of August 2, 2019.
  • Revision B - addresses the NASA Software Engineering Requirements in NPR 7150.2C and the requirements in the NASA Software Assurance and Software Safety standard, NASA-STD-8739.8A. NPR 7150.2C had an effective date of August 2, 2019, to the expiration date of August 2, 2024. NASA-STD-8739.8A 278 has an effective date of June 10, 2020.
  • Revision C - Addresses the NASA Software Engineering Requirements in NPR 7150.2D, and the requirements in the NASA Software Assurance and Software Safety standard, NASA-STD-8739.8A. NPR 7150.2D had an effective date of 03/08/2022, to the expiration date of 03/08/2027. NASA-STD-8739.8B 278 has an effective date of June 10, 2020.
  • NPR 7150.2D is the latest version of the NASA Software Engineering Requirements.  
    NASA-STD-8739.8B is the latest version of the NASA Software Assurance and Software Safety Standard

    278 has an effective date of September 8, 2022.

5.1 SWE History

The SWE History Summary includes all SWE numbers and their history of use in all versions of the Software Engineering Handbook.

Click SWE History to view.

NASA-STD-8739.8B Title Material

StatusDocument RevisionApproval DateDescription
BaselineInitial2004-07-28Initial Release

12005-05-05Administrative changes to the Preface; Paragraphs 1.1, 1.4, 1.5, 2.1.1, 2.2.2, 3, 5.1.2.3, 5.4.1.1; 5.6.2, 5.8.1.2, 6.7.1.a, 7.3.2, 7.3.3, 7.5, 7.5.1; Table 1; Appendix A; Appendix C to reflect NASA Transformation changes, reflect the release of NASA Procedural Requirements (NPR) 7150.2, NASA Software Engineering Requirements and to make minor editorial changes. Note: Some paragraphs have changed pages as a result of these changes. Only pages where content has changed are identified by change indications.

A2020-06-10The revised document addresses the following significant issues: combined the NASA Software Assurance Standard (NASA-STD-8739.8) with the NASA Software Safety Standard (NASA-STD-8719.13), reduction of requirements, bring into alignment with updates to NPR 7150.2, added a section on IV&V requirements to perform IV&V, and moved guidance text to an Electronic Handbook. This change combines the updates to NASA-STD-8739.8 and the content of NASA-STD-8719.13. The update includes the NASA software safety requirements and cancels NASA-STD-8719.13 standard.

B2022-09-08Brings into alignment with the update to NPR 7150.2D. Update the Appendix A table containing the additional areas to consider when identifying software causes in Hazard Analysis.


DOCUMENT HISTORY LOG

Approved: TBDMeasurement System Identification: Not Measurement Sensitive

NASA TECHNICAL STANDARD

National Aeronautics and Space Administration

NASA-STD-8739.8B

Approved: 2022-09-08
Superseding NASA-STD-8739.8A

SOFTWARE ASSURANCE AND SOFTWARE SAFETY STANDARD
APPROVED FOR PUBLIC RELEASE – DISTRIBUTION IS UNLIMITED

Forward

This NASA Technical Standard is published by the National Aeronautics and Space Administration (NASA) to provide uniform engineering and technical requirements for processes, procedures, practices, and methods that have been endorsed as standard for NASA facilities, programs, and projects, including requirements for selection, application, and design criteria of an item.
This standard was developed by the NASA Office of Safety and Mission Assurance (OSMA). Requests for information, corrections, or additions to this standard should be submitted to the OSMA by email to Agency-SMA-Policy-Feedback@mail.nasa.gov or via the “Email Feedback” link at https://standards.nasa.gov.

William Deloach

NASA Chief, Safety and Mission Assurance

TBD

2022-09-08



  • No labels