Software crisis is a term used in the early days of software engineering. The term was used to describe the impact of rapid increases in computer power and the complexity of the problems which could be tackled. This was with regards to the difficulty in writing correct, understandable and verifiable_ computer programs_. VERIFIABLE:-With regards to hardware and software systems, a 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 The roots of the software crisis are complexity, expectations, and change. Conflicting requirements have always hindered the software development process. As users demand a large number of features, customers generally want to minimize the amount they must pay for the software and the time required for its development. An example is the problem of trying to write an encyclopedia which is very much like writing software. Let say both run code and a hypertext/encyclopedia which is a wonderful turn-ons for the brain. Note you will turn to_ want more of it the more you see, like a drug. _ You know user you want it to do everything but as a customer you don't really want to pay for it and as a producer you realize how unrealistic the customers are. Requirements will conflict in functionality vs affordability and in completeness (get everything in) vs timeliness (meet the deadline) The causes of the software crisis were linked to the overall complexity of the software process and the relative immaturity of software engineering as a profession. 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...