bannera

Book A.
Introduction

Book B.
7150 Requirements Guidance

Book C.
Topics

Tools,
References, & Terms

SPAN
(NASA Only)

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

This version of SWEHB is associated with NPR 7150.2A. This version has been superseded by SWEHB Version C.  The SWEHB Version C is based on NPR 7150.2D.  Use the links in tab 5 to navigate to other versions of the SWEHB. 


Set Data
hiddentrue
namereftab
4
Tabsetup
01. Welcome
12. SWEHB Introduction
23. Title Material
34. Resources
45. Accessing Other Versions of SWEHB
Div
idtabs-1

NASA-HDBK-2203.

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

This wiki-based NASA Software Engineering and Assurance Handbook, NASA-HDBK-2203 provides users and practitioners with guidance material for implementing the requirements of NPR 7150.2, NASA Software Engineering Requirements, and the implementation of the NASA Software Assurance and Software Safety requirements in NASA-STD-8739.8 278. The requirements in this directive and standard have been extracted from industry standards and proven NASA experience in software engineering. 

The NASA Software Engineering and Assurance Handbook, NASA-HDBK-2203 is for the community that is involved in the acquisition, management, development, assurance, maintenance, and operations of NASA software. The use of this 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 as an easily accessible reference or manual that captures the broad knowledge base of numerous experts who have extensive experience in all aspects of NASA's software systems. The handbook is a key component of an Agency-wide plan to work toward a continuous and sustained software engineering and software assurance process and product improvement.

(Contact the SWEHB site admin for resolution of technical difficulties.)

Panel

The NASA Software Engineering Requirements, NPR 7150.2A, can be viewed at https://swehb-pri.msfc.nasa.gov/download/attachments/16450019/N_PR_7150_002A_.pdf?api=v2
Swerefn
refnum275
archive

The old version of the NASA Software Assurance Standard requirements, NASA-STD-8739.8, can be viewed at 

https://swehb-pri.msfc.nasa.gov/download/attachments/16450326/nasa-std-8739.8.pdf?api=v2
Swerefn
refnum308
archive

The old version of the NASA Software Safety Standard requirements, NASA-STD-8719.13C, can be viewed at 

https://swehb-pri.msfc.nasa.gov/download/attachments/16450126/nasa-std-8719.13c_0.pdf?api=v2
Swerefn
refnum271
archive

Div
idtabs-2

SWEHB Introduction

The NASA Software Engineering Handbook (SWEHB) originated from multiple requests for additional guidance, rationale, resources, references and lessons learned for acquiring, managing, developing, assuring and maintaining NASA software systems. The design of the electronic (wiki-based) format was selected to accommodate the following evolving needs:

  • To publish material in a timely fashion.
  • To provide needed information in concise screen-friendly chunks.
  • To simplify updates to the Handbook.
  • To make it easily searchable.
  • To engage the NASA software community by providing an easy-to-use vehicle for
    • providing feedback,
    • sharing examples of best practices, and
    • contributing lessons learned developed on their own projects.

The SWEHB is accessible on the NASA Engineering Network(NEN)

sweref
258
258
. The Agency's software community will find they have complete and speedy access to all written content and reference links in the Handbook through the NEN. Numerous important links are also provided for relevant processes, templates, and tools in the NASA Process Asset Library (PAL).

The SWEHB wiki can be used in a similar manner to the use of hard copy guidebooks, but it offers significant advantages for the reader. Once a general familiarity with the resource is obtained, the user will be able to directly access concise information relevant to their interest or need. (Typically a quick scan and flip through the Handbook structure, including the chapter organization and the reference/appendix material, is enough to gain familiarity.)

Users are encouraged to provide general feedback on the SWEHB by using the "Comments" box found on the wiki pages. Suggestions for improvements, identification of errors, and proposed additions to the SWEHB are all welcome. The SWEHB Development Team will review and disposition comments received. Additions, if approved for posting by the SWEHB editor, will be added via incremental updates.

The SWEHB provides guidance associated with each SWE (Software Engineering Requirement). Software developers take note - Only general approaches for Agency use are provided in the information in these essays. Users are expected to consult NASA Center resources for local procedures and guidance, when available.

Panel

The Software Engineering Handbook is available on the NEN from the Software Engineering Community of Practice

