Incremental Model, advantages, examples, Case study
By: Prof. Dr. Fazal Rehman | Last updated: January 11, 2024
There are many software process models that can be implemented by software engineers. Some famous process models are the waterfall model, spiral model, iterative model, and agile model, etc. In other tutorials, we will also learn about these topics. Here our main focus is to discuss the incremental model. So, let’s start our discussion about the incremental model.incremental process modelAccording to the incremental model, the software is divided into separate modules(components)/increments and each of these modules has a separate set of SDLC activities including requirements gathering, analysis, design, coding, Testing, deployment, and maintenance.When any component is ready, then the component is delivered to the customer and when remaining components become ready than delivered to the customer one by one by integrating new components with old once.
Example of the incremental model (Just for understanding)
In this daily life example, we want to draw a picture, first, we draw the first part of the picture as shown in increment 1, Similarly after completing the first part of the picture we have to add one another part of the picture labeled as increment 2 in the above picture. Similarly, we complete this picture in four increments.
A case study of incremental model
Suppose we want to develop a web-based social network with the following functionalities;The user should signup for the system.The user should log into the system and can send or accept the friend request.How, we can use the incremental model in this scenario;Solution:We need to convert this system into separate components;Component 1: Sign up and log inComponent 2: Send Friend requestComponent 3: Accept friend request≡ Now, when we start our activities, then we can start with component 1(signup and login). This component undergoes the phases of requirements gathering and analysis, design, implementation, deployment, and maintenance. When this component is ready, we deliver this one component to the customer.Figure: incremental model≡ After that, we add or increment another component 2 that sends the friend request. This component undergoes the phases of requirements gathering and analysis, design, implementation, deployment, and maintenance. When this component is ready, we deliver this one component to the customer.Figure: incremental model≡ After that, we add or increment another component 3 that accepts a friend request. This component undergoes the phases of requirements gathering and analysis, design, implementation, deployment, and maintenance. When this component is ready, we deliver this one component to the customer.Result:In this case study we observe that one system is produced and delivered to the customer in increments.
What are the advantages of an incremental model?
Customer feedback is received after the delivery of each component.
What are the disadvantages of an incremental model?
Needs a proper plan to integrate the components
Needs a proper design to integrate the components
More expansive as compared to the waterfall model.
When to use the incremental model?
When major requirements are understood but some requirements can evolve within the passage of time.
When product launch in the market is getting late.
When a customer has no problem with the budget but he demands more and more quality in software.
Difference between incremental model and Iterative Model
Let’s see the Difference between the Iterative and incremental models with a diagram.
Difference between incremental model and waterfall Model
Let’s see the Difference between the incremental and waterfall model with a diagram.
INCREMENTAL MODEL
WATERFALL MODEL
Detailed documentation is not strictly Required in Incremental model.
Detailed documentation is strictly Required in Waterfall model.
Returning to previous stage/phase is allowed in waterfall model.
Returning to previous stage/phase is never advice in waterfall model.
Testing is done after every iteration of phase in incremental model.
Testing is done after completion of all coding phase in waterfall model.
Low risk in incremental model.
More risk in waterfall model.
Incremental model can’t handle large project.
Waterfall model can’t handle large project.
Early stage planning(not Extremely) is necessary in Incremental model.
Early stage planning(Extremely) is necessary in Waterfall model.
Delivery time is short.
Delivery time is not short.
There are multiple development cycles take place in incremental model.
There is only one development cycles in waterfall model.
Cost of incremental model is Low.
Cost of Waterfall model is Low.
Flexibility to change in incremental model is Easy.
Flexibility to change in waterfall model is difficult.
Overlapping of phases is possible in waterfall model.
Overlapping of phases is not possible in waterfall model.
Large team is not required in waterfall model.
Large team is require in waterfall model.
Comparison of incremental model and spiral model
Properties
Incremental
Spiral
Objectives
Rapid Development
High Assurance
Planning in early stage
Yes
Yes
Returning to an earlier phase
Yes
Yes
Handle Large-Project
Not Appropriate
Appropriate
Time-Frame
Long
Long
Working software availability
At the end of every iteration
At the end of every iteration
Risk Involvement
Low
Medium to high risk
Software Team size
Not Large Software Team
Large Software Team
Customer control over administrator
Yes
Yes
Maintenance
Promotes Maintainability
Typical
Time Duration
Very long
Long
Re-usability
To some extent
To some extent
Framework Type
Linear + Iterative
Linear + Iterative
When Testing?
After every iteration
At the end of the engineering phase
Maintenance
Maintainable
Yes
Detailed Documentation
Yes but not much
Yes
Overlapping Phases
Yes
No
Comparison of incremental model and RAD
Properties
Incremental
Rad
Objectives
Rapid Development
Rapid development
Planning in early stage
Yes
No
Returning to an earlier phase
Yes
Yes
Handle Large-Project
Not Appropriate
Not Appropriate
Time-Frame
Long
Short
Working software availability
At the end of every iteration
At the end of the life cycle
Risk Involvement
Low
Low
Software Team size
Not Large Software Team
Small Software Team
Customer control over administrator
Yes
Yes
Maintenance
Promotes Maintainability
Easily Maintained
Time Duration
Very long
Short
Re-usability
To some extent
Yes
Framework Type
Linear + Iterative
Linear
When Testing?
After every iteration
After completion of development
Maintenance
Maintainable
Easily Maintainable
Detailed Documentation
Yes but not much
Limited
Overlapping Phases
Yes
Yes
Comparison of incremental model and Waterfall
Properties
Incremental
Waterfall
Objectives
Rapid Development
High Assurance
Planning in early stage
Yes
Yes
Returning to an earlier phase
Yes
No
Handle Large-Project
Not Appropriate
Not Appropriate
Time-Frame
Long
Very Long
Working software availability
At the end of every iteration
At the end of the life-cycle
Risk Involvement
Low
High
Software Team size
Not Large Software Team
Large Software Team
Customer control over administrator
Yes
Very Low
Maintenance
Promotes Maintainability
Least
Time Duration
Very long
Long
Re-usability
To some extent
Least possible
Framework Type
Linear + Iterative
Linear
When Testing?
After every iteration
After completion of development phase
Maintenance
Maintainable
Least Maintainable
Detailed Documentation
Yes but not much
Necessary
Overlapping Phases
Yes
No
Hopefully, now you are able to answer the following questions;
What is an incremental model?
What are the disadvantages of an incremental model?
What are the advantages of an incremental model?
When to use the incremental model?
Frequently Asked Questions (FAQ)Question: What are example of software that use incremental model?Answer: Approximately, every software that provides updates time to time.
Question: The unified process is an interative and incremental approach to developing software. True/False
Answer: True
Question: Incremental development is the most effective approach for developing business software systems
Answer: True
Conclusion
An incremental model is best when you want to develop software with different increments.