Se461 Part1
Se461 Part1
Software Quality
Part1
(Introduction)
Prepared by: Mohamed A. Elorfi
Instructor: Salah Abdelsattar
Software Product and process
Business System
goals
Demand
Customer or Business Process
Market
Product or
Service
resources
Is a
Is a
software product
software development process
2
Software product
What is a software product?
3
Software process
What is a software development process?
• A set of activities whose goal is the development or evolution of a software product
(problem) (solution)
4
Software errors, software faults and software failures
■ Software errors are sections of the code that are partially or totally incorrect as a
result of a grammatical, logical or other mistake made by a systems analyst, a
programmer, or another member of the software development team.
■ Software faults are software errors that cause the incorrect functioning of the
software during a specific application.
■ Software failures software faults become software failures only when they are
“activated”, that is, when a user tries to apply the specific software section that is
faulty. Thus, the root of any software failure is a software error.
5
Software defects
– Definition #2: The program does not do what its end user reasonably
expects it to do.
6
Defect types
Categories of Defects
– Functional defects
• The program’s features don’t work as they should
– User Interface defects
• Usability problems
– Performance defects
• Too slow, Uses too much memory/disk space/bandwidth/etc.
– Error Handling defects
• Failure to anticipate and handle possible errors, or deal with them in a
reasonable way
– Security defects
• Attackers can compromise the system and access sensitive data or other
resources
– Load defects
• Can't handle many concurrent users, can't handle large data sets
– Configuration defects
• Doesn't work on the required hardware/OS configurations
– Documentation defects
• User manuals or online help isn't clear, complete, well-organized
7
Defect causes
A Sample of Possible Causes for Defects
8
Explanation of Defect causes
(1) Faulty definition of requirements
The faulty definition of requirements, usually prepared by the client, is one of the main causes of
software errors. The most common errors of this type are:
■ Erroneous definition of requirements.
■ Absence of vital requirements.
■ Incomplete definition of requirements. For instance, one of the requirements of a municipality’s local
tax software system refers to discounts granted to various segments of the population: senior citizens,
parents of large families, and so forth. Unfortunately, a discount granted to students was not included in
the requirements document.
■ Inclusion of unnecessary requirements, functions that are not expected to be needed in the near future.
9
Explanation of Defect causes
(3) Deliberate deviations from software requirements
In several circumstances, developers may deliberately deviate from the documented
requirements, actions that often cause software errors. The errors in these cases are
byproducts of the changes. The most common situations of deliberate deviation are:
■ The developer reuses software modules taken from an earlier project without sufficient analysis of
the changes and adaptations needed to correctly fulfill all the new requirements.
■ Due to time or budget pressures, the developer decides to omit part of the required functions in an
attempt to cope with these pressures.
■ Developer-initiated, unapproved improvements to the software, introduced without the client’s
approval, frequently disregard requirements that seem minor to the developer. Such “minor” changes
may, eventually, cause software errors.
10
Explanation of Defect causes
(5) Coding errors
A broad range of reasons cause programmers to make coding errors. These include
misunderstanding the design documentation, linguistic errors in the programming
languages, errors in the application of CASE and other development tools, errors in data
selection, and so forth.
(6) Non-compliance with documentation and coding instructions
Almost every development unit has its own documentation and coding standards that
define the content, order and format of the documents, and the code created by team
members.
■ Team members who need to coordinate their own codes with code modules developed by “non-
complying” team members can be expected to encounter more than the usual number of difficulties
when trying to understand the software developed by the other team members.
■ Individuals replacing the “non-complying” team member will find it difficult to fully understand his or
her work.
■ The design review team will find it more difficult to review a design prepared by a non-complying
team.
■ The test team will find it more difficult to test the module; consequently, their efficiency is expected
to be lower, leaving more errors undetected.
■ Maintenance teams required to contend with the “bugs” detected by users and to change or add to
the existing software will face difficulties when trying to understand the software and its
documentation.
11
Explanation of Defect causes
12
Explanation of Defect causes
13
Cost of defects
• during implementation?
14
Cost of defects
4.00
2.00
1 1.00 1.30
15