Se 4

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 30

Course:

Software Engineering
_____________________
Topic: SDLC Models
Iterative Waterfall Model
 The Iterative waterfall model can be thought of as incorporating the
necessary changes to the classical waterfall model to make it usable
in practical software development projects. It is almost the same as
the classical waterfall model except some changes are made to
increase the efficiency of the software development.
 The iterative waterfall model provides feedback paths from every
phase to its preceding phases, which is the main difference from the
classical waterfall model.
 Feedback paths introduced by the iterative waterfall model are
shown in the figure on next slide.
Iterative waterfall
Iterative Waterfall Model
 When errors are detected at some later phase, these feedback paths
allow correcting errors committed by programmers during some
phase. The feedback paths allow the phase to be reworked in which
errors are committed and these changes are reflected in the later
phases. But, there is no feedback path to the stage – feasibility study,
because once a project has been taken, does not give up the project
easily.
 It is good to detect errors in the same phase in which they are
committed. It reduces the effort and time required to correct the
errors.
Advantages of Iterative Waterfall Model :
• Feedback Path –
In the classical waterfall model, there are no feedback paths, so there is
no mechanism for error correction. But in the iterative waterfall model
feedback path from one phase to its preceding phase allows correcting
the errors that are committed and these changes are reflected in the later
phases.
• Simple –
Iterative waterfall model is very simple to understand and use. That’s
why it is one of the most widely used software development models.
• Cost-Effective –
It is highly cost-effective to change the plan or requirements in the
model. Moreover, it is best suited for agile organizations.
• Well-organized –
In this model, less time is consumed on documenting and the team can
spend more time on development and designing.
Drawbacks of Iterative Waterfall Model :
• Difficult to incorporate change requests –
The major drawback of the iterative waterfall model is that all the requirements
must be clearly stated before starting the development phase. Customers may
change requirements after some time but the iterative waterfall model does not
leave any scope to incorporate change requests that are made after the
development phase starts.
• Incremental delivery not supported –
In the iterative waterfall model, the full software is completely developed and
tested before delivery to the customer. There is no scope for any intermediate
delivery. So, customers have to wait a long for getting the software.
• Overlapping of phases not supported –
Iterative waterfall model assumes that one phase can start after completion of the
previous phase, But in real projects, phases may overlap to reduce the effort and
time needed to complete the project.
Drawbacks of Iterative Waterfall Model :
• Risk handling not supported –
Projects may suffer from various types of risks. But, the Iterative waterfall
model has no mechanism for risk handling.
• Limited customer interactions –
Customer interaction occurs at the start of the project at the time of
requirement gathering and at project completion at the time of software
delivery. These fewer interactions with the customers may lead to many
problems as the finally developed software may differ from the customers’
actual requirements.
Prototyping Model
 The Prototyping Model is one of the most popularly used Software

Development Life Cycle Models.

 This model is used when the customers do not know the exact

project requirements beforehand.

 In this model, a prototype of the end product is first developed,

tested and refined as per customer feedback repeatedly till a final

acceptable prototype is achieved which forms the basis for

developing the final product.


Prototype
 A prototype is a toy implementation of the system.
 A prototype usually exhibits limited functional capabilities, low reliability,
and inefficient performance compared to the actual software.
 A prototype is usually built using several shortcuts.
 The shortcuts might involve using inefficient, inaccurate, or dummy
functions.
 The shortcut implementation of a function, for example, may produce the
desired results by using a table look-up instead of performing the actual
computations.
 A prototype usually turns out to be a very crude version of the actual system.
Prototyping Model
 This process model, the system is partially implemented before or
during the analysis phase thereby giving the customers an
opportunity to see the product early in the life cycle.
 The process starts by interviewing the customers and developing the
incomplete high-level paper model.
 This document is used to build the initial prototype supporting only
the basic functionality as desired by the customer.
 Once the customer figures out the problems, the prototype is further
