0% found this document useful (0 votes)
28 views34 pages

Lectue 4 - Incremental and Iterative Model

The document discusses the concepts of incremental and iterative development models in software engineering. Incremental development involves designing a complete product first and then building it in manageable chunks, while iterative development focuses on refining the product through successive approximations based on feedback. Both models have their advantages and disadvantages, with incremental being more modular and iterative allowing for more discovery during the development process.

Uploaded by

Mujtaba Vlogs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views34 pages

Lectue 4 - Incremental and Iterative Model

The document discusses the concepts of incremental and iterative development models in software engineering. Incremental development involves designing a complete product first and then building it in manageable chunks, while iterative development focuses on refining the product through successive approximations based on feedback. Both models have their advantages and disadvantages, with incremental being more modular and iterative allowing for more discovery during the development process.

Uploaded by

Mujtaba Vlogs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

1

Intro to Software
Engineering
LECTURE 4: INCREMENTAL AND ITERATIVE MODEL
2

Discussion

What does iterative and incremental


development mean to you?

Discuss
3
 Iterate
 to utter or do repeatedly
 iteration n. – iterative adj

 Increment n
 1. amount of increase
 2. a becoming greater or larger; increase
Definitions  incremental adj

How does all this apply to a software


development project??
How does a project team work iteratively
while incrementally developing a
product?
4

First a simpler look


INCREMENTAL DEVELOPMENT AND ITERATIVE DEVELOPMENT
5
What Is Incremental Development?

 In incremental development,
 You have all the requirements
 you design the complete product first. You only leave
out details that you can safely decide later.
 Then you slice it up into chunks and build each
separately.
 When you finish a chunk, aka module, you integrate it
with previously completed parts, so they work as a
whole.
6
What is Iterative Development

 Iterative development is a lot like inventing: discovering what


and how you need as you go.
 You start with a fair idea of what you want the product to
accomplish, and you use a process of successive approximation
to design and build it.
 You begin by designing, building, and testing the tiniest version
of what you have in mind. When you’re happy, you show it and
collect feedback from everybody with a stake in the product.
 If what you created was well received, you keep it and expand
on it in the next iteration. If what you created got the thumbs
down, you discard it and go back to the drawing board.
7
8
9

INCREMENTAL MODEL
 Iterative and incremental development
 A style of development that involves
the iterative application of a set of
activities to incrementally produce
and refine an effective solution
Definition:  It is iterative in that it involves the
Iterative and successive refinement of the solution
definition and implementation by
Incremental the repetitive application of the
Development core development activities
 It is incremental in that each pass
through the iterative cycle grows the
understanding of the problem and
the capability offered by the
solution

10
11

INCREMENTAL
DEVELOPMENT
MODEL
12
13

Example
 Incremental development
 Develop the system in increments and
evaluate each increment before
proceeding to the development of the
next increment;
 Normal approach used in agile methods;
Incremental  Evaluation done by user/customer proxy.

development  Incremental delivery


 Deploy an increment for use by end
and delivery users
 More realistic evaluation about practical
use of software;
 Difficult to implement for replacement
systems as increments have less
functionality than the system being
replaced.

14
15

Incremental delivery
 Rather than deliver the system as a
single delivery , the development and
delivery is broken down into increments
with each increment delivering part of
the required functionality.
Incremental  User requirements are prioritised and the
highest priority requirements are
delivery included in early increments.
 Once the development of an increment
is started, the requirements are frozen
though requirements for later
increments can continue to evolve.

16
 Requirements of the system are clearly
understood
 When demand for an early release of a
product arises
When to use  When software engineering team are
Incremental not very well skilled or trained

Model  When high risk features and goals are


involved
 Such methodology is more in use for
web application and product based
companies

17
 Customer value can be delivered with
each increment so system functionality
is available earlier
Early increments act as a prototype to
Incremental 
help elicit requirements for later
delivery increments.

advantages  Lower risk of overall project failure


 The highest priority system services tend
to receive the most testing

18
19
Incremental delivery problems

 Most systems require a set of basic facilities that are used by different parts
of the system .
 – As requirements are not defined in detail until an increment is to be
implemented, it can be hard to identify common facilities that are needed by
all increments.
 The essence of iterative processes is that the specification is developed in
conjunction with the software.
 However, this conflicts with the procurement model of many organizations,
where the complete system specification is part of the system development
contract.
Advantages and Disadvantages of Incremental 20
Model

