Software Development Ethical Issues
Software Development Ethical Issues
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:
Software quality
Degree to which software meets the needs of users
Developers must:
Define and follow rigorous engineering principles
Learn from past mistakes
Understand systems operating environment
Design systems relatively immune to human error
Hardware
Software
Databases
Networks
People
Procedures
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
Strict liability
Defendant held responsible for the injury
Regardless of negligence or intent
Advertising
Salespersons comments
Invoices
Shipping labels
10
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
Integration testing
Occurs after successful unit testing
Software units are combined into an integrated subsystem
Ensures that all linkages among various subsystems work successfully
11
12
Development of Safety-Critical
Systems
Safety-critical system
A system whose failure may cause injury or death
Examples
Development of Safety-Critical
Systems (contd.)
Key assumption
Safety will not automatically result from following the
organizations standard development methodology
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
Development of Safety-Critical
Systems (contd.)
Safety reviews
Held throughout the development process
Key issues
Ethical dilemmas re: increased time and expense
Deciding when QA staff has performed enough testing
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
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
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
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
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
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
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
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:
Goal
Identify potential design and process failures early in a project
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
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
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
20