A. Concepts and Definitions
Software Quality Assurance (SQA) is defined as a planned and
systematic approach to the evaluation of the quality of and
adherence to software product standards, processes, and
procedures. SQA includes the process of assuring that standards
and procedures are established and are followed throughout the
software acquisition life cycle. Compliance with agreed-upon
standards and procedures is evaluated through process monitoring,
product evaluation, and audits. Software development and control
processes should include quality assurance approval points, where
an SQA evaluation of the product may be done in relation to the
applicable standards.
B. Standards and Procedures
Establishing standards and procedures for software development is
critical, since these provide the framework from which the
software evolves. Standards are the established criteria to which
the software products are compared. Procedures are the
established criteria to which the development and control processes
are compared. Standards and procedures establish the prescribed
methods for developing software; the SQA role is to ensure their
existence and adequacy. Proper documentation of standards and
procedures is necessary since the SQA activities of process
monitoring, product evaluation and auditing rely upon unequivocal
definitions to measure project compliance.
, Types of standards include:
Documentation Standards specify form and content for planning,
control, and product documentation and provide consistency
throughout a project. The NASA Data Item Descriptions (DIDs)
are documentation standards
Design Standards specify the form and content of the design
product. They provide rules and methods for translating the
software requirements into the software design and for
representing it in the design documentation.
Code Standards specify the language in which the code is to be
written and define any restrictions on use of language features.
They define legal language structures, style conventions, rules for
data structures and interfaces, and internal code documentation.
Procedures are explicit steps to be followed in carrying out a
process. All processes should have documented procedures.
Examples of processes for which procedures are needed are
configuration management, nonconformance reporting and
corrective action, testing, and formal inspections.
If developed according to the NASA DID, the Management Plan
describes the software development control processes, such as
configuration management, for which there have to be procedures,
and contains a list of the product standards. Standards are to be
documented according to the Standards and Guidelines DID in the
Product Specification. The planning activities required to assure
that both products and processes comply with designated standards
and procedures are described in the QA portion of the Management
Plan.