AITPM - Lecture 04-06 - Sommerville Chapter 24 - Quality Management (24.5 …
AITPM - Lecture 04-06 - Sommerville Chapter 24 - Quality Management
Software quality management
Quality assurance & Quality control
Outline structure of a quality plan
Risks and risk management
24.1 - Software quality
Figure 24.2 - Software quality attributes
24.2 - Software standards
are important for three reasons
Standards capture wisdom
Standards provide a framework
Standards assist continuity
Two related types of software engineering standard may be defined and used in software quality management:
Figure 24.4 - Product and process standards
Possible actions to convince engineers of the value of standards:
Involve software engineers in the selection of product standards
Review and modify standards regularly to reflect changing technologies
Make sure that tool support is available to support standards-based development
The ISO 9001 Standards framework
24.3 - Reviews and inspections
The review process
Review processes are structured into three phases:
Pre-review activities - review planning and review preparation
The review meeting
24.4 - Quality management and agile development
In agile development its shared with good practice:
Check before check-in
Never break the build
Fix problems when you see them
24.5 - Software measurements
Measurements of a software system may be used in two ways:
To assign a value to system quality attributes
To identify the system components whose quality is substandard
Figure 24.10 - Relationships between internal and external software attributes
Product metrics fall into two classes
Figure 24.11 - Static software product metrics
Length of code
Length of identifiers
Depth of conditional nesting
Figure 24.12 - The CK object-oriented metrics suite
Weighted methods per class (WMC)
Depth of inheritance tree (DIT)
Number of children (NOC)
Coupling between object classes (CBO)
Response for a class (RFC)
Lack of cohesion in methods (LCOM)
Software component analysis
■ Software quality management is concerned with ensuring that software has a low number of defects and that it reaches the required standards of maintainability, reliability, portability, and so forth. It includes defining standards for processes and products and establishing processes to check that these standards have been followed.
■ Software standards are important for quality assurance as they represent an identification of best practice. When developing software, standards provide a solid foundation for building good-quality software.
■ Reviews of the software process deliverables involve a team of people who check that quality standards are being followed. Reviews are the most widely used technique for assessing quality.
■ In a program inspection or peer review, a small team systematically checks the code. They read the code in detail and look for possible errors and omissions. The problems detected are then discussed at a code review meeting.
■ Agile quality management does not usually rely on a separate quality management team. Instead, it relies on establishing a quality culture where the development team works together to improve software quality.
■ Software measurement can be used to gather quantitative data about software and the software process. You may be able to use the values of the software metrics that are collected to make inferences about product and process quality.
■ Product quality metrics are particularly useful for highlighting anomalous components that may have quality problems. These components should then be analyzed in more detail.
■ Software analytics is the automated analysis of large volumes of software product and process data to discover relationships that may provide insights for project managers and developers.