2.Life Cycle
2.Life Cycle
Other wise..
Types of Software Developing
Life Cycles
● Waterfall Model
● V-Shaped Model
● Evolutionary Prototyping Model
● Spiral Method (SDM)
● Iterative and Incremental Method
● Agile development
Waterfall Model
● The Waterfall Model is a linear sequential flow.
This means that any phase in the development
process begins only if the previous phase is
complete.
Advantages & Disadvantages
● Easy to explain to the users.
● Structures approach.
● Stages and activities are well defined.
● Helps to plan and schedule the project.
● Verification at each stage ensures early detection of
errors/misunderstanding.
● Each phase has specific deliverables.
● Assumes that the requirements of a system can be frozen.
● Very difficult to go back to any stage after it finished.
● A little flexibility and adjusting scope is difficult and expensive.
● Costly and required more time, in addition to the detailed plan.
V-Shaped Model
● It is an extension of the
waterfall model, Instead of
moving down in a linear way,
the process steps are bent
upwards after the
implementation and coding
phase, to form the typical V
shape. The major difference
between the V-shaped model
and waterfall model is the
early test planning in the V-
shaped model.
Advantages & Disadvantages
● Simple and easy to use
● Each phase has specific deliverables.
● Higher chance of success over the waterfall model due to the development of test
plans early on during the life cycle.
● Works well for where requirements are easily understood.
● Verification and validation of the product in the early stages of product development.
● Very inflexible, like the waterfall model.
● Adjusting scope is difficult and expensive.
● The software is developed during the implementation phase, so no early prototypes
of the software are produced.
● The model doesn’t provide a clear path for problems found during testing phases.
● Costly and required more time, in addition to a detailed plan
Prototyping Model
● It refers to the activity of creating prototypes of
software applications. It is an activity that can occur
in software development and it used to visualize
some component of the software to limit the gap of
misunderstanding the customer requirements by the
development team. This also will reduce the iterations
may occur in the waterfall approach and hard to be
implemented due to the inflexibility of the waterfall
approach. So, when the final prototype is developed,
the requirement is considered to be frozen.
Advantages & Disadvantages
● Reduced time and costs, but this can be a
disadvantage if the developer loses time in developing
the prototypes.
● Improved and increased user involvement.
● Insufficient analysis. User confusion of prototype and
finished system.
● Developer misunderstanding of user objectives.
● Excessive development time of the prototype.
● It is costly to implement the prototypes.
Spiral Model
● This model of development combines the
features of the prototyping model and the
waterfall model. The spiral model is favored for
large, expensive, and complicated projects.
This model uses many of the same phases as
the waterfall model, in essentially the same
order, separated by planning, risk assessment,
and the building of prototypes and simulations.
Spiral Model
Advantages & Disadvantages
● Estimates (i.e. budget, schedule, etc.) become more
realistic as work progressed because important issues
are discovered earlier.
● Early involvement of developers.
● Manages risks and develops the system into phases.
● High cost and time to reach the final product.
● Needs special skills to evaluate the risks and
assumptions.
● Highly customized limiting re-usability.
Iterative and Incremental Model
● It starts with an initial
planning and ends with
deployment with the
cyclic interactions in
between. The basic
idea behind this method
is to develop a system
through repeated cycles
(iterative) and in smaller
portions at a time
(incremental).
Advantages & Disadvantages
● Produces business value early in the development lifecycle.
● Better use of scarce resources through proper increment definition.
● Can accommodate some change requests between increments.
● More focused on customer value than the linear approaches.
● Detect project issues and changes earlier.
● Requires heavy documentation.
● Follows a defined set of processes.
● Defines increments based on function and feature dependencies.
● Requires more customer involvement than the linear approaches.
● Partitioning the functions and features might be problematic.
● Integration between the iterations can be an issue if it is not
considered during the development and project planning.
Agile Model
● It is based on iterative and incremental
development, where requirements and
solutions evolve through collaboration between
cross-functional teams. It can be used with any
type of the project, but it needs more
engagement from the customer and to be
interactive.
Advantages & Disadvantages
● Decrease the time required to avail some system features.
● Face to face communication and continuous inputs from customer
representative leaves no space for guesswork.
● The end result is the high-quality software in the least possible time
duration and satisfied customer.
● Scalability.
● The ability and collaboration of the customer to express user needs.
● Documentation is done at later stages.
● Reduce the usability of components.
● Needs special skills for the team.