Software development process introduced another model known as Incremental Model.Incremental model is said to be the evolution of waterfall model.It is also known as Incremental Build Model which is a combination of waterfall model.
In this model, elements of waterfall model are combined and applied incrementally and each increment includes three phases: Requirement, design and implementation.Requirements are divided into multiple modules and each module is developed separately.
When the first module is developed it is introduced into the market. After developing the second module it is integrated with the first module and it is introduced into the market for customer use. Finally all the modules are integrated together.
In First module the working version of software is developed and every subsequent versions include the new functionalities which were not present in previous one. Each module is standalone and no module depends on other module. Each module goes through requirement, design, implementation and testing phase.
Incremental module is used for developing large projects where the requirements are known.As the new requirements comes that requirements are divided into modules and that new module can be developed independently on other modules.
Consider an example of bank. Suppose the bank needs the software which will automate the banking services like the personal loan, home loan, automobile loans etc. Suppose bank wants the personal loan service first priority because it will enhance the customer services, so using the incremental model in the first increment personal loan module is developed and it is delivered to the customer use. And in the later increments the home loan, automobile loan modules are developed and delivered to the customer.
Example of incremental model is Rapid Application Development (RAD), agile development, Rational Unified Process (RUP)
When to use incremental model?
1. Incremental model is used for developing the large applications.
2. It is used where the requirements are clear and these requirements can be implemented module wise.
3. When there is a need to the market, that product is delivered early.
Advantages of incremental model:
1. Cost of changing the requirements is low.
2. The first initial product is delivered early and fast in the market.
3. After each iteration testing is done to remove the faults and defects .So the cost and effort required for finding the defects is low.
4. Working load is reduced.
5. New features are added to the product after every release of the module.
6. Easier to manage the risk.
7. As the first increment is early delivered to the market, customer can give the feedback according to which the next additional features can be added to the product in the next iteration.
Disadvantages of incremental model:
1. Since testing is done after every iteration, more resources can be required.
2. System design phase may cause problem because not all the requirements are gathered at the early phase.
3. This model is not suitable for small projects/applications.
4. Total cost is more because after every iteration testing is done so it requires more resources.