0% found this document useful (0 votes)
16 views

Module 5

Uploaded by

rnitotest1
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Module 5

Uploaded by

rnitotest1
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 36

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

Fig: The place of software


quality in stepwise
Importance of software quality

1. Increasing criticality of software


2. The intangibility of software
3. Accumulating errors during software development
Defining software quality
1. External view of software held by users
2. Identifying faults and find measures for a particular quality faults – the measure may be Direct,
where we can measure the quality directly, or Indirect, where the thing being measured is not the
quality itself, but an indicator that the quality is present.
3. Quality specifications details are:
a. Definition / description: definition of the quality characteristics
b. Scale : the unit of measurement
c. Test: the practical test of the extent to which the attribute quality exists
d. Minimally acceptable: the worst value which might be acceptable if other characteristics
compensated for it, and below which the product would have to be rejected out of hand
e. Target range: the range of values within which it is planned the quality measurement value should
lie
f. Now: the value that applies currently
Defining software quality
Example: Reliability might be measure in terms of:
a. Availability: the percentage of a particular time interval that a system is usable
b. Mean time between failures: the total service time divided by the number of failures
c. Failure on demand: the probability that a system will not be available at the time
required or the probability that ta transaction will fail
d. Support activity: the number of fault reports that are generated and processed.

Other parameters like: maintainability, changeability, analyzability


