3. WHAT IS SDLC?
A framework that describes
the activities performed at
each stage of a software
development project.
SDLC is a splitting of software
development work into
distinct phases (or stages)
containing activities with the
intent of better planning and
management
The SDLC aims to produce a
high quality software that
meets or exceeds customer
expectations, reaches
completion within times and
cost estimates
Known
as
Software
development
methodology
System
development
methodology
Software
development
life cycle
Software
development
process
Software
process
Software Development Life Cycle (SDLC) - Mohamed Sami 3
4. 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
5. WHY USING A PROCESS MODEL
Project Planning
What should be or
shouldn’t be built
Define the
terminologies,
activities and
deliverables
Proper
documentation
Align project
progress visibility
with stakeholders
Software Development Life Cycle (SDLC) - Mohamed Sami 5
6. THE RIGHT CHOICE
Improve customer
alignment and relations
Development speed
(time to market)
Increase projects success
rate
Improve software quality
Eliminating management
overhead
Decrease
implementation risk
We need to choose the right SDLC based on project context
Software Development Life Cycle (SDLC) - Mohamed Sami 6
8. THE COST OF DEFECTS
Software Development Life Cycle (SDLC) - Mohamed Sami 8
9. 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
Learn about
SDLC Models
Assess the
needs of
Stakeholders
Define the
criteria
Software Development Life Cycle (SDLC) - Mohamed Sami 9
11. WATERFALL
• 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
Operation
and
maintenance
Release and
deployment
Testing
Implementati
on
Design
Requirements
analysis
A linear
sequential flow.
Oldest and most
well-known -
1970
The usage
Projects which not focus on changing requirements, for example, responses for
request for proposals (RFPs)
Software Development Life Cycle (SDLC) - Mohamed Sami 11
12. 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
are very well understood.
Needs very proper and detailed planning
Process and results are well documented No continuous customer involvement to review the
output
Software Development Life Cycle (SDLC) - Mohamed Sami 12
13. V-SHAPED
• 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.
The usage
· Software requirements clearly defined and known
· Software development technologies and tools is well-known
Software Development Life Cycle (SDLC) - Mohamed Sami 13
14. ADVANTAGES AND DISADVANTAGES
Advantages Disadvantages
Verification and validation of the product in early
stages of product development
Assumes that the requirements of a system can be
frozen and known from beginning
Easy to use.
Stages and activities are well defined
Does not easily handle dynamic changes in
requirements
Higher chance of success over the waterfall model
due to the development of test plans early on
during the life cycle
Inflexible and adjusting scope is difficult and
expensive
Each phase has specific deliverables Costly and required more time
Works well for where requirements are easily
understood
Needs very proper and detailed planning
No continuous customer involvement
Software Development Life Cycle (SDLC) - Mohamed Sami 14
15. PROTOTYPING MODEL
• 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.
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
calculations shall not have prototypes.
Throwaway
prototyping
Evolutionary
prototyping
Incremental
prototyping
Extreme
prototyping
Software Development Life Cycle (SDLC) - Mohamed Sami 15
17. ADVANTAGES AND DISADVANTAGES
Advantages Disadvantages
Reduced time and costs Insufficient analysis, guess why?
this can be disadvantage if the developer loses time
in developing the prototypes
User confusion of prototype and finished system
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
18. SPIRAL (SDM)
• 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.
The usage
• It is used in shrink-wrap large applications and systems which
built-in small phases or segments.
Software Development Life Cycle (SDLC) - Mohamed Sami 18
19. ADVANTAGES AND DISADVANTAGES
Advantages Disadvantages
Estimates (i.e. budget, schedule, etc.) become more
realistic as work progresses
High cost and time to reach the final product
Changing requirements can be accommodated Needs special skills to evaluate the risks and
assumptions
Development can be divided into smaller parts and
more risky parts can be developed earlier which
helps better risk management
Highly customized limiting re-usability
Users see the system early and give corrective
feedback
Time spent planning, setting objectives, doing risk
analysis and prototyping will be huge
A more accurate end product
Software Development Life Cycle (SDLC) - Mohamed Sami 19
20. ITERATIVE AND INCREMENTAL
• It is developed to overcome the weaknesses
of the waterfall 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), allowing software developers
to take advantage of what was learned
during development of earlier parts or
versions of the system.
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
module as first iteration and then we can start with
inventory module and so forth.
Mini Waterfall 1
Mini Waterfall 2
Mini Waterfall n
Final Waterfall
Software Development Life Cycle (SDLC) - Mohamed Sami 20
21. ADVANTAGES AND DISADVANTAGES
Advantages Disadvantages
Produces business value early in the development life cycle
(Do you know why)
Requires heavy documentation· Follows a defined set of
processes
More customer involvement Partitioning the functions and features might be
problematic
Better use of scarce resources through proper increment
definition
Defines increments based on function and feature
dependencies
Can accommodate some change requests between
increments
Requires more customer involvement than the linear
approaches (It is advantage as well)
More focused on customer value than the linear
approaches
Integration between iteration can be an issue if this is not
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
22. AGILE (XP - SCRUM)
• 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
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
Software Development Life Cycle (SDLC) - Mohamed Sami 22
23. ADVANTAGES AND DISADVANTAGES
Advantages Disadvantages
Decrease the time required to avail some system features Scalability
Face to face communication and continuous inputs from
customer representative leaves no space for guesswork
Skill of the software developers
The end result is the high quality software in least possible
time duration and satisfied customer
Ability of customer to express user needs
Produces business value early in the development life cycle
(Do you know why)
Documentation is done at later stages
Reduce the usability of components
Needs special skills for the team
Software Development Life Cycle (SDLC) - Mohamed Sami 23
25. 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
26. THE CRITERIA
Factors Waterfall V-Shaped Evolutionary
Prototyping
Spiral Iterative and
Incremental
Agile
Methodologies
Unclear User
Requirement
Poor Poor Good Excellent Good Excellent
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
Management
Excellent Excellent Excellent Excellent Excellent Excellent
Cost limitation Poor Poor Poor Poor Excellent Excellent
Visibility of
Stakeholders
Good Good Excellent Excellent Good Excellent
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
27. Thank you
I hope you have learned new things
Mohamed Sami
Software Development Life Cycle (SDLC) - Mohamed Sami 27