bannerd

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt
Excerpt
hiddentrue

NASA Technical Standard 8739.8B - Approved 2004-27-08 - SOFTWARE ASSURANCE AND SOFTWARE SAFETY STANDARD. Full text of this NPR as taken from NODIS. Assembled from component pieces beneath this page. 

...

DOCUMENT HISTORY LOG

Forward

This NASA Technical Standard is published by the National Aeronautics and Space Administration (NASA) to provide uniform engineering and technical requirements for processes, procedures, practices, and methods that have been endorsed as standard for NASA facilities, programs, and projects, including requirements for selection, application, and design criteria of an item.
This standard was developed by the NASA Office of Safety and Mission Assurance (OSMA). Requests for information, corrections, or additions to this standard should be submitted to the OSMA by email to Agency-SMA-Policy-Feedback@mail.nasa.gov or via the “Email Feedback” link at https://standards.nasa.gov.

Software Assurance and Software Safety Requirements Mapping Matrix

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.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.The project manager shall include software related safety constraints, controls, mitigations, and assumptions between the hardware, operator, and software in the software requirements documentation.The project manager shall track and manage changes to the software requirements.The project manager shall identify, initiate corrective actions, and track until closure inconsistencies among requirements, project plans, and software products.The project manager shall perform requirements validation to ensure that the software will perform as intended in the customer environment.The project manager shall transform the requirements for the software into a recorded software architecture.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.b. Category 2 Projects as defined in NPR 7120.5 that have Class A or Class B payload risk classification per NPR 8705.4.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.The project manager shall implement the software design into software code.The project manager shall select, define, and adhere to software coding methods, standards, and criteria.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.The project manager shall unit test the software code.The project manager shall assure that the unit test results are repeatable.The project manager shall provide a software version description for each software release.The project manager shall validate and accredit the software tool(s) required to develop or maintain software.The project manager shall establish and maintain:
a. Software test plan(s).
The project manager shall establish and maintain:
...
b. Software test procedure(s).
The project manager shall establish and maintain:
...
c. Software test(s), including any code specifically written to perform test procedures.
The project manager shall establish and maintain:
...
d. Software test report(s).The project manager shall test the software against its requirements.The project manager shall place software items under configuration management prior to testing.The project manager shall evaluate test results and record the evaluation.The project manager shall use validated and accredited software models, simulations, and analysis tools required to perform qualification of flight software or flight equipment.The project manager shall update the software test and verification plan(s) and procedure(s) to be consistent with software requirements.The project manager shall validate the software system on the targeted platform or high-fidelity simulation.The project manager shall ensure that the code coverage measurements for the software are selected, implemented, tracked, recorded, and reported.The project manager shall verify code coverage is measured by analysis of the results of the execution of tests.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.The project manager shall verify through test the software requirements that trace to a hazardous event, cause, or mitigation technique.The project manager shall develop acceptance tests for loaded or uplinked data, rules, and code that affects software and software system behavior.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.The project manager shall plan and implement software operations, maintenance, and retirement activities.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.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.The project manager shall maintain the software using standards and processes, per the applicable software classification throughout the maintenance phase.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.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.The project manager shall track and evaluate changes to software products.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.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.
b. Identify the persons or groups with authority to authorize changes.
c. Identify the persons or groups to make changes at each level.The project manager shall prepare and maintain records of the configuration status of software configuration items.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.The project manager shall establish and implement procedures for the storage, handling, delivery, release, and maintenance of deliverable software products.The project manager shall participate in any joint NASA/developer audits.The project manager shall record, analyze, plan, track, control, and communicate all of the software risks and mitigation plans.The project manager shall perform and report the results of software peer reviews or software inspections for:
a. Software requirements.
b. Software plans, including cybersecurity.
c. Any design items that the project identified for software peer review or software inspections according to the software development plans.
d. Software code as defined in the software and or project plans.
e. Software test procedures.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.
b. Use established readiness and completion criteria.
c. Track actions identified in the reviews until they are resolved.
d. Identify the required participants.The project manager shall, for each planned software peer review or software inspection, record necessary measurements.The project manager shall establish, record, maintain, report, and utilize software management and technical measurements.The project manager shall analyze software measurement data collected using documented project-specified and Center/organizational analysis procedures.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.The project manager shall monitor measures to ensure the software will meet or exceed performance and functionality requirements, including satisfying constraints.The project manager shall collect, track, and report software requirements volatility metrics.The project manager shall track and maintain software non-conformances (including defects in tools and appropriate ground software).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).The project manager shall implement mandatory assessments of reported non-conformances for all COTS, GOTS, MOTS, OSS, and/or reused software components.
Tabsetup
01. NASA-STD-8739.8B
12. TaskingApplicable and Reference Documents
23. Example AAcronyms and Definitions
34. Example B. Software Assurance and Software Safety Requirements
45. Appendix A Guidelines For The Hazard Development Involving Software

NASA-STD-8739.8B

Approved: TBD
Superseding

Div
idtabs-1

1. NASA-STD-8739.8B Title Material

Approved: TBDMeasurement System Identification: Not Measurement Sensitive

NASA TECHNICAL STANDARD

National Aeronautics and Space Administration

Include Page
NASA-STD-8739.8 - Title Material

NASA-STD-8739.

8A
SOFTWARE ASSURANCE AND SOFTWARE SAFETY STANDARD
APPROVED FOR PUBLIC RELEASE – DISTRIBUTION IS UNLIMITED
StatusDocument RevisionApproval DateDescription
BaselineInitial2004-07-28Initial Release
12005-05-05Administrative changes to the Preface; Paragraphs 1.1, 1.4, 1.5, 2.1.1, 2.2.2, 3, 5.1.2.3, 5.4.1.1; 5.6.2, 5.8.1.2, 6.7.1.a, 7.3.2, 7.3.3, 7.5, 7.5.1; Table 1; Appendix A; Appendix C to reflect NASA Transformation changes, reflect the release of NASA Procedural Requirements (NPR) 7150.2, NASA Software Engineering Requirements and to make minor editorial changes. Note: Some paragraphs have changed pages as a result of these changes. Only pages where content has changed are identified by change indications.A2020-06-10The revised document addresses the following significant issues: combined the NASA Software Assurance Standard (NASA-STD-8739.8) with the NASA Software Safety Standard (NASA-STD-8719.13), reduction of requirements, bring into alignment with updates to NPR 7150.2, added a section on IV&V requirements to perform IV&V, and moved guidance text to an Electronic Handbook. This change combines the updates to NASA-STD-8739.8 and the content of NASA-STD-8719.13. The update includes the NASA software safety requirements and cancels NASA-STD-8719.13 standard.BTBDBrings into alignment with the update to NPR 7150.2D. Update the Appendix A table containing the additional areas to consider when identifying software causes in Hazard Analysis.

