0% found this document useful (0 votes)
4 views14 pages

7 Evolutiony Model

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)
4 views14 pages

7 Evolutiony Model

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/ 14

CS301 Software Engineering

Evolutionary Model

Sunil Kumar P V
CSE
Evolutionary Model with Iterations

Recognizes the reality of changing requirements


▶ Capers Jones’s research on 8000 projects: 40% of final
requirements arrived after development had already
begun
Promotes early risk mitigation:
▶ Breaks down the system into mini-projects and focuses
on the riskier issues first.
▶ “plan a little, design a little, and code a little”
Encourages all development participants to be
involved earlier on,: End users, Testers, integrators,
and technical writers
Evolutionary Model with Iterations

“A complex system will be most successful if imple-


mented in small steps... “retreat” to a previous suc-
cessful step on failure... opportunity to receive some
feedback from the real world before throwing in all
resources... and you can correct possible errors...”–
Tom Glib in Software Metrics
Evolutionary Model with Iterations

“Evolutionary iterative development implies that the


requirements, plan, estimates, and solution evolve or
are refined over the course of the iterations, rather
than fully defined and “frozen” in a major up-front
specification effort before the development iterations
begin. Evolutionary methods are consistent with the
pattern of unpredictable discovery and change in new
product development.”– Craig Larman
Evolutionary Model

First develop the core modules of the software.


The initial skeletal software is refined into increasing
levels of capability: (Iterations) by adding new
functionalities in successive versions.
Activities in an Iteration

Software developed over several “mini waterfalls”.


The result of a single iteration:
▶ Ends with delivery of some tangible code
▶ An incremental improvement to the software — leads to
evolutionary development
Evolutionary Model: Features
Outcome of each iteration: tested, integrated,
executable system
Iteration length is short and fixed
▶ Usually between 2 and 6 weeks
▶ Development takes many iterations (for example: 10-15)
Will not be: “freeze” requirements and then
conservatively design
Implies, an opportunity always exists to modify
requirements as well as the design
In Successive versions: Functioning systems capable
of performing some useful work is built
A new release may include new functionality:
Also existing functionality in the current release
might have been enhanced.
Evolutionary Model: Schematic
Evolves an initial implementation with user
feedback:
Multiple versions until the final version
Evolutionary Model: Pros

Users get a chance to experiment with a partially


developed system: (Much before the full working
version is released)
Helps finding exact user requirements: (Software
more likely to meet exact user requirements)
Core modules get tested thoroughly: (Reduces
chances of errors in final delivered software)
Evolutionary Model: Pros
Better management of complexity by developing one
increment at a time.
Better management of changing requirements.
Can get customer feedback and incorporate them
much more efficiently as compared when customer
feedbacks come only after the development work is
complete
Training can start on an earlier release after
customer feedback is taken into account
Frequent releases allow developers to fix
unanticipated problems quicker.
Evolutionary Model: Cons

The process is intangible: –No regular, well-defined


deliverables.
The process is unpredictable: –Hard to manage,
e.g., scheduling, workforce allocation, etc.
Systems are rather poorly structured: –Continual,
unpredictable changes tend to degrade the software
structure.
Systems may not even converge to a final version.
Hybrid Models

Combining pros of many models


RAD (Rapid Application Development)
Unified Process
Self study..
References

1 Fundamentals of SW Engg by Prof. Rajib Mall


(Text book)
2 NPTEL video lectures by Prof. Rajib Mall
Thank you..

You might also like