sweref
435
435
 homepage. This site offers additional guidance and information to software developers, including the Ask an Expert
sweref
436
436
 pick, a Contact List
sweref
435
435
, a Document Repository
sweref
437
437
, and much more. Frequent users may wish to add a direct bookmark to the SWEHB in their browser <https://swehb.nasa.gov>.

Here's an overview of each Book within the SWEHB:

  • Book A contains the Introduction.
  • Book B contains the developed guidance for each SWE. (Note that the SWE descriptions are organized into six chapters within Book B that mirror the organization of NPR 7150.2). The SWEs are presented in nominal ascending numerical order, with some higher-numbered SWE intermixed. These latter SWE represent the changes made between the NPR 7150.2 and the NPR 7150.2A revisions. The SWEHB was written so that each SWE guidance section provides stand alone explanations and interpretive information about the implementation of requirement. To enhance the usefulness of each module, the guidance includes hyperlinks for easy reference to related SWEs and Topics.
  • Book C 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. It is expected that the special Topics will 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. Note: Book A. Introduction includes the definitions of terms from the Appendix A of the NPR 7150.2.
  • Book D lists the current tags (labels) that are used throughout the Handbook. To further assist the user in finding needed and useful information, a "tag" system has been developed using the SMARTS Tagging approach to indicate relationships between or among individual ideas contained within multiple SWEs. The tagging search feature in Book D allows both individual and multiple tag searching. Tag searches provide an additional way for users to browse and discover content within the Handbook. The terms "tag" and "label" are used interchangeably in the Handbook.
  • Book E contains a list of terms including acronyms and/or definitions that are used in the handbook, listings of and references to software development tools that are used around the Agency, and a complete listing of Handbook references in a numerated References Table.

Explanation of the SEARCH Box in the splash banner above: This utility allows the SWEHB user to interrogate the Handbook contents for particular items of interest.

Note

Tag searches are performed using the search tool in Book D.

In the SWEHB a typical SWE essay has six 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 D. This section also gives a tabular representation of the applicability to each software class

    sweref
    438
    438
    .

    Note

    The text in this section can only be altered via an approved change request and NODIS update of NPR 7150.2.

  • RATIONALE: This section provides useful information regarding the purpose of the requirement. Occasionally, historical information and or references are included to further 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
    sweref
    258
    258
     and the NASA PAL
    sweref
    266
    266
     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 "small project" needs to be determined by the user.

    Note

    This determination does not relieve a project from satisfying the requirements in the NPR.

    When small projects need to reduce the set of applicable software requirements due to constraints, the designated Center Software Technical Authority is to be consulted. Waivers and Deviations against NASA requirements are broadly covered in NPR 7120.5

    sweref
    082
    082
    , section3.3, and specifically covered for software in Chapter 6 of NPR 7150.2 (with associated guidance in this Handbook). NASA Chief Engineer’s specific direction on waivers and Technical Authority is located on the NASA Engineering Network (NEN).
    sweref
    262
    262
    NODIS maintains a web page
    sweref
    406
    406
      for the posting of approved waivers for general reference.

  • RESOURCES: This section provides a listing of referenced and footnoted texts, documents found within NASA repositories and/or out on the web, and other useful documents (e.g., checklists and/or templates). It is instructive to note that the Handbook authors also included in the Resources sections listings of what might be best described as "additional reading", 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, 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 web sites for accessing the tool. It also lists 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 catalogued in the Public Lessons Learned library
    sweref
    439
    439
    at the Office of the Chief Engineer (OCE).
    sweref
    440
    440
    Some are derived from specialized project or Center collections as well as from reputable industry and government groups. Occasionally a lesson has only indirect applicability to the requirement. It is presented as a related lesson that can be applied to help understand the content of the SWEHB.

Remember that the NPR 7150.2 is a requirements document. It uses "shall" exclusively to indicate requirements. Applicability of a NPR 7150.2 requirement is determined by NASA Software Classification and the matrix in Appendix D (of the NPR). The SWEHB is not a requirements document, only an informational document. NO new requirements are added by the SWEHB. The authors strove to exclude the use of "shall" and "should" in any paragraph that might be interpreted as a requirement or even an augmentation to a requirement.

The 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 to augment the NPR's Notes.

The Requirements Mapping Matrix (RMM)in NPR 7150.2

sweref
443
443
 provides a list of the applicability of each requirement by the Class of software being developed. 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 SWEHB makes explicit mention of these modifiers in section 1 of the SWE essay, an additional explanation for each note is included here:

  • The "X" notation signifies that the full requirement (assuming "no exceptions") is applicable to the software. Note that requirements labeled with an "X" can still be tailored with the appropriate approvals, or otherwise affected by approved deviations and or waivers.
  • The "SO" (i.e., Safety Only) designation signifies that the requirement for the classification of software needs only to satisfy the safety aspects of the requirement. This may require the use of checklists (e.g., use of the "litmus test") in NASA STD 8739.8 NASA Software Assurance Standard
    sweref
    278
    278
     and NASA STD 8719.13 Software Safety Standard
    sweref
    271
    271
     to determine specifically what parts of the project, its software, and therefore the requirement, are applicable to ensure the development of safe software.
  • The "P (Center)" designation, while amply described in Book A. Introduction, is used separately or in combination with the "SO" modifier. The "P (Center)" modifier is only applicable to the items of the requirement that do not incur a "safety-critical" designation. The interpretation is consciously left to the individual Center Technical Authorities since they and their individual projects are unique, and this tends to make one universal applicable statement too inexact.

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").
  • Much of the referenced material listed in the Resources section is located on the NASA Headquarters NODIS site, e.g., NPR's, NPD's; in the Agency PAL, e.g., materials from the OCE, Public LLs; or in the NASA Technical Standards (START)repository
    sweref
    442
    442
    , e.g., NASA standards, IEEE standards, etc. Please note that many of these Agency or Center assets are subject to scheduled updates. While we will make every effort to link to the latest versions, editions or documents, it is possible that you will discover references that have broken links or require updating. We invite the community to submit these directly to the Handbook Development Team using the "Comments" box located at the bottom of each Handbook page.
  • Extensive citations are also made to external sites (e.g., Hill Air Force Base at the Software Technology Support Center (STSC)
    sweref
    441
    441
    , Software Engineering Institute (SEI)
    sweref
    157
    157
    ) and to general web-hosted sites. While attempts were made to cite publically 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, try to access it through the NASA START (technical standards)
    sweref
    442
    442
     site. A simple and quick one-time registration is required. 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.)

Each page of the SWEHB has a "Comments" box to allow feedback and proposed inputs, revisions, and updates to the Handbook. The SWEHB Development Team requests comments on errors, inputs on real or perceived conflicts among the essays within the SWEHB and suggestions for additional material such as best-in-class examples, templates, tools or Lessons Learned (LL) entries.

Div
idtabs-3

Title Material

Image Added

NASA TECHNICAL HANDBOOK

National Aeronautics and Space Administration

Washington, DC  20546-0001

NASA Software Engineering Handbook

NASA-HDBK-2203

Approved: 02-28-2013

(Superseding NASA-HDBK-2203)

DOCUMENT HISTORY LOG

Status

Document Revision

Approval Date

Description

Baseline

1

02-28-2013

Initial Release





FOREWORD

This 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 Handbook is approved for use by NASA Headquarters and NASA Centers, including Component Facilities and Technical and Service Support Centers.

This wiki based Handbook provides users and practitioners with guidance material for implementing the requirements of NPR 7150.2, NASA Software Engineering Requirements. Use of this Software Engineering Handbook (SWEHB) in intended to provide "best-in-class" guidance for the implementation of safe and reliable software in support of NASA projects. This SWEHB is a key component of the NASA Software Engineering Working Group's (SWG) implementation of an Agency-wide plan to work toward a continuous and sustained software engineering process and product improvement.

Requests for information, corrections, or additions to this Handbook should be submitted via "Feedback" in the NASA Standards and Technical Assistance Resource Tool at http://standards.nasa.gov/.


?#scanned signature below#

28 Feb 2013

Michael G. Ryschkewitsch
NASA Chief Engineer

Approval Date

Image Added

Div
idtabs-4

Resources

refstable-intro
Div
idtabs-5

Accessing Other Versions of SWEHB

The version of the handbook that you are viewing is noted in the header image.

Clicking on this image while in any page of the SWEHB will take you back to the Introduction page for this version.

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

5.1 SWE History

Excerpt Include
site:SWE History Summary
site:SWE History Summary
nopaneltrue

Click SWE History to view.

Wiki Markup
{tabsetup:1. Welcome|2. EHB Introduction} {div3:id=tabs-1} h3. Welcome from John Kelly {panel} Welcome to the NASA Software Engineering Handbook (EHB). This wiki based handbook provides users and practitioners with guidance material for implementing the requirements of NPR 7150.2, NASA Software Engineering Requirements. Use of this EHB is intended to provide "best in class" guidance for successful software executables in support of NASA projects. This EHB is a key component of NASA's Software Working Group's (SWG)^*^ implementation of an Agency wide plan to work toward continuous, sustained software engineering process and product improvements. The SWG designed this handbook for the community that is involved in the acquisition, management, development, assurance, maintenance, and operations of NASA software. Readers can use it to sharpen their skills in specific areas or suggest valuable guidance for others in the NASA software community. Novice and journeyman software team members can use the handbook as an easily accessible reference or manual which captures the broad knowledge base of numerous experts who have extensive experience in all aspects of NASA's software systems. In this EHB wiki you will see information for determining the scope and applicability of the individual requirements from NPR 7150.2. You will also see rationale, implementation guidance, tools used in the development of NASA software, pointers to key lessons learned, and select references for further information. We have adopted the 'wiki' approach for this version of the handbook to encourage you to submit candidate improvements to the information in this handbook. Your comments, suggestions for improvement, offerings of additional candidate material for the handbook, and identification of errors are solicited to make this a living and ongoing source of useful information. You can use the comments box on almost any page of the wiki to submit your inputs and responses. The SWG's EHB team will review and disposition your comments to enhance the wealth of useful material which is now at the fingertips of NASA's software community. We hope you find the information provided by many contributing experts, distilled into useful chunks by the EHB team, and jointly reviewed by NASA's SWG and MSSC ^**^ members helpful in your day to day quest for engineering excellence. !JohnKellyPic.jpg|border=1! Software Program Executive: John C. Kelly ([Bio|https://nen.nasa.gov/c/document_library/get_file?uuid=f9e9f49c-ab83-45a3-a831-f32d0f974d10&groupId=14202]) \* Chartered by the NASA Engineering Management Board and funded by the NASA HQ Office of Chief Engineer \*\* NASA Mission Software Steering Committee (Contact the EHB webmaster for resolution of technical difficulties.) {panel} {info} Welcome NSWG/MSSC reviewers\! Here is a list of the schedule of the review and associated sections. * {color:#ff0000}Red Team{color} -- JSC, GSFC, SSC, SA+IV&V * {color:#3366ff}Blue Team{color} -- MSFC, KSC, ARC, SA+IV&V * {color:#339966}Green Team{color} -- JPL, GRC, LaRC, DRFC, SA+IV&V *Click on BOOK A tab above to see full schedule with list of items for each review team.* This site is under development.&nbsp; You can follow the navigation above to explore the site.&nbsp; If you have any questions, please contact [Jon Verville|mailto:jon.verville@nasa.gov] at 301-286-8741.{info} We are glad you have come to the NASA Software Engineering Handbook site. The purpose of this site is to provide key insights to you, a Software Engineering professional.&nbsp; We plan on two phases of release: the first up to 30% material complete in February 2011, and 80% material complete in October 2011. To view a presentation that was given on the handbook development to the Software Engineering Working Group in August 2010, [click here|^7150handbook-swgf2f-_jonv_REV-C.ppt]. {table:border=0} {tr}{td:valign=top} h4. How is this different than any other NASA handbook? The Software Engineering handbook will have two components. A PDF/printable version for those who wish to use the material in a more traditional way.&nbsp; We are also developing this website as an interactive and dynamic version of the same material. We plan on utilizing web technologies, such as tagging (folksonomies), social commenting, and web editability and versioning to enhance the experience of what a handbook for print provides. Already, we are accepting comments at the very bottom of this page. You may leave an anonymous comment, but please use responsibly and according to the [Code of Conduct|7150:What is an interactive web handbook?]. h4. Special Topic Material There are a total of 37 special topics which will be chapters within the handbook. {color:#0000ff}*&nbsp;You can click on the third tab (features and topics) above to view what topics exist so far in the handbook.*{color} A partial list is as follows: {indent} 7.1 - 7150.2A Definitions & References, 7.2 - Classification Tool and Safety Critical Assessment Tool, 7.3 - Lifecycle Management, 7.4 - Entrance / Exit Criteria for 7150.2A, 7.5 - Documentation Products Maturity (List of material maturity by phase of mission), 7.6-8 - 7150.2A's Traceability to Other NPRs, 7.9 - Software Acquisition, 7.10 - P(Center) Guidance, 7.11 - Use of COTS, GOTS, MOTS, 7.12 - Flow down of NPR requirements on contracts and to other centers in multi center projects, 7.13 - Present requirements by class and include safety critical and assurance requirements, 7.14 - Overview and history of the SPI effort, 7.15 - Peer review and inspections including checklists, 7.16 - Transitioning to a higher class, 7.17 - Explanation of enforcement of NPR requirements, 7.18 - Compliance matrices. {indent} h4. Material by SWE Requirement Number The NASA Software Engineering standards are laid out in the NPR 7150.2A document ([click here to view it on the web|http://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7150&s=2]).&nbsp; Within the document, there are requirements numbering up to 130. &nbsp;{color:#0000ff}{*}You can click the second tab (requirements guidance) above to view what guidance exists so far in the handbook.*{color} We will be producing material for each of these requirements in the following areas: Guidance, Rationale, Tools Available, Links, Guidance for Small Projects, and Lessons Learned. {td}{td:valign=top} {div:style=float:right;clear:right;margin:10px;} [!handbookteam.jpg|border=1,width=370,height=288!|^handbookteam.jpg] *Welcome from your handbook team\!&nbsp;?**[Click for more info...|7150:Handbook team]* We are (left to right): Dan Gauntner, Jon Verville, Lee Jackson, Tommy Tayman, Kathy Malnick, and Kevin Carmichael (Lead) {color:#808080}Not pictured: Dave York{color} {color:#808080}Picture taken in front of the{color} {color:#808080}[new A-3 Test Stand|http://www.nasa.gov/multimedia/imagegallery/image_feature_1919.html]{color} {color:#808080}[at SSC|http://blogs.nasa.gov/cm/blog/J2X/posts/post_1290439982673.html]{color} ---- {viewppt:name=7150handbook-swgf2f-_jonv_REV-C.ppt|height=320|width=370} {div} {html} <table border="0"><tr><td valign="top"><img src="/download/attachments/622594/Picture2.png?version=1&modificationDate=1288387058462" width="200" height="200"></td><td valign="top"><img src="/download/attachments/622594/Picture1.png?version=1&modificationDate=1288387053193" width="181" height="181"></td></tr></table>{html} {td}{tr}{table} {div3} {div3:id=tabs-2} h1. EHB Introduction The NASA Software Electronic Handbook (EHB) originated from multiple request for additional guidance, rationale, resources, references and lessons learned for acquiring, managing, developing, assuring and maintaining NASA software systems. The decision to use an electronic,&nbsp;{term:wiki}&nbsp;-based, format evolved to accommodate the following progressive needs: * to publish material in a timely fashion * to provide needed information in concise screen friendly chunks * to simplify updates to the handbook * to make it easily searchable * to engage the NASA software community by providing an easy to use vehicle for ** providing feedback ** sharing examples of best practices ** contributing lessons learned developed on their own projects The EHB is accessible on the [NASA Engineering Network|https://nen.nasa.gov/web/nen]. The Agency's software community will find they have complete and speedy access to all written content written and reference links in the handbook. An important set of links are provided to relevant processes, templates, and tools in the NASA Process Asset Library (PAL). EHB wiki can be used in a similar manner to hardcopy guidebooks, but offers distinct advantages for the reader. Once a general familiarity with the resource is obtained, (typically a quick scan and flip thru a Table of Contents, Chapter organization, and included Reference/Appendix material) the user will be able to directly access concise information relevant to their interest or need. Users are encouraged to provide general feedback on the EHB by using the comments box found on the wiki pages. Suggestions for improvements, identification of errors, and proposed additions to the EHB are all welcome. The EHB development team will review and disposition comments received. Additions, if approved for posting by the EHB editor, will be added via incremental updates. The EHB is organized in a series of cross-linked Books and Appendices. The basic information is presented within these Books in the form of essays providing guidance on the implementation of each software engineering requirement (SWE) and essays in the form of Topics, which are more expansive on particular ideas and contain additional instructions for developing and acquiring software. Book A essays include listings and references to software development tools used around the Agency, the [full 7150.2A requirements list|https://sna.grc.nasa.gov/display/7150/,DanaInfo=nasa7150.onconfluence.com+Full+7150.2A+Requirements+List] where you can view the complete text of the NPR 7150.2 requirements with links to each section in the handbook, a small projects Guidance compilation, and lists of terms used in the EHB. The EHB provides guidance associated with each SWE-xx requirement. Software developers should note that the information provided in these modules are general approaches for Agency use. They should consult their NASA Center resources for local procedures and guidance when available. {panel} The Software Engineering Electronic Handbook is available from the [Software Engineering Community of Practice|https://nen.nasa.gov/web/software] homepage. This site offers additional guidance and information to software developers, including the [Ask an Expert|https://nen.nasa.gov/web/software/aae] pick, a [Contact List|https://nen.nasa.gov/web/software/], a [Classification Tool|https://nasa7150.onconfluence.com/display/7150/7.2+-+Classification+Tool+and+Safety+Critical+Assessment+Tool] (Beta), a [Document Repository|https://nen.nasa.gov/web/software/documents], and much more. Frequent users may wish to add a direct bookmark to the EBH in their browser <http://nasa7150.onconfluence.com/display/7150/Home>.{panel} Within the EHB, Book A is an online introduction to the wiki itself. Book B contains the developed guidance for each SWE. (Note that the SWE descriptions are organized in six Chapters that mirror the organization of NPR 7150.2). The SWE are presented in nominal ascending numerical order, with some higher numbered SWE intermixed. These latter SWE represent the changes made between the NPR 7150.2 and the NPR 7150.2A revisions. The EHB was written so each SWE guidance section provides a stand alone information chunk. To enhance the usefulness of each module, the guidance include hyperlinks for easy reference to related SWEs and Topics. Book C contains special Topic discussions 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. It is expected that special Topics will help the user go beyond the minimum descriptions presented in each SWE. Many Topic numbers are reserved at this time for future use. To further assist the user in finding needed and useful information, a 'tag" system has been developed using the [SMARTS Tagging approach|http://nasa7150.onconfluence.com/display/TOOL/2010/11/17/Fwd++FW++SMARTS+Tagging+Scheme] to indicate relationships between or among individual ideas contained within multiple SWEs. Book D lists the current tags and labels that are used throughout the handbook. A [tagging search|http://nasa7150.onconfluence.com/display/7150/Tag+Multi-Select] feature in Book D allows both individual and multiple tag searching. Tagging searches provide an additional way for users to browse and discover content within the handbook. The terms 'tag' and 'label' are used interchangeably in the handbook. In the EHB a typical SWE essay has six 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 D. This section also gives a tabular representation of the applicability to each [software class|http://nodis3.gsfc.nasa.gov/displayDir.cfm?Internal_ID=N_PR_7150_002A_&page_name=AppendixE]. \\ {note} The text in this section can only be altered via an approved change request and NODIS update of NPR 7150.2. {note} * RATIONALE: This section provides useful information regarding the purpose of the requirement. Occasionally, historical information and or references are included to further 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 reference to supporting materials (standards, guides, published technical papers, the [NASA Engineering Network|https://nen.nasa.gov/web/] and the [NASA Process Asset Library (PAL)|https://nen.nasa.gov/web/software/nasa-software-process-asset-library-pal] 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. It may be useful to look at the [Small Projects Guidance Compilation|http://nasa7150.onconfluence.com/display/7150/Small+Project+Guidance+Compilation] descriptions in the aggregate to pick up addition suggestions for the particular SWE of interest. * RESOURCES: This section provides a listing of referenced and footnoted texts, documents in NASA repositories and out on the web, and other useful documents (e.g., checklists or templates). It is instructive to note that the handbook authors also included in the Resources sections listings of what might be best described as 'additional reading', 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 ides covered in the SWE write up. \\ \\ Also within this section is usually a separate table listing of tools, items that will help the user satisfy the requirement (e.g., developer tools,). The handbook wiki links SWEs and tools thru the use of a master [Tools table|http://nasa7150.onconfluence.com/display/7150/Tools+Table]. The Tools table provides web sites for accessing the tool. It also lists Center(s) that currently use the tool in case the reader wants to seek out the 'experiences' with 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 catalogued in the [Public Lessons Learned library|http://llis.nasa.gov/llis/search/home.jsp] at the [Office of the Chief Engineer (OCE)|https://nen.nasa.gov/web/oce]. Some are derived from specialized project or Center collections as well as reputable industry and government groups. Occasionally a lesson has only indirect applicability to the requirement. It is presented as a related lesson that can be applied to help understand the content of the EHB. Remember that the NPR 7150.2 is a requirements document. It uses 'shall' exclusively to indicate requirements. Applicability of a NPR 7150.2 requirement is determined by NASA Software Classification and the matrix in Appendix D (of the NPR). The EHB is not a requirements document, only an informational document. +*NO* new requirements are added by the EHB.+ The authors strove to exclude the use of 'shall' and 'should' in any paragraph that might be interpreted as a requirement or even an augmentation to a requirement. The 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 to augment the NPR's Notes. The [Requirements Mapping Matrix (RMM) (Appendix D|http://nodis3.gsfc.nasa.gov/displayDir.cfm?Internal_ID=N_PR_7150_002A_&page_name=AppendixD], NPR 7150.2) provides a list of the applicability of each requirement by the Class of software being developed. 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 EHB makes explicit mention of these modifiers in section 1 of the essay, an additional explanation for each note is included here. The "X" notation signifies that the full requirement (assuming no 'exceptions') is applicable to the software. Note that requirements labeled with an "X" can still be tailored with the appropriate approvals, or otherwise affected by approved deviations and or waivers. The "SO" (i.e., Safety Only) designation signifies that the requirement for the classification of software needs only to satisfy the safety aspects of the requirement. This may require the use of checklists (e.g., use of the 'litmus test') in [NASA STD 8739.8 Software Assurance Standard|https://standards.nasa.gov/documents/detail/3315130] and [NASA STD 8719.13 Software Safety Standard|https://standards.nasa.gov/documents/detail/3314914] to determine specifically what parts of the project, its software, and therefore the requirement, are applicable to ensure the development of safe software. The "P (Center)" designation, while amply described in [SWE-140], is used separately or in combination with the "SO" modifier. The "P (Center)" modifier is only applicable to the items of the requirement that do not incur a 'safety-critical' designation. The interpretation is consciously left to the individual Center Technical Authorities since they and their individual projects are unique, and this tends to make one universal applicable statement too inexact. Some general comments: * Note that the SWE titles in the EHB may not always agree with those in the NPR. The writing team expanded the titles for some of the SWE to help distinguish between other similarly sounding names (e.g., Bidirectional traceability). * The EHB uses a &nbsp;{term:hover-over} &nbsp; technique to provide a definition of a unique term (see the [Terms Table|http://nasa7150.onconfluence.com/display/SITE/Terms] for a complete list). * While attempts were made to cite publically 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, try to access it through the [NASA START (technical standards)|https://standards.nasa.gov/public] site. A simple and quick registration and password are required. This NASA site provides prepaid access to many external repositories through an Agency wide agreement with the site. * Much of the referenced material listed in the Resources section is located on the NASA Headquarters NODIS site (e.g., NPR's, NPD's), in the Agency PAL (Process Asset Library; e.g., materials from the OCE, Public Lessons learned), or in the [NASA Technical Standards repository|http://standards.nasa.gov/] (START); e.g., NASA standards, IEEE standards, etc.). * Extensive citations are also made to external sites (e.g., Hill AFB at [STSC|http://www.stsc.hill.af.mil/], Software Engineering Institute-[SEI|http://www.sei.cmu.edu/reports/10tr033.pdf]), and to general web-hosted sites (Caveat: since the web is a dynamic place, some references in the Resources section of the SWE may be discontinued online or moved to another host by their owners). Each page of the EHB has a 'Comments' box to allow feedback and proposed inputs to revisions and updates to the EHB. The EHB Development Team requests comments on errors, inputs on real or perceived conflicts among the essays within the EHB and suggestions for additional material such as best-in-class examples, templates, tools or lessons learned topics. {div3} {tabclose}