Software Development Life Cycles
Software Development Life Cycles
Waterfall Model
Waterfall model also referred as a linear-sequential model. Each phase must be
completed in its entirety before the next phase can begin. At the end of each phase, a
review takes place to determine if the project is on the right path and whether or not to
continue or discard the project. This kind of reviews is known as or called Phase end
reviews.
Advantages
Disadvantages
V-Shaped Model
Importances of the testing activity in this model more so than the waterfall model
though. Test cases / procedures / conditions / scenarios are developed early in the life
cycle before any coding is done.
Requirements begin the life cycle model just like the waterfall model. Before
development is started, a system test plan is created. The test plan focuses on meeting the
functionality specified in the requirements gathering.
High-level design phase focuses on system architecture and design. An integration test
plan is created in this phase as well in order to test the pieces of the software systems
ability to work together.
Low-level design phase is where the actual software components are designed, and unit
tests are created in this phase as well.
Implementation phase is, again, where all coding takes place. Once coding is complete,
the path of execution continues up the right side of the V where the test plans developed
earlier are now put to use.
Advantages
Disadvantages
1. As per my knowledge I personally think / feel where time and cost is the
constraints of the project then we can use such models for quick and cost effective
delivery.
2. In comparison with waterfall model more or less same but the activity of testing
starts very early, which leads to less time, and cost of the project.
Spiral Model
The spiral model is similar to the incremental model, with more emphases placed on risk
analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations
(called Spirals in this model). The baseline spiral, starting in the planning phase,
requirements are gathered and risk is assessed. Each subsequent spiral builds on the
baseline spiral.
Requirements are gathered during the planning phase. In the risk analysis phase, a
process is undertaken to identify risk and alternate solutions. A prototype is produced at
the end of the risk analysis phase.
Software is produced in the engineering phase, along with testing at the end of the phase.
The evaluation phase allows the customer to evaluate the output of the project to date
before the project continues to the next spiral.
In the spiral model, the angular component represents progress, and the radius of the
spiral represents cost.
Advantages
Disadvantages
1. For a typical shrink-wrap application, the spiral model might mean that you have
a rough-cut of user elements (without the polished / pretty graphics) as an
operable application, add features in phases, and, at some point, add the final
graphics.
2. The spiral model is used most often in large projects.
3. The US military has adopted the spiral model for its Future Combat Systems
program
Prototype Model
In scenario where there is an absence of detailed information regarding the input to the
system, the processing needs and the output requirements, the prototyping model may be
employed. This model allows the client to interact and experiment with a working
representation of the product. The developmental process only continues once the client
is satisfied with the functioning of the prototype. At that stage the developer determines
the specifications of the client’s real needs.
Advantages
1. The software designer and implementer can obtain feedback from the users early
in the project
2. The client and the contractor can compare if the software made matches the
software specification, according to which the software program is built.
3. It also allows the software engineer some insight into the accuracy of initial
project estimates and whether the deadlines and milestones proposed can be
successfully met.
Disadvantages
1. Often clients expect that a few minor changes to the prototype will more than
suffice their needs. They fail to realise that no consideration was given to the
overall quality of the software in the rush to develop the prototype.
2. The developers may lose focus on the real purpose of the prototype and
compromise the quality of the product. For example, they may employ some of
the inefficient algorithms or inappropriate programming languages used in
developing the prototype. This mainly due to laziness and an over reliance on
familiarity with seemingly easier methods.
3. A prototype will hardly be acceptable in court in the event that the client does not
agree that the developer has discharged his/her obligations. For this reason using
the prototype as the software specification is normally reserved for software
development within an organisation.
Incremental Model
The incremental model is an intuitive approach to the waterfall model. Multiple
development cycles take place here, making the life cycle a “multi-waterfall” cycle.
Cycles are divided up into smaller, more easily managed iterations. Each iteration passes
through the requirements, design, implementation and testing phases.
A working version of software is produced during the first iteration, so you have working
software early on during the software life cycle. Subsequent iterations build on the initial
software produced during the first iteration.
Advantages
1. Generates working software quickly and early during the software life cycle.
2. More flexible – less costly to change scope and requirements.
3. Easier to test and debug during a smaller iteration.
4. Easier to manage risk because risky pieces are identified and handled during
its iteration.
5. Each iteration is an easily managed milestone.
Disadvantages
1. Such models are used where requirements are clear and can implement by phase
wise. From the figure it’s clear that the requirements ® is divided into R1,
R2……….Rn and delivered accordingly.
2. Mostly such model is used in web applications and product based companies.
Evolutionary Model
As the word evolution states as “The sequence of events involved in the evolutionary
development of the software products the sequences of events happens to fine tune the
product. First develop the core modules of the system. The initial product skeleton is
refined into increasing levels of capability: by adding new functionalities in successive
versions.
Advantages
Disadvantages
Often, difficult to subdivide problems into functional units:
Which can be incrementally implemented and delivered.
Evolutionary model is useful for very large problems,
Where it is easier to find modules for incremental
implementation.