Lec 02 SQA
Lec 02 SQA
LI
UA MS-15
Q
R E G
A RIN Dr Muhammad
TW E Abbas
F I NE
SO NG E 2
E TURC
LE
CHAPTER-2
WHAT IS SOFTWARE QUALITY?
QUALITY
OVERVIEW
Quality: Perspectives and Expectations
Quality Frameworks and ISO-9126
Correctness and Defects: Definitions,
Properties, and Measurements
A Historical Perspective of Quality
What Is Software Quality?
3
OVERVIEW
What is software quality?, could be many different
answers
What are the characteristics for high-quality
software? An alternative question
We attempt to define software quality by defining
the expected characteristics of high-quality software
For this we need to:
examine different perspectives & expectations of users & other
people
examine the individual characteristics associated with quality
and their inter-relationships
focus our attention on the critical characteristics of functional
correctness
Examine the individual characteristics associated with quality (e.g.
reliability, functionality, efficiency) and their inter-relationships for
example how functionality is related to reliability or how reliability is
related to efficieny
4
SO WHAT IS QUALITY?
Software quality
may include many different attributes and
may be defined and perceived differently based on peoples
different roles and responsibilities
We adopt the correctness-centered view of
quality, that is,
high quality means none or few problems
of limited damage to customers
5
CONT
Quality is defined as the products or services capability to
meet customer expectations.
Quality that is defined as a matter of products and services
whose measurable characteristics satisfy a fixed
specification.
Quality is defined as conformance to requirements.
Quality consists of those product features which meet the
need of customers and there by provide product
satisfaction.
Quality is multidimensional. some aspects of quality can be
measured. Example: Maximum speed, fuel, economy etc.
CONT
9
EXTERNAL CHARACTERISTICS
Correctness- Degree to which system is free from
faults in specification, design and implementation.
Usability- The Ease with which users can learn and
use the system.
Efficiency- Minimal use of system resource
including memory and execution time.
Reliability- The ability of a system to perform
whenever required without/with few failures.
Integrity- Prevention of unauthorized or improper
use.
Adaptability-Usability in other application than the
original one.
Accuracy- Degree of quantitative correctness.
Robustness- Functioning of system in presence of
invalid inputs, stress
environment.
INTERNAL CHARACTERISTICS
Maintainability: Ease of modifying
software for changing/adding capabilities,
improving performance.
Flexibility: Extend of modifying system for
other uses/environments.
Portability: Ease of modifying system for
operating in different environment.
Reusability: Extend of using parts in other
systems.
CONT
External:
What a systems user is interested
in; typically properties of any single
particular system.
Internal:
What programmers/management
are interested in; properties of the
development of a collection of systems.
TECHNIQUES FOR IMPROVING SQ
Explicit software quality objectives.
Explicit quality assurance activities.
Testing strategy.
Software Engineering guidelines.
Informal technical reviews.
Formal technical reviews.
External audits.
Development process.
CONT
1
7
EXTERNAL/INTERNAL VIEW
External view Consumers perspective
who are more concerned with the external behavior
Internal view Producers perspective
because they are typically familiar with or at least aware
of various internal characteristic of the product
In other words:
External view mostly sees a software system as a black
box
Because one can observe its behavior but not see
through inside
Internal view mostly sees it as a white box
Because one can see what is inside and how it works
1
8
PEOPLES ROLES AND
RESPONSIBILITIES
Consumers of software products or services,
including customers and users, either internally
or externally., who are responsible for the
acquisition of software products or services, and
who use the software products or services. (Dual
roles)
We can also extend the concept of users to include
such non-human or invisible users as other
software, embedded hardware, and the overall
operational environment that the software
operates under and interacts with (Whittaker,
2001).
Producers of software products, or anyone
involved with the development, management,
maintenance, marketing, and service of software
products.
PEOPLES ROLES AND
ItRESPONSIBILITIES
can also include third-party
participants who may be involved in
add-on products and services, software
packaging, software certification,
fulfilling independent verification and
validation (IV&V) responsibilities etc.
External view mostly sees a software
system as a black box, where one can
observe its behaviour but not see
through inside; while the internal view
mostly sees it as a white box, or more
appropriately a clear box, where one
can see what is inside and how it works.
CONSUMER EXPECTATIONS
FOR DIFFERENT SOFTWARE
General: functionality and reliability
Usability: GUI based products, plug-and-play
Interoperability: embedded systems (smooth
operation and interaction between the
software and these non-human users)
Safety: safety-critical systems
QUALITY EXPECTATIONS ON THE
CONSUMER SIDE 1/2
a
Basic quality expectation of a user -
software system performs useful
functions as it is specified
Two basic elements to this expectation:
It performs the right functions as specified -
fits the users needs
It performs these specified functions
correctly - performs its functions reliably
Related concepts to these two basic elements:
Validation
Verification
Other expectations:
Usability, ease of installation inter-
operability and adaptability etc 2
3
QUALITY EXPECTATIONS ON THE
CONSUMER SIDE 2/2
Difference in priority on expectations:
For many users especially novice users:
Usability, ease of installation
For non-human users: inter-operability and
adaptability, so that the software can work
well with others and within its surrounding
environment
Differing quality expectations of a
customer & users:
Basic expectations of customers are similar
to that of a user, with the additional
concerns what are those concerns?
2
4
QUALITY EXPECTATIONS ON THE
PRODUCER SIDE
For software producers
the most fundamental quality question is to fulfill their
contractual obligations
For product and service managers:
adherence to pre-selected software process and
relevant standards,
proper choice of software methodologies,
languages, and good design,
integrity of product components and reduce coupling
Tools, may be closely related to quality
For other people on the producer side:
their different concerns may also produce different
quality views and expectations, for example:
usability and modifiability may be paramount for people
involved with software service
maintainability for maintenance personnel
portability for third-party participants,
profitability and customer value for product marketing 2
5
QUALITY EXPECTATIONS ON THE
PRODUCER SIDE
Contractual Obligations: conform to product
specifications or providing services that conform
to service agreement
Software methodologies, languages, and
tools: For product and service managers,
adherence to pre-selected software process and
relevant standards, proper choice of software
methodologies, languages, and tools, as well as
other factors, related to quality.
They are also interested in managing and satisfying
users quality expectations, by translating such
quality expectations into realistic quality goals
that can be defined and managed internally,
selecting appropriate and effective QA strategies
QUALITY EXPECTATIONS ON THE
PRODUCER SIDE
Producer quality views: people on the producer
side, their different concerns may also produce quality
views and expectations different
For example, usability and
modifiability may be paramount for
people involved with software service,
maintainability for maintenance
personnel, portability for third-party or
software packaging service providers,
and profitability and customer value
for product marketing
QUALITY FRAMEWORKS
Various models or frameworks have been
proposed to accommodate these different
quality views and expectations,
define quality and related attributes,
features, characteristics, and
measurements.
ISO-9 126 (ISO, 2001), the mostly
influential one in the software engineering
community today, and discuss various
adaptations of such quality frameworks for
specific application environments.
Causal relationship from intangible quality
views to tangible software measures
28
QUALITY STANDARDS AND
FRAMEWORKS
Two approaches to software that can be
followed to ensure software quality:
Process based: assurance of the process by which a product is
developed (ISO 9001, ISO 9000-3 provides guidelines for the
application of the ISO 9001)
Product based: the evaluation of the quality of the end
product (ISO 9126).
Both approaches are important and both require
the presence of a system for managing quality.
QUALITY FRAMEWORKS
Two main approaches:
Standard Models:
ISO 9126
McCall
Application or company specific quality
models (adaptations of standard models for
specific application environments)
FURPS
GQM Approach
30
ISO-9126 QUALITY
FRAMEWORK
ISO 9126 is the software product evaluation
standard from International Organization for
Standardization (ISO)
ISO-9126 is the most influential one in the
Software Engineering community
ISO-9126 provides a hierarchical framework
for quality definition, organized into quality
characteristics and sub-characteristic
Characteristics of quality software product
(with minimal overlap).
There are six top-level quality characteristics,
with each associated with its own exclusive
(non-overlapping) sub-characteristics
ISO-9126 QUALITY
FRAMEWORK
Functionality: A set of attributes that bear on the
existence of a set of functions and their specified
properties. The functions are those that satisfy
stated or implied needs. The sub-characteristics
include:
Suitability- to the users needs
Accuracy- of results
Interoperability- with other systems
Security- against unintended access
Reliability: A set of attributes that bear on the
capability of software to maintain its level of
performance under stated conditions for a stated
period of time. The sub-characteristics include:
Maturity- frequency of failures
Fault Tolerance- performance in case of faults
Recoverability- of functionality and data loss
ISO-9126 QUALITY
FRAMEWORK
Usability: A set of attributes that bear on the
effort needed for use, and on the individual
assessment of such use, by a stated or implied
set of users. The sub characteristics include:
- Understandability
- Learnability
- Operability
Efficiency: A set of attributes that bear on the
relationship between the level of performance of
the software and the amount of resources used,
under stated conditions. The sub-characteristics
include:
- Time behavior
- Resource behavior
ISO-9126 QUALITY
FRAMEWORK
Maintainability: A set of attributes that bear on
the effort needed to make specified
modifications. The sub-characteristics include:
- Analyzability- effort for diagnosis
Changeability- ease of modification
Stability- after change
Testability- effort required for testing after
change
Portability: A set of attributes that bear on the
ability of software to be transferred from one
environment to another. The sub-characteristics
include:
- Adaptability
- Installability
- Conformance
- Replaceability
ISO-9126: HOW IS IT USED?
42
GQM BY SOFTWARE ENGINEERING LAB AT
THE NASA
A measurement program can be more
successful if designed with the goals in
mind
GQM approach provides a framework
with 3 steps:
List the major goals of the development /
maintenance project
Derive from each goal the questions that
must be answered to determine if the goals
are being met
Decide what must be measured to answer
the questions adequately
43
GQM BY SOFTWARE ENGINEERING LAB AT
THE NASA
Example:
Defect:
Generally refers to some problem, either
with external behavior or with internal
characteristics
error/fault/failure are collectively referred to
as defects
Bug/debug:
not good terms, avoid
People have raised moral or philosophical
objection to the use of bugs as evading
responsibility for something people
committed
Instead use defect detection & removal 49
EXAMPLE: ERROR, FAULT, FAILURE
50
ERROR, FAULT, FAILURE: RELATION
51
ERROR, FAULT, FAILURE: RELATION
52
CORRECTNESS-CENTERED PROPERTIES AND
MEASUREMENTS - EXTERNAL
With Correctness-centered approach, the
consumers concern is that the no failure, or few
failures with min impact
This concern can be captured by:
Failure Properties and Direct Failure Measurement
- Failure Properties include:
Information about specific failures, what they are,
how they occur etc.
Failure count, distribution, density etc.
Failure Likelihood and Reliability Measurement:
How often or how likely
Failure Severity Measurement and Safety
Assurance: Failure impact
All these will be discussed in detail in later
chapters 53
CORRECTNESS-CENTERED PROPERTIES AND
MEASUREMENTS - INTERNAL
Fault Properties and Related
Measurement
Individual faults: types, relation to specific
failures, their causes, time, and injection
circumstances
Collective faults: distribution and density
over development phases and different
software components
54
CORRECTNESS-CENTERED PROPERTIES AND
MEASUREMENTS
55
THE FURPS MODEL (1987)
Hewlett-Packard developed a set of
software quality factors that make up its
name FURPS.
The FURPS model takes five characteristics
of quality attributes:
71