SlideShare a Scribd company logo
1 of 124
Software Development Methodologies
SDM
Day
Day
• Developing a New Software Application
• Software Development Life Cycle (SDLC)
• SDLC Phases
Developing a New Software Application
Developing a New Software Application
Software development refers to a set of computer science activities
dedicated to the process of creating, designing, deploying and
supporting software.
Customer is the Software Product Owner
Customer Needs Idea Software Development Product
What is the Customer Really Need ?!
Is Software Development is an Art ?!
Customer
Needs
Developer 1
Developer 2
Developer 3
Evolution of Software Engineering : From an Art To
Engineering Discipline
Software Development Life Cycle (SDLC)
What is Software Development Life Cycle
(SDLC) ?!
• SDLC is a process followed for a software project, within a software organization.
It consists of a detailed plan describing how to develop, maintain, replace and
alter or enhance specific software. The life cycle defines a methodology for
improving the quality of software and the overall development process.
SDLC is a process followed for a software project
Team Setup
1. Planning
• In the Planning phase, project managers evaluate the terms of the project.
This includes calculating labor and material costs, creating a timetable with
target goals, and creating the project’s teams and leadership structure.
• Planning can also include feedback from stakeholders. Stakeholders are
anyone who stands to benefit from the application. Try to get feedback
from potential customers, developers, subject matter experts, and sales
reps.
• Planning should clearly define the scope and purpose of the application. It
plots the course and provisions the team to effectively create the software.
It also sets boundaries to help keep the project from expanding or shifting
from its original purpose.
Planning Process
Project Manager
Stakeholders
Project Charts
Visibility Study
Initial Project Plan
Marketing Requirements
Document (MRD)
Planning Process
Project Charter
2. Define Requirements / Requirements Engineering
• Defining requirements is considered part of planning to determine
what the application is supposed to do and its requirements. For
example, a social media application would require the ability to
connect with a friend. An inventory program might require a search
feature.
• Requirements also include defining the resources needed to build the
project. For example, a team might develop software to control a
custom manufacturing machine. The machine is a requirement in the
process.
Define Requirements / Requirements Engineering Process
Customer
Stakeholders
Software Requirement
Specifications (SRS)
Or Product Backlog
Product Owner
Initial Project Plan
Marketing Requirements
Document (MRD)
Requirement Engineering Process
Main Activities of Requirements Engineering
Software Requirements as a Use Case
Use Case Narrative
Use Case Diagram
Software Requirements as a User Story
3. Design and Prototyping
The Design phase models the way a software application will work. Some aspects of the design
include:
• Architecture – Specifies programming language, industry practices, overall design, and use of any
templates or boilerplate
• User Interface – Defines the ways customers interact with the software, and how the software
responds to input
• Platforms – Defines the platforms on which the software will run, such as Apple, Android,
Windows version, Linux, or even gaming consoles
• Programming – Not just the programming language, but including methods of solving problems
and performing tasks in the application
• Communications – Defines the methods that the application can communicate with other assets,
such as a central server or other instances of the application
• Security – Defines the measures taken to secure the application, and may include SSL traffic
encryption, password protection, and secure storage of user credentials
Design and Prototyping Process
Software Architect
Software Designer
Software System Architecture
Software High Level Design
SRS / Product Backlog
Risk Analysis Document
Software Low Level Design
Software Design Documents (SSD)
Design and Prototyping Process
Tools
3. Design and Prototyping (Cont.)
• Prototyping can be a part of the Design phase. A prototype is like one
of the early versions of software in the Iterative software
development model. It demonstrates a basic idea of how the
application looks and works. This “hands-on” design can be shown to
stakeholders. Use feedback o improve the application. It’s less
expensive to change the Prototype phase than to rewrite code to
make a change in the Development phase.
Design Diagrams Samples
Design Diagrams Samples (Cont.)
Activity Diagram Sequence Diagram
Design Diagrams Samples (Cont.)
Data Flow Diagram (DFD) Entity Relationship Diagram (ERD)
4. Software Development
• This is the actual writing of the program. A small project might be written by a single
developer, while a large project might be broken up and worked by several teams. Use an
Access Control or Source Code Management application in this phase. These systems
help developers track changes to the code. They also help ensure compatibility between
different team projects and to make sure target goals are being met.
• The coding process includes many other tasks. Many developers need to brush up on
skills or work as a team. Finding and fixing errors and glitches is critical. Tasks often hold
up the development process, such as waiting for test results or compiling code so an
application can run. SDLC can anticipate these delays so that developers can be tasked
with other duties.
• Software developers appreciate instructions and explanations. Documentation can be a
formal process, including wiring a user guide for the application. It can also be informal,
like comments in the source code that explain why a developer used a certain procedure.
Even companies that strive to create software that’s easy and intuitive benefit from the
documentation.
Software Development Process
Product Owner
Developer
Team Leader
Software Design
Documents (SDD)
Software Requirement
Specifications (SRS)
Or Product Backlog
Software Shippable Product
Software Development Process
Tools
Most used programming languages among developers
worldwide as of 2022 (statista.com)
5. Software Testing
• It’s critical to test an application before making it available to users.
Much of the testing can be automated, like security testing. Other
testing can only be done in a specific environment – consider creating
a simulated production environment for complex deployments.
Testing should ensure that each function works correctly. Different
parts of the application should also be tested to work seamlessly
together—performance test, to reduce any hangs or lags in
processing. The testing phase helps reduce the number of bugs and
glitches that users encounter. This leads to a higher user satisfaction
and a better usage rate.
Software Testing Process
Software Tester
Software Design
Documents (SSD)
Software Requirement
Specifications (SRS)
Or Product Backlog
Integration Testing Plan
Unit Testing Plan
Functional Testing Plan
Software Testing Process
Tools
Software Testing Process (Cont.)
Software Tester
Integration Testing Report
Unit Testing Report
Functional Testing Report
Integration Testing Plan Unit Testing Plan
Functional Testing Plan
Software Shippable
Product
Bug/Issues Report
Software Testing Process
Tools
Software Test Case Sample
6. Deployment
• In the deployment phase, the application is made available to users.
Many companies prefer to automate the deployment phase. This can
be as simple as a payment portal and download link on the company
website. It could also be downloading an application on a
smartphone.
• Deployment can also be complex. Upgrading a company-wide
database to a newly-developed application is one example. Because
there are several other systems used by the database, integrating the
upgrade can take more time and effort.
Deployment Process
DevOps Engineer
Software Deployment Process
Tools
Software Released
Product
Deployed Software
Product
7. Operations and Maintenance
• At this point, the development cycle is almost finished. The
application is done and being used in the field. The Operation and
Maintenance phase is still important, though. In this phase, users
discover bugs that weren’t found during testing. These errors need to
be resolved, which can spawn new development cycles.
• In addition to bug fixes, models like Iterative development plan
additional features in future releases. For each new release, a new
Development Cycle can be launched.
Software Maintenance Overview
SDM
Day
Day
• Software Product Roadmap Management
• Software Development Methodologies:
• The Waterfall approach.
• Agile Methodology.
• Scrum
Software Product Roadmap
Management
What is a software product roadmap?
• A product roadmap is a plan of action for how a product or solution will evolve
over time. Product owners use roadmaps to outline future product functionality
and when new features will be released.
Who Should Participate in Product Roadmap
Planning?
• Product manager/Business Analyst:
The product manager is ultimately responsible for the product roadmap. So the PM is responsible
for guiding the success of a product and leading the cross-functional team that is responsible for
improving it. The main inputs for him is the PRD
• Product owner:
The product owner participates in the roadmap planning process to serve as the liaison. They are
coordinating between the big-picture strategic plan and the development team’s action plan.
• Development representative(s):
The development team’s contribution to product roadmap planning could involve a single person.
Such as a development manager or the head of the department.
Example of Software Product Roadmap
SRS/Product Backlog
Initial Project Plan
Marketing Requirements
Document (MRD)
4 examples of effective product roadmaps
(According to the kind of audience)
1- Release plan
2- Sprint plan roadmap
3- Kanban roadmap
4- Features timeline roadmap
Software Development Methodology
Waterfall Approach
Waterfall Approach
Winston Royce introduced the Waterfall
Model in 1970.This model has five phases:
Requirements analysis and specification,
design, implementation, and unit testing,
integration and system testing, and operation
and maintenance. The steps always follow in
this order and do not overlap. The developer
must complete every phase before the next
phase begins. This model is named "Waterfall
Model", because its diagrammatic
representation resembles a cascade of
waterfalls.
Traditional Software Development life cycle “Waterfall”
Final Product
When to use SDLC “Waterfall” Approach?
• When the requirements are constant and not changed regularly.
• A project is short
• The technology is understood and not dynamic.
• Where the tools and technology used is consistent and is not
changing
• When resources are well prepared and are available to use.
Advantages of “Waterfall” Approach
• This model is simple to implement also the number of resources that
are required for it is minimal.
• The requirements are simple and explicitly declared; they remain
unchanged during the entire project development.
• The start and end points for each phase is fixed, which makes it easy
to cover progress.
• The release date for the complete product, as well as its final cost,
can be determined before development.
• It gives easy to control and clarity for the customer due to a strict
reporting system.
Disadvantages of “Waterfall” Approach
• In this model, the risk factor is higher, so this model is not suitable for
more significant and complex projects.
• This model cannot accept the changes in requirements during
development.
• It becomes tough to go back to the phase. For example, if the
application has now shifted to the coding phase, and there is a
change in requirement, It becomes tough to go back and change it.
• Since the testing done at a later stage, it does not allow identifying
the challenges and risks in the earlier phase, so the risk reduction
strategy is difficult to prepare.
Cost of Fixing bugs in “Waterfall” Approach
Customer Feedback cycle in “Waterfall” Approach
Final Product
Feedback Cycle
Prototyping and “Waterfall” Approach
Software Testing in “Waterfall” Approach
Final Product
User Acceptance Test
Improve Testing in V-Model as a “Waterfall” Approach
IEC 62304 is a functional safety standard that covers safe
design and maintenance of software. It provides
processes, activities, and tasks to ensure safety. It applies to
the development and maintenance of medical device
software when: The software is itself a medical device.
Estimation Techniques in “Waterfall” Approach
Agile Methodology
Agile Methodology
• It all started in the spring of 2000, when a group of 17 software
developers, including Martin Fowler, Jim Highsmith, Jon Kern, Jeff
Sutherland, Ken Schwaber, and Bob Martin met in Oregon to discuss
how they could speed up development times in order bring new
software to market faster.
The Pioneers of Agility
T
aylor Ford Sloan Deming Nonaka T
akeuchi
Ohno
The Agilists
Jeff
Sutherland
Ken
Schwaber
Mike
Cohn
Alistair
Cockburn
Martin
Fowler
Ron
Jeffries
Kent Beck
Incremental approach in “Agile” Methodology
Customer Feedback cycle in “Agile” Methodology
Feedback Cycle
Customer Interaction is the backbone of this Agile methodology, and open communication
with minimum documentation are the typical features of Agile development environment. The
agile teams work in close collaboration with each other and are most often located in the same
geographical location.
When to use the Agile Methodology?
• When frequent changes are required.
• When a highly qualified and experienced team is available.
• When need to respond to market dynamics and complete more of
their projects successfully
• When project contains ambiguities in requirements such as R&D
projects.
• When the project is complex and takes long time to be developed.
Advantage(Pros) of Agile Methodology
• Frequent Delivery
• Face-to-Face Communication with clients.
• Efficient design and fulfils the business requirement.
• Anytime changes are acceptable.
• It reduces total development time.
Disadvantages(Cons) of Agile Methodology
• Due to the shortage of formal documents, it creates confusion and
crucial decisions taken throughout various phases can be
misinterpreted at any time by different team members.
• 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.
AGILE STATISTICS [2022]
https://www.zippia.com/advice/agile-statistics/
AGILE STATISTICS [2022] (CONT.)
https://www.zippia.com/advice/agile-statistics/
Types of agile methodologies
The Agile – Scrum Framework
SCRUM Who uses it?
"Microsoft
"Yahoo
"Google
"ElectronicArts
"Lockheed Martin
"Philips
"Siemens
"Nokia
"BBC
"Nielsen Media
"SalesForce.com
"Oracle
"Time Warner
"Turner Broadcasting
"Toyota
"BMC Software
"CapitalOne
" Abril (Brazil)
"Globo (Brazil)
"UOL (Brazil)
The Agile – Scrum Framework (Cont.)
Roles in Scrum Framework
TheProduct Owner
Define the features for the product
Decide on release dates and its contents
Responsible for the ROI, audience, etc.
Prioritize features according to market and strategic value
Interact with stakeholders and customers to define the
Product backlog
Adjust features and prioritize every sprint, as needed
Accept or reject work results during the Sprint Review
ScrumMaster
Protect values and principles
Removes impediments
Keep the team fully functional and productive
Enable cooperation
Shield the team from “dark forces”
Facilitates integration
He does NOT allocate tasks
TheTeam
Typically5-9 people
Cross-functional:
Programmers, testers, UXD, etc.
Full-time allocated
Self-organized
Responsible for the quality
Estimates the complexity
SDM
Day
Day
• Scrum:
• Estimation Techniques in “Agile” Methodology
• Software Testing in “Agile” Methodology
• Kanban
• Extreme Programming Development
Estimation Techniques in “Agile” Methodology
Planning Poker
T-Shirt Sizes
Kanban Board
Definition Of Done
(DOD)
78.0
58.5
39.0
19.5
0
97.5
117.0
4/29/08
5/6/08
5/13/08
5/20/08
5/24/08
Number
of
tasks
100
BurnupChart
100
80
60
40
20
0
4/29/08
5/6/08
5/13/08
5/20/08
5/24/08
complexity
points
BurndownChart
Software Testing in “Agile” Methodology
Acceptance Testing
• Acceptance testing, like system testing, typically focuses on the
behavior and capabilities of a whole system or product.
Software Testing in “Agile” Methodology (Cont.)
Kanban Framwork
Kanban Methodology: The Simplest Agile
Framework
Kanban is a framework that falls under the Agile methodology. It was
developed in the late 1940s by a Japanese engineer named Taiichi
Ohno. Agile Kanban Framework focuses on visualizing the entire
project on boards in order to increase project transparency and
collaboration between team members.
Kanban 4 Principles
Kanban 4 Principles (cont.)
Kanban 4 Principles (cont.)
Kanban 4 Principles (cont.)
When to use the Kanban Framework?
• When you want to deploy work as soon as it is ready, rather than
waiting for other work items.
• If your priorities change on the fly, and ad hoc tasks can happen
anytime.
• Kanban is best suited as you can add tasks to any work stage.
• It can also be used when there are no iterations.
Development Environment
Version Control Management
In software engineering, version control (also known as revision control, source
control, or source code management) is a class of systems responsible for
managing changes to computer programs, documents, large web sites, or other
collections of information. Version control is a component of software configuration
management
Version Control Tools
• Azure Repos:
Azure Repos is a set of version control tools on Azure DevOps that users Git
technology and we can use to manage our application code.
• GitHub Desktop:
GitHub Desktop is an application that enables developers to interact with version
control using a GUI instead of the command line or a web browser. GitHub
Desktop encourages you and our team to collaborate using best practices with Git
and GitHub
Version Control Branching
Trunk Based Development
Shared branches off mainline/master/trunk are bad at
any release cadence:
Trunk-Based Development For Smaller Teams:
Scaled Trunk-Based Development:
CI/CD pipeline
• CI and CD stand for continuous integration and continuous
delivery/continuous deployment. In very simple terms, CI is a
modern software development practice in which incremental code
changes are made frequently and reliably.
Automation Testing Tools
• Static Code Analysis:
One of the primary reasons why static analysis is so important is that it lets
developer thoroughly analyze all of his code without even executing it.
Ex: Code analyzers - Visual Studio
• Unit Testing/ Integration Testing:
Unit testing involves testing individual pieces of code while integration testing
involves testing modules of code to understand how they perform alone and how
they interact with each other.
Ex: Testing tools - Visual Studio [Unit testing, Live Unit Testing]
Automation Testing Tools
• Functional Testing:
Functional testing is the process through which QAs determine if a piece of
software is acting in accordance with pre-determined requirements.
Ex: -Test Explorer- Visual Studio
- Selenium
• Load Testing:
A load test is a type of performance test that checks how systems function under
a heavy number of concurrent virtual users performing transactions over a
certain period of time.
Ex: coded web performance test - Visual Studio
References
• https://www.productboard.com/product-roadmap-guide
• https://www.atlassian.com/agile/product-management

More Related Content

What's hot

Software development slides
Software development slidesSoftware development slides
Software development slides
iarthur
 

What's hot (20)

Software documentation
Software documentationSoftware documentation
Software documentation
 
Software design
Software designSoftware design
Software design
 
SDLC MODEL
SDLC MODEL SDLC MODEL
SDLC MODEL
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Iterative model
Iterative modelIterative model
Iterative model
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software project management- Software Engineering
Software project management- Software EngineeringSoftware project management- Software Engineering
Software project management- Software Engineering
 
software process improvement
software process improvementsoftware process improvement
software process improvement
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
 
Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologies
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
9. Software Implementation
9. Software Implementation9. Software Implementation
9. Software Implementation
 
RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.
 

Similar to Software Development Methodologies.pptx

Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
swatisinghal
 
Introduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptxIntroduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptx
AbcXyz302255
 
Software Engineering in a Quick and Easy way - v1.pdf
Software Engineering in a Quick and Easy way - v1.pdfSoftware Engineering in a Quick and Easy way - v1.pdf
Software Engineering in a Quick and Easy way - v1.pdf
KAJAL MANDAL
 

Similar to Software Development Methodologies.pptx (20)

Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
SIA-101-Final-_SDLC.pdf
SIA-101-Final-_SDLC.pdfSIA-101-Final-_SDLC.pdf
SIA-101-Final-_SDLC.pdf
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
 
SE-Lecture-2.pptx
SE-Lecture-2.pptxSE-Lecture-2.pptx
SE-Lecture-2.pptx
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Software Development Life Cycle: Traditional and Agile- A Comparative Study
Software Development Life Cycle: Traditional and Agile- A Comparative StudySoftware Development Life Cycle: Traditional and Agile- A Comparative Study
Software Development Life Cycle: Traditional and Agile- A Comparative Study
 
Sdlc model
Sdlc modelSdlc model
Sdlc model
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Introduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptxIntroduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptx
 
Software_Testing.pptx
Software_Testing.pptxSoftware_Testing.pptx
Software_Testing.pptx
 
Software Engineering in a Quick and Easy way - v1.pdf
Software Engineering in a Quick and Easy way - v1.pdfSoftware Engineering in a Quick and Easy way - v1.pdf
Software Engineering in a Quick and Easy way - v1.pdf
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptx
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptx
 
SDLC and Software Process Models Introduction ppt
SDLC and Software Process Models Introduction pptSDLC and Software Process Models Introduction ppt
SDLC and Software Process Models Introduction ppt
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Soft lifecycle
Soft lifecycleSoft lifecycle
Soft lifecycle
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

Software Development Methodologies.pptx

  • 3. Day • Developing a New Software Application • Software Development Life Cycle (SDLC) • SDLC Phases
  • 4. Developing a New Software Application
  • 5. Developing a New Software Application Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying and supporting software.
  • 6. Customer is the Software Product Owner Customer Needs Idea Software Development Product
  • 7. What is the Customer Really Need ?!
  • 8. Is Software Development is an Art ?! Customer Needs Developer 1 Developer 2 Developer 3
  • 9. Evolution of Software Engineering : From an Art To Engineering Discipline
  • 11. What is Software Development Life Cycle (SDLC) ?! • SDLC is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.
  • 12. SDLC is a process followed for a software project
  • 14.
  • 15.
  • 16. 1. Planning • In the Planning phase, project managers evaluate the terms of the project. This includes calculating labor and material costs, creating a timetable with target goals, and creating the project’s teams and leadership structure. • Planning can also include feedback from stakeholders. Stakeholders are anyone who stands to benefit from the application. Try to get feedback from potential customers, developers, subject matter experts, and sales reps. • Planning should clearly define the scope and purpose of the application. It plots the course and provisions the team to effectively create the software. It also sets boundaries to help keep the project from expanding or shifting from its original purpose.
  • 17. Planning Process Project Manager Stakeholders Project Charts Visibility Study Initial Project Plan Marketing Requirements Document (MRD) Planning Process
  • 19. 2. Define Requirements / Requirements Engineering • Defining requirements is considered part of planning to determine what the application is supposed to do and its requirements. For example, a social media application would require the ability to connect with a friend. An inventory program might require a search feature. • Requirements also include defining the resources needed to build the project. For example, a team might develop software to control a custom manufacturing machine. The machine is a requirement in the process.
  • 20. Define Requirements / Requirements Engineering Process Customer Stakeholders Software Requirement Specifications (SRS) Or Product Backlog Product Owner Initial Project Plan Marketing Requirements Document (MRD) Requirement Engineering Process
  • 21. Main Activities of Requirements Engineering
  • 22. Software Requirements as a Use Case Use Case Narrative Use Case Diagram
  • 23. Software Requirements as a User Story
  • 24. 3. Design and Prototyping The Design phase models the way a software application will work. Some aspects of the design include: • Architecture – Specifies programming language, industry practices, overall design, and use of any templates or boilerplate • User Interface – Defines the ways customers interact with the software, and how the software responds to input • Platforms – Defines the platforms on which the software will run, such as Apple, Android, Windows version, Linux, or even gaming consoles • Programming – Not just the programming language, but including methods of solving problems and performing tasks in the application • Communications – Defines the methods that the application can communicate with other assets, such as a central server or other instances of the application • Security – Defines the measures taken to secure the application, and may include SSL traffic encryption, password protection, and secure storage of user credentials
  • 25. Design and Prototyping Process Software Architect Software Designer Software System Architecture Software High Level Design SRS / Product Backlog Risk Analysis Document Software Low Level Design Software Design Documents (SSD) Design and Prototyping Process Tools
  • 26. 3. Design and Prototyping (Cont.) • Prototyping can be a part of the Design phase. A prototype is like one of the early versions of software in the Iterative software development model. It demonstrates a basic idea of how the application looks and works. This “hands-on” design can be shown to stakeholders. Use feedback o improve the application. It’s less expensive to change the Prototype phase than to rewrite code to make a change in the Development phase.
  • 28. Design Diagrams Samples (Cont.) Activity Diagram Sequence Diagram
  • 29. Design Diagrams Samples (Cont.) Data Flow Diagram (DFD) Entity Relationship Diagram (ERD)
  • 30. 4. Software Development • This is the actual writing of the program. A small project might be written by a single developer, while a large project might be broken up and worked by several teams. Use an Access Control or Source Code Management application in this phase. These systems help developers track changes to the code. They also help ensure compatibility between different team projects and to make sure target goals are being met. • The coding process includes many other tasks. Many developers need to brush up on skills or work as a team. Finding and fixing errors and glitches is critical. Tasks often hold up the development process, such as waiting for test results or compiling code so an application can run. SDLC can anticipate these delays so that developers can be tasked with other duties. • Software developers appreciate instructions and explanations. Documentation can be a formal process, including wiring a user guide for the application. It can also be informal, like comments in the source code that explain why a developer used a certain procedure. Even companies that strive to create software that’s easy and intuitive benefit from the documentation.
  • 31. Software Development Process Product Owner Developer Team Leader Software Design Documents (SDD) Software Requirement Specifications (SRS) Or Product Backlog Software Shippable Product Software Development Process Tools
  • 32. Most used programming languages among developers worldwide as of 2022 (statista.com)
  • 33. 5. Software Testing • It’s critical to test an application before making it available to users. Much of the testing can be automated, like security testing. Other testing can only be done in a specific environment – consider creating a simulated production environment for complex deployments. Testing should ensure that each function works correctly. Different parts of the application should also be tested to work seamlessly together—performance test, to reduce any hangs or lags in processing. The testing phase helps reduce the number of bugs and glitches that users encounter. This leads to a higher user satisfaction and a better usage rate.
  • 34. Software Testing Process Software Tester Software Design Documents (SSD) Software Requirement Specifications (SRS) Or Product Backlog Integration Testing Plan Unit Testing Plan Functional Testing Plan Software Testing Process Tools
  • 35. Software Testing Process (Cont.) Software Tester Integration Testing Report Unit Testing Report Functional Testing Report Integration Testing Plan Unit Testing Plan Functional Testing Plan Software Shippable Product Bug/Issues Report Software Testing Process Tools
  • 37. 6. Deployment • In the deployment phase, the application is made available to users. Many companies prefer to automate the deployment phase. This can be as simple as a payment portal and download link on the company website. It could also be downloading an application on a smartphone. • Deployment can also be complex. Upgrading a company-wide database to a newly-developed application is one example. Because there are several other systems used by the database, integrating the upgrade can take more time and effort.
  • 38. Deployment Process DevOps Engineer Software Deployment Process Tools Software Released Product Deployed Software Product
  • 39. 7. Operations and Maintenance • At this point, the development cycle is almost finished. The application is done and being used in the field. The Operation and Maintenance phase is still important, though. In this phase, users discover bugs that weren’t found during testing. These errors need to be resolved, which can spawn new development cycles. • In addition to bug fixes, models like Iterative development plan additional features in future releases. For each new release, a new Development Cycle can be launched.
  • 42. Day • Software Product Roadmap Management • Software Development Methodologies: • The Waterfall approach. • Agile Methodology. • Scrum
  • 44.
  • 45. What is a software product roadmap? • A product roadmap is a plan of action for how a product or solution will evolve over time. Product owners use roadmaps to outline future product functionality and when new features will be released.
  • 46. Who Should Participate in Product Roadmap Planning? • Product manager/Business Analyst: The product manager is ultimately responsible for the product roadmap. So the PM is responsible for guiding the success of a product and leading the cross-functional team that is responsible for improving it. The main inputs for him is the PRD • Product owner: The product owner participates in the roadmap planning process to serve as the liaison. They are coordinating between the big-picture strategic plan and the development team’s action plan. • Development representative(s): The development team’s contribution to product roadmap planning could involve a single person. Such as a development manager or the head of the department.
  • 47. Example of Software Product Roadmap SRS/Product Backlog Initial Project Plan Marketing Requirements Document (MRD)
  • 48.
  • 49. 4 examples of effective product roadmaps (According to the kind of audience)
  • 51.
  • 52. 2- Sprint plan roadmap
  • 53.
  • 58. Waterfall Approach Winston Royce introduced the Waterfall Model in 1970.This model has five phases: Requirements analysis and specification, design, implementation, and unit testing, integration and system testing, and operation and maintenance. The steps always follow in this order and do not overlap. The developer must complete every phase before the next phase begins. This model is named "Waterfall Model", because its diagrammatic representation resembles a cascade of waterfalls.
  • 59. Traditional Software Development life cycle “Waterfall” Final Product
  • 60. When to use SDLC “Waterfall” Approach? • When the requirements are constant and not changed regularly. • A project is short • The technology is understood and not dynamic. • Where the tools and technology used is consistent and is not changing • When resources are well prepared and are available to use.
  • 61. Advantages of “Waterfall” Approach • This model is simple to implement also the number of resources that are required for it is minimal. • The requirements are simple and explicitly declared; they remain unchanged during the entire project development. • The start and end points for each phase is fixed, which makes it easy to cover progress. • The release date for the complete product, as well as its final cost, can be determined before development. • It gives easy to control and clarity for the customer due to a strict reporting system.
  • 62. Disadvantages of “Waterfall” Approach • In this model, the risk factor is higher, so this model is not suitable for more significant and complex projects. • This model cannot accept the changes in requirements during development. • It becomes tough to go back to the phase. For example, if the application has now shifted to the coding phase, and there is a change in requirement, It becomes tough to go back and change it. • Since the testing done at a later stage, it does not allow identifying the challenges and risks in the earlier phase, so the risk reduction strategy is difficult to prepare.
  • 63. Cost of Fixing bugs in “Waterfall” Approach
  • 64. Customer Feedback cycle in “Waterfall” Approach Final Product Feedback Cycle
  • 66. Software Testing in “Waterfall” Approach Final Product User Acceptance Test
  • 67. Improve Testing in V-Model as a “Waterfall” Approach
  • 68. IEC 62304 is a functional safety standard that covers safe design and maintenance of software. It provides processes, activities, and tasks to ensure safety. It applies to the development and maintenance of medical device software when: The software is itself a medical device.
  • 69.
  • 70. Estimation Techniques in “Waterfall” Approach
  • 72. Agile Methodology • It all started in the spring of 2000, when a group of 17 software developers, including Martin Fowler, Jim Highsmith, Jon Kern, Jeff Sutherland, Ken Schwaber, and Bob Martin met in Oregon to discuss how they could speed up development times in order bring new software to market faster.
  • 73. The Pioneers of Agility T aylor Ford Sloan Deming Nonaka T akeuchi Ohno
  • 75.
  • 76. Incremental approach in “Agile” Methodology
  • 77. Customer Feedback cycle in “Agile” Methodology Feedback Cycle Customer Interaction is the backbone of this Agile methodology, and open communication with minimum documentation are the typical features of Agile development environment. The agile teams work in close collaboration with each other and are most often located in the same geographical location.
  • 78. When to use the Agile Methodology? • When frequent changes are required. • When a highly qualified and experienced team is available. • When need to respond to market dynamics and complete more of their projects successfully • When project contains ambiguities in requirements such as R&D projects. • When the project is complex and takes long time to be developed.
  • 79. Advantage(Pros) of Agile Methodology • Frequent Delivery • Face-to-Face Communication with clients. • Efficient design and fulfils the business requirement. • Anytime changes are acceptable. • It reduces total development time.
  • 80. Disadvantages(Cons) of Agile Methodology • Due to the shortage of formal documents, it creates confusion and crucial decisions taken throughout various phases can be misinterpreted at any time by different team members. • 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.
  • 82. AGILE STATISTICS [2022] (CONT.) https://www.zippia.com/advice/agile-statistics/
  • 83. Types of agile methodologies
  • 84.
  • 85. The Agile – Scrum Framework
  • 86. SCRUM Who uses it? "Microsoft "Yahoo "Google "ElectronicArts "Lockheed Martin "Philips "Siemens "Nokia "BBC "Nielsen Media "SalesForce.com "Oracle "Time Warner "Turner Broadcasting "Toyota "BMC Software "CapitalOne " Abril (Brazil) "Globo (Brazil) "UOL (Brazil)
  • 87. The Agile – Scrum Framework (Cont.)
  • 88. Roles in Scrum Framework
  • 89. TheProduct Owner Define the features for the product Decide on release dates and its contents Responsible for the ROI, audience, etc. Prioritize features according to market and strategic value Interact with stakeholders and customers to define the Product backlog Adjust features and prioritize every sprint, as needed Accept or reject work results during the Sprint Review
  • 90. ScrumMaster Protect values and principles Removes impediments Keep the team fully functional and productive Enable cooperation Shield the team from “dark forces” Facilitates integration He does NOT allocate tasks
  • 91. TheTeam Typically5-9 people Cross-functional: Programmers, testers, UXD, etc. Full-time allocated Self-organized Responsible for the quality Estimates the complexity
  • 93. Day • Scrum: • Estimation Techniques in “Agile” Methodology • Software Testing in “Agile” Methodology • Kanban • Extreme Programming Development
  • 94.
  • 95. Estimation Techniques in “Agile” Methodology
  • 102. Software Testing in “Agile” Methodology
  • 103. Acceptance Testing • Acceptance testing, like system testing, typically focuses on the behavior and capabilities of a whole system or product.
  • 104. Software Testing in “Agile” Methodology (Cont.)
  • 106. Kanban Methodology: The Simplest Agile Framework Kanban is a framework that falls under the Agile methodology. It was developed in the late 1940s by a Japanese engineer named Taiichi Ohno. Agile Kanban Framework focuses on visualizing the entire project on boards in order to increase project transparency and collaboration between team members.
  • 107.
  • 112. When to use the Kanban Framework? • When you want to deploy work as soon as it is ready, rather than waiting for other work items. • If your priorities change on the fly, and ad hoc tasks can happen anytime. • Kanban is best suited as you can add tasks to any work stage. • It can also be used when there are no iterations.
  • 114. Version Control Management In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. Version control is a component of software configuration management
  • 115.
  • 116. Version Control Tools • Azure Repos: Azure Repos is a set of version control tools on Azure DevOps that users Git technology and we can use to manage our application code. • GitHub Desktop: GitHub Desktop is an application that enables developers to interact with version control using a GUI instead of the command line or a web browser. GitHub Desktop encourages you and our team to collaborate using best practices with Git and GitHub
  • 118. Trunk Based Development Shared branches off mainline/master/trunk are bad at any release cadence: Trunk-Based Development For Smaller Teams: Scaled Trunk-Based Development:
  • 119. CI/CD pipeline • CI and CD stand for continuous integration and continuous delivery/continuous deployment. In very simple terms, CI is a modern software development practice in which incremental code changes are made frequently and reliably.
  • 120.
  • 121.
  • 122. Automation Testing Tools • Static Code Analysis: One of the primary reasons why static analysis is so important is that it lets developer thoroughly analyze all of his code without even executing it. Ex: Code analyzers - Visual Studio • Unit Testing/ Integration Testing: Unit testing involves testing individual pieces of code while integration testing involves testing modules of code to understand how they perform alone and how they interact with each other. Ex: Testing tools - Visual Studio [Unit testing, Live Unit Testing]
  • 123. Automation Testing Tools • Functional Testing: Functional testing is the process through which QAs determine if a piece of software is acting in accordance with pre-determined requirements. Ex: -Test Explorer- Visual Studio - Selenium • Load Testing: A load test is a type of performance test that checks how systems function under a heavy number of concurrent virtual users performing transactions over a certain period of time. Ex: coded web performance test - Visual Studio