Software Quality Models – Gravin’s Quality dimensions
Total Quality Management, defined the quality of any product in terms of 8
general attributes of the product.
1. Performance : how well it performs the jobs
2. Feature: how well it supports the required features
3. Reliability: probability of a product working satisfactorily within a specific
period of time
4. Conformance: degree to which the product meets the requirements
5. Durability: measure of the product life
6. Serviceability: speed and effectiveness maintenance
7. Aesthetics: the look and feel of the product
8. Perceived quality: user’s opinion about the product quality
Software Quality Models – McCall’ Model
The software quality is defied in terms of 3 broad parameters
1. Operational characteristics
2. How easy it is to fix defects
3. How easy it is to port it to different platforms
These 3 high-level quality attributes are defined based on the following 11 attributes of the
software:
Correctness, Reliability, Efficiency, Integrity, Usability, Maintainability, Flexibility, Testability, Portability,
Reusability, Interoperability
Software Quality Models – McCall’ Model
These 3 high-level quality attributes are defined based on the following 11 attributes of the software:
1. Correctness: the extent to which a software product satisfies its specifications
2. Reliability: the probability of the software product working satisfactorily over a given duration
3. Efficiency: the amount of computing resources required to perform the required functions
4. Integrity: the extent to which the data of the software product remains valid
5. Usability: the effort required to operate the software product
6. Maintainability: the ease with which it is possible to locate and fix bugs in the software product
7. Flexibility: the effort required to test a software product to ensure that it performs its intended function
8. Testability: the effort required to test a software product to ensure that it performs its intended function
9. Portability: the effort required to transfer the software product from one hardware or software system
environment to another
10. Reusability: the extent to which a software can be reused in other applications
11. Interoperability: the effort required to integrate the software with other software
Software Quality Models – Dromey’s Model
Software product
quality depends on 4
high-level properties
of the software:
Correctness,
internal
characteristics,
contextual
characteristics and
certain descriptive
properties
Software Quality Models – Boehm’s Model
Software product
quality depends on 3
high-level
characteristics that
are important for the
users of the software:
As-is utility,
Maintainability,
Portability
ISO 9126
Different needs people have different interest in software quality.
1. Acquirers-who are obtaining software from external suppliers
2. Developers-who are building a software product
3. Independent evaluators-who are assessing the quality of a
software product, not for themselves but for a community of
users
ISO 9126 has separate documents to cater for these 3 sets of
needs
ISO 9126
The elements that are contributing for “Quality in use” attribute-
1. Effectiveness: the ability to achieve user goals with accuracy
and completeness
2. Productivity: avoiding the excessive use of resources, such as
staff effort, in achieving user goals
3. Safety: within reasonable levels of risk of harm to people and
other entities such as business, software, property and the
environment
4. Satisfaction: smiling users
ISO 9126
ISO 9126 identifies 6 major external software quality characteristics:
1. Functionality – which covers the functions that a software product
provides to satisfy user needs
2. Reliability- which relates to the capability of the software to maintain its
level of performance
3. Usability- which relates to the effort needed to use the software
4. Efficiency- which relates to the physical resources used when the
software is executed
5. Maintainability – which relates to the effort needed to make changes to
the software
6. Portability – which relates to the ability of the software to be transferred
to a different environment
ISO 9126
ISO9126 suggests sub-characteristics for each of the primary
characteristics-
Sl.No. Characteristics Sub-Characteristics
1 Functionality Suitability, Accuracy, Interoperability, Functionality compliance, Security
2 Reliability Maturity, Fault tolerance, Recoverability, Reliability compliance
3 Usability Understandability, Learnability, Operability, Attractiveness, Usability compliance
4 Efficiency Time behavior, Resource utilization, Efficiency compliance
5 Maintainability Analyzability, Changeability, Stability, Testability, Maintainability compliance
6 Portability Adaptability, Installability, Coexistence, Replaceability, Portability compliance
Product and Process Metrics
Compare
1. Product metrics help measure the characteristics of a product being
developed.
Ex: LOC and function point metrics – used to measure size
PM(person-month) metrics – used to measure the effort required to
develop a product and the time required to develop the product is
measured in months.
2. Process metrics help measure how a development process is performing.
Ex: Review effectiveness, average number of defects found per hour of
inspection, average defect correction time, productivity, average number
of failures detected during testing per LOC, number of latent defects per line
of code in the developed product.
Product versus Process Quality Management
Quality Management Systems
BS EN ISO 9001: 2000
The standard is built on a foundation of the following principles:
1. Understanding the requirements of customers so that they can be met, or even exceeded
2. Leadership to provide the unity of purpose and direction needed to achieve quality
objectives
3. Involvement of staff at all levels
4. A focus on the individual processes which create intermediate or deliverable products and
services
5. A focus on the systems of interrelated processes that create delivered products and
services
6. Continuous improvement of processes
7. Decision making based on factual evidence
8. Building mutually beneficial relationships with suppliers
Quality Management Systems
BS EN ISO 9001: 2000
The activities involved in the application of ISO principles:
1. Determine the needs and expectations of the customers
2. Establishing a quality policy, that is, a framework which allows the organization’s objectives in
relation to quality to be defined
3. Design of the processes which will create the products (or deliver the services) which will have the
qualities implied in the organization’s quality objectives
4. Allocation of the responsibilities for meeting these requirements for each element of each process
5. Ensuring that resources are available to execute these processes properly
6. Design of methods for measuring the effectiveness and efficiency of each process in contributing to
the organization’s quality objectives
7. Gathering of measurements
8. Identification of any discrepancies between the actual measurements and the target values
9. Analysis and elimination of the causes of discrepancies
Process Capability Models
Earlier the primary means of realizing quality products was by undertaking extensive testing of
the finished products. Later shifted from product assurance to process assurance. Therefore,
all modern quality assurance techniques focus on providing sufficient guidance for
recognizing, defining, analyzing, and improving the process.
• Good documentation process
• Continuous incorporation of new tools and techniques and Total Quality Management
(TQM) improvement process
• BPR – Business Process Reengineering aims at reengineering the way business is carried
out in an organization.
• The models are:\
1. SEI- Software Engineering Institute - Capability Maturity Model (CMM)
2. CMMI – Capability Maturity Model Integration
3. Personal software Process (PSP)
4. Six Sigma
Process Capability Models - SEI- Software Engineering Institute -
Capability Maturity Model (CMM)
• CMM is a reference model for appraising a software development organization into one of
5 process maturity levels.
• The maturity level of an organization is a ranking of the quality of the development process
used by the organization. This information can be used to predict the most likely outcome
of a project that the organization undertakes
• SEI CMM can be used in 2 different ways – 1. Capability evaluation, 2. Software process
assessment
• Capability evaluation concerns assessing the software process capability of an
organization and is administrated by the contract awarding authority and the results are
indicative of the contractor performance.
• Software process assessment is for improving process capability. Here, the quality level is
assessed by a team of assessors coming into an organization and interviewing the key
staff about their practices, using a standard questionnaire to capture information.
Process Capability Models - SEI- Software Engineering Institute -
Capability Maturity Model (CMM)
SEI CMM classifies software development organizations into 5 maturity levels:
Level-1: Initial: a software development organization is characterized b haphazard activities
by the members of project teams.
Each developer is free to follow any process and when such person leaves the organization,
the new incumbent faces great difficulty in understanding the process, consequently time
management issue arise. This may lead for short cuts which ends up with low quality products.
Level-2: Repeatable: Organizations usually practice some basic project management
practices such as
• planning and tracking cost and schedule,
• configuration management tools to keep the deliverable items under configuration control
Such organizations can repeat its success on one process on other similar projects

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

The general principles behind the Fagan Method:


1. Inspections are carried out on all major deliverables
2. All types of defect are noted-not just logic or function errors.
3. Inspections can be carried out by colleagues at all levels except the very top
4. Inspections are carried out using a predefined set of steps
5. Inspections meetings do not last for more than 2 hrs
6. The inspection is led by a moderator who has had specific training in the technique
7. The other participants have defined roles
8. Checklists are used to assist the fault-finding process
9. Material is inspected at an optimal rate of about 100 lines an hr
10. Statics are maintained so that the effectiveness of the inspection process can be monitored
Techniques to Enhance Software Quality - Structured
programming and clean-room software development
With this type of development there are 3 separate teams:
1. A specification team – which obtains the user requirements and also a usage profile
estimating the volume of use for each feature in the system
2. A development team – which develops the code but which does no machine testing of the
program code produced
3. A certification team – which carries out testing
Techniques to Enhance Software Quality – Software Quality
circles
Staff are involved in the identification of sources of errors through the formation of quality
circles. These can be set up in all departments of an organization, including those producing
software where they are known as Software Quality Circles- SWQC

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

You might also like