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.
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.).
1.2 Applicability Across Classes
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.
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.
4. Small Projects
This requirement applies to all projects regardless of size.
6. Lessons Learned
No Lessons Learned have currently been identified for this requirement.