Russ Deloach

NASA Chief, Safety and Mission Assurance

TBD

Approval Date

Div
idtabs-2
NPR 7150.2 SectionSWE #NPR 7150.2 RequirementSoftware Assurance and Software Safety Tasks
3Software Management Requirements3.1Software Life-Cycle Planning3.1.2033
Excerpt Include
SWEHBVD:SWE-033 - Acquisition vs. Development AssessmentSWEHBVD:SWE-033 - Acquisition vs. Development Assessment
nopaneltrue
Include Page
SWEHBVD:SWE-033 - NotesSWEHBVD:SWE-033 - Notes
Include Page
SWE-033 - SA Task1SWE-033 - SA Task1
Include Page
SWE-033 - SA Task2SWE-033 - SA Task2
Include Page
SWE-033 - SA Task3SWE-033 - SA Task33.1.3013
Excerpt Include
SWEHBVD:SWE-013 - Software PlansSWEHBVD:SWE-013 - Software Plans
nopaneltrue
Include Page
SWE-013 - SA Task1SWE-013 - SA Task1
Include Page
SWE-013 - SA Task2SWE-013 - SA Task23.1.4024
Excerpt Include
SWEHBVD:SWE-024 - Plan TrackingSWEHBVD:SWE-024 - Plan Tracking
nopaneltrue
Include Page
SWE-024 - SA Task1SWE-024 - SA Task1
Include Page
SWE-024 - SA Task2SWE-024 - SA Task2
Include Page
SWE-024 - SA Task3SWE-024 - SA Task33.1.5034
Excerpt Include
SWEHBVD:SWE-034 - Acceptance CriteriaSWEHBVD:SWE-034 - Acceptance Criteria
nopaneltrue
Include Page
SWE-034 - SA Task1SWE-034 - SA Task13.1.6036
Excerpt Include
SWEHBVD:SWE-036 - Software Process DeterminationSWEHBVD:SWE-036 - Software Process Determination
nopaneltrue
Include Page
SWE-036 - SA Task1SWE-036 - SA Task1
Include Page
SWE-036 - SA Task2SWE-036 - SA Task23.1.7037
Excerpt Include
SWEHBVD:SWE-037 - Software MilestonesSWEHBVD:SWE-037 - Software Milestones
nopaneltrue
Include Page
SWE-037 - SA Task1SWE-037 - SA Task1
Include Page
SWE-037 - SA Task2SWE-037 - SA Task23.1.8039
Excerpt Include
SWEHBVD:SWE-039 - Software Supplier InsightSWEHBVD:SWE-039 - Software Supplier Insight
nopaneltrue
Include Page
SWE-039 - SA Task1SWE-039 - SA Task1
Include Page
SWE-039 - SA Task2SWE-039 - SA Task2
Include Page
SWE-039 - SA Task3SWE-039 - SA Task3
Include Page
SWE-039 - SA Task4SWE-039 - SA Task4
Include Page
SWE-039 - SA Task5SWE-039 - SA Task5
Include Page
SWE-039 - SA Task6SWE-039 - SA Task6
Include Page
SWE-039 - SA Task7SWE-039 - SA Task7
Include Page
SWE-039 - SA Task8SWE-039 - SA Task83.1.9040
Excerpt Include
SWEHBVD:SWE-040 - Access to Software ProductsSWEHBVD:SWE-040 - Access to Software Products
nopaneltrue
Include Page
SWE-040 - SA Task1SWE-040 - SA Task13.1.10042
Excerpt Include
SWEHBVD:SWE-042 - Source Code Electronic AccessSWEHBVD:SWE-042 - Source Code Electronic Access
nopaneltrue
Include Page
SWE-042 - SA Task1SWE-042 - SA Task13.1.11139
Excerpt Include
SWEHBVD:SWE-139 - Shall StatementsSWEHBVD:SWE-139 - Shall Statements
nopaneltrue
Include Page
SWE-139 - SA Task1SWE-139 - SA Task13.1.12121
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
Include Page
SWE-121 - SA Task1`SWE-121 - SA Task1`
Include Page
SWE-121 - SA Task2SWE-121 - SA Task23.1.13125
Excerpt Include
SWEHBVD:SWE-125 - Requirements Compliance MatrixSWEHBVD:SWE-125 - Requirements Compliance Matrix
nopaneltrue
Include Page
SWE-125 - SA Task1SWE-125 - SA Task1
Include Page
SWE-125 - SA Task2SWE-125 - SA Task23.1.14027
Excerpt Include
SWEHBVD:SWE-027 - Use of Commercial, Government, and Legacy SoftwareSWEHBVD:SWE-027 - Use of Commercial, Government, and Legacy Software
nopaneltrue
Include Page
SWE-027 - SA Task1SWE-027 - SA Task13.2Software Cost Estimation3.2.1015
Excerpt Include
SWEHBVD:SWE-015 - Cost EstimationSWEHBVD:SWE-015 - Cost Estimation
nopaneltrue
Include Page
SWE-015 - SA Task1SWE-015 - SA Task13.2.2151
Excerpt Include
SWEHBVD:SWE-151 - Cost Estimate ConditionsSWEHBVD:SWE-151 - Cost Estimate Conditions
nopaneltrue
Include Page
SWE-151 - SA Task1SWE-151 - SA Task13.2.3174
Excerpt Include
SWEHBVD:SWE-174 - Software Planning ParametersSWEHBVD:SWE-174 - Software Planning Parameters
nopaneltrue
Include Page
SWE-174 - SA Task1SWE-174 - SA Task1
Include Page
SWE-174 - SA Task2SWE-174 - SA Task23.3Software Schedules3.3.1016
Excerpt Include
SWEHBVD:SWE-016 - Software ScheduleSWEHBVD:SWE-016 - Software Schedule
nopaneltrue
Include Page
SWE-016 - SA Task1SWE-016 - SA Task1
Include Page
SWE-016 - SA Task2SWE-016 - SA Task23.3.2018
Excerpt Include
SWEHBVD:SWE-018 - Software Activities ReviewSWEHBVD:SWE-018 - Software Activities Review
nopaneltrue
Include Page
SWE-018 - SA Task1SWE-018 - SA Task1
Include Page
SWE-018 - SA Task2SWE-018 - SA Task23.3.3046
Excerpt Include
SWEHBVD:SWE-046 - Supplier Software ScheduleSWEHBVD:SWE-046 - Supplier Software Schedule
nopaneltrue
Include Page
SWE-046 - SA Task1SWE-046 - SA Task13.4Software Training3.4.1017
Excerpt Include
SWEHBVD:SWE-017 - Project and Software TrainingSWEHBVD:SWE-017 - Project and Software Training
nopaneltrue
Include Page
SWE-017 - SA Task1SWE-017 - SA Task1
Include Page
SWE-017 - SA Task2SWE-017 - SA Task23.5Software Classification Assessments3.5.1020
Excerpt Include
SWEHBVD:SWE-020 - Software Classification SWEHBVD:SWE-020 - Software Classification
nopaneltrue
3.5.2176
Excerpt Include
SWEHBVD:SWE-176 - Software RecordsSWEHBVD:SWE-176 - Software Records
nopaneltrue
3.6Software Assurance and Software
Independent Verification & Validation
3.6.1022
Excerpt Include
SWEHBVD:SWE-022 - Software AssuranceSWEHBVD:SWE-022 - Software Assurance
nopaneltrue
3.6.2141
Excerpt Include
SWEHBVD:SWE-141 - Software Independent Verification and ValidationSWEHBVD:SWE-141 - Software Independent Verification and Validation
nopaneltrue
3.6.3131
Excerpt Include
SWEHBVD:SWE-131 - Independent Verification and Validation Project Execution PlanSWEHBVD:SWE-131 - Independent Verification and Validation Project Execution Plan
nopaneltrue
3.6.4178
Excerpt Include
SWEHBVD:SWE-178 - IV&V ArtifactsSWEHBVD:SWE-178 - IV&V Artifacts
nopaneltrue
3.6.5179
Excerpt Include
SWEHBVD:SWE-179 - IV&V Submitted Issues and RisksSWEHBVD:SWE-179 - IV&V Submitted Issues and Risks
nopaneltrue
3.7Safety-Critical  and Mission Critical Software3.7.1205
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.7.2023
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.7.3134
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.7.4219
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.7.5220
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.8Automatic Generation of Software Source Code3.8.1146
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.8.2206
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.9Software Development Processes and Practices3.9.2032
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.10Software Reuse3.10.1147
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.10.2148
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.11Software Cybersecurity3.11.2156
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.11.3154
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.11.4157
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.11.5159
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.11.6207
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.11.7185
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.11.8210
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
3.12Software Bi-Directional Traceability3.12.1052
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
4Software Engineering (Life Cycle) Requirements4.1Software Requirements4.1.2050
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3051
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.4184
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.5053
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Confirm the software requirements changes are documented, tracked, approved, and maintained throughout the project life cycle.4.1.6054
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.7055
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Confirm that the project software testing has shown that software will function as expected in the customer environment.4.2Software Architecture4.2.3057
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.4143
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Assess the results of or participate in software architecture review activities held by the project.4.3Software Design 4.3.2058
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.4Software Implementation4.4.2060
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3061
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.4135
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.5062
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.6186
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.7063
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.8136
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Confirm that the software tool(s) needed to create and maintain software is validated and accredited.4.5Software Testing4.5.2065a
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.2065b
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.2065c
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.2065d
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3066
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.4187
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.5068
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.6070
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.7071
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.8073
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Confirm that the project validates the software components on the targeted platform or a high-fidelity simulation.4.5.9189
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Confirm that code coverage measurements have been selected, performed, tracked, recorded, and communicated with each release.4.5.10190
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.11191
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.12192
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Through testing, confirm that the project verifies the software requirements which trace to a hazardous event, cause, or mitigation techniques.4.5.13193
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.14211
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.6Software Operations, Maintenance, and Retirement4.6.2075
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3077
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.4194
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.5195
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Perform audits on the standards and processes used throughout maintenance based on the software classification.4.6.6196
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.5Supporting Software Life Cycle Requirements5.1Software Configuration Management5.1.2079
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3080
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.4081
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.5082
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.6083
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Confirm that the project maintains records of the configuration status of the configuration items.5.1.7084
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.8085
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.9045
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Participate in or assess the results from any joint NASA/developer audits. Track any findings to closure.5.2Software Risk Management5.2.1086
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3Software Peer Reviews/Inspections5.3.2087
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3088
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.4089
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Confirm that the project records the software peer reviews and results of software inspection measurements.5.4Software Measurements5.4.2090
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3093
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
1. Confirm software measurement data analysis conforms to documented analysis procedures.
2. Analyze software assurance measurement data.
5.4.4094
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.5199
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.6200
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.5Software Non-conformance or Defect Management5.5.1201
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.2202
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.3203
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.

