0% found this document useful (0 votes)
22 views52 pages

Software Development Life Cycle 05.04.23

The document discusses the software development life cycle (SDLC) and several SDLC models, including the waterfall model and iterative enhancement model. The waterfall model is a sequential approach divided into distinct phases of requirements, design, implementation, testing, deployment, and maintenance. It has advantages like clear structure but disadvantages like inability to accommodate changes. The iterative enhancement model divides development into smaller iterations, with each adding new functionality based on feedback.

Uploaded by

Sandip U
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)
22 views52 pages

Software Development Life Cycle 05.04.23

The document discusses the software development life cycle (SDLC) and several SDLC models, including the waterfall model and iterative enhancement model. The waterfall model is a sequential approach divided into distinct phases of requirements, design, implementation, testing, deployment, and maintenance. It has advantages like clear structure but disadvantages like inability to accommodate changes. The iterative enhancement model divides development into smaller iterations, with each adding new functionality based on feedback.

Uploaded by

Sandip U
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/ 52

Software Development Life

Cycle
Prof. Arvinder Kaur
Introduction
“The life cycle of a software is the
period of time that starts when a
software product is conceived and ends
when the product is no longer available
for use. “

20XX presentation title 2


Common SDLC Phases
Build & Fix Model

• Product is constructed without well defined design.


• Adhoc approach
• Simple two phase model
BUILD
• Not suitable for any good size software CODE
• Maintenance of such software is very difficult
FIX
CODE
Waterfall Model
• The waterfall model is a sequential approach to software development

• The development process is divided into distinct phases, and each phase must be completed
before moving on to the next one.

20XX presentation title 5


CLASSICAL WATERFALL MODEL
Waterfall Model Steps
• The waterfall model is depicted in the following steps:
• Requirements Gathering: The first phase of the waterfall model involves gathering requirements from the customer or end-users. This
involves defining the purpose, scope, and goals of the software project.

• Analysis: Once the requirements have been gathered, the next phase involves analyzing and documenting the requirements in detail.
This involves creating functional specifications, system specifications, and design documents.

• Design: The design phase involves creating a detailed plan for the software project, including the software architecture, user interface
design, database design, and other technical specifications.

• Implementation: The implementation phase involves writing the code and creating the software application based on the design
specifications.

• Testing: Once the implementation is complete, the software is tested for functionality, performance, and other quality attributes to
ensure that it meets the specified requirements.

• Deployment: Once the testing is complete, the software is deployed to the production environment, and it becomes available for use
by end-users.

• Maintenance: The final phase of the waterfall model involves maintaining and supporting the software application over its lifetime,
including bug fixes, updates, and enhancements.
Advantages & Disadvantages of Classical
Waterfall Model
Advantages
• This is the first model which gave the basic steps of SDLC and which has been used by many other models for the
development of the project.
• The requirements need to be completed in one go and emphasis on completion of one phase before moving to the next one.
Disadvantages
• No feedback paths- The sequential nature of model does not allow us go back and undo or redo our actions. Clients valuable
feedback cannot be included with ongoing development phase
• Difficult to accommodate change requests- This model is best suited when developers already have designed and developed
similar software in the past and are aware of all its domains. It assumes that all customer requirements can be completely
and correctly defined at the beginning of the project.
• It is not desirable for complex project where requirement changes frequently
• Testing period comes quite late in the developmental process.
• The working product is available at the later stage after the competition of all the stages.
Waterfall Model with Feedback
• In Waterfall model , as there is no path to go back in earlier phases for
the changes or correction, therefore waterfall model with feedback
was proposed .
• In this model, if a bug is found or correction is required at any phase,
then we can move to earlier phases for the corrections/changes.
Type of Software projects that may be
developed using waterfall model:
• Small to medium-sized projects with clearly defined requirements and a fixed scope.

• Projects that involve developing software applications that have already been built or have a well-
established design.

• Projects where the development team has experience with the technologies and tools needed to
complete the project.

