0% found this document useful (0 votes)
39 views44 pages

3 Software Development Life Cycle

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

3 Software Development Life Cycle

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

Software

Development
Life Cycle
(SDLC)
Introduction of SDLC
Learning Objectives:

 Introduction of Software Process


 PDCA Cycle
 Phases in SDLC
 SDLC Models
 Waterfall Model
 Incremental Model
 Spiral Model
 Agile Model
Software Process
Process – Projects – Products

 A software process specifies a method of


developing software.

 A software project on the other hand, is a


development project in which a software
process is used.

 A Software product is the final outcome of a


software project.
PDCA Cycle

PLAN
Planning &
Necessary Actions Designing

ACT DO

Coding &
Production

CHECK
Testing &
Evaluating
PDCA Cycle
 PDCA is a successive cycle which starts off small
to test potential effects on processes, but then
gradually leads to larger and more targeted
change.
PLAN
 Establish the objectives and processes necessary
to deliver results in accordance with the
expected output.
DO
 Implement the new processes. Often on a small
scale if possible,
 to test possible effects. either one or more of the
P-D-C-A steps.
PDCA Cycle
CHECK
 Measure the new processes and compare the
results against the expected results to ascertain
any differences.

ACT
 Analyze the differences to determine their cause.
SDLC

Conclusion - Requirements are mandatory for any project to


succeed.
Software Development Life
Cycle(SDLC)
 Software Development Life Cycle(SDLC) is a
process used by software industry to design,
develop and test high quality software's.
 The SDLC aims to produce a high quality
software that meets or exceeds customer
expectations, reaches completion within times
and cost estimates.
 The SDLC consists of a detailed plan describing
how to develop, maintain, replace and alter or
enhance specific software.
 The life cycle defines a methodology for
improving the quality of software and the overall
development process.
Phases in SDLC
Phases in SDLC
 Stage 1: Requirement Gathering & Analysis

 Business requirements are gathered in this phase.

 It is performed by the senior members of the team


with inputs from the customer, the sales
department, market surveys and domain experts
in the industry.

 Meetings with managers, stake holders and users


are held in order to determine the requirements

 After gathering these requirements are analyzed


for their validity and the possibility of incorporating
the requirements in the system
Phases in SDLC
 Based on the requirement analysis , Software
Requirement Specification (SRS) document
is created .
 SRS consists of all the product requirements
to be designed and developed during the
project life cycle.
 The testing team starts the Test
Planning phase after the requirements
analysis is completed.
Phases in SDLC
Stage 2 : Design
 The outputs gathered in requirement phase are the
inputs of the design phase.

 Based on the requirements specified in SRS,


usually more than one design approach for the
product architecture is proposed and documented
in a DDS - Design Document Specification.

 The DDS is reviewed by all the important


stakeholders.
Phases in SDLC
Stage 3 : Implementation & Coding

 In this stage of SDLC the actual development


starts and the product is built.

 The programming code is generated as per


DDS during this stage.

 Different high level programming languages


such as C, C++, Pascal, Java, and PHP are
used for coding.

 The programming language is chosen with


respect to the type of software being
developed.
Phases in SDLC
Stage 4 : Integration & Testing

 After the code is developed individually it is


integrated into one project/product
 It is then tested against the requirements to make
sure that the product is actually solving the needs
addressed and gathered during the requirements
phase.
 In this stage products defects are reported,
tracked, fixed and retested, until the product
reaches the quality standards defined in the SRS.
Phases in SDLC
Stage 5 : Deployment

 After it passes the testing phase, the product is


delivered/deployed to the customer for their use.
 As soon as it is delivered, the customers first
perform beta testing on the product.
 If any changes are required or if any bugs are
caught, then they report it to the engineering
team.
 Once those changes are made or the bugs are
fixed then the final deployment happens.
Phases in SDLC
Stage 6 : Maintenance

 The software is maintained timely by updating the


code according to the changes taking place in
user end environment or technology.

 Maintenance phase may face challenges from


hidden bugs and real-world unidentified
problems.
SDLC Models
Following are the various SDLC
Models :

 Waterfall Model

 Incremental Model

 Spiral Model

 Agile Model
Waterfall Model
 The Waterfall Model was first Process Model to
be introduced.

 Waterfall model is the earliest SDLC approach


that was used for software development .

 In a waterfall model, each phase must be


completed before the next phase can begin and
there is no overlapping in the phases.

 In waterfall model ,phases do not overlap.


Waterfall Model
Phases in Waterfall Model
Requirement Analysis
 Requirements are a set of functions and
constraints that the end user expects from the
system.
 The requirements are gathered from the end
user, and are analyzed for their validity and the
possibility of incorporating them.
Design
 The design helps in specifying hardware and
system requirements, and also helps in defining
the overall system architecture.
 The system design specifications serve as an
input for the next phase of the model.
Phases in Waterfall Model
 Implementation
 On receiving system design documents, the work is
divided in modules/units and actual coding starts.
 The system is first elaborated into small programs
called units, which are integrated in the next phase.
 Verification/Testing
 Each unit is developed and tested for its
functionality; this is referred to as unit testing.

 Unit testing mainly verifies if the modules/units meet


their specifications.
 Maintenance
 This phase of the model is virtually never-ending.

 The problems do not come into picture directly, but