8 - Title Material


1. SCOPE

1.1 Document Purpose

1.1.1 The purpose of the Software Assurance and Software Safety Standard is to define the requirements to implement a systematic approach to software assurance, software safety, and Independent Verification and Validation (IV&V) for software created, acquired, provided, used, or maintained by or for NASA. Various personnel in the program, project, engineering, facility, or Safety and Mission Assurance (SMA) organizations can perform the activities required to satisfy these requirements. The Software Assurance and Software Safety Standard provides a basis for personnel to perform software assurance, software safety, and IV&V activities consistently throughout the life of the software.

1.1.2 The Software Assurance and Software Safety Standard, in accordance with NPR 7150.2, NASA Software Engineering Requirements, supports the implementation of the software assurance, software safety, and IV&V sub-disciplines. The application and approach to meeting the Software Assurance and Software Safety Standard vary based on the system and software products and processes to which they are applied. The Software Assurance and Software Safety Standard stresses coordination between the software assurance sub-disciplines and system safety, system reliability, hardware quality, system security, and software engineering to maintain the system perspective and minimize duplication of effort.

1.1.3 The objectives of the Software Assurance and Software Safety Standard include the following:

a. Ensuring that the processes, procedures, and products used to produce and sustain the software conform to all specified requirements and standards that govern those processes, procedures, and products.

