Definitions
Causes of Software Failures
Risks
Consumer Protection
Improving Software Quality
Producer Protection
1 Ethical and Social...J.M.Kizza
Software- computer programs made up of a logical sequence of commands to perform a task.
The software producer/developer creates computer programs to meet either general or specific needs of the consumer
A buyer gets the benefits of a computer program to solve a specific task/problem.
Whenever there is a software there are producers and consumers.
2 Ethical and Social...J.M.Kizza
There is, therefore, a relationship between software producers and users made up of: user expectations and developer limits
For a healthy relationship all the following must be agreed on:
– (1) Standards – universally accepted level of confidence
3 Ethical and Social...J.M.Kizza
– Standards depend on:
Development testing
Verification and Validation
– (2) Reliability – software reliability does not depend on age and wear and tear like hardware
– Software reliability - is the probability that the software does not encounter an input sequence resulting into failure.
4 Ethical and Social...J.M.Kizza
– (3) security - software is secure if it does not contain trapdoors through which an intruder can access the system.
– (4) Safety – the safety of a software product means the absence of a likelihood of an accident, a hazard, or a risk
A number of life critical systems depend on software, therefore, software safety is important.
– (5) Quality - a software product has quality if it maintains a high degree of excellence in standards, security, safety,and dependability.
Ethical and Social...J.M.Kizza
5
There are factors that contribute to software failures:
– Human factors (page 208/209)
Memory lapses and attentional failures : For example, someone was supposed to have removed or added a line of code, tested, or verified but did not because of simple forgetfulness.
Rush to finish : The result of pressure, most often from management, to get the product on the market either to cut development costs or to meet a client deadline can cause problems.
Overconfidence and use of nonstandard or untested algorithms : Before algorithms are fully tested by peers, they are put into the product line because they seem to have worked on a few test runs.
6 Ethical and Social...J.M.Kizza
Malice : Software developers, like any other professionals, have malicious people in their ranks.
Bugs, viruses, and worms have been known to be embedded and downloaded in software as is the case with Trojan horse software, which boots itself at a timed location.
Complacency : When either an individual or a software producer has significant experience in software development, it is easy to overlook certain testing and other error control measures in those parts of software that were tested previously in a similar or related product, forgetting that no one software pr
Ethical and Social...J.M.Kizza
7
Nature of software (page 209)
– Complexity : Unlike hardwired programming in which it easy to exhaust the possible outcomes on a given set of input sequences, in software programming a similar program may present billions of possible outcomes on the same input sequence.
– Difficult testing : There will never be a complete set of test programs to check software exhaustively for all bugs for a given input sequence.
– Ease of programming : The fact that software programming is easy to learn encourages many people with little formal training and education in the field to start developing programs, but many are not knowledgeable about good programming practices or able to check for errors.
– Misunderstanding of basic design specifications :
This affects the subsequent design phases including coding, documenting, and testing
Ethical and Social...J.M.Kizza
8
Risk is a hazard level together with the likelihood of an accident to occur and the severity of the potential consequences
A hazard is a state or set of conditions of a system or an object that, together with other conditions in the environment of the system, or object, will lead inevitably to an accident
Software risks are caused by:
9 Ethical and Social...J.M.Kizza
Risks cause by:
– Personnel shortfalls
– Unrealistic schedules and budgets
– Developing the wrong functions and properties
– Developing the wrong user interface
– Continuing stream of requirements changes
– Shortfalls in externally furnished components
– Shortfalls in externally performed tasks
– Real-time performance shortfalls
– Straining computer-science capabilities
10 Ethical and Social...J.M.Kizza
Examples of safety-critical failures (pages
214 - 223):
– The Indian Union Carbide - Bhopal
– The Therac-25.
– The Space Shuttle Challenger
– The Chernobyl Nuclear Power Plant Accident
Ethical and Social...J.M.Kizza
11
Buyer’s rights:
– Replacement
– Refunds
– Updates
Understanding software complexity- software as:
– Product
– Service
– Mix
12 Ethical and Social...J.M.Kizza
Costumer protection tools:
– (1) contract (used with products):
Express warranties
Implied warranties
Third-party beneficiary
Breach of contract – lack of compliance
– (2) Tort (used with services):
Intentional
Unintentional
Ethical and Social...J.M.Kizza
13
Torts include:
– Negligence – careless, lack of competence, etc..
– Malpractice
– Strict liability
– Misrepresentation
Ethical and Social...J.M.Kizza
14
The safety and reliability of a software product defines the quality of that software
Software quality can only be improved during the development cycle
The following techniques done during the software development phase can improve software quality (see page 122):
– Final review
– Inspection
– Walk-throughs
– Phased-inspection
Ethical and Social...J.M.Kizza
15
Protection against:
– Piracy
– Illegal copying/downloading of copyrighted software
– Fraudulent lawsuits by customers
Seek protection from the courts
Ethical and Social...J.M.Kizza
16