The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model. The spiral model has four phases. A software project repeatedly passes through these phases in iterations called Spirals. This means that the product is released incrementally.
The Identification phase starts with gathering the business requirements in the base spiral. In the subsequent spirals as the product matures, identification of system requirements, subsystem requirements and unit requirements are all done in this phase. The proof of concept includes identifying, estimating and monitoring the technical feasibility and management risks, such as schedule slippage and cost overrun. After testing the build, at the end of first iteration, the customer evaluates the software and provides feedback. This phase also includes understanding the system requirements by continuous communication between the customer and the system analyst.
The Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and the final design in the subsequent spirals. The architecture of the application is designed in this stage, which means the structure of the application for example UI features, such as colours, text, tabs, buttons and links. After that each module in the application is designed and finally the whole system is designed in the last build. The customer gives feedback on this design in the evaluation stage at the end of the iteration.
The Build phase refers to production of the actual software product at every spiral. In the base spiral, the product is implemented by software developers, which code the application so that it functions properly. The developers have to follow the design supplied by the designers. Another build is created later on in the development, so that new implementations could be provided, which could be more efficient. The first build is used as a backup if the second build fails. The build is tested in the evaluation stage.
The evaluation phase consists of managing risks in the application used to contain and mitigate threats in the product and also testing how the application works, which is done to make the code more efficient and reduce errors found in the build of the product. The customer gives feedback to the design and the build of the system, to see how the product development is being completed.
The spiral model is applied when:
- When the budget is low and risks need to be evaluated
- Project is medium to high risk.
- Customer is not sure of their requirements.
- Requirements are complex and need evaluation to get clarity.
- Significant changes are expected in the product during the development cycle.
Advantages of spiral model:
- Requirements can be changed.
- Promotes the use of prototypes.
- Requirements can be defined more accurately.
- Users can see the system in early stages of development.
- Development can be divided into modules and the difficult modules can be developed earlier.
Disadvantages of the model:
- End of the project may not be known early.
- Management is more complex.
- Spiral may go on indefinitely.
- Not suitable for small or low risk projects
Of the many project management models in use today, the waterfall model is one of the most easily understandable and manageable models. The waterfall model is a project management methodology based on a sequential design process. Much like a waterfall filling lower level pools, phases in the waterfall model flow from one to another. Also like the pools filling completely before water spills into the next pool, the waterfall model finishes one phase before another phase can begin.
Developed as a software development life cycle model, waterfall methodology lends itself to projects that are small in size and whose requirements can be definitively determined up front. A simple waterfall model has 6 phases: requirements analysis, design, implementation, testing, deployment, and maintenance.