It is one of the types of Software Development Life Cycle (SDLC), where software product is being developed, on incremental basis. Here, the word 'incremental', denotes the added functionality or features, to the software product under development, after the each iteration.
This model, basically involves the usage of the waterfall model, where the software product goes through multiple development phases, under the waterfall approach. The basic idea, which drives the working of the incremental model, is to carry out the development process through the waterfall approach, multiple times, in order to provide increments to the under-developed software product.
The development of the software product, using the incremental model, is usually carried out, in the following subsequent manner.
- The software product to be developed, is divided into multiple components, based on the requirements and functionalities.
- Waterfall approach is implemented, to build the partially developed software product, covering and fulfilling, only the basic functionalities & requirements.
- Through the waterfall approach, the development process is carried out sequentially, in the following general way, to build the first increment.
- Deployment & Maintenance
- Thereafter, left out requirements and functionalities, are analysed and taken up, on priority basis, to incorporate them in the upcoming increments.
- The requirements or functionalities, with the highest priority, is taken up, to add it to the previous increment, through complete water-fall development process. This enables the release of subsequent increments.
- This process, keeps on iterating, until all the requirements or functionalities are incorporated in the software product, so as to achieve the final product.
- A type of SDLC model, which delivers the software product, in sequential increments, on periodical basis.
- Involves multiple times execution of the development process, using waterfall model strategy, to deliver the software versions in the form of new releases, after the completion of each development cycle.
- Requirements, on priority basis, are added to each increment, until all of the requirements are fused in the software product.
- Ensures software development along with its maintenance.
- Risks and defects are explored and corrected, within each iteration.
- Flexible & less, to continuously meet the incoming requirements.
- However, the overall cost is a bit higher than the traditional waterfall model.
- Demands the pool of skilled developers and testers, having a deep understanding of the requirements, along with the proper planning and designing.
- Good approach for developing software products, which are prone to a high level of risks.