Presentation on theme: "Exploding Programs How to write code that can't be killed Rob Miles Department of Computer Science, Hull University."— Presentation transcript:
Exploding Programs How to write code that can't be killed Rob Miles Department of Computer Science, Hull University
Software Software is useful stuff But it doesn't always work Programmers can get the program wrong Users can do stupid things Nasty users can do bad things With more of our lives being controlled by computers, this is a problem
Bugs The first "bug" was found in 1945 by Captain Grace Hopper in the circuits of an early computer It had caused the program to fail The name stuck, but most bugs are not caused by hardware
The MISSINGNO Monster The Nintendo Pokemon Red and Blue games had a strange monster which did not exist! Each monster has a particular number and this is used to find the image and description of that monster in a list But not all the numbers match images and descriptions So the program prints that the name is missing, and can't find the picture This was not spotted in playtesting
Trend Micro In April this year Tokyo based Trend Micro released a bugged version of their Anti- Virus software This caused computers to "hang" as it took over the processor It affected over 28,000 customers and 700 companies They had to set up a special call centre and buy adverts to alert users It cost them 8 million dollars to recover
Toyota Prius The Toyota Prius is a hybrid powered car with both a petrol and an electric motor A bug in the software is causing the petrol engine to shut down when driving 23,900 cars are affected by the problem They will all need a software upgrade which takes an hour to complete
The Arianne Rocket Because a number got too big to be held in the memory of the computer, the guidance system in the Arianne 5 rocket failed and the rocket was destroyed The program that failed had been left to run for too long Because the new rocket was faster the numbers got too big The happiest man on the day was the one who wrote the "self destruct" program!
What causes bugs? There are a variety of reasons why a program can go wrong Program solves the wrong problem Program is not written correctly Right program is used in wrong situation Something goes wrong with the hardware All these mistakes can cause bugs..and we have not even considered naughty users yet!
As an example…. We could consider the issues that you have to address when you write code The problem we are going to solve is very simple We are going to implement the behaviour of a Cash Dispenser