• Projects where there is little or no need for ongoing customer feedback or changes in
requirements.
Software projects that were developed using
Waterfall model
1.Microsoft Office: The original version of Microsoft Office was developed using
the Waterfall model.
2.SAP: The original version of SAP, an enterprise resource planning (ERP) software
suite, was developed using the Waterfall model.
3.NASA Space Shuttle software: The software used to control the Space Shuttle was
developed using a variation of the Waterfall model, with an emphasis on rigorous
testing and quality control.
4.Medical devices: Many medical devices, such as pacemakers and insulin pumps,
are developed using the Waterfall model due to the need for strict quality control
and regulatory compliance
5.Google Map, Google Search and Google drive were initially developed using
waterfall model but later they adopted agile approach for development.
Increment process Models
• Iterative Model
• RAD Model
Iterative Enhancement Model
• The iterative enhancement model of software development is a cyclical approach that
involves repeating a series of steps, known as iterations or cycles, until the software is
complete.

• The development process is divided into smaller cycles, with each cycle adding new features
and functionality to the application.

• The process involves developing the software incrementally, with each iteration adding new
functionality or refining existing features

20XX presentation title 14


Iterative Enhancement Model

Implementation Integration Operation


Requirements Design
and unit Testing testing (install)

Release I
Implementation Integration Operation
Design and unit Testing testing (install)

Release II

Implementation Integration Integration


Design testing
and unit Testing testing

Release III
Characteristics of Iterative Enhancement
Model
• The iterative model of software development allows for flexibility and adaptability, as the software can be developed and
refined over time based on feedback from the customer or stakeholders.

• It is particularly useful when the customer's requirements are not fully known at the outset of the project, or when there is a
high level of complexity or uncertainty in the development process.

• By breaking the development process into smaller iterations, the iterative model reduces the risk of project failure and allows
the development team to deliver working software more quickly.

• Iterative Enhancement model is used where it is difficult to understand the detailed requirements of whole software in one go
instead the major functionalities of the software are identified and customer is asked to prioritize the requirements.

• As per the prioritization of the requirements by the customer, the detailed requirements of one part are understood, analysed,
developed and deliver to the customer and then the next set of requirements as per the priority are understood , specified ,
analysed, developed, tested and deliver to customer.

• This way the whole software is developed iteratively in various cycles till all requirements are met.

• The prerequisite to use this model is that we should have senior analyst which can understand the relation between different
functionalities properly so that integration of all cycles doesn’t cause any problem.
Advantages of Iterative Enhancement Model
• The user gets functional software after end of each cycle and feedback of the
customer helps to improve the next cycle of the development.
• Parallel development can be planned.
• Progress can be measured.
• Less costly to change the scope/requirements.
• Testing and debugging during smaller iteration is easy.

Disadvantages of Iterative Enhancement Model


• The model cannot be used where the software cannot be deliver in subparts.
• Highly skilled resources are required for understanding the dependencies between
different functionalities.
Software projects that developed using
Iterative Enhancement model:
The iterative model of software development is commonly used for developing complex and large-scale software
applications that require ongoing improvement and refinement. Some examples of software that have been developed
using the iterative model include:
• Microsoft Windows operating system: The development of Windows operating system involves a series of iterations or
releases, each adding new features and improvements based on customer feedback and changing market trends.

• Google Chrome web browser: Chrome is developed using an iterative model, with regular releases that add new features,
improve performance and security, and fix bugs.

• Agile project management tools: Many agile project management tools, such as Jira and Trello, are developed using
iterative development to continuously improve their functionality and user experience.

• Mobile applications: Mobile applications, such as Instagram and Snapchat, are often developed using iterative
development to quickly respond to changing user needs and improve user engagement.

