Software Development Life Cycle
Software Development Life Cycle
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Agenda
In this session, we will discuss:
● Software Engineering
● Importance of SDLC
● Real-Time Applications
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Software Engineering
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Software Engineering
● Software engineering is a discipline that involves the
application of engineering principles
to the creation,
development,
maintenance,
testing, and
evaluation of software and systems
that make computers or anything containing software
work.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Key Aspects of Software Engineering
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Key Aspects of Software Engineering
It involves conceptualizing, designing,
and building reliable software systems. Design Ensuring that the software meets
and specified requirements and is free of bugs.
Development
Quality
Assurance
It combines elements from
computer science, mathematics, Interdisciplinary
and engineering, as well as Approach Software needs to be updated,
domain-specific knowledge. upgraded, and sometimes completely
Software redesigned to adapt to new
Engineering Maintenance
requirements or technology environments.
and
Software engineering is about Evolution
solving problems efficiently and Problem
effectively through the application Solving
of technology and scientific principles. Process
Management
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Importance of Software Engineering
• Economic and Social Impact: Software is integral to the functioning of
modern society, impacting all sectors from healthcare to finance and
entertainment.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Software Development Lifecycle
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Software Development Lifecycle
● The Software Development Lifecycle (SDLC) is a
systematic process used by software engineers to
design, develop, and test high-quality software.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Importance of SDLC
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Importance of SDLC
• Predictability and Control: Provides a structured approach, making it
easier to control and manage the development process.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Waterfall Model
● The Waterfall model is one of the earliest SDLC models. Requirements
Design
● It is a linear and sequential approach where each phase
must be completed before the next phase begins.
Development
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Phases in Waterfall Model
Requirement Analysis and Specification: • Requirement Analysis
1
● The primary goal is to comprehensively grasp and
• System design
accurately document the customer's specific needs. 2
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Phases in Waterfall Model
Design Phase: • Requirement Analysis
1
● The objective is to convert the requirements detailed in
• System design
the Software Requirement Specification (SRS) into a 2
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Phases in Waterfall Model
Implementation and Unit Testing: • Requirement Analysis
1
● In the Implementation and Unit Testing phase, the
• System design
designs laid out in the Software Design Document (SDD) 2
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Phases in Waterfall Model
Maintenance: • Requirement Analysis
1
● It is a critical stage that commences once the software
• System design
has been delivered, installed, and is operational at the 2
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Banking Software System Development
● A bank decides to develop a new software system to
handle customer transactions, account management,
and back-office banking operations.
● The requirements for such a system are typically well-
defined and stable.
● Banking regulations, transaction protocols, and account
management processes are established and not subject
to frequent changes.
● The project involves multiple departments, including
finance, IT, and compliance, each with a clear
understanding of their requirements.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Application of the Waterfall Model
System Design Implementation
Designing the overall system Developing separate modules for Verification
architecture. transactions, account Conducting rigorous
Creating database schemas for management, and reporting. testing, including system
customer data, transaction testing, integration testing,
records, and account and user acceptance
information. testing.
Requirements Analysis
Gathering detailed Maintenance
requirements from all Once deployed, the system
stakeholders, including enters the maintenance
compliance officers, bank phase where bugs are
tellers, and IT staff. fixed, and minor updates
are made.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Iterative Model
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Iterative Model
● The Iterative Model is a software development
approach that emphasizes the repetition of a cycle of
software development activities.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Iterative Model
Iteration 1
Design Iteration 3
Requirement
Iteration 2
Testing
Analysis Design
Implementation
Design Testing
Review
Testing Implementation
Deployment Maintenance
Implementation Review
Review
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Iterative Model
Requirement Collection & Analysis:
● This initial phase involves gathering customer
requirements and assessing them for feasibility. Requirement
Design Phase:
● Here, the team develops the software's design using
various diagrams like Data Flow diagrams, activity
diagrams, class diagrams, and state transition diagrams.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Iterative Model
Implementation:
● During this stage, the gathered requirements are
translated into code, effectively turning them into Implementation
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Iterative Model
Review:
● Post-deployment, a review is conducted to evaluate the
software's performance and accuracy. Review
Maintenance:
● The final phase involves maintaining the software in its
operational environment.
● This includes fixing bugs, resolving errors, and making
updates or additions as necessary.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Development of a Custom Content Management System (CMS)
● A media company requires a CMS to manage its vast
array of content, including articles, videos, and images.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Application of Iterative Model
Initial Iteration – Basic CMS Structure Second Iteration – Advanced Features
Initial requirements gathered focus on Based on feedback, the second iteration
core functionalities like article creation, includes the development of advanced
editing, and publishing. features like multimedia support, SEO tools,
and user analytics.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Spiral Model
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Spiral Model
● It is a risk-driven software development process model
that combines elements of both iterative development
and the Waterfall model.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Spiral Model
Cost
Object Evaluation
Identification Risk
Management
Progress
Prototypes
Review
Design
Code
Integration
Next Phase Test Product
Planning Development
Implementation
Release
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Spiral Model
Object Identification:
● Every iteration of the spiral begins by establishing the
goals for that cycle, exploring different possible
approaches to achieve these objectives, and recognizing
any existing limitations or constraints.
Risk Management:
● In this stage, the identified alternatives are evaluated in
the context of the set objectives and constraints. The
primary focus here is on understanding and addressing
the potential risks associated with the project.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Spiral Model
Product Development:
● This phase involves formulating and implementing
strategies to alleviate the uncertainties and risks
identified earlier.
● Activities in this stage may include benchmarking,
simulations, and creating prototypes to validate the
approaches.
Project Planning:
● The final stage involves a thorough review of the project
and deciding whether to proceed to the next cycle of
the spiral. If the decision is to continue, detailed plans
for the next phase of the project are formulated and set
in motion.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Enterprise Resource Planning (ERP) System Development
● An organization needs a customized ERP system to
integrate various business processes like finance, HR,
supply chain, and customer relationship management.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Application of Spiral Model
Initial Planning and Objective Setting Risk Assessment and Reduction
The first spiral begins with identifying Early identification of risks such as
the core objectives of the ERP system, potential integration issues with
such as improving process efficiency, existing systems, data migration
ensuring data consistency, and challenges, or user resistance.
integrating different business
functions.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
V-Model
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
V-Model
● The V-Model, also known as the Verification and
Validation model, is a software development
process that is an extension of the Waterfall Model.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
V-Model
Business Acceptance
Requirement Testing
System
System
Integration
Requirement
Low Level
Unit Testing
Design
Coding
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
V-Model
Verification:
● This step encompasses static analysis methods, such as
reviews, that are conducted without executing any code.
● It is a process aimed at evaluating the product's development
process to ensure that it aligns with the specified
requirements.
Validation:
● This involves dynamic analysis methods, which include both
functional and non-functional testing, and are performed by
executing code.
● Validation is the process undertaken after the development
phase is complete, to assess if the software fulfills customer
expectations and requirements.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
V-Model
Requirements Analysis:
● Understanding and documenting the software
requirements. Requirements Acceptance
Analysis Testing
● Corresponding Test Phase: Acceptance Testing
System System
Requirement Integration
System Design:
● Outlining the overall system architecture. High Level Integration
● Corresponding Test Phase: System Testing Preparation. Design Testing
High-Level Design:
● Defining high-level software architectures and identifying
major components.
● Corresponding Test Phase: Integration Testing
Preparation.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
V-Model
Low-Level Design/Module Design:
Requirements Acceptance
● Detailed design of each component. Analysis Testing
● Corresponding Test Phase: Unit Testing Preparation.
System System
Requirement Integration
Implementation/Coding:
High Level Integration
● Actual coding of the software components. Design Testing
● Corresponding Test Phase: Unit Testing.
Low Level Unit
Design Testing
Unit Testing:
● Testing individual units or components of the software. Coding
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
V-Model
Integration Testing:
Requirements Acceptance
● Testing the integration of different software units. Analysis Testing
● Corresponding Design Phase: High-Level Design.
System System
Requirement Integration
System Testing:
High Level Integration
● Testing the complete integrated system. Design Testing
● Corresponding Design Phase: System Design.
Low Level Unit
Design Testing
Acceptance Testing:
● Conducted to ensure that the system meets the Coding
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Banking Software System for Account Management
● A financial institution requires a new software system
to manage customer accounts, handle transactions, and
ensure compliance with banking regulations.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Application of V-Model
Requirements Analysis Corresponding Test Phase
Detailed gathering of requirements Preparation of acceptance
such as account handling, transaction testing criteria to ensure all
processing, security measures, and requirements are met.
compliance needs.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Application of V-Model
Coding
Actual coding of the software based on the
design documents.
Corresponding Test Phase
High-Level Design Integration testing strategies are
Designing major software components devised to ensure these
and modules. components work together
seamlessly.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Incremental Model
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Incremental Model
● The Incremental Model is a method of software development
where the product is designed, implemented, and tested
incrementally (a little more is added each time) until the product is
finished.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Incremental Model
Design and
Testing Implementation
Development
Design and
Requirements Testing Implementation
Development
Design and
Testing Implementation
Development
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Incremental Model
Planning and Requirements Analysis:
● Initial planning, understanding, and documenting the software requirements.
Design:
● Based on the requirements, the first increment is designed.
Implementation and Testing:
● The first increment is developed and tested.
Deployment:
● After successful testing, the increment is deployed for use.
Review and Feedback:
● Gathering feedback on the system from users or other stakeholders.
Next Increment:
● Planning and development of the next increment, incorporating feedback
from the previous release.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Development of a Mobile Health (mHealth) Application
● A healthcare technology company plans to develop a
mobile app to offer health monitoring, appointment
scheduling, and medical consultation services.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Application of Incremental Model
Initial Increment – Core Features Second Increment – Enhanced Features
The first increment includes basic Based on user feedback, the second
features such as user registration, increment adds features like
profile creation, and basic health appointment scheduling with healthcare
monitoring (like step count and heart providers and prescription management.
rate monitoring).
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Agile Model
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Agile Model
● The Agile Model is a highly iterative and incremental
approach to software development, distinguished by its
focus on flexibility, customer satisfaction, and rapid
delivery of functional software.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Agile Model
Requirement Design Document
Analysis and Prototype
Agile Development
Production and
Technical Support Iterations, Demo and
Feedback
Construction/Iteration:
● After defining the requirements, the actual development begins.
● Designers and developers work together to create a functional product.
● This initial version is typically basic, offering minimal functionality, and is
intended for further refinement.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Agile Model
Testing:
The Quality Assurance (QA) team evaluates the product during this phase,
focusing on performance and identifying any bugs or issues.
Deployment:
In this stage, the developed product is released into the user's operational
environment.
Feedback Collection:
● Post-deployment, the final step involves gathering feedback about the
product.
● This feedback is crucial for identifying areas for improvement and planning
future iterations of the product.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Development of a Food Delivery Mobile Application
● A company aims to develop a mobile application for
food delivery, offering features like restaurant
browsing, menu selection, order placement, and real-
time delivery tracking.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Application of Agile Model
Enhancing Features
New features like advanced search filters,
favorite restaurant saving, and Continuous Testing and
Initial Development - Core Features
personalized recommendations. Feedback Integration
The first development cycle focuses on
Each iteration includes thorough
creating basic but essential features
testing of new features. Feedback
such as user registration, restaurant
from users is continuously
listing, and a basic ordering system.
gathered and analyzed.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Difference Between Software Models
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Difference Between Software Models
Best for: Projects with well- Best for: Projects that require
defined, stable requirements flexibility and have evolving
where changes are unlikely requirements.
during development. Why: Agile allows for
Why: It is a linear approach frequent reassessment and
simple and easy to understand, adaptation, making it ideal
making it suitable for smaller for projects where the end-
projects or projects with a clear user's needs are expected to
end goal. change over time.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Difference Between Software Models
Best for: Projects where quality Best for: Large projects and
assurance and testing are those requiring functionality
paramount. to be delivered in stages.
Why: Its rigorous testing Why: It allows portions of
phases for each development the project to be delivered
stage ensure a high-quality and tested incrementally,
product, making it suitable for which can provide early
projects where errors can have partial working solutions to
serious consequences. stakeholders.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Difference Between Software Models
Best for: High-risk projects and Best for: Projects that need
those requiring constant to be developed in a short
refinement. timeframe.
Why: It places a strong Why: Its focus on rapid
emphasis on risk analysis and prototyping is ideal for
allows for extensive refinement getting a functional product
at each stage, making it suitable to market quickly.
for complex projects.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Summary
Here’s a brief recap:
● Software engineering involves a systematic approach to developing software, from understanding
requirements to designing, building, and testing the software.
● Software engineering encompasses several key aspects that collectively ensure the effective and
efficient development, maintenance, and evolution of software systems and its importance.
● The Software Development Lifecycle (SDLC) is a process used in the software industry to design,
develop, test, and deliver high-quality software.
● The SDLC is fundamental for guiding the development process in a way that maximizes quality,
minimizes risks, and ensures alignment with customer and business needs.
● Different software models has its strengths and is chosen based on project requirements, team
dynamics, customer needs, and various other factors.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.