(1) A set of activities that assess adherence to, and the adequacy of the software processes used to develop and modify software products.
(2) A set of activities that define and assess the adequacy of software processes to provide evidence that establishes confidence that the software processes are appropriate for and produce software products of suitable quality for their intended purposes.

b. Determining the degree of software quality obtained by the software products.
c. Ensuring that the software systems are safe and that the software safety-critical requirements are followed.
d. Ensuring that the software systems are secure.
e. Employing rigorous analysis and testing methodologies to identify objective evidence and conclusions to provide an independent assessment of critical products and processes throughout the life cycle.

1.1.4 The Software Assurance and Software Safety Standard is compatible with all software life cycle models. The Software Assurance and Software Safety Standard does not impose a particular life cycle model on a software project.

1.1.5 In this standard, all mandatory actions (i.e., requirements) are denoted by statements containing the term “shall.” The terms “may” denote a discretionary privilege or permission; “can” denotes statements of possibility or capability; “should” denotes a good practice and is recommended; but not required, “will” denotes expected outcome; and “are/is” denotes descriptive material.

1.2 Applicability

1.2.1 This standard is approved for use by NASA Headquarters and NASA Centers, including Component Facilities and Technical and Service Support Centers. This NASA Technical Standard applies to the assurance of software created by or for NASA projects, programs, facilities, and activities and defines the requirements for those activities. This directive is applicable to the Jet Propulsion Laboratory, a Federally Funded Research and Development Center, only to the extent specified in the NASA/Caltech Prime Contract. This standard may also apply to other contractors, grant recipients, or parties to agreements to the extent specified or referenced in their contracts, grants, or agreements.

1.3 Documentation and Deliverables

1.3.1 The Software Assurance and Software Safety Standard is not intended to designate the format of program/project/facility documentation and deliverables. The software assurance and software safety data, information, and plans may be considered to be quality records with a retention period as specified in NRRS 1441.1. The format of the documentation is a program/project/facility decision. The software assurance and software safety organizations should keep records, reports, metrics, analyses, and trending results and should keep copies of their project plans for future reference and improvements. The software assurance and software safety plans (e.g., the Software Assurance Plan) can be standalone documents or incorporated within other documents (e.g., part of a Software Management Plan, a Software Development Plan or part of a Program or Project Safety and Mission Assurance (SMA) plan).

1.4 Request for Relief

1.4.1 Tailoring of this standard for application to a specific program or project is documented as part of program or project requirements and approved by the responsible Center Technical Authority (TA) in accordance with NPR 8715.3, NASA General Safety Program Requirements. Section 4.5 of this standard contains the principles related to tailoring this standard’s requirements.

Div
idtabs-2

2. APPLICABLE AND REFERENCE DOCUMENTS

2.1 Applicable Documents

The applicable documents are accessible via the NASA Technical Standards System at https://standards.nasa.gov, or the NASA Online Directives Information System https://nodis3.gsfc.nasa.gov/main_lib.cfm or may be obtained directly from the Standards Developing Organizations.

  • NPR 1400.1 NASA Directives and Charters Procedural Requirements
  • NPR 7120.5 NASA Space Flight Program and Project Management Requirements
  • NPR 7120.10 Technical Standards for NASA Programs and Projects
  • PR 7150.2 NASA Software Engineering Requirements
  • PR 8000.4 Agency Risk Management Procedural Requirements
  • NPR 8715.3 NASA General Safety Program Requirements
  • NASA-HDBK-2203 NASA Software Engineering Handbook
  • NASA-HDBK-4008 Programmable Logic Devices Handbook
  • NRRS 1441.1 NASA Records Retention Schedules

2.2 Reference Documents

The reference documents listed in this section are not incorporated by reference within this standard but may provide further clarification and guidance.

2.2.1 Government Documents

  • NPD 2810.1 NASA Information Security Policy
  • NPD 8720.1 NASA Reliability and Maintainability Program Policy
  • NPR 1441.1 NASA Records Management Program Requirements
  • NPR 2210.1 Release of NASA Software
  • NPR 2810.1 Security of Information and Information Systems
  • NPR 2830.1 NASA Enterprise Architecture Procedures
  • NPR 2841.1 Identity, Credential, and Access Management
  • NPR 7120.7 NASA Information Technology Program and Project Management Requirements
  • NPR 7120.8 NASA Research and Technology Program and Project Management Requirements
  • NPR 7120.10 Technical Standards for NASA Programs and Projects
  • NPR 7120.11 Health and Medical Technical Authority Implementation
  • NPR 7123.1 NASA Systems Engineering Processes and Requirements.
  • NPR 8000.4 Agency Risk Management Procedural Requirements
  • NPR 7123.1 NASA Systems Engineering Processes and Requirements
  • NASA-STD-1006 Space System Protection Standard
  • NASA-STD-2601 Minimum Cybersecurity Requirements for Computing Systems
  • NASA-STD-7009 Standard for Models and Simulations
  • NASA-STD-8729.1 NASA Reliability And Maintainability Standard For Spaceflight And Support Systems
  • NASA-HDBK-7009 NASA Handbook for Models and Simulations: An Implementation Guide for NASA-STD-7009
  • NASA-HDBK-8709.22 Safety and Mission Assurance Acronyms, Abbreviations, and Definitions
  • NASA-HDBK-8739.23 NASA Complex Electronics Handbook for Assurance Professionals
  • NIST SP 800-37 Risk Management Framework
  • NIST SP 800-40 Guide to Enterprise Patch Management Planning: Preventive Maintenance for Technology
  • NIST SP 800-53 Security and Privacy Controls for Information Systems and Organizations
  • NIST SP 800-70 National Checklist Program for Information Technology products: Guidelines for Checklist Users and Developers
  • NIST SP 800-115 Technical Guide to Information Security Testing and Assessment
  • NFS 1813.301-79 Supporting Federal Policies, Regulations, and NASA Procedural Requirements
  • NFS 1852.237-72 Access to Sensitive Information
  • NFS 1852.237-73 Release of Sensitive Information

