Iterative Model in software engineering

What is iterative model?

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

What are phases of 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 want to develop the software. After getting the requirements, system analyst analyse 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 budget. After this software team moves to the design phase.

2. Design

In design phase, software team design the software. Different diagrams are also draw in this phase for software. Some of these are use 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.

7. Maintenance

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

After all these activities if 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 gives us the accurate result and so we again put a 2nd iteration and makes some enhancements in the picture. But it is still not accurate. So we again put a 3rd iteration and makes some final enhancements in the picture and deliver this picture to the customer.

 

What are advantages of 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 Iterative model?

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

 Design can be change again and again due to non perfect 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 project is large.

 When requirements are clear.

 When there is need of more quality in software.