The Software Version Description (SVD) document is the definitive record of all components of a released software work product, whether it is for internal or external release. The SVD defines a set of dependencies among work products that are part of the complete software release. It provides a description of the contents of a specific software work product release, the methods and resources needed to re-create the software work product, known changes, uncorrected problems, as well as differences from the prior software release(s). Use of a template for developing the SVD can ease the initial work load required to develop the baseline SVD.
The SVD includes the scheme for the identification and classification of software item records and information items and their versions, how to establish baselines, and version identification and control. The release record identifies, tracks, and controls a configuration item at the time a version (including the baseline version) is released. An SVD document for each release lists the items being delivered, including system and software item versions, traceability to specifications or previous releases, what has been changed, known problems, and workarounds. It may include installation or delivery instructions unique to the version described. Version information may come from the software architecture, the software detailed design, and/or the source code. Problem information may come from inspections, bug tracking or the results of static analysis. If a version control system is used, to be effective, it will include the date, time, and size of each software work product. The resulting information from running a checksum algorithm may be included for additional identification and control of the software work product.
NPR 2210.1C, Release of NASA Software, provides procedural requirements for developers and organizations to prepare and release software work products external to NASA or between Centers. Appendix C of the NPR 2210.1 contains a software release checklist flow chart. A Software Release Request Authorization (SRRA) form may be used in connection with NPR 2210.1 to streamline and condense the workflow required for releasing software. A Software Release Authority is required as a part of the process. Typically, a software usage agreement is required, except when the release of the software occurs between civil servants at the same Center, or within a project. The NPR 2210.1 requires the releasing organization to show compliance with NASA-STD-8719.13, NASA Software Safety Standard, and NASA-STD-8739.8, Software Assurance Standard . The release must also consider federal law provisions in Section 508 of the US Rehabilitation Act.
Each software release version must have a version number associated with it. A "release" consists of all the components and their associated version numbers. Versioning keeps the changes straight and allows "roll back" to previous versions, if a bug is found later in the software life cycle (see SWE-019). Versioning is part of software configuration management. It involves archiving the source code and keeping previous versions when a new version is entered into the configuration management system. Because an updated SVD (Software Version Description) document is released with each version of the software, there may be several SVD documents in circulation if different team members are working on different versions of the software work product. Configuration management and control is necessary for all versions to maintain control and to avoid misinformation.
Additional guidance related to the releasing of the SVD may be found in the work products generated by the following related requirements in this Handbook: