Software crisis is a term used in the early days of
computing science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
for the difficulty of writing useful and efficient computer programs in the required time. The software crisis was due to the rapid increases in computer power and the complexity of the problems that could not be tackled. With the increase in the complexity of the software, many software problems arose because existing methods were inadequate.
The term "software crisis" was coined by some attendees at the first
NATO Software Engineering Conference in 1968 at
Garmisch
Garmisch-Partenkirchen (; Bavarian: ''Garmasch-Partakurch''), nicknamed Ga-Pa, is an Alpine ski town in Bavaria, southern Germany. It is the seat of government of the district of Garmisch-Partenkirchen (abbreviated ''GAP''), in the Ob ...
, Germany.
Edsger Dijkstra
Edsger Wybe Dijkstra ( ; ; 11 May 1930 – 6 August 2002) was a Dutch computer scientist, programmer, software engineer, systems scientist, and science essayist. He received the 1972 Turing Award for fundamental contributions to developing progra ...
's 1972
Turing Award
The ACM A. M. Turing Award is an annual prize given by the Association for Computing Machinery (ACM) for contributions of lasting and major technical importance to computer science. It is generally recognized as the highest distinction in compu ...
Lecture makes reference to this same problem:
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
*
Software was never delivered
The main cause is that improvements in computing power had outpaced the ability of programmers to effectively use those capabilities. Various
processes and methodologies have been developed over the last few decades to improve
software quality management
Software quality management (SQM) is a management process that aims to develop and manage the Software quality, quality of software in such a way so as to best ensure that the product meets the quality standards expected by the customer while also ...
such as
procedural programming
Procedural programming is a programming paradigm, derived from imperative programming, based on the concept of the '' procedure call''. Procedures (a type of routine or subroutine) simply contain a series of computational steps to be carrie ...
and
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pr ...
. However, software projects that are large, complicated, poorly specified, or involve unfamiliar aspects, are still vulnerable to large, unanticipated problems.
See also
*
AI winter
In the history of artificial intelligence, an AI winter is a period of reduced funding and interest in artificial intelligence research.[List of failed and overbudget custom software projects
This is a list of notable custom software projects which have significantly failed to achieve some or all of their objectives, either temporarily or permanently, and/or have suffered from significant cost overruns. For a list of ''successful'' maj ...](_blank)
*
Fred Brooks
Frederick Phillips Brooks Jr. (April 19, 1931 – November 17, 2022) was an American computer architect, software engineer, and computer scientist, best known for managing the development of IBM's System/360 family of computers and the O ...
*
System accident
*
Technological singularity
The technological singularity—or simply the singularity—is a hypothetical future point in time at which technological growth becomes uncontrollable and irreversible, resulting in unforeseeable changes to human civilization. According to the m ...
References
External links
Edsger Dijkstra: The Humble Programmer(PDF file, 473kB)
*
Brian Randell
Brian Randell (born 1936) is a British computer scientist, and Emeritus Professor at the School of Computing, Newcastle University, United Kingdom. He specialises in research into software fault tolerance and dependability, and is a noted aut ...
The NATO Software Engineering Conferences* Markus Bautsch: ''Cycles of Software Crises'' in
ENISA Quarterly on ''Secure Software''(PDF file; 1,86MB)
*
Hoare 1996
"How Did Software Get So Reliable Without Proof?"
{{DEFAULTSORT:Software Crisis
Software quality
Crisis
A crisis ( : crises; : critical) is either any event or period that will (or might) lead to an unstable and dangerous situation affecting an individual, group, or all of society. Crises are negative changes in the human or environmental affair ...