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


Tabsetup
1. The Requirement
1. The Requirement
12. Rationale
23. Guidance
34. Small Projects
45. Resources
56. Lessons Learned


Wiki Markup
{alias:SWE-001} {tabsetup:1. The Requirement|2. Rationale|3. Guidance|4. Small Projects|5. Resources|6. Lessons Learned} {div3:id=tabs-1} h1. 1. Requirements
Div
idtabs-1

1. Requirements

P.2.3

This

NPR

shall

be

applied

to

software

development,

maintenance,

retirement,

operations,

management,

acquisition,

and

assurance

activities

started

after

its

initial

date

of

issuance.

h2. {color:#003366}{*}

1.1

Notes{*}{color} This document is not retroactively applicable to software development, maintenance, operations, management, acquisition, and assurance activities started before September 27, 2004

Notes

This document is not retroactively applicable to software development, maintenance, operations, management, acquisition, and assurance activities started before September 27, 2004 (i.e.,

existing

systems

and

subsystems

containing

software

for

Shuttle,

International

Space

Station,

Hubble,

Chandra,

etc.).

h2.

1.2

Applicability

Across

Classes

{applicable:asc=1|ansc=1|bsc=1|bnsc=1|csc=1|cnsc=1|dsc=1|dnsc=1|esc=1|ensc=1|f=1|g=1|h=1} {div3} {div3:id=tabs-2} h1. 2. Rationale Software engineering is a core capability and a key enabling technology for NASA's missions and supporting infrastructure. The NASA Software Engineering Requirements, NPR 7150.2, supports the implementation of the NASA Policy Directive (NPD) 7120.4, NASA Engineering and Program/Project Management Policy. The {term:NPR} provides the minimal set of requirements established by the Agency for software acquisition, development, maintenance, retirement, operations, and management. The NPR is intended to support NASA programs and projects to accomplish their planned goals (e.g., mission success, safety, schedule, and budget) while satisfying their specified requirements. The NPR provides a set of software engineering requirements, that are based on NASA and industry best practices, in generic terms to be applied throughout NASA and its contractor community. For this NPR, Software Engineering is defined as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software: that is, the application of engineering to software. For this NPR, software is defined as the computer programs, procedures, scripts, rules, and associated documentation and data pertaining to the development and operation of a computer system. This definition includes commercial-off-the-shelf (COTS) software, government-off-the-shelf (GOTS) software, modified-off-the-shelf (MOTS) software, reused software, auto generated code, embedded software, firmware, and open source software components. {div3} {div3:id=tabs-3} h1. 3. Guidance The requirements of NPR 7150.2 cover software created or acquired by or for NASA. Requirements in this {term:NPR} apply to all of the Agency's investment areas containing software systems and subsystems. The applicability of the requirements in this NPR to specific systems and subsystems within the Agency's investment areas, programs, and projects is determined through the use of the NASA-wide definition of software classes as defined in Appendix E, in conjunction with the Requirements Mapping Matrix in Appendix D. Some projects may contain multiple systems and subsystems having different software classes. Using the Requirements Mapping Matrix, the applicable requirements and their associated rigor are adapted according to the classification and safety-criticality of the software. This NPR is applicable to NASA Headquarters and NASA Centers, including Component Facilities, Technical Support Centers, and Service Support Centers. This NPR applies to the Jet Propulsion Laboratory, other contractors, grant recipients, or parties to agreements only to the extent specified or referenced in the appropriate contracts, grants, or agreements. This statement alone is not sufficient to stipulate requirements for the contractor or grant recipient. NASA project managers stipulate which of the NPR requirements are applicable to the contracts, grants, or agreements. The contract, grant, or agreement must state the requirement(s) from the NPR that apply. These requirements typically reflect best practices in software engineering and software safety and can be applied in a timely and cost-efficient manner. This NPR does not supersede more stringent requirements imposed by individual NASA organizations and other federal government Agencies. Requirements in this NPR are identified by "shall" and a requirement number. Any material not identified by a "shall" in this NPR is informative in nature (e.g., notes, introductory text, etc.). The statements "must," "should," "are to be," "will," and "required" do not denote mandatory compliance. This document is not retroactively applicable to software development, maintenance, operations, management, acquisition, and assurance activities started before September 27, 2004. This NPR does apply to new software development or modification efforts started after September 27, 2004 even if the program or project was in place prior to the September 27, 2004 date. The area that often brings about uncertainty among software development teams involves projects begun before the effective date (Shuttle, International Space Station, Hubble, Chandra, etc.) that begin major software activities (new additions, modification tasks, and/or alternative uses) after the effective date. If these new efforts have new funding, or effectively are new efforts for adding, modifying, or creating additional software for a project that began before the effective date of September 27, 2004, they are required to follow NPR 7150.2 completely for the software being developed or modified by the new effort. {div3} {div3:id=tabs-4} h1. 4. Small Projects The nature of the guidance applies to all projects regardless of size. {div3} {div3:id=tabs-5} h1. 5. Resources # [NASA Space Flight Program and Project Management Requirements|http://nodis3.gsfc.nasa.gov/npg_img/N_PR_7120_005D_/NM_7120-81_.pdf], NPR 7120.5D (NM-7120.81), 2009. # [NASA Software Assurance Standard|https://standards.nasa.gov/documents/detail/3315130], NASA STD 8739.8, 2005 # [NASA Information Technology and Institutional Infrastructure Program and Project Management Requirements|http://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7120&s=7], NPR 7120.7, 2008 # [NASA Research and Technology Program and Project Management Requirements|http://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7120&s=8] (w/change 1 dated11/24/10), NPR 7120.8, 2008 New References from wiki Table (Delete this note and the Resources Listed manually above after Author Review): {refstable} {toolstable} {div3} {div3:id=tabs-6} h1. 6. Lessons Learned No Lessons Learned have currently been identified for this requirement. {div3} {tabclose}


applicable
f1
g1
h1
ansc1
asc1
bnsc1
csc1
bsc1
esc1
cnsc1
dnsc1
dsc1
ensc1



Div
idtabs-2

2. Rationale

Software engineering is a core capability and a key enabling technology for NASA's missions and supporting infrastructure. NASA Procedural Requirement (NPR) 7150.2, NASA Software Engineering Requirements, supports the implementation of NASA Policy Directive (NPD) 7120.4, NASA Engineering and Program/Project Management Policy. The NPR provides the minimal set of requirements established by the Agency for software acquisition, development, maintenance, retirement, operations, and management. The NPR is intended to support NASA programs and projects to accomplish their planned goals (e.g., mission success, safety, schedule, and budget) while satisfying their specified requirements. The NPR provides a set of software engineering requirements that are based on NASA and industry best practices, in generic terms to be applied throughout NASA and its contractor community. For this NPR, Software Engineering is defined as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, i.e., the application of engineering to software. For this NPR, software is defined as the computer programs, procedures, scripts, rules, and associated documentation and data pertaining to the development and operation of a computer system. This definition includes commercial-off-the-shelf (COTS) software, government-off-the-shelf (GOTS) software, modified-off-the-shelf (MOTS) software, reused software, auto-generated code, embedded software, firmware, and open source software components.


Div
idtabs-3

3. Guidance

The requirements of NPR 7150.2 cover software created or acquired by or for NASA. Requirements in this NPR apply to all of the Agency's investment areas containing software systems and subsystems. The applicability of the requirements in this NPR to specific systems and subsystems within the Agency's investment areas, programs, and projects is determined through the use of the NASA-wide definition of software classes as defined in Appendix E, in conjunction with the Requirements Mapping Matrix in Appendix D. Some projects may contain multiple systems and subsystems having different software classes. Using the Requirements Mapping Matrix, the applicable requirements and their associated rigor are adapted according to the classification and safety criticality of the software. This NPR is applicable to NASA Headquarters and NASA Centers, including Component Facilities, Technical Support Centers, and Service Support Centers. This NPR applies to the Jet Propulsion Laboratory (JPL), other contractors, grant recipients, or parties to agreements only to the extent specified or referenced in the appropriate contracts, grants, or agreements. This statement alone is not sufficient to stipulate requirements for the contractor or grant recipient. NASA project managers stipulate which of the NPR requirements are applicable to the contracts, grants, or agreements. The contract, grant, or agreement must state the requirement(s) from the NPR that apply. These requirements typically reflect best practices in software engineering and software safety and can be applied in a timely and cost-efficient manner.

This NPR does not supersede more stringent requirements imposed by individual NASA organizations and other federal government Agencies. Requirements in this NPR are identified by "shall" and a requirement number. Any material not identified by a "shall" in this NPR is informative in nature (e.g., notes, introductory text, etc.). The statements "must," "should," "are to be," "will," and "required" do not denote mandatory compliance.

This document is not retroactively applicable to software development, maintenance, operations, management, acquisition, and assurance activities started before September 27, 2004. This NPR does apply to new software development or modification efforts started after September 27, 2004, even if the program or project was in place prior to the September 27, 2004, date. The area that often brings about uncertainty among software development teams involves projects begun before the effective date (Shuttle, International Space Station, Hubble, Chandra, etc.) that begin major software activities (new additions, modification tasks, and/or alternative uses) after the effective date. If these new efforts have new funding, or effectively are new efforts for adding, modifying, or creating additional software for a project that began before the effective date of September 27, 2004, they are required to follow NPR 7150.2 completely for the software being developed or modified by the new effort.


Div
idtabs-4

4. Small Projects

This requirement applies to all projects regardless of size.


Div
idtabs-5

5. Resources


refstable

toolstable


Div
idtabs-6

6. Lessons Learned

No Lessons Learned have currently been identified for this requirement.