2.2.2 Non-Government Documents

  • CMMI-DEV, V2.0 CMMI® for Development, Version 2.0
  • IEEE 730 Institute of Electrical and Electronics Engineers (IEEE) Standard for Software Quality Assurance Processes
  • IEEE 828 IEEE Standard for Configuration Management in Systems and Software Engineering.
  • IEEE 982.1 IEEE Standard Measures of the Software Aspects of Dependability
  • IEEE 1012 IEEE Standard for System, Software, and Hardware Verification and Validation
  • IEEE 1028 IEEE Standard for Software Reviews and Audits
  • IEEE 1633 IEEE Recommended Practice on Software Reliability
  • IEEE 15026-1 Systems and software engineering--Systems and software assurance--Part 1: Concepts and vocabulary
  • IEEE 29119-4 Software and systems engineering -- Software testing -- Part 4: Test techniques
  • ISO 26514 Systems and software engineering–requirements for designers and developers of user documentation
  • ISO 24765 System and Software Engineering – Vocabulary

2.3 Order of Precedence

2.3.1 This standard establishes requirements to implement a systematic approach to Software Assurance, Software Safety, and IV&V for software created, acquired, provided, or maintained by or for NASA but does not supersede nor waive established Agency requirements found in other documentation.

2.3.2 Conflicts between the Software Assurance and Software Safety Standard and other requirements documents are resolved by the responsible SMA and engineering TA(s), per NPR1400.1, NASA Directives and Charters Procedural Requirements, and NPR 7120.10, Technical Standards for NASA Programs and Projects.

Div
idtabs-3

3. ACRONYMS AND DEFINITIONS

3.1 Acronyms and Abbreviations

  • CMMI®? Capability Maturity Model Integration
  • COTS Commercial-Off-The-Shelf
  • GOTS Government-Off-The-Shelf
  • HDBK Handbook
  • IEEE Institute of Electrical and Electronics Engineers
  • IPEP IV&V Project Execution Plan
  • IV&V Independent Verification and Validation
  • MC/DC Modified Condition/Decision Coverage
  • MOTS Modified-Off-The-Shelf
  • NASA National Aeronautics and Space Administration
  • NIST National Institute of Standards and Technology
  • NPD NASA Policy Directive
  • NPR NASA Procedural Requirements
  • NRRS NASA Records Retention Schedule
  • OSMA NASA Headquarters Office, Safety and Mission Assurance
  • OSS Open Source Software
  • PLC Programmable Logic Controller
  • PROM Programmable Read-Only Memory
  • RTOS Real-Time Operating System
  • SMA Safety and Mission Assurance
  • SP Special Publication
  • SWE Software Engineering
  • TA Technical Authority

3.2 Definitions

Accredit. The official acceptance of a software development tool, model, or simulation, including associated data, to use for a specific purpose.
Acquirer. The entity or individual who specifies the requirements and accepts the resulting software products. The Acquirer is usually NASA or an organization within the Agency but can also refer to the prime contractor-subcontractor relationship.

Analyze. Review results in-depth, look at relationships of activities, examine methodologies in detail, and follow methodologies such as Failure Mode and Effects Analysis, Fault Tree Analysis, trending, and metrics analysis. Examine processes, plans, products, and task lists for completeness, consistency, accuracy, reasonableness, and compliance with requirements. The analysis may include identifying missing, incomplete, or inaccurate products, relationships, deliverables, activities, required actions, etc.

Approve. When the responsible originating official, or designated decision authority, of a document, report, condition, etc., has agreed, via their signature, to the content and indicates the document is ready for release, baselining, distribution, etc. Usually, one “approver” and several stakeholders need to “concur” for official acceptance of a document, report, etc. For example, the project manager would approve the Software Development Plan, but SMA would concur on it.

Assess. Judge results against plans or work product requirements. Assess includes judging for practicality, timeliness, correctness, completeness, compliance, evaluation of rationale, etc., reviewing activities performed, and independently tracking corrective actions to closure.
Assure. When software assurance personnel make certain that others have performed the specified software assurance, management, and engineering activities.

Audit. Formal review to assess compliance with hardware or software requirements, specifications, baselines, safety standards, procedures, instructions, codes, and contractual and licensing requirements. (Source NPR 8715.3)

Bi-directional Traceability. Association among two or more logical entities that are discernible in either direction (to and from an entity). (Source IEEE Definition)

Concur. A documented agreement that a proposed course of action is acceptable.

Condition. (1) measurable qualitative or quantitative attribute that is stipulated for a requirement and that indicates a circumstance or event under which a requirement applies (2) description of a contingency to be considered in the representation of a problem, or a reference to other procedures to be considered as part of the condition (3) true or false logical predicate (4) logical predicate involving one or more behavior model elements (5) Boolean expression containing no Boolean operators.

Configuration Item. (1)item or aggregation of hardware, software, or both that is designated for configuration management and treated as a single entity in the configuration management process (2)component of an infrastructure or an item which is or will be under control of configuration management (3) aggregation of work products that is designated for configuration management and treated as a single entity in the configuration management process (4) any system element or aggregation of system elements that satisfies an end use function and is designated by the acquirer for separate configuration control (5) item or aggregation of software that is designed to be managed as a single entity and its underlying components, such as documentation, data structures, scripts. (Source IEEE Definition)

Note

Configuration items can vary widely in complexity, size, and type, ranging from an entire system including all hardware, software, and documentation, to a single module or a minor hardware component. CIs have four common characteristics: defined functionality; replaceable as an entity; unique specification; formal control of form, fit, and function. See Also: hardware configuration item, computer software configuration item, configuration identification, and critical item.

Confirm. Check to see that activities specified in the software engineering requirements are adequately done and evidence of the activities exists as proof. Confirm includes ensuring activities are done completely and correctly and have expected content according to approved tailoring.

Critical. A condition that may cause severe injury or occupational illness, or major property damage to facilities, systems, or flight hardware.
Deliverable. Product or item that has to be completed and delivered under the terms of an agreement or contract. Products may also be deliverables, e.g., software requirements specifications, and detailed design documents. Develop. To produce or create a product or document and mature or advance the product or document content.

