Introduction to Software Assurance

Primary tabs

Step 1 of 2

Introduction

Software

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.

Software Assurance

The process through which SW becomes a 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 are completely separate from the 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 should Software Assurance be included?

Software Assurance is appropriate in most projects and should be included as part of the Statement of Work (SOW).  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 deliverables, proof of this function as part of the software (SW) life-cycle. Proof can range from documentation to audits or tests where applicable.

Note: This course does not include software development or testing. It is recommended to read MIL-STD 498 prior to completing this course.