Lesson 1
Software Quality
1
Software quality management
• Concerned with ensuring that the required level of quality is achieved in a software product.
• Involves defining appropriate quality standards and procedures and ensuring that these are followed.
• Should aim to develop a ‘quality culture’ where quality is seen as everyone’s responsibility.
2
What is quality?
• Quality, simplistically, means that a product should meet its specification.
• This is problematical for software systems
• There is a tension between customer quality requirements
(efficiency, reliability, etc.) and developer quality requirements (maintainability, reusability, etc.);
• Some quality requirements are difficult to specify in an unambiguous way;
• Software specifications are usually incomplete and often inconsistent. 3
The quality compromise
• We cannot wait for specifications to improve before paying attention to quality management.
• We must put quality management procedures into place to improve quality in spite of imperfect specification.
4
Scope of quality management
• Quality management is particularly important for large, complex systems. The quality documentation is a record of progress and supports continuity of development as the development team changes.
• For smaller systems, quality management needs less documentation and should focus on establishing a quality culture. 5
Quality management activities
• Quality assurance
• Establish organisational procedures and standards for quality. • Quality planning
• Select applicable procedures and standards for a particular project and modify these as required.
• Quality control
• Ensure that procedures and standards are followed by the software development team.
• Quality management should be separate from project management to ensure independence.
6
Quality management and software development
7