Software crisis

The software crisis refers to a mid -1960s occurring phenomenon: the first time exceeded the cost of the software, the cost of the hardware. As a result, it came to the first major failure of software projects.

It was recognized that the previously used techniques have not kept pace with the volume and complexity of the software. At a NATO meeting in 1968 in Garmisch -Partenkirchen, the problem was discussed and shaped in response to the notion of software engineering.

One of the first mentions of secure software crisis Edsger W. Dijkstra found in acceptance speech for Turing Award The Humble Programmer ( German: " The humble programmer ," EWD340 ) which he held in 1972 and which was published in Communications of the ACM magazine.

He describes the cause of the software crisis as follows:

" [The major cause of the software crisis is] did the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming what no problem at all; When we had a few weak computers, programming Became a mild trouble, and now we have gigantic computers, programming Has become at Equally gigantic trouble. "

" [ The main cause of the software crisis is due to the fact ] that the machines are several orders of magnitude become more powerful! To put it quite simply: As long as there were no machines, programming was no existing problem; when we had a few weak computers, programming became a small problem, and now that we have gigantic computers, programming is just as gigantic problem. "

As can be seen already from Dijkstra's over 40 years old designs, the software crisis can not today be considered complete: the complexity of software systems is increasing, and thus the problems, even if it is large in the modernization and structuring of the software development process progress has been made.

The software crisis goes back to the problem that even simple programs can be constructed so complex that they (ie the variety of software states) are mathematically very difficult to describe and due to the high number of permutations hard testable.

Features

The costs for the development and testing of software can increase exponentially with the development time. This makes it difficult to meet deadlines in software development; the time pressure increases, program errors occur frequently. Dissatisfied users, poor maintenance by the scarcity of resources and the impossibility of complying with requirements may be the consequences.

Causes

In addition to the basic causes of the software crisis, problems of quality assurance to the failure of software projects contribute. In particular, the different horizons of experience and perspectives of management and developers often lead to problems in project management. Lack of quality assurance, poor or exaggerated project organization are just as responsible for the failure rates of projects such as the insufficient involvement of the user or customer. The inadequate or oversized standardization can contribute greatly.

Solutions

Different concepts and paradigms of software development theory as well as various development processes promise the effects of rising complexity to mitigate. An increased use of proven components and software libraries for already completed development work more efficient. The use of code generators, and model-driven software development ( replace the error class of the random errors due to easier -to-find systematic errors ) and the proposed by Donald Knuth Literate programming are other possibilities.

Also for users, there are approaches to enhance the quality of the software used. Stronger focus on open standards, for example, allows easier exchange between providers and combining the respective best implementations at a given problem. It should also be checked prior to each change to a new software version, what exactly is the benefit thereby gained. Often, new versions have bugs that are not yet known and can be avoided by simply waiting. This concerns, among other standard software such as Office applications, whose function is tested and their requirements do not change anymore.

Furthermore, lack of communication between programmers and users with a non-negligible source of inadequate products. Good communication can reduce the risk of failures and minimizes the effects of poorly mapped requirements at the project start.

However, in spite of different approaches, the software crisis continues is generally considered unsolved problem of information technology.

736537
de