Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
The Software
Quality
Challenge
Chapter Outline
The uniqueness of Software Quality
Assurance
The environments for which SQA
methods are developed
Chapter Objectives
Identify the unique characteristics of
software
Recognize the characteristics of the
environment where professional
software development and maintenance
take place.
Explain the main environmental
difficulties faced by software
development and maintenance teams
Uniqueness of SQA
Uniqueness of SQA
Product Complexity
Product complexity can be measured by the
number of operational modes the product
permits.
Product Visibility
Defects in software products are invisible
Uniqueness of SQA
SQA Environment
Software development fulfills
variety of needs
Students as part of their education
Software amateurs as a hobby
Professionals in engineering, economics,
management, and other fields to assist
them in their work
Software development professionals as a
professional career objective
SQA Environment
1. Contractual Conditions
Project budget
Project timetable
2. Subjection to customersupplier
relationship
Change requests->Feedback->Approval
3. Required teamwork
Timetable requirements
SQA Environment
4. Cooperation and coordination of
software teams
SQA Environment
5. Interfaces with other software
systems
Input interfaces
Output interfaces
10
SQA Environment
11
Chapter Summary
Uniqueness of SQA
SQA Environment
12
What is
Software
Quality?
13
Chapter Outline
What is Software?
Software errors, faults, and failures
Classifications of the causes of software
errors
Software quality definition
Software quality assurance definition
and objectives
Software quality assurance and
Software Engineering
Software Quality Assurance: From Theory to Implementation Daniel
Galin
14
Chapter Objectives
Define software, software quality and
software quality assurance.
Distinguish between software errors,
software faults and software failures.
Identify the various causes of software
errors.
Explain the objectives of software
quality assurance activities.
Software Quality Assurance: From Theory to Implementation Daniel
Galin
15
Chapter Objectives
Distinguish and explain the difference
between software quality assurance and
quality control.
Explain the relationship between
software quality assurance and software
engineering.
16
What is software?
4 components of Software:
Computer programs (the code)
Procedures
Documentation
Data necessary for operating the software system
17
What is software?
Computer programs (the
code)
They activate the computer to perform
applications.
Procedures
They define:
the order and schedule in which the programs are
performed,
the method employed, and
the person responsible for performing the
activities
Software Quality Assurance: From Theory to Implementation Daniel
Galin
18
What is software?
Documentation
Developers -> Development documentation
User -> Users documentation (the users
manual)
Maintenance personnel -> Maintenance
documentation (the programmers
software manual)
Data
Parameters, codes and name lists
Standard test data
Software Quality Assurance: From Theory to Implementation Daniel
Galin
19
What is software?
Software quality assurance always
includes, in addition to code
quality, the quality of the
procedures, the documentation
and the necessary software data.
20
Software faults
Software errors that cause the incorrect
functioning of the software during a specific
application.
21
22
23
Classification of the
causes of software errors
Software errors
Code error
Procedure error
Documentation error
Software data error
24
Classification of the
causes of software errors
25
Classification of the
causes of software errors
Nine causes of software errors:
1. Faulty definition of requirements
26
Classification of the
causes of software errors
Nine causes of software errors:
2. Client-developer communication
failures
Misunderstanding of the clients instructions as
stated in the requirement document.
Misunderstanding of the clients requirements
changes presented to the developer in written
form/verbal form during the development period.
Misunderstanding of the clients responses to the
design problems presented by the developer.
Lack of attention to important details
Software Quality Assurance: From Theory to Implementation Daniel
Galin
27
Classification of the
causes of software errors
3. Deliberate deviations from software
requirements
Omission
definitions
concerning
Software Quality
Assurance: Fromof
Theory
to Implementation
Daniel
Galin
operation
reaction
to illegal
28
Classification of the
causes of software errors
5. Coding errors
6. Non-compliance with documentation
and coding instructions
7. Shortcomings of the testing process
29
Classification of the
causes of software errors
8. Procedure errors
9. Documentation errors
Design documents
30
Classification of the
causes of software errors
31
Software quality
definition
Software quality
definition
33
Software quality
definition and objectives
34
Software quality
definition and objectives
Some restraints on the IEEE
definition:
Excludes maintenance and timetable and
budget issues.
SQA should not be limited to the development
process.
SQA actions should not be limited to the technical
aspects of the functional requirements, but should
include also activities that deal with scheduling and
the budget.
35
Software quality
definition and objectives
36
Software quality
assurance vs. Software
quality
control
Quality Control
a set of activities designed to evaluate
the quality of a developed or
manufactured product
Quality Assurance
Aims to minimize the cost of
guaranteeing quality by a variety of
activities performed throughout the
development and manufacturing
processes/stages.
Software
Quality Assurance: From Theory to Implementation Daniel
37
Galin
Software quality
assurance vs. Software
quality control
(1) Quality control and quality
assurance activities serve different
objectives.
(2) Quality control activities are only a
part of the total range of quality
assurance activities.
38
Objectives of SQA
Activities
39
Objectives of SQA
Activities
40
Software quality
assurance and Software
engineering
Software Engineering:
(1) The application of a systematic,
disciplined, quantifiable approach to
the development, operation and
maintenance of software; that is, the
application of engineering to software.
(2) The study of approaches
Software Quality Assurance: From Theory to Implementation Daniel
Galin
41
Software quality
assurance and Software
engineering
The characteristics of software engineering,
especially the systematic, disciplined and
quantitative approach at its core, make the
software engineering environment a good
infrastructure for achieving SQA objectives.
The methodologies and tools that are
applied by software engineering determine the
level of quality to be expected from the
software process and the maintenance
services.
Software Quality Assurance: From Theory to Implementation Daniel
Galin
42
Software quality
assurance and Software
engineering
It is commonly accepted that cooperation
between software engineers and the SQA
team is the appropriate way to achieve
efficient and economic development and
maintenance activities that, at the same time,
assure the quality of the product of these
activities.
43
Chapter Summary
Define software, software quality and
software quality assurance
Distinguish between software errors,
software faults and software failures.
Identify the various causes of software
errors.
Explain the objectives of SQA activities.
SQA vs. Quality Control
SQA and Software Engineering
Software Quality Assurance: From Theory to Implementation Daniel
Galin
44
45
Software
quality factors
46
Chapter Outline
The need for comprehensive software
quality requirements
Classifications of software requirements
into software quality factors
Product operation software quality
factors
Product revision software quality factors
Product transition software quality
factors
Software Quality Assurance: From Theory to Implementation Daniel
Galin
47
Chapter Outline
Alternative models of software quality
factors
Formal comparison of the alternative models
Comparison of the factor models content
analysis
Structure of the alternative factor models
48
Chapter Objectives
Explain the need for comprehensive
requirements documents and
characterize the contents of such
documents.
Explain the structure (categories and
factors) of McCalls classic factor model.
List other factors that are suggested by
the alternative SQA models.
Identify who is interested in the
definition of quality requirements.
Software Quality Assurance: From Theory to Implementation Daniel
49
Galin
50
Software requirements
into Software quality
factors
Models of software quality factors
1. McCall (1977) 11 factors
2. Deutsch and Willis (1988) and Evans and
Marciniak (1987) 12 to 15 factors
51
Software requirements
into Software quality
factors
McCalls factor model
11 software quality factors grouped into
three categories
Product operation factors: Correctness,
Reliability, Efficiency, Integrity, Usability
Product revision factors: Maintainability,
Flexibility, Testability
Product transition factors: Portability,
Reusability, Interoperability
Software Quality Assurance: From Theory to Implementation Daniel
Galin
52
54
55
56
5. Usability
Usability requirements deal with the scope of
staff resources needed to train a new employee
and to operate the software system.
Software Quality Assurance: From Theory to Implementation Daniel
Galin
57
58
59
8. Testability
Testability requirements deal with the testing of
an information system as well as with its operation.
60
61
10.Reusability
Reusability requirements deal with the use of
software modules originally designed for one
project in a new software project currently being
developed
They may also enable future projects.
62
63
Alternative models of
software quality factors
The Evans and Marciniak factor model
(Evans and Marciniak, 1987).
The Deutsch and Willis factor model
(Deutsch and Willis, 1988).
64
Alternative models of
software quality factors
Formal comparisons:
Both exclude the McCalls Testability factor.
The Evans and Marciniak factor model consists
of 12 factors classified into three categories.
(Design, Performance and Adaptation)
The Deutsch and Willis factor model consists of
15 factors classified into four categories.
(Functional, Performance, Change and
Management)
65
Alternative models of
software quality factors
Additional factors:
Verifiability (by both models)
Expandability (by both models)
Safety (by Deutsch and Willis)
Manageability (by Deutsch and Willis)
Survivability (by Deutsch and Willis).
66
Alternative models of
software quality factors
67
Alternative models of
software quality factors
12.Verifiability
Verifiability requirements define design and
programming features that enable efficient
verification of the design and programming.
Most verifiability requirements refer to
modularity, to simplicity, and to adherence to
documentation and programming guidelines.
68
Alternative models of
software quality factors
13.Expandability
Expandability requirements refer to future
efforts that will be needed to serve larger
populations, improve service, or add new
applications in order to improve usability.
14.Safety
Safety requirements are meant to eliminate
conditions hazardous to operators of equipment as
a result of errors in process control software.
69
Alternative models of
software quality factors
15.Manageability
Manageability requirements refer to the
administrative tools that support software
modification during the software development and
maintenance periods, such as configuration
management, software change procedures, etc.
70
Alternative models of
software quality factors
16.Survivability
Survivability requirements refer to the
continuity of service. These define the minimum
time allowed between failures of the system, and
the maximum time permitted for recovery of
service, two factors that pertain to service
continuity.
71
Alternative models of
software quality factors
Comparison of factor models content
analysis:
Expandability and Survivability resembles
McCalls Flexibility and Reliability.
McCalls Testability can be one element of
Maintainability factor.
Only three new factors were added.
- Both models add Verifiability.
- Deutsch and Willis model adds Safety and
Manageability
Software Quality Assurance: From Theory to Implementation Daniel
Galin
72
73
74
75
76
77
Chapter Summary
The need for comprehensive
requirements documents and their
content
The structure of McCalls classic factor
model
The additional factors suggested by
alternative factor models
Those interested in defining software
quality requirements
Software Quality Assurance: From Theory to Implementation Daniel
Galin
78