Software Quality Management
Software Quality Management
Quality
Management
What is quality?
Quality, simplistically, means that a product
should meet its specification.
This is problematical for software systems
Quality planning
Quality control
Process-based quality
Importance of standards
Standards development
ISO 9000
ISO 9001
Management responsibility
Control of non-conforming products
Quality system
Design control
Proces s control
Contract review
Corrective action
Document control
Quality records
Training
Servicing
Statistical techniques
Documentation standards
Particularly important - documents are the tangible
manifestation of the software.
Documentation process standards
Document standards
Document standards
Document identification standards
- How documents are uniquely identified.
Quality planning
Quality plans
Quality plan structure
- Product introduction;
- Product plans;
- Process descriptions;
- Quality goals;
- Risks and risk management.
Understandability
Portability
Security
Testability
Usability
Reliability
Adaptability
Reusability
Resilience
Modularity
Efficiency
Robustness
Complexity
Lea rnability
Quality control
- Quality reviews;
- Automated software assessment and software
measurement.
Quality reviews
Types of review
Review type
Principal purpose
Design or program
inspections
Progres s reviews
Quality reviews
Quality reviews
Review functions
Quality reviews
Review results
Comments made during the review should be
classified
Software metric
Metrics assumptions
Data collection
A metrics programme should be based on
set of product and process data.
Data should be collected immediately (not
retrospect) and, if possible, automatically.
Three types of automatic data collection
- Static product analysis;
- Dynamic product analysis;
- Process data collation.
Data accuracy
Dont collect unnecessary data
Product metrics
A quality metric should be a predictor of
product quality.
Classes of product metric
Description
Fan in/Fan-out
Fan-in is a measure of the number of functions or methods that call some other function
or method (say X). Fan-out is the number of functions that are called by function X. A
high value for fan-in means that X i s tightly coupled to the res t of the des ign and
changes to X will have extensive knock-on effects. A high value for fan-out suggests
that the overall complexity of X m ay be high because of the comp lexity of the control
logic needed to coordinate the called comp onents.
Le ngth of code
This is a measure of the size of a program. Generally, the larger the size of the code of a
component, the more complex and error-prone that component is likely to be. Length of
code has been shown to be one of the most reliable metrics for predicting errorpronenes s in components.
Cyclomatic complexity This is a m easure of the control complexity of a p rogram. This control complexity may
be related to program understandability. I discuss how to compute cyclomatic
complexity in Chapter 22.
Le ngth of identifiers
This is a measure of the average length of distinct identifiers in a p rogram. The longer
the identifiers, the mo re likely they are to be m eaningful and hence the mo re
understandable the program.
Depth of conditional
nesting
Fog index
This is a measure of the average length of words and sentences in documents. The higher
the value for the Fog index, the more difficult the document is to understand.
Object-oriented metrics
Object-oriented Description
metric
Dep th of inhe ritance This represents the nu mber of discrete levels in the inher it ance tree whe re subtree
classes inhe rit attributes and oper ation s (methods ) from supe r-classes. The
deep er the inhe rit ance tree, the more complex the design . Many di fferent ob ject
classes may have to be unde rstood to unde rstand the ob ject classes at the leaves
of the tree.
Method fan-in/fanout
This is dir ectly related to fan-in and fan-ou t as described above and means
essentially the same thing. How ever, it m ay be appropr iate to make a
distinction between calls from other methods within the obj ect and calls from
external method s.
Weighted methods
per class
This is the number of method s that are included in a class we ighted by the
complexity of each method. The refore, a simple method may hav e a complexity
of 1 and a large and complex method a much high er value. The larger the value
for this metric, the more complex the ob ject c lass. Comp le x ob jects are more
li kely to be more difficult to under stand . They may not be logicall y cohes ive so
canno t be reused effectively as sup er-classes in an inhe rit ance tree.
Number of
ove rriding
ope rations
This is the number of ope rations in a super -class that are ove r-ridden in a sub class. A high va lue for this metric indicates that the super-class used may no t be
an appropr iate parent for the sub-class.
Measurement analysis
Measurement surprises
Key points
Key points