they arise from time to time and need to be solved.
Each Phase has an “Output”
Phase Output
Requirements Software Requirements
analysis Specification (SRS),
Use Cases

Design Document,
Design Design Classes

Code
Implementation

Test Report,
Test Change Requests
Advantages of Waterfall Model
 This model is simple and easy to understand and
use.
 It is easy to manage due to the rigidity of the model
– each phase has specific deliverables and a
review process.
 In this model phases are processed and completed
one at a time. Phases do not overlap.
 Waterfall model works well for smaller projects
where requirements are very well understood.
Disadvantage of Waterfall Model
 Once an application is in the testing stage, it is very
difficult to go back and change something that was
not well-thought out in the concept stage.

 No working software is produced until late during the


life cycle.

 High amounts of risk and uncertainty.

 Not a good model for complex and object-oriented


projects.

 Poor model for long and ongoing projects.

 Not suitable for the projects where requirements are


at a moderate to high risk of changing.
Spiral SDLC Model
Planning Risk Analysis

Evaluation Engineering
Spiral Model Phases
 Planning Phase: Requirements are gathered during
the planning phase.

 Risk Analysis: Identifies risk and alternate solutions.


A prototype is produced at the end of the risk
analysis phase. If a risk is found during the risk
analysis then alternate solutions are suggested and
implemented.

 Engineering Phase: In this phase software


is developed, along with testing at the end of the
phase.

 Evaluation phase: This phase allows the customer


to evaluate the output of the project till date before
the project continues to the next spiral.
Spiral SDLC Model
 In a Spiral model the software is developed
in a series of incremental releases.

 There is a Focus on Risk analysis


 Combines the features of the prototyping
model and the waterfall model.

 In order to overcome the constraints of "The


Waterfall Model", Spiral Model was developed.

 The fact that the process needs to be iterated


more than once demands more time and is
somehow expensive task.

 This Model is used in large, expensive and


complicated projects.
Spiral Model Strengths

 High amount of risk analysis.

 Good for large and mission critical projects.

 Software is produced early in the SDLC.


Spiral Model Weaknesses
 Can be costly model to use.

 Risk analysis requires highly specific


expertise.

 Project success is highly dependent on the


risk analysis phase.

 Don’t work well for smaller projects.


When to use Spiral Model

 When creation of a prototype is appropriate

 When costs and risk evaluation is important

 For medium to high-risk projects

 Users are unsure of their needs

 Requirements are complex

 Significant changes are expected.


Incremental Model
 In incremental model the whole requirement is
divided into various builds.

 Cycles are divided up into smaller, more easily


managed modules.

 Each module passes through the requirements,


design, implementation and testing phases.

 Each subsequent release of the module adds


function to the previous release.

 The process continues till the complete system is


achieved.
Incremental Model
Advantages of Incremental Model
 Generates working software quickly and early
during the software life cycle.
 This model is more flexible – less costly to
change scope and requirements.
 It is easier to test and debug during a smaller
iteration.
 In this model customer can respond to each
built.
 Lowers initial delivery cost.
 Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
Disadvantages of Incremental Model
 Needs good planning and design.

 Needs a clear and complete definition of the


whole system before it can be broken down
and built incrementally.

 Total cost is higher than waterfall.


Agile Development

Play Agile Scrum Video for students


Agile Development
Agile Model
 Agile development model is also a type of
Incremental model.

 Software is developed in incremental, rapid


cycles.

 This results in small incremental releases with


each release building on previous
functionality.

 Each release is thoroughly tested to ensure


software quality is maintained.
 It is used for time critical applications.
Agile Model
Planning

Testing Req Analysis


Iteration 1

Building Designing

2-3 Month

Planning

Testing Req Analysis


Iteration 2

Building Designing

2-3 Month
Planning

Testing Req Analysis


Iteration 3

Building Designing
Advantages of Agile Model
Advantages of Agile model
 People and interactions are emphasized
rather than process and tools.
 Customers, developers and testers constantly
interact with each other.
 Working software is delivered frequently
(weeks rather than months).
 Continuous attention to technical excellence
and good design.
 Regular adaptation to changing
circumstances. Even late changes in
requirements are welcomed.
Disadvantages of Agile Model
 In case of some software deliverables,
especially the large ones, it is difficult to assess
the effort required at the beginning of the
software development life cycle.
 There is lack of emphasis on necessary
designing and documentation.
 The project can easily get taken off track if the
customer representative is not clear what final
outcome that they want.
 Only senior programmers are capable of taking
the kind of decisions required during the
development process.
Scrum and Sprint
 Scrum, the most popular agile framework in software
development, is an iterative approach that has at its
core the sprint — the scrum term for iteration.
 Scrum teams use inspection throughout an agile
project to ensure that the team meets the goals of
each part of the process.
 Each sprint is divided into its own list of requirements.
 Within each sprint, the development team builds and
tests a functional part of the product until the product
owner accepts it and the functionality becomes a
potentially shippable product.
 Scrum teams deliver product features in increments at
the end of each sprint.
 A product release occurs at the end of a sprint or after
several sprints.
Function of the Scrum and Sprint
within an Agile
Interview Questions
 What are different phases in SDLC?

 What are the strength of waterfall model?

 When to use spiral model?

 What are advantages of Incremental Model?

 What is the weakness of Agile Model?

 What is Scrum Methodology used in Agile Software


Development ?

 What is the difference between BRS and SRS ?


Any Questions

You might also like