Sei sulla pagina 1di 78

1

The Software
Quality
Challenge

Software Quality Assurance:


From Theory to Implementation
Daniel Galin
Software Quality Assurance: From Theory to Implementation Daniel
Galin

Chapter Outline
The uniqueness of Software Quality
Assurance
The environments for which SQA
methods are developed

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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

Software Quality Assurance: From Theory to Implementation Daniel


Galin

Uniqueness of SQA

The fundamental differences between


software products (including firmware)
and other products are caused by the
higher product complexity, by the
invisibility of software and by the
nature of the product development
andFromproduction
process.
Software Quality Assurance:
Theory to Implementation Daniel
4
Galin

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

Product Development and


Production Progress
The only phase when defects can be
detected is the development phase.
Software Quality Assurance: From Theory to Implementation Daniel
Galin

Uniqueness of SQA

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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

Software Quality Assurance: From Theory to Implementation Daniel


Galin

SQA Environment
1. Contractual Conditions

List of functional requirements

Project budget

Project timetable

2. Subjection to customersupplier
relationship

Change requests->Feedback->Approval

3. Required teamwork

Timetable requirements

Need for specializations

Benefit from professional mutual support

Software Quality Assurance: From Theory to Implementation Daniel


Galin

SQA Environment
4. Cooperation and coordination of
software teams

Software Quality Assurance: From Theory to Implementation Daniel


Galin

SQA Environment
5. Interfaces with other software
systems

Input interfaces

Output interfaces

6. The need to continue carrying out a


project despite team member
changes
7. The need to continue carrying out
software maintenance for an
extended period

Software Quality Assurance: From Theory to Implementation Daniel


Galin

10

SQA Environment

Software Quality Assurance: From Theory to Implementation Daniel


Galin

11

Chapter Summary
Uniqueness of SQA
SQA Environment

Software Quality Assurance: From Theory to Implementation Daniel


Galin

12

What is
Software
Quality?

Software Quality Assurance:


From Theory to Implementation
Daniel Galin
Software Quality Assurance: From Theory to Implementation Daniel
Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

16

What is software?

4 components of Software:
Computer programs (the code)
Procedures
Documentation
Data necessary for operating the software system

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

20

Software errors, faults and


failures
Software errors
Incorrect code as a result of grammatical or
logical mistake by the developer.

Software faults
Software errors that cause the incorrect
functioning of the software during a specific
application.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

21

Software errors, faults and


failures
Software failures
Software faults that are activated, that is,
when a user tries to apply the specific
faulty software section.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

22

Software errors, faults and


failures

The root of any software failure is


a software error.
Software Quality Assurance: From Theory to Implementation Daniel
Galin

23

Classification of the
causes of software errors
Software errors
Code error
Procedure error
Documentation error
Software data error

All errors are made by humans.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

24

Classification of the
causes of software errors

Software Quality Assurance: From Theory to Implementation Daniel


Galin

25

Classification of the
causes of software errors
Nine causes of software errors:
1. Faulty definition of requirements

Erroneous definition of requirements.

Absence of vital requirements

Incomplete definition of requirements

Inclusion of unnecessary requirements

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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

Developer reuses existing software modules

Developer omits part of required functions

Developer introduced unapproved improvements

4. Logical design errors

Software requirements by means of erroneous


algorithms

Process definitions containing sequencing errors

Erroneous definition of boundary conditions

Omission of required software system states

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

Incomplete test plans

Failure to document and report detected errors


and faults

Failure to correct detected faults

Incomplete correction of detected errors

Software Quality Assurance: From Theory to Implementation Daniel


Galin

29

Classification of the
causes of software errors
8. Procedure errors
9. Documentation errors

Design documents

Users manuals (Help)

Software Quality Assurance: From Theory to Implementation Daniel


Galin

30

Classification of the
causes of software errors

Software Quality Assurance: From Theory to Implementation Daniel


Galin

31

Software quality
definition

Quality means conformance to


requirements
Philip Crosby

(1) Quality consists of those product


features which meet the needs of
customers and thereby provide product
satisfaction. (2) Quality consists
of
Software Quality Assurance: From Theory to Implementation Daniel
32
Galin freedom from deficiencies Joseph Juran

Software quality
definition

3 requirements for quality assurance


Specific functional requirements
The software quality standards
Good Software Engineering Practices (GSEP),
reflecting state-of-the-art professional practices
Software Quality Assurance: From Theory to Implementation Daniel
Galin

33

Software quality
definition and objectives

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

35

Software quality
definition and objectives

IEEE (Institute of Electrical and Electronics


Engineers)
ISO (International Organization for Standardization)
SEI-CMM (Capability Maturity Model)
Software Quality Assurance: From Theory to Implementation Daniel
Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

38

Objectives of SQA
Activities

