SDLC Iterative model: A software development modelling under iterative model is very simple and easy to use. This iterative modelling approach take initiate with a simple implementation of a small set of the system requirements and after that interactively enhances the evolving versions until the actual system is implemented and ready to be deployed.
The life cycle of this modelling approach does not attempt to start with full specification of requirements. This modelling approach begins development of product by specifying and implementing just small part of the software, which can be continuously reviewed in order to identify further requirements to enhance the functionality and complete the system. This modelling approach uses this processing repeatedly to producing a new version of the software for each cycle of the model.
This modeling approach working behaves like a painting artist starts his painting with small requirements and tools. After finish the first iteration like sketching he review his art and feedback itself to further enhancement of this painting to the final touch for present as a complete art. In the above diagram we are trying to give brief idea about the iterative modeling approach. In this diagram shown when we work interactively we create rough product or piece of product in first iteration. After completion of first iteration review it and improve it in next iteration and so on until gives it a final touch. As shown in the above sequential images, in the first iteration the whole painting is sketched roughly, then in the second iteration colors are filled and in the third iteration finishing is done. Hence, in iterative model the complete task of development in small phases or models and completes them step by step.
Design of SDLC Iteration model:
In the design process of iteration model an iterative process starts with a simple implementation of a small subset of the developed software product requirements and iteratively enhances the evolving versions of product until the full system is implemented. In this design process in each successively iteration, the product design modifications are made and new functional capabilities are added with the new version of the product. The basic idea behind this modelling approach is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental).
Following phases in the figure below representing the different phases of SDLC iteration model:
In the above figure represent the steps follows by the iterative modelling approach. The iterative model is the combination of the iterative design process and incremental build model for development. In this approach during software application developed, a number of iteration is required in a cyclic progress to develop complete software. It is also happening that more than one iteration process is done under the development of software product at the same time. This process may be described as an “evolutionary acquisition” or “incremental build” approach.
The working behavior of iteration model is to subdivide the whole process in to various small pieces. During each successively iteration, the development module goes through the requirements, design, implementation and testing phases. Each subsequent release of the module enhances the functional capabilities to the previous release. This process of cyclic enhance in the functionality continues till the complete system is ready as per the requirement.
The key to successful use of this iterative model in the software development lifecycle is rigorous validation of requirements, and verification and testing of each version of the software against those requirements within each cycle of the model. As the software evolves through successive cycles, tests have to be repeated and extended to verify each version of the software.
Advantages and disadvantages of iterative model:
Every software development model has own advantages and disadvantages that decide the working area of the model. Here we are listing all the advantage and disadvantages of iterative model:
Advantage of iterative model:
In the concern of advantages of iterative model the iteration model help to create only high level design only of the application before actually begin to build the product and define the design solution for the whole product. After that we can design and build a skeleton version of the product and evaluated the product based on design on what had been built. In addition of advantages of iteration model is that there is a working model of the system at a very early stage of development which makes it easier to find functional or design flaws. Finding issues at an early stage of development enables to take corrective measures in a limited budget.
In iterative model the developer have the opportunity to building and improving the product step by step. Hence the developer can track the defects at early stages with the help of customer review and feedback. This approach avoids the downward flow of the defects. In this developer can get the reliable user feedback, when presenting the sketches and blueprints of the product to users for their feedback, we are effectively asking them to imagine how the product will work. It avoiding the highly time wastage in the requirement analysis completely and documenting process.
Disadvantage of iterative model:
In the disadvantage list of iteration model is that it is applicable only to large and bulky software development projects. This is because it is hard to break a small software system into further small serviceable increments/modules. In each phase of this model all successive iteration is rigid with no overlaps. The architecture or design issues of iteration model may be arise because not all requirements are gathered for the entire system.
Pros and Cons of iterative model:
|Pros of iteration model||Cons of iteration model|
|Progress of developed project can be measured.||System architecture or design issues may arise because not all requirements are gathered in the beginning of the entire life cycle.|
|Some working functionality can be developed quickly and early in the life cycle.||More resources may be required.|
|Testing and debugging during smaller iteration is easy.||Not suitable for smaller projects.|
|Less costly to change the scope/requirements.||Defining increments may require definition of the complete system.|
|Issues, challenges & risks identified from each increment can be utilized/ applied to the next increment.||Project.s progress is highly dependent upon the risk analysis phase.|
|Results are obtained early and periodically.||Although cost of change is lesser but it is not very suitable for changing requirements.|
|Parallel development can be planned.||More management attention is required.|
|Risks are identified and resolved during iteration; and each iteration is an easily managed milestone.||Management complexity is more.|
|Easier to manage risk – High risk part is done first.||End of project may not be known risk.|
|With every increment operational product is delivered.||Highly skilled resources are required for risk analysis.|
|During life cycle software is produced early which facilitates customer evaluation and feedback.|
|It supports changing requirements.|
|Initial Operating time is less.|
|Better suited for large and mission-critical projects.|
Application of iteration Model:
There is various software development models in SDLC approach available and used by all software application development industries. Each software development application has different requirements based on internal and external factors. There have some situations where the software development has highly required the use of iteration model is more suitable and handle the problem very smartly:
- When the requirements of the complete system are clearly defined and understood by the development expertise.
- Major requirements of the system must be defined initially; however, some functionalities or requested enhancements may evolve with time to time.
- Resources with required skill set are not available and are planned to be used on contract basis for specific iterations.
- A new technology is being used and is being learnt by the development team while working on the project.
- There are some high risk features and goals which may change in the future.
- There is a time to the market constraint.