Se461 Part2
Se461 Part2
Se461 Part2
Software Quality
Part2
(Software Quality Definitions & Concepts)
2
Quality definitions
• IEEE
1. The degree to which a system, component, or process meets specified
requirements.
2. The degree to which a system, component, or process meets customer or user
needs or expectations.
• Juran, (Manufacturer’s Perspective)
Software quality is fitness for intended use
• Phil Crosby, (Management’s perspective)
“Quality means “conformance to user requirements”.
• Edwards Deming, (Consumer’s perspective)
“striving for excellence” in reliability and functions by continuous improvement in the
process of development, support by statistical analysis of the causes of failure.
3
• Watts Humphrey, of the SEI,
“achieving excellent levels of fitness for use, conformance to requirements,
reliability and maintainability.”
• Barry Boehm,
“Achieving high levels of user satisfaction, portability, maintainability, robustness,
and fitness for use”.
• Pressman
Conformance to:
1. explicitly stated functional and performance requirements,
2. explicitly documented development standards, and
3. implicit characteristics that are expected of all professionally developed
software.
4
• James Martin,
“software quality means being on time, within budget and meeting user
needs”
5
Comment:
It is apparent from a first look at these definitions that quality is a subjective
term with many definitions – covering different perspectives of various
stakeholders. However, a closer look and analysis of these definitions from
the perspective of intent reveals that they all essentially pointing in the same
direction – “quality is non-negotiable”. It is therefore important, for the
organizations - to manage quality using a defined and structured approach to
quality management.
6
Why business should be concerned with Quality?
7
Importance of Software Quality
8
Software Quality
• Is achieved through a disciplined approach - called software engineering.
• Can be defined, described, and measured.
• Can be assessed before any code has been written.
9
Process and Product Quality
Process quality and product quality are closely related and process improvement
benefits arise because the quality of the product depends on its development
process.
For design-based activity, other factors are also involved especially the capabilities
of the designers.
10
What is product quality?
11
Attributes of quality software product
Auditability
The ease with which conformance to standards can be checked.
Accuracy
The precision of computations and control. A qualitative assessment of
freedom from error. A quantitative measure of the magnitude of error. The
correct data values are recorded.
Communication commonality
The degree to which standard interfaces, protocols, and bandwidths are
used.
Completeness
The degree to which full implementation of required function has been
achieved. All data items are captured and stored for use. Data items are
properly identified with time periods.
Conciseness
The compactness of the program in terms of lines of code.
Consistency
The use of uniform design and documentation techniques throughout the
software development project.
Data commonality
The use of standard data structures and types throughout the program.
12
Attributes of quality software product
Error tolerance
The damage that occurs when the programs encounters an error. Suitable
error prevention and detection procedures are in place. There are
procedures for reporting and correcting errors. Various audit procedures are
applied.
Execution efficiency
The run-time performance of a program.
Expandability
The degree to which architectural, data, or procedural design can be
extended.
Generality
The breadth of potential application of program components.
Hardware independence
The degree to which the software is decoupled from the hardware on which
it operates.
Instrumentality
The degree to which the program monitors its own operation and identifies
errors that do occur.
Modularity
The functional independence of program components.
Operability
The ease of operation of a program.
13
Attributes of quality software product
Robustness
The extent to which software can continue to operate correctly despite the
introduction of invalid inputs.
Security
The availability of mechanism that control or protect programs and data. The
system and its operations are protected from various environmental and
operation risks. There are provisions for recovery in the event of failure or
destruction of part or all system.
Self-documentation
The degree to which the source code provides meaningful documentation.
Simplicity
The degree to which a program can be understood without difficulty.
Software system independence
The degree to which the program is independent of nonstandard
programming language features, operating system characteristics, and other
environmental constraints.
Traceability
The ability to trace a design representation or actual program component
back to requirements.
Training
The degree to which the software enables new users to apply the system.
14