• Enterprise-level software: Large enterprise software applications, such as SAP and Salesforce, are typically developed
using iterative development to accommodate the changing needs of their users and to adapt to new technologies and
business trends.
Spotify : developed using Iterative
Enhancement model:
Spotify: Spotify was developed using an iterative model to ensure that it provided a personalized and engaging music
streaming experience for its users.
Spotify has undergone several iterations in its development process. Here are some notable ones:
1. Spotify Desktop (2006): The first iteration of Spotify was a desktop application that allowed users to stream music and
create playlists.
2. Spotify Mobile (2009): In 2009, Spotify launched its first mobile app for the iPhone. This allowed users to access their
music on the go and was the first step in the company's move towards a mobile-first approach.
3. Spotify Discover (2012): The Discover feature was introduced in 2012, which used an algorithm to recommend new
music to users based on their listening history.
4. Spotify Running (2015): In 2015, Spotify introduced a new feature called Running, which used sensors in users'
smartphones to detect their pace and play music that matched their workout tempo.
5. Spotify for Artists (2018): Spotify for Artists was launched in 2018, which allowed musicians to manage their profiles on
the platform, track their streams and demographics, and promote their music.
6. Spotify Podcasts (2019): Spotify made a big push into the podcasting market in 2019, by acquiring several podcast
production companies and launching exclusive podcasts on the platform.
Throughout its development, Spotify has continued to use an iterative approach, constantly testing and iterating on new
features based on user feedback and data analysis.
EVOLUTIONARY PROCESS MODEL
PROTOTYPE MODEL
RAD MODEL
SPIRAL MODEL
Which type of software are developed using
spiral model
• The spiral model of software development is suitable for projects that involve a high level of
risk or uncertainty and require a systematic approach to risk management.

• It is particularly well-suited for large and complex software projects that have changing
requirements, and where there is a need to continually evaluate and mitigate risks.

20XX presentation title 24


Examples of software projects that may be developed using the spiral model
include :
• Defense systems: Defense systems, such as missile defense systems, require a high level of reliability
and safety. The spiral model is suitable for such projects as it allows for a systematic approach to risk
management and continuous evaluation and testing.

• Medical devices: Medical devices, such as implantable devices or diagnostic systems, require a high
level of safety and reliability. The spiral model is well-suited for such projects as it allows for
continuous risk assessment and testing throughout the development process.

• Large-scale enterprise systems: Large-scale enterprise systems, such as ERP systems, involve multiple
stakeholders and complex requirements. The spiral model is suitable for such projects as it allows for
flexibility and adaptation to changing requirements, as well as systematic risk management.

• Complex software products: Complex software products, such as CAD or simulation software, involve
multiple features and functionalities. The spiral model is well-suited for such projects as it allows for
iterative development and testing of new features.

20XX presentation title 25


Which software have been developed using spiral model

• Several software products have been developed using the spiral model of software development. Here are a few
examples:

• Microsoft Office Suite: Microsoft Office Suite is a widely used productivity software that includes Word, Excel,
PowerPoint, and other applications. The software was developed using the spiral model, which allowed for
continuous evaluation and testing of new features.

• NASA Mission Control Software: NASA Mission Control software was developed using the spiral model to ensure
reliability and safety in the control of space missions. The software went through several iterations and evaluations
to ensure that it met the required safety standards.

• Internet Explorer: Internet Explorer was developed using the spiral model, which allowed for iterative development
and testing of new features. The model also allowed for flexibility in adapting to changing market conditions and
user requirements.

• HP LaserJet Printers: HP LaserJet Printers were developed using the spiral model to ensure reliability and quality in
their printing capabilities. The model allowed for continuous testing and evaluation of the printers' hardware and
software components.

20XX presentation title 26


Rational Unified Process
Initial Development and Evolution Cycles
Iteration and Workflow of Unified Process
Agile Model
• The Agile model is an iterative and incremental approach to software development that
focuses on delivering working software quickly and efficiently.

• The Agile model involves continuous collaboration and feedback between the development
team and the customer or end-users throughout the development process.

20XX presentation title 31


AGILE MODEL
Agile Model- Steps
• The Agile model consists of the following phases:

• Requirements gathering: In the Agile model, requirements are gathered in the form of user stories, which are short descriptions of a feature or
functionality from the perspective of the end-user. These user stories are captured in a product backlog, which is a prioritized list of all the features or
functionalities that need to be developed.

