Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Life Cycle
1
Software Development Life Cycle
Software Development Life Cycle, SDLC for short, is a well-
defined, structured sequence of stages in software
engineering to develop the intended software product.
2
Software Development Life Cycle
Communication
• This is the first step where the user initiates the
request for a desired software product. The user
contacts the service provider and tries to negotiate
the terms, submits the request to the service
providing organization in writing.
3
Software Development Life Cycle
Requirement Gathering
This step onwards the software development team
works to carry on the project. The team holds
discussions with various stakeholders from problem
domain and tries to bring out as much information as
possible on their requirements. The requirements are
contemplated and segregated into user requirements,
system requirements and functional requirements.
The requirements are collected using a number of
practices as given –
• studying the existing or obsolete system and
software,
• conducting interviews of users and developers,
• referring to the database or
• collecting answers from the questionnaires.
4
Software Development Life Cycle
5
Software Development Life Cycle
Feasibility Study
• After requirement gathering, the team comes up with
a rough plan of software process. At this step the
team analyses if a software can be designed to fulfil
all requirements of the user, and if there is any
possibility of software being no more useful. It is also
analysed if the project is financially, practically, and
technologically feasible for the organization to take
up. There are many algorithms available, which help
the developers to conclude the feasibility of a
software project.
6
Software Development Life Cycle
System Analysis
• At this step the developers decide a roadmap of their
plan and try to bring up the best software model
suitable for the project. System analysis includes
understanding of software product limitations,
learning system related problems or changes to be
done in existing systems beforehand, identifying and
addressing the impact of project on organization and
personnel etc. The project team analyses the scope of
the project and plans the schedule and resources
accordingly.
7
Software Development Life Cycle
Software Design
• Next step is to bring down whole knowledge of
requirements and analysis on the desk and design the
software product. The inputs from users and
information gathered in requirement gathering phase
are the inputs of this step. The output of this step
comes in the form of two designs; logical design, and
physical design. Engineers produce meta-data and
data dictionaries, logical diagrams, data-flow
diagrams, and in some cases pseudo codes.
8
Software Development Life Cycle
Coding
• This step is also known as programming phase. The
implementation of software design starts in terms of
writing program code in the suitable programming
language and developing error-free executable
programs efficiently.
9
Software Development Life Cycle
Testing
• An estimate says that 50% of whole software
development process should be tested. Errors may
ruin the software from critical level to its own
removal. Software testing is done while coding by the
developers and thorough testing is conducted by
testing experts at various levels of code such as
module testing, program testing, product testing, in-
house testing, and testing the product at user’s end.
Early discovery of errors and their remedy is the key
to reliable software.
10
Software Development Life Cycle
Integration
• Software may need to be integrated with the libraries,
databases, and other program(s). This stage of SDLC is
involved in the integration of software with outer
world entities.
11
Software Development Life Cycle
Implementation
• This means installing the software on user machines.
At times, software needs post-installation
configurations at user end. Software is tested for
portability and adaptability and integration related
issues are solved during implementation.
12
Software Development Life Cycle
13
Roles Associated with Various Phases in SDLC
Project
Manager
Planning & Control
Quality
Reviewer
Business
System System Integration
Requirement Architect Designer Developer
Analyst Tester Tester
Analyst
14
Software Development
Paradigm
15
Software Development Paradigm
The software development paradigm helps a developer to select
a strategy to develop the software. A software development
paradigm has its own set of tools, methods, and procedures,
which are expressed clearly and defines software development
life cycle. A few of software development paradigms or process
models are defined as follows:
• Waterfall Model
• Structured Evolutionary Prototyping Model
• Incremental Model
• Rapid Application Development (RAD) Model
• Spiral Model
• V-Model
• Scrum Development Model
• Big Bang Model
Etc.
16
Waterfall Model
17
Waterfall Model
Waterfall model is the simplest model of software
development paradigm. All the phases of SDLC will function
one after another in linear manner. That is, when the first
phase is finished then only the second phase will start and
so on.
Waterfall Model
Requirement Gathering
System Analysis
Coding
Testing
Implementation
18
Waterfall Model
This model assumes that everything is carried out and taken place
perfectly as planned in the previous stage and there is no need to
think about the past issues that may arise in the next phase. This
model does not work smoothly if there are some issues left at the
previous step. The sequential nature of model does not allow us to
go back and undo or redo our actions.
This model is best suited when developers already have designed
and developed similar software in the past and are aware of all its
domains.
Waterfall Model
19
Waterfall Strengths
20
Waterfall Deficiencies
21
When to Use the Waterfall Model
22
Structured Evolutionary
Prototyping Model
23
Structured Evolutionary Prototyping Model
24
Structured Evolutionary Prototyping Steps
• A preliminary project plan is developed
• A partial high-level paper model is created
• The model is source for a partial requirements specification
• A prototype is built with basic and critical attributes
The designer builds
The Database
User Interface
Algorithmic Functions
• The designer demonstrates the prototype, the user evaluates
for problems and suggests improvements
• This loop continues until the user is satisfied
25
Structured Evolutionary Prototyping Strengths
How does Evolutionary Prototyping Help Customers and
Developers?
• Customers can “see” the system requirements as they
are being gathered
• Developers learn from customers
How are new requirements dealt with?
• Unexpected requirements accommodated
• Allows for flexible design and development
How can additional needed functionality be identified?
• Interaction with the prototype stimulates awareness of
additional needed functionality
26
Structured Evolutionary Prototyping Weaknesses
27
When to use Structured Evolutionary Prototyping?
28
Incremental Model
29
Incremental Model
Release 3
Release 2 Test
Test
Release 1 Build
Build Each release delivers
Test
Increment 2 an operational
Build Design product
Design
Design
Requirement Requirement Requirement
Analysis Analysis
Analysis
30
Incremental Model Strengths
31
Incremental Model Weaknesses
32
When to Use the Incremental Model?
33
Rapid Application
Development (RAD)
34
Rapid Application Development (RAD)
• Rapid Application Development (RAD) is a software
development methodology that focuses on building
applications in a very short amount of time
• It is a high speed adaptation of the linear sequential
model in which rapid development is achieved by using
component based construction
35
Core Elements of RAD
• Business Modeling
• Data Modeling
• Process Modeling
• Application Generation
• Testing and Turnover
• RAD tools (Erwin, CASE tools, Rational Rose, Visio)
36
RAD Strengths
37
RAD Weaknesses
38
When to Use RAD?
39
Spiral Model
40
Spiral Model
41
Spiral Model
43
Spiral Model Weaknesses
44
When to Use Spiral Model?
45
V-Model
46
V-Model
The major drawback of waterfall model is we move to the next stage only
when the previous one is finished and there was no chance to go back if
something is found wrong in later stages. V-Model provides means of
testing of software at each stage in reverse manner.
47
V-Model
48
V-Shaped Strengths
49
V-Shaped Weaknesses
50
When to use the V-Shaped Model?
52
Scrum Development Model
53
Scrum Development Model
1-4 Weeks
Product Owner Team Review
Product Retrospective
Backlog
54
Scrum Development Model
56
Big Bang Model
Time
Big Bang
Efforts Software
Resources
57
Big Bang Model
Time
Big Bang
Efforts Software
Resources
58