0% found this document useful (0 votes)
147 views

Software Development Life Cycles

Software Development Life Cycles waterfall model referred completed in its entirety before review takes place to determine continue or discard the project. Reviews. As a linear-sequential model. Each phase has specific deliverables and a review process. Works well for smaller projects where requirements are very well understood. Disadvantages 1. 2. 3. 4. 5. 6. Adjusting scope during the life cycle can kill a project.

Uploaded by

kbindhuja
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
147 views

Software Development Life Cycles

Software Development Life Cycles waterfall model referred completed in its entirety before review takes place to determine continue or discard the project. Reviews. As a linear-sequential model. Each phase has specific deliverables and a review process. Works well for smaller projects where requirements are very well understood. Disadvantages 1. 2. 3. 4. 5. 6. Adjusting scope during the life cycle can kill a project.

Uploaded by

kbindhuja
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 9

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

1. Each phase has specific deliverables and a review process.


2. Phases are processed and completed one at a time.
3. Works well for smaller projects where requirements are very well
understood.
4. It reinforces the notions of “define before design” and “design before code”.

Disadvantages

1. Adjusting scope during the life cycle can kill a project


2. No working software is produced until late during the life cycle.
3. High amounts of risk and uncertainty.
4. Poor model for complex and object-oriented projects.
5. Poor model for long and ongoing projects.
6. Poor model where requirements are at a moderate to high risk of changing.

When to use such model?


1. Such model is highly used where requirements are clear and there will be no
changes in the development time. We can find such scenarios in defense projects,
where requirements will be clear since before they write requirements they will
analyses well.
2. We can also name this kind of life cycle model for migration projects, where
requirements will be same only platform or languages may vary / change.
3. Also can use for projects where sponsor themselves will do testing activities,
since till the completion of the coding we will not deliver the project.

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

1. Each phase has specific deliverables.


2. Higher chance of success over the waterfall model due to the development
of test plans early on during the life cycle.
3. Time concern in comparison with the waterfall model is low or even we can
say 50% less.
4. Works well for small projects where requirements are easily understood.
5. Utility of the resources is high.

Disadvantages

1. Very rigid, like the waterfall model.


2. Little flexibility and adjusting scope is difficult and expensive.
3. Software is developed during the implementation phase, so no early
prototypes of the software are produced.
4. Model doesn’t provide a clear path for problems found during testing
phases.

When to use such model?

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

1. High amount of risk analysis


2. Good for large and mission-critical projects.
3. Software is produced early in the software life cycle.

Disadvantages

1. Can be a costly model to use.


2. Risk analysis requires highly specific expertise.
3. Project’s success is highly dependent on the risk analysis phase.
4. Doesn’t work well for smaller projects.

When to use such model?

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.

When to use such model?

1. Prototyping is very effective in the analysis and design of on-line systems.


2. Systems with little user interaction, such as batch processing or systems that
mostly do calculations, benefit little from prototyping. Sometimes, the coding
needed to perform the system functions may be too intensive and the potential
gains that prototyping could provide are too small.
3. Prototyping is especially good for designing good human-computer interfaces.
“One of the most productive uses of rapid prototyping to date has been as a tool
for iterative user requirements engineering and human-computer interface design

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. Each phase of an iteration is rigid and do not overlap each other.


2. Problems may arise pertaining to system architecture because not all
requirements are gathered up front for the entire software life cycle.

When to use such model?

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 a species or taxonomic group of organisms”. Similarly in the

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.

Successive version of the product:

Functioning systems capable of performing some useful work.


A new release may include new functionality:
Also existing functionality in the current release might have been enhanced.

Advantages

Users get a chance to experiment with a partially developed system


Helps finding exact user requirements
Core modules get tested thoroughly

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.

When to use such model?

1. As per my knowledge such models are used in the product development


companies and applications where from user behavior new requirements are
identified.
2. Even we can give live examples like web-based services companies (yahoo,
rediffmail, google and etc). Initially they may state with mailbox services then
later they moved to blogs, chatting, photo sharing and etc with the same username
and password credentials.
3. Basic difference between Incremental model and Evolutionary Model is in
Incremental or Iterative model requirements are clear and the implementation is in
phase wise whereas in evolutionary model the requirements are identified from
the business and user scenario’

You might also like