Software bug

From Citizendium
Revision as of 14:56, 10 May 2007 by imported>Ed Poor (bugs involving spaceships and airplanes)
Jump to navigation Jump to search

A software bug is an error in a computer program. The term comes from hardware engineering, where a design flaw in a circuit or other product was called a "bug".

When undetected, software bugs can wreak havoc or just be mildly annoying. The most common bugs deal with memory allocation or pointer arithmetic. The program will place or look for information in the wrong location. This is the hardest type of error to detect, and is common in C and C++ programs. Java is not susceptible to this type of error, as all memory operations are handled and checked by the virtual machine.

Some of the worst software errors include a faulty conversion of linear measurement which caused a Mars probe to crash into the planet (kilometers were confused with miles), and the Ariadne rocket which self-destructed because a test routine meant to run only when the rocket was stationary was permitted to run while the rocket was in flight.

Programmers are divided on whether design flaws should be classed with coding errors as "bugs", but customers consider them to be software defects. One such flaw permitted an airline pilot to pick the wrong airport code from a menu, whereupon the plane flew itself into the side of mountain. The flaw was in the total logic of the system, which should have alerted the pilot to his unwise choice or simply rejected it.