Software Quality Assurance: From Theory to Implementation Daniel


Galin

39

Objectives of SQA
Activities

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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

Software Quality Assurance: From Theory to Implementation Daniel


Galin

45

Software
quality factors

Software Quality Assurance:


From Theory to Implementation
Daniel Galin
Software Quality Assurance: From Theory to Implementation Daniel
Galin

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

Who is interested in the definition of


quality requirements?
Software compliance with quality factors
Software Quality Assurance: From Theory to Implementation Daniel
Galin

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

The need for


comprehensive software
quality requirements
The great variety of issues related to the various
attributes of software and its use and
maintenance, as defined in software
requirements documents, can be classified into
content groups called quality factors.
Usability aspects
Reusability aspects
Maintainability aspects

Full satisfaction of the users


Software Quality Assurance: From Theory to Implementation Daniel
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

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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

McCalls factor model


Product operation factors
deal with requirements that directly affect the
daily operation of the software.

Product revision factors


deal with those requirements that affect the
complete range of software maintenance
activities

Product transition factors


Deal with those adaptation of software to other
environments and its interaction with other
Software
Quality Assurance: From Theory to Implementation Daniel
53
systems.
Galin

McCalls factor model:


Product operation factors
1. Correctness
Correctness requirements are defined in a list
of the software systems required outputs.
Output dimensions:
Output mission
Output accuracy
Output completeness
Output up-to-dateness
Output availability
Standards for coding and documentation
Software Quality Assurance: From Theory to Implementation Daniel
Galin

54

McCalls factor model:


Product operation factors
2. Reliability
Reliability requirements deal with failures to
provide service.
They determine the maximum allowed
software system failure rate, and can refer to the
entire system or to one or more of its separate
functions.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

55

McCalls factor model:


Product operation factors
3. Efficiency
Efficiency requirements deal with the hardware
resources needed to perform all the functions of
the software system in conformance to all other
requirements.
computers processing capabilities
data storage capability in terms of memory & disk
capacity
data communication capability of the
communication lines
time between recharging of the systems portable
units
Software Quality Assurance: From Theory to Implementation Daniel
Galin

56

McCalls factor model:


Product operation factors
4. Integrity
Integrity requirements deal with the software
system security.
to prevent access to unauthorized persons
to distinguish between the personnel having read
permit and write permit

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

McCalls factor model:


Product revision factors
These factors deal with those requirements
that affect the complete range of software
maintenance activities:
Corrective maintenance (correction of
software faults and failures)
Adaptive maintenance (adapting the current
software to additional circumstances and
customers without changing the software)
Perfective maintenance (enhancement and
improvement of existing software).
Software Quality Assurance: From Theory to Implementation Daniel
Galin

58

McCalls factor model:


Product revision factors
6. Maintainability
Maintainability requirements determine the
efforts that will be needed by users and
maintenance personnel to identify the reasons for
software failures, to correct the failures, and to
verify the success of the corrections.
Modular structure of software
Internal program documentation
Programmers manual

Software Quality Assurance: From Theory to Implementation Daniel


Galin

59

McCalls factor model:


Product revision factors
7. Flexibility
The capabilities and efforts required to support
adaptive maintenance activities are covered by the
flexibility requirements. It also supports perfective
maintenance activities.

8. Testability
Testability requirements deal with the testing of
an information system as well as with its operation.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

60

McCalls factor model:


Product transition factors
According to McCall, three quality factors are
included in the product transition
category, a category that pertains to the
adaptation of software to other environments
and its interaction with other software
systems.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

61

McCalls factor model:


Product transition factors
9. Portability
Portability requirements tend to the adaptation
of a software system to other environments
consisting of different hardware, different
operating systems, etc.

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

62

McCalls factor model:


Product transition factors
11.Interoperability
Interoperability requirements focus on creating
interfaces with other software systems or with
other equipment firmware.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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).

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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)

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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).

Software Quality Assurance: From Theory to Implementation Daniel


Galin

66

Alternative models of
software quality factors

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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.

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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

Who is interested in the


quality requirements
definition?
The client is not the only party interested
in thoroughly defining the requirements
that assure the quality of the software
product. The developer is often interested
in adding requirements that represent his
own interests, such as reusability,
verifiability and portability requirements.
The clients requirements document
The developers additional requirements
document.
Software Quality Assurance: From Theory to Implementation Daniel
Galin

73

Software compliance with


quality factors

Software Quality Assurance: From Theory to Implementation Daniel


Galin

74

Software compliance with


quality factors

Software Quality Assurance: From Theory to Implementation Daniel


Galin

75

Software compliance with


quality factors

Software Quality Assurance: From Theory to Implementation Daniel


Galin

76

Software compliance with


quality factors

Software Quality Assurance: From Theory to Implementation Daniel


Galin

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

Potrebbero piacerti anche