You are on page 1of 13

ITERATIVE MODEL

What is Iterative Model?


 The Iterative Model is a particular
implementation of a software development
life cycle (SDLC) that focuses on an initial,
simplified implementation, which then
progressively gains more complexity and a
broader feature set until the final system is
complete.
Iterative Model in Software
Development Process
 Iterative development is a way of breaking
down the software development of a large
application into smaller chunks. In iterative
development, feature code is designed,
developed and tested in repeated cycles.
With each iteration, additional features can
be designed, developed and tested until
there is a fully functional software
application ready to be deployed to
customers.
Iterative and incremental development are key
practices in Agile Development methodologies. In
Agile methodologies, the shorter development cycle,
referred to as an iteration or sprint, is time-
boxed(limited to certain increment of time, such two
weeks). At the end of the iteration, working code is
expected that can be demonstrated for a customer.
Iterative development contrasts a traditional waterfall
method in which phase of the software development
cycle is “gated”. Coding doesn’t begin until design of
the entire software application is complete and has
gone through a phase gate review.
When to use Iterative Model?
Iterative model is used in the following scenarios:
• The requirement of the system are defined and
understood clearly.
• New technology is being used and is being
learned by the development team.
• There are some high-risk features and goals,
which might change in the future.
• The resources with needed skill sets are
unavailable and are planned to be used on a
contract basis for specific iterations.
The Iterative Model
Phases of Iterative Model
 The iterative life cycle model comprises repeating the
below-mentioned four stages as a sequence. These
are:
 Requirements Phase: In the requirement phase of
software development, the system related
information is gathered and analyzed. The
collected requirements are then planned
accordingly for developing the system.
 Design Phase: In the Design phase, the software
solution is prepared to meet the necessities for
the design. The system design may be a new one
or the extension of a previous build one.
 Implementation and Test: In the implementation as
well as a test phase, the system is developed by
coding and building the user interface and
modules which is then incorporated and tested.
 Review Phase: The review phase is where the
software is estimated and checked as per the
current requirement. Then, further requirements
are reviewed discussed and reviewed to propose
for an update in the next iteration.
• At every stage and cycle of this model, the decision is
taken if the system created by the iteration or cycle
will be rejected or not, or needs to process further for
next cycle which is technically termed as incremental
prototyping.
Key to successful use of an iterative
software development life cycle is:
• Rigorous validation of
requirements and verification
(including testing) of each version
of the software against those
requirements within each cycle of
the model.
 The first three phases of the example of iterative
model is in fact an abbreviated form of sequential
V-Model or Waterfall Model of development. Each
cycle of the model produces software that
requires testing at the unit level, for software
integration, for system integration and for
acceptance. As the software evolves through
successive cycles, tests have to be repeated and
extended to verify each version of the software.
Iterative Development
Advantages
 Generates working software quickly and early
during the software life cycle.
 More flexible – less costly to change scope and
requirements.
 Easier to test and debug during a smaller iteration.
 Easier to manage risk because risky pieces are
identified and handled during its iteration.
 Each iteration is an easily managed milestones.
Iterative Development
Disadvantages
 Each phase of an iteration is rigid and do not
overlap each other.
 Problems may arise pertaining to system
architecture because not all requirements are
gathered up front for the entire software life
cycle.
 It is not suitable for smaller projects.
 Highly skilled resources are required for skill
analysis.
Thank you :)

You might also like