• Planning: In the planning phase, the development team and the customer prioritize the user stories based on business value, complexity, and other
factors. The team estimates the time and effort required to complete each user story, and they plan the development iterations or sprints accordingly.

• Design: In the design phase, the development team creates a high-level design for the software application based on the requirements and user stories.
The design may evolve over time as the team receives feedback and new requirements from the customer.

• Implementation: In the implementation phase, the development team works on completing the user stories that are planned for the current iteration or
sprint. The team holds daily stand-up meetings to review progress, identify any issues or obstacles, and plan the work for the next day.

• Testing: In the Agile model, testing is integrated throughout the development process, rather than being a separate phase. The development team
writes automated tests for each user story, and they conduct manual testing to ensure that the software meets the specified requirements.

• Review and feedback: At the end of each iteration or sprint, the development team holds a review meeting with the customer to demonstrate the
working software and receive feedback. The customer provides feedback on the features and functionalities that have been completed, and they may
request changes or additional features.

• Deployment: Once the software has been developed and tested, it is deployed to the production environment for end-users to use. The development
team continues to provide maintenance and support for the software over its lifetime.

20XX presentation title 33


Characteristics of Agile Model
• The Agile model is based on the principles of flexibility, collaboration, and continuous
improvement.
• It allows for changing requirements and priorities, and it emphasizes working software
over documentation.
• The Agile model is particularly useful for complex projects where requirements may
evolve over time, and where there is a need for regular feedback and collaboration
between the development team and the customer.

20XX presentation title 34


Examples of software projects that may be developed using the Agile model
include :
• Mobile applications: Mobile applications are typically developed in a fast-paced environment with rapidly evolving user
requirements. The Agile model is well-suited for mobile app development as it allows for continuous feedback and
regular updates to the app.

• E-commerce platforms: E-commerce platforms require frequent updates to accommodate changes in customer behavior
and new technologies. The Agile model is ideal for e-commerce platform development as it allows for flexibility in
accommodating changing customer needs.

• Web-based software applications: Web-based software applications are typically developed in a fast-paced environment
with rapidly evolving user requirements. The Agile model is well-suited for web-based application development as it
allows for continuous feedback and regular updates to the application.

• Gaming software: Gaming software requires frequent updates to accommodate changing user preferences and
advancements in technology. The Agile model is ideal for gaming software development as it allows for flexibility in
accommodating changing user needs.

• Cloud-based software: Cloud-based software requires frequent updates to accommodate changing user needs and new
technologies. The Agile model is well-suited for cloud-based software development as it allows for continuous feedback
and regular updates to the software.

20XX presentation title 35


Which software have been developed using Agile model

• Spotify: The popular music streaming platform, Spotify, is known for using Agile methodologies in their software
development process. They use the Agile model to develop their mobile and web applications, as well as their
backend systems.

• Microsoft Office: Microsoft uses the Agile model in their software development process for many of their products,
including Microsoft Office. They use the Agile model to quickly deliver new features and improvements to their
users.

• Salesforce: Salesforce, the popular customer relationship management (CRM) software, uses Agile methodologies
to develop their software products. They use the Agile model to deliver new features and enhancements to their
users on a regular basis.

• Airbnb: Airbnb, the online marketplace for short-term accommodations, uses Agile methodologies to develop
their software products. They use the Agile model to quickly deliver new features and improvements to their users.

• Amazon Web Services (AWS): Amazon uses Agile methodologies to develop their cloud-based software products,
including Amazon Web Services (AWS). They use the Agile model to deliver new features and enhancements to
their users on a regular basis.

20XX presentation title 36


What are different agile software methologies
There are several different Agile methodologies that can be used for software development. Some of the most
popular Agile methodologies include:
• Scrum: Scrum is a popular Agile methodology that emphasizes teamwork, collaboration, and iterative development.
In Scrum, development work is divided into small iterations called sprints, which typically last 2-4 weeks. During each
sprint, the development team works to deliver a small, working piece of software that can be tested and evaluated by
the customer.
• Kanban: Kanban is another popular Agile methodology that emphasizes continuous delivery and visual management.
In Kanban, work is organized on a visual board, which allows the team to see the status of each task and identify any
bottlenecks or issues that need to be addressed. The goal of Kanban is to minimize work in progress and optimize the
flow of work through the development process.
• Extreme Programming (XP): Extreme Programming is an Agile methodology that emphasizes the importance of
quality software development. In XP, development work is organized into small, iterative cycles, and the development
team works closely with the customer to ensure that the software meets their needs. XP also emphasizes the use of
automated testing and continuous integration to ensure that the software is of high quality.
• Lean Development: Lean Development is an Agile methodology that emphasizes the importance of reducing waste
and optimizing the development process. In Lean Development, work is organized into small batches, and the
development team works to continuously improve the development process and eliminate any waste or inefficiencies.
• Crystal: Crystal is an Agile methodology that emphasizes the importance of communication, collaboration, and
simplicity. Crystal is designed to be flexible and adaptable, and it can be customized to fit the needs of different
software development projects.

20XX presentation title 37


Scrum Model
• Scrum is an Agile methodology for software development that emphasizes teamwork,
collaboration, and iterative development.

• The Scrum model is based on the idea of breaking development work into small iterations
called sprints, which typically last 2-4 weeks.

• During each sprint, the development team works to deliver a small, working piece of software
that can be tested and evaluated by the customer.

• The scrum team tracks the progress of the project in 15-minute time-boxed meetings called
daily Scrum.

• After sprint completion, the team holds a review meeting to demonstrate the work done and
a retrospective to continually improve.

20XX presentation title 38


