Discuss the most appropriate uses of different development life cycle models
There are many different models which can be used for systems
analysis. All of these vary in their approach, and all of them follow the 5
steps of the development life cycle. Some are more appropriately used in
certain situations than others.
Waterfall Model
The first process model that was introduced was called the
Waterfall model. This model is used for projects that are small and easy to
complete. In this model each phase/stage of the life cycle must be completed
before the next one can begin, this is done so that none of the phases overlap
with each other. When a phase has been completed, a review takes place to
evaluate whether or not the project is on the right path and whether it is
worth continuing the design and analysis or not. The system testing will only
take place after development has been completed.
The advantages of this model are that it is very simple and
easy to understand and use, and is easy to manage, due to the rigidity of the model,
for example, each phase does specific tasks once completed and provides a full
review process. It is performed in a sequential order, none of the phases
overlap with each other, but instead flow one after the other (hence the name
Waterfall.)
The disadvantages of this model are that when an application
has reached the testing stage, it is quite difficult to go back and modify
something that wasn't well planned during the planning stage of the life cycle.
The actual software for the system isn't designed or programmed until the very
late stages of the life cycle. This model has a fairly high risk attached to it,
especially when working with projects that are long or complicated, for that
reason, there can often be a lot of uncertainty when using this model.
Due to the simplicity of this model, and how easy it is to
utilise it, the most suitable use for it would be for small projects that have
very simple and clear requirements for what the system needs to do. It is important to make sure that the technology
being used is understood by the entire team working on the project, as well as
having access to a very large amount of resources that are highly skilled and
available for as low a cost as is possible.
Spiral Model
The spiral model contains just four phases:
·
Planning phase – The project requirements are made
here.
·
Risk analysis – A process takes place that identifies
any possible risks and solutions that can be used. At the end of this phase, a
prototype is produced. If any risks are found within the prototype, then the
solutions that were discovered are utilised.
·
Engineering phase – The software is developed in this
phase, along with the testing, which takes place at the end of the phase.
·
Evaluation phase – In this phase the customer has the
chance to evaluate the end result of the project so far. After the evaluation
is complete, the project proceeds onto the next spiral.
The advantages of this model are that the chances of any
risks occurring is reduced. This is because of the large amount of risk analysis
that takes place, throughout the entirety of the second phase. There is a very
controlled outlook on documentation to be produced and for approval of the
project, before the engineering phase can even begin. The software is produced
fairly on in this model, meaning that it is developed in a very short amount of
time, however, additional functionality can be added to it at a later time.
The disadvantages of this model are that it can be expensive
to use throughout the project, as there are a lot of processes that take place
(for example, risk analysis), so therefore, this should be accounted for in the
budget when planning takes place. For the risk analysis to be thorough it may
require a high amount of expertise. Only then are you likely to have identified
and analysed all of the potential risks surrounding the project. This expertise
is another factor that could eat into the money allocated to the project. It is
important to make sure that the risk analysis is done absolutely correctly, as
success of the entire project relies very heavily on the risk analysis. Due to
the pricing of the model it doesn't scale down well with smaller projects like
the Waterfall model does.
This model is most suitably used for projects that have a big
focus on the cost, with a lot of emphasis on evaluation, it is best used for
projects that have a medium to fairly high risk attached to them due to the
amount of risk analysis that takes place within the model.
Rapid Applications Development (RAD)
This model aims to very quickly produce applications and
systems for a fairly high cost. The components or functions of the system are
developed in parallel with each other (as though they were mini projects), this
reduces the development time. The time it takes to fully assemble the system is
timed, a finished product is then assembled into a working prototype that is
then given to the customers to test. This allows them to provide feedback on
the usability of the product and if all the requirements have been met.
The advantages of this model are that the development time is
reduced due to the fact that all functions are developed simultaneously, as
well as having a swift review process. Lastly, feedback from the users is
greatly encouraged in order to evaluate what works well with the system and
what needs to be modified, for example, say the system was very quick and
responsive to the user, however, there was an issue with the system’s code that
caused errors to occur. The user can inform the business of this fact so that
they can remove these problems quickly.
The disadvantages of this model are that in order for it to
succeed it relies on a strong team and a good individual performance, so that
the business objectives can be identified. Only systems that can be broken down
into smaller modules of code can be developed using RAD, otherwise they would
be incompatible. In order for the system to be developed, developers, designers
and programmers must have a high level of skill. This means that hiring the
correct staff may end up being very expensive. The overall cost of using this
model is very high, therefore it is impractical for use with smaller projects.
This model is most appropriate when the project requirements
state to efficiently develop a system to completion, in no more than 2-3
months. If the budget for the project is high enough to accommodate, and there
are enough designers, developers and programmers with the correct level of
skill needed in order to be able to complete the system without any issues
occurring.