Advantages Disadvantages
•The software will be generated quickly during •It requires a good planning
the software life cycle designing

•It is flexible and less expensive to change •Problems might cause due to
requirements and scope system architecture as such not
all requirements collected up
front for the entire software
•Throughout the development stages changes lifecycle
can be done •Each iteration phase is rigid and
•This model is less costly compared to others does not overlap each other

•Rectifying a problem in one unit


requires correction in all the units
•A customer can respond to each building and consumes a lot of time

•Errors are easy to be identified


• This model can be used when the
requirements of the complete system are
clearly defined and understood.
When to use • Major requirements must be defined;
Incremental however, some details can evolve with
time.
Model
• A new technology is being used

21
22

Iterative Model
Iteration: A
self-contained mini-project, with a
well-defined result, that results in a
stable, integrated and tested release
 An iteration consists of
a distinct set of activities
Definition:  conducted according to a
Iteration dedicated (iteration) plan
 With
a set of objective,
measurable evaluation criteria
 That provides business value
 The release may be either an internal
release or an external release

23
24
Iterative Model
 Each iteration has:
 Clear objectives and activities
 Agreed upon by all; unified efforts of all
 Measurable evaluation criteria
 Must be ‘measurable;’ and evaluated
objectively
 A dedicated team
 All dedicated to achieving the objectives of the
Iteration: A Self- 
iteration. Focused!
A schedule
Contained  Mgmt must agree to the schedule and note
how it impacts overall development plan.
Mini-Project …  Iteration schedule may be simple: start / end
dates, or complicated – detailed task
descriptions
 Produce a unique version of the product
 Is objectively assessed against iteration’s objectives.
 Continuously assessed during iteration;
summarized at end.
 Used to control the project. Who assesses?
 Must have a Well Defined Result!! More ➔
25
 Thus, it must have specific plan that embodies
the unique set of activities to produce the well-
defined result.
 Plan may vary in detail:
 High risk ➔ more detailed planning (when
might this occur?)

Iteration has a  Team size ➔ may need to carefully


coordinate
Distinct Set of  Experience Level ➔ no substitute for this;
New people? Bring them along
Activities  Can leave details to development team
(not the Overall  Dependencies on team member
contribution may necessitate more
Project Plan) detailed planning.

 Iteration Plan must nevertheless:


 Establish the objectives, and
 Evaluate resources, and
 Develop the schedule
26
 Environmental
 War zone; satellite; earthquake
region; weather regions
 Technical
 Team expertise; available
development environment; team size;
 Personnel
Risk – All Kinds  Death; pregnancy; illness; vacations;
accidents
of Risks  Financial
 Cost of project; due dates feasible?
 Competition
 Other competitors offering same
services? How does our differ?
 Process models / management
expertise……

27
 Very important to understand this!
 We spoke of a well-defined result, well:
 Release can be both internal and external but
must be something measurable, tangible,
 Clearly advances the project:
 A real increment reduces risk and builds
capability!
Iteration Results  Something of value is produced.

in an
Examples (a few)
Executable

 Prototype – that demonstrates a specific


Release 
capability
‘Internal Release’ where feedback from
customers is needed
 ‘External Release’ where definite business
value is given to customers

 These are considered well-defined results! There


are others!
28
• In iterative model we can only create a high-
level design of the application before we
actually begin to build the product and
define the design solution for the entire
product. Later on we can design and built a
skeleton version of that, and then evolved
the design based on what had been built.
• In iterative model we are building and
improving the product step by step. Hence
Iterative Model we can track the defects at early stages. This
avoids the downward flow of the defects.
Advantages • In iterative model we can get the reliable
user feedback. When presenting sketches
and blueprints of the product to users for
their feedback, we are effectively asking
them to imagine how the product will work.
• In iterative model less time is spent on
documenting and more time is given for
designing.

29
30

Each phase of an iteration is rigid


with no overlaps

Iterative Model
Disadvantages
Costly system architecture or
design issues may arise because
not all requirements are gathered
up front for the entire lifecycle
31
When to use iterative model

• There is a need to get a product to the market early.


• Resources with needed skill set are not available
• There are some high risk features and goals.
32
 One important difference is
whether you specify the
requirements upfront
(incremental) or discover them
Difference as you build your product
(iterative).
between
Incremental  Another important difference is
and Iterative the focus on separating parts of
the product. Modular design is
a core characteristic of
incremental development, but
not of iterative development.
33
34

You might also like