IIIT Dharwad Dept.
of DSIS
Software Engineering (DS 203)
Dr. Manjunath K Vanahalli
Department of Data Science and Artifical Intelligence
Indian Institute of Information Technology Dharwad, India
February 6, 2023
1 / 19
IIIT Dharwad Dept. of DSIS
Evolutionary Process Models
Software, like all complex systems, evolves over a period of time. Busi-
ness and product requirements often change as development proceeds,
making a straight line path to an end product unrealistic
Tight market deadlines make completion of a comprehensive software
product impossible, but a limited version must be introduced to meet
competitive or business pressure
A set of core product or system requirements is well understood, but
the details of product or system extensions have yet to be defined.
2 / 19
IIIT Dharwad Dept. of DSIS
Evolutionary Process Models
In these and similar situations, you need a process model that has been
explicitly designed to accommodate a product that grows and changes.
Evolutionary models are iterative. They are characterized in a manner
that enables you to develop increasingly more complete versions of the
software
3 / 19
IIIT Dharwad Dept. of DSIS
Evolutionary Process Models
Two common evolutionary process models.
Prototyping Model
The Spiral Model
4 / 19
IIIT Dharwad Dept. of DSIS
Prototyping
Often, a customer defines a set of general objectives for software, but
does not identify detailed requirements for functions and features.
In other cases, the developer may be unsure of the efficiency of an
algorithm, the adaptability of an operating system, or the form that
human-machine interaction should take.
In these, and many other situations, a prototyping paradigm may offer
the best approach.
5 / 19
IIIT Dharwad Dept. of DSIS
The Prototyping model
Figure 1. The Prototyping model
6 / 19
IIIT Dharwad Dept. of DSIS
Prototyping
You meet with other stakeholders to define the overall objectives for
the software, identify whatever requirements are known, and outline
areas where further definition is mandatory.
A prototyping iteration is planned quickly, and modeling (in the form
of a “quick design”) occurs.
A quick design focuses on a representation of those aspects of the
software that will be visible to end users (e.g., human interface layout
or output display formats).
7 / 19
IIIT Dharwad Dept. of DSIS
Prototyping
The quick design leads to the construction of a prototype. The proto-
type is deployed and evaluated by stakeholders, who provide feedback
that is used to further refine requirements.
Iteration occurs as the prototype is tuned to satisfy the needs of various
stakeholders, while at the same time enabling you to better understand
what needs to be done.
Both stakeholders and software engineers like the prototyping paradigm.
8 / 19
IIIT Dharwad Dept. of DSIS
Prototyping
Users get a feel for the actual system, and developers get to build
something immediately. Yet, prototyping can be problematic for the
following reasons:
Stakeholders see what appears to be a working version of the software,
unaware that the prototype is held together haphazardly, unaware that
in the rush to get it working you haven’t considered overall software
quality or long-term maintainability.
An inefficient algorithm may be implemented simply to demonstrate ca-
pability. After a time, you may become comfortable with these choices
and forget all the reasons why they were inappropriate. The less-than-
ideal choice has now become an integral part of the system.
9 / 19
IIIT Dharwad Dept. of DSIS
The Spiral Model
The spiral model is an evolutionary software process model that couples
the iterative nature of prototyping with the controlled and systematic
aspects of the waterfall model.
It provides the potential for rapid development of increasingly more
complete versions of the software.
The spiral development model is a risk -driven process model generator
that is used to guide multi-stakeholder concurrent engineering of soft-
ware intensive systems.
10 / 19
IIIT Dharwad Dept. of DSIS
The Spiral Model
The spiral model is an evolutionary software process model that couples
the iterative nature of prototyping with the controlled and systematic
aspects of the waterfall model.
It has two main distinguishing features. One is a cyclic approach for
incrementally growing a system’s degree of definition and implementa-
tion while decreasing its degree of risk.
The other is a set of anchor point milestones for ensuring stakeholder
commitment to feasible and mutually satisfactory system solutions.
11 / 19
IIIT Dharwad Dept. of DSIS
The Spiral model
Figure 2. The Spiral model
12 / 19
IIIT Dharwad Dept. of DSIS
The Spiral Model
Using the spiral model, software is developed in a series of evolution-
ary releases. During early iterations, the release might be a model or
prototype.
During later iterations, increasingly more complete versions of the en-
gineered system are produced.
A spiral model is divided into a set of framework activities defined by
the software engineering team
13 / 19
IIIT Dharwad Dept. of DSIS
The Spiral Model
Each of the framework activities represent one segment of the spiral
path illustrated in Figure
As this evolutionary process begins, the software team performs ac-
tivities that are implied by a circuit around the spiral in a clockwise
direction, beginning at the center
The first circuit around the spiral might result in the development of
a product specification; subsequent passes around the spiral might be
used to develop a prototype and then progressively more sophisticated
versions of the software.
14 / 19
IIIT Dharwad Dept. of DSIS
The Spiral Model
Each pass through the planning region results in adjustments to the
project plan.
Cost and schedule are adjusted based on feedback derived from the
customer after delivery
The project manager adjusts the planned number of iterations required
to complete the software.
15 / 19
IIIT Dharwad Dept. of DSIS
AGILE Development
What is Agile Development?
Agile software engineering combines a philosophy and a set of devel-
opment guidelines.
The philosophy encourages customer satisfaction and early incremen-
tal delivery of software; small, highly motivated project teams; informal
methods; minimal software engineering work products; and overall de-
velopment simplicity.
The development guidelines stress delivery over analysis and design (al-
though these activities are not discouraged), and active and continuous
communication between developers and customers.
16 / 19
IIIT Dharwad Dept. of DSIS
AGILE Development
Who does it
Software engineers and other project stakeholders (managers, customers,
end users) work together on an agile team—a team that is self-organizing
and in control of its own destiny.
An agile team fosters communication and collaboration among all who
serve on it.
17 / 19
IIIT Dharwad Dept. of DSIS
AGILE Development
Why is it important
The modern business environment that spawns computer-based sys-
tems and software products is fast-paced and ever-changing.
Agile software engineering represents a reasonable alternative to con-
ventional software engineering for certain classes of software and certain
types of software projects.
It has been demonstrated to deliver successful systems quickly.
18 / 19
IIIT Dharwad Dept. of DSIS
AGILE Development
What are the steps?
Agile development might best be termed “software engineering lite.”
The basic framework activities— communication, planning, modeling,
construction, and deployment.
But they morph into a minimal task set that pushes the project team
toward construction and delivery (some would argue that this is done
at the expense of problem analysis and solution design).
19 / 19