Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

SOFTWARE DEVELOPMENT

LIFE CYCLE (SDLC)


BY
DEBRAJ
CHATTERJEE
What is SDLC, and why we
need them?

How to select the right SDLC?


SDLC
MODEL
1. A framework that
describes the activities
performed at each stage of a
Software
development
software development
methodology project.
2. SDLC is a splitting of
System software development work
Software development
process methodology into distinct phases (or
WAYS stages) containing activities
with the intent of better
planning and management
Software Software
development development
process life cycle
NEED OF A PROCESSMODEL

Project Planning

What should be or shouldn’t be built

Define the terminologies, activities and deliverables

Proper documentation
Align project progress visibility with stakeholders
MOST COMMON
MODELS
Waterfall

Extreme
programming V-Shaped
(Agile Model
development)

Models

Iterative and Evolutionary


Incremental Prototyping

Spiral Method
(SDM)
WATERFAL
L
• The waterfall Model is a linear
sequential flow.
• In which progress is seen as
flowing steadily downwards (like
a waterfall) through the phases
of software implementation.
• This means that any phase in the
development process begins
only if the previous phase is
complete.
• The waterfall approach does not
define the process to go back to
the previous phase to handle
changes in requirement.
• The waterfall approach is the
earliest approach that was used
for software development
Advantages Disadvantages

Easy to be explained inflexible, like the waterfall model

Stages and activities are well defined Adjusting scope is difficult and expensive

Milestones are well understood Model doesn't provide a clear path for
problems
found during testing phases

Each phase has specific deliverables Costly and required more time

Works well for smaller projects where Needs very proper and detailed planning
requirements are very well understood.

Process and results are well documented No continuous customer involvement to


review the output
ITERATIVEAND
INCREMENTAL
• It is developed to overcome the
weaknesses
Mini Waterfall 1
• of the waterfall model.

• It starts with an initial planning


and ends with deployment Mini Waterfall 2
with the cyclic interactions in
between.
Mini Waterfall n
• The basic idea behind this
method is to develop a system
through repeated cycles Final Waterfall
(iterative) and in smaller
portions at a time
(incremental), allowing
software developers to take
advantage of what was learned
during development of earlier
parts or versions of the system.
Advantages Disadvantages

Produces business value early in the Requires heavy documentation· Follows a


development life cycle defined set of
(Do you know why) processes
More customer involvement Partitioning the functions and features
might be problematic
Better use of scarce resources through Defines increments based on function and
proper increment feature
definition dependencies
Can accommodate some change requests Requires more customer involvement than
between increments the linear approaches (It is advantage as
well)
More focused on customer value than the Integration between iteration can be an
linear issue if this is not
approaches considered during the development
Problems can be detected earlier

Lowers initial delivery cost and initial


product delivery is
faster
PROTOTYPINGMOD
EL
• It refers to the activity of creating
prototypes of software applications,
for example, incomplete versions of
the software program being
developed.
• It is an activity that can occur in
software development. 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 waterfall approach and
hard to be implemented due to
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 Insufficient analysis, guess why?

this can be disadvantage if the developer User confusion of prototype and finished
loses time system
in developing the prototypes

Improved user involvement Developer misunderstanding of user


objectives·

Users give corrective feedback Excessive development time of the


prototype

A more accurate end product Expense of implementing prototyping, this


can be eliminated if it will be integrated
with the final product. Process may
continue forever (scope creep)
WHEN TO USE THE WATERFALL
MODEL
• Requirements are very well known
• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
RAPID APPLICATION MODEL
(RAD)

• Requirements planning phase (a workshop utilizing


structured discussion of business problems)
• User description phase – automated tools capture
information from users
• Construction phase – productivity tools, such as code
generators, screen generators, etc. inside a time-box.
(“Do until done”)
• Cutover phase -- installation of the system, user
acceptance testing and user training
RAD
STRENGTHS

• Reduced cycle time and improved productivity with


fewer people means lower costs
• Time-box approach mitigates cost and schedule risk
• Customer involved throughout the complete cycle
minimizes risk of not achieving customer satisfaction and
business needs
• Focus moves from documentation to code (WYSIWYG).
• Uses modeling concepts to capture information about
business, data, and processes.
RAD
WEAKNESSES

• Accelerated development process must give quick


responses to the user
• Risk of never achieving closure
• Hard to use with legacy systems
• Requires a system that can be modularized
• Developers and customers must be committed to rapid-
fire activities in an abbreviated time frame.
WHEN TO USE
RAD

• Reasonably well-known requirements


• User involved throughout the life cycle
• Project can be time-boxed
• Functionality delivered in increments
• High performance not required
• Low technical risks
• System can be modularized
INCREMENTAL MODEL
WEAKNESSES

•• Requires
Requires good
earlyplanning and design
definition of a complete and fully
functional system to allow for the definition of
increments
• Well-defined module interfaces are required (some will
be developed long before others)
• Total cost of the complete system is not lower
WHEN TO USE THE INCREMENTAL
MODEL

• Risk, funding, schedule, program complexity, or need for


early realization of benefits.
• Most of the requirements are known up-front but are
expected to evolve over time
• A need to get basic functionality to the market early
• On projects which have lengthy development schedules
• On a project with new technology
SPIRAL
MODEL
• It is combining elements of both design and prototyping-in-
stages, in an effort to combine advantages of top-down and
bottom-up concepts.
• 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.
Advantages Disadvantages

Estimates (i.e. budget, schedule, etc.) High cost and time to reach the final
become more product
realistic as work progresses

Changing requirements can be Needs special skills to evaluate the risks


accommodated and assumptions

Development can be divided into smaller Highly customized limiting re-usability


parts and more risky parts can be
developed earlier which helps better risk
management

Users see the system early and give Time spent planning, setting objectives,
corrective feedback doing risk analysis and prototyping will be
huge

A more accurate end product


AGILE(XP-
SCRUM)
• It can be used with any type of the project
• it can be used when the customer needs to have some functional requirement ready in
less than three weeks
• It is based on iterative and incremental development, where requirements and
solutions evolve through collaboration between cross-functional teams.
• Usually less formal and reduced scope
• Used for time-critical
app
Advantages Disadvantages

Decrease the time required to avail some Scalability


system features
Face to face communication and continuous Skill of the software developers
inputs from customer representative leaves
no space for guesswork
The end result is the high quality software in Ability of customer to express user needs
least possible time duration and satisfied
customer
Produces business value early in the Documentation is done at later stages
development life cycle
Reduce the usability of components

Needs special skills for the team


Factors Waterfall V-Shaped Evolutionary Spiral Iterative and Agile
Prototyping Incremental Methodologie
s
Unclear User Poor Poor Good Excellent Good Excellent
Requirement
Unfamiliar Poor Poor Excellent Excellent Good Poor
Technology
Complex System Good Good Excellent Excellent Good Poor
Reliable system Good Good Poor Excellent Good Good
Short Time Poor Poor Good Excellent Excellent Excellent
Schedule
Strong Project Excellent Excellent Excellent Excellent Excellent Excellent
Management
Cost limitation Poor Poor Poor Poor Excellent Excellent
Visibility of Good Good Excellent Excellent Good Excellent
Stakeholders
Skills limitation Good Good Poor Poor Good Poor
Documentations Excellent Excellent Good Good Excellent Poor
Component Excellent Excellent Poor Poor Excellent Poor
reusability

You might also like