Ensure. When software assurance or software safety personnel perform the specified software assurance and software safety activities themselves.
Event. (1) occurrence of a particular set of circumstances (2) external or internal stimulus used for synchronization purposes (3) change detectable by the subject software (4) fact that an action has taken place (5) singular moment in time at which some perceptible phenomenological change (energy, matter, or information) occurs at the port of a unit.

Failure. Inability of a system, subsystem, component, or part to perform its required function within specified limits. (Source NPR 8715.3)

Hazard. A state or a set of conditions, internal or external to a system that has the potential to cause harm. (Source NPR 8715.3)
Hazard Analysis. Identifying and evaluating existing and potential hazards and the recommended mitigation for the hazard sources found.
Hazard Control. Means of reducing the risk of exposure to a hazard. (Source NPR 8715.3)

Hazardous Operation/Work Activity. Any operation or other work activity that, without the implementation of proper mitigations, has a high potential to result in loss of life, serious injury to personnel or public, or damage to property due to the material or equipment involved or the nature of the operation/activity itself.

Independent Verification and Validation. Verification and validation performed by an organization that is technically, managerially, and financially independent of the development organization. (Source IEEE Definition)

Inhibit. Design feature that prevents the operation of a function.

Insight. An element of Government surveillance that monitors contractor compliance using Government-identified metrics and contracted milestones. Insight is a continuum that can range from low intensity such as reviewing quarterly reports to high intensity such as performing surveys and reviews. (Source NPR 7123.1)

Maintain. To continue to have; to keep in existence, to stay up-to-date and correct.

Mission Critical. [1] Item or function that must retain its operational capability to assure no mission failure (i.e., for mission success). [2] An item or function, the failure of which may result in the inability to retain operational capability for mission continuation if corrective action is not successfully performed. (Source NASA-STD-8729.1)

Mission Success. Meeting all mission objectives and requirements for performance and safety. (Source NPR 8715.3)

Monitor. (1) software tool or hardware device that operates concurrently with a system or component and supervises, records, analyzes, or verifies the operation of the system or component; (2) collect project performance data with respect to a plan, process, produce performance measures, and report and disseminate performance information.

Participate. To be a part of the activity, audit, review, meeting, or assessment.

Perform. Software assurance does the action specified. Perform may include making comparisons of independent results with similar activities performed by engineering; performing audits; and reporting results to engineering.

Product. A result of a physical, analytical, or another process. The item delivered to the customer (e.g., hardware, software, test reports, data) and the processes (e.g., system engineering, design, test, logistics) that make the product possible. (Source NASA-HDBK-8709.22)

Program. A strategic investment by a Mission Directorate or Mission Support Office that has a defined architecture and technical approach, requirements, funding level, and management structure that initiates and directs one or more projects. A program implements a strategic direction that the Agency has identified as needed to accomplish Agency goals and objectives. (Source NPR 7120.5)

Program Manager. A generic term for the person who is formally assigned to be in charge of the program. A program manager could be designated as a program lead, program director, or some other term, as defined in the program's governing document. A program manager is responsible for the formulation and implementation of the program, per the governing document with the sponsoring MDAA.

Project. A specific investment having defined goals, objectives, requirements, life cycle cost, a beginning, and an end. A project yields new or revised products or services that directly address NASA’s strategic needs. They may be performed wholly in-house; by Government, industry, academia partnerships; or through contracts with private industry. (Source NPR 7150.2)

Project Manager. The entity or individual who accepts the resulting software products. Project managers are responsible and accountable for the safe conduct and successful outcome of their program or project in conformance with governing programmatic requirements. The project manager is usually NASA but can also refer to the prime contractor-subcontractor relationship as well.
Provider. A Provider is a NASA or contractor organization that is tasked by an accountable organization (i.e., the Acquirer) to produce a product or service. (Source NASA-HDBK-8709.22)

Regression testing. (1) selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or component still complies with its specified requirements (2) testing following modifications to a test item or its operational environment, to identify whether regression failures occur. (Source IEEE Definition)

Risk. The combination of (1) the probability (qualitative or quantitative) of experiencing an undesired event, (2) the consequences, impact, or severity that would occur if the undesired event were to occur, and (3) the uncertainties associated with the probability and consequences. (Source NPR 8715.3)

Note

A risk is an uncertain future event, or combination of events, that could threaten the achievement of performance objectives or requirements. A "problem," on the other hand, describes an issue that is certain or near certain to exist now, or an event that has been determined with certainty or near certainty to have occurred and is threatening the achievement of an objective or requirement. It is generally at the discretion of the decision authority to define at what level of certainty (i.e., likelihood) an event may be classified and addressed as a “problem” rather than as a “risk.” A risk may be conditional upon a problem, i.e., an existing issue may or may not develop into performance-objective consequences or the extent to which it may be at present uncertain.

Risk Posture. A characterization of risk based on conditions (e.g., criticality, complexity, environments, performance, cost, schedule) and a set of identified risks, taken as a whole which allows an understanding of the overall risk or provides a target risk range or level, which can then be used to support decisions being made.

Safe State. A system state in which hazards are inhibited, and all hazardous actuators are in a non-hazardous state. The system can have more than one Safe State.

Safety. Freedom from those conditions that can cause death, injury, occupational illness, damage to or loss of equipment or property, or damage to the environment. In a risk-informed context, safety is an overall mission and program condition that provides sufficient assurance that accidents will not result from the mission execution or program implementation, or, if they occur, their consequences will be mitigated. This assurance is established by means of the satisfaction of a combination of deterministic criteria and risk criteria. (Source NPR 8715.3)

Safety Analysis. Generic term for a family of analyses, which includes but is not limited to, preliminary hazard analysis, system (subsystem) hazard analysis, operating hazard analysis, software hazard analysis, sneak circuit, and others. Software safety analysis consists of a number of tools and techniques to identify safety risks and formulate effective controls. These techniques are used to help identify the hazards during the Hazard Analysis process, which in turn identifies the safety-critical software. The Safety Analysis techniques often used to support the Hazard Analysis are the Software Fault Tree Analysis and the Software Failure Modes and Effects Analysis. The Software Fault Tree Analysis and the Software Failure Modes and Effects Analysis are used to help identify hazards, hazard causes, and potential failure modes.

