1. Purpose
This topic addresses the purpose of the NASA software improvement efforts and provides an overview of the activities for software process improvement.
1.1 Introduction
Software engineering is a core capability and a key enabling technology for NASA's missions and supporting infrastructure.
1.1.3 The Agency makes significant investments in software engineering to support the Agency’s investment areas: Space Flight, Aeronautics, Research and Technology, Information Technology (IT), and Institutional Infrastructure. NASA ensures that programs, projects, systems, and subsystems that use software follow a standard set of requirements. One of the goals of this directive is to bring the Agency’s engineering and software development and management communities together to optimize resources and talents across Center boundaries. For NASA to effectively communicate and work seamlessly across Centers, a common framework of generic requirements is needed.083
NASA's software development activities began with the earliest projects headed to space (Gemini, 1962 408). Usually, the software activities were project-specific and were created with a particular project in mind. Often, the spacecraft design dictated the size and shape of the computer. New software development was required because software adaptation and reuse were essentially non-existent, because of unique platforms, individual programming styles, and the relative non-existence of other software.
The early occurrence and recognition of software issues (software faults caused computer restarts during the Apollo 11 lunar landing in 1969 409), as well as the increasing costs of software development, encouraged NASA to address the software engineering approaches used in the Agency. In 1976, the first NASA Software Engineering Workshop was held to address these issues. In the late 1980s, NASA followed up these efforts with the kickoff of a Software Management and Assurance Program (SMAP).
From these initial activities came the impetus for the NASA Software Engineering Initiative (NSEI) at the beginning of the new century. NSEI came into existence as one of the three basic components of NASA's Engineering Excellence Initiative (EEI). (Systems Engineering and Project Engineering are the other two main components.)
NPR 7150.2 083 is written in the "shall" statement format with supplemental information in the form of accompanying notes and appendices. While these were included to help explain the meaning of each requirement, it was recognized that additional detail on the scope and the applicability of each SWE would increase the speed of cultural change and adoption of these software requirements. This Handbook, NASA-HDBK-2203, was established in wiki format to help achieve the above goals.
See SWE-139 - Shall Statements in this handbook for the requirement.
During the development of the NPR 7150.2, there was an intentional effort to minimize the size of the document by keeping it focused on the requirements. However, the 7150 teams had developed a large amount of additional guidance material for the NPR, which they decided could be more effectively utilized in a NASA Handbook rather than in the NPR itself.
2. NASA Software Engineering Initiative
Software engineering is a core capability and a key enabling technology necessary for the support of NASA's Enterprises. Surveys and assessments identified and documented many software challenges within the Agency. Additionally, continuing exponential growth in the scope, complexity, and importance of software within NASA systems challenged the Agency's ability to manage it effectively. As a result, the NASA Headquarters OCE formed the NASA Software Engineering Initiative 205 in 2002. In coordination with Center software engineering improvement activities, the OCE defined a NASA-wide comprehensive approach for improving software engineering to quantifiable maturity levels commensurate with mission criticality to meet the software challenges of NASA.
- What is it?
- A NASA-wide comprehensive approach for improving software engineering processes and technology.
- Why are we doing it?
- To meet the challenges facing NASA in software engineering (schedule, cost, meeting project commitments, and ensuring the use of best practices).
- What are the elements of OCE’s approach?
- The integration of sound software engineering and software assurance principles and standards.
- Enhancing software engineers' and assurance knowledge and skills.
- The use of the Integrated Capability Maturity Model as a benchmark for assessments.
- Software engineering tool infusion.
- Software metrics.
- Who is deploying it?
- OCE (NASA Engineering and Safety Center (NESC)) and OSMA in collaboration with each Center.
- NASA Software Independent Verification & Validation (IV&V) Facility
- NASA Software Working Groups.
- Center projects, organizations, and working groups.
The following key principles guide NASA's software improvement activities:
- Develop more efficient and automated methods
- Improve the risk, issue, and finding reporting
- Add value
- Reduce the risk of software failure - Increase mission safety.
- Improve how defects are found and remove the defects early in the development cycle.
- Improve processes based on best practices in Industry and Government.
- Provide more predictable software cost estimates and delivery schedules.
- Create smarter buyers for contracted-out software projects.
- Educate the NASA workforce on best practices in Software Engineering.
- Reduce duplication of efforts between projects in the area of software.
- Increase NASA’s ability to meet the challenges of evolving software technology.
This initiative covers software process improvement, as well as items related to software research: software safety, and quality; attraction and retention of software engineers, and improvement of NASA's software engineering knowledge and skills. It applies to both mission-critical and non-mission-critical software.
The initiative provides:
- Technical support for NASA project issues and special studies.
- Serves as Agency & NESC subject matter experts for the software technical discipline.
- Recommends, reviews, and maintains software requirements, policies, processes, standards, best practices, and handbooks.
- Maintains NASA internal and external assessments of software development organizations.
- Maintains and supports reporting on the state of the software discipline.
- Coordinates external NASA interfaces for software engineering.
- Maintains a list of top software engineering discipline topics and or challenges.
- Collects and analyses project software engineering metrics and proactively identifies discipline issues & concerns that require additional investigation (identification of trends).
- Promote/integrate continuous improvement of software processes.
- Maintains a software Community of Practice site and knowledge management for the software community.
Review - SWE-002 - Software Engineering Initiative is the NPR 7150.2 requirement for the Software Engineering Initiative.
Review - SWE-005 - Software Processes is the NPR 7150.2 requirement for the Software Processes. Addresses Centers establishing an SEPG and a Process Asset Library.
Review - SWE-095 - Report Engineering Discipline Status requires reporting on the status of the Center’s software engineering discipline, as applied to its projects, upon request by the OCE, OSMA, or OCHMO.
Review - SWE-208 - Advancing Software Assurance and Software Safety Practices requires that the NASA Chief, SMA shall lead and maintain a NASA Software Assurance and Software Safety Initiative to advance software assurance and software safety practices.
3. Conclusion
Ensuring the quality and safety of NASA software is of paramount importance in achieving mission success for the Agency's programs and projects. The NASA Software Process Improvement Initiative brings together an integrated spectrum of software engineering professionals, researchers, trained practitioners, improved processes, ratings and appraisal systems, accredited tools, and numerous engineering productivity tools to promote software improvement and overall excellence.
4. Resources
4.1 References
- (SWEREF-038) Release 1.0, NASA Office of the Chief Engineer, 2002.
- (SWEREF-040) Commissioned by the NASA Office of Chief Engineer, Technical Excellence Program, Adam West, Program Manager, and edited by Daniel L. Dvorak, Systems and Software Division, Jet Propulsion Laboratory, 2009.
- (SWEREF-083) NPR 7150.2D, Effective Date: March 08, 2022, Expiration Date: March 08, 2027 https://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7150&s=2D Contains link to full text copy in PDF format. Search for "SWEREF-083" for links to old NPR7150.2 copies.
- (SWEREF-157) CMMI Development Team (2010). CMU/SEI-2010-TR-033, Software Engineering Institute.
- (SWEREF-170) D. Dvorak, Presented at AIAA Infotech@Aerospace, Seattle, WA, April 2009. This NASA-specific information and resource is available in Software Processes Across NASA (SPAN), accessible to NASA-users from the SPAN tab in this Handbook.
- (SWEREF-204) Hinchey, M., NASA Software Working Group, July 2006.
- (SWEREF-205) John Kelly, 25th Annual Software Engineering Workshop, November 30, 2000, This is the presentation that introduced the Initiative and for the specific rationale for the Initiative.
- (SWEREF-255) NASA Assurance Process for Complex Electronics: Traceability Analysis (2009, December 14). Link no longer valid last reviewed March 15, 2012 from http://www.hq.nasa.gov/office/codeq/software/ComplexElectronics/techniques/traceability-analysis.htm.
- (SWEREF-257) NPD 7120.4E, NASA Office of the Chief Engineer, Effective Date: June 26, 2017, Expiration Date: June 26, 2022
- (SWEREF-271) NASA STD 8719.13 (Rev C ) , Document Date: 2013-05-07
- (SWEREF-278) NASA-STD-8739.8B, NASA TECHNICAL STANDARD, Approved 2022-09-08 Superseding "NASA-STD-8739.8A"
- (SWEREF-290) OCE Software Survey Instructions and Templates (on SPAN) This NASA-specific information and resource is available in Software Processes Across NASA (SPAN), accessible to NASA-users from the SPAN tab in this Handbook. 2010 Software Inventory instructions, version 7 (available from the OCE).
- (SWEREF-389) Course from APPEL: Academy of Program/Project & Engineering Leadership.
- (SWEREF-408) Gemini 1962. NASA. 2005. See Chapter One - The Gemini Digital Computer: First Machine in Orbit.
- (SWEREF-409) In the Apollo 11 Lunar Surface Journal. Peter Adler. NASA. 1998. See section on computer restarts.
- (SWEREF-518) Public Lessons Learned Entry: 723.
4.2 Tools
4.3 Additional Guidance
Additional guidance related to this requirement may be found in the following materials in this Handbook:
| Related Links |
|---|
4.4 Center Process Asset Libraries
SPAN - Software Processes Across NASA
SPAN contains links to Center managed Process Asset Libraries. Consult these Process Asset Libraries (PALs) for Center-specific guidance including processes, forms, checklists, training, and templates related to Software Development. See SPAN in the Software Engineering Community of NEN. Available to NASA only. https://nen.nasa.gov/web/software/wiki 197
See the following link(s) in SPAN for process assets from contributing Centers (NASA Only).
| SPAN Links |
|---|
5. Lessons Learned
5.1 NASA Lessons Learned
A documented lesson from the NASA Lessons Learned database notes the following:
Independent Verification and Validation of Embedded Software, Lesson Number 0723518: Besides the recognition of the need for extensive project retesting (see the Introduction section for computer restarts409), this lesson learned indicates the need for independent verification of performance results because of recognition of earlier problems, e.g., failure to perform IV&V for software projects could result in software system weaknesses, performance of unintentional functions, and failure of the system and the mission. Anything less than a methodical, systematic rigorous treatment of IV&V could cause loss of mission, life, and valuable resources.
5.2 Other Lessons Learned
No other Lessons Learned have currently been identified for this requirement.



0 Comments