Ethics for the Information AgeForth Edition by Michael J. Quinn Chapter 7: Computer Reliability
Chapter Overview • Introduction • Data-entry or data-retrieval errors • Software and billing errors • Notable software system failures • Therac-25 • Computer simulations • Software engineering • Software warranties
Introduction • Computer systems are sometimes unreliable • Erroneous information in databases • Misinterpretation of database information (similar names) • Malfunction of embedded systems (fatal errors) • Effects of computer errors • Inconvenience (incorrect bill) • Bad business decisions • Fatalities
Data-Entry or Data-Retrieval Errors • A computerized system may fail because wrong data entered into it • A computerized system may fail because people incorrectly interpret data they retrieve
Disfranchised Voters • November 2000 general election • Florida disqualified thousands of voters • Reason: People identified as felons • Cause: Incorrect records in voter database • Consequence: May have affected election’s outcome
Thu 5-12 False Arrests • Sheila Jackson Stossier mistaken for Shirley Jackson at airport. • Arrested and spent five days in detention • Roberto Hernandez mistaken for another Roberto Hernandez • Arrested twice and spent 12 days in jail • Terry Dean Rogan arrested after someone stole his identity • Arrested five times, three times at gun point
Position of Privacy Advocates • Number of records is increasing • More erroneous records more false arrests • Accuracy of crime records more important than ever
Sun 26-4 Software and Billing Errors • Assume data correctly fed into computerized system • System may still fail if there is an error in its programming (a bug)
Errors Leading to System Malfunctions • Qwest sends incorrect bills to cell phone customers ($600/minute) • A bill of more than $57,000 for a customer • Spelling and grammar error checkers increased errors (University documents) • BMW on-board computer failure (Thailand finance minister was trapped in his BMW)
Tue 27-11 Errors Leading to System Failures • Temporarily out-of-control Boeing 777 Malaysian plane over the Indian ocean-autopilot error (2005) • Japan’s air traffic control system went down for an hour (2003) some flight were delayed • Emergency calls were put on hold for 30 minutes, ambulances took 3 hours to respond 20 people died because the computerized dispatch system of London has a failure.
Analysis: E-Retailer Posts Wrong Price, Refuses to Deliver • In (2005) Amazon.com in its British website offered iPaq (handheld computers – pocket PCs) for £7 instead of £275 • Orders flooded in • Amazon.com shut down site, refused to deliver unless customers paid true price • Was Amazon.com wrong to refuse to fill the orders?
Mon 14-7 Notable Software System Failures • Patriot Missile (28 soldiers killed in 1991) – insufficient precision in an floating-point variable (system clock) • Ariane 5 is a satellite launch vehicle self-destructed in 1996 ($500 million not insured) – software error • In 1990, AT&T long-distance network (70 million calls couldn’t be made and 60,000 people lost service because routing switches crashed) • In 2000, direct recording electronic voting machines registered either no or multiple choice. • In 1987, Therac-25 (3 patients killed out of 6 patients) - software error resulted in overdoses.
Sun 23-4 Direct Recording Electronic Voting Machines • After problems with 2000 election, punch card voting systems were replaced by direct recording electronic (DRE) voting machines – touch screen • Brazil and India have run national elections using DRE voting machines exclusively • In November 2006 1/3 of U.S. voters used DRE voting machines
Issues with DRE Voting Machines • Voting irregularities (due to programming errors) • Failure to record votes • Overcounting votes • Misrecording votes • Lack of a paper audit trail • Vulnerability to tampering • Source code a trade secret, can’t be examined to find out how secure it is. • Possibility of widespread fraud through malicious programming – change programs
Moral Responsibility of the Therac-25 Team • Conditions for moral responsibility • Causal condition: actions (or inactions) caused the harm • Mental condition • Actions (or inactions) intended or willed -OR- • Moral agent is careless, reckless, or negligent • Therac-25 team morally responsible • They constructed the device that caused the harm • They were negligent
Sun 22-4 Uses of Computer Simulations • Simulations replace physical experiments. Why? • Experiment too expensive or time-consuming • Experiment unethical • Experiment impossible (evolution of the universe) • Examples of uses of simulations: • Model past events (Evolution of the universe) • Understand world around us (Search for Oil) • Predict the future (weather predictions)
Thu 11-12 Validating Simulations • Erroneous Simulation because of : • Bugs in SW • Model uses SW is flawed • Solutions: • Validation: Does the model accurately represent the real system? • Validation is to check whether software meets the customer expectations and requirements (Specs) • Verification: Does program correctly implement model? • Verification is to check whether the software conforms to specifications (Implementation) • Validation methods • Make prediction, wait to see if it comes true (Car crash) • Predict the present from old data (Weather forecast) • Test credibility with experts and decision makers
Validating Simulations • Validation: Are we building the right system? • Verification: Are we building the system right? • Validation is concerned with checking that the system will meet the customer’s actual needs, while verification is concerned with whether the system is well-engineered, error-free, and so on. Verification will help to determine whether the software is of high quality, but it will not ensure that the system is useful.
Wed 16-7 Software Engineering • SE is a four steps process: • Specs: determine the functions to be performed • Development: produce SW that meet specs. • Validation: testing the SW • Evolution: Modify SW to meet change requirements
Software Engineering: Specification • Followed SW Crises in 1960s • Specifications of SE: • Determine system requirements • Understand constraints • Determine feasibility (Budget and schedule) • End products • High-level statement of requirements (Summary) • Mock-up of user interface • Low-level requirements statement (Detailed)
Software Engineering: Development • Create high-level design • Discover and resolve mistakes, omissions in specification • CASE tools to support design process • Object-oriented systems have advantages • After detailed design, actual programs written • Result: working software system
Software Engineering: Validation (Testing) • Ensure software satisfies specification • Ensure software meets user’s needs • Challenges to testing software • Noncontinuous responses to changes in input. No identical data set of inputs • Exhaustive testing impossible. Infinite number of different inputs • Testing reveals bugs, but cannot prove none exist • Test modules, then subsystems, then system
17-7 Software Quality Is Improving • Standish Group tracks IT projects • Situation in 1994 • 1/3 projects cancelled before completion • 1/2 projects had time and/or cost overruns • 1/6 projects completed on time / on budget • Situation in 2006 • 1/6 projects cancelled • 1/2 projects had time and/or cost overruns • 1/3 projects completed on time / on budget
Shrinkwrap Warranties • Some say you accept software “as is” • Some offer 90-day replacement or money-back guarantee • None accept liability for harm caused by use of software
Moral Responsibility of Software Manufacturers • If vendors were responsible for harmful consequences of defects • Companies would test software more • They would purchase liability insurance • Software would cost more • Start-ups would be affected more than big companies and thus • Less innovation in software industry • Software would be more reliable • Making vendors responsible for harmful consequences of defects may be wrong • Consumers should not have to pay for bug fixes