Handbook of Reliability Engineering

Siddhartha R.Dalal
Software development, design, and testing have become very intricate with the advent of modern highly distributed systems, networks, middleware, and interdependent applications. The demand for complex software systems has increased more rapidly than the ability to design, implement, test, and maintain them, and the reliability of software systems has become a major concern for our modern society. Within the last decade of the 20th century and the first few years of the 21st century, many reported system outages or machine crashes were traced back to computer software failures. Consequently, recent literature is replete with horror stories due to software problems.
Even discounting the costly Y2K problem as a design failure, a problem that occupied tens of thousands of programmers in 1998 99 with the costs running to tens of billions of dollars, there have been many other critical failures. Software failures have impaired several high-visibility programs in space, telecommunications, defense and health industries. The Mars Climate Orbiter crashed in 1999. The Mars Climate Orbiter Mission Failure Investigation Board [1] concluded that The root cause of the loss of the spacecraft was the failed translation of English units into metric units in a segment of ground-based, navigation-related mission software, . Besides...