Features Of This Mockup
This page is a demonstration of combining existing requirements pages into a tab scheme.
- Put intro information into tab 1 explaining what it is in the tabs on this page.
- Tab 1 has SWEs in numeric order - both title only and title with requirement
- Note for SAa to get to SWE using index by SWE number. - Done - tabs 2 - 4 and tab 1
Other features:
- Excerpt from Introduction (links to NPR 7150.2D and NASA-STD-87393.8B) revised and put in panel at top - Done
- Add tab 7 - Resources including References, etc. - Done
UNDER CONSTRUCTIONÂ
- 1. Requirements
- 2. Institutional Requirements
- 3. Project Software Requirements
- 4. SA and Safety Requirements Mapping Matrix
- 5. IV&V Requirements
- 6. Tailoring SA Requirements
- 7. Resources
1. Requirements
- This tab contains a listing of all the SWEs from NPR 7150.2D in numeric order. In the note box, you can click on the link and open a listing of all the SWEs, along with their requirement, in numeric order.
- Tabs 2 contains Institutional Requirements from NPR 7150.2D Chapter 2,
- Tab 3 contains Project Software Requirements from NPR 7150.2D Chapters 3 through 5.
- Tab 4 displays the Software Assurance and Software Safety Requirements Mapping Matrix from NASA-STD-8739.8B. It shows how Software Assurance Tasking is related to SWEs.
- Tab 5 displays IV&V Requirements from NASA-STD-8739.8B (para 4.4)
- Tab 6 displays Tailoring SA Requirements from NASA-STD-8739.8B (para 4.5)
- The NASA Software Engineering Requirements, NPR 7150.2D 083
- The NASA Software Assurance and Software Safety Standard requirements, NASA-STD-8739.8B 278
You can submit any inputs and suggestions via "Feedback" in the NASA Technical Standards System (NTSS).
1.1 SWEs in Numeric Order - NPR 7150.2D
2. Institutional Requirements
See tab 1 for a list of ALL SWEs in numeric order. You can also see a list of SWEs with the text of the SWE in tab 1.
3. Project Software Requirements
See tab 1 for a list of ALL SWEs in numeric order. You can also see a list of SWEs with the text of the SWE in tab 1.
4. Software Assurance and Safety Requirements By SWE Number
See tab 1 for list of SWEs indexed by SWE number for a fast way to access a particular SWE.
Table 1. Software Assurance and Software Safety Requirements Mapping Matrix
| NPR 7150.2D Section | SWE # | NPR 7150.2D Requirement | Software Assurance and | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Software Management Requirements | ||||||||||||||||||||||||||||||
3.1 | Software Life-Cycle Planning | ||||||||||||||||||||||||||||||
| 3.1.2 | 033 | 3.1.2 The project manager shall assess options for software acquisition versus development. Notes: a. Acquire an off-the-shelf software product that satisfies the requirement. b. Develop a software product or obtain the software service internally. c. Develop the software product or obtain the software service through contract. d. Enhance an existing software product or service. e. Reuse an existing software product or service. f. Source code available external to NASA. | 1. Confirm that the options for software acquisition versus development have been evaluated. 2. Confirm the flow down of applicable software engineering, software assurance, and software safety requirements on all acquisition activities. (NPR 7150.2 and NASA-STD-8739.8). 3. Assess any risks with acquisition versus development decision(s). | ||||||||||||||||||||||||||||
| 3.1.3 | 013 | 3.1.3 The project manager shall develop, maintain, and execute software plans, including security plans, that cover the entire software life cycle and, as a minimum, address the requirements of this directive with approved tailoring. | 1. Confirm that all plans, including security plans, are in place and have expected content for the life cycle events, with proper tailoring for the classification of the software. 2. Develop and maintain a Software Assurance Plan following the content defined in NASA-HDBK-2203 for a software assurance plan, including software safety. | ||||||||||||||||||||||||||||
| 3.1.4 | 024 | 3.1.4 The project manager shall track the actual results and performance of software activities against the software plans.
| 1. Assess plans for compliance with NPR 7150.2 requirements, NASA-STD-8739.8, including changes to commitments. 2. Confirm that closure of corrective actions associated with the performance of software activities against the software plans, including closure rationale. 3. Confirm changes to commitments are recorded and managed. | ||||||||||||||||||||||||||||
| 3.1.5 | 034 | 3.1.5 The project manager shall define and document the acceptance criteria for the software. | 1. Confirm software acceptance criteria are defined and assess the criteria based on guidance in the NASA Software Engineering Handbook, NASA-HDBK-2203. | ||||||||||||||||||||||||||||
| 3.1.6 | 036 | 3.1.6 The project manager shall establish and maintain the software processes, software documentation plans, list of developed electronic products, deliverables, and list of tasks for the software development that are required for the project’s software developers, as well as the action required (e.g., approval, review) of the Government upon receipt of each of the deliverables. | 1. Confirm the following are approved, implemented, and updated per requirements: a. Software processes, including software assurance, software safety, and IV&V processes, b. Software documentation plans, c. List of developed electronic products, deliverables, and d. List of tasks required or needed for the project’s software development. 2. Confirm that any required government actions are established and performed upon receipt of deliverables (e.g., approvals, reviews). | ||||||||||||||||||||||||||||
| 3.1.7 | 037 | 3.1.7 The project manager shall define and document the milestones at which the software developer(s) progress will be reviewed and audited. | 1. Confirm that milestones for reviewing and auditing software developer progress are defined and documented. 2. Participate in project milestones reviews. | ||||||||||||||||||||||||||||
| 3.1.8 | 039 | 3.1.8 The project manager shall require the software developer(s) to periodically report status and provide insight into software development and test activities; at a minimum, the software developer(s) will be required to allow the project manager and software assurance personnel to:
| 1. Confirm that software developer(s) periodically report status and provide insight to the project manager. 2. Monitor product integration. 3. Analyze the verification activities to ensure adequacy. 4. Assess trade studies, source data, software reviews, and technical interchange meetings. 5. Perform audits on software development processes and practices at least once every two years. 6. Develop and provide status reports. 7. Develop and maintain a list of all software assurance review discrepancies, risks, issues, findings, and concerns. 8. Confirm that the project manager provides responses to software assurance and software safety submitted issues, findings, and risks and that the project manager tracks software assurance and software safety issues, findings, and risks to closure. | ||||||||||||||||||||||||||||
| 3.1.9 | 040 | 3.1.9 The project manager shall require the software developer(s) to provide NASA with software products, traceability, software change tracking information, and non-conformances in electronic format, including software development and management metrics. | 1. Confirm that software artifacts are available in electronic format to NASA. | ||||||||||||||||||||||||||||
| 3.1.10 | 042 | 3.1.10 The project manager shall require the software developer(s) to provide NASA with electronic access to the source code developed for the project in a modifiable format. | 1. Confirm that software developers provide NASA with electronic access to the source code generated for the project in a modifiable form. | ||||||||||||||||||||||||||||
| 3.1.11 | 139 | 3.1.11 The project manager shall comply with the requirements in this NPR that are marked with an “X” in Appendix C consistent with their software classification. | 1. Assess that the project's software requirements, products, procedures, and processes are compliant with the NPR 7150.2 requirements per the software classification and safety criticality for software. | ||||||||||||||||||||||||||||
| 3.1.12 | 121 | 3.1.12 Where approved, the project manager shall document and reflect the tailored requirement in the plans or procedures controlling the development, acquisition, and deployment of the affected software. | 1. Confirm that any requirement tailoring in the Requirements Mapping Matrix has the required approvals. 2. Develop a tailoring matrix of software assurance and software safety requirements. | ||||||||||||||||||||||||||||
| 3.1.13 | 125 | 3.1.13 Each project manager with software components shall maintain a requirements mapping matrix or multiple requirements mapping matrices against requirements in this NPR, including those delegated to other parties or accomplished by contract vehicles or Space Act Agreements. | 1. Confirm that the project maintains a requirements mapping matrix (matrices) for all requirements in NPR 7150.2. 2. Maintain the requirements mapping matrix (matrices) for requirements in NASA-STD-8739.8. | ||||||||||||||||||||||||||||
| 3.1.14 | 027 | 3.1.14 The project manager shall satisfy the following conditions when a COTS, GOTS, MOTS, OSS, or reused software component is acquired or used: a. The requirements to be met by the software component are identified. b. The software component includes documentation to fulfill its intended purpose (e.g., usage instructions). c. Proprietary rights, usage rights, ownership, warranty, licensing rights, transfer rights, and conditions of use (e.g., required copyright, author, and applicable license notices within the software code, or a requirement to redistribute the licensed software only under the same license (e.g., GNU GPL, ver. 3, license)) have been addressed and coordinated with Center Intellectual Property Counsel. d. Future support for the software product is planned and adequate for project needs. e. The software component is verified and validated to the same level required to accept a similar developed software component for its intended use. f. The project has a plan to perform periodic assessments of vendor reported defects to ensure the defects do not impact the selected software components. | 1. Confirm that the conditions listed in "a" through "f" are complete for any COTS, GOTS, MOTS, OSS, or reused software that is acquired or used. | ||||||||||||||||||||||||||||
3.2 | Software Cost Estimation | ||||||||||||||||||||||||||||||
| 3.2.1 | 015 | 3.2.1 To better estimate the cost of development, the project manager shall establish, document, and maintain:
| 1. Confirm that the required number of software cost estimates are complete and include software assurance cost estimate(s) for the project, including a cost estimate associated with handling safety-critical software and safety-critical data. | ||||||||||||||||||||||||||||
| 3.2.2 | 151 | 3.2.2 The project manager’s software cost estimate(s) shall satisfy the following conditions: a. Covers the entire software life cycle. | 1. Assess the project's software cost estimate(s) to determine if the stated criteria listed in "a" through "f" are satisfied. | ||||||||||||||||||||||||||||
| 3.2.3 | 174 | 3.2.3 The project manager shall submit software planning parameters, including size and effort estimates, milestones, and characteristics, to the Center measurement repository at the conclusion of major milestones. | 1. Confirm that all the software planning parameters, including size and effort estimates, milestones, and characteristics, are submitted to a Center repository. 2. Confirm that all software assurance and software safety software estimates and planning parameters are submitted to an organizational repository. | ||||||||||||||||||||||||||||
3.3 | Software Schedules | ||||||||||||||||||||||||||||||
| 3.3.1 | 016 | 3.3.1 The project manager shall document and maintain a software schedule that satisfies the following conditions:
| 1. Assess that the software schedule satisfies the conditions in the requirement. 2. Develop a software assurance schedule, including software assurance products, audits, reporting, and reviews. | ||||||||||||||||||||||||||||
| 3.3.2 | 018 | 3.3.2 The project manager shall regularly hold reviews of software schedule activities, status, performance metrics, and assessment/analysis results with the project stakeholders and track issues to resolution. | 1. Confirm the generation and distribution of periodic reports on software schedule activities, metrics, and status, including reports of software assurance and software safety schedule activities, metrics, and status. 2. Confirm closure of any project software schedule issues. | ||||||||||||||||||||||||||||
| 3.3.3 | 046 | 3.3.3 The project manager shall require the software developer(s) to provide a software schedule for the project’s review, and schedule updates as requested. | 1. Confirm the project's schedules, including the software assurance’s/software safety’s schedules, are updated. | ||||||||||||||||||||||||||||
3.4 | Software Training | ||||||||||||||||||||||||||||||
| 3.4.1 | 017 | 3.4.1 The project manager shall plan, track, and ensure project specific software training for project personnel. | 1. Confirm that any project-specific software training has been planned, tracked, and completed for project personnel, including software assurance and software safety personnel. 2. Confirm that software assurance and software safety personnel have completed the appropriate software assurance and/or software safety training to satisfactorily conduct assurance and safety activities. | ||||||||||||||||||||||||||||
3.5 | Software Classification Assessments | ||||||||||||||||||||||||||||||
| 3.5.1 | 020 | 3.5.1 The project manager shall classify each system and subsystem containing software in accordance with the highest applicable software classification definitions for Classes A, B, C, D, E, and F software in Appendix D. | 1. Perform a software classification or concur with the engineering software classification of software per the descriptions in NPR 7150.2. | ||||||||||||||||||||||||||||
| 3.5.2 | 176 | 3.5.2 The project manager shall maintain records of each software classification determination, each software Requirements Mapping Matrix, and the results of each software independent classification assessments for the life of the project. | 1. Confirm that records of the software Requirements Mapping Matrix and each software classification are maintained and updated for the life of the project. | ||||||||||||||||||||||||||||
3.6 | Software Assurance and Software | ||||||||||||||||||||||||||||||
| 3.6.1 | 022 | 3.6.1 The project manager shall plan and implement software assurance, software safety, and IV&V (if required) per NASA-STD-8739.8, Software Assurance and Software Safety Standard. | 1. Perform software assurance, software safety, and IV&V (if required) according to the software assurance and software safety standard requirements in NASA-STD-8739.8, Software Assurance and Software Safety Standard, and the Project’s software assurance plan. | ||||||||||||||||||||||||||||
| 3.6.2 | 141 | 3.6.2 For projects reaching Key Decision Point A, the program manager shall ensure that software IV&V is performed on the following categories of projects: a. Category 1 projects as defined in NPR 7120.5. | 1. Confirm that IV&V requirements (section 4.4) are complete on projects required to have IV&V. | ||||||||||||||||||||||||||||
| 3.6.3 | 131 | 3.6.3 If software IV&V is required for a project, the project manager, in consultation with NASA IV&V, shall ensure an IPEP is developed, approved, maintained, and executed in accordance with IV&V requirements in NASA-STD-8739.8. | 1. Confirm that the IV&V Project Execution Plan (IPEP) exists. | ||||||||||||||||||||||||||||
| 3.6.4 | 178 | 3.6.4 If software IV&V is performed on a project, the project manager shall ensure that IV&V is provided access to development artifacts, products, source code, and data required to perform the IV&V analysis efficiently and effectively. | 1. Confirm that IV&V has access to the software development artifacts, products, source code, and data required to perform the IV&V analysis efficiently and effectively. | ||||||||||||||||||||||||||||
| 3.6.5 | 179 | 3.6.5 If software IV&V is performed on a project, the project manager shall provide responses to IV&V submitted issues and risks and track these issues and risks to closure. | 1. Confirm that the project manager responds to IV&V submitted issues, findings, and risks and that the project manager tracks IV&V issues, findings, and risks to closure. | ||||||||||||||||||||||||||||
3.7 | Safety-Critical and Mission Critical Software | ||||||||||||||||||||||||||||||
| 3.7.1 | 205 | 3.7.1 The project manager, in conjunction with the SMA organization, shall determine if each software component is considered to be safety-critical per the criteria defined in NASA-STD-8739.8. | 1. Confirm that the hazard reports or safety data packages contain all known software contributions or events where software, either by its action, inaction, or incorrect action, leads to a hazard. 2. Assess that the hazard reports identify the software components associated with the system hazards per the criteria defined in NASA-STD-8739.8, Appendix A. 3. Assess that hazard analyses (including hazard reports) identify the software components associated with the system hazards per the criteria defined in NASA-STD-8739.8, Appendix A. 4. Confirm that the traceability between software requirements and hazards with software contributions exists. 5. Develop and maintain a software safety analysis throughout the software development life cycle. | ||||||||||||||||||||||||||||
| 3.7.2 | 023 | 3.7.2 If a project has safety-critical software, the project manager shall implement the safety-critical software requirements contained in NASA-STD-8739.8. | 1. Confirm that the identified safety-critical software components and data have implemented the safety-critical software assurance requirements listed in this standard. | ||||||||||||||||||||||||||||
| 3.7.3 | 134 | 3.7.3 If a project has safety-critical software or mission-critical software, the project manager shall implement the following items in the software: a. The software is initialized, at first start and restarts, to a known safe state. | 1. Analyze the software requirements and the software design and work with the project to implement NPR 7150.2 requirement items "a" through "l." 2. Assess that the source code satisfies the conditions in the NPR 7150.2 requirement "a" through "l" for safety-critical and mission-critical software at each code inspection, test review, safety review, and project review milestone. 3. Confirm that the values of the safety-critical loaded data, uplinked data, rules, and scripts that affect hazardous system behavior have been tested. 4. Analyze the software design to ensure the following: a. Use of partitioning or isolation methods in the design and code, b. That the design logically isolates the safety-critical design elements and data from those that are non-safety-critical. 5. Participate in software reviews affecting safety-critical software products. 6. Ensure the SWE-134 implementation supports and is consistent with the system hazard analysis. | ||||||||||||||||||||||||||||
| 3.7.4 | 219 | 3.7.4 If a project has safety-critical software, the project manager shall ensure that there is 100 percent code test coverage using the Modified Condition/Decision Coverage (MC/DC) criterion for all identified safety-critical software components. | 1. Confirm that 100% code test coverage is addressed for all identified safety-critical software components or that software developers provide a technically acceptable rationale or a risk assessment explaining why the test coverage is not possible or why the risk does not justify the cost of increasing coverage for the safety-critical code component. | ||||||||||||||||||||||||||||
| 3.7.5 | 220 | 3.7.5 If a project has safety-critical software, the project manager shall ensure all identified safety-critical software components have a cyclomatic complexity value of 15 or lower. Any exceedance shall be reviewed and waived with rationale by the project manager or technical approval authority. | 1. Perform or analyze Cyclomatic Complexity metrics on all identified safety-critical software components. 2. Confirm that all identified safety-critical software components have a cyclomatic complexity value of 15 or lower. If not, assure that software developers provide a technically acceptable risk assessment, accepted by the proper technical authority, explaining why the cyclomatic complexity value needs to be higher than 15 and why the software component cannot be structured to be lower than 15 or why the cost and risk of reducing the complexity to below 15 are not justified by the risk inherent in modifying the software component. | ||||||||||||||||||||||||||||
3.8 | Automatic Generation of Software Source Code | ||||||||||||||||||||||||||||||
| 3.8.1 | 146 | 3.8.1 The project manager shall define the approach to the automatic generation of software source code including: a. Validation and verification of auto-generation tools. | 1. Assess that the approach for the auto-generation software source code is defined, and the approach satisfies at least the conditions “a” through “g.” | ||||||||||||||||||||||||||||
| 3.8.2 | 206 | 3.8.2 The project manager shall require the software developers and custom software suppliers to provide NASA with electronic access to the models, simulations, and associated data used as inputs for auto-generation of software. | 1. Confirm that NASA, engineering, project, software assurance, and IV&V have electronic access to the models, simulations, and associated data used as inputs for auto-generation of software. | ||||||||||||||||||||||||||||
3.9 | Software Development Processes and Practices | ||||||||||||||||||||||||||||||
| 3.9.2 | 032 | 3.9.2 The project manager shall acquire, develop, and maintain software from an organization with a non-expired CMMI-DEV rating as measured by a CMMI Institute Certified Lead Appraiser as follows:
| 1. Confirm that Class A and B software acquired, developed, and maintained by NASA is performed by an organization with a non-expired CMMI-DEV rating, as per the NPR 7150.2 requirement. 2. Assess potential process-related issues, findings, or risks identified from the CMMI assessment findings. 3. Perform audits on the software development and software assurance processes. | ||||||||||||||||||||||||||||
3.10 | Software Reuse | ||||||||||||||||||||||||||||||
| 3.10.1 | 147 | 3.10.1 The project manager shall specify reusability requirements that apply to its software development activities to enable future reuse of the software, including the models, simulations, and associated data used as inputs for auto-generation of software, for U.S. Government purposes. | 1. Confirm that the project has considered reusability for its software development activities. | ||||||||||||||||||||||||||||
| 3.10.2 | 148 | 3.10.2 The project manager shall evaluate software for potential reuse by other projects across NASA and contribute reuse candidates to the appropriate NASA internal sharing and reuse software system. However, if the project manager is not a civil servant, then a civil servant will pre-approve all such software contributions; all software contributions should include, at a minimum, the following information: a. Software Title. | 1. Confirm that any project software contributed as a reuse candidate has the identified information in items “a” through “f.” | ||||||||||||||||||||||||||||
3.11 | Software Cybersecurity | ||||||||||||||||||||||||||||||
| 3.11.2 | 156 | 3.11.2 The project manager shall perform a software cybersecurity assessment on the software components per the Agency security policies and the project requirements, including risks posed by the use of COTS, GOTS, MOTS, OSS, or reused software components. | 1. Confirm the project has performed a software cybersecurity assessment on the software components per the Agency security policies and the project requirements, including risks posed by the use of COTS, GOTS, MOTS, OSS, or reused software components. | ||||||||||||||||||||||||||||
| 3.11.3 | 154 | 3.11.3 The project manager shall identify cybersecurity risks, along with their mitigations, in flight and ground software systems and plan the mitigations for these systems. | 1. Confirm that cybersecurity risks, along with their mitigations, are identified and managed. | ||||||||||||||||||||||||||||
| 3.11.4 | 157 | 3.11.4 The project manager shall implement protections for software systems with communications capabilities against unauthorized access per the requirements contained in the NASA-STD-1006, Space System Protection Standard. | 1. For software products with communications capabilities, confirm that the software requirements, software design documentation, and software implementation address unauthorized access per the requirements contained in the Space System Protection Standard, NASA-STD-1006. | ||||||||||||||||||||||||||||
| 3.11.5 | 159 | 3.11.5 The project manager shall test the software and record test results for the required software cybersecurity mitigation implementations identified from the security vulnerabilities and security weaknesses analysis. | 1. Confirm that testing is complete for the cybersecurity mitigation. 2. Assess the quality of the cybersecurity mitigation implementation testing and the test results. | ||||||||||||||||||||||||||||
| 3.11.6 | 207 | 3.11.6 The project manager shall identify, record, and implement secure coding practices. | 1. Assess that the software coding guidelines (e.g., coding standards) includes secure coding practices. | ||||||||||||||||||||||||||||
| 3.11.7 | 185 | 3.11.7 The project manager shall verify that the software code meets the project’s secure coding standard by using the results from static analysis tool(s). | 1. Analyze the engineering data or perform independent static code analysis to verify that the code meets the project’s secure coding standard requirements. | ||||||||||||||||||||||||||||
| 3.11.8 | 210 | 3.11.8 The project manager shall identify software requirements for the collection, reporting, and storage of data relating to the detection of adversarial actions. | 1. Confirm that the software requirements exist for collecting, reporting, and storing data relating to the detection of adversarial actions. | ||||||||||||||||||||||||||||
3.12 | Software Bi-Directional Traceability | ||||||||||||||||||||||||||||||
| 3.12.1 | 052 | 3.12.1 The project manager shall perform, record, and maintain bi-directional traceability between the following software elements:
| 1. Confirm that bi-directional traceability has been completed, recorded, and maintained. 2. Confirm that the software traceability includes traceability to any hazard that includes software. | ||||||||||||||||||||||||||||
4 | Software Engineering (Life Cycle) Requirements | ||||||||||||||||||||||||||||||
4.1 | Software Requirements | ||||||||||||||||||||||||||||||
| 4.1.2 | 050 | 4.1.2 The project manager shall establish, capture, record, approve, and maintain software requirements, including requirements for COTS, GOTS, MOTS, OSS, or reused software components, as part of the technical specification. | 1. Confirm that all software requirements are established, captured, and documented as part of the technical specification, including requirements for COTS, GOTS, MOTS, OSS, or reused software components. | ||||||||||||||||||||||||||||
| 4.1.3 | 051 | 4.1.3 The project manager shall perform software requirements analysis based on flowed down and derived requirements from the top-level systems engineering requirements, safety and reliability analyses, and the hardware specifications and design. | 1. Perform a software assurance analysis on the detailed software requirements to analyze the software requirement sources and identify any incorrect, missing, or incomplete requirements. | ||||||||||||||||||||||||||||
| 4.1.4 | 184 | 4.1.4 The project manager shall include software related safety constraints, controls, mitigations, and assumptions between the hardware, operator, and software in the software requirements documentation. | 1. Analyze and confirm that the software requirements documentation contains the software related safety constraints, controls, mitigations, and assumptions between the hardware, operator, and the software. | ||||||||||||||||||||||||||||
| 4.1.5 | 053 | 4.1.5 The project manager shall track and manage changes to the software requirements. | 1. Confirm the software requirements changes are documented, tracked, approved, and maintained throughout the project life cycle. | ||||||||||||||||||||||||||||
| 4.1.6 | 054 | 4.1.6 The project manager shall identify, initiate corrective actions, and track until closure inconsistencies among requirements, project plans, and software products. | 1. Monitor identified differences among requirements, project plans, and software products and confirm differences are addressed and corrective actions are tracked until closure. | ||||||||||||||||||||||||||||
| 4.1.7 | 055 | 4.1.7 The project manager shall perform requirements validation to ensure that the software will perform as intended in the customer environment. | 1. Confirm that the project software testing has shown that software will function as expected in the customer environment. | ||||||||||||||||||||||||||||
4.2 | Software Architecture | ||||||||||||||||||||||||||||||
| 4.2.3 | 057 | 4.2.3 The project manager shall transform the requirements for the software into a recorded software architecture. | 1. Assess that the software architecture addresses or contains the software structure, qualities, interfaces, and external/internal components. 2. Analyze the software architecture to assess whether software safety and mission assurance requirements are met. | ||||||||||||||||||||||||||||
| 4.2.4 | 143 | 4.2.4 The project manager shall perform a software architecture review on the following categories of projects: a. Category 1 Projects as defined in NPR 7120.5. | 1. Assess the results of or participate in software architecture review activities held by the project. | ||||||||||||||||||||||||||||
4.3 | Software Design | ||||||||||||||||||||||||||||||
| 4.3.2 | 058 | 4.3.2 The project manager shall develop, record, and maintain a software design based on the software architectural design that describes the lower-level units so that they can be coded, compiled, and tested. | 1. Assess the software design against the hardware and software requirements and identify any gaps. 2. Assess the software design to verify that the design is consistent with the software architectural design concepts and that the software design describes the lower-level units to be coded, compiled, and tested. 3. Assess that the design does not introduce undesirable behaviors or unnecessary capabilities. 4. Confirm that the software design implements all of the required safety-critical functions and requirements. 5. Perform a software assurance design analysis. | ||||||||||||||||||||||||||||
4.4 | Software Implementation | ||||||||||||||||||||||||||||||
| 4.4.2 | 060 | 4.4.2 The project manager shall implement the software design into software code. | 1. Confirm that the software code implements the software designs. 2. Confirm that the code does not contain functionality not defined in the design or requirements. | ||||||||||||||||||||||||||||
| 4.4.3 | 061 | 4.4.3 The project manager shall select, define, and adhere to software coding methods, standards, and criteria. | 1. Assure the project manager selected and/or defined software coding methods, standards, and criteria. 2. Analyze that the software code conforms to all required software coding methods, rules, and principles. | ||||||||||||||||||||||||||||
| 4.4.4 | 135 | 4.4.4 The project manager shall use static analysis tools to analyze the code during the development and testing phases to, at a minimum, detect defects, software security, code coverage, and software complexity. | 1. Analyze the engineering data or perform independent static code analysis to check for code detects defects, software quality objectives, code coverage objectives, software complexity values, and software security objectives. 2. Confirm the static analysis tool(s) are used with checkers to identify security and coding errors and defects. 3. Assess that the project addresses the results from the static analysis tools used by software assurance, software safety, engineering, or the project. 4. Confirm that the software code has been scanned for security defects and confirm the result. 5. Per SWE-219 for safety-critical software, verify code coverage and approved waivers. 6. Per SWE-220 for safety-critical software, verify cyclomatic complexity and approved waivers. 7. Confirm that Software Quality Objectives or software quality threshold levels are defined and set for static code analysis defects, checks, or software security objectives. | ||||||||||||||||||||||||||||
| 4.4.5 | 062 | 4.4.5 The project manager shall unit test the software code. | 1. Confirm that the project successfully executes the required unit tests, particularly those testing safety-critical functions. 2. Confirm that the project addresses or otherwise tracks to closure errors, defects, or problem reports found during unit testing. | ||||||||||||||||||||||||||||
| 4.4.6 | 186 | 4.4.6 The project manager shall assure that the unit test results are repeatable. | 1. Confirm that the project maintains the procedures, scripts, results, and data needed to repeat the unit testing (e.g., as-run scripts, test procedures, results). | ||||||||||||||||||||||||||||
| 4.4.7 | 063 | 4.4.7 The project manager shall provide a software version description for each software release. | 1. Confirm that the project creates a correct software version description for each software release. 2. For each software release, confirm that the software has been scanned for security defects and coding standard compliance and confirm the results. | ||||||||||||||||||||||||||||
| 4.4.8 | 136 | 4.4.8 The project manager shall validate and accredit the software tool(s) required to develop or maintain software. | 1. Confirm that the software tool(s) needed to create and maintain software is validated and accredited. | ||||||||||||||||||||||||||||
4.5 | Software Testing | ||||||||||||||||||||||||||||||
| 4.5.2 | 065a | 4.5.2 The project manager shall establish and maintain: a. Software test plan(s). | 1. Confirm that software test plans have been established, contain correct content, and are maintained. 2. Confirm that the software test plan addresses the verification of safety-critical software, specifically the off-nominal scenarios. | ||||||||||||||||||||||||||||
| 4.5.2 | 065b | 4.5.2 The project manager shall establish and maintain: b. Software test procedure(s). | 1. Confirm that the test procedures have been established and are updated when changes to tests or requirements occur. 2. Analyze the software test procedures for the following: a. Coverage of the software requirements. b. Acceptance or pass/fail criteria, c. The inclusion of operational and off-nominal conditions, including boundary conditions, d. Requirements coverage and hazards per SWE-066 and SWE-192, respectively. e. Requirements coverage for cybersecurity per SWE-157 and SWE-210. | ||||||||||||||||||||||||||||
| 4.5.2 | 065c | 4.5.2 The project manager shall establish and maintain: c. Software test(s), including any code specifically written to perform test procedures. | 1. Confirm that the project creates and maintains any code specifically written to perform test procedures in a software configuration management system. 2. Confirm that the project records all issues and discrepancies in the code specifically written to perform test procedures. 3. Confirm that the project tracks to closure errors and defects found in the code specifically written to perform test procedures. | ||||||||||||||||||||||||||||
| 4.5.2 | 065d | 4.5.2 The project manager shall establish and maintain: d. Software test report(s). | 1. Confirm that the project creates and maintains the test reports throughout software integration and test. 2. Confirm that the project records the test report data and that the data contains the as-run test data, the test results, and required approvals. 3. Confirm that the project records all issues and discrepancies found during each test. 4. Confirm that the project tracks to closure errors and defects found during testing. | ||||||||||||||||||||||||||||
| 4.5.3 | 066 | 4.5.3 The project manager shall test the software against its requirements. | 1. Confirm test coverage of the requirements through the execution of the test procedures. 2. Perform test witnessing for safety-critical software. 3. Confirm that any newly identified software contributions to hazards, events, or conditions found during testing are in the system safety data package. | ||||||||||||||||||||||||||||
| 4.5.4 | 187 | 4.5.4 The project manager shall place software items under configuration management prior to testing. | 1. Confirm that software items to be tested are under configuration management before the start of testing. 2. Confirm the project maintains the software items under configuration management through the completion of testing. | ||||||||||||||||||||||||||||
| 4.5.5 | 068 | 4.5.5 The project manager shall evaluate test results and record the evaluation. | 1. Confirm that test results are assessed and recorded. 2. Confirm that the project documents software non-conformances in a tracking system. 3. Confirm that test results are sufficient verification artifacts for the hazard reports. | ||||||||||||||||||||||||||||
| 4.5.6 | 070 | 4.5.6 The project manager shall use validated and accredited software models, simulations, and analysis tools required to perform qualification of flight software or flight equipment. | 1. Confirm that the software models, simulations, and analysis tools used to achieve the qualification of flight software or flight equipment have been validated and accredited. | ||||||||||||||||||||||||||||
| 4.5.7 | 071 | 4.5.7 The project manager shall update the software test and verification plan(s) and procedure(s) to be consistent with software requirements. | 1. Analyze that software test plans and software test procedures cover the software requirements and provide adequate verification of hazard controls, specifically the off-nominal scenarios. | ||||||||||||||||||||||||||||
| 4.5.8 | 073 | 4.5.8 The project manager shall validate the software system on the targeted platform or high-fidelity simulation. | 1. Confirm that the project validates the software components on the targeted platform or a high-fidelity simulation. | ||||||||||||||||||||||||||||
| 4.5.9 | 189 | 4.5.9 The project manager shall ensure that the code coverage measurements for the software are selected, implemented, tracked, recorded, and reported. | 1. Confirm that code coverage measurements have been selected, performed, tracked, recorded, and communicated with each release. | ||||||||||||||||||||||||||||
| 4.5.10 | 190 | 4.5.10 The project manager shall verify code coverage is measured by analysis of the results of the execution of tests. | 1. Confirm that the project performs code coverage analysis using the results of the tests or a code coverage tool. 2. Analyze the code coverage measurements to identify uncovered software code. 3. Assess any uncovered software code for potential risk, issues, or findings. | ||||||||||||||||||||||||||||
| 4.5.11 | 191 | 4.5.11 The project manager shall plan and conduct software regression testing to demonstrate that defects have not been introduced into previously integrated or tested software and have not produced a security vulnerability. | 1. Confirm that the project plans regression testing and that the regression testing is adequate and includes retesting of all safety-critical code components. 2. Confirm that the project performs the planned regression testing. 3. Identify any risks and issues associated with the regression test set selection and execution. 4. Confirm that the regression test procedures are updated to incorporate tests that validate the correction of critical anomalies. | ||||||||||||||||||||||||||||
| 4.5.12 | 192 | 4.5.12 The project manager shall verify through test the software requirements that trace to a hazardous event, cause, or mitigation technique. | 1. Through testing, confirm that the project verifies the software requirements which trace to a hazardous event, cause, or mitigation techniques. | ||||||||||||||||||||||||||||
| 4.5.13 | 193 | 4.5.13 The project manager shall develop acceptance tests for loaded or uplinked data, rules, and code that affects software and software system behavior. | 1. Confirm that the project develops acceptance tests for loaded or uplinked data, rules, and code that affect software and software system behavior. 2. Confirm that the loaded or uplinked data, rules, scripts, or code that affect software and software system behavior are baselined in the software configuration system. 3. Confirm that loaded or uplinked data, rules, and scripts are verified as correct prior to operations, particularly for safety-critical operations. | ||||||||||||||||||||||||||||
| 4.5.14 | 211 | 4.5.14 The project manager shall test embedded COTS, GOTS, MOTS, OSS, or reused software components to the same level required to accept a custom developed software component for its intended use. | 1. Confirm that the project is testing COTS, GOTS, MOTS, OSS, or reused software components to the same level as developed software for its intended use. | ||||||||||||||||||||||||||||
4.6 | Software Operations, Maintenance, and Retirement | ||||||||||||||||||||||||||||||
| 4.6.2 | 075 | 4.6.2 The project manager shall plan and implement software operations, maintenance, and retirement activities. | 1. Assess the maintenance, operations, and retirement plans for completeness of the required software engineering and software assurance activities. 2. Confirm that the project implements software operations, software maintenance, and software retirement plans. | ||||||||||||||||||||||||||||
| 4.6.3 | 077 | 4.6.3 The project manager shall complete and deliver the software product to the customer with appropriate records, including as-built records, to support the operations and maintenance phase of the software’s life cycle. | 1. Confirm that the correct version of the products is delivered, including as-built documentation and project records. 2. Perform audits for all deliveries per the configuration management processes to verify that all products are being delivered and are the correct versions. | ||||||||||||||||||||||||||||
| 4.6.4 | 194 | 4.6.4 The project manager shall complete, prior to delivery, verification that all software requirements identified for this delivery have been met or dispositioned, that all approved changes have been implemented, and that all defects designated for resolution prior to delivery have been resolved. | 1. Confirm that the project has identified the software requirements to be met, the approved changes to be implemented, and defects to be resolved for each delivery. 2. Confirm that the project has met all software requirements identified for delivery. 3. Confirm requirements once planned for delivery but no longer appearing in delivery documentation have been dispositioned. 4. Confirm that approved changes have been implemented and tested. 5. Confirm that the approved changes to be implemented and the defects to be resolved have been resolved. 6. Approve or sign off on the projects delivered products. | ||||||||||||||||||||||||||||
| 4.6.5 | 195 | 4.6.5 The project manager shall maintain the software using standards and processes per the applicable software classification throughout the maintenance phase. | 1. Perform audits on the standards and processes used throughout maintenance based on the software classification. | ||||||||||||||||||||||||||||
| 4.6.6 | 196 | 4.6.6 The project manager shall identify the records and software tools to be archived, the location of the archive, and procedures for access to the products for software retirement or disposal. | 1. Confirm that the project has identified the records and software tools for archival. 2. Confirm that the project archives all software and records selected for archival, as planned. | ||||||||||||||||||||||||||||
5 | Supporting Software Life Cycle Requirements | ||||||||||||||||||||||||||||||
5.1 | Software Configuration Management | ||||||||||||||||||||||||||||||
| 5.1.2 | 079 | 5.1.2 The project manager shall develop a software configuration management plan that describes the functions, responsibilities, and authority for the implementation of software configuration management for the project. | 1. Assess that a software configuration management plan has been developed and complies with the requirements in NPR 7150.2 and Center/project guidance. | ||||||||||||||||||||||||||||
| 5.1.3 | 080 | 5.1.3 The project manager shall track and evaluate changes to software products. | 1. Analyze proposed software and hardware changes to software products for impacts, particularly safety and security. 2. Confirm the following: a. The project tracks the changes. b. The changes are approved and documented before implementation. c. The implementation of changes is complete. d. The project tests the changes. 3. Confirm software changes follow the software change control process. | ||||||||||||||||||||||||||||
| 5.1.4 | 081 | 5.1.4 The project manager shall identify the software configuration items (e.g., software records, code, data, tools, models, scripts) and their versions to be controlled for the project. | 1. Confirm that the project has identified the configuration items and their versions to be controlled. 2. Assess that the software safety-critical items are configuration-managed, including hazard reports and safety analysis. | ||||||||||||||||||||||||||||
| 5.1.5 | 082 | 5.1.5 The project manager shall establish and implement procedures to: a. Designate the levels of control through which each identified software configuration item is required to pass. | 1. Confirm that software assurance has participation in software control activities. 2. Perform an audit against the configuration management procedures to confirm that the project follows the established procedures. | ||||||||||||||||||||||||||||
| 5.1.6 | 083 | 5.1.6 The project manager shall prepare and maintain records of the configuration status of software configuration items. | 1. Confirm that the project maintains records of the configuration status of the configuration items. | ||||||||||||||||||||||||||||
| 5.1.7 | 084 | 5.1.7 The project manager shall perform software configuration audits to determine the correct version of the software configuration items and verify that they conform to the records that define them. | 1. Confirm that the project manager performed software configuration audits to determine the correct version of the software configuration items and verify that the results of the audit conform to the records that define them. | ||||||||||||||||||||||||||||
| 5.1.8 | 085 | 5.1.8 The project manager shall establish and implement procedures for the storage, handling, delivery, release, and maintenance of deliverable software products. | 1. Confirm that the project establishes procedures for storage, processing, distribution, release, and support of deliverable software products. 2. Perform audits on the project to ensure that the project follows defined procedures for deliverable software products. | ||||||||||||||||||||||||||||
| 5.1.9 | 045 | 5.1.9 The project manager shall participate in any joint NASA/developer audits. | 1. Participate in or assess the results from any joint NASA/developer audits. Track any findings to closure. | ||||||||||||||||||||||||||||
5.2 | Software Risk Management | ||||||||||||||||||||||||||||||
| 5.2.1 | 086 | 5.2.1 The project manager shall record, analyze, plan, track, control, and communicate all of the software risks and mitigation plans. | 1. Confirm and assess that a risk management process includes recording, analyzing, planning, tracking, controlling, and communicating all software risks and mitigation plans. 2. Perform audits on the risk management process for the software activities. | ||||||||||||||||||||||||||||
5.3 | Software Peer Reviews/Inspections | ||||||||||||||||||||||||||||||
| 5.3.2 | 087 | 5.3.2 The project manager shall perform and report the results of software peer reviews or software inspections for: a. Software requirements. | 1. Confirm that software peer reviews are performed and reported on for project activities. 2. Confirm that the project addresses the accepted software peer review findings. 3. Perform peer reviews on software assurance and software safety plans. 4. Confirm that the source code satisfies the conditions in the NPR 7150.2 requirement SWE-134, "a" through "l," based upon the software functionality for the applicable safety-critical requirements at each code inspection/review. | ||||||||||||||||||||||||||||
| 5.3.3 | 088 | 5.3.3 The project manager shall, for each planned software peer review or software inspection: a. Use a checklist or formal reading technique (e.g., perspective-based reading) to evaluate the work products. | 1. Confirm that the project meets the NPR 7150.2 criteria in "a" through "d" for each software peer review. 2. Confirm that the project resolves the actions identified from the software peer reviews. 3. Perform audits on the peer-review process. | ||||||||||||||||||||||||||||
| 5.3.4 | 089 | 5.3.4 The project manager shall, for each planned software peer review or software inspection, record necessary measurements. | 1. Confirm that the project records the software peer reviews and results of software inspection measurements. | ||||||||||||||||||||||||||||
5.4 | Software Measurements | ||||||||||||||||||||||||||||||
| 5.4.2 | 090 | 5.4.2 The project manager shall establish, record, maintain, report, and utilize software management and technical measurements. | 1. Confirm that a measurement program establishes, records, maintains, reports, and uses software assurance, management, and technical measures. 2. Perform trending analyses on metrics (quality metrics, defect metrics) and report. 3. Collect any identified organizational metrics and submit them to the organizational repository. | ||||||||||||||||||||||||||||
| 5.4.3 | 093 | 5.4.3 The project manager shall analyze software measurement data collected using documented project-specified and Center/organizational analysis procedures. | 1. Confirm software measurement data analysis conforms to documented analysis procedures. 2. Analyze software assurance measurement data. | ||||||||||||||||||||||||||||
| 5.4.4 | 094 | 5.4.4 The project manager shall provide access to the software measurement data, measurement analyses, and software development status as requested to the sponsoring Mission Directorate, the NASA Chief Engineer, the Center Technical Authorities, HQ SMA, and other organizations as appropriate. | 1. Confirm access to software measurement data, analysis, and status as requested to the following entities, at a minimum: - Sponsoring Mission Directorate - NASA Chief Engineer - Center Technical Authorities - Headquarters SMA | ||||||||||||||||||||||||||||
| 5.4.5 | 199 | 5.4.5 The project manager shall monitor measures to ensure the software will meet or exceed performance and functionality requirements, including satisfying constraints. | 1. Confirm that the project monitors and updates planned measurements to ensure the software meets or exceeds performance and functionality requirements, including satisfying constraints. 2. Monitor and track any performance or functionality requirements that are not being met or are at risk of not being met. | ||||||||||||||||||||||||||||
| 5.4.6 | 200 | 5.4.6 The project manager shall collect, track, and report software requirements volatility metrics. | 1. Confirm that the project collects, tracks, and reports on the software volatility metrics. 2. Analyze software volatility metrics to evaluate requirements stability as an early indicator of project problems. | ||||||||||||||||||||||||||||
5.5 | Software Non-conformance or Defect Management | ||||||||||||||||||||||||||||||
| 5.5.1 | 201 | 5.5.1 The project manager shall track and maintain software non-conformances (including defects in tools and appropriate ground software). | 1. Confirm that all software non-conformances are recorded and tracked to resolution. 2. Confirm that accepted non-conformances include the rationale for the non-conformance. | ||||||||||||||||||||||||||||
| 5.5.2 | 202 | 5.5.2 The project manager shall define and implement clear software severity levels for all software non-conformances (including tools, COTS, GOTS, MOTS, OSS, reused software components, and applicable ground systems). | 1. Confirm that all software non-conformances severity levels are defined. 2. Assess the application and accuracy of the defined severity levels to software non-conformances. 3. Confirm that the project assigns severity levels to non-conformances associated with tools, COTS, GOTS, MOTS, OSS, and reused software components. 4. Maintain or access the number of software non-conformances at each severity level for each software configuration item. | ||||||||||||||||||||||||||||
| 5.5.3 | 203 | 5.5.3 The project manager shall implement mandatory assessments of reported non-conformances for all COTS, GOTS, MOTS, OSS, and/or reused software components. | 1. Confirm the evaluations of reported non-conformances for all COTS, GOTS, MOTS, OSS, or reused software components are occurring throughout the project life cycle. 2. Assess the impact of non-conformances on the project software's safety, quality, and reliability. | ||||||||||||||||||||||||||||
| 5.5.4 | 204 | 5.5.4 The project manager shall implement process assessments for all high-severity software non-conformances (closed-loop process). | 1. Perform or confirm that a root cause analysis has been completed on all identified high severity software non-conformances, and that the results are recorded and have been assessed for adequacy. 2. Confirm that the project analyzed the processes identified in the root cause analysis associated with the high severity software non-conformances. 3. Assess opportunities for improvement on the processes identified in the root cause analysis associated with the high severity software non-conformances. 4. Perform or confirm tracking of corrective actions to closure on high severity software non-conformances. |
5. IV&V Requirements from NASA-STD-8739.8B
4.4.2 IV&V Requirements
4.4.2.0 The responsible project manager shall ensure the performance of the IV&V requirements, as defined in section 4.4.2 of this standard. The IV&V requirements in this section of the standard apply to any project required to have IV&V per the criteria defined in the NASA Software Engineering Requirements, NPR 7150.2. The IV&V requirements apply to all IV&V efforts performed on a software development project, as tailored by the IV&V Project Execution Plan. The IV&V requirements also serve as the definition of what NASA considers IV&V. IV&V is a risk mitigation activity, and as such, the application of IV&V analysis and the rigor of that analysis is driven by the IV&V provider’s assessment of software risk.
Note: IV&V is a focused activity that prioritizes IV&V analysis to address the highest developmental and operational software risks. IV&V priority is based on the combination of the potential for software impacts on safety and mission success and the probability factors for latent defects. IV&V analysis activities provide coverage with a degree of rigor that reflects the priority level. The initial planning and scoping effort based on the risk assessment define the starting point for the IV&V analysis. During the life cycle of each IV&V project, continuous and iterative feedback, through the execution of analysis, identification of issues and risks, and the collection of deeper mission understanding, allows IV&V projects to “Follow The Risk” and adjust plans. The planning and scoping effort also aid in establishing the initial relationships between the IV&V provider, the Acquirer, and the Provider.
Note: The IV&V Execution Plan (IPEP) documents the activities, methods, level of rigor, environments, tailoring (if any) of the IV&V requirements, and criteria to be used in performing verification and validation of in-scope system/software behaviors (including responsible software components) determined by the planning and scoping effort. A Provider should use a documented analysis approach to track and manage the IV&V effort aligned with ongoing development project efforts. The IPEP documents which software products are subject to which analyses and which analysis requirements are wholly, partially, or not applied following the risk assessment and resource constraints. The IPEP also serves as a communication tool between the project and IV&V to set expectations for the IV&V products produced throughout the life The IPEP may require updating throughout the life cycle.
4.4.2.3 The Project SMA Technical Authority (TA) shall review and concur with the IPEP.
Note: While independent, the IV&V provider is still a part of a project's overall safety and risk mitigation software assurance strategy. The results of IV&V analysis need to be incorporated into the overall software assurance assessment of the project and provided to the project management. The IV&V provider should support project milestone reviews and provide the project with an evaluation of the life cycle review artifacts to assist development management decisions on whether the review criteria have been met and how to proceed going forward.
Note: The most significant positive impact of IV&V analysis is when the analysis results are in phase with the development effort. Communicating defects after development artifacts are baselined increases the cost to make the changes. Additionally, the inclusion of the IV&V provider in ongoing technical meetings keeps the IV&V provider informed of possible changes that may affect future IV&V tasking. Supporting the ongoing technical meetings allows the IV&V Provider an opportunity to provide real-time feedback on these changes.
a. Monitor the IV&V activities and plans.
b. Review the verification activities to ensure adequacy.
c. Review IV&V studies and source data.
d. Audit the software IV&V processes and practices.
e. Participate in IV&V software reviews and technical interchange meetings
Note: The IV&V provider should be involved in the review/inspection process for all system/software items within the scope of their analysis.
Note: The IV&V provider gathers and analyzes metrics on a periodic basis to perform continuous improvement of IV&V processes and identify indicators of IV&V and project risks.
4.4.2.13 The IV&V provider shall verify the project implements the requirements for software listed in NPR 7150.2 and communicate any risks to the responsible organizations’ project management, engineering, and software assurance personnel.
4.4.2.15 The IV&V provider shall ensure that the identified defects and issues are addressed by the project.
Note: Software usually provides the interface between the user and the system hardware and the interface between system hardware components and other systems. These interfaces are critical to the successful operation and use of the system.
Note: Security is an essential aspect of any system development effort. In most systems, software provides the primary user interface. The user interface is an element of the system that can provide undesired access. A system concept design should address known security risks through various features in the system.
4.4.2.24 The IV&V provider shall ensure that software requirements meet the dependability and fault tolerance required by the system.
Note: Architectural elements are responsible for implementing specific behaviors within the software and the overall system. The interactions between these architectural elements result in the realization of the desired behaviors as well as possible undesired behaviors.
Note: The architecture provides the foundation for the development of the software. It also significantly impacts how the software deals with faults and failures and how the software interfaces with the user and system components. Analysis of the architecture provides early insight into how the software is structured and how that structure can implement the requirements.
Note: Detailed design is the implementation of the algorithms that control and monitor the different parts of the system and allow for interaction between the system and the user and other systems. The detailed design defines how the architectural components behave to support the interactions defined in the architecture. Analysis of the detailed design includes looking at the low-level software components in the software system.
Note: While the architecture defines the interactions between the architectural elements, each element is generally composed of lower-level components defined by the detailed design. The interfaces between these components are important in ensuring that the architectural element meets its assigned responsibilities.
Note: The detailed design components capture the approach to implementing the software requirements, including the requirements associated with fault management, security, and safety. Analysis of the relationship between the detailed design and the software requirements provides evidence that all requirements are in the detailed design.
Note: This includes software developed by NASA, software developed for NASA, software maintained by or for NASA, COTS, GOTS, MOTS, OSS, reused software components, auto-generated code, embedded software, the software executed on processors embedded in programmable logic devices, legacy, heritage, applications, freeware, shareware, trial or demonstration software.
Note: The use of analysis tools may include the verification and validation of the analysis tools used by the development project in the process of developing the software. The results may be from static code analysis, software composition analysis, dynamic code analysis, cyclomatic complexity, or other code quality analysis tools.
Note: For all of the implementation requirements, it is with code that the development of software reaches its lowest level of abstraction and that the software capabilities are implemented. Evaluating the relationship between the source code and the design components and requirements provides evidence that only the specified requirements and components are in the system. Evaluating the relationship between the source code and the design components and requirements helps minimize one aspect of the emergence of unexpected behaviors: the inclusion of behaviors not specified in the requirements. The overall analysis of the code is essential in assuring that the code does implement the required software behaviors. From a safety perspective, it is important to evaluate the code and assure that known software safety and security issues such as buffer overflows and type mismatches, among many others, are not used in safety-critical aspects of the software.
Note: The IV&V provider assesses the testing artifacts with respect to the desired capabilities and expected operational system environment. The assessment includes an examination of testing at system boundary conditions to include unexpected conditions. The testing analysis assures that the project tests all requirements and that the system does what the requirements state it should do. The testing analysis also includes an analysis of the traceability information between the tests and the requirements.
4.4.2.45 The IV&V provider shall verify that code coverage is measured by analysis of the results of the execution of tests.
4.4.2.47 The IV&V provider shall verify the project’s acceptance tests for loaded or uplinked data, rules, and code that affects software and software system behavior.
4.4.2.48 The IV&V provider shall participate in all NASA quality audits, assessments, and reviews associated with the project.
Note 1: The approach to software development on some projects results in different parts of the software going into operation at different times in the overall project life For example, a lander mission to Mars may complete the software needed for the cruise phase to Mars while continuing to work on the entry, descent, landing, and surface operations software.
Note 2: In some cases, software anomalies cause changes to the software. IV&V is important because software changes can often have ripple effects throughout the system and cause emergent behaviors. The IV&V analysis provides insight into these possible effects and provides an overall assessment of the impact of the change.
6. Tailoring SA Requirements from NASA-STD-8739.8B
4.5 Principles Related to Tailoring the Standard Requirements
following steps. Tailoring at the Center level is decided by the SMA TA and the NPR 7150.2 Requirements Mapping Matrix applicability. Tailor the software assurance, software safety, and IV&V requirements using the following levels:
a. The first level of tailoring is the Software Classification Decision, see NPR 7150.2.
b. The second level of tailoring is the project’s Software Requirements Mapping Matrix, see NPR 7150.2.
c. The third level of tailoring is the tailoring by the Software Assurance TA of the Software Assurance and Software Safety Standard requirements that correspond to the project’s Software Requirements Mapping Matrix requirements.
4.5.6 If a system or subsystem development evolves to meet a higher or lower software classification defined in NPR 7150.2, the software assurance, software safety, and IV&V organizations shall update their plan(s) to fulfill the applicable requirements per the Requirements Mapping Matrix and any approved changes and initiate adjustments to applicable contracts to meet the modified requirements.
7. Resources
7.1 References
(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-278)
NASA-STD-8739.8B, NASA TECHNICAL STANDARD, Approved 2022-09-08 Superseding "NASA-STD-8739.8A"



0 Comments