{tabsetup:1. The Requirement|2. Rationale|3. Guidance|4. Small Projects|5. Resources|6. Lessons Learned}


h1. 1. Requirements

1.2.5 To support compliance with NASA policy and facilitate the application of resources to mitigate risk, the NASA Headquarters' Chief Engineer, in coordination with the Chief, Safety and Mission Assurance, shall maintain a reliable list of the Agency's programs and projects containing software.

h2. {color:#003366}{*}1.1 Notes{*}{color}

NPR 7150.2 does not include any notes for this requirement.

h2. 1.2 Applicability Across Classes


h1. 2. Rationale

NASA develops and maintains an inventory of software across the Agency to facilitate strategic decisions based on actual data. The NASA Office of the Chief Engineer (in coordination with the Chief of the Safety and Mission Assurance Office) and the Software Steering Board are overseeing the update of the Software Inventory of projects based on the classification of software.  The Centers provide updates with supporting data directly into the Software Inventory Management System (SIMS), the Agency's software inventory database. The rationale and uses of this Software Inventory include:
# The Software Inventory directly supports the NASA Chief Safety and Mission Assurance Officer and the IV&V Board of Directors (IBD) in the selection of projects to receive Agency funded Independent Verification and Validation services each year.
# The Software Inventory supports Engineering and Safety & Mission Assurance Technical Authorities' duties by cataloging the classification of software on projects and whether it is safety critical.
# The Software Inventory supports the Office of the Chief Engineer (OCE) in helping to determine whether Centers' software engineering capabilities are commensurate with their responsibilities.
# The Software Inventory provides an accurate profile of critical software (Class A, B, and C and Class D & E safety critical) across the Agency to facilitate strategic decisions based on real data.
# The Software Inventory supports Mission Directorate offices in supplementing the Master Agency Project List's Metadata Manager (MDM) system with information on critical software.
# Center Mission Assurance personnel utilize the Software Inventory to help identify projects and assure they are covered and have been assessed for safety critical software and software assurance. 
# The Software Inventory provides NASA personnel with current data for decision-making.
# The Software Inventory supports the Office of the Chief Engineer and Office of Safety and Mission Assurance during the planning phase of Center Surveys & IPS Audits.

In coordination with this process, each Center's Office of Safety and Mission Assurance (OSMA) organization is requested to provide safety critical software and software assurance information.  Once the Center inputs are complete, the Office of the Chief Engineer may augment the Center lists with inputs from Mission Directorates, Support Offices, and Centers as appropriate.  The inventory data for a specific Center also supports Center planning for project support and review activities.

h1. 3. Guidance

{note} The guidance for this requirement applies to software Classes A though E (see[SWE-020]).  Inventory information for software Classes F through H are captured separately and maintained by the NASA Chief Information Officer. {note}

Periodically the {term:OCE} issues a request to the Centers with [instructions ^1^|https://nen.nasa.gov/web/software/documents] for an update to the inventory of software projects under its purview. When these instructions are completed, the resulting submission provides the information necessary to complete the data collection for the software inventory for projects containing Class A, B, C, D and E software.  The OCE typically reviews the Center submissions for consistency and reliability.  The OCE may augment the Center submits with comments on Center inputs from Mission Directorates, support offices, and other Centers, if appropriate.  Execution of the software inventory process results in a prioritized list of projects based on the criticality of software under development or maintenance. 

There is a minimal set of data collected for Class D and Class E software._ _ Since projects containing exclusively Classes F, G, and H software are inventoried separately under the direction of the Chief Information Officer, they are not required to report under the OCE request.

 The OCE software inventory is officially maintained in the [Software Inventory Management System (SIMS)^2^.|https://sims.jpl.nasa.gov/] Access to this password protected site is controlled by the OCE.

The OCE requires that a "Designated Point of Contact" (DPC) be named at each Center for the inventory activities. The DPC (or a designee) will be responsible for accessing the SIMS and entering the Center's updated data into the system, or in the case of a new project, creating a new entry in the SIMS tool. The Center safety and mission assurance personnel will also have access to SIMS to enable the updating of the safety and mission assurance information for their Center's projects. All data must be reviewed and prioritized at the Center (based on the criticality and risk inherent in the project) by the appropriate Center personnel.  The review must include participation by the representatives of the local safety and mission assurance office.

Detailed instructions{^}1^ for completing the software inventory survey are contained in the annual call letter for the inventory from the OCE. Entries for the software inventory include:
* Project information
* Software title(s)
* Whether the software in development is safety critical
* The size in {term:KSLOC}s
* Whether it is using the NASA IV&V facility services
* The current software classification
* Dates of major milestone reviews
* The percentage of new or reused code
* The software quality assurance effort on the project
* Indications of primary and secondary languages being used
* Contact information
* Other identifying data

The instructions counsel the {term:DPC} to include facility software as part of the Center's data inputs.

{panel} One particular instruction of note states that if a project contains software of multiple classes, the data requirements are to be based on the highest class. {panel}

In addition to the OCE review of the Center's submission, the OCE may review the Center software inventory at its periodic software surveys at the Center. See the reference to the [OCE survey worksheet|https://nen.nasa.gov/web/software/documents] ^3^ in the [Resources|http://nasa7150.onconfluence.com/display/7150/SWE-006+-+Agency+Software+Inventory#_tabs-5] section of this guidance for an indication of how the information from the software inventory may be reviewed.

h1. 4. Small Projects

All software developed, acquired or being maintained by NASA is included in the inventory.  Size of the project is not used as a discriminator for inclusion of project data in the inventory.

h1. 5. Resources

# [2010 Software Inventory Instructions|https://nen.nasa.gov/web/software/documents], version 7 (available from the OCE)
# [Software Inventory Management System (SIMS).|https://sims.jpl.nasa.gov/], maintained at the NASA-JPL
# [OCE Software Survey Instructions and Templates|https://nen.nasa.gov/web/software/documents] are in the document library for software engineering at the NASA Engineering Network (NEN) website.\\


h2. 6. Lessons Learned

 No lessons learned have currently been identified for this requirement.