Вы находитесь на странице: 1из 27

SOFTWARE DEVELOPMENT LIFE

CYCLE (SDLC)
MOHAMED SAMI
AGENDA

What is SDLC, and why we need them

How to select the right SDLC

Software Development Life Cycle (SDLC) - Mohamed Sami 2


WHAT IS SDLC?

Software
development
methodology
SDLC is a splitting of software
A framework that describes development work into
the activities performed at distinct phases (or stages)
Software
System each stage of a software containing activities with the
development
process
methodology
development project. intent of better planning and
Known management
as
The SDLC aims to produce a
high quality software that
meets or exceeds customer
Software Software expectations, reaches
development development
process life cycle
completion within times and
cost estimates

Software Development Life Cycle (SDLC) - Mohamed Sami 3


WHAT IS SDLC PROCESS MODELS?

• SDLC models have been created by software development experts,


universities, and standards organizations to solve some repeated issue
or to enhance other models.
• Each process model follows series of steps unique to its type, in order
to ensure success in process of software development.

Software Development Life Cycle (SDLC) - Mohamed Sami 4


WHY USING A PROCESS MODEL

Define the
What should be or terminologies,
Project Planning
shouldn’t be built activities and
deliverables

Align project
Proper
progress visibility
documentation
with stakeholders
Software Development Life Cycle (SDLC) - Mohamed Sami 5
THE RIGHT CHOICE

We need to choose the right SDLC based on project context

Improve customer Development speed Increase projects success


alignment and relations (time to market) rate

Eliminating management Decrease


Improve software quality
overhead implementation risk

Software Development Life Cycle (SDLC) - Mohamed Sami 6


PERSPECTIVES

Software Development Life Cycle (SDLC) - Mohamed Sami 7


THE COST OF DEFECTS

Software Development Life Cycle (SDLC) - Mohamed Sami 8


HOW TO SELECT THE RIGHT SDLC

• Selecting the right SDLC is a process in itself that organization can implement internally or consult for.
There are some steps to get the right selection

Assess the
Learn about Define the
needs of
SDLC Models criteria
Stakeholders

Software Development Life Cycle (SDLC) - Mohamed Sami 9


MOST COMMON MODELS

Waterfall

Extreme
programming V-Shaped
(Agile Model
development)

Models

Iterative and Evolutionary


Incremental Prototyping

Spiral Method
(SDM)

Software Development Life Cycle (SDLC) - Mohamed Sami 10


WATERFALL
The usage
Projects which not focus on changing requirements, for example, responses for
request for proposals (RFPs)

• The waterfall Model is a linear


sequential flow.
• In which progress is seen as
flowing steadily downwards (like
a waterfall) through the phases A linear
of software implementation.
sequential flow.
• This means that any phase in the Requirements
development process begins analysis
Design
only if the previous phase is
complete. Implementati
on
• The waterfall approach does not Testing
define the process to go back to
the previous phase to handle Release and
changes in requirement. deployment
Operation
• The waterfall approach is the
Oldest and most and
earliest approach that was used well-known - maintenance
for software development 1970
Software Development Life Cycle (SDLC) - Mohamed Sami 11
ADVANTAGES AND DISADVANTAGES

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 requirements Needs very proper and detailed planning
are very well understood.
Process and results are well documented No continuous customer involvement to review the
output

Software Development Life Cycle (SDLC) - Mohamed Sami 12


V-SHAPED The usage
· Software requirements clearly defined and known
· Software development technologies and tools is well-known

• It is an extension for waterfall


model, Instead of moving
down in a linear way, the
process steps are bent
upwards after the coding
phase, to form the typical V
shape.
• The major difference between
v-shaped model and waterfall
model is the early test
planning in v-shaped model.

Software Development Life Cycle (SDLC) - Mohamed Sami 13


ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Verification and validation of the product in early Assumes that the requirements of a system can be
stages of product development frozen and known from beginning
Easy to use. Does not easily handle dynamic changes in
Stages and activities are well defined requirements
Higher chance of success over the waterfall model Inflexible and adjusting scope is difficult and
due to the development of test plans early on expensive
during the life cycle
Each phase has specific deliverables Costly and required more time

Works well for where requirements are easily Needs very proper and detailed planning
understood
No continuous customer involvement

Software Development Life Cycle (SDLC) - Mohamed Sami 14


