Sie sind auf Seite 1von 11

SOFTWARE ISSUES: RISKS AND

LIABILITIES
J.M. Kizza, Ethical and Social Issues in the
Information Age, Texts in Computer Science, 157
DEFINITIONS…
 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. Standard
2. Reliability
3. Security
4. Safety
5. Quality
2
DEFINITIONS…
(1) Standards – universally accepted level of confidence

 Standards depend on:


 Development testing (series of random tests)

 Verification and Validation(static formal mathematical techniques

(2) Reliability – Software reliability - is the probability that


the software does not encounter an input sequence
resulting into failure.
 A software product, therefore, is reliable if it can continue to
function on numerous unpredictable input sequences

Ethical and Social...J.M.Kizza 3


DEFINITIONS…

 (3) security-
 more security attacks on systems through software “holes”
than hardware (piracy, deletion, and alteration of
programs and data)
According to Neumann
 improper encapsulation, inheritance of unnecessary
privileges, and inadequate enforcement of polymorphism
are the most common sources of software security flaws.
A computer system software can be protected from
undetected modification through
 strong and sound design principles
 enforcement of proper encapsulation
 separation of all privileges, and ethical education of
system developers
 users about security issues

Ethical and Social...J.M.Kizza 4


DEFINITIONS…
 (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.
 good and safe software depends on

 good programming practice, which includes control techniques,


application of various types of safety, analysis during the
development cycle, and evaluation of the effectiveness of these
techniques.
Ethical and Social...J.M.Kizza 5
DEFINITIONS…
 (5) Quality- a software product has quality if it
maintains a high degree of excellence in standards,
security, safety and dependability.

 Apply quality improvements techniques (total quality


management (TQM).
 A TQM technique that tries to improve software quality
through a software development process known as the
software quality function development (SQFD)
 focus on user specification in this early phase leads to fewer
design changes and reduces transfer errors across design
phases.

Ethical and Social...J.M.Kizza 6


QUALITY OF SERVICE
 For a software product, quality of service (QoS)
means providing consistent, predictable service delivery that will
satisfy customer application requirements.
Example,
For Internet, QoS would mean that the network elements like
routers and hosts expect a high level of assurance that its traffic
and service requirements can be satisfied.
This requirement and expectations are important because the
working and the architecture of the Internet are based on “dumb”
network concept, which at its simplest involves two smart end
routers, one transmitting and one receiving and no intelligence in
between. Then datagrams with source and destination addresses
traverse a network of routers independently as they move from the
sender to the receiver.
IP provides only an addressing mechanism and nothing else. It
provides no guarantees of the delivery of any independent
datagram in the network. So QoS is needed in network protocols.
CAUSES OF SOFTWARE FAILURES
 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.

Ethical and Social...J.M.Kizza 8


 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 product can conform to all requirements in
all environments.

Ethical and Social...J.M.Kizza 9


 Nature of software
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.
Ethical and Social...J.M.Kizza 10
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 11

Das könnte Ihnen auch gefallen