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 the iterative model? What are the 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 requirement specifications (SRS) 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.
What are the phases of the 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, the system analyst analyses the requirements that whether the requirement can be fulfilled or not. If customer requirements can be fulfilled than whether these requirements are fulfilled within the budget or out of the budget. After this software team moves to the design phase.
In the design phase, the software team designs the software. Different diagrams are also drawn in this phase for software. Some of these are used the class diagram, activity diagram, data flow diagram, state transition diagram, etc.
Programs are written and all the designed is converted into computer programs, collectively called software.
Test the software by using different software testing techniques. The most common are white box, black box, and gray box testing techniques.
Now its time to install or deploy the software in its working environment.
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.
When software is deployed, there can be many bugs, faults or new modification 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:
In this figure, 1st iteration of this picture does not give us an accurate result and so we again put the 2nd iteration and make 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 the advantages of the Iterative model?
- We can start with a little of a requirement specification.
- We can detect the defects, faults, and risks at an early stage.
- Supports user feedback.
- Less time is utilized for documentation.
- More time is utilized for software development.
- Parallel development can be planned.
- Testing and debugging during smaller iteration is easy.
What are the 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 non-perfect requirements.
- Not suitable for smaller projects.
- Project completion date prediction is a problem because the software is changing again and again in iteration
When to use the Iterative model?
- When the project is large.
- When requirements are clear.
- When there is a need for more quality in software.
- New technology is being used
Difference between Iterative and incremental model
Let’s see the Difference between the Iterative and incremental models with a diagram.
The Evolutionary model is a combination of incremental and iterative models.
More MCQs on Software Process Models
Case studies for Software process models
Try to guess the software process model for the following case studies.