Safety-Critical. A term describing any condition, event, operation, process, equipment, or system that could cause or lead to severe injury, major damage, or mission failure if performed or built improperly or allowed to remain uncorrected. (Source NPR 8715.3)

Include Page
8739.8B Para 3.2 Def - Safety-Critical Software
8739.8B Para 3.2 Def - Safety-Critical Software

Software. defined as (1) computer programs, procedures, and associated documentation and data pertaining to the operation of a computer system (2) all or a part of the programs, procedures, rules, and associated documentation of an information processing (3) program or set of programs used to run a computer (4) all or part of the programs which process or support the processing of digital information (5) part of a product that is the computer program or the set of computer programs. This definition applies to software developed by NASA, software developed for NASA, software maintained by or for NASA, Commercial-Off-The-Shelf (COTS), Government-Off-The-Shelf (GOTS), Modified-Off-The-Shelf (MOTS), Open Source Software (OSS), reused software components, auto-generated code, embedded software, the software executed on processors embedded in programmable logic devices (see NASA-HDBK-4008), legacy, heritage, applications, freeware, shareware, trial or demonstration software, and OSS components. (Source NPR 7150.2)

Software Assurance. (1) a set of activities that assess adherence to, and the adequacy of the software processes used to develop and modify software products. Software assurance also determines the degree to which the desired results from software quality control are being obtained. (2) set of activities that define and assess the adequacy of software processes to provide evidence that establishes confidence that the software processes are appropriate for and produce software products of suitable quality for their intended purposes. (Source IEEE Definition)

Note

A key attribute of software assurance is the objectivity of the software assurance function with respect to the project.

Software Developer. A person, organization, or system that develops software based on program/project requirements.

Software Life Cycle. The period that begins when a software product is conceived and ends when the software is no longer available for use. The software life cycle typically includes a concept phase, requirements phase, design phase, implementation phase, test phase, installation and checkout phase, operation and maintenance phase, and sometimes, retirement phase.

Software Peer Review. An examination of a software product to detect and identify software anomalies, including errors and deviations from standards and specifications. (Source IEEE Definition)

Software Safety. The aspects of software engineering, system safety, and software assurance, that provide a systematic approach to identifying, analyzing, tracking, mitigating, and controlling hazards and hazardous functions of a system where software may contribute either to the hazard(s) or to its detection, mitigation or control, to ensure safe operation of the system.

Software Validation. (1)confirmation, through the provision of objective evidence, that the requirements for a specific intended use or application have been fulfilled (2) process of providing evidence that the system, software, or hardware and its associated products satisfy requirements allocated to it at the end of each life cycle activity, solve the right problem (e.g., correctly model physical laws, implement business rules, and use the proper system assumptions), and satisfy intended use and user needs (3) the assurance that a product, service, or system meets the needs of the customer and other identified stakeholders (4) process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements (5) confirmation in a timely manner, through automated techniques where possible, through the provision of objective evidence, that the requirements for a specific intended use or application have been fulfilled. (Source IEEE Definition)

Note: Validation in a system life cycle context is the set of activities ensuring and gaining confidence that a system is able to accomplish its intended use, goals, and objectives (meet stakeholder requirements) in the intended operational environment. The right system has been built or is operating to meet business objectives. Validation demonstrates that the system can be used by the users for their specific tasks. "Validated" is used to designate the corresponding status. Multiple Validation can be carried out if there are different intended uses.

Software Verification. Confirmation that products properly reflect the requirements specified for them. In other words, verification ensures that “you built it right.” (Source IEEE Definition)

Supplier. Any organization which provides a product or service to a customer. By this definition, suppliers may include vendors, subcontractors, contractors, flight programs/projects, and the NASA organization supplying science data to a principal investigator. The classical definition of a supplier is a subcontractor, at any tier, performing contract services or producing the contract articles for a contractor. (Source NASA-HDBK-8709.22)
System Safety. Application of engineering and management principles, criteria, and techniques to optimize safety and reduce risks within the constraints of operational effectiveness, time, and cost.

Tailoring. The process used to adjust a prescribed requirement to accommodate the needs of a specific task or activity (e.g., program or project). Tailoring may result in changes, subtractions, or additions to a typical implementation of the requirement. (Source NPR 7150.2)

Track. To follow and note the course or progress of the product.

Div
idtabs-4

4. SOFTWARE ASSURANCE AND SOFTWARE SAFETY REQUIREMENTS

Include Page
8739.8B Para 4.1
8739.8B Para 4.1


Include Page
8739.8B Para 4.2
8739.8B Para 4.2

Note

See Appendix A for guidelines associated with addressing software in hazard definitions. See Table 1, 3.7.1, SWE-205 for more details. Consideration for other independent means of protection (software, hardware, barriers, or administrative) should be a part of the system hazard definition process.

4.3 Software Assurance and Software Safety Requirements

4.3.1  The responsible project manager shall ensure the performance of the software assurance, software safety, and IV&V activities, the applicable requirements are defined in Table 1. In this document, the phrase “Software Assurance and Software Safety Tasks” means that the roles and responsibilities for completing these requirements may be delegated within the project consistent with the scope and scale of the project. The Center SMA Director designates SMA TA(s) for programs, facilities, and projects, providing direction, functional oversight, and assessment for all Agency software assurance, software safety, and IV&V activities. 


Table 1. Software Assurance and Software Safety Requirements Mapping Matrix

Include Page
8739.8B-T1-Requirements Mapping Matrix
8739.8B-T1-Requirements Mapping Matrix

4.4 Independent Verification & Validation Requirements

4.4.1 IV&V Overview

4.4.1.1  IV&V is a technical discipline of software assurance that employs rigorous analysis and testing methodologies to identify objective evidence and conclusions to provide an independent assessment of critical products and processes throughout the software development life The evaluation of products and processes throughout the life cycle demonstrates whether the software is fit for nominal operations (required functionality, safety, dependability, etc.) and off-nominal conditions (response to faults, responses to hazardous conditions, etc.). The goal of the IV&V effort is to contribute assurance conclusions provided to the project and stakeholders based on evidence found in software development artifacts and risks associated with the intended behaviors of the software.

