4 Software Quality Engineering Video
4 Software Quality Engineering Video
SOFTWARE QUALITY-II
1 11/04/2024
Last Lecture
Quality
Quality Types
Quality Control
Quality Engineering
Different views of Quality
Quality Models
2 11/04/2024
Topics to Cover
Quality Models
ISO 9126
FURPS
Boehm’s
GQM
Cost of Quality
Prevention Cost
Appraisal Cost
Failure Cost
Quality Cost Conformance Model
3 11/04/2024
Quality Models
A Quality Model is defined as, “ the set of characteristics
and the relationships between them which provides the
basis for specifying quality requirements and evaluating
quality”
4 11/04/2024
McCall’s Factor-Criteria-Metrics Model
Classification into :
Factors (to specify):
They describe the external view of the software, as viewed by the
users.
Criteria (to build):
They describe the internal view of the software, as seen by the
developer.
Metrics (to control):
They are defined and used to provide a scale and method for
measurement.
5 11/04/2024
McCall’s Quality Factors and Criteria
McCall, Richards, and Walters studied the concept of software quality in
terms of two key concepts as follows:
quality factors, and
quality criteria.
A quality factor represents the behavioral characteristic of a system.
Examples: correctness, reliability, efficiency, testability, portability,
maintainability etc.
A quality criterion is an attribute of a quality factor that is related to
software development.
Example: Modularity is an attribute of the architecture of a software
system. A highly modular software allows designers to put cohesive
components in one module, thereby increasing the maintainability of the
system.
6 11/04/2024
McCall’s Factor Model Tree
The McCall Model aimed at system
developers
It is used during development
process
It identifies 3 areas of software work:
Product Revision (ability to undergo
changes)
Product Transition (adaptability to
new environments)
Product Operation (its operation
characteristics)
Doesn’t say much about
Functionality
7 11/04/2024
McCall’s 11 Quality Factors
Product Revision
Maintainability - Can I fix it?
Flexibility - Can I change it?
Testability - Can I test it?
Product Transition
Portability - Will I be able to use on another
machine?
Reusability - Will I be able to reuse some of
the software?
Interoperability - Will I be able to interface
it with another application?
Product Operation
Correctness - Does it do what I want?
Reliability - Does it do it accurately all the
time?
Efficiency - Will it run on my machine as well
as it can?
Integrity - Is it secure?
9 11/04/2024
McCall’s Quality Factors and Criteria
Relationship Between Quality Factors and Quality
Criteria
Each quality factor is positively influenced by a set of quality
criteria, and the same quality criterion impacts a number of
quality factors.
• Example: Simplicity impacts reliability, usability, and testability.
If an effort is made to improve one quality factor, another quality
factor may be degraded.
• Example: Portable code may be less efficient.
Some quality factors positively impact others.
• Example: An effort to improve the correctness of a system will
increase its reliability.
10 11/04/2024
ISO- 9126
11 11/04/2024
ISO-9126 Model
Software quality characteristics:
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:1991 ,3.13)
Each sub-characteristic is evaluated by a set of metrics.
12 11/04/2024
The Six Quality Characteristics
(ISO/IEC 9126)
13 11/04/2024
The Six Quality Characteristics
(ISO/IEC 9126)
14 11/04/2024
The Six Quality Characteristics
(ISO/IEC 9126)
15 11/04/2024
Selecting and Prioritizing Quality
Factors
16 11/04/2024
Relationships between quality
factors
17 11/04/2024
Relationships between quality
factors
Examples of the relationships between quality factors
Integrity vs. efficiency (inverse)
The control access to data or software requires additional code and
processing leading to a longer runtime and additional storage
requirements.
Usability vs. efficiency (inverse)
Improvements in the human/computer interface may significantly
increase the amount of code required.
Maintainability vs. flexibility (direct)
Maintainable code arises from code that is well structured. This will also
assist any modifications or alterations that are required. Thus a direct
relationship exists between these properties.
18 11/04/2024
Hewlett Packard: F.U.R.P.S
19 11/04/2024