0% found this document useful (0 votes)
91 views31 pages

Unit 1 - The Software Development Life Cycle

- The document discusses several software development life cycle (SDLC) models, including Waterfall, Extreme Programming, Spiral, V-Model, Big Bang, Rapid Application Development, and software prototyping. It describes the characteristics, advantages, and disadvantages of each model. - Iterative models like Extreme Programming and Rapid Application Development allow for flexibility and incorporating feedback, making them better suited than incremental models like Waterfall for complex projects with changing requirements. - Risk management is important in SDLC models, making Spiral model suitable for large, high-risk projects, while Waterfall and V-Model carry high risks of failure due to lack of flexibility.

Uploaded by

Bergue Chris
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
91 views31 pages

Unit 1 - The Software Development Life Cycle

- The document discusses several software development life cycle (SDLC) models, including Waterfall, Extreme Programming, Spiral, V-Model, Big Bang, Rapid Application Development, and software prototyping. It describes the characteristics, advantages, and disadvantages of each model. - Iterative models like Extreme Programming and Rapid Application Development allow for flexibility and incorporating feedback, making them better suited than incremental models like Waterfall for complex projects with changing requirements. - Risk management is important in SDLC models, making Spiral model suitable for large, high-risk projects, while Waterfall and V-Model carry high risks of failure due to lack of flexibility.

Uploaded by

Bergue Chris
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 31

OUbs017212

DESIGN & ALGORITHMS


Unit 1
The Software Development Life Cycle (SDLC)
Objectives
By completing this unit you will be able to:
• Describe the concept and different models of SDLC
• Shed the light on the enterprise that adopt SDLC models
• Draw the pros and cons of each SDLC method
• Differentiate between the different SDLC models
• Highlight the importance of each milestone in the SDLC
Agenda
• Introduction to SDLC
• SDLC Models
• Waterfall Model
• Extreme Programming
• Spiral Model
• V-Model
• Big Bang Model
• Rapid Application Development (RAD)
• Software Prototyping
Introduction
• Software Development Life Cycle (SDLC) is a framework that defines
the steps involved in the development of software at each phase. It
covers the detailed plan for building, deploying and maintaining the
software.
• SDLC is a process that produces software with the highest quality and
lowest cost in the shortest time.
• SDLC involves several distinct stages, including planning, design,
building, testing, and deployment.
SDLC Models
• The steps in the process of software development is illustrated in the
diagram (next slide)
• The different milestones are Planning, Requirement Analysis
(Defining), Designing, Development (Building or Implementing),
Testing, and Deployment
• All these milestones appear in one form or another at a given time
from a SDLC type to another
SDLC Models
SDLC Models
• For the success of a Software/System we must adhere to the different
step of the SDLC
• Each step actually impacts on the next one and often on the final
outcome. Ideas like we may skip the design element or requirements
analysis are misleading
• The conventional Waterfall model SDLC has since evolved and the
industry has come up with new life cycles namely agile and scrum.
• SDLCs are often classified as incremental (one step after the other) or
iterative (performing repeatedly and deliver then get feedback and
rework).
Waterfall Model
• The Waterfall model is similar to staircase whereby you need to
complete one step before moving to the next one.
• Often referred to as an incremental model, it has been widely used in
the early stage of software development in the industry and still for
educational reasons.
• The diagram (next slide) illustrates the Waterfall model from
requirements collection and analysis to Operation or Implementation.
Waterfall Model
Waterfall Model
• Waterfall is suitable for small systems where all steps are well
documented.
• For complex systems this model is not reliable.
• Waterfall does not offer flexibility for any change in between so once
requirements have been defined the product can only be assessed
after the final stage.
• Slowness and inflexibility characterize the Waterfall model.
Extreme Programming
• XP, extreme programming is an iterative model that allows flexibility
in requirements gathering and testing.
• (XP) is a software development methodology which is intended to
improve software quality and responsiveness to changing customer
requirements.
• As a type of agile software development, it promotes frequent
releases in short development cycles, which is intended to improve
productivity and introduce checkpoints at which new customer
requirements can be adopted.
Extreme Programming - XP Model
Extreme Programming - Iterative Model
Spiral Model
• Spiral model is a risk-driven software development process model.
Based on the unique risk patterns of a given project, the spiral
model guides a team to adopt elements of one or more
process models, such as incremental, waterfall, or evolutionary
prototyping.
• It allows to add elements at different stages.
• It allows risk management and time those risky at different stages.
• It works well for long term projects and accommodate user
requirements changes.
• However spiral model is hard to manage and endless loop may occur.
Spiral Model
V-Model
• The Verification and Validation Model resembles the Waterfall
model, however although being incremental the testing phase is
integrated at each level
• The V-model is a type of SDLC model where process executes in a
sequential manner in V-shape.
• It is based on the association of a testing phase for each
corresponding development stage. Development of each step directly
associated with the testing phase.
• The next phase starts only after completion of the previous phase i.e.
for each development activity, there is a testing activity.
V-Model
V-Model
• On the left the verification phases are Requirements Analysis and
different Design phases (System, Architecture and Module).
• In the middle you have the coding phase.
• On the right you have the validation phases which are Testing (Unit,
Integration, System, and Acceptance).
• V-model is a very strict model but is highly risky and unreliable.
Big Bang Model
• Big Bang Model does not follow a process and there is a very little planning required.
Customer is not sure about what exactly he wants and the requirements are
implemented on the fly without much analysis.
• The development just starts with the required money and efforts as the input, and
the output is the software developed which may or may not be as per customer
requirement.
• Usually this model is good for small projects where the development teams are very
small. No serious company will go for this model.
• Very high risk and uncertainty, could lead to miscalculations and therefore very
expensive.
• This is a straight forward simple method, might be helpful for academia types of
projects but same as V-Model in terms of risk and uncertainty.
Big Bang Model
Rapid Application Development (RAD)
• RAD is a rapid prototyping technique that delivers releases in a short
time.
• An iterative method with little or no planning.
• The main advantage of RAD is that it reduces development time while
accommodating changes.
• However, the main drawback is that it requires highly skilled team
members and developers to work on RAD projects. Such projects
should not be low cost or simple ones.
• RAD actually overcomes the flaws in conventional SDLCs like Waterfall
and V-Shape.
Rapid Application Development (RAD)
Rapid Application Development (RAD)
• RAD helps to understand the Requirements, Design the System, Build
in Stages, Test and Evaluate.
Software Prototyping
• Software prototyping enables to understand the early stages of the
project thus users are involved from the beginning and is limited to
some functionalities only available at development phase.
• Like RAD it allows reduction in production time and cost and provides
users with a working model that may help in identifying more
complex functions.
• The cons are that often developers spend too much in prototyping
and customers tend to take the prototype as the final product.
Software Prototyping
Agile Methodologies
• Agile Programming is the buzz word in the industry
• Most software development companies (lesser for companies in
mobile apps development) nowadays opt for agile programming.
• A derivative of Agile Programming is Scrum.
Summary

