Software (SW) can be viewed as "computer programs, procedures, rules, and associated documentation and data pertaining to the development and operation of a computer system. Software includes programs and operational data contained in hardware (e.g., firmware, programmable logic, and programmable gate arrays). This also includes COTS (Commercial Off the Shelf), GOTS (Government Off the Shelf), MOTS (Modified Off the Shelf), reuse, legacy, and heritage software products and components.”1 Software includes much more than code development.
The process through which SW becomes high quality, reliable, and repeatable is called Software assurance. Related to SW assurance is Software quality, which is defined as "a planned and systematic set of activities to ensure quality is built into the software. It consists of software quality assurance, software quality control, and software quality engineering. As an attribute, software quality is (1) the degree to which a system, component, or process meets specified requirements; or (2) the degree to which a system, component, or process meets customer or user needs or expectations.”1
Software assurance and quality is completely separate from development of software. SW assurance’s function is to guarantee stable, high quality, reliable software quality for use in its intended function. Software Assurance provides a life-cycle approach to software.
Where does Software Assurance should be included?
Software Assurance is very likely and should be included as part of the Statement of Work (SOW). This makes the function contractually required. Software Assurance ensures that the system/subsystem will meet its prime item development specifications (requirements). Software Assurance as defined in the SOW requires, through periodic contract deliverables (CDRLs), proof of this function as part of the software (SW) life-cycle. Proof can range from documentation to audits all where applicable.
Note: This module does not include software development or testing. It is highly recommended to read MIL-STD 4982 prior to completing this module.