|1||2. SWEHB Introduction|
|2||3. Title Material|
Welcome from John Kelly
|style||float:left;padding:3px;margin:0 15px 0 0;text-align:center;|
Welcome to the NASA Software Engineering Handbook (SWEHB). 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 SWEHB is 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 Working Group's (SWG) implementation of an Agency-wide plan to work toward a continuous and sustained software engineering process and product improvement.
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 experienced software team members can use the Handbook 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.
In this SWEHB you will see information for determining the scope and applicability of the individual requirements from NPR 7150.2. You will also see the rationale behind the requirements, guidance on their implementation, the specific tools that were 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 SWEHB Development Team will review and disposition your comments to enhance the wealth of useful material that is now at the fingertips of NASA's software community.
We hope you will find the information helpful in your day-to-day quest for engineering excellence. It has been provided by many contributing experts, distilled into useful chunks by the SWEHB Development Team, and jointly reviewed by NASA's SWG * and NASA's MSSC ** members.
* Chartered by the NASA Engineering Management Board and funded by the NASA Headquarters Office of Chief Engineer
** NASA Mission Software Steering Committee
(Contact the SWEHB site admin for resolution of technical difficulties.)
- 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 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.
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: Topic 7.17 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.
Tag searches are performed using the search tool in Book D.
In the SWEHB a typical SWE essay has six sections;
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.
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.
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.
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").
- (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.)
DOCUMENT HISTORY LOG
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/.