0% found this document useful (0 votes)
10 views37 pages

Software Development Life Cycle

The document outlines the Software Development Life Cycle (SDLC), detailing software processes and various process models that guide software development from inception to maintenance. It describes the key phases of SDLC, including requirements gathering, design, coding, testing, deployment, and maintenance, emphasizing the importance of structured approaches and entry/exit criteria for each phase. Additionally, it introduces the Classical Waterfall Model, its phases, and its shortcomings, while hinting at other models that follow it.

Uploaded by

waheed1122pak
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)
10 views37 pages

Software Development Life Cycle

The document outlines the Software Development Life Cycle (SDLC), detailing software processes and various process models that guide software development from inception to maintenance. It describes the key phases of SDLC, including requirements gathering, design, coding, testing, deployment, and maintenance, emphasizing the importance of structured approaches and entry/exit criteria for each phase. Additionally, it introduces the Classical Waterfall Model, its phases, and its shortcomings, while hinting at other models that follow it.

Uploaded by

waheed1122pak
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/ 37

SOFTWARE DEVELOPMENT LIFE

CYCLE
What are Software Processes

• Software processes refer to the set of activities, methods, and practices


used to develop, & maintain software systems.

• These processes guide the steps taken from the initial software idea to
its deployment and maintenance.
What are Process Models

• Process models are like blueprints for building software. They give us
a step-by-step plan to follow when creating software.

• Just like there are different ways to build a house, there are different
process models for building software. Each model offers its own
approach and steps to get the job done.
• These process models are also called SDLC – Software Development
Life Cycle.
Almost all the process models include these steps or phases:

• Requirements gathering
• Design
• Development /Implementation or coding
• Testing
• Deployment
• Maintenance
1. Requirements Phase

• In this phase, requirements are collected, analyzed, documented and


managed by the development team (requirements analysts).

• This phase focuses on what the system is required to do.

• At the end of this phase, a document is created with details of software


requirements for the system. This document is called Software
Requirements Specification (SRS) document.
2. Design Phase

• It's like creating a plan or blueprint for building software. It outlines


how the software will work and what it will look like.
High-Level Design (HLD):

Imagine we're designing the architecture of the e-commerce app.

HLD might include defining major components like:

- Login system
- Product information
- Shopping cart
- Payment processing

Each component's basic functionality and how they interact with each other
are outlined at a high level.
Low-Level Design (LLD):

Now, let's zoom in and detail how each component will work.

For example, in the ‘product information’ module:

- LLD might specify how products are displayed, including images,


descriptions, and prices.

- It might detail how users can filter and search for products based on
categories or keywords.
3. Coding/Implementation Phase

• In this phase, developers start build the entire system by writing code
using the chosen programming language.

• Here, tasks are divided into units or modules and assigned to the
various developers. It is the longest phase of the Software
Development Life Cycle process.
4. Testing Phase

• After the code is developed, it is tested against the requirements to


make sure that the product is actually solving the user needs gathered
during the requirements phase.

• They either test the software manually or using automated testing


tools .
5. Deployment

• After testing, the software is deployed to the customer, who may


conduct beta testing and report any issues.

• Once bugs are fixed, final deployment happens.


6. Maintenance

• Maintenance involves optimizing, fixing errors, and enhancing


features. It's crucial and can consume a significant portion of project
costs.

• Proper planning during development helps manage maintenance


efficiently, ultimately improving the software's performance.
LIFE CYCLE MODEL

• A software life cycle model (also called process model) is a


descriptive and diagrammatic representation of the software life cycle.

• A life cycle model represents all the activities required to make a


software product goes through its life cycle phases.
• It also captures the order in which these activities are to be undertaken.
• No matter which life cycle model is followed, the basic activities are
included in all life cycle models
Importance of a Software Life Cycle Model

• A software life cycle model is like a well-organized plan, much like a


blueprint for building a house.

• It guides the team on what needs to be done, in what order, and how.
Systematic and Disciplined Approach:

• A software life cycle model defines phases, such as requirements,


design, coding, testing, and deployment.

• Each phase has clear entry and exit criteria – certain tasks must be
completed before moving to the next phase.
Importance of Entry and Exit Criteria:

• For instance, in the 'coding' phase, a team must have the design
specifications ready as entry criteria.

• The code must pass testing as exit criteria. Without these clear criteria,
progress can't be accurately measured, and the project might go off
track.
Monitoring Progress and Success:

• By following a software life cycle model, project managers can


monitor progress at each phase.
Different software life cycle models

• Classical Waterfall Model


• Iterative Waterfall Model
• Prototyping Model 
• Evolutionary Model 
• Spiral Model
• (Agile Model will be discussed later in detail)
CLASSICAL WATERFALL MODEL

• The classical waterfall follows a sequential process, where each phase


of the software development lifecycle flows downwards, similar to a
waterfall, with distinct phases such as requirements, design,
implementation, testing, deployment, and maintenance.
• Requirements analysis and specification involves understanding and
documenting what the customer needs. This phase has two key steps:

(a) Requirements Gathering and Analysis: Collect all relevant


information from the customer to fully understand their needs and
remove any inconsistencies.
• (b)Requirements Specification: Organize the customer's needs into a
document called Software Requirements Specification (SRS).

• This document includes functional requirements (what the software


should do), nonfunctional requirements (how it should perform), and
implementation goals.
Design

• Design is the phase where we turn the requirements from the SRS
document into a plan for building the software. There are two main
approaches:
• Example: Imagine you're building a website for an online store. In the
design phase, you'd decide how the web pages should be structured,
what the user interface will look like, and how the shopping cart
functionality will work.
Coding and Unit Testing

• Coding and unit testing is where we turn the software design into
actual source code, like writing the lines of a computer program.

• Each part of the design becomes a program module.


• The output of this phase is a set of program modules that have been
individually tested.

• During this phase, each module is unit tested to determine the correct
working of all the individual modules.
Imagine you're building a basic calculator app. You have separate modules
for addition, subtraction, multiplication, and division.

Coding is like building each of these functions as separate modules in the


software. After creating the addition module, you'd test it to make sure it
correctly adds numbers. That's unit testing
Integration and System Testing

• Integration of different modules is undertaken once they have been


coded and unit tested.

• During the integration and system testing phase, the modules are
integrated in a planned manner.
• Finally, when all the modules have been successfully integrated and
tested, system testing is carried out.

• The goal of system testing is to ensure that the developed system


conforms to its requirements laid out in the SRS document.
Maintenance could be of different types

(a) Corrective Maintenance is like fixing unexpected car issues that


come up over time.

For instance, if you discover a leak in the car's engine, you need to
correct it.

In software, this means finding and fixing errors that were not caught
during development.
(b) Perfective Maintenance is similar to making your car better.

If you decide to add a more powerful engine to your car for improved
performance, you're making it perfective.

In software, this involves enhancing the software's functions and


making it better according to customer requirements.
Classical Waterfall Model Shortcomings

• Assignment 1:

• What are the drawbacks of Waterfall model. What are other process
models (except the Agile model) that come after the Waterfall model.
You have to present them in the next class.
• Thank You

You might also like