CMU-CS 462:
Software Measurement
and Analysis
Lecture-10 Spring 2021-2022
Measuring External Product Attributes:
Software Quality (1)
Dr. Anand Nayyar
anandnayyar@duytan.edu.vn
06/11/2024
Contents
1. Software quality
2. Software quality models: Boehm’s
model, McCall’s model, ISO 9126
model, etc.
3. Software quality standards and metrics
4. Measuring customer satisfaction
5. Software quality assurance (SQA)
6. Software quality management
What is Quality?
Quality popular views:
Something “good” but not
quantifiable
Something luxury and
classy
Quality professional
views:
Conformance to requirement
(Crosby, 1979)
Fitness for use (Juran, 1970)
Software Quality:
Difficulties
Need to account for
“creativity” in the “design” of Leonard
o da
the product and the Vinci
Mona Lisa
“requirements” rather than the (1479)
product itself.
Kind of art …
Which one has a higher Pablo Picasso
quality? Dorra Maar
(1937)
What is Software Quality? /1
Conformance to requirement
The requirements are clearly stated and
What is
the product must conform to it
Specified
Any deviation from the requirements
What is regarded as a defect
SW
does What A good quality product contains fewer
defects
users
Fitness for use
need Fit to user expectations: meet user’s needs
A good quality product provides better
user satisfaction
Both Dependable computing system
What is Software Quality? /2
Various viewpoints/perspectives:
Conformance to customers’ requirements
Requirement, design and development quality
Process quality vs. end-product quality
Process quality: higher usability and dependability
End-product quality: less failure
Internal vs. external characteristics
Relativity: advantage over similar products
Conformance: conformance to standards
Definition: Software Quality
ISO 8402 definition of quality:
The totality of features and characteristics of a
product or a service that bear on its ability to
satisfy stated or implied needs
ISO 9126 definition of quality:
The totality of features and characteristics of a
software product that bear on its ability to satisfy
stated or implied needs
Software Quality: Classification
By observation:
Internal quality (quality while the product is
being produced, including process and checks)
External quality (final product quality)
By process:
Design quality
Implementation quality
Test quality
Maintenance quality
Modeling Software Quality
Purpose: To make the concept “quality”
operational via refinement and measurement
Selecting some attributes (or factors)
Plotting relationship among attributes (many-to-
many relationships)
or
Selecting some criteria (or intermediate and
primitive constructs) to represent the attributes
Mapping criteria (or primitive constructs) to
metrics
Quality Model –
Structure
SW Quality
User oriented
Quality Quality Quality
Factor 1 Factor 2 ... Factor n
Quality Quality Quality Quality
Criterion Criterion Criterion ... Criterion
1 2 3 m
Software oriented
Measures
Example: Attribute Expansion
Design by measurable Quality objective
objectives:
Incremental design is
Availability
evaluated to check whether User friendliness
the goal for each
increment was achieved.
% of planned Days on job to
System uptime learn task supplied
By new system
Worst: 95% Worst: 7 days
Best: 99% Best: 1 day
Example: CUPRIMDA Model
Quality parameters
(parameters for
fitness):
Capability
Usability
Performance
Reliability
Installability
Maintainability
Documentation Reference: S.H. Kan (1995)
Availability
Example: Boehm’s Model
Figure from Fenton’s Book
Example: McCall’s Model
(11) (25) (41)
Figure from Fenton’s Book
McCall Model Elements
McCall quality model is organized
around three types of Elements:
Quality Factors (To specify): They
describe the external view of the
software, as viewed by the users.
Quality Criteria (To build): They
describe the internal view of the
software, as seen by the developer.
Quality Metrics (To control): They are
defined and used to provide a scale and
method for measurement.
SATC* Software Quality Model
*Software Assurance
Technology Center
(1996)
NASA Goddard Space
Flight Center
Quality Model: ISO
9126
Flexible Quality Model
No need to stick to a fixed (published)
model.
You can define your own quality model
based on users (customers and company)
consensus. The model will be composed of
quality attributes which are important for
the given product.
The model should be verified by
actual measurement.
Process-oriented Quality Models
Purpose: To characterize process quality
Measure process and product attributes
Examples of Process Attributes:
Effort (person-months)
Duration (months)
Examples of Product Attributes:
Code size (#classes)
Test set size (#test cases)
Correctness (#defects)
Example: Defect Distributions
Combination of (i) defect number,
(ii) injection to detection period,
and (iii) defect origin can be used
to measure development (process)
quality.
Goal: Reduce number of defects
# Defects
that cross process step boundaries
Process activity
of defect discovery
# Coding defects
# Design defects
# Requirements spec. defects
Effort Distribution
Development effort
distribution over process
steps should make rework
# Person-hours
shares explicit.
Goal: Detect and reduce
rework.
Design Tes
t Test triggered rework on Design and
Coding
Code
Process Activity Coding triggered rework on Design
Normal effort of activity
Software Quality Standards
Software Quality Standards
Software quality management standards (e.g.,
ISO 9000 series)
covered in SENG 511
Software process quality assessment standards
(e.g., ISO15504 / SPICE)
covered in SENG 511
Software quality measurement standards (e.g.,
ISO 9126)
explained here
ISO 9126: Parts
ISO/IEC 9126-1:2001 Software engineering --
Product quality -- Part 1: Quality model
ISO/IEC TR 9126-2:2003 Software engineering --
Product quality -- Part 2: External metrics
ISO/IEC TR 9126-3:2003 Software engineering --
Product quality -- Part 3: Internal metrics
ISO/IEC TR 9126-4:2004 Software engineering --
Product quality -- Part 4: Quality in use metrics
Definition
Software Quality Characteristics
ISO 9126:
“A set of attributes of a software product by which
its quality is described and evaluated. A software
quality characteristic may be refined into multiple
levels of sub-characteristics.”
ISO 9126: Quality
Lifecycle
Internal metrics do not rely on software execution
( static measures)
External metrics are applied to running software
Quality-in-use metrics are applied when the final
product is used in real conditions
Ideally, internal quality
determines external
quality and external
quality determines quality
in use.
ISO 9126 – Internal & External Base
Measures
34 38
ISO 9126: Quality-in-
Use
Effectiveness
The capability of the software product to enable users to
achieve specified goals with accuracy and completeness
in a specified context of use.
Productivity
The capability of the software product to enable
users to expend appropriate amounts of resources in
relation to the effectiveness achieved in a specified
context of use.
ISO 9126: Quality-in-
Use
Safety
The capability of the software product to achieve
acceptable levels of risk of harm to people, business,
software, property or the environment in a specified
context of use.
Satisfaction
The capability of the software product to satisfy users in
a specified context of use.
ISO 9126: Quality-in-
Use /2
Quality Model: ISO 9126 /3
Characteristics Attributes
Functionality Suitability Interoperability Accuracy
Compliance Security
1 : n relation
between Reliability Maturity Recoverability Fault
Characteristics tolerance
and Crash frequency
Attributes (Sub-
Usability Understandability Learnability Operability
Characteristics)
Efficiency Time behaviour Resource behaviour
Maintainability Analyzability Stability Changeability
Testability
Portability Adaptability Installability Conformance
Replacability
ISO 9126 – Views
Users
Managers Developers
ISO 9126: Users’ View
Users are mainly interested in using the software, its
performance and the effects of using the software.
Users evaluate the software without knowing the internal
aspects of the software, or how the software is developed.
Users’ questions may include:
Are the required functions available in the software?
How reliable is the software?
How efficient is the software?
Is the software easy to use?
How easy is to change this software?
ISO 9126: Developers’
View
The process of development requires the user and the developer
to use the same software quality characteristics, since they
apply to requirement and acceptance.
Since developers are responsible for producing software which
will satisfy quality requirements they are interested in the
intermediate product quality as well as in the final product quality.
ISO 9126: Managers’
View
A manager is typically more interested in the
overall quality rather than in a specific quality
characteristic, and for this reason will need to
assign weights, reflecting business requirements,
to the individual characteristics.
The manager may also need to balance the quality
improvement with management criteria such as
schedule delay or cost overrun, because he/she
wishes to optimise quality within limited cost,
human resources and time-frame.
Quality Model: ISO
9126
Quality Model: ISO
9126
Characteristics Attributes
Functionality Suitability Interoperability Accuracy
Compliance Security
Reliability Maturity Recoverability Fault tolerance
Crash frequency
Usability Understandability Learnability Operability
Efficiency Time behaviour Resource behaviour
Maintainability Analyzability Stability Changeability
Testability
Portability Adaptability Installability Conformance
Replacability
ISO 9126: 1. Functionality
Suitability: Attributes of software that bear on the presence
and appropriateness of a set of functions for specified tasks.
Accuracy: Attributes of software that bear on the provision of
right or agreed results or effects.
Interoperability: Attributes of software that bear on its
ability to interact with specified systems.
Compliance: Attributes of software that make the software
adhere to application related standards or conventions or
regulations in laws and similar prescriptions.
Security: Attributes of software that bear on its ability to
prevent unauthorized access, whether accidental or
deliberate, to programs and data.
ISO 9126: 2. Reliability
ISO 9126: 3. Usability?
ISO 9126: 4. Efficiency
Efficiency: The extent to which a product or
process can operate using the fewest
possible resources.
Time behaviour: Attributes of software that bear on
response and processing times and on throughput rates
in performing its function.
Resource behaviour: Attributes of software that bear on
the amount of resources used and the duration of such use
in performing its function.
ISO 9126: 5. Maintainability
Analysability: Attributes of software that bear on
the effort needed for diagnosis of deficiencies or
causes of failures, or for identification of parts to be
modified.
Changeability: Attributes of software that bear on
the effort needed for modification, fault removal or
for environmental change.
Stability: Attributes of software that bear on the
risk of unexpected effect of modifications.
Testability: Attributes of software that bear on the
effort needed for validating the modified
software.
ISO 9126: 6. Portability
Discussion in Group of 4 students
What is Customer satisfaction?
Customer satisfaction models?
References and Assignment
Fenton, N., and Bieman, J. (2014). Software Metrics: A Rigorous and
Practical Approach 3rd. Boca Raton FL, US: CRC press (442-471)
Kan, S. H. (2002). Metrics and Models in Software Quality
Engineering. Addison-Wesley Longman Publishing Co., Inc.(426-437)
Watch the video on the link and do the Quiz in this link.
Capture the result and upload the image on Assignment 10.
https://study.com/academy/lesson/measuring-customer-satisfaction-to-improve-rete
ntion.html#lesson