The Systems Development Life Cycle (SDLC) or Waterfall Model is an example of the underlying process used to develop the software in the 1970s. It was first introduced by Royce in 1970, was widely used during the 1980 and it is still used today.
It remains relevant because it provides the basis of many well-known system development methodologies. It makes a manager's task easier by providing a series of definite milestones and also helps the developer (as each stage can be viewed a separate contact). It allows the early clarification of system goals, architectures and interfaces and is often claimed to be conducive to good design practice.
Each activity 'drives' the next: requirements (drives) specification (drives) implementation and unit testing (drives) integration and system testing (drives) operations and maintenance. Since its introduction, there have been many variations of the basic model, e.g.:
The weakness of this approach is the extent to which it relies on requirements that can be defined, in detail, in advance of any development work. Many developers will argue 'reality just isn't like that'; iteration is important in the software development process, especially:
Attempts have been made to combine the rigour and management control of the SDLC with the benefits of the evolutionary approach, which is sometimes criticised as being difficult to manage effectively. The most notable attempt is that of Boehm (1988) who proposed the spiral model. This model uses the idea of working through a series of incremental releases. The development spirals outward from the centre with each cycle of the spiral resulting a further refinement of the system.
Using this approach, risks, such as design flaws, failing to meet user needs, escalating costs and losing sight of the intended system benefits, should be detected early in the development process. This aspect of the spiral model, sometimes leads to it being known as the 'risk-driven model'.
The model is split into four quadrants by a vertical axis, which represents the cumulative cost of the project, and a horizontal axis, which represents the increasing level of commitment. The four main activities in the model are each represented by one of the four quadrants.
Thus, for example, a prototype might be used to help define and understand the requirements or to illustrate a user interface. This prototype will then evolve and, in later cycles, become more and more complete until finally it becomes the fully tested and engineered final release of the system.