• The choice of an appropriate (SDLC) is crucial to the expected


outcomes
• Waterfall model is slow and inflexible but well documented that suits
small software systems
• Extreme Programming (XP) is an iterative methodology compared to
Waterfall model which is an incremental one
• Big Bang or Random Models make sense only in academia without
much value to the industry given it’s highly risky and expensive
Summary

• Rapid Application Development (RAD) is a fast prototyping technique


through small and quick releases that outshine the inflexibility and
slowness in conventional life cycles
• Spiral model comprises risk management, thus more suitable for high
risks project, another advantage is that it can accommodate changes
• V-Shaped model is a derivative of Waterfall model, very strict model
that integrates testing ate each phase, but contains high risk and
uncertainty
• Software prototyping involves user feedback at early stages but it’s
limited in terms of functionalities
Thank You For Your Attention

Any Question?
Activities
1. Illustrate with the help of a diagram the different steps in a SDLC.
2. Is it mandatory to adopt a SDLC in order to develop a software
system? Why is the choice of a particular SDLC important in
software development?
3. Why are the Waterfall cycle model and V-shaped cycle model
inappropriate for large design projects?
4. Why is the Spiral model only appropriate for large-scale and mission
critical applications?
5. Give some real life examples of the Spiral model.
Activities (Cont…)
6. Explain the concept of iterative model.
7. How does extreme programming differ from the waterfall model?
8. What are the weakness of the software prototyping model?
9. Describe the big bang model.
10. What prompted the RAD model?

You might also like