Typical contents of a software delivery package for a completed software project include executables (the product), a user's manual, and a version description document that describes the delivered product. Other items listed in the note for this NPR 7150.2 requirement may also be part of the delivery package as appropriate for the project and its software classification (SWE-020). It is important, however, to keep in mind that the note which accompanies the requirement is only additional information and is not part of the requirement.
In addition to the items listed in this requirement, consider the following items for the software delivery package:
- Software safety plan.
- Hazard analyses.
- Safety-critical software development audit reports.
- Safety-related verification reports.
- Installation instructions, including description of hardware environment.
- Operational constraints, including environmental limitations.
- Configuration files.
- Project documentation (e.g., software development/management plan (SDP/SMP), assurance plan, software requirements specification (SRS), design documents, configuration management plan (CMP), test plan).
- Testing performed and the results of those tests.
- Training manuals, training agreement.
- Maintenance/service/support agreement, processes, procedures.
- Development environment (any specialized hardware and software needed to build the executable software during the maintenance phase).
- Hardware needed to test the software, if specialized hardware is needed (for maintenance).
Both the delivered software and the delivered documentation are generated/pulled from the project's configuration management system (SWE-085) as a baseline to ensure the latest versions are delivered to the customer.
It is important to perform an audit prior to delivery to ensure that "all delivered products are complete, contain the proper versions, and that all discrepancies, open work, and deviations and waivers are properly documented and approved."
Delivery package contents from a contracted software provider need to be fully described in the contract to ensure the acquirer receives all critical information required to operate and maintain the software. Other contract considerations related to delivery include:
- Ownership and delivery of source code.
- Usage considerations for off-the-shelf (OTS) software.
- Delivery format, security. and method for all deliverables.
- Acceptance criteria (SWE-034).
See Topic 7.3 - Acquisition Guidance in this Handbook for additional guidance regarding delivery for contracted software development.
Consult Center Process Asset Libraries (PALs) for Center-specific guidance related to delivery of software products.
Additionally, guidance related to delivery of software products may be found in the following related requirements in this Handbook: