L2 - Introduction - SDLC _ Waterfall
L2 - Introduction - SDLC _ Waterfall
Software Engineering
Introduction - SDLC
Imran Zahid
Lecturer
Computer Science and Engineering, BRAC University
Project
Project Details
Project Purpose
The purpose of the project is to provide hands-on training on how to
develop a software from scratch.
Key Definitions
Requirement: An action/capability that is expected of a
software/product to fulfil
Feature: A set of logical actions that need to be performed in order to
fulfil a part of a requirement
Project Details
Example of a requirement:
1. Customers can add products to their cart
Example of features:
For requirement (1), the features which need to be implemented are:
1. The system should be able to display products to customers
2. The system should be able to book products and mark them as
added to the cart of a customer if the product is in stock
Project Details
Tech stack: The language and the environment which is used to
develop and run an application.
Planning Design
Maintenance Coding
Deployment Testing
Is there only one possible lifecycle?
• No
• There isn’t a fixed flow of a program from one phase to another.
• One model may choose to have one final design, and then pass it to
development.
• Another model may choose to revise the design depending on the
feedback from developers.
So how do you choose an SDLC?
• Suppose your team lead has gotten a new project.
• How does he decide which SDLC to use? It depends on -
• The scale of the software (e.g. how complicated will it be)
• The size of the user base
• How well the client understands what they want
• How clearly the client can convey what they want
The most basic SDLC - Waterfall Model
Requirement
Collection and
Analysis
Design
Coding
Testing
Deployment
Maintenance
Waterfall Model
• Suppose you have a very small scale project,
• And your client has clearly conveyed what he wants as the end
product and there will be NO changes.
• In that case, one doesn’t need a particularly complicated model.
• One such model is the Waterfall Model.
• Waterfall model can’t accommodate any modifications to previous
steps, either from testing or feedback.
Why study the Waterfall Model?
• Since there is no interaction between stages other than passing the
outputs of a stage, it allows us to explore the stages in isolation.
• As you will see, it is the basic building block of other models, most
other models will be some modification of the Waterfall model.
Requirement Collection
• Client Meeting
• The process begins with discussing the customer's idea or project concept
to understand their goals.
• Collect Requirements
• Gather detailed information about what the customer needs and expects
from the software.
Requirement Analysis
• Address the Problem
• Understand the core issue that the software needs to solve for the
customer.
• Identify Feasible and Infeasible Requirements
• Determine which requirements can realistically be implemented and which
cannot due to constraints.
• Define How the Software Will Meet Customer Requirements
• Establish a plan for how the software will fulfill the customer's needs and
expectations.
Design
• Create the logical and physical design of the software project.
Coding
• Build the Software
• Construct the actual software based on the design.
• Development cannot begin until the design is thoroughly finalized.
• Convert Design into Functional Software
• Begin turning the design into working software by writing code.
• Break Design into Code Modules
• The design is divided into smaller parts, and each part is developed as a
code module, one at a time.
Testing
• Validate Software Against Requirements
• Ensure the software meets the requirements identified during the analysis
phase.
• Fix Issues as They Arise
• If any problems are found, make corrections directly in the code to resolve
them.
Deployment and Maintenance
• Deploy the Software in the User Environment
• Release the software for use in the actual information technology
environment where users will operate it.
• Perform Deployment and Maintenance Gradually
• Roll out the software step by step and carry out ongoing maintenance.
• Address Issues Promptly
• Any problems that arise are handled and resolved by the deployment team.
• Collect User Feedback
• Gather input from users to improve the software or address any concerns.
When to choose Waterfall Model
Requirements are well known