Software Development Models

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 22

Software Development Models

Classical Waterfall Model


As waterfall flows from the top to the bottom,
the system model shows the development
process from the top to the bottom in steps.
As water does not rise from a lower level to a
higher level, it is presumed that once a step in
the model is over, it is not required to go back.
Advantages

• Simple and easy to use.


• Easy to manage due to the rigidity of the
model – each phase has specific deliverables
and a review process.
• Phases are processed and completed one at a
time.
• Works well for smaller projects where
requirements are very well understood.
Disadvantages
• No working software is produced until late
during the life cycle.
• High amounts of risk and uncertainty.
• Poor model for complex and object-oriented
projects.
• Poor model for long and ongoing projects.
• Poor model where requirements are at a
moderate to high risk of changing.
Prototype Model

The basic idea here is that instead of freezing


the requirements before a design or coding can
proceed, a throwaway prototype is built to
understand the requirements.
This prototype is developed based on the
currently known requirements. Development
of the prototype obviously undergoes design,
coding and testing. But each of these phases is
not done very formally or thoroughly.
Advantages
• Users are actively involved in the development
• It provides a better system to users, as users
have natural tendency to change their mind in
specifying requirements and this method of
developing systems supports this user tendency.
• Since in this methodology a working model of
the system is provided, the users get a better
understanding of the system being developed.
• Errors can be detected much earlier as the
system is running side by side.
• Quicker user feedback is available leading to
better solutions.
Disadvantages

• Customer could believe the prototype as the


working version.
• Developer also could make the
implementation compromises where he
could make the quickfixes to the prototype
and make is as a working version.
• Takes more time.
V-Process Model

The V-Shaped model is the same as the


Waterfall model except that testing is a
consideration throughout the development.
Each stage of development is matched with its
equivalent stage in testing.
Instead of moving down in a linear way, the
process steps are bent upwards after the
coding phase, to form the typical V shape. The
V-Model demonstrates the relationships
between each phase of the development life
cycle and its associated phase of testing.
Advantages
• Not quite as straight forward as the waterfall
method.
• Allows for more extensive testing, as the
testing is built into each phase of
development, rather than as an afterthought.
• More bugs are caught during development
than are caught using the waterfall method.
Disadvantages
• Requires a very specific description of
requirements and very little volatility in
requirements.
• Total development time is longer than the
waterfall method.
Incremental Model

The incremental Model is an evolution of the


waterfall model, where the waterfall model is
incrementally applied. The series of releases is
referred to as “increments”, with each
increment providing more functionality to the
customers.
Advantages
• The feedback from early increments improves the later
stages.
• The possibility of changes in requirements is reduced
because of the shorter time spam between the design of a
component and its delivery.
• Users get benefits earlier than with a conventional
approach.
• Early delivery of some useful components improves cash
flows, because you get some return on investment early
on.
• Smaller sub- projects are easier to control and managed.
• The project can be temporarily abandoned if more urgent
work emerges.
• Job satisfaction is increased for developers who see their
labours bearing fruit at regular, short, intervals.
Disadvantages
• Later increments might require modifications to
earlier increments. This is known as software
breakage.
• Software developers may be more productive
working on one large system than on a series of
smaller ones.
• Problems may arise pertaining to system
architecture because not all requirements are
gathered up front for the entire software life
cycle.
Spiral Model

This model of development combines the


features of the prototyping model and the
waterfall model. The spiral model is intended
for large, expensive, and complicated projects.
It gives more emphasis on risk management.
Advantages

• High amount of risk analysis


• Good for large and mission-critical projects
• Software is produced early in the software
life cycle
Disadvantages
• Can be a costly model to use.
• Risk analysis requires highly specific
expertise.
• Project’s success is highly dependent on the
risk analysis phase.
• Doesn’t work well for smaller projects.

You might also like