Software crisis
Encyclopedia
Software crisis is the term used in early days of computing science. The term was used to describe the impact of rapid increases in computer power and the complexity of the problems that could be tackled. In essence, it refers to the difficulty of writing correct, understandable, and verifiable
Formal verification
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics .- Usage :Formal verification can be...

 computer programs. The roots of the software crisis are complexity, expectations, and change.

The term "software crisis" was coined by some attendees at the first NATO Software Engineering Conference in 1968 at Garmisch, Germany. An early use of the term is in Edsger Dijkstra
Edsger Dijkstra
Edsger Wybe Dijkstra ; ) was a Dutch computer scientist. He received the 1972 Turing Award for fundamental contributions to developing programming languages, and was the Schlumberger Centennial Chair of Computer Sciences at The University of Texas at Austin from 1984 until 2000.Shortly before his...

's 1972 ACM Turing Award Lecture:
The causes of the software crisis were linked to the overall complexity of hardware and the software development process. The crisis manifested itself in several ways:Projects running over-budget .Projects running over-time .Software was very inefficient. Software was of low quality. Software often did not meet requirements.Projects were unmanageable and code difficult to maintain.
Spaghetti code
Spaghetti code is a pejorative term for source code that has a complex and tangled control structure, especially one using many GOTOs, exceptions, threads, or other "unstructured" branching constructs. It is named such because program flow tends to look like a bowl of spaghetti, i.e. twisted and...

Software was never delivered
Vaporware
Vaporware is a term in the computer industry that describes a product, typically computer hardware or software, that is announced to the general public but is never actually released nor officially canceled. Vaporware is also a term sometimes used to describe events that are announced or predicted,...

.

Many of the software problems were caused by increasingly complex hardware. In his essay, Dijkstra noted that the newer computers in his day "embodied such serious flaws that [he] felt that with a single stroke the progress of computing science had been retarded by at least ten years". He also believed that the influence of hardware on software was too frequently overlooked.

Various processes and methodologies have been developed over the last few decades to improve software quality management
Software quality management
- Definitions : The aim of Software Quality Management is to manage the quality of software and of its development process. A quality product is one which meets its requirements and satisfies the user...

, with varying degrees of success. However, it is widely agreed that there is no "silver bullet"
No Silver Bullet
"No Silver Bullet — Essence and Accidents of Software Engineering" is a widely discussed paper on software engineering written by Fred Brooks in 1986...

― that is, no single approach that will prevent project overruns and failures in all cases. In general, software projects that are large, complicated, poorly-specified, and involve unfamiliar aspects, are still particularly vulnerable to large, unanticipated problems.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK