Emergence of Software Engineering
History and Need of Software Engineering:
More focus on Hardware:- In early days of computing the primary concern was that building or acquiring the hardware. If the software did not work, people thought, it would be easy enough to change it until it did work. In that case, why make the effort to plan?
Software cost consideration: The cost of software amounted to such a small fraction of the cost of the hardware that no one considered it very important to manage it development. People time was assumde to save machine time. Making the people process efficient received little priority.
Meeting people expectation:- when computing matured, programs become more Complex and larger. A team effort is required for program to be routinely specified, written, operated, and maintained so people's expectations would be fulfilled.
Exceeded cost: As program become large and complex and the time required to write program and their costs began to exceed to all estimates.
Time development: Programmer started to take weeks, months or years longer than expected to complete. The systems turned over the client frequently did not work correctly because the money or time had run out before the program could be made to work as originally intended.
Us military, several million dollar project was abandoned due to it could never be made to work properly.
Quality concern: As computers and their programs were used for more vital tasks like monitoring life support equipment, program quality also become new concern.
Change- expensive: Making a change within a complex program turned out to be very expensive. It was quite easier to throw a program then to expect from program to do thing different slightly.
Fast and Rapid change in hardware and software:As tubes were replaced by transistors-> integrated circuits. The cost of hardware which had to be increased was getting low. The time and cost to develop the software were no longer so small, compared to hardware, that they could be ignored.
Wrong analysis of client requirements:Programmers were often thought they had understood the client requirement. Once the program has been written, the client begin to express distract dissatisfaction.
No satisfactory system: Unfortunately, until several years ago no good method of representation existed to describe satisfactorily systems as complex as those that are being developed today.