0% found this document useful (0 votes)
154 views20 pages

Software Development Ethical Issues

The document discusses strategies for engineering high-quality software. It notes that high-quality software must perform efficiently and reliably, operate safely, and meet user needs, which is important for fields like healthcare, transportation, and defense. However, developers often lack skills for designing quality from the start or fail to prioritize it due to time and budget pressures. The document advocates following rigorous development processes, continuous testing, and addressing defects early to develop software that fulfills its intended purpose.

Uploaded by

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

Software Development Ethical Issues

The document discusses strategies for engineering high-quality software. It notes that high-quality software must perform efficiently and reliably, operate safely, and meet user needs, which is important for fields like healthcare, transportation, and defense. However, developers often lack skills for designing quality from the start or fail to prioritize it due to time and budget pressures. The document advocates following rigorous development processes, continuous testing, and addressing defects early to develop software that fulfills its intended purpose.

Uploaded by

rhejlim6354
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Strategies for Engineering

Quality Software
High-quality software systems:
Perform quickly and efficiently
Operate safely and reliably
Meet their users needs
Are required to support the fields of:

Air traffic control


Nuclear power
Automobile safety
Health care
Military and defense
Space exploration

Ethics in Information Technology, Fourth Edition

Strategies for Engineering


Quality Software (contd.)
Increased demand for high-quality software
Software defect
Could cause a system to fail to meet users needs
Impact may be trivial or very serious
Subtle and undetectable or glaringly obvious

Software quality
Degree to which software meets the needs of users

Ethics in Information Technology, Fourth Edition

Strategies for Engineering


Quality Software (contd.)
Quality management
Defines, measures, and refines the quality of the
development process and products developed
Objective
Help developers deliver high-quality systems that meet the needs of users

Deliverables are products such as:


Statements of requirements
Flowcharts
User documentation

Ethics in Information Technology, Fourth Edition

Strategies for Engineering


Quality Software (contd.)
Primary cause for poor software quality:
Many developers do not know how to design quality into
software from the start
Or do not take the time to do so

Developers must:
Define and follow rigorous engineering principles
Learn from past mistakes
Understand systems operating environment
Design systems relatively immune to human error

Ethics in Information Technology, Fourth Edition

Strategies for Engineering


Quality Software (contd.)
Programmers make mistakes in turning design
specifications into code
About one defect for every 7-10 lines of code

Extreme pressure to reduce time to market


Driven by need to:
Deliver new functionality
Begin generating revenue to recover costs
Meet quarterly earnings forecasts

Resources and time to ensure quality are often cut

Ethics in Information Technology, Fourth Edition

Strategies for Engineering


Quality Software (contd.)
Ethical dilemma: how much additional cost and effort
should be expended to ensure products and services meet
customers expectations?
First release of software
Organizations avoid buying the first release
Or prohibit its use in critical systems
Usually has many defects

Established software products can also falter:


When operating conditions change

Ethics in Information Technology, Fourth Edition

The Importance of Software


Quality
Business information systems
Set of interrelated components including:

Hardware
Software
Databases
Networks
People
Procedures

Collect and process data and disseminate the


output

Ethics in Information Technology, Fourth Edition

The Importance of Software


Quality (contd.)
Business information system examples
Manufacturers order-processing system
Banks electronic-funds transfer system
Airlines online ticket reservation system

Decision support system (DSS)


Used to improve decision making

Software is used to control industrial processes


Software controls the operation of many industrial and
consumer products

Ethics in Information Technology, Fourth Edition

The Importance of Software


Quality (contd.)
Mismanaged software can be fatal to a
business

Ethical questions
How much effort and money to invest to ensure
high-quality software
Whether products could cause damage and what
the legal exposure would be if they did

Ethics in Information Technology, Fourth Edition

Software Product Liability


Product liability
Liability of manufacturers, sellers, lessors,
and others for injuries caused by defective
products

Strict liability
Defendant held responsible for the injury
Regardless of negligence or intent

Ethics in Information Technology, Fourth Edition

Software Product Liability


