Module 8 Software Issues and The Law
Module 8 Software Issues and The Law
By
Mary Komunte
What is Software?
• Software are computer programs made up of a
sequence of short commands called
instructions that tell the computer what to do.
• Without a software, computer hard ware can
not perform the tasks we associate with when
using computers.
What is Software?
Software Issues…
• A software producer or developer creates
or develops a set of programs to meet the
specifications of either a user if there is a
contract or of a specific problem if it is a
general software.
• Developers could be individuals or
companies like Microsoft that employs
hundreds of software engineers such as
analysts and programmers.
Software Issues…
• Software buyers and customers obtain the
finished software from the developer to
satisfy a need basing their decision on
developer claims. The buyer may be an
individual or a company.
Software standards
• Software developers must convey to buyers
that their products are of high quality.
• The buyer has little power in disputing the
claims of the developer in these areas because
there is no one universally acceptable and
agreed on measure of software standards.
Software standards…
• There are universal basic standards that a software
product must meet. They include;
• Mutually agreed on criteria & expectations of the buyer
• In this case the law imposes such standards, & if the
product does not live up to them, the buyer has a right
to pursue legal action.
• There is no one criterion that can be used to measure
software standards but rather a collection of criteria
such as development, testing, verification and validation
of software and the programmers professional & ethical
standards.
Testing
• Programs are complex;
• Hard to understand
• And often riddled with errors
• But might a small set of tests on a
program pin point problems?
Testing…
• Testing helps reveal the discrepancies
between the model being used & the real
situation.
• Testing tries to assure that the program
satisfies its specifications
• And it detects & prevents design &
implementation faults.
Testing
• Exhaustive & thorough testing must be
conducted to ascertain whether the system
produces the right results.
• Testing answers the question, will the system
produce the desired results under known
conditions.
Software Safety
• Advances in computer technology have resulted in wider
computer applications in vast areas including safety critical
systems.
• A "safety-critical system" is a computer system that can have
a direct life-threatening impact e.g.
– aircraft and air traffic control systems
– mass transportation systems
– nuclear reactors missile systems
– medical treatment systems.
– design of bridges and buildings
– election of water disposal sites;
– development of analytical models for medical treatment.
Software Safety…
• In these areas the safety of software has become one
of most prominent components of the whole security
system.
• Such a system can not afford to an accident or an
error because software failure without direct
consequences to human life, property and the
environment.
• A software is unsafe if a condition is created where
by there is a likelihood of an accident, a hazard or a
risk.
Software Safety…
• The function of software safety in system safety is
that software execute within a prescribed context to
avoid hazards or risk; either by outputting faulty
values or Poor timing.
• By failing to detect & respond to hardware failures
that may cause a system to go into a hazardous state.
Software Safety…
• Good & safe software depends on good
programming practice which includes;
– Control techniques,
– Application of various types of safety analysis
during the development cycle,
– Evaluation of the effectiveness of these techniques.
Software Quality
• A software product has quality if it maintains a
high degree of excellence in;
• standards,
• security,
• Safety
• dependability
Improving Software Quality
• Software quality can be improved through
innovative new review techniques such as;
• 1. Formal review;
– presentation of the software by a person more
familiar with the product to others with competent
knowledge of that product so they can critique the
product and offer informed suggestions.
Improving Software Quality…
• 2. Inspection;
– involves checking the known specific errors
from past products and establishing
additional facilities that may be missing in
the product to bring the product to
acceptable standards.
Improving Software Quality…
• 3. Walk-throughs:
– require code inspection line by line by a team of people to
detect potential errors. Each review session is followed by
a discussion of the findings by the members of the review
team, usually with the creators of the code present.
Improving Software Quality…
• Phased inspection; this technique was developed by
Jack. C. Knight & Ann Mayers (1994).
– It is an enhanced method combining the previous
three methods by putting emphasis on the
limitations of those methods. It consists of a series
of coordinated partial Inspections called phases
during which specific properties of the product are
inspected.
Causes of Software Failures
• Human factors;
– Memory lapses & intentional failures e.g. forgetting to
remove or add a line of code, test or verify
– 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.
– Overconfidence & use of non- standard or untested
algorithms; putting algorithms into the product line
because they seem to have worked on a few test runs.
Causes of Software Failures
Malice;
– software developers like any other
professionals, have malicious people in their
ranks.
– Bugs, viruses & worms have been embedded &
down loaded in software.
– It is possible to prevent or safeguard other types
of human errors but it is very hard to prevent
malice.
Causes of Software Failures…
• Complacency; (satisfaction or contentment )
– an individual or a software developer may
overlook certain testing & other error control
measures in those parts of software that were
tested previously in a similar or related product.
But no one software product can confirm to all
requirements in all environments.
Causes of Software Failures
• 2.Nature of the software;
• Complexity;
– software programming is very complex &
presents billions of possible out comes on the same
in put sequence.
– In software programming one can never be sure of
all the possibilities on any given in put sequence.
Causes of Software Failures…
• 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;
– software programming is easy to learn encouraging
many people with little formal training & education
in the field to start developing programs but are not
knowledgeable about good programming practices
or able to check for errors.
Causes of Software Failures…
• Misunderstanding of basic design
specifications; this affects the
subsequent design phases including
coding, documenting and testing.
Consumer Protection and the Law
• The software buyer needs to be more careful because
most software products do not always work as the
seller claims they do or at least as the buyer would
like them to.
• What can buyers do if the product just purchased
does not live up to expectations?
Buyers Rights…
• Product replacement;
– you may demand a product replacement if you think it will
solve the problem. Most developers usually do replace
faulty products
• Product update;
– when the product is found to have a fault that the provider
was not aware of at the time of shipping the product to the
market the producer may fix the fault by providing
upgrades of the product that can be shipped to all
customers who report that fault.
Legal Action
• If none of the above option prove viable, then
a legal action can be taken.
• A liability suit is filed in civil court against the
producer for damages.
• If the product resulted in a casualty, a criminal
suit against the producer can also be filed if
the customer believes there was criminal
intent.
The Contract Option
• A contract is a binding relationship between two or
more parties.
• A contract must satisfy;
– Mutual consent
• This is the meeting of mind on issues like price bargained, amount
paid or promised to pay,
• Legal capacity binding on the parties in the contract and any
agreement enforceable by law.
• In contract laws, a producer/developer can be sued
for breach of contract
Breach of Contract
• A contract entered into between two or more parties
and not performed as promised by either party can be
considered breached by the party not in compliance.
• If the complaint is not very serious the contract may
not be terminated, but the breaching party will be
asked to pay some damages.
Breach of Contract…
• If the breach is considered serious by one of the
parties it may cause the termination of the contract.
• In this case the offended party may demand damages
from the breaching party in the contract upon
satisfactory proof that there were indeed damages
resulting from contract breached.
The Contract Option
EXPRESS WARRANTY - An assertion or promise
concerning goods or services. E.g. "This air
conditioner will cool a five-room house," or "We will
repair any problems in the first year" are express
warranties.
– these are an affirmation of a fact, a promise, or a
description of goods, a sample, or a model made by the
seller to the buyer relating to the goods and as a basis for
payment negotiations.
– Express warranties are entered into when a producer agrees
to supply the product to the customer
EXPRESS WARRANTY
• Representations of fact about quality,
condition, description or performance.
• Goods must conform to model or sample.
• – Henley v. Philip Morris, Inc. (2004).
• Warranty must be “Basis of the Bargain.”
• Statements of Opinion do not create
express warranties
Express warranties…
– They involve promises made by the producer
through sales representatives and written materials
on packaging attesting to the quality of the product
and guidelines buyers must follow to get
detectable errors corrected by the producer.
Express warranties…
• Producers usually limit their liability on products by
stipulating the time frame on warranties and
contracts.
Implied Warranties…
• An implied warranty guarantees that a
product is of average quality and will
perform no less than similar products &
that it is fit for the intended use.
• There must be proof that the contract did
not exclude some features & that there is
no time limitation for reporting defects,
• Some companies stipulate time frame in
which defects must reported.
Disclaimers
• "visitors enter at their own risk",