The Evolution of Software Products
The Software Development Lifecycle represents the process model used to organize and manage all the steps involved in the life of software products. Life-cycle models are used to control the evolution of software products starting with their conception and ending with their termination.
The first model created to address the problems of software development was the waterfall model. The waterfall model is a sequential development model in which the product evolves steadily (like a waterfall) through the phases of requirements, analysis, design, implementation, testing, and maintenance. Being sequential, the
waterfall model requires that, in order to advance to the next step, all the previous steps must be fully completed. As a result, much time is spent early on to make sure that requirements and design are absolutely correct before advancing to the next phases.
This model works even today for software products that have well defined and stable requirements...