0% found this document useful (0 votes)
32 views22 pages

CH 2

Uploaded by

Lee Recardo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views22 pages

CH 2

Uploaded by

Lee Recardo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Chapter 2

WHAT IS SOFTWARE QUALITY


• Outline
• What is software?
• Software mistake, faults and failures.
• differences
• Classification of the causes of software errors
• Software quality – definition
• Software quality benefits.
• Software quality assurance – definition and
objectives
• Software quality assurance and software
engineering
According to the IEEE:
 Software is: Computer programs, procedures, and possibly
associated documentation and data pertaining to the operation
of a computer system.

 A ‘similar definition comes from ISO:

ISO definition (from ISO 9000-3) lists four


components necessary to assure the quality of the
software development process and years of
maintenance:
 computer programs (code)
 procedures
 documentation
 data necessary for operating the software system.
BASIC DEFINITIONS

 Software Error – made by


programmer
 Syntax (grammatical) error
 Logic error (multiply vice add two operands)
 Software Fault –
 All software errors may not cause software faults
 That part of the software may not be executed
 (An error is present but not encountered
THE NINE CAUSES OF SOFTWARE ERRORS
THE NINE CAUSES OF SOFTWARE ERRORS

The nine causes of software errors are:


1. Faulty requirements definition
2. Client-developer communication failures
3. Deliberate deviations from software requirements
4. Coding errors
5. Non-compliance with documentation and coding
instructions
6. Shortcomings of the testing process
7. User interface errors
8. Documentation errors
1.3 THE NINE CAUSES OF SOFTWARE MISTAKE

1. Faulty requirements definition


• Incorrect requirement definitions
• Simply stated, ‘wrong’ definitions (formulas, etc.)
• Incomplete definitions
• Unclear or implied requirements
• Inclusion of unneeded requirements
• (many projects have gone amuck for including far
too many requirements that will never be used.
• Impacts budgets, complexity, development time.
THE NINE CAUSES OF SOFTWARE ERRORS

2. Client-developer communication failures


• Misunderstanding of instructions in requirements
documentation
• Misunderstanding of written changes during
development.
• Misunderstanding of oral changes during development.
THE NINE CAUSES OF SOFTWARE ERRORS

3. Deliberate deviations from software requirements


• The developer reuses previous/similar work to save time.

• Often reused code needs modification which it may not get or


contains unneeded / unusable extraneous code.

• Developers inserting unapproved ‘enhancements’


(perfective coding; a slick new sort/search….); may also
ignore some seemingly minor features, which sometimes
are quite major.
THE NINE CAUSES OF SOFTWARE ERRORS

5. Coding errors
• Too many to try to list.
• Syntax errors (grammatical errors)
• Logic errors (program runs; results wrong)
• Run-time errors (crash during execution)
THE NINE CAUSES OF SOFTWARE ERRORS

6. Non-compliance w/documentation & coding instructions


• Non-compliance with published templates (structure)
• Non-compliance with coding standards (attribute names…)
• Size of program;
• (Standards and Integration Branch)
THE NINE CAUSES OF SOFTWARE ERRORS

7. Shortcomings of the Testing Process


• Likely the part of the development process cut short most
frequently!
• Incomplete test plans
• Parts of application not tested or tested thoroughly!
• Failure to document, report detected errors and faults
• So many levels of testing….we will cover.
THE NINE CAUSES OF SOFTWARE ERRORS

8. User interface errors

9. Documentation errors
• Errors in the design documents
• Errors in the documentation within the software for the
User Manuals
• Many error messages are totally meaningless
So let’s move on to ‘exactly’
what we mean by ‘Software
Quality.’

As you will see, there is no


commonly-agreed to definition.
Software quality is:

(1) The degree to which a system, component, or


process meets specified requirements.
by Philip Crosby

Another :

(1) The degree to which a system, component, or


process meets customer or user needs or
expectations.
1.5 Software Quality Assurance – IEEE definition

Software Quality Assurance is:


A planned and systematic pattern of all actions
necessary to provide adequate confidence that an
item or product conforms to established technical
requirements.
Software quality assurance is:

A set of actions necessary to provide adequate


confidence that the software development
process or the maintenance process of a
software system product conforms to
established functional technical requirements
as well as with the managerial requirements of
keeping the schedule and operating within the
budgetary confines.
This SQA definition supports the concept of the ISE 9000 standards
regarding SQA, and corresponds to main outlines of the Capability
Maturity Model (CMM) for software.

Our book adapts the Expanded Definition of SQA.

See Table 2.2. We will be looking at these a lot later…


1.5.2 SOFTWARE QUALITY ASSURANCE VS.
SOFTWARE QUALITY CONTROL
DIFFERENT OBJECTIVES.
 Quality Control A part of quality management
focused on fulfilling quality requirement.

 Quality Assurance’s A part of quality management


focused on providing confidence that quality
requirement we fulfilled.
BENEFITS OF SOFTWARE
QUALITY
 Decreased number of defects and
errors in software.
 Reduced development and
maintenance cost.
 Increased software reliability.
 Increased customer satisfaction.
 Happier software practitioners.
(1) Assuring an acceptable level of confidence that the
software will conform to functional technical
requirements.

(2) Assuring an acceptable level of confidence that the


software will conform to managerial scheduling and
budgetary requirements.
(1) Assuring an acceptable level of confidence that the
software maintenance activities will conform to the
functional technical requirements.

(2) Assuring an acceptable level of confidence that the


software maintenance activities will conform to
managerial scheduling and budgetary requirements.
SOFTWARE ENGINEERS AND
QUALITY
 Software engineers strive to control the
 process applied: What is the best process
(i.e SDLC) to be used for the development of
software
 resources expended: Make sure software
development is finished in expected time
and also using the estimated budget
 end product quality attributes: Make
sure that the software it self is of a high
quality and contains all features and
requirements (functional and non
functional)

You might also like