Lec 5 Software Development Models
Lec 5 Software Development Models
• Waterfall model
• Prototyping model
• Incremental model
• Spiral model
The Waterfall Model
• The waterfall model, sometimes called the linear sequential model, uses a
sequential approach to software development.
• It begins with customer specification of requirements and progresses
through planning, modeling, construction, deployment, and maintenance.
The Waterfall Model
• It is used when
• The requirements for a problem are well understood
• Risk is low
• Workflows from communication through deployment in a reasonably linear fashion.
• Well-defined adaptations or enhancements to an existing system must be made (e.g.,
an adaptation to accounting software because it needs to accommodate changes).
Problems with Waterfall Model
• Real projects rarely follow the sequential workflow that the model proposes.
• It is difficult for customers to state all requirements explicitly at the start of a project.
• It doesn’t support iterations (you cannot go back). So, changes can cause confusion.
• Better to accept changes from customers up to a specified time deadline before a project starts.
• After starting the project, no more changes can be accepted.
• The customer must have patience because a working version of the program(s) will not
be available until late in the project time span.
• This may cause the customer to lose interest in the project/software
• Major blunders may not be detected until the working program is reviewed.
• Software work is now fast-paced, and a never-ending stream of changes (to features,
functions, and information content) is often required, which makes this model
inapplicable.
Coping with Change
• In these, and many other situations, a prototyping paradigm may offer the
best approach.
Prototyping Model
Prototyping Model
• The prototype serves as a mechanism for identifying software requirements.
• The prototyping model begins with communication with other stakeholders
• to define the objectives and requirements for the software.
• The product is partitioned into smaller pieces which are then built and
delivered to the client in increments at regular intervals.
• Since each piece is much smaller than the whole, it can be built and sent to
the client quickly.
• This results in quick feedback from the client, and any requirement-related
errors or changes can be incorporated at a much lesser cost.
• It is, therefore, less stressful than the waterfall model.
Incremental Model
Incremental Model
•Disadvantages
• It may require good planning and designing
• Problems might arise due to system architecture as not all requirements are collected for the
entire software lifecycle
• Each iteration phase may be rigid and not overlap each other
• Rectifying a problem in one unit requires correction in all the units, which consumes a lot of
time
Spiral Model (Evolutionary Process Model)
• Software evolves over time.
• Business and product requirements often change as development proceeds,
making a straight-line path to product development unrealistic.
• Tight market deadlines may make the completion of a comprehensive
software product impossible.
• It might be possible to create a limited version of a product to meet
competitive or business pressure and release a refined version once all
system features are better understood.
• In a situation like this, you need a process model that has been explicitly
designed to accommodate a product that grows and changes.
Spiral Model
• The spiral model is an evolutionary software process model that couples
the iterative nature of prototyping with the systematic aspects of the
waterfall model.
• It provides the potential for rapid development of increasingly more
complete versions of a software.
• Using the spiral model, a software is developed in a series of evolutionary
releases.
• During early iterations, the release might be a model or prototype. During
later iterations, increasingly more complete versions of the engineered
system are produced.
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.
• In addition, the project manager adjusts the planned number of iterations required to
complete the software
Spiral Model
• This model is used when
• A large software project is developed
• When requirements are not well-understood and risks hare high
• Operates as a risk-driven model; a go/no-go decision is made after each
complete spiral in order to react to risks.
• Requires considerable expertise in risk management
Pitfalls in Spiral Model
• It uses prototyping as a risk reduction mechanism.
• The spiral model demands a direct consideration of technical risks at all
stages of the project and, if properly applied, should reduce risks before
they become problematic.
• But like other paradigms, the spiral model is not a panacea.
• It may be difficult to convince customers (particularly in contract situations)
that the evolutionary approach is controllable.
• It demands considerable risk assessment expertise, and its success relies on
this expertise. If a major risk is not uncovered and managed, problems will
undoubtedly occur.
Thanks
.