Comment:
Migration of unmigrated content due to installation of a new plugin
Alias
alias
Home
...
swerefsettab
4
4
Tabsetup
1. Welcome
1
2. SWEHB Introduction
2
3. Title Material
3
4. Resources
1. Welcome
Div
Wiki Markup
{div3:id=
id
tabs-1
Welcome from John Kelly
}
h1. Welcome from John Kelly
{div:style=
Div
style
float:left;padding:3px;margin:0
15px
0
0;text-align:center;
} !JohnKellyPic.jpg!\\
Software Program
\\
Executive:
\\
John C. Kelly{sweref:434}{div}
Welcome to the NASA Software Engineering Handbook
Image Added Software Program Executive: John C. Kelly
sweref
434
434
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.)
{div3}
Div
Wiki Markup
{div3:id=
id
tabs-2
SWEHB Introduction
The NASA Software Engineering Handbook
}
h1. 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 ( {term:wiki}
electronic (
Term
wiki
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
{term:SWE}. 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}homepage. This site offers additional guidance and information to software developers, including the Ask an Expert {sweref:436}pick, a Contact List {sweref:435}, a [Classification Tool|7150:7.2 - Classification Tool and Safety-Critical Assessment Tool], a Document Repository {sweref:437}, and much more. Frequent users may wish to add a direct bookmark to the SWEHB in their browser <[
Term
SWE
SWE
. 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:438}.
\\
{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 references to supporting materials (standards, guides, published technical papers, the NEN{sweref:258}and the NASA PAL {sweref: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}, 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 {term:NEN}. {sweref:262} NODIS maintains a web page{sweref:406} for the posting of approved waivers for general reference.
{note}
* 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|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}at the Office of the Chief Engineer (OCE).{sweref: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}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}and NASA STD 8719.13 Software Safety Standard {sweref: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 [SWE-140|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 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").
* The SWEHB uses a {term:hover-over} technique to provide definitions of unique terms (see the [Terms Table|SITE:Terms] for a complete list).
* 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}, 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}, Software Engineering Institute (SEI) {sweref: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}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 {term:LL} entries.
{div3}
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
Term
NEN
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. NOnew 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 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 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").
The SWEHB uses a
Term
hover-over
hover-over
technique to provide definitions of unique terms (see the Terms Table for a complete list).
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
Term
LL
LL
entries.
Div
id
tabs-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.
Wiki Markup
{div3:id=tabs-3}
h1. Title Material
| !NASA LOGO.jpg|align=left,thumbnail,width=143,height=110! \\
h3. NASA TECHNICAL HANDBOOK \\
h4. National Aeronautics and Space Administration \\
h4. Washington, DC 20546-0001 | h3. NASA Software Engineering Handbook \\
h3. NASA-HDBK-2203 \\
h4. Approved: 02-28-2013 \\
(Superseding NASA-HDBK-2203) |
h2. DOCUMENT HISTORY LOG\\
| *Status* | *Document Revision* | *Approval Date* | *Description* |
| Baseline | 1 | 02-28-2013 | Initial Release |
| \\ | \\ | \\ | \\ |
h2. 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|http://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7150&s=2A]. 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)|https://nen.nasa.gov/web/software] 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 [
Requests for information, corrections, or additions to this Handbook should be submitted via "Feedback" in the NASA Standards and Technical Assistance Resource Tool at