Iterative Model in software engineering, Iterative model advantages and disadvantages

In this tutorial we will try to get the answer to the following questions;

What is an iterative software model, What are phases of the iterative model? When to use iterative model? What are advantages and disadvantages of the iterative model?

What is an iterative model?

According to an iterative model, you can start with some of the software specifications and develop the first version of the software. After the first version if there is a need to change the software then a new version of the software is created with a new iteration.

[quads id=1]

What are phases of the iterative model?

iterative model in software engineering
Figure: Iterative model

1. Requirement gathering and analysis

In this phase, requirements are gathered from the customer who wants to develop the software. After getting the requirements, system analyst analyses the requirements that whether requirement can be fulfilled or not. If customer requirements can be fulfilled than whether these requirements are fulfilled within budget or out of the budget. After this software team moves to the design phase.

[quads id=2]

2. Design

In the design phase, software team designs the software. Different diagrams are also drawn in this phase for software. Some of these are used a class diagram, activity diagram, data flow diagram, state transition diagram etc.

3. Implementation

Programs are written and all the designed is converted into computer programs, collectively called software.

4. Testing

Test the software by using different software testing techniques. Most common are white box, black box, and gray box testing techniques.

5. Deployment

Now its time to install or deploy the software in its working environment.

6. Review

Validation or review is performed to check the performance and validity of the developed software. If there is any problem then starts a new iteration and again start from requirement gathering and…. so on.
[quads id=3]

7. Maintenance

When software is deployed, there can be many bugs, faults or new updation is needed. Maintenance includes debugging and new feature addition.

After all these activities if the software is failed during validation then a new iteration will be run on the same component of the software.

All these activities discussed above are performed in iteration again and again until the development of accurate software.

Example for just understanding:

iterative development in software engineering

In this figure, 1st iteration of this picture does not give us the accurate result and so we again put the 2nd iteration and makes some enhancements in the picture. But it is still not accurate. So we again put the 3rd iteration and makes some final enhancements in the picture and deliver this picture to the customer.

 

What are advantages of the Iterative model?

We can start with a little of requirement specification

We can detect the defects and faults at an early stage.

Supports user feedback

Less time is utilized for documentation

More time is utilized for software development

 

What are disadvantages of the Iterative model?

 Requirements changes, again and again, can cause over budget and over time.

 Design can be changed again and again due to nonperfect requirements.

 Not suitable for smaller projects.

 Project completion date prediction is a problem because software is changing again and again in iteration

 

When to use Iterative model?

 When the project is large.

[quads id=4]

 When requirements are clear.

 When there is a need for more quality in software.