Scrum Roles
The core roles involved in the Scrum process are Product Owner, Scrum Master, and
development team.
• Product owner - The product owner in the Scrum team is primarily responsible for working
with the user group to determine the features to be included in the product release.
• Scrum Master - The Scrum Master in the team is responsible for promoting and supporting
Scrum. They guide the team, product owner, and business on Scrum and look for ways to fine-
tune their practice. An effective scrum master helps the team in optimizing their transparency
and delivery flow.
• Development Team - The development teams are cross-functional and have the skills to
deliver product increments. This team includes developers, testers, designers, etc., to have
less dependency on the third party. All the members of the scrum team are self-organizing and
ensure successful sprint completion by turning Product Backlog into increments of potentially
releasable functionality.
Scrum Workflow Steps
• In Scrum workflow, the process is regularly customized based on the continuous feedback loops.
• The below diagram depicts the step-by-step process involved in scrum workflow:
1. Product Backlog Creation
The first phase of the Scrum workflow process begins with the visioning phase, where the
Stakeholders meet to decide the list of features that should be implemented and develop a product
roadmap.
• A product backlog is a prioritized list of all the product requirements or user stories that a scrum
team maintains for a product.
• In Scrum, features are known as user stories and are written from the end-user perspective. A
Product owner decides which user stories or items make it into the product backlog.
2. Release Backlog
• Based on the product roadmap developed, in collaboration with the product owner, the team
decides how to group user stories into releases. The objective of the release is to deliver a subset of
the product backlog known as the release backlog.
• After determining which user stories will go into a particular release, the development team
estimates the time duration needed to complete each item. Once the release planning has been
completed, the user stories are then selected for a sprint.
3. Sprint Backlog Creation
• A Sprint is a predefined timeframe within which the team performs
a set of tasks from the Backlog.
• The duration of each Sprint lasts 2-4 weeks.
• Each Sprint takes a manageable chunk of the release backlog and
gets it a ship-steady state.
• A set of product backlog items that must be delivered within a
single sprint iteration is called a Sprint backlog.
• Once the sprint backlog is determined, the team then divides each
user story into a task. And then in each Sprint, the product is
developed
4. Working on Sprint and Scrum Meetings
• After the user stories for the current phase are selected, the development process begins. For
tracking the current working process, a task board is commonly used, which represents
particular user stories with a description of tasks needed for implementation.
• Daily scrums or daily stand-ups are conducted by development teams to monitor the progress
made towards the Sprint Goal and progress performed in the Sprint Backlog, to adjust the plan
for the rest of the Sprint.
• Each of the meetings is held timeboxed in about 15 minutes. The main goal of these meetings
is to get accurate information about the current project status.
5. Burndown Charts
• The progress of the team is tracked through a burndown chart. It provides a day-by-day measure of
the work that remains in a given sprint or release.
• The slope of the graph (burndown velocity) is calculated by comparing the number of hours worked
to the original project estimation and displays the average rate of productivity for each day.
6. Testing and Product Demonstration
• If all the user stories are completed then the sprint backlog is also completed, which means a sprint
completion.
• A sprint review is held after sprint completion, where the working software is demonstrated and
presented for acceptance to the customers.
7. Retrospective and Next Sprint Planning
• Finally, the team then conducts a sprint retrospective to ask themselves questions about what could
be done better to improve themselves. The team primarily looks at three things during a
retrospective:
• What went well?
• What did not go well?
• What should be done differently?
• The time duration of retrospectives lasts max of 90 minutes. They help us to incorporate continuous
changes into sprint cadence and team.
• At last, the team velocity is updated and it acts as information radiators to display the status and
progress of the project, which again make their way back to user stories, and then the whole cycle
repeats until the project is completed.
Example of User Story in Scrum
Employee Management System
• As a HR manager, I want to be able to use an employee management system to:
1. Create new employee profiles with their personal information, job title, and start date.
2. View and update employee information such as contact details, job details, salary details, and other relevant
information.
3. Assign tasks and projects to employees and track their progress.
4. Generate reports on employee performance, attendance, and other relevant metrics.
5. Manage employee leaves, including vacation time, sick leave, and other types of leaves.
6. Store and access employee documents such as contracts, resumes, and performance reviews.
7. Receive notifications and alerts for employee birthdays, work anniversaries, and other important events.
8. Allow employees to access and update their own personal information, request leaves, and view their tasks and
projects.
9. Ensure the system is secure and complies with data privacy regulations.
• By having an employee management system in place, I can more efficiently manage our company's human
resources and make informed decisions based on real-time data.
Scrum Model- Example
• Example of how the Scrum model might be used in software development:
• Sprint planning: At the beginning of each sprint, the development team and the product owner meet to plan the work for the sprint. They review
the product backlog, which is a prioritized list of features or user stories that the customer wants in the software. The development team then
selects the highest priority items from the product backlog that they think they can complete during the sprint.

• Daily stand-up meetings: Throughout the sprint, the development team holds daily stand-up meetings to check in on their progress and identify
any issues or roadblocks that need to be addressed. The meetings are typically brief and focused, and each team member answers three
questions: What did I accomplish yesterday? What will I work on today? Do I have any blockers or issues that need to be addressed?

• Sprint review: At the end of each sprint, the development team presents their work to the product owner and any other stakeholders who are
interested. The team demonstrates the working software that they completed during the sprint, and the product owner provides feedback on the
features or user stories that were completed.

• Sprint retrospective: After the sprint review, the development team holds a retrospective meeting to reflect on the sprint and identify areas for
improvement. They discuss what went well during the sprint, what didn't go well, and any ideas for how to improve their processes or
communication.

• Repeat: The development team then starts the next sprint, using the feedback and insights gained from the retrospective meeting to improve
their work.

• By using the Scrum model, the development team can quickly deliver working software that meets the customer's needs. The model emphasizes
collaboration, flexibility, and continuous improvement, which can lead to faster and more effective software development.

20XX presentation title 50


Advantage (Pros) of Agile Method
1. Frequent Delivery
2. Face-to-Face Communication with
clients.
3. Efficient design and fulfils the business
requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.
Disadvantages (Cons) of Agile Model

1. Due to the lack of formal documents, it creates confusion and


vital decisions taken throughout various phases can be
misunderstood at any time by different team members.
2. Due to the lack of proper documentation, once the project
completes and the developers allotted to another project,
maintenance of the finished project can become a difficulty.

You might also like