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