Module 5
Module 5
Software Quality:
Introduction,
The place of software quality in project planning,
Importance of software quality,
Defining software quality,
quality models,
ISO 9126,
product and process metrics,
product versus process quality management,
Quality Management systems,
process capability models,
techniques to enhance software quality
testing, Software reliability, quality plans. [ refer text book as it is]
Textbook 2: Chapter 13: (13.1 to 13.14) [Page 334]
Text book 2: Bob Hughes, Mike Cotterell, Rajib Mall: Software Project
Management, 6th Edition, McGraw Hill Education, 2018.
The place of software quality in project planning
Quality assurance is
important at every stage
of the project
Step1: identify project scope
and objectives
Step2: identify project
infrastructure
Step3: analyze project
characteristics
Level-3: Defend: the processes for both management and development activities are defined
and documented. There is a common organization-wide understanding of activities, roles and
responsibilities. The organization builds up the capabilities of its employees through periodic
training programs.
Process Capability Models - SEI- Software Engineering Institute -
Capability Maturity Model (CMM)
Level 4: Manage Organizations: effectively manage development tasks by collecting
appropriate process and product metrics. Quantitative quality goals are set for the products
and processes and are verified during completion.
Level 5: Optimizing Organizations: organizations not only collect process and product metrics
but also analyze them to identify scopes for improving and optimizing the various development
and management activities. These organizations strive for continuous process improemnt.
Process Capability Models - Capability Maturity Model Integration (CMMI)
CMMI key process areas:
Process Capability Models - Capability Maturity Model Integration (CMMI)
ISO 15504 framework for
process capability
Process Capability Models – Implementing process improvement
Project as a ‘closed
box’
Process Capability Models – Implementing process improvement
Process Diagram
Process Capability Models – Personal Software Process (PSP)
Schematic
representation of
PSP
Process Capability Models – Personal Software Process (PSP)
PSP Levels
Techniques to Enhance Software Quality
Themes of software quality are:
1. Increasing visibility
2. Procedural structure
3. Checking intermediate stages
Techniques are:
4. Inspection
5. Structured programming and clean-room software development
6. Formal methods
7. Software quality circles
8. Lessons learnt reports
Techniques to Enhance Software Quality - Inspection
Inspections can be applied to documents produced at any development stage
1. It is very effective way of removing superficial errors
2. It motivates developers to produce better structured and self-explanatory software
3. It helps spread good programming practices as the participants discuss specific pieces of
code
4. It can enhance team spirit
A quality circle is a group of 4-10 volunteers working in the same area who meet, to identify,
analyze and solve their work-related problems. One will be group leader, facilitator. To make
the quality circle work effectively, training needs to be given
Techniques to Enhance Software Quality – Lessons Learnt Reports
Organization can improve its performance is by reflecting on the performance of a project at its
immediate end when the experience is still fresh. This reflections may identify lessons to be
applied to future projects.
Project managers are required to write a lessons learnt report at the end of the project.
Testing
V-Process model
Verification versus validation
Verification is the process of determining whether the output of one phase of software
development conforms to that of its previous phase. Validation is the process of determining
whether fully developed software conforms to its requirements specification. Objective of
verification is to check if the artifacts produced after a phase conforms to that of the previous
phase. Validation is applied to the fully developed and integrated software to check if it
satisfies the customer’s requirements. The primary technique used for verification include
review, simulation and formal verification. Validation techniques are primarily based on product
testing
Verification is carried out during the development process to check if the development
activities are being carried out correctly, where as validation is carried out towards the end of
the development process to check if the right product as required by the customer has been
developed. Verification techniques can be viewed as an attempt to achieve phase containment
of errors that are acknowledged to be a cost-effective way to eliminate program bugs, and
accepted as an important software engineering principle.
END