(contd.)
Strict liability
Plaintiff must prove only that the software product is
defective or unreasonably dangerous and that the defect
caused the injury
No requirement to prove that the manufacturer was
careless or negligent or to prove who caused the defect
All parties in the chain of distribution are liable
Manufacturer
Subcontractors
Distributors

Ethics in Information Technology, Fourth Edition

Software Product Liability


(contd.)
Negligence
Failure to do what a reasonable person would do,
or doing something that a reasonable person
would not do
Responsibility is limited to defects that could
have been detected and corrected through
reasonable software development practices

Ethics in Information Technology, Fourth Edition

Software Product Liability


(contd.)
Negligence
Area of great risk for software
manufacturers
Defense of negligence may include:
Legal justification for the alleged misconduct
Demonstration that the plaintiffs own actions
contributed to injuries (contributory negligence)

Ethics in Information Technology, Fourth Edition

Software Product Liability


(contd.)
Warranty
Assures buyers or lessees that a product meets certain
standards of quality
May be expressly stated or implied by law

Breach of warranty claim


When the product fails to meet the terms of its warranty
Plaintiff must have a valid contract that the supplier did
not fulfill
Can be extremely difficult to prove because the software
supplier writes the warranty to limit liability

Ethics in Information Technology, Fourth Edition

Software Product Liability


(contd.)
Intentional misrepresentation
Seller or lessor either misrepresents the quality
of a product or conceals a defect in it
Forms of representation

Advertising
Salespersons comments
Invoices
Shipping labels

Ethics in Information Technology, Fourth Edition

Software Development Process


Large software project roles
System analysts
Programmers
Architects
Database specialists
Project managers
Documentation specialists
Trainers
Testers

Ethics in Information Technology, Fourth Edition

Software Development Process


(contd.)
Software development methodology
Standard, proven work process
Controlled and orderly progress
Defines activities in software development process
Defines individual and group responsibilities
Recommends specific techniques for activities
Offers guidelines for managing the quality of software
during various stages of development

Ethics in Information Technology, Fourth Edition

Software Development Process


(contd.)
Easier and cheaper to avoid software problems at
the beginning than to attempt to fix damages
after the fact
Cost to identify and remove a defect in an early stage can
be up to 100 times less than removing a defect in
distributed software
Identify and remove errors early in the development
process
Cost-saving measure
Most efficient way to improve software quality

Ethics in Information Technology, Fourth Edition

Software Development Process


(contd.)
Effective methodology protects from legal liability
Reduces the number of software errors
If an organization follows widely accepted development
methods, negligence on its part is harder to prove

Software quality assurance (QA) refers to


methods within the development cycle
Guarantee reliable operation of product
Are applied at each stage in the development cycle
Include testing before the product ships

Ethics in Information Technology, Fourth Edition

10

Software Development Process


(contd.)
Dynamic testing
Black-box testing
Tester has no knowledge of code

White-box testing
Testing all possible logic paths in the software unit, with
thorough knowledge of the logic
Makes each program statement execute at least once

Ethics in Information Technology, Fourth Edition

Software Development Process


(contd.)
Static testing
Static analyzers are run against the new code
Looks for suspicious patterns in programs that might indicate a
defect

Integration testing
Occurs after successful unit testing
Software units are combined into an integrated subsystem
Ensures that all linkages among various subsystems work successfully

Ethics in Information Technology, Fourth Edition

11

Software Development Process


(contd.)
System testing
Occurs after successful integration testing
Various subsystems are combined
Tests the entire system as a complete entity

User acceptance testing


Independent testing performed by trained end users
Ensures that the system operates as they expect

Ethics in Information Technology, Fourth Edition

Key Issues in Software


Development
Consequences of software defects in
certain systems can be deadly
Companies must take special precautions

Ethical decisions involve a trade-off


between quality and cost, ease of use,
and time to market

Ethics in Information Technology, Fourth Edition

12

Development of Safety-Critical
Systems
Safety-critical system
A system whose failure may cause injury or death
Examples

Automobiles antilock brakes


Nuclear power plant reactors
Airplane navigation
Roller coasters
Elevators
Medical devices

Ethics in Information Technology, Fourth Edition

Development of Safety-Critical
Systems (contd.)
Key assumption
Safety will not automatically result from following the
organizations standard development methodology

