SDLC Iterative Model and Phases

Introduction: 

  • An iterative model does not attempt to start with the full specification of requirements. 
  • In this model, development begins by specifying and implementing just part of the software, which is then reviewed to identify further requirements. 
  • This process produces a new version of the software at the end of each iteration of the model.
  • As we use the Iterative Model, the features released to the end-users may be altered in a phase-wise manner and new features can be released and implemented based on the feedback. 

History:

  • Back in the 1950s, the introduction of the Kanban method opened possibilities for the iterative SDLC model.  
  • The method was based on lean production which focuses on efficiency, iterative improvements and swift delivery.
  • Later, the iterative process model was studied in 1995. It was believed that the process of human learning is an iterative, trial and error one. 
  • In 2004, Iterative strategy was adopted by microsoft  in software development, followed by other developers. 
  • In more recent years, with the introduction of Agile and lean methodology in software development the focus has shifted to the approaches based on the iterative model to reduce life cycles and ensure efficient product development process.

The phases of Iterative model are as follows:

  • Consider an iterative life cycle model which consists of the following phases in sequence: 

1.  Planning Phase: 

This is the first stage of the iterative model, where proper planning is done by the team, which helps them in mapping out the specifications documents, establish hardware or software requirements and generally prepare for the upcoming stages of the life cycle.

2.Requirement gathering & analysis phase: 

In this phase, requirements are gathered from the customers and checked by an analyst whether requirements will ful-fil or not. Analyst checks that need will be achieved within budget or not. After all of this, the software team skips to the next phase.

3. Design phase: 

In the design phase, the team designs the software by different diagrams like Data Flow diagram, activity diagram, class diagram, state transition diagram, etc.

4. Implementation phase: 

In the implementation, requirements are written in the coding language and transformed into computer programmes which are called Software.

5. Deployment phase: 

After completing all the phases, software is deployed to its work environment. It includes coding, unit testing, integration, low-level design, user interface and system testing. 

6.Testing phase:

 After completing the coding phase, software testing starts using different test methods. There are many test methods, but the most common are white box, black box, and grey box test methods.

7. Evaluation Phase: 

The evaluation phase is the final phase of the Iterative life cycle , where the entire team along with the client, examine the status of the project and validate whether it is as per the suggested requirements. 

When to use the Iterative Model ?

  1. When requirements are defined clearly and easy to understand.
  2. When the software application is large.
  3. When there is a requirement of changes in future.
  4. When the resources for few iterations are not available at the time of use but can be used in later iterations.

Advantages of Iterative model:

  • Cost-effective model
  • Each step can be divided into small iterations to speed up the process
  • Easier to test and debug during iterations
  • Preferable for large projects
  • Risks can be identified and resolved during iteration
  • It is best suited for agile organisations.
  • In an iterative model less time is spent on documenting and more time is given for designing.

Disadvantages of Iterative model:

  • Defining increments may need more resources, which were otherwise neglected in the planning step.
  • Limited attention on planning and analysing step
  • There is a fair chance of getting undesired feedback
  • Requires user engagement to identify risks and bugs
  • More resources may be required over the life cycle
  • Not suitable for small projects.
  • Highly skilled resources are required for skill analysis. 

Conclusion:

The development of software comes with procedures and techniques. It needs models, another outer component, and tools to accomplish achievement. One of the techniques of Iterative model development permits the meager scale of software development efficiently. It is one of the chief practices in agile development techniques, in which actions are repetitive as the project advances with specifications.