The Early Years (50’s – 60’s) * This generation was characterized by Batch orientation, limited distribution, and customization of software. * In Batch Processing, the system handles an entire sequence of jobs together, often with little or no human intervention. * Also, as computers were not widely used at that time, only in scientific and military institutions, software could be highly customized since distribution was limited. Job mobility was low, and the software was basically designed this way:
“You wrote it, you got it working, and if it failed, you’ll be the one to get it working again.”
Second Era (60’s – mid 70’s) * This era saw the growth of software houses and the use of multiprogramming and multi-user systems, introducing with its new concepts of human-machine interaction. * Software started to be distributed in a multidisciplinary market. At this point in time, the software crisis begun.
Third Era (70’s – mid 80’s) * This period was characterized by widespread growth and the use of personal computers. * Similarly, the use of microprocessors saw its way into the use of intelligent products. * This led to the greatly increased usage of software and subsequent mushrooming of software companies.
Fourth Era (80’s and beyond) * This period saw the use of increasingly powerful desktop systems, object-oriented technologies. Expert Systems, Artificial Neural Networks, and Parallel Computing. * As we move into the fourth era, the problems associated with computer software continue to intensify: * Hardware sophistication has outpaced our ability to build software to tap the hardware potential. * Our ability to build new programs cannot keep pace with the demand for new programs. * Our ability to maintain existing programs is threatened by poor design and inadequate resources. * In addition, the quick pace in which consumers demand new software have resulted in