Requires a more rigorous and time-consuming


development process than other kinds of software
All tasks require:
Additional steps
More thorough documentation
Vigilant checking and rechecking

Ethics in Information Technology, Fourth Edition

13

Development of Safety-Critical
Systems (contd.)
Project safety engineer
Explicit responsibility for the systems safety
Uses a logging and monitoring system:
To track hazards from the projects start to finish

Hazard log
Used at each stage of the software development
process to assess how project team has
accounted for detected hazards

Ethics in Information Technology, Fourth Edition

Development of Safety-Critical
Systems (contd.)
Safety reviews
Held throughout the development process

Robust configuration management system


Tracks all safety-related documentation

Formal documentation required


Including verification reviews and signatures

Key issues
Ethical dilemmas re: increased time and expense
Deciding when QA staff has performed enough testing

Ethics in Information Technology, Fourth Edition

14

Development of Safety-Critical
Systems (contd.)
Risk
Probability of an undesirable event occurring
times the magnitude of the events
consequences
Consequences include:

Damage to property
Loss of money
Injury to people
Death

Ethics in Information Technology, Fourth Edition

Development of Safety-Critical
Systems (contd.)
Redundancy
Provision of multiple interchangeable
components to perform a single function
Used to cope with failures and errors
During times of widespread disaster, lack
of sufficient redundant can lead to major
problems

Ethics in Information Technology, Fourth Edition

15

Development of Safety-Critical
Systems (contd.)
N-version programming
Form of redundancy
Involves the execution of a series of program
instructions simultaneously by two different
systems
Uses different algorithms to execute instructions
that accomplish the same result

Ethics in Information Technology, Fourth Edition

Development of Safety-Critical
Systems (contd.)
N-version programming (contd.)
Results from the two systems are compared
If a difference is found, another algorithm is executed to
determine which system yielded the correct result
Instructions for the two systems can be:
Written by programmers from two different companies
Run on different hardware devices

Rationale
Both systems are highly unlikely to fail at the same time under the same
conditions

Ethics in Information Technology, Fourth Edition

16

Development of Safety-Critical
Systems (contd.)
Decide what level of risk is acceptable
Difficult and controversial decision
Make system modifications if level of risk is judged to be
too great

Mitigate the consequences of failure


Devise emergency procedures and evacuation plans

Decide whether to recall a product:


When data indicates a problem

Ethics in Information Technology, Fourth Edition

Development of Safety-Critical
Systems (contd.)
Reliability
Probability of a component or system performing without
failure over its product life

Human interface
Important and difficult area of safety-critical system
design
Should leave the operator little room for erroneous
judgment
Poor design of a system interface can greatly increase risk

Ethics in Information Technology, Fourth Edition

17

Quality Management
Standards
ISO 9001 family of standards
Guide to quality products, services, and
management
Organization must submit to an examination by
an external assessor
Requirements
Written procedures for everything it does
Follow those procedures
Prove to the auditor the organization fulfilled the first two
requirements

Ethics in Information Technology, Fourth Edition

Quality Management
Standards (contd.)
Failure mode and effects analysis (FMEA)
Technique used to evaluate reliability and determine the
effect of system and equipment failures
Failures are classified by:

Impact on a projects success


Personnel safety
Equipment safety
Customer satisfaction and safety

Goal
Identify potential design and process failures early in a project

Ethics in Information Technology, Fourth Edition

18

Summary
Demand for high-quality software is increasing
Developers are under extreme pressure to reduce
time to market of products
Software product liability claims are frequently
based on:
Strict liability
Negligence
Breach of warranty
Misrepresentation

Ethics in Information Technology, Fourth Edition

Summary (contd.)
Software development methodology
Defines activities in the development process
Defines individual and group responsibilities
Recommends specific techniques
Offers guidelines for managing product quality

Safety-critical system
Failure may cause injury or death

Ethics in Information Technology, Fourth Edition

19

Summary (contd.)
ISO 9001 standard is a guide to quality
products, services, and management
Failure mode and effects analysis (FMEA) is
an important technique used to develop ISO
9001-compliant quality systems

Ethics in Information Technology, Fourth Edition

20

You might also like