Incremental Model in software engineering

What is incremental model?

According to incremental model, a software is divided into separate modules(components)and each of these modules have separate set of waterfall activities including requirements gathering and analysis, design, implementation, deployment and maintenance.

When any component is ready, then the component is delivered to the customer and when  remaining components becomes ready than delivered to the customer one by one by integrating new components with old once.

 

Example (Just for understanding):

incremental model in software engineering

 

Case study:

Suppose we want to develop a web based social network with the following functionalities;

The user should signup the system.

The user should login the system and can send or accept the friend request.

How can use incremental model in this scenario;

Solution:

We need to convert this system into separate components;

Component 1: Signup and login

Component 2: Send Friend request

Component 3: Accept friend request

Now, when we start our activities, then we can start with component 1(signup and login). This components 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.

incremental model in sdlc
Figure: incremental model

After that we add or increment another component 2 that is send friend request. This components 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.

incremental software development
Figure: incremental model

After that we add or increment another component 3 that is accept friend request. This components 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.

incremental-model-in-software-engineering2

 

Result: In this case study we observe that one system is produced and delivered to the customer in increments.

 

What are advantages of incremental model?

  • Customer feedback is received after the delivery of each component.
  • Risk of requirement changes is reduced
  • More flexible
  • Easy to test and debug
  • Give quick results

 

What are disadvantages of incremental model?

  • Needs proper plan to integrate the components
  • Needs proper design to integrate the components
  • More expansive as compared to waterfall model.

 

When to use incremental model?

  • When major requirements are understood but some requirement can evolve within the passage of time.
  • When product launch in the market is getting late.
  • When customer have no problem of budget but he demands for more and more quality in software.