SPAWAR SwQualityAssuranceProcess-1
SPAWAR SwQualityAssuranceProcess-1
PROCESS
Version 1.4
September 4, 1997
PROCESS
Version 1.4
September 4, 1997
_____________________________________
ii
SQA Process
Version 1.4
9/4/1997
Developed by Ann Hess, Software Engineering Process Office, D13,
SPAWARSYSCEN SAN DIEGO CA
_____________________________________
Approved by Elizabeth Gramoy, Director, Software Engineering Process Office,
D13, SPAWARSYSCEN SAN DIEGO CA
iii
SQA Process
Version 1.4
9/4/1997
Administrative Information
This document supersedes version 1.3 as guidance on the Software Quality Assurance
Process at Space and Naval Warfare Systems Center (SPAWARSYSCEN SAN DIEGO
CA). SEPO assumes responsibility for this document and updates it as required to meet
the needs of users within SPAWARSYSCEN SAN DIEGO CA. SEPO welcomes and
solicits feedback from users of this document so that future revisions of this document
will reflect improvements, based on organizational experience and lessons learned.
If you have any questions or comments regarding this document please feel free to
communicate them via the Document Change Request (DCR) form located at the back of
this document.
iv
SQA Process
Version 1.4
9/4/1997
RECORD OF CHANGES
v
SQA Process
Version 1.4
9/4/1997
TABLE OF CONTENTS
1. INTRODUCTION..........................................................................................................................................
1.1 PURPOSE............................................................................................................................................
1.2 BACKGROUND..................................................................................................................................
1.3 ENTRY CRITERIA.............................................................................................................................
1.4 SCOPE.................................................................................................................................................
1.5 TAILORING GUIDELINES.................................................................................................................
1.6 DOCUMENT OVERVIEW..................................................................................................................
1.7 REFERENCES.....................................................................................................................................
2. ESTABLISH SQA ORGANIZATION.......................................................................................................
vi
SQA Process
Version 1.4
9/4/1997
3.3.2 Task: Participate In Management Reviews........................................................................................
3.4 SQA REPORTING...............................................................................................................................
3.4.1 Task - Prepare Software Product Evaluation Records.......................................................................
3.4.2 Task - Prepare Software Process Audit Reports.................................................................................
3.5 SQA METRICS....................................................................................................................................
3.5.1 Task: Collect and Report Software Product Evaluation Metrics......................................................
3.5.2 Task: Collect and Report Software Product Quality Metrics............................................................
3.5.3 Task - Collect and Report Software Process Audit Metrics................................................................
4. CREATE/MAINTAIN SQA PLAN...........................................................................................................
4.1 SAMPLE PROCEDURES TO CREATE AND MAINTAIN A PROJECT SQA PLAN.........................
5. IMPLEMENT SQA PLAN..........................................................................................................................
LIST OF TABLES
LIST OF FIGURES
vii
1INTRODUCTION
1.1PURPOSE
The purpose of this document is to assist Space and Naval Warfare Systems Center, San
Diego, CA (SPAWARSYSCEN SAN DIEGO CA) projects in establishing a Software
Quality Assurance (SQA) function. This SQA process describes eight activities. They
are:
1.2BACKGROUND
This document provides the activities for achieving compliance with the SQA Key
Process Area (KPA) at the “Repeatable” level on the Software Engineering Institute’s
(SEI) Software Capability Maturity Model (SW-CMM) and meeting Department of
Defense (DOD) and industry guidelines. This document covers the activities for
implementing SQA for a project.
1.3ENTRY CRITERIA
Quality Factors are characteristics which a software product exhibits that reflect the
degree of acceptability of the product to the user. Identifying quality factors is a
software engineering activity that involves identifying and building quality factors in the
software program which can be measured and evaluated. See references 3, 4, and 5 for
assistance in identifying quality factors.
A Quality Program is defined by the processes that will be used in developing software.
Software is, or should be, developed and maintained in accordance with a defined
process. A software development or maintenance process consists of the activities that
must be performed, the specific products that result from these activities, and the reviews
and audits that are held during, and at the conclusion of, these activities. The SDP is the
guide that should control all of the software developer’s activities and is the vehicle by
which the developer tells the acquirer how they will do the job. The SDP is tailored
specifically for the project, but should include proven methods and procedures from past
successful software development projects. The quality program is the checks and
balances in the software development process or methodology that will ensure that
quality software is being built. The quality program is defined in the project SDP and/or
SOW. MIL-STD-498, Software Development and Documentation, is the software
development standard referenced in this document.
1.4SCOPE
This process can be applied to a specific project within SPAWARSYSCEN SAN DIEGO
CA or an outside organization.
1.5TAILORING GUIDELINES
Projects that find it necessary to provide more in-depth details to their SQA processes
may add additional requirements to this process.
1.6DOCUMENT OVERVIEW
Section 1, Introduction, provides the purpose, background, entry criteria to this process,
scope, tailoring guidelines, and references.
Section 3, Select SQA Tasks, provides a list of SQA tasks that can or should be
performed by SQA on a project. This process activity involves program or project
management to agree with the SQA representative on the tasks that SQA will perform.
The selected SQA tasks are an input to the SQAP.
Section 4, Create/Maintain SQA Plan, describes the activity for documenting what SQA
plans to do to support the project by identifying all the SQA activities that will be
performed, getting project buy-in (all project participants review the plan), getting
program/project approval of the plan, placing the plan under configuration control, and
how process improvement may affect a change to the SQA Plan (SQAP) by requiring
approval of a change/update to the plan. The SQAP clearly defines the products to be
reviewed by SQA and the project processes to be audited by SQA.
Section 5, Implement SQA Plan, is the project’s implementation of the approved SQAP.
Section 6, Create/Maintain SQA Procedures, describes the activity for documenting how
SQA will perform a task, such as, SQA procedural steps to audit a process or evaluate a
software product. The goal of this process activity is to show “repeatability” of
performing a specific task.
Section 7, Identify SQA Training, describes the activity of SQA personnel identifying
any SQA training that may be required to perform the SQA tasks. Project specific
requirements will dictate what training SQA needs to adequately perform the SQA
function.
Section 8, Identify/Select SQA Tools, defines the steps in selecting a SQA tool to
support an SQA function or functions.
Section 9, Improve Project SQA Processes, describes the activity of project SQA
personnel to review existing project SQA processes and report on areas for improvement
and identify processes that need to be defined.
1.7REFERENCES
Many sources of good software practice call for a measure of independence for the SQA
group. This independence provides a key strength to SQA; that is, SQA has the freedom,
if the quality of the product is being jeopardized, to report this possibility directly above
the level of the project. While in practice this rarely occurs (for almost all problems are
correctly addressed at the project level), the fact that the SQA group can go above the
project level gives it the ability to keep many of these problems at the project level.
Figure 2 shows an example SQA organization with relation to the project organization.
The project SQA organization, including roles and responsibilities, is documented in the
project SQAP. The organization chart called for in the SQAP, SDP, SCMP, and other
plans controlling the project’s execution should be consistent.
Figure 2. Example SQA Organization
3SELECT SQA TASKS
This process activity requires the person tasked to perform SQA and program or project
management to identify and plan the SQA tasks to be performed. The objective is to
select those tasks that will provide an appropriate level of SQA on the project.
Identifying any SQA tasks requires consideration and compatibility with the project’s
SDP, SCMP, and other plans controlling the project’s execution. SQA tasks are
documented in the project SQAP.
Figure 3 provides an overview of the SQA Process Activity “Select SQA Tasks”. The
list of SQA tasks is not intended to be an inclusive list of all SQA tasks.
Figure 3. Select SQA Tasks Overview
3.1SQA OF SOFTWARE PRODUCTS, TOOLS, AND FACILITIES
SQA reviews of software products shall be applied, but not limited, to the following:
development plans, standards, procedures, tools, and processes; software requirements;
software design; code; control mechanisms for tracking the design, code, database,
manuals, and test information (testing of software units; software integration tests;
software performance tests).
The project’s SDP identifies all software products to be developed and evaluated and
should include the standards or guidelines to be followed. As required, SQA should
assist the project in identifying the standards or guidelines to be followed in developing
the software product. Additionally, the project SDP should identify the review process
of the software products. The project SQAP should list the software products to be
evaluated by SQA and identify the review process to be followed.
SQA shall conduct evaluations of tools, both existing and planned, used for software
development and support. The tools are evaluated for adequacy by assessing whether
they perform the functions for which the tools are intended and for applicability by
assessing whether the tools capabilities are needed for the software development or
support. Planned tools are evaluated for feasibility by assessing whether they can be
developed with the techniques and computer resources available or by procurement.
Figure 4 provides an example format for reporting the results of a software tool
evaluation. The metric for performing this task should be reported.
SOFTWARE TOOL EVALUATION
SQA:_________________________ DATE OF
EVALUATION:________
Evaluation Results:
SQA shall evaluate facilities, both existing and planned, for adequacy by assessing
whether they provide the needed equipment and space used for software development
and support. Figure 5 provides an example format for reporting the results of the
project’s software development and support facilities. The metric for performing this
task should be reported.
PROJECT FACILITIES EVALUATION
SQA:_________________________ DATE OF
EVALUATION:________
Evaluation Results:
Audits of compliance for prescribed organizational and project processes are a critical
component of software quality. Software Process Audits are conducted to ensure that the
process defined by the organization and the SDP are followed as the project progresses.
These audits take the form of selected reviews of individual project activities to
determine that the project conducts each activity.
Process improvement requires the process used on the project be periodically assessed to
determine their suitability and effectiveness. Based on these assessments, SQA should
identify any necessary and beneficial improvements to the process, and identify those
improvements as proposed updates to the SDP, SCMP, SQAP, or other plans controlling
the project’s execution, and if approved, implement the improvements on the project.
The following are guidelines when performing a software process audit by SQA:
1. Means of determining the scope of the audit - SQA should follow a defined
procedure in conducting the audit to ensure that the right steps are identified
and are being reviewed to provide the maximum benefit. The SQA Audit
Procedure should be made available to project personnel. This will
communicate SQA’s scope and purpose of conducting a specific software
process audit, e.g., SQA will audit the project’s peer review process for code,
unit test cases, and unit test procedures.
2. Process compliance - For those areas where the process is being followed, SQA
should favorably report the effectiveness of the process activity in meeting
activity and project goals, and recommended action to be taken, if any
(change the process if the process is not robust enough).
3. Process noncompliance - For those areas where the process is not being followed,
SQA should report noncompliance, its impact on the project, and recommended
action be taken by the project team and management.
A sample format for a Process Audit Report is found in Section 2.4, SQA Reporting.
The metric for performing this activity should also be reported.
The following tasks descriptions include phase specific activities of MIL-STD-498 and
verifying implementation of the Key Process Areas (KPAs) of the SW-CMM. Figure 6
provides an expanded overview of the SQA Task “Software Process Audits”.
Figure 6. Software Process Audits Overview
3.2.1Task: Evaluate Software Products Review Process
SQA evaluation of the Software Products Review process checks that software products
that are ready for review are reviewed, review results are reported and issues or problems
reported are resolved in accordance with the project’s SDP and procedures. Software
products may include representations of information other than traditional hard-copy
documents.
SQA should report the results of evaluating the software products review process using
the Process Audit Report form and report the metric for performing this task.
Project planning and oversight requires project management to develop and document
plans for the following:
Software Development Planning - A plan for conducting the activities required by the
software development standard, e.g., DOD-STD-2167A, MIL-STD-498, and by other
software-related requirements in the contract, Memorandum of Agreement,
Memorandum of Understanding, etc. Planning is documented in the SDP which
identifies events, reviews, and audits to be performed on the project based on the
appropriate point in the software development lifecycle.
CSCI Test Planning - A plan for conducting CSCI qualification testing. Planning is
documented in the Software Test Plan.
System Test Planning - A plan for conducting system qualification testing. For software
systems, planning is included in the Software Test Plan.
Software Installation Planning - A plan for performing software installation and training
at the user sites. Planning is documented in the Software Installation Plan.
Software Transition Planning - A plan for identifying all software development resources
that will be needed by the support agency, e.g., Software Support Activity, to fulfill the
support concept, e.g., maintenance. Planning for this involves identifying the resources
and describing the approach to be followed to transition deliverable items to the support
agency. Planning is documented in the Software Transition Plan.
SQA ensures that the project conduct the relevant activities stated in those project plans.
Any changes to those plans would require update and approval by project management.
For planning documents to be developed, SQA would identify standards or guidelines, or
an appropriate Data Item Description (DID) and assist with the tailoring of the standard,
guideline, or DID to meet the project’s needs.
3.2.3Task: Evaluate System Requirements Analysis Process
a. Ensure that the correct participants are involved in the requirements definition
and allocation process to identify all user needs.
c. Ensure that changes to allocated requirements, work products, and activities are
identified, reviewed, and tracked to closure.
e. Ensure that the commitments resulting from allocated requirements are agreed
upon by negotiated with the affected groups.
h. Verify that the prescribed processes for defining, documenting, and allocating
requirements are followed and documented.
System-wide design decisions are decisions about the system’s behavioral design and
other decisions affecting the selection and design of system components. System
architectural design is organizing a system into subsystems, organizing a subsystem into
Hardware Configuration Items (HWCIs), Computer Software Configuration Items
(CSCIs), and manual operations, or other variations as appropriate. System design is
documented, such as in the System/Subsystem Design Description (SSDD) and Interface
Design Description (IDD).
a. Ensure that lifecycle documents and the traceability matrix are prepared and kept
current and consistent.
b. Verify that relevant lifecycle documents are updated and based on approved
requirements change.
c. Ensure that design walkthroughs (peer reviews) evaluate compliance of the design
to the requirements, identify defects in the design, and alternatives are
evaluated and reported.
e. Identify defects, verify resolution for previously identified defects, and ensure
change control integrity.
h. Determine whether the requirements and accompanying design and tools conform
to standards, and whether waivers are needed prior to continuing software
development.
a. Ensure that the software requirements definition and analysis process and
associated requirements reviews are conducted in accordance with the
standards and procedures established by the project and as described in the
SDP.
b. Ensure that action items resulting from reviews of the software requirements
analysis are resolved in accordance with these standards and procedures.
Preliminary design activity determines the overall structure of the software to be built.
Based on the requirements identified in the previous phase, the software is partitioned
into modules, and the function(s) of each module and relationships among these modules
are defined.
Detailed design is to define and complete the detailed design of software logically to
satisfy allocated requirements. The level of detail of this design must be such that the
coding of the computer program can be accomplished by someone other than the original
designer. Software design is documented, such as in the Software Design Description
(SDD), Database Design Description (DBDD), and Interface Design Description (IDD).
a. Ensure that the software design process and associated design reviews are
conducted in accordance with standards and procedures established by the
project and as described in the SDP.
b. Ensure that action items resulting from reviews of the design are resolved in
accordance with these standards and procedures.
c. Evaluate the method used for tracking and documenting the development of a
software unit in order to determine the method's utility as a management tool
for assessing software unit development progress. Example criteria to be
applied for the evaluation are the inclusion of schedule information, results of
audits, and an indication of internal review and approval of what was
reviewed.
d. Ensure that the method, such as the Software Development File (SDF) or Unit
Development Folder (UDF) used for tracking and documenting the development
of a software unit is implemented and is kept current.
a. Ensure that the coding process, associated code reviews, and software unit testing
are conducted in conformance with the standards and procedures.
b. Ensure that action items resulting from reviews of the code are resolved in
accordance with these standards and procedures established by the project and
as described in the SDP.
c. Ensure that the SDF/UDF used for tracking and documenting the development of
a software unit is implemented and is kept current.
In the integration and test phase of the development lifecycle, the testing focus shifts
from an individual component correctness to the proper operation of interfaces between
components, the flow of information through the system, and the satisfaction of system
requirements.
a. Ensure that software test activities are identified, test environments have been
defined, and guidelines for testing have been designed. SQA will verify the
software integration process, software integration testing activities and the
software performance testing activities are being performed in accordance
with the SDP, the software design, the plan for software testing, and
established software standards and procedures.
c. Ensure as many of the software integration tests as necessary and all of the
software performance tests are witnessed to ensure that the approved test
procedures are being followed, that accurate records of test results are being
kept, that all discrepancies discovered during the tests are being properly
reported, that test results are being analyzed, and the associated test reports
are completed.
e. Ensure the software performance tests produce results that will permit
determination of performance parameters of the software.
f. Ensure that the responsibility for testing and for reporting on results has been
assigned to a specific organizational element.
h. Review the Software Test Plan and Software Test Procedures for compliance
with requirements and standards.
k. Ensure that requirements have been established for the certification or calibration
of all support software or hardware used during tests.
This activity is applicable for those projects providing a one-time delivery of a product
and may also be interpreted as required deliveries for a specified time period or time
frame.
SQA shall evaluate the activities in preparation for end-item delivery to ensure that
program or project requirement, if any, for functional and physical audits of the end-
item products are being satisfied. In some cases, SQA should be allowed to prohibit
delivery of certain items, such as documentation, code, or a system, if the project fails to
meet program or project requirements or standards.
The corrective action process describes the steps for (1) problem identification and
correction occurring during software development to ensure early detection of actual or
potential problems, (2) reporting of the problem to the proper authority, (3) analysis of
the problem in order to propose corrective measures, (4) timely and complete corrective
action, and (5) the recording and follow-up of each problem's status. Problems in this
context include documentation errors, software errors, and noncompliance with standards
and procedures.
a. Periodically review the corrective action processes and their results against the
SCMP in order to assess the effectiveness of the correction action process.
b. Perform periodic analysis of all reported problems to identify trends that may
disclose generic problem areas. These analyses shall include the study of the
causes, magnitude of impact, frequency of occurrence, and preventive measures.
SQA shall certify that the media containing the source code and the media containing the
object code which are delivered to the procuring agency correspond to one another. SQA
shall certify also that the software version represented by this media matches that on
which software performance testing was performed, or correctly represents an authorized
update of the code, as applicable.
SQA reports, together with the corrective action records, software test reports, and
software product evaluation records can constitute the required evidence for certification.
The project may use non-deliverable software in the development of deliverable software
as long as the operation and support of the deliverable software, after delivery to the
acquirer, does not depend on the non-deliverable software or provision is made to ensure
that the acquirer has or can obtain the same software. SQA shall certify that the use of
non-deliverable software meets the above criteria, that is, deliverable software is not
dependent on non-deliverable software to execute, or verify that the acquirer can obtain
the same software. SQA shall certify that all non-deliverable software used on the
project performs its intended functions.
SQA reports, together with the corrective action records, software test reports, and
software product evaluation records can constitute the required evidence to verify that the
software performs its intended functions.
SQA shall verify that there is an established plan, methodology, or set of procedures for
storage and handling of the media. SQA shall evaluate the storage of the software
product and documentation to ensure that storage areas for paper products or media are
free from adverse environmental effects such as high humidity, magnetic forces, and
dust.
SQA shall be responsible for ensuring that the quality of all software products from
subcontractors conforms to the contract requirements and that the subcontractor's CM
plan and procedures are being followed.
SQA shall assist program or project management, with requests for deviations and
waivers if required, and verify that the deviation or waiver request is processed in
accordance with the project’s SCMP and approved by the approving agency.
g. Ensure that the program support library is the single place of storage for the
baseline version of all software and ensure that the identification of all software
includes the software name and a unique version identifier. The evaluation shall
also determine that control of access to software products is being properly
exercised and that unauthorized changes to master files cannot occur.
The SDL functions as the main control point for software CM. A SDL contains all units
of code developed for evolving project CSCIs, as well as carefully identified listings,
patches, errata, CSCI and system magnetic tapes and disk packs, and job control streams
for operating or building software systems. The SDL also contains previous versions of
the operational software system in the form of magnetic tapes or disk packs.
a. Ensure the establishment of the SDL and procedures to govern its operation.
b. Ensure that documentation and computer program materials are approved and
placed under library control.
The SQA group reviews and/or audits the activities and work products for managing the
allocated requirements and reports the results.
The purpose of Software Project Planning is to establish reasonable plans for performing
the software engineering and for managing the software project.
The SQA group reviews and/or audits the activities and work products for software
project planning and report the results.
The SQA group reviews and/or audits the activities and work products for software
subcontract and report the results.
The SQA group reviews and/or audits the activities and work products for software
configuration management and report the results.
The purpose of Organization Process Definition is to develop and maintain a usable set
of software process assets that improve process performance across the projects and
provide a basis for cumulative, long-term benefits to the organization.
The SQA group reviews and/or audits the organization’s activities and work products for
developing and maintaining the organization’s standard software process and related
process assets and report the results.
The SQA group reviews and/or audits the activities and work products for managing the
software project and report the results.
The SQA group reviews and/or audits the activities and work products for intergroup
coordination and report the results.
The purpose of Peer Reviews is to remove defects from the software work products
early.
The SQA group reviews and/or audits the activities and work products for peer reviews
and report the results.
3.3TECHNICAL AND MANAGEMENT REVIEWS
Technical reviews conducted by the project team are based on the key products produced
during the life of the project. Management reviews are held to examine and discuss
project status, software products, and/or project issues. Conducting a technical and
management review depend on the major milestones, the selected program strategies and
development methodologies, and the discretion of senior management and the project
manager. An SQA function provides input to ensure that reviews identified are adequate
for the project. Additionally, SQA participates in reviews and reports it’s review results
and metrics.
2. Review project status. Surface near- and long-term risk regarding technical,
costs, and schedule issues.
System Requirements Review (SRR) - the objective is to ascertain the adequacy of the
developer’s efforts in defining system requirements.
System Design Review (SDR) - the objective is to evaluate the optimization, correlation,
completeness, and risks associated with the allocated technical requirements. Also
included is a summary review of the system engineering process which produced the
allocated technical requirements and of the engineering planning for the next phase of
effort.
Software Specification Review (SSR) - the objective is to review the finalized Computer
Software configuration Item (CSCI) requirements and operational concept. A successful
SSR shows that the SRS, IRS, and Operational Concept Document form a satisfactory
basis for proceeding into preliminary software design.
Software Preliminary Design Review (PDR) - the objective is to evaluate the progress,
consistency, and technical adequacy of the selected top-level design and test approach,
compatibility between software requirements and preliminary design, and the preliminary
version of the operation and support documents.
Software Test Readiness Review (TRR) - the objective is to determine whether the
software test procedures are complete and to assure that the developer is prepared for
formal CSCI testing.
Formal Qualification Review (FQR) - the test, inspection, or analytical process by which
a group of configuration items comprising the system are verified to have met specific
program or project management performance requirements.
The choice of which type of review is conducted, which items are reviewed, and the
participants for each review should be delineated in the software development processes,
project SDP, and project SQAP. Compliance with the established processes is verified
through Software Process Audits.
(1) Item completeness - Determine whether the item fully met its intended objectives
(3) Compliance with standards - Ensure the item complies with established or require
standards, or that waivers are sought where it does not meet them
(4) Risk identification - Identify potential risk areas in the project so risks can be
managed and mitigated as the project progresses
(5) Traceability - Ensure the item is traceable to the appropriate previous phase in the
project. Recording item traceability, through a matrix, is very important to developers
and managers. They use the traceability matrix to verify that the software satisfies its
requirements and to provide input to subsequent project activities
Issues or discrepancies with the product must be recorded, managed, and tracked to
closure. In some cases, the item will also need to be reviewed again prior to its
acceptance. In other cases, the items noted from the review will be relatively minor and
will not necessitate a second review. The criterion for making this determination should
be included as part of the project SQAP. The results of a review are utilized by:
1. Project Manager - the project manager uses the review results to track action
items and discrepancies and as input into the status of the item relative to
the overall project.
2. SQA - the report provides objective evidence that the review has been
conducted. The reviews allow SQA to focus its activities and resources
on those items that have more impact on the process.
3. SEPO - the report provides the SEPO with data on the effectiveness of
individual process steps through an analysis of review items from projects
across the organization.
Various metrics should be collected as part of technical reviews to help determine the
effectiveness of the review process itself as well as the process steps that are used to
produce the item being reviewed. These metrics, reported to the project manager and
SEPG, should include the amount of time spent by each person involved in the review
for preparation and conduct of the review and deficiencies (the number and criticality of
deficiencies found).
SQA’s periodic management review of software project status, progress, problems, and
risk will provide an independent assessment of project activities. Such participation
requires that SQA be prepared to provide the following information to management:
Risks - identification of risk based on participation and evaluation of project progress and
trouble areas.
The SQA function is integral to the success of the project, and should freely
communicate its results to senior management, SEPG, project management and the
project team. SQA can often provide additional support to the project manager during
management reviews to emphasize areas for senior management attention.
The method for reporting compliance, problem areas, and risks should be communicated
in a documented report or memorandum. Compliance, problem areas, and risks needs to
be followed-up and in some cases tracked to closure.
3.4SQA REPORTING
An important SQA activity is reporting the results of any software product evaluation or
software process audit. SQA should document the results of the activities performed and
promptly initiate corrective action or provide certification. The reporting results are
provided to the appropriate program/project personnel. The following subparagraphs
discuss the reporting requirements of SQA software product evaluations and software
process audits.
For any software product evaluation conducted, evaluation records are required. The
requirements for software product evaluation records are they must be prepared and
made available to affected program and project personnel. As a minimum, evaluations
records should include:
The project SDP would identify all software products to be developed and may reference
the Data Item Description (DID) or a project-tailored DID to follow. See Appendix D,
Software Product Evaluations, of MIL-STD-498, which identifies the software products
that are to undergo software product evaluations, identifies the criteria to be used for
each evaluation, and contains a default set of definitions for the evaluation criteria.
The format of an evaluation record may be dependent on the process used to perform
software product evaluations. For example, a project may implement
SPAWARSYSCEN SAN DIEGO CA’s Formal Inspection (FI) Process as the
methodology to use for Peer Reviews to evaluate software products. The
SPAWARSYSCEN SAN DIEGO CA FI process includes the form and format to report
defects. The project SDP would describe the peer review process. Another example is
that a project evaluating a software product may use the Software Trouble Report form
which is an input to the Corrective Action Process. The Software Configuration
Management Plan would describe the Corrective Action Process and the STR format.
SQA’s reporting of software product evaluations should be documented in the SQAP that
describes what products will be evaluated by SQA, how the evaluations will be done
(the method or criteria), what format is used to report the evaluation results which would
include recommended corrective actions or corrective actions to be taken. The software
products that are to be evaluated is further discussed in the paragraph entitled SQA of
Software Products, Tools, and Facilities.
3.4.2Task - Prepare Software Process Audit Reports
Each Software Process Audit produces a report that shows areas in which the process
is being followed correctly and working effectively, is being followed but is not working
effectively, and is not being followed. SQA recommendations may lead to adjustments
in the process, or enforcement activities intended to bring the project’s execution in line
with established plans and processes. Figure 7 provides a sample format for a Process
Audit Report.
2. SEPG - The SEPG utilizes the process audits results, in conjunction with the
results of audits of other projects, to identify process weaknesses and initiate
or enhance process improvement in specific areas. This data becomes part of
the process database so that it is available for future project analysis and use.
3. Project Manager - The project manager utilizes the report to provide insight into
whether there is compliance with the development process and its
effectiveness in meeting project goals. Where necessary and appropriate, the
project manager may initiate enforcement activities or initiate change to the
established processes using the approved procedures.
PROCESS AUDIT REPORT
TRACKING IDENTIFIER:______
_____________________________________________________________________________________
LEAD AUDITOR: DATE OF REPORT:
_____________________________________________________________________________________
_
AUDIT TEAM:
_____________________________________________________________________________________
_
PROJECT NAME:
_____________________________________________________________________________________
_
DATE OF AUDIT:
_____________________________________________________________________________________
_
PROCESS/PROCEDURE AUDITED:
_____________________________________________________________________________________
_
AUDIT CHECKLIST USED: (Attach)
_____________________________________________________________________________________
_
AUDIT FINDINGS: (Check one.)
_____ Process/Procedure Acceptable
_____ Process/Procedure Conditionally Acceptable
(Subject to satisfactory completion of action items listed below)
Conditions noted:
_____________________________________________________________________________________
_
ACTION ITEM (AI):
AI # TITLE: ASSIGNED TO: DUE DATE: COMP DATE:_______
_____________________________________________________________________________________
_
_____________________________________________________________________________________
_
_____________________________________________________________________________________
_
CORRECTIVE ACTION:
_____________________________________________________________________________________
_
DISPOSITION: APPROVE CANCEL DEFER
Project Manager: DATE:
_____________________________________________________________________________________
_
AI CLOSURE:
SQA Sign-off: DATE:
Table 1 provides measurements that are made and used to determine the schedule and
cost status of the SQA activities:
The following paragraphs provide example task descriptions to collect and report metrics
on (1) Software Product Evaluations, (2) Software Product Quality, and (3) Software
Process Audits.
This activity involves recording the effort involved in SQA performing an evaluation of
the software product. The metric collected and recorded is a person’s effort (hours) for
evaluating a software product, including reporting software product evaluation findings.
Recording this metric would show the allocation of SQA time in performing a specific
SQA activity. Figure 8 provides an example of SQA evaluating a requirements
specification and reporting on the results:
A metric that could be collected is the number and type of errors reported on a software
product evaluation. SQA would analyze this metric to ensure quality. For example, if
SQA found a high number of requirement or design errors, then root cause analysis
would be the recommended action to be taken by the software development team. Cause
analysis would look at why the requirement or design errors were not initially caught by
the product reviewers. An area of investigation would be to look at the process to see if
the process is robust enough, were the appropriate reviewers included to evaluate the
product, were requirements too ambiguous, etc.
This activity involves conducting and reporting the hours expended for performing an
SQA audit of the project’s software processes. Figure 9 is a sample process audit metric
for SQA evaluating the project’s corrective action process.
Software Hours Used for Hours Used for Hours used for
Development Audit Preparation Evaluating Reporting
Process Audited
Corrective Action 2 2 1
Process
This SQA activity details the process for creating and maintaining a project SQAP. The
purpose of the SQAP is to describe how the developer intends to ensure that the software
is a product whose quality meets those standards defined by the quality policy. The
SQAP details the quality procedures and techniques to be used. The objective of the plan
is to be able to demonstrate how the developer will ensure that the requirements for a
software system are met. The first major quality assurance task is to determine the
quality assurance activities that will be carried out during the execution of the project.
This means that, for each phase, the SQAP must define explicitly how quality assurance
activities (such as design reviews and system testing) are to be executed.
This Procedures details the steps to create and maintain a Project SQAP.
1. Entry Criteria
Entry criteria is defined as the elements and conditions necessary to be in place to begin a
procedure. The entry criteria for this procedure are:
A. SQA Policy
B. Project requirements
C. Project Software Development Plan (SDP)
D. Project products, i.e., specifications, standards and procedures
E. SQA activities identified
F. SQA tasks assigned
G. Responsibility for coordinating and implementing SQA for the project is explicitly
assigned
H. An SQA person, group or function has a reporting channel to senior management that
is independent of all other groups involved with the project
I. Adequate resources and budget for software project planning have been identified
and allocated
J. Members involved in SQA activities are trained or skilled in SQA objectives,
procedures, and methods
2. Controls
Controls are defined as the data that constrains or regulates a process activity. Controls
regulate the transformation of inputs into outputs. The following are controls for
creating and or maintaining an SQAP:
A. SQAP guidelines,
B. Quality Program Requirements
C. SQA Policy
3. SQAP Review
The SQAP shall be reviewed by all project personnel. This allows project personnel to
submit comments and feedback on the role, responsibility, resources, and activities
delineated in the SQAP . The SQAP shall be reviewed by following the Formal
Inspection Process or by following the informal document review process.
Figure 10. Sample Procedures to Create and Maintain a Project SQAP
4. SQAP Approval
The approval process of the SQAP shall require program or project management and
Configuration Control Board (CCB) approval.
5. Configuration Control
The approved SQAP shall be placed under configuration control. Updates to the plan to
reflect current project requirements, processes and practices require review and approval.
6. Measurements
Staffing levels, labor-hours, and the start and stop dates shall be recorded for developing
the SQAP including any updates to the SQAP.
7. Exit Criteria
A review on how closely project personnel follow this procedure to create and maintain a
Project SQAP and the areas for improvement shall be provided to those responsible for
process improvement. Efficiencies in the process to generate a SQAP may require an
update to this procedure.
Figure 11. Sample Procedures to Create and Maintain a Project SQAP (continued)
5IMPLEMENT SQA PLAN
The purpose of this SQA activity is to perform the SQA function in accordance with the
project approved SQAP.
6CREATE/MAINTAIN SQA PROCEDURES
The purpose of this activity is to document and maintain the procedures that describe
how SQA is performed on a project in accordance with the currently approved project
SQAP. The goal of this process activity is to show “repeatability” of performing a
specific task. Therefore, a documented procedure should be written for performing any
SQA activity.
The SQA Manager is responsible for drafting or directing the development of an SQA
procedure, implementing the SQA procedure, and maintaining the SQA procedure to
reflect activities performed as described in the project SQAP.
Inputs to creating/maintaining SQA procedures include identified tasks (WBS) and the
SQAP. An output of this activity is a documented SQA procedure. A documented SQA
procedure may be included as an appendix to the SQAP or as a separate stand-alone
document from the SQAP. The author suggests that procedures be separate from the
SQAP because procedure documents do not necessarily require the formality of change
management as does an SQAP. This suggestion is based on the assumption that the
SQAP is reviewed and approved by the project Configuration Control Board (CCB) and
formally placed under configuration management.
SQA personnel needs to identify any training that may be required to perform the SQA
tasks. Project requirements will dictate what training SQA needs to adequately perform
the SQA function.
2. Develop a Plan of Action and Milestone for selecting the SQA tool:
Schedule a target date of when you want the vendor selected.
Schedule the tentative dates for product demos.
Schedule the tool evaluation period and date of selecting the best vendor.
Schedule the date for purchasing the tool.
Schedule the tool setup and installation.
Schedule formal training.
Identify the target date of when you want the tool in place.
3. Establish a working group, if possible, to help identify and select the tool based
on project and SQA requirements.
4. Define and document SQA Tool Requirements. Requirements would include the
computer platforms that the software must reside, the operating systems of the
platforms, the interface of the SQA tool with the software engineering
environment, the type of software being developed, e.g., Ada, C, etc., the
target computer, etc. Considerations would include how much the project can
afford on a tool, the resources to support the tool, decision to buy or develop
the tool in house, doing a cost benefit analysis, etc.
5. Read the Product Literature. Know what’s out there. A source is the Software
Technology Support Center (STSC) reports on tools. STSC reports are
available in SEPO’s Library. Another source is surfing the World-Wide Web
(WWW) for information.
6. Narrow the Tools down to a workable level (3 to 5 vendors perhaps) that best
meets the SQA Tool Requirements.
7. Ask for a Vendor Product Demo. Provide a copy of the SQA Tool Requirements
to the Vendor. Ask that the vendor address the tools capabilities for meeting
the requirements specified in the SQA Tool Requirements document.
8. Ask for an Evaluation Copy of the SQA Tool Software. Ask for support during
the evaluation period.
9. Base the evaluation of the tool against the SQA Tool Requirements document.
Rate the tools using a 1 to 5 point scale with 5 being the highest. Make a decision
on the tool to buy.
9IMPROVE PROJECT SQA PROCESSES
The purpose of this activity is for SQA to review existing project and SQA processes and
report on efficiencies and areas for improvement and identify processes that need to be
defined. To improve project SQA processes, SQA needs to review and audit both
project processes and SQA processes. This will ensure that project processes and project
SQA processes are consistent and compatible with one another. Section 2 described the
SQA tasks for conducting software process audits. A method for improving project SQA
processes is for SQA to conduct internal SQA reviews. Internal SQA reviews involves
compliance with the SPAWARSYSCEN SAN DIEGO CA SQA Policy, compliance with
the project SQAP and SDP, and compliance to documented SQA processes and
procedures. The method for reporting findings of a software process audit is the process
audit form. The process audit form should be used as the vehicle to initiate action for
process improvement. Process improvement may result in changes to the policy,
processes, and/or procedures.
1
10TERMS, DEFINITIONS AND ACRONYMS
PROCESS. An organized set of activities performed for a given purpose; for example,
the software development process. [MIL-STD-498]
QUALITY. The totality of features and characteristics of a product or service that bear
on its ability to satisfy stated or implied needs.
SOFTWARE METRICS. Numerical measures of the products and processes that make
up the software project. The careful use of numerical measures can introduce precision
and clarity to the process instead of opinion, informality, and open interpretation.
SOFTWARE QUALITY ASSURANCE PLAN (SQAP). The SQAP describes the plans
and activities of the SQA staff. [IEEE Std 730.1-1985]
1
SQA SPECIALIST. Individuals who specialize in quality assurance. An SQA specialist
assists in formulating quality assurance policy and practices. SQA’s role is to ensure that
appropriate quality assurance practices are being used correctly. SQA’s advisory role is
to help project teams when plans go astray, or when special circumstances arise.
10.2ACRONYMS
AI Action Item
CCB Configuration Control Board
CDR Critical Design Review
CSCI Computer Software Configuration Item
DBDD Data Base Design Description
DCR Document Change Request
DID Data Item Description
DOD Department of Defense
FCA Functional Configuration Audit
FI Formal Inspection
FQR Formal Qualification Review
HWCI Hardware Configuration Item
IDD Interface Design Description
IRS Interface Requirements Specification
IV&V Independent Verification and Validation
KPA Key Process Area
NDS Non-Developmental Software
OCD Operational Concept Document
PCA Physical Configuration Audit
PDR Preliminary Design Review
2
PRR Product Readiness Review
SDD Software Design Document
SDF Software Development File
SDP Software Development Plan
SDR System Design Review
SEI Software Engineering Institute
SEPO Software Engineering Process Office
SOW Statement of Work
SQA Software Quality Assurance
SQAP Software Quality Assurance Plan
SRR System Requirements Review
SRS Software Requirements Specification
SSDD System/Subsystem Design Description
SSR Software Specification Review
SSS System/Subsystem Specification
STSC Software Technology Support Center
SW-CMM Software Capability Maturity Model
TRR Test Readiness Review
UDF Unit Development Folder
WBS Work Breakdown Structure
WWW World-Wide Web
3
DOCUMENT CHANGE REQUEST (DCR)
Note: For the Software Engineering Process Office (SEPO) to take appropriate action on a change
request, please provide a clear description of the recommended change along with supporting rationale.
Send to: Commanding Officer, Space and Naval Warfare Systems Center, D13, 53560 Hull Street,
San Diego, CA 92152-5001 or Fax to: (619)553-6249 or Email to: sepo.spawar.navy.mil
DCR Form 9/1997