Date post: | 07-Jan-2017 |
Category: |
Engineering |
Upload: | mohamed-sami-el-tahawy |
View: | 7,799 times |
Download: | 2 times |
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
MOHAMED SAMI
AGENDA
Software Development Life Cycle (SDLC) - Mohamed Sami 2
What is SDLC, and why we need them
How to select the right SDLC
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
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
Project PlanningWhat 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
THE RIGHT CHOICE
Improve customer alignment and relations
Development speed (time to market)
Increase projects success rate
Improve software qualityEliminating management
overheadDecrease
implementation risk
We need to choose the right SDLC based on project context
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
Learn about SDLC Models
Assess the needs of
Stakeholders
Define the criteria
Software Development Life Cycle (SDLC) - Mohamed Sami 9
MOST COMMON MODELS
Models
Waterfall
V-Shaped Model
Evolutionary Prototyping
Spiral Method (SDM)
Iterative and Incremental
Extreme programming
(Agile development)
Software Development Life Cycle (SDLC) - Mohamed Sami 10
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
Implementation
Design
Requirements analysis
A linear sequential flow.
Oldest and most well-known -
1970
The usageProjects which not focus on changing requirements, for example, responses for request for proposals (RFPs)
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 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
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
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
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
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 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
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
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
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
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
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
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
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 CRITERIAFactors 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
Thank you
I hope you have learned new things
Mohamed Sami
Software Development Life Cycle (SDLC) - Mohamed Sami 27