bannera

Book A.
Introduction

Book B.
7150 Requirements Guidance

Book C.
Topics

Tools,
References, & Terms

SPAN
(NASA Only)

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Error formatting macro: alias: java.lang.NullPointerException
SWE-075 - Plan Operations, Maintenance, Retirement
Unknown macro: {div3}

1. Requirements

3.5.2 The project shall plan software operations, maintenance, and retirement activities.

1.1 Notes">1.1 Notes

NPR 7150.2 does not include any notes for this requirement.

1.2 Applicability Across Classes

Class

  A_SC 

A_NSC

  B_SC 

B_NSC

  C_SC 

C_NSC

  D_SC 

D_NSC

  E_SC 

E_NSC

     F      

     G      

     H      

Applicable?

   

   

   

   

   

   

   

   

   

   

   

    P(C)

   

Key:    A_SC = Class A Software, Safety Critical | A_NSC = Class A Software, Not Safety Critical | ... | - Applicable | - Not Applicable
X - Applicable with details, read above for more | P(C) - P(Center), follow center requirements or procedures

Unknown macro: {div3}

2. Rationale

Per Marshall Space Flight Center's "Software Development Process Description Document", "The Software Operation phase spans the time from execution of the software product in the target environment to software retirement. The Software Maintenance phase of the software life cycle begins after successful completion of formal test and delivery of the software product to the customer. This Software Maintenance phase overlaps the Software Operation phase and continues until software retirement or discontinuation of software support."1

As with any activity that builds on and relies on previous activities, software operations, maintenance, and retirement requires planning before implementation. The team documents and review those plans before they are implemented to allow its members to consider all the tasks, personnel, methods, tools, facilities and related criteria needed to perform those activities.

Unknown macro: {div3}

3. Guidance

The results of planning for operations, maintenance and retirement of software are captured in the Software Maintenance Plan for implementation. In addition to the required contents for the Software Maintenance Plan ([SWE-105]) and the items listed in this handbook's guidance for requirement [SWE-074], consider the following items for each phase of planning:

Operations

  • Software team support of operations, including help desk activities, as applicable
  • Documentation required for operations support (e.g., as-built documentation, user's manual, source code, operations notes)
  • Tools required for operations support (e.g., email systems, servers, issue tracking systems)
  • Participation in mission debriefs, as appropriate1
  • Capturing of lessons learned during operations
  • Software assurance, including software safety, monitoring activities

Maintenance

  • Modification of software after delivery
  • Updates to system and software documentation to align with/reflect these modifications
  • Documenting, reviewing, analyzing, and approving modifications (i.e., configuration management of changes)
  • Tools required for maintenance activities (e.g., issue tracking systems, analysis tools, configuration control systems, compilers)
  • Other resources required to perform maintenance activities such as documentation, development environment, test environment
  • Testing of modifications
  • Delivery and installation of modifications, including generation of associated documentation such as version description documents (VDD)
  • Capture of maintenance metrics1
  • Software assurance and software safety activities for updates

Retirement

  • Archival of software products, including capture in a configuration management system1
  • Retention period for retired software products1
  • Tools needed to complete retirement activities (e.g., configuration management system)
  • Security measures for access to and use of retired software products
  • Transition plans for functionality and data if software being retired is being replaced by another software product

The following personnel roles should be considered for involvement in the planning of operations, maintenance, and retirement activities:

  • Software project lead
  • Software team
  • Project manager

Planning for maintenance activities, in particular, should begin very early in the software development life cycle so that the software is designed for maintainability4. For NPR 7120.5 projects, this Handbook provides the recommended maturity of the Software Maintenance Plan at major milestone reviews (see Maturity of Life cycle Products at Milestone Reviews). The lifetime of use for software is not always known, so maintenance becomes easier if the software is designed with maintenance in mind. If there are specific design features that facilitate easier maintenance, those may be candidates for referencing in the Software Maintenance Plan.

Consult Center Process Asset Libraries (PALs) for Center-specific guidance related to planning operations, maintenance, and retirement.

Additionally, guidance related to operations, maintenance, and retirement planning may be found in the following requirements in this handbook:

[SWE-074]

Document Maintenance Plan

[SWE-076]

Implement Operations, Maintenance, and Retirement Activities

[SWE-105]

Software Maintenance Plan

Unknown macro: {div3}

4. Small Projects

No additional guidance is available for small projects. The community of practice is encouraged to submit guidance candidates for this paragraph.

Unknown macro: {div3}

5. Resources

  1. Flight and Ground Software Division, MSFC, "Software Development Process Description Document", EI32-OI-001, Revision R, 2010 .
  2. NASA Technical Standard, "NASA Software Assurance Standard", NASA-STD-8739.8, 2004.
  3. NASA Technical Standard, "NASA Software Safety Standard", NASA-STD-8719.13B, 2004.
  4. NASA Technical Standard, "NASA Software Safety Guidebook", NASA-GB-8719.13, 2004.
  5. "Systems and software engineering - Software life cycle processes", ISO/IEC 12207, IEEE Std 12207-2008, 2008. This link requires an account on the NASA START (AGCY NTSS) system (http://standards.nasa.gov ). Once logged in, users can access Standards Organizations, IEEE and then search to get to authorized copies of IEEE standards.
  6. IEEE Computer Society, "IEEE Standard for Software and System Test Documentation", IEEE Std 829-2008, 2008. This link requires an account on the NASA START (AGCY NTSS) system (http://standards.nasa.gov). Once logged in, users can access Standards Organizations, IEEE and then search to get to authorized copies of IEEE standards.
  7. Software Engineering Division, Goddard Space Flight Center, "In-house Software Development and Maintenance", GPR 7150.2, Version 20110110-1, 2009.
  8. Software Engineering Institute, "CMMI for Development, Version 1.3", CMU/SEI-2010-TR-033, 2010.
  9. International Standards Organization (ISO), "Software Engineering - Software Life Cycle Processes - Maintenance", ISO/IEC 14764:2006, 2006. This link requires an account on the NASA START (AGCY NTSS) system (http://standards.nasa.gov). Once logged in, users can access Standards Organizations, IEEE and then search to get to authorized copies of IEEE standards.

5.1 Tools

Tools to aid in compliance with this SWE, if any, may be found in the Tools Library in the NASA Engineering Network (NEN).

NASA users find this in the Tools Library in the Software Processes Across NASA (SPAN) site of the Software Engineering Community in NEN.

The list is informational only and does not represent an “approved tool list”, nor does it represent an endorsement of any particular tool. The purpose is to provide examples of tools being used across the Agency and to help projects and centers decide what tools to consider.

Unknown macro: {div3}

6. Lessons Learned

The NASA Lesson Learned database contains the following lessons learned related to maintenance planning:

  • Benefits of Maintainability on NASA Programs: Lesson Number: 0835 "Maintainability requirements for programs that require ground and/or in-space maintenance and anomaly resolution have to be established early in the program to be cost effective. Lack of management support to properly fund maintainability activities up-front can result in increased program risk. Including maintainability in the design process will greatly reduce the number of operational problems associated with system maintenance, improve the availability of the system, and reduce program costs." (http://www.nasa.gov/offices/oce/llis/0835.html)
  • Software Design for Maintainability: Lesson Number: 0838 "Because of increases in the size and complexity of software products, software maintenance tasks have become increasingly more difficult. Software maintenance should not be a design afterthought; it should be possible for software maintainers to enhance the product without tearing down and rebuilding the majority of code." (http://www.nasa.gov/offices/oce/llis/0838.html)
  • No labels