Tuesday, November 6, 2007
A software bug (or "bug") is an error, flaw, mistake, failure, or fault in a computer program that prevents it from behaving as intended (e.g., producing an incorrect result). Most bugs arise from mistakes and errors made by people in either a program's source code or its design, and a few are caused by compilers producing incorrect code. A program that contains a large number of bugs, and/or bugs that seriously interfere with its functionality, is said to be buggy. Reports detailing bugs in a program are commonly known as bug reports, fault reports, problem reports, trouble reports, change requests, and so forth.
Bugs can have a wide variety of effects, with varying levels of inconvenience to the user of the program. Some bugs have only a subtle effect on the program's functionality, and may thus lie undetected for a long time. More serious bugs may cause the program to crash or freeze leading to a denial of service. Others qualify as security bugs and might for example enable a malicious user to bypass access controls in order to obtain unauthorized privileges.
The results of bugs may be extremely serious. A bug in the code controlling the Therac-25 radiation therapy machine was directly responsible for some patient deaths in the 1980s. In 1996, the European Space Agency's US$1 billion prototype Ariane 5 rocket was destroyed less than a minute after launch, due to a bug in the on-board guidance computer program. In June 1994, a Royal Air Force Chinook crashed into the Mull of Kintyre, killing 29. This was initially dismissed as pilot error, but an investigation by Computer Weekly uncovered sufficient evidence to convince a House of Lords inquiry that it may have been caused by a software bug in the aircraft's FADEC. [2] [3]
Etymology
Bugs are a consequence of the nature of the programming task. Some bugs arise from simple oversights made when computer programmers write source code carelessly or transcribe data incorrectly. Many off-by-one errors fall into this category. Other bugs arise from unintended interactions between different parts of a computer program. This happens because computer programs are often complex, often having been programmed by several different people over a great length of time, so that programmers are unable to mentally keep track of every possible way in which different parts can interact. Many race condition bugs fall into this category.
The computer software industry has put a great deal of effort into finding methods for preventing programmers from inadvertently introducing bugs while writing software. These include:
Bugs are often created by typos that are not caught by the compiler. Various innovations in programming style and defensive programming are designed to make these bugs less likely, or easier to spot.
Bugs often create inconsistencies in the internal data of a running program. Programs can be written to check the consistency of their own internal data while running. If an inconsistency is encountered, the program can immediately halt, so that the bug can be located and fixed. Alternatively, the program can simply inform the user, attempt to correct the inconsistency, and continue running.
There are several schemes for managing programmer activity, so that fewer bugs are produced. Many of these fall under the discipline of software engineering (which addresses software design issues as well.) For example, formal program specifications are used to state the exact behavior of programs, so that design bugs can be eliminated.
Programming languages often include features which help programmers deal with bugs, such as exception handling. In addition, many recently-invented languages have deliberately excluded features which can easily lead to bugs. For example, the Java programming language does not support pointer arithmetic.
Prevention
Subscribe to:
Post Comments (Atom)
Blog Archive
-
▼
2007
(102)
-
▼
November
(30)
- In Hinduism, Durga (Sanskrit: "the inaccessibl...
- The European Patent Organisation (EPO or EPOrg T...
- Montevideo (IPA: [monteβi'deo]) is the largest c...
- Wenzhou (Simplified Chinese: 温州; Traditional C...
- Habitat destruction is a process of land use c...
- The High School of Dundee, informally Dundee Hi...
- Founding Director D.W. Griffith joined Biograph ...
- Belgrave is an area in northern Leicester, Engla...
- Gil Scott-Heron (born April 1, 1949) is an Ameri...
- Palenque is a Maya archeological site near the U...
- Nikolai Alexandrovich Berdyaev (Николай Александ...
- The Battle of Saint Gotthard (Hungarian: Szentgo...
- For a high school academic guidance plan, see ...
- The Cracovia Marathon is an annual marathon he...
- An airship or dirigible is a buoyant lighter-tha...
- Guardian First Book Award issued before 1999 as ...
- This article is part of the series: Politics and...
- Wu Zetian (Simplified Chinese: 武则天; Traditional ...
- Infosphere is a neologism coined by Luciano Fl...
- The Vicksburg Campaign was a series of battles a...
- The Tao (Traditional Chinese: 達悟族), commonly k...
- The Ronettes were a girl group of the 1960s fr...
- Arms of the AHS (emblazoned by Alexander Kurov)...
- Crew M. Scott Carpenter Backup crew Mass: ...
- A software bug (or "bug") is an error, flaw, mis...
- Events 1578 - Agostino Agazzari, Italian compos...
- The Territoire de Belfort is a department in the...
- The Atlanta Thrashers are a professional ice hoc...
- A godparent, in many denominations of Christia...
- As Player As Manager Harold Abraham McRae (bor...
-
▼
November
(30)
No comments:
Post a Comment