0% found this document useful (0 votes)
57 views24 pages

1st Class

This document discusses software quality and its importance. It defines software quality as conformance to requirements and fitness for purpose. Poor software quality can have significant monetary and other costs due to defects. The majority of defects are introduced in early phases like requirements and design, but are most costly to fix later in development. Ensuring software quality is important due to software's role in critical systems and the high costs of defects.

Uploaded by

jayaprasanna
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views24 pages

1st Class

This document discusses software quality and its importance. It defines software quality as conformance to requirements and fitness for purpose. Poor software quality can have significant monetary and other costs due to defects. The majority of defects are introduced in early phases like requirements and design, but are most costly to fix later in development. Ensuring software quality is important due to software's role in critical systems and the high costs of defects.

Uploaded by

jayaprasanna
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 24

Software Quality

1
Introduction to Software Quality
Assurance

• Left: The Ariane 501


rocket’s guidance computer
software just threw an
unchecked exception.

• [Image source: European


Space Agency]

2
Objectives
• What is Quality?

• Characteristics of Quality

• What is Software Quality?

• Why is Software Quality important?

3
Quality:
• Ability of the product/service to fulfill its
function

•Hard to define

• Impossible to measure

• Easy to recognize in its absence


Transparent when present 4
Characteristics of Quality:

• Quality is not absolute

• Quality is multidimensional

• Quality is subject to constraints

• Quality is about acceptable compromises

• Quality criteria are not independent, but interact with each other
causing conflicts.

5
What is Software ?
• According to the IEEE

Software is:
– Computer programs, procedures, and possibly
associated documentation and data pertaining
to the operation of a computer system.

6
Software Quality:
Kitchen ham (1989 b) refers to software quality “ fitness for
needs” and claims quality involves matching expectations.

Two features of a piece of quality software:


•Conformance to its specification
•Fitness for its intended purpose.

These may be summarized as:


· Is it a good solution?
· Does it address the right problem?

7
The Department of Defense (DOD, 1985) in the USA defines
software quality as “ the degree to which the attributes of the
software enable it to perform its intended end use” .

8
What is Software Quality ?
• Conformance to requirements.

• Narrowest sense of software quality.


– Lack of bugs.
– Low defect rate (# of defects/size unit)
– High reliability (number of failures per n hours
of operation).
– Mean Time To Failure (MTTF): probability of
failure-free operation in a specified time.

9
What is Software Quality ?
• According to the IEEE:

• Software quality is:


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.

10
What is Software Quality ?
• According to Pressman:

• Software quality is:

Conformance to explicitly stated functional and


performance requirements, explicitly documented
development standards, and implicit
characteristics that are expected of all
professionally developed software.

11
Importance of Software Quality
• Software is a major component of computer systems (about
80% of the cost) – used for
– Communication (e.g. phone system, email system).
– Health monitoring.
– Transportation (e.g. automobile, aeronautics).
– Economic exchanges (e.g. e-commerce).
– Entertainment.
– etc.
• Software defects are extremely costly in term of
– money
– reputation
– loss of life

12
Importance of Software Quality
• Notable consequences of software errors:
– 1988 shooting down of Airbus 320 by the USS Vincennes -
cryptic and misleading output displayed by tracking software.
– 1991 patriot missile failure - inaccurate calculation of time due
to computer arithmetic errors.
– London Ambulance Service Computer Aided Dispatch System –
several deaths.
– On June 3, 1980, the North American Aerospace Defense
Command (NORAD) reported that the U.S. was under missile
attack.
– First operational launch attempt of the space shuttle, whose
real-time operating software consists of about 500,000 lines of
code, failed - synchronization problem among its flight-control
computers.
– 9 hour breakdown of AT&T's long-distance telephone network -
caused by an untested code patch.

13
Importance of Software Quality
• Ariane 5 explosion June 4, 1996
– First flight of the European Ariane 5 launcher crashed
about 40 seconds after takeoff.
– Cost was about half a billion dollars.
– Explosion was the result of a software error:
– Uncaught exception due to floating-point error:
conversion from a 64-bit integer to a 16-bit signed
integer applied to a larger than expected number.
– Module was re-used without proper testing from
Ariane 4 .
– Error was not supposed to happen with Ariane 4.
– No exception handler.

14
Importance of Software Quality
• Mars Climate Orbiter - September 23, 1999
– Mars Climate Orbiter, disappeared as it began
to orbit Mars.
– Cost about $US 125-million.
– Failure due to error in a transfer of
information between a team in Colorado and a
team in California.
– One team used imperial units (e.g., inches,
feet and pounds) while the other used metric
units for a key spacecraft operation.

15
Importance of Software Quality
• Mars Polar Lander - December, 1999
– Mars Polar Lander, disappeared during landing
on Mars.
– Failure most likely due to unexpected setting of
a single data bit.
– Defect not caught by testing.
– Independent teams tested separate aspects.

16
Importance of Software Quality
• Internet viruses and worms
– Blaster worm (US$ 525 million)
– Sobig.F (US$ 500 million – 1 billion)
• Exploit well known software vulnerabilities
– Software developers do not devote enough
effort to applying lessons learned about the
causes of vulnerabilities.
– Same types of vulnerabilities continue to be
seen in newer versions of products that were in
earlier versions.
• Usability problems
17
Importance of Software Quality
• Monetary impact of poor software quality
(Standish group - 1995)

• 175,000 software projects/year - Average Cost


per project
– Large companies - $US 2,322,000
– Medium companies - $US 1,331,000
– Small companies - $US 434,000

• 31.1% of projects canceled before completed.


– cost $81 billion

18
Importance of Software Quality
• 52.7% of projects exceed their budget - costing
189% of original estimates.
– cost $59 billion
• 16.2% of software projects completed on-time and
on-budget (9% for larger companies).
• Large companies - delivered systems have
approximately only 42% of originally-proposed
features and functions.
• 78.4% of smaller companies projects get deployed
with at least 74.2% of their original features and
functions.

19
20
Software Errors, software faults and
software failures
• Bug/defect/fault consequence of a human error.
– Results in non-conformance to requirements.
– Manifests as failure in running software.
Software development process

software error
software fault
software failure

21
Nine Causes of Software Errors
• Faulty requirements definition.

• Client-developer communication failures.

• Deliberate deviations from software requirements.

• Logical design errors.

• Coding errors.

• Non-compliance with documentation and coding instructions.

• Shortcomings of the testing process.

• User interface and procedure errors.

• Documentation errors.

22
When are defects introduced?
• The majority of defects are introduced in earlier
phases.
– Requirements are the top factor in a project’s
success or failure.

Phase % of % effort to
defects fix
Requirements 56 82
Design 27 13
Code 7 1
Other 10 4

23
Cost of fixing defects
• Relative cost of fixing defects
– benchmark: cost at requirements phase = 1

Phase found Cost ratio


Requirements 1
Design 3–5
Coding 10
Unit / integration testing 15 - 40
System / acceptance testing 30 – 70
Production 40 - 1000

24

You might also like