Bifalgorithm post · Computer science one · Error Handling

What are software bugs and why can they cause serious failures?

What are software bugs and why can they cause serious failures? (Computer science one · Error Handling) — "Writing perfect code is difficult. The more complex…

Ideas in this flowchart

  • Software bugs make perfect code difficult and can cause serious failures.
  • As systems and code bases become more complex, the likelihood of bugs increases.
  • A bug is a flaw or mistake in a program that causes incorrect behavior or unintended consequences.
  • The term “bug” has a long engineering history.
  • The term was used in engineering before becoming associated with computer systems.
  • Grace Hopper popularized the term after tracing a 1946 Naval Mark II malfunction to a moth trapped in a relay.
  • Modern engineering failures demonstrate the potentially severe effects of software bugs.
  • In 1983, a Soviet early warning system falsely indicated that the United States had launched nuclear missiles.
  • Stanislav Petrov distrusted the new system and did not report the alert to his superiors.
  • The false alarm resulted from sunlight reflections off high-altitude clouds and other system bugs.
  • In 1999, the Mars Climate Orbiter was lost after entering the Martian atmosphere.
  • A subsystem used pound force per second instead of the standard newton second unit expected by the other systems.
  • The Mars Climate Orbiter loss cost more than 125 million dollars.
  • Other bugs have caused user inconvenience, medical-device deaths, and losses of millions of dollars.
  • Software engineering differs from physical engineering because software is highly sensitive to very small errors.
  • Forgetting one character or changing one number in a program can cause complete system failure.
Feed/

What are software bugs and why can they cause serious failures?

No cover

Channel

Computer science one

1 page

"Writing perfect code is difficult. The more complex a system or code base, the more likely it is to have bugs. That is, flaws or mistakes in a program that result in incorrect behavior or unintended consequences. The term “bug” has been used in engineering for quite a while. The term was popularized in the context of computer systems by Grace Hopper who, when working on the Naval Mark II computer in 1946, tracked a malfunction to a literal bug, a moth, trapped in a relay [2]. Some of the biggest modern engineering failures can be tracked to simple software bugs. For example, on September 26th, 1983 a newly installed Soviet early warning system gave indication that nuclear missiles had been launched on the Soviet Union by the United States. Stanislav Petrov, a lieutenant colonel in the Soviet Air Defense Forces and duty officer at the time, did not trust the new system and did not report the incident to superiors who may have ordered a counter strike. Petrov was correct as the false alarm was caused by sunlight reflections off of high altitude clouds as well as other bugs in the newly deployed system [28]. In September 1999 the Mars Climate Orbiter, a project intended to study the Martian climate and atmosphere was lost after it entered into the upper atmosphere of Mars and disintegrated. The error was due to a subsystem that measured the craft’s momentum in a non-standard pound force per second unit when all other systems expected the standard newton second unit [ 1 ]. The loss of the project was calculated at over $125 million. There are numerous other examples, some that have caused inconvenience to users (such as the Zune bug mentioned in Section 4.5.2) to bugs in medical devices that have cost dozens of lives to those resulting in the loss of millions of dollars [6]. In some sense, Software Engineering and programming is unique. If you build a bridge and forget one bolt its likely not going to cause the bridge to collapse. If you draw up plans for a development and the land survey is a few inches off overall, its not a catastrophic problem. However, if you forget one character or are off by one number in a program, it can cause a complete system failure."

Flowchart preview
👍
0
0 comments0 shares

Sign in to view and post comments.