Ch 10: Software Quality Management
Software quality assurance, metrics, standards, and quality conflicts.
Ch 10: Software Quality Management
Chapter 10 — Software Quality Management
(Sommerville Ch. 25)
Software Quality Assurance (SQA)
SQA is a planned and systematic pattern of actions necessary to provide adequate confidence that a software product conforms to established technical requirements.
SQA Objectives:
- Establish quality standards and processes
- Monitor and measure adherence to those standards
- Detect defects as early as possible
- Provide feedback to improve the development process
Quality Metrics
| Metric Type | Examples |
|---|---|
| Product metrics | Defect density, code coverage, coupling, cohesion |
| Process metrics | Defect discovery rate, rework effort, review effectiveness |
| Project metrics | Schedule variance, cost variance, staff productivity |
Process and Product Standards
- Process standards — define the process to be followed (e.g. how to conduct code reviews, how to manage versions)
- Product standards — define characteristics of the deliverable (e.g. naming conventions, document format, interface style)
Both together ensure that a repeatable, measurable process produces consistent outputs.
Quality Conflicts
Quality attributes often conflict with each other:
- Efficiency vs. Portability — optimized native code may not run elsewhere
- Safety vs. Performance — safety checks add overhead
- Security vs. Usability — strong authentication frustrates users
- Maintainability vs. Efficiency — highly modular code may be slower
High-Quality Process → High-Quality Product
A good process:
- Identifies defects early (cheaper to fix)
- Provides checkpoints (reviews, inspections) before defects propagate
- Uses proven techniques and tools
- Makes defects visible and traceable
“If your process is poor, defects will be introduced faster than they are removed. The process IS the product’s quality mechanism.”
Quality Management for Large Systems
Challenges unique to large systems:
- Many teams → inconsistent standards without formal enforcement
- Long development — standards must be maintained across years
- Subsystem integration — quality issues emerge at boundaries
- Response: formal quality plans, audits, metrics dashboards, independent QA teams
This post is licensed under CC BY 4.0 by the author.