Module 3-Chapter-3 Quality Management
Module 3-Chapter-3 Quality Management
Module 3-Chapter-3 Quality Management
(22CSE151)
Module 3
Quality management: Software quality, Reviews and inspections, Software measurement and
metrics, Software standards
Software quality
Software standards
Reviews and inspections
Software measurement and metrics
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 on.
SQM is the process of ensuring that software products meet predefined quality
standards and requirements.
The quality management team has to consider whether or not the software is fit for its intended purpose.
This involves answering questions about the system’s characteristics. For example:
Quality management teams should define the standards that are needed by their organization.
Examples of standards - handbook are shown.
Product standards Process standards
Bureaucratic means involving complicated rules and procedures which can cause long delays.
The relationships between ISO 9001, organizational quality manuals, and individual
project quality plans are shown in Figure.
Some software customers demand that
their suppliers should be ISO 9001
certified.
Review planning involves setting up a review team, arranging a time and place for the
review, and distributing the documents to be reviewed.
During review preparation, the team may meet to get an overview of the software to be
reviewed.
Individual review team members read and understand the software or documents and
relevant standards.
During the review meeting, an author of the document or program being reviewed should
‘walk through’ the document with the review team.
Chapter 3 Quality management 53
Pre-review activities
These are preparatory activities that are essential for the review to be
effective.
Typically, pre-review activities are concerned with review planning and
review preparation.
Review planning involves setting up a review team, arranging a time and
place for the review, and distributing the documents to be reviewed.
During review preparation, the team may meet to get an overview of the
software to be reviewed.
Individual review team members read and understand the software or
documents and relevant standards.
They work independently to find errors, omissions, and departures from
standards.
Reviewers may supply written comments on the software if they cannot
attend the review meeting. Chapter 3 Quality management 54
Review meeting
After a review meeting has finished, the issues and problems raised
during the review must be addressed. This may involve fixing
software bugs, refactoring software so that it conforms to quality
standards, or rewriting documents.
Sometimes, the problems discovered in a quality review are such
that a management review is also necessary to decide if more
resources should be made available to correct them.
After changes have been made, the review chair may check that the
review comments have all been taken into account.
Sometimes, a further review will be required to check that the
changes made cover all of the previous review comments.
Frequent delivery
Face to Face Communication with Client
Changes
Disadvantage
Less documentation
Maintenance problem
Possible checks that might be made during the inspection process are shown
Fault class Inspection check
Data faults Are all program variables initialized before their values are used?
Have all constants been named?
Should the upper bound of arrays be equal to the size of the
array or Size -1?
If character strings are used, is a delimiter explicitly assigned?
Is there any possibility of buffer overflow?
Control faults For each conditional statement, is the condition correct?
Is each loop certain to terminate?
Are compound statements correctly bracketed?
In case statements, are all possible cases accounted for?
If a break is required after each case in case statements, has it
been included?
Input/output faults Are all input variables used?
Are all output variables assigned a value before they are output?
Can unexpected inputs cause corruption?
Measure is a number.
A measurement is an indication of the size, quantity,
amount or dimension of a particular attribute of a product
or process.
For example the number of errors in a system is a
measurement.
A Metric is a measurement of the degree that any
attribute belongs to a system, product or process.
For example the number of errors per person
hours would be a metric.
A Software process
is a set of activities
& associated results
which lead to the
production of a
software product.
In management, decision
making is about acting in a
way that meets organizational
goals and objectives.
Chapter 3 Quality management 80
Advantages of Software Metrics
There are two ways in which measurements of a software system may be used:
To assign a value to system quality attributes
Create the quality of the current product or process.
The table summarizes Chidamber and Kemerer’s suite (sometimes called the CK suite)
of six object oriented metrics.
Object-oriented Description
metric
Weighted methods This is the number of methods in each class, weighted by the complexity of each
per class (WMC) method. Therefore, a simple method may have a complexity of 1, and a large
and complex method a much higher value. The larger the value for this metric,
the more complex the object class. Complex objects are more likely to be difficult
to understand. They may not be logically cohesive, so cannot be reused
effectively as superclasses in an inheritance tree.
Depth of This represents the number of discrete levels in the inheritance tree where
inheritance tree subclasses inherit attributes and operations (methods) from superclasses. The
(DIT) deeper the inheritance tree, the more complex the design. Many object classes
may have to be understood to understand the object classes at the leaves of the
tree.
Number of children This is a measure of the number of immediate subclasses in a class. It measures
(NOC) the breadth of a class hierarchy, whereas DIT measures its depth. A high value
for NOC may indicate greater reuse. It may mean that more effort should be
made in validating base classes because of the number of subclasses that
depend on them.
Object-oriented Description
metric
Coupling between Classes are coupled when methods in one class use methods or instance
object classes variables defined in a different class. CBO is a measure of how much coupling
(CBO) exists. A high value for CBO means that classes are highly dependent, and
therefore it is more likely that changing one class will affect other classes in the
program.
Response for a RFC is a measure of the number of methods that could potentially be executed
class (RFC) in response to a message received by an object of that class. Again, RFC is
related to complexity. The higher the value for RFC, the more complex a class
and hence the more likely it is that it will include errors.
Lack of cohesion in LCOM is calculated by considering pairs of methods in a class. LCOM is the
methods (LCOM) difference between the number of method pairs without shared attributes and the
number of method pairs with shared attributes. The value of this metric has been
widely debated and it exists in several variations. It is not clear if it really adds
any additional, useful information over and above that provided by other metrics.