There are plenty of different software development life cycle models that could be used. Before discussing the merits of any particular one it is necessary to know what Software Development Life Cycle is.
A software development life cycle is actually a model employed to organize the creation, development, implementation and then finally the retirement of a piece of software. Some development cycle models do not cover the retirement of a piece of software, however, it is inevitable that ever a piece of software will be retired and replaced.
As previously mentioned before there are numerous models which range from the earlier Waterfall Method through the cyclical models, the spiral, V-Model, prototyping and iterative models. Each model is more (or less) appropriate for particular projects and each and every model will have certain disadvantages and benefits based on what is required by the client. I am going to now go into a little more detail on just a few of these models.
The Waterfall Method is based on the graduation that each stage of the process is finished prior to next one being started, therefore work flows from one stage to the next in a strict order. The original model had the following 7 stages
1. Requirements specification
5. Testing and Debugging
These stages would have adhered to in strict order. The main advantage of this model tends to be that time spent in early stages in the process getting the requirements and design details crearly defined helps you to save more time later when development of a basic outline begins. The main disadvantage with this particular model is the fact that frequently a client will not know their exact requirements before seeing something produced, because of this requirements can change and the model needs to start again every time any change is made. This will mean that there will be extra work when the requirements are not accurate right from the start.
The Spiral Method is one of many iterative software development life cycle models, however it also combines the iterative approach with a more systematic approach included in the Waterfall Model. The Spiral Model allows for incremental releases of a product as more functionality is added over time, whenever new or changed functionality is desirable the following stages are executed:
1. Determine Objectives
2. Identify and resolve risks
3. Development and test
4. Plan for next iteration
The Spiral Model allows for the product that is being developed, to be expanded as more information becomes available. This model requires users to be involved from an early stage through the system development. The Spiral Model stresses the risk analysis within all iterations of the model, this is particularly suited to larger systems.
As can be seen from just those two examples. There are a number of differences between Software Development Life Cycle models and each type will have its good and bad points dependent upon the sort of project that is being developed.