The in the product during the development cycle.
spiral model is combined of some ideas from the iterative model but also the
rigid features of the waterfall model. The spiral model has four phases:
Identification, Design, Build and Evaluation. A spiral project passes through
these phases in iterations, so the cycle repeats over until the deliverable is
produced. The application is released incrementally.
The spiral model is applied
When the budget is low
and risks need to be evaluated
Project is medium to
Customer is not sure of
Requirements are complex
and need evaluation to get clarity.
Significant changes are
expected in the product during the development cycle.
Advantages of spiral model:
Requirements can be
Promotes the use of
Requirements can be
defined more accurately.
Users can see the system
in early stages of development.
Development can be divided
into modules and the difficult modules can be developed earlier.
Disadvantages of the model:
End of the project may
not be known early .
Management is more
Spiral may go on
Not suitable for small
or low risk projects
The waterfall model is a methodology
based on a sequential design process. The waterfall model flows from one stage
to another and stages cannot be revisited once completed. One phase has to be
finished to start the next phase. The waterfall model is made of 6 stages,
which are: requirement analysis, design, implementation, testing, launching and
maintenance. The waterfall model is used for small projects which have clear
requirements from the start.
Applications of the waterfall
Can be easily used for
Requirements are well
defined, clearly documented and fixed.
change and is well operated by the project team.
The staff doesn’t
require special training for this model.
Advantages of this model:
Simple and easy to
understand and use
Easy to manage due to
high rigidity of the model.
Phases flow from one to
Works well for smaller
projects where requirements are very well understood.
Clearly defined stages.
Process and results are
Disadvantages of the model:
High risk and
Not a suitable for
complex and long lasting projects.
Not suitable for the
projects where requirements are at a moderate to high risk of changing.
Once an application is
tested, its difficult to change the functionality.
No working software is
produced until late during the life cycle.
agile methodologies, are in the agile manifesto 2001, these include: Scrum,
Lean, XP, Crystal, FDD, and DSDM. Agile projects are
flexible and contain iterative design and build process. Agile models are similar
to the iterative model, as both models work through iterations. The model uses
an adaptive approach, which allows for changes to be made, unlike more rigid
models such as Waterfall or V-model, where a predictive approach with clear
requirements is used. Agile development is a set of principles and values for
developing a project. The four principles of agile methods are: Individuals and
interactions, Delivering working software, customer collaboration and
responding to change.
The advantages of this model
The model provides a
very realistic approach to develop the product.
Promotes teamwork and
Functionality can be
Requirements can be
Product delivered in
early stages of development.
documentation easily employed.
Little or no planning
Easy to manage.
Gives flexibility to
The disadvantages are:
Depends heavily on
customer interaction, so if customer is not clear, team can be driven in
the wrong direction.
The model is dependent
on individual work, since there is minimum documentation generated.
Transfer of technology
to new team members may be quite challenging due to lack of documentation.
Complex projects can be
difficult to manage without clear requirements.
When the agile model is used:
XP(eXtreme Programming), lean, crystal teams all use the agile model because
they work in sprints, which are iterations and they need to prioritize the user
requirements then the build of the product, which is finished through a meeting
with the customer to hand over the
product, review the product log, and reprioritize the requirements at the end.
The timeframe for each sprint is 2-4 weeks, where the project manager selects
the top tasks for the team to complete.
the developers are knowledgeable and can solve difficult problems efficiently
the user base is collaborated and dedicated to the company. They have to be
knowledgeable to provide useful feedback.
requirements are clear as the user requirements change several times. Sometimes
requirements are not very clear.
the design of the product is flexible, as user requirements can change often.
idea of the iterative model is to develop a system through repeated cycles
(iterations) and in smaller portions at a time (incrementally). It is important
that the iterative model isn’t confused with the incremental model. The
difference between them is that the iterative model is developed in iterations,
where the whole system is developed at an early stage and then built up in the
later stages of development. The incremental model however, the iterative model
begins with the requirements being created and then the application is
iteratively evolved until the product is finished and ready for deployment. The
development starts with just one part of the application, rather than by
creating the full system based on the full requirements. Each part of the
product is reviewed, so that the requirements can be expanded later. After each
iteration, the developers produce a new version of software, which evolves and
expands the program; designs are modified and new functional capabilities are
The iterative model is used
in the following scenarios:
Requirements of the
system are clearly defined and understood, even though some functionalities
or enhancements evolve with time
Better suited for large
and mission-critical systems. Mission critical systems are ones, which
could impact the organisation if the system fails. These systems are risky
as the failure or downtime of the system could affect the organisation
A new technology is
being used and is being learnt by the development team while working on
Resources with needed
skill sets are not available and are planned to be used on contract basis
for specific iterations.
There are some high-risk
features and goals which may change in the future.
The advantages with the
advantage of it is that a working system is developed in the early stages of
development, which means functionality can be developed quickly and it is
easier to find functional and design flaws, early on in the design.
advantage is that results can be obtained quickly and incrementally.
than one build can be developed at once.
is easily measured
can be changed without major loss
testing and debugging, as it contains smaller iterations
are identified and resolved easily, as each iteration is an easily managed
operational product is delivered incrementally.
The disadvantages with this
more resources will be required.
attention needs to be payed to the management of the product.
with the architecture of the application may show, as all requirements and
gathered at the start of the life cycle
suitable for smaller projects
skilled resources needed for risk analysis
of the project is not known, therefore might be a risk.
complexity as compared to other models.
RAD (Rapid Application Development) model is based on prototyping and
iterations without any planning. Rapid Application Development focuses on
gathering customer requirements from target user groups, early testing of the
prototypes, reusing existing components, continuous improvement of product and
a rapid delivery. A prototype is a working model that is functionally
equivalent to a component of the product. In the RAD model, modules are
developed in parallel development as many versions of prototypes are constantly
evolved to make the complete product for faster product delivery. Since there
is no detailed planning, changes can be easily made. Short
iterations are used for cycling through the different stages. The phases in the
RAD model are business, data and process modelling, generation of the
application and testing and turnover.