Professional Documents
Culture Documents
Chapter 17 Notes
Chapter 17 Notes
1: Background Issues
Quality control and assurance are vital for businesses producing products for others.
In the past, quality control was the responsibility of the craftsperson, but it evolved as
mass production became prevalent.
SQA processes and approaches must be tailored to specific software environments and
product quality requirements.
The Software Engineering Institute's CMMI and ISO 9000 standards provide process
frameworks that can be harmonized to meet quality needs.
SQA tasks include quality assurance planning, oversight, record keeping, analysis, and
reporting.
SQA works to ensure requirements, design, code, quality control e ectiveness, and
resource allocation are aligned with quality goals.
Metrics are used to measure attribute indicators for each quality goal, such as
ambiguity, cyclomatic complexity, or readability index.
SQA tasks are conducted by the SQA group and are aimed at achieving a high-quality
end product.
The SQA group prepares an SQA plan for each project, which serves as a template for
quality assurance activities.
The SQA group reviews software engineering activities for compliance with the defined
software process and identifies and documents deviations.
They audit software work products to verify compliance with the defined process and
standards.
The SQA group ensures that deviations in software work and work products are
documented and handled according to a documented procedure.
The goals of software quality assurance include requirements quality, design quality,
code quality, and quality control e ectiveness.
Attributes and metrics are used to evaluate the achievement of these goals:
Software quality assurance is essential to identify and address issues early in the software
development process, ensuring that the final product meets quality standards and customer
expectations. By setting clear goals and using specific attributes and metrics, SQA helps teams
improve their processes and product quality.
Section 17.5: Formal Approaches to SQA
While formal methods are of academic interest, they are not widely adopted in
commercial software development.
The text emphasizes the importance of quality assurance in software development and outlines
various components, including standards, reviews, audits, testing, and other activities to
ensure software quality. It also touches on formal methods for program correctness but
highlights their limited adoption in practical software development.
17.6 Statistical Software Quality Assurance
3. Pareto Principle:
Isolate the vital few causes (20%) that contribute to 80% of the defects.
4. Corrective Action:
Address and rectify the problems associated with the vital few causes.
Focusing on the vital few is essential for improving the software development process.
Example: Data is collected on errors and defects, and three main causes (IES, MCC, EDR) are
identified as the vital few causes, contributing to 53% of all errors. Corrective actions are taken
to address these specific issues, e.g., improving customer communication and specifications
for MCC.
Summary: Six Sigma is a widely-used strategy for statistical quality assurance, focused on
minimizing variations and defects. It follows a structured approach with core steps: Define,
Measure, Analyze, Improve, and Control (DMAIC).
Measure the existing process and quality performance (collect defect metrics).
The Six Sigma methodology aims for extremely high quality standards with a focus on
statistical applications.
17.10 Summary
The SQA plan outlines activities to ensure software quality in each project.