The waterfall model and incremental model are both prescriptive process models. But, they can be differentiated on many aspects such as flexibility of the delivered software, the risk involved, testing of software, maintenance, customer involvement, etc.
Table of Contents
Quick Comparison: Waterfall Model Vs Incremental Model
Basis | Waterfall Model | Incremental Model |
---|---|---|
Working Version | The working version of the software is delivered at end of the model’s life cycle. | The working version of the software is delivered in each iteration. |
Work Flow | This model proposes a sequential workflow. | This model proposes a linear and parallel workflow. |
User Involvement | User involvement occurs in the first phase of the model i.e. communication. | The user involvement occurs in first phase of each iteration. |
Feasibility | This process model does not accommodate changes in the software. | This process model accommodates changes in software easily. |
Team Size | Team size is large. | Does not require a large team. |
Documentation | Focuses too much on documentation. | Provides documentation but not enough. |
Maintenance | This model provides the least maintenance. | This model promotes maintenance. |
Testing | After the coding phase completes. | At each iteration. |
Retracking | Not possible. | Possible. |
What is Waterfall Model?
The waterfall model is a software development model that develops software by dividing the entire process into independent phases that have to be processed one after another in a sequential manner.
The independent phases incorporate communication, planning, modelling, construction, and deployment. Each phase is processed until the final product of the phase arrives, which is then provided as input to the next phase. The figure below shows the workflow of the waterfall model.
What is the Incremental Model?
The incremental model is also a software development model that can be used in a situation where the requirements are not well defined initially. The incremental model pursues all the steps required to develop the software in a linear and parallel fashion as you can see in the figure below.
In the incremental model, the working version of the software is delivered in the first iteration itself. In the latter iteration, supplementary and advanced features are added to the software. With this model, the changes can be accommodated to the software easily as it can be retracted.
Must Read: Spiral Model
Difference Between Waterfall Model and Incremental Model
Working Version
The working version of the waterfall model is delivered in the deployment phase, i.e. the last phase of the waterfall model. Whereas the working version of an incremental model incorporating basic requirements is delivered in the first increment, and supplementary features are delivered in a later iteration.
Work Flow
In the waterfall model follows a sequential workflow, which incorporates communication, planning, modelling, construction, and deployment phases one after the other, respectively. The incremental model follows the linear along with the parallel workflow, which means that before delivering the first working version of the software, the team starts processing phases for the second incremental working phase and so on.
User Involvement
In the waterfall model, the user involves while addressing the requirements in the communication phase. However, in the incremental model, the communication phase occurs in each iteration, so the user gets involved in each iteration.
Feasibility
In the former, once the software is deployed, there is no chance to accommodate any change as there is no trackback. In the latter, the changes can be accommodated easily during the later iteration.
Team Size
The waterfall model requires a large team size. However, the incremental model does not require a large team size.
Documentation
In the waterfall model, everything in every phase is documented. Hence, there is too much documentation. Whereas, comparatively, there is less documentation in the incremental model.
Maintenance
In the waterfall model, there are very least chances of providing maintenance as after deploying the product, and the user is hardly approached for maintenance. On the other hand, the incremental model promotes maintenance.
Testing
In the waterfall model, testing of the software is done once after the coding phase is completed. Whereas in the incremental model, testing is performed at each iteration.
Retracking
In the waterfall model, retracking is impossible as there is no provision to return back to the earlier phase. However, in the incremental model, retracking is possible as at each iteration, the earlier phases are processed.
Must Read: Software in Computer
Wrap Up
This is how both the prescriptive models differ from each other. We have tried to differentiate both models in all possible aspects. I hope you can differentiate between both models now.
Many thanks for this post. This really helped me to articulate the differences for an assignment.