4.4.1.2  Three parameters define the independence of IV&V: technical independence, managerial independence, and financial independence.

a.   Technical independence requires that the personnel performing the IV&V analysis are not involved in the development of the system or its elements. The IV&V team establishes an understanding of the problem and how the system addresses the problem. Through technical independence, the IV&V team’s different perspective allows it to detect subtle errors overlooked by personnel focused on developing the system.

b.   Managerial independence requires that the personnel performing the IV&V analysis are not in the same organization as the development and program management team. Managerial independence also means that the IV&V team makes its own decisions about which segments of the system and its software to analyze and test, chooses the IV&V analysis methods to apply, and defines the IV&V schedule of activities. While independent from the development and program management organization, the IV&V team provides its findings in a timely manner to both of those organizations. The submission of findings to the program management organization should not include any restrictions (e.g., requiring the approval of the development organization) or any other adverse pressures from the development group.

c.   Financial independence requires that the control of the IV&V budget be vested in a group independent of the software development organization. Financial independence does not necessarily mean that the IV&V team controls the budget but that the finances should be structured so that funding is available for the IV&V team to complete its analysis or test work. No adverse financial pressure or influence is applied.

4.4.1.3  The IV&V process starts early in the software development life cycle, providing feedback to the IV&V provider organization, allowing the IV&V team to modify products at optimal timeframes and in a timely fashion, thereby reducing overall project risk. The feedback also answers project stakeholders’ questions about system properties (correctness, robustness, safety, security, etc.) to make informed decisions with respect to the development and acceptance of the system and its software.

4.4.1.4  The IV&V provider performs two primary activities, often concurrently: verification and validation. Each of the activities provides a different perspective on the system/software.

a.   Verification is the process of evaluating a system and its software to provide objective evidence as to whether or not a product conforms to the build-to requirements and design specifications. Verification holds from the requirements through the design and code and into testing. Verification demonstrates that the products of a given development phase satisfy the conditions imposed at the start of or during that phase.

b.   Validation develops objective evidence that shows that the content of the engineering artifact is the right content for the developed system/software.

The content is accurate and correct if the objective evidence demonstrates that it satisfies the system requirements (e.g., user needs, stakeholder needs, etc.), fully describes the required capability/functionality needed, and solves the right problem.

4.4.1.5  The main goal of the IV&V effort is to identify and generate objective evidence that supports the correct operation of the system or refutes the correct operation of the system. The IV&V provider typically works with the development team to understand this objective evidence, which provides artifacts such as concept studies, operations concepts, and requirements that define the overall project. The IV&V provider uses these materials to develop an independent understanding of the project’s commitment to NASA, which forms the basis for validating lower-level technical artifacts.

4.4.1.6  Two principles help guide the development and use of objective evidence.

a.   Performing IV&V throughout the entire development lifetime is the first principle; potential problems should be detected as early as possible in the development life Performing IV&V throughout the entire development lifetime provides the IV&V team with sufficient information to establish a basis for the analysis results and provides early objective evidence to the development and program management groups to help keep the development effort on track early in the life cycle.

b.   The second principle is “appropriate assurance.” Given that it is not possible to provide IV&V on all aspects of a project’s software, the IV&V provider and project should balance risks against available resources to define an IV&V program for each project that provides IV&V so that the software will operate correctly, safely, reliably, and securely throughout its operational lifetime. The IPEP documents this tailored approach and summarizes the cost/benefit trade-offs made in the scoping process.

4.4.1.7  The IV&V requirements are analyzed and partitioned according to the type of artifact. The requirements do not imply or require the use of any specific life cycle model. It is also important to understand that IV&V applies to any life cycle development process. The IV&V requirements document the potential scope of analysis performed by the IV&V provider and the key responsibility of the software project to provide the information needed to perform that analysis. Additionally, the risk assessment is used to scope the IV&V analysis to help determine the prioritization of activities and the level of rigor associated with performing those activities. The scoping exercise results are captured in the IV&V Project Execution Plan, as documented below.

Include Page
8739.8B 4.4.2 IV&V Requirements
8739.8B 4.4.2 IV&V Requirements

Include Page
8739.8B 4.5 Principles Related to Tailoring the Standard Requirements
8739.8B 4.5 Principles Related to Tailoring the Standard Requirements


The project manager shall implement process assessments for all high severity software non-conformances (closed loop process).

3. Example of Table from Software Assurance Plan

Div
idtabs-5

Include Page
8739.8B AppxA Text
8739.8B AppxA Text

Include Page
8739.8B AppxA Table
8739.8B AppxA Table
5.5.4204
Excerpt Include
SWEHBVD:SWE-121 - Document Tailored RequirementsSWEHBVD:SWE-121 - Document Tailored Requirements
nopaneltrue
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.
Div
idtabs-3
Note

The table below was taken from excerpts from Software Assurance Plan in SWEHBVD. The table is built from SWE excerpts plus SA Tasks using the individual SA tasks from the "SA Tasks from NASA-STD-8739.8B" area of SITE. 

The advantage of using this technique is that changes to the requirements (from SWEHBVD SWEs) and SA Tasks (from NASA-STD-8739.8B) will be made in one place. Once the updates are made, all of the places where they are repeated (quoted) are automatically updated. 

It is a little one time work to setup. It saves time as updates are made in documents. 

SWE #

NPR 7150.2 Requirement

NASA-STD-8739.8 Software Assurance and Software Safety Tasks per SA Standard

013

Excerpt IncludeSWEHBVD:SWE-013 - Software PlansSWEHBVD:SWE-013 - Software Plansnopaneltrue Include PageSWE-013 - SA Task2SWE-013 - SA Task2 Div
idtabs-4
Note

This example is taken from SWEHBVD:  SWE-013 - Software Plans. It uses the excerpt from tab 1 of the SWE and some include pages for appropriate tasks in the NASA-STD-8739.8B page set in SITE. 

7. Software Assurance

Excerpt IncludeSWEHBVD:SWE-013 - Software PlansSWEHBVD:SWE-013 - Software Plans

7.1 Tasking for Software Assurance

Panel
borderColorblue
titleFrom NASA-STD-8739.8B
Include PageSWE-013 - SA Task1SWE-013 - SA Task1 Include PageSWE-013 - SA Task2SWE-013 - SA Task2