refined to eliminate them. The process continues till the user
approves the prototype and finds the working model to be
satisfactory.
Prototyping Model
Advantages –
The customers get to see the partial product early in the life cycle. This ensures a
greater level of customer satisfaction and comfort.
New requirements can be easily accommodated as there is scope for refinement.
Missing functionalities can be easily figured out.
 Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
The developed prototype can be reused by the developer for more complicated
projects in the future.
Flexibility in design.
Prototyping Model
Disadvantages –
Costly w.r.t time as well as money.
There may be too much variation in requirements each time the prototype is

evaluated by the customer.


Poor Documentation due to continuously changing customer requirements.

It is very difficult for the developers to accommodate all the changes

demanded by the customer.


There is uncertainty in determining the number of iterations that would be

required before the prototype is finally accepted by the customer.


After seeing an early prototype, the customers sometimes demand the actual

product to be delivered soon.


Developers in a hurry to build prototypes may end up with sub-optimal

solutions.
 The customer might lose interest in the product if he/she is not satisfied with

the initial prototype.


Incremental/Evolutinary process model
 The incremental process model is also known as the
Successive version model.
 First, a simple working system implementing only a
few basic features is built and then that is delivered
to the customer. Then thereafter many successive
iterations/ versions are implemented and delivered
to the customer until the desired system is released.
INCREAMENTAL/EVOLUTIONARY MODEL
It is also called successive versions model or incremental model. At first, a simple working
model is built. Subsequently it undergoes functional improvements & we keep on adding new
functions till the desired system is built.

Applications:
 Also used in object oriented software development because the system can be easily portioned
into units in terms of objects.

Advantages:
User gets a chance to experiment partially developed system
Reduce the error because the core modules get tested thoroughly.

Disadvantages:
It is difficult to divide the problem into several versions that would be acceptable to the

customer which can be incrementally implemented & delivered.


Incremental Model
Life cycle activities:

Requirements of Software are first broken down into several


modules that can be incrementally constructed and delivered.
At any time, the plan is made just for the next increment and
not for any kind of long-term plan. Therefore, it is easier to
modify the version as per the need of the customer. The
Development Team first undertakes to develop core features
(these do not need services from other features) of the system.
Incremental Model
Once the core features are fully developed, then these are refined to
increase levels of capabilities by adding new functions in Successive
versions. Each incremental version is usually developed using an
iterative waterfall model of development.
As each successive version of the software is constructed and delivered,
now the feedback of the Customer is to be taken and these were then
incorporated into the next version. Each version of the software has
more additional features than the previous ones.
After Requirements gathering and specification,
requirements are then split into several different
versions starting with version 1, in each successive
increment, the next version is constructed and then
deployed at the customer site. After the last version
(version n), it is now deployed at the client site.
Incremental Model
Types of Incremental model:

1. Staged Delivery Model: Construction of only one part of the


project at a time.

2. Parallel Development Model – Different subsystems are


developed at the same time. It can decrease the calendar time
needed for the development, i.e. TTM (Time to Market) if
enough resources are available.
When to use this:
 Used for large projects
 When demand for early release of product arises
 When it is possible to divide into parts
 Can be used for web development
 Funding Schedule, Risk, Program Complexity, or need for early
realization of benefits.
 When Requirements are known up-front.
 When Projects have lengthy development schedules.
 Well-defined module interfaces are required.
Advantages-
• Prepares the software fast.
• Clients have a clear idea of the project.
• Changes are easy to implement.
• Provides risk handling support, because of its iterations.

Disadvantages-
• A good team and proper planned execution are required.
• Because of its continuous iterations the cost increases.
Spiral Model
 Spiral model is one of the most important Software Development
Life Cycle models, which provides support for Risk Handling.
 In its diagrammatic representation, it looks like a spiral with many
loops.
 The exact number of loops of the spiral is unknown and can vary
from project to project.
 Each loop of the spiral is called a Phase of the software
development process.
 The exact number of phases needed to develop the product can be
varied by the project manager depending upon the project risks. As
the project manager dynamically determines the number of phases,
so the project manager has an important role to develop a product
using the spiral model.
 The Radius of the spiral at any point represents the expenses(cost) of
the project so far, and the angular dimension represents the progress
made so far in the current phase.
Each phase of the Spiral Model is divided into four quadrants as shown in the
figure. The functions of these four quadrants are discussed below-
1.Objectives determination and identify alternative solutions: Requirements

are gathered from the customers and the objectives are identified, elaborated,
and analyzed at the start of every phase. Then alternative solutions possible for
the phase are proposed in this quadrant.
2.Identify and resolve Risks: During the second quadrant, all the possible

solutions are evaluated to select the best possible solution. Then the risks
associated with that solution are identified and the risks are resolved using the
best possible strategy. At the end of this quadrant, the Prototype is built for the
best possible solution.
3.Develop next version of the Product: During the third quadrant, the

identified features are developed and verified through testing. At the end of
the third quadrant, the next version of the software is available.
4.Review and plan for the next Phase: In the fourth quadrant, the Customers

evaluate the so far developed version of the software. In the end, planning for
the next phase is started.
When to use Spiral Model
The spiral model is called a meta model because it involves all other
life cycle models.
 Risk handling is inherently built into this model.
When risk and cost evaluation required initially.
When requirements are unclear and complex.
 The spiral model is suitable for development of technically challenging
software products that are prone to several kinds of risks.
 However, this model is much more complex than the other models –
this is probably a factor deterring its use in ordinary projects.
Comparison of different life-cycle models
The classical waterfall model can be considered as the basic model and all other life
cycle models as additions of this model. However, the classical waterfall model cannot
be used in practical development projects, since this model supports no mechanism to
handle the errors committed during any of the phases.
This problem is overcome in the iterative waterfall model. The iterative waterfall
model is probably the most widely used software development model evolved so far.
This model is simple to understand and use. However this model is suitable only for
well-understood problems; it is not suitable for very large projects and for projects that
are subject to many risks.
The prototyping model is suitable for projects for which either the user requirements
or the underlying technical aspects are not well understood. This model is especially
popular for development of the user-interface part of the projects.
 Risk Handling in Spiral Model
A risk is any adverse situation that might affect the successful
completion of a software project. The most important feature of the
spiral model is handling these unknown risks after the project has
started. Such risk resolutions are easier done by developing a
prototype. The spiral model supports coping up with risks by
providing the scope to build a prototype at every phase of the
software development.
 The Prototyping Model also supports risk handling, but the risks
must be identified completely before the start of the development
work of the project. But in real life project risk may occur after the
development work starts, in that case, we cannot use the Prototyping
Model. In each phase of the Spiral Model, the features of the product
dated and analyzed, and the risks at that point in time are identified
and are resolved through prototyping. Thus, this model is much
more flexible compared to other SDLC models.
Advantages of Spiral Model:
Below are some advantages of the Spiral Model.
1. Risk Handling: The projects with many unknown risks that occur as
the development proceeds, in that case, Spiral Model is the best
development model to follow due to the risk analysis and risk handling
at every phase.
2. Good for large projects: It is recommended to use the Spiral
Model in large and complex projects.
3. Flexibility in Requirements: Change requests in the
Requirements at later phase can be incorporated accurately by using this
model.
4. Customer Satisfaction: Customer can see the development of the
product at the early phase of the software development and thus, they
habituated with the system by using it before completion of the total
product.
Disadvantages of Spiral Model:
Below are some main disadvantages of the spiral model.

Complex: The Spiral Model is much more complex than other SDLC
models.

Expensive: Spiral Model is not suitable for small projects as it is


expensive.

Too much dependability on Risk Analysis: The successful


completion of the project is very much dependent on Risk Analysis.
Without very highly experienced experts, it is going to be a failure to
develop a project using this model.

Difficulty in time management: As the number of phases is

You might also like