PROTOTYPING MODEL
The usage
• This process can be used with any software developing life cycle model.
• While this shall be focused with systems needs more user interactions.
• So, the system do not have user interactions, such as, system does some
• It refers to the activity of
creating prototypes of software calculations shall not have prototypes.
applications, for example,
incomplete versions of the
software program being Throwaway
developed.
prototyping
• 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. Extreme Evolutionary
• This also will reduce the
prototyping prototyping
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 Incremental
considered to be frozen. prototyping
Software Development Life Cycle (SDLC) - Mohamed Sami 15
PROTOTYPING MODEL

Software Development Life Cycle (SDLC) - Mohamed Sami 16


ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Reduced time and costs Insufficient analysis, guess why?

this can be disadvantage if the developer loses time User confusion of prototype and finished 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)

Software Development Life Cycle (SDLC) - Mohamed Sami 17


The usage
• It is used in shrink-wrap large applications and systems which
SPIRAL (SDM) built-in small phases or segments.

• 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.
Software Development Life Cycle (SDLC) - Mohamed Sami 18
ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Estimates (i.e. budget, schedule, etc.) become more High cost and time to reach the final product
realistic as work progresses
Changing requirements can be accommodated Needs special skills to evaluate the risks and
assumptions
Development can be divided into smaller parts and Highly customized limiting re-usability
more risky parts can be developed earlier which
helps better risk management
Users see the system early and give corrective Time spent planning, setting objectives, doing risk
feedback analysis and prototyping will be huge
A more accurate end product

Software Development Life Cycle (SDLC) - Mohamed Sami 19


ITERATIVE AND INCREMENTAL The usage
• It is used in shrink-wrap application and large system
which built-in small phases or segments
• can be used in system has separated components, for
example, ERP system. Which we can start with budget
• It is developed to overcome the weaknesses module as first iteration and then we can start with
of the waterfall model. inventory module and so forth.
• It starts with an initial planning and ends
with deployment with the cyclic interactions
in between.
Mini Waterfall 1
• The basic idea behind this method is to
develop a system through repeated cycles Mini Waterfall 2
(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 Mini Waterfall n
versions of the system.

Final Waterfall
Software Development Life Cycle (SDLC) - Mohamed Sami 20
ADVANTAGES AND DISADVANTAGES
Advantages Disadvantages

Produces business value early in the development life cycle Requires heavy documentation· Follows a 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 proper increment Defines increments based on function and feature
definition dependencies
Can accommodate some change requests between Requires more customer involvement than the linear
increments approaches (It is advantage as well)
More focused on customer value than the linear Integration between iteration can be an 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
Software Development Life Cycle (SDLC) - Mohamed Sami 21
AGILE (XP - SCRUM)
The usage
• 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
applications

Software Development Life Cycle (SDLC) - Mohamed Sami 22


ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Decrease the time required to avail some system features Scalability

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

Needs special skills for the team

Software Development Life Cycle (SDLC) - Mohamed Sami 23


THE CONTEXT

Business Priorities Skills

Technology Others

Software Development Life Cycle (SDLC) - Mohamed Sami 24


THE CRITERIA

• Is the SDLC appropriate for the size of our team and their skills?
• Is the SDLC appropriate with the selected technology we use for implementing the solution?
• Is the SDLC appropriate with client and stakeholders need and priorities
• Is the SDLC appropriate for the geographical situation (co-located or geographically dispersed)?
• Is the SDLC appropriate for the size and complexity of our software?
• Is the SDLC appropriate for the type of projects we do?
• Is the SDLC appropriate for our engineering capability?

Software Development Life Cycle (SDLC) - Mohamed Sami 25


THE CRITERIA
Factors Waterfall V-Shaped Evolutionary Spiral Iterative and Agile
Prototyping Incremental Methodologies
Unclear User Poor Poor Good Excellent Good Excellent
Requirement
Unfamiliar Technology Poor Poor Excellent Excellent Good Poor

Complex System Good Good Excellent Excellent Good Poor


Reliable system Good Good Poor Excellent Good Good
Short Time Schedule Poor Poor Good Excellent Excellent Excellent

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 reusability Excellent Excellent Poor Poor Excellent Poor

Software Development Life Cycle (SDLC) - Mohamed Sami 26


Thank you

I hope you have learned new things


Mohamed Sami

Software Development Life Cycle (SDLC) - Mohamed Sami 27