184.108.40.206 Center Director, or designee, shall maintain a reliable list of their Center’s programs and projects containing Class A, B, C, and D software. The list should include:
a. Project/program name and Work Breakdown Structure (WBS) number.
b. Software name(s) and WBS number(s).
c. Software size estimate (report in Kilo/Thousand Source Lines of Code (KSLOCs)).
d. The phase of development or operations.
e. Software Class or list of the software classes being used on the project.
f. Software safety-critical status.
g. For each Computer Software Configuration Item (CSCI)/Major System containing Class A, B, or C software, provide:
(1) The name of the software development organization.
(2) Title or brief description of the CSCI/Major System.
(3) The estimated total KSLOCs, the CSCI/Major System, represents.
(4) The primary programming languages used.
(5) The life-cycle methodology on the software project.
(6) Name of responsible software assurance organization(s).
NPR 7150.2, NASA Software Engineering Requirements, does not include any notes for this requirement.
Click here to view the history of this requirement: SWE-006 History
NASA Centers maintain an inventory of software projects worked at their Center to facilitate strategic decisions based on actual data at the Center and Agency levels. The NASA Office of the Chief Engineer (OCE) (in coordination with the Chief of the Safety and Mission Assurance (S&MA) Office) works with the Centers to provide the data needed to address external and internal Agency software inquiries. The rationale and uses of this Software Inventory include:
- The Center Software Inventory data supports Engineering and S&MA Technical Authorities' duties by cataloging the classification of software on projects and whether it is safety-critical.
- The Center Software Inventory data support the OCE in helping to determine whether Centers' software engineering capabilities are commensurate with their responsibilities.
- The Center Software Inventory data provides an accurate profile of critical software (Class A, B, and C and D) across the Agency to facilitate strategic decisions based on real data.
- Center S&MA personnel utilize the Center’s Software Inventory data to help identify projects and assure they are covered and have been assessed for safety-critical software and software assurance.
- The Center Software Inventory data provides NASA with current software data for decision-making.
The guidance for this requirement applies to software Classes A through E (see SWE-020). Inventory information for software Classes F through H are captured separately and maintained by the NASA Chief Information Officer.
Each Center is responsible to maintain a current list of software development activities ongoing and in maintenance at their Center. The inventory can be maintained on any system that the Center decides. The center inventory data should be able to be provided to the OCE if requested in an electronic format. Periodically the Office of the Chief Engineer (OCE) issues requests to the Centers for an update to the inventory of software projects under their purview. Guidance on the information required on projects containing Class A, B, C, and D software is as follows:
- Project/program name and Work Breakdown Structure (WBS) number – Include the project name and WBS number, the WBS number generally will be the charge code number for the project.
- Software name(s) and WBS number(s) – Software component names and WBS numbers if multiple names and WBS numbers are used on a project. The software name may be the same as the project name.
- Software size estimate (report in Kilo/Thousand Source Lines of Code (KSLOCs)) - Report SLOC estimates until actual SLOC numbers are available. Use a standard available code counting tool to determine SLOC numbers after source code is available. Use a code conversion method if code is being auto coded or being developed from a model.
- The phase of development or operations – Phase related to NPR 7120.5 lifecycle phases
- Safety-Critical Software (Yes or No) - use the software safety-critical determination process, defined in NASA-STD-8739.8, to determine if the software is safety-critical. Multiple software components on a given project may have different criticalities.
- Software Class or list of the software classes being developed on the project. - use the software classification guidance in Topic 7.2 - Classification and Safety-Criticality to determine the software classification. Multiple software components on a given project may have different classifications.
- For each Computer Software Configuration Item (CSCI)/Major System containing Class A, B, or C software, provide:
- The name of the software development organization – What organization(s) are developing the software component?
- Title or brief description of the CSCI/Major System – Name of each software component.
- The estimated total KSLOC the CSCI/Major System represents - Report SLOC estimates until actual SLOC numbers are available. Use a standard available code counting tool to determine SLOC numbers after source code is available. Use a code conversion method if code is being auto coded or being developed from a model.
- The primary programming languages used (e.g., C, C++, Java, LabVIEW, others …)
- The primary life-cycle methodology being used on the software project (e.g., waterfall, agile, spiral, others …)
- Name of responsible software assurance organization(s) – Which office is responsible for performing software assurance activities on each software component?
4. Small Projects
All software developed, acquired or being maintained by NASA is included in the inventory. The size of the project is not used as a discriminator for the inclusion of project data in the inventory.
6. Lessons Learned
6.1 NASA Lessons Learned
- No Lessons Learned have currently been identified for this requirement.
6.2 Other Lessons Learned
As part of its 2003 audit report on IV&V software, the Inspector General (IG) included this recommendation: "The NASA Chief Engineer, in coordination with the Associate Administrator for Safety and Mission Assurance, should establish a process that provides the NASA IV&V Facility, on a recurring basis, a complete and accurate list of the Agency's programs and projects governed by either NASA Procedures and Guidelines 7120.5A 082 or NASA Technical Standard 8719.13A 271."