What do you mean by software crisis? What is its reason?
What do you mean by software crisis? What is its reason?
Software Crisis
The software crisis problem was encountered during software development.
Since the early 1960s
-
The usability and efficiency of computing machines increased.
-
Awareness of computers increased.
-
The hardware became cheaper.
-
With the availability of more powerful machines and a more user-friendly operating system, the applications of computers grew rapidly.
With this increased use of computers and the complexity of applications, the need for software was increasing. From simple programming exercises, the focus shifted to developing software systems. The techniques for writing simple programs could not be scaled up for developing software systems.
Software crisis software can be defined as a set of problems raised during the software development periods.
The term software crisis was used to describe the impact of the rapid increase in computer power and the complexity of the problems to be tackled. So the complexity, expectations, and change hindered the software development process. This software crisis was growing rapidly.
The reason responsible for Software Crisis
The cause of the software crisis is linked to all the problems and complexities associated with the development process. Various contributing factors responsible for the software crisis are:
The problem of scale:-
The ways to develop a small software having hundred having thousand of lines. In other words, the methods used for developing small systems generally do not scale up to large systems.
Software is expensive:-
The cost to develop software is high as compared to hardware. Highly qualified and skilled manpower is required to develop the software. They have to be paid a large amount of money which increases expenses. Thus, the manpower cost is the dominant cost n this case.
Software is late:-
The term ‘late’ means that software cannot be completed within the specified period of time. The software is not delivered in time.
Software is unreliable:-
The unreliability means that software does not perform the required function. Many failures occur due to bugs that get introduced into the software.
Inconsistent productivity:-
The productivity of programmers could not keep up with demand.
High optimistic estimates regarding software development time and cost.
Lack of understanding of the problem and its environment:-
The software developed was poorly suited for the intended use of the system.
The code was difficult to maintain:-
Maintenance revolves around understanding existing software and maintainers have to spend most of their time to understand the software that they want to modify.
Increase in complexity of the problem area:-
Demand for large and more complex software systems increased.
Duplication of efforts:-
Due to the absence of automation in most of the software development activities, the efforts have to be repeated.
Significance of software Crisis in reference to ‘Software Engineering’ discipline
As the computing systems became larger & complex, the demand for computer software grew faster than our ability to produce and maintain it. To control this software crisis, some methodical approach was needed for software development. This is where “Software Engineering” comes in, to deal with this crisis, the term ‘Software Engineering’ was coined.
IEEE defines ‘software as the collection of a computer program, procedures, rules, and associated documentation and data.
The term Software Engineering was defined as “The systematic approach to the development, operation, maintenance, and retirement of software.”
Software Engineering is the discipline whose goal is to deal with the problems of Software Crisis.


