0% found this document useful (0 votes)
24 views

Software Development Life Cycle

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Software Development Life Cycle

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 64

Software Development Lifecycle

Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Agenda
In this session, we will discuss:
● Software Engineering

● Key Aspects of Software Engineering

● Importance of Software Engineering

● Introduction to Software Development Lifecycle (SDLC)

● Importance of SDLC

● Different Types of Software Development Models

● Real-Time Applications

● Difference Between Software Models

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.

● It is a systematic, disciplined, and quantifiable approach


to the development, operation, and maintenance of
software.

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

Software engineering focuses on improving


and managing the process of software development itself.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Importance of Software Engineering

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.

• Complexity Management: As software systems become increasingly


complex, the role of software engineering in managing this complexity
is crucial.

• Safety and Reliability: Especially in critical applications ensuring the


reliability and safety of software is paramount.

• Innovation and Adaptation: Software engineering drives technological


innovation and adapts to the rapidly changing technology landscape.

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.

● The SDLC provides a structured framework that


encompasses the entire life of a software product, from
its initial conception to its eventual retirement.

● It provides a structured sequence of stages in software


development that helps organizations to produce high-
quality software in a cost-effective way.

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.

• Quality Assurance: Through predefined standards and guidelines, the


SDLC ensures higher software quality.

• Risk Management: Early identification and mitigation of risks due to a


systematic approach.

• Resource Management: Efficient allocation and utilization of resources


due to planned stages.

• Documentation and Standardization: Facilitates better documentation


and standardization of the development process, aiding in scalability
and future maintenance.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Waterfall Model

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

● Best suited for projects with well-defined requirements Testing


and where changes are not expected during the
development process. Deployment

● Phases: Requirements → Design → Development → Maintenance

Testing → Deployment → Maintenance .

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

● This collaborative process involves both the customer 3 • Implementation


and the software developer, who work in tandem to 4 • Testing
capture all necessary details about the software's
5 • Deployment
functionality, performance, and interface requirements.
● The focus of this phase is on detailing "what" the 6 • Maintenance
system is expected to achieve, rather than delving into
the "how" of the system's operation.
● As a result of this phase, an extensive document known
as the Software Requirement Specification (SRS) is
produced.

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

format that facilitates subsequent coding in a 3 • Implementation


programming language. 4 • Testing
● This phase involves defining the overall architecture of
5 • Deployment
the software as well as its high-level and detailed design
aspects. 6 • Maintenance
● The outcomes of this process are systematically
recorded in a document known as the Software Design
Document (SDD).

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

are brought to life through coding. 3 • Implementation


● The testing part of this phase involves an extensive 4 • Testing
examination and refinement of the code.
5 • Deployment
● Initially, individual small modules are tested in isolation
to ensure their functionality. Subsequently, these 6 • Maintenance
modules undergo further testing, where additional code
is written to assess the interaction between the
modules and to monitor the flow of intermediate
outputs.
● This process helps in ensuring that all parts of the
software work together as intended.
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Phases in Waterfall Model
Integration and System Testing: • Requirement Analysis
1
● The Integration and System Testing phase plays a
• System design
pivotal role in determining the quality of the final 2

software product. 3 • Implementation


● The effectiveness of the testing conducted during this 4 • Testing
phase directly impacts customer satisfaction,
5 • Deployment
maintenance costs, and the accuracy of the software.
● While unit testing assesses the performance of 6 • Maintenance
individual modules, this phase focuses on evaluating
how these modules interact with each other and with
the overall system.
● Successful testing in this stage is key to ensuring the
software functions correctly as a unified whole.

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

customer's end. In this phase, the software is actively 3 • Implementation


used and maintained. 4 • Testing
● Maintenance involves ongoing activities undertaken by
5 • Deployment
users to ensure the software continues to function
effectively and efficiently. 6 • Maintenance
● This phase includes updating the software to adapt to
new environments or requirements, fixing any issues or
bugs that arise, and improving performance as needed.

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.

● In this model, the software is developed and refined


through repeated cycles (iterations), with each iteration
typically producing a new version of the software.

● It allows for partial use of the software and its


refinement based on feedback until the final complete
system is implemented.

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

● An analyst evaluates whether these requirements can


