Software Dependability Copyright Notice - © ACT Europe under the GNU Free Documentation License - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; provided its original author is mentioned and the link to http://libre.act-europe.fr/ is kept. A copy of the license is included in available at: - http://www.fsf.org/licenses/fdl.html Useful Books - Programming in Ada 95 * by John Barnes (Addison Wesley) - High Integrity Ada: The SPARK Approach * by John Barnes (Addison Wesley) - Object-Oriented Software Construction * by Bertrand Meyer (Prentice Hall) - Objects Unencapsulated: Java, Eiffel, and C++ * by Ian Joyner (Prentice Hall) - C Traps and Pitfalls * by Andrew Koenig (Addison Wesley) - Effective C++ * by Scott Myers (Addison Wesley) Relevant Links - http://www.fsf.org * The site of the GNU project and the Free Software Foundation - http://libre.act-europe.fr * Interesting Free Software projects written in Ada 95 - http://www.adahome.com/Tutorials/Lovelace/lovelace.htm * Lovelace, on-line Ada 95 tutorial - http://www.adaic.com/whyada/ada-vs-c/cada_art.html * Comparing Development Costs of C and Ada Software Dependability The Blue Screen of Death More BSOD Embarrassments Software Dependability - Dependability /= usability * A word processor, for example, must be usable, not necessarily dependable! Warning about Defect Rates Software Failures: Availability - Denial-of-service attacks * Example: attack against GRC.com ­ Attacked by 195 Windows 2000 servers running insecure versions of Microsoft's IIS web server. IIS was the apparent point of hacker entry into the system Software Failures: Reliability - January 15, 1990: 9 hour nation-wide telecom shutdown * 1 month earlier ATT updated its software in 114 switching stations * Cause: 1 misplaced “break” statement in a C program - January 2001: 230,000 units new Internet-enabled mobile phone recalled * Users reported that their phones were freezing after accessing certain Web sites, and when they were powered back on, all stored information (addresses, e-mails, bookmarks, memos) had been lost - Matracom 6500 PABX (telephone switch) * Random phone messages are garbled * Long phone calls are cut - Windows 95/98/ME/2000 * September 1997: propulsion system of the USS Yorktown ship failed ­ Cause: Windows NT 4.0 crashed * Personal experience: Installed an HP scanner on a SONY VAIO with Windows 2000. Now I cannot enter suspend mode and when I try the screen disappears until powered-off (with loss of work :() Software Failures: Safety - 1986: Therac 25 radiation machine kills patients * Cause: poor testing of the software - June 4, 1996: maiden flight of Ariane 5 failed: rocket destroyed * Cause: Code from Ariane 4 guidance system reused in Ariane 5 but not tested - 2000: Deadly accident in French highway * Cause: Software malfunction in car braking system. Car manufacturer acknowledges responsibility Software Failures: Security - November 2, 1988 Internet Worm * A self-replicating program was released upon the Internet * This program (a worm) invaded VAX and Sun computers running versions of Berkeley UNIX, and used their resources to attack still more computers. * Within hours this program had spread across the U.S., infecting thousands of computers and making many of them unusable due to the burden of its activity. * Cause: undetected buffer overflow in C routine gets() - Many more interesting virus stories (especially on Windows …) 1 in 3 Software Projects Doesn’t Even Get There! - US Internal Revenue Service Modernization * $4 Billion, dropped in early 1997 - FBI Fingerprint system * $500 million, dropped - Bell Atlantic 411 * November 1996, outage, backed out of upgrade