be met within the budget and scope. Analysis
● Once this assessment is complete, the team moves on
to the next phase.
Design

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

computer programs, which constitute the software.


Testing: Testing
● Once coding is completed, the software undergoes
rigorous testing through different methodologies,
Deployment
including white box, black box, and grey box testing
techniques.
Deployment:
● After all previous phases are successfully completed,
the software is deployed into its operational
environment.

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

● Should any issues be identified, the process may cycle


back to the requirement gathering phase. Maintenance

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.

● The requirements are complex and expected to evolve


as the system is developed and user feedback is
integrated.

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.

Ongoing Iterations for New Subsequent Iterations – Continuous Improvement


Technologies and Trends Further iterations involve adding more features
Regular updates ensure the CMS such as social media integration, advanced search
stays relevant and efficient in the capabilities, and mobile responsiveness.
dynamically changing media
landscape.

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.

● It is particularly noted for its focus on risk analysis and is


often used for large, complex, and high-risk projects.

● The model emphasizes iterative refinement through a


series of cycles, allowing for incremental releases of the
product.

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.

● Given the complexity and the high level of integration


required, the project involves significant risks, including
integration challenges, compliance issues, and user
acceptance.

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.

Development and Validation


Planning for Next Phase Developing a prototype or a module
Reviewing the results of the first of the ERP system, focusing on high-
iteration: What worked, what risk areas. Validating this
didn’t, and what risks are now development with stakeholders,
apparent and then planning the including testing for functionality
next iteration. and user feedback.

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.

● It is characterized by its linear flow and sequential


steps, but with a strong emphasis on corresponding
testing phases for each development stage.

● The "V" shape of the model demonstrates the


relationships between each phase of development
and its associated phase of testing.

Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
V-Model

Business Acceptance
Requirement Testing

System
System
Integration
Requirement

High Level Component


Design Testing

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

● Corresponding Design Phase: Low-Level Design.

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

requirements and is ready for operational use.


● Corresponding Design Phase: Requirements Analysis.

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.

● The requirements are clear, well-defined, and unlikely


to change significantly during the development process.

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.

System Design Corresponding Test Phase


Outlining the overall architecture, System testing plans are developed
including database design, user to ensure the architecture is sound
interfaces, and integration with and functional.
existing banking systems.

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.

Low-Level Design Corresponding Test Phase


Detailed design of individual Unit testing plans are created for
components, including specific each component.
algorithms and database tables.

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.

● It involves both development and maintenance.

● The product is defined as finished when it satisfies all of its


requirements.

● This model combines elements of the waterfall model and the


iterative philosophy of prototyping.

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.

● The market for mHealth apps is competitive and rapidly


evolving, requiring quick release cycles and
responsiveness to user feedback.

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).

Subsequent Increments – Advanced Ongoing Development


Services The app continues to evolve with
Further increments introduce advanced additional features such as
features like telemedicine community forums, health blogs,
consultations, integration with and personalized health plans.
wearable health devices, and AI-driven
health insights.

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.

● Agile methodologies break down the product into small,


incremental builds and involve frequent reassessment
and adaptation of plans.

● This approach is fundamentally collaborative, involving


continuous input from stakeholders and constant
improvement at every stage.

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

Iterations, Demo and


Feedback
Proprietary content ©Great Learning. All Rights Reserved. Unauthorized use or distribution prohibited.
Agile Model
Requirements Design:
● Once the project is identified, collaboration with stakeholders is essential to
detail the requirements.
● Tools like user flow diagrams or high-level UML diagrams are used to
illustrate the functionality of new features and their integration into the
existing system.

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.

● The market for food delivery apps is fast-paced and


customer preferences can change quickly.

● Additionally, the app needs to integrate with various


restaurants' systems and handle a high volume of user
data.

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.

Adapting to Market Changes Regular Deployment and Updates


The development team remains agile, The app is regularly updated with
ready to adapt to new market trends, improvements, bug fixes, and new
such as integrating new payment features, keeping it competitive and
options or offering contactless aligned with user expectations.
delivery options during health crises.

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

Waterfall Model Agile Model

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

V-Model Incremental Model

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

RAD (Rapid Application


Spiral Model
Development)

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.

You might also like