SlideShare a Scribd company logo
Pattern-Driven
Software Problem Solving
Presenter: Dmitry Vostokov
Memory Dump Analysis Services
Prerequisites
Experience in software troubleshooting
and/or debugging
© 2011 Memory Dump Analysis Services
Agenda (Summary)
 A Short History
 Basic Definitions
 Pattern Categories
 Future Research Directions
© 2011 Memory Dump Analysis Services
DumpAnalysis.org*
5 Years!
* Now Includes: TraceAnalysis.org, www.ForensicAnalysis.org, and Victimware.org
© 2011 Memory Dump Analysis Services
Agenda (Basic Definitions)
 Software Problems
 Software Patterns
 DA+TA
 Pattern Hybridization
© 2011 Memory Dump Analysis Services
Software Problems
 Construction: Requirements, Architecture, Design,
and Implementation
 Post-Construction: Maintenance and Support
© 2011 Memory Dump Analysis Services
Post-construction problem: any observed deviations in
structure and behavior between modeling expectations
and the actual built system.*
* What is a Software Defect?
Software Patterns
 Construction: Requirements, Architecture, Design,
and Implementation
 Post-Construction: Maintenance and Support
© 2011 Memory Dump Analysis Services
Pattern: a common recurrent identifiable problem
together with a set of recommendations and possible
solutions to apply in a specific context
DA+TA
 DA: Dump Artifact / Dump Analysis
Memory snapshots: process, kernel, physical memory dumps
 TA: Trace Artifact / Trace Analysis
Software traces: Event Tracing for Windows, logs
© 2011 Memory Dump Analysis Services
Pattern Hybridization
A bit of Chemistry: Carbon SP3 orbital hybridization
© 2011 Memory Dump Analysis Services
System
+
Environment
DA+TA
Artifacts
DA+TA
Patterns
Debugware
Construction
Patterns
SP3
Software Patterns
3
Software Patterns3
- Structural
- Behavioral
- Debugware
- Debugging
Agenda (Pattern Categories)
 Software Behavior
 Debugware Tools
 Problem Workaround
 Unified Debugging
© 2011 Memory Dump Analysis Services
Software Behavior
 Memory dump and software trace
 Examples: Spiking Thread, Discontinuity
 +200 patterns (DA+TA)
 DumpAnalysis.org
© 2011 Memory Dump Analysis Services
DA: Software Behavior
 Memory dump: a memory snapshot
 Definition, partial classification and
historical list
 Pattern identification case studies
© 2011 Memory Dump Analysis Services
TA: Software Behavior
“Imagine you got a software trace from hundreds of modules
you haven’t written or haven’t seen source code of...”
 Software trace: a sequence of memory
fragments ordered in time
 Definition, and historical list
 Pattern identification case studies
© 2011 Memory Dump Analysis Services
Debugware Tools
 Troubleshooting and Debugging
 Example: Troubleshooting Unit of Work
 13 patterns, case study
 DumpAnalysis.org
© 2011 Memory Dump Analysis Services
Problem Workaround
 Troubleshooting when debugging is not
an option
 Example: Frozen Process
 Patterns
 DumpAnalysis.org
© 2011 Memory Dump Analysis Services
Unified Debugging
 Systematic Pattern Language
 Example:
Analysis Patterns Shared Buffer Overwrite
Architectural Patterns Debug Event Subscription / Notification
Design Patterns Punctuated Execution
Implementation Patterns Breakpoint (software and hardware)
Usage Patterns Kernel vs. user space breakpoints
© 2011 Memory Dump Analysis Services
Agenda (Future Directions)
 Structural Memory Patterns
 Unified Debugging Pattern Language
 Domain Pattern Hierarchy
 Periodic Table of Software Defects
© 2011 Memory Dump Analysis Services
Structural Memory Patterns
 Examples: Memory Region and Region Boundary
 DumpAnalysis.org
© 2011 Memory Dump Analysis Services
Domain Pattern Hierarchy
Repeated patterns through the layers of software
© 2011 Memory Dump Analysis Services
Resources
 DumpAnalysis.org
 Pattern-Driven Memory Dump Analysis
 Memory Dump and Trace Analysis: A Unified Pattern Approach
 Advanced Software Debugging Reference:
Vol 6
November,
2011
© 2011 Memory Dump Analysis Services
Vol 5
April,
2011
Q&A
Please send your feedback using the contact
form on DumpAnalysis.com
© 2011 Memory Dump Analysis Services
Thank you for attendance!
© 2011 Memory Dump Analysis Services
Join DA+TA Facebook Group

More Related Content

Similar to Introduction to Pattern-Driven Software Problem Solving

software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages
PraShant Kumar
 
OMG Essence in systems engineering courses
OMG Essence in systems engineering coursesOMG Essence in systems engineering courses
OMG Essence in systems engineering courses
Anatoly Levenchuk
 
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
Christoph Adler
 
CHAPTER 1 Creating a ProgramOBJECTIVES· Analyze some of the i.docx
CHAPTER 1 Creating a ProgramOBJECTIVES· Analyze some of the i.docxCHAPTER 1 Creating a ProgramOBJECTIVES· Analyze some of the i.docx
CHAPTER 1 Creating a ProgramOBJECTIVES· Analyze some of the i.docx
walterl4
 
Datamingse
DatamingseDatamingse
Datamingse
Ryan Wang
 
Software Requirement Patterns (SRP)
Software Requirement Patterns (SRP)Software Requirement Patterns (SRP)
Software Requirement Patterns (SRP)
GESSI UPC
 
An Introduction of Big data; Big data for beginners; Overview of Big Data; Bi...
An Introduction of Big data; Big data for beginners; Overview of Big Data; Bi...An Introduction of Big data; Big data for beginners; Overview of Big Data; Bi...
An Introduction of Big data; Big data for beginners; Overview of Big Data; Bi...
SpringPeople
 
Developing an Enterprise Architecture Capability
Developing an Enterprise Architecture CapabilityDeveloping an Enterprise Architecture Capability
Developing an Enterprise Architecture Capability
Anthony Draffin
 
Pattern-Oriented Memory Forensics
Pattern-Oriented Memory ForensicsPattern-Oriented Memory Forensics
Pattern-Oriented Memory Forensics
Dmitry Vostokov
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notesAmmar Shafiq
 
Software Theory Presentation
Software Theory PresentationSoftware Theory Presentation
Software Theory Presentationalexmurch
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
Garima Singh
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
Johan Eltes
 
HOW TO DOWNLOAD MICROSOFT WORD IN ANDROID, and How to convert doc file into ...
HOW TO DOWNLOAD MICROSOFT WORD  IN ANDROID, and How to convert doc file into ...HOW TO DOWNLOAD MICROSOFT WORD  IN ANDROID, and How to convert doc file into ...
HOW TO DOWNLOAD MICROSOFT WORD IN ANDROID, and How to convert doc file into ...
TEJVEER SINGH
 
Notes on software engineering
Notes on software engineeringNotes on software engineering
Notes on software engineering
Ertan Deniz
 
Pattern-Driven Software Diagnostics: An Introduction
Pattern-Driven Software Diagnostics: An IntroductionPattern-Driven Software Diagnostics: An Introduction
Pattern-Driven Software Diagnostics: An Introduction
Dmitry Vostokov
 
ConnectED 2015 BP302: Future-Proofing Enterprise IT
ConnectED 2015 BP302: Future-Proofing Enterprise ITConnectED 2015 BP302: Future-Proofing Enterprise IT
ConnectED 2015 BP302: Future-Proofing Enterprise IT
Daniel Reimann
 
Frequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer ToolslFrequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer Toolsl
Sharan S
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Software
dgarijo
 

Similar to Introduction to Pattern-Driven Software Problem Solving (20)

software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages
 
OMG Essence in systems engineering courses
OMG Essence in systems engineering coursesOMG Essence in systems engineering courses
OMG Essence in systems engineering courses
 
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
 
CHAPTER 1 Creating a ProgramOBJECTIVES· Analyze some of the i.docx
CHAPTER 1 Creating a ProgramOBJECTIVES· Analyze some of the i.docxCHAPTER 1 Creating a ProgramOBJECTIVES· Analyze some of the i.docx
CHAPTER 1 Creating a ProgramOBJECTIVES· Analyze some of the i.docx
 
Datamingse
DatamingseDatamingse
Datamingse
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
Software Requirement Patterns (SRP)
Software Requirement Patterns (SRP)Software Requirement Patterns (SRP)
Software Requirement Patterns (SRP)
 
An Introduction of Big data; Big data for beginners; Overview of Big Data; Bi...
An Introduction of Big data; Big data for beginners; Overview of Big Data; Bi...An Introduction of Big data; Big data for beginners; Overview of Big Data; Bi...
An Introduction of Big data; Big data for beginners; Overview of Big Data; Bi...
 
Developing an Enterprise Architecture Capability
Developing an Enterprise Architecture CapabilityDeveloping an Enterprise Architecture Capability
Developing an Enterprise Architecture Capability
 
Pattern-Oriented Memory Forensics
Pattern-Oriented Memory ForensicsPattern-Oriented Memory Forensics
Pattern-Oriented Memory Forensics
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Software Theory Presentation
Software Theory PresentationSoftware Theory Presentation
Software Theory Presentation
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
 
HOW TO DOWNLOAD MICROSOFT WORD IN ANDROID, and How to convert doc file into ...
HOW TO DOWNLOAD MICROSOFT WORD  IN ANDROID, and How to convert doc file into ...HOW TO DOWNLOAD MICROSOFT WORD  IN ANDROID, and How to convert doc file into ...
HOW TO DOWNLOAD MICROSOFT WORD IN ANDROID, and How to convert doc file into ...
 
Notes on software engineering
Notes on software engineeringNotes on software engineering
Notes on software engineering
 
Pattern-Driven Software Diagnostics: An Introduction
Pattern-Driven Software Diagnostics: An IntroductionPattern-Driven Software Diagnostics: An Introduction
Pattern-Driven Software Diagnostics: An Introduction
 
ConnectED 2015 BP302: Future-Proofing Enterprise IT
ConnectED 2015 BP302: Future-Proofing Enterprise ITConnectED 2015 BP302: Future-Proofing Enterprise IT
ConnectED 2015 BP302: Future-Proofing Enterprise IT
 
Frequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer ToolslFrequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer Toolsl
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Software
 

More from Dmitry Vostokov

Accelerated Windows Debugging 3 training public slides
Accelerated Windows Debugging 3 training public slidesAccelerated Windows Debugging 3 training public slides
Accelerated Windows Debugging 3 training public slides
Dmitry Vostokov
 
Accelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesAccelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slides
Dmitry Vostokov
 
Debugging TV Frame 0x1C
Debugging TV Frame 0x1CDebugging TV Frame 0x1C
Debugging TV Frame 0x1C
Dmitry Vostokov
 
Debugging TV Frame 0x1A
Debugging TV Frame 0x1ADebugging TV Frame 0x1A
Debugging TV Frame 0x1A
Dmitry Vostokov
 
Debugging TV Frame 0x34
Debugging TV Frame 0x34Debugging TV Frame 0x34
Debugging TV Frame 0x34
Dmitry Vostokov
 
Debugging TV Frame 0x33
Debugging TV Frame 0x33Debugging TV Frame 0x33
Debugging TV Frame 0x33
Dmitry Vostokov
 
Debugging TV Frame 0x31
Debugging TV Frame 0x31Debugging TV Frame 0x31
Debugging TV Frame 0x31
Dmitry Vostokov
 
Debugging TV Frame 0x25
Debugging TV Frame 0x25Debugging TV Frame 0x25
Debugging TV Frame 0x25
Dmitry Vostokov
 
Debugging TV Frame 0x24
Debugging TV Frame 0x24Debugging TV Frame 0x24
Debugging TV Frame 0x24
Dmitry Vostokov
 
Debugging TV Frame 0x21
Debugging TV Frame 0x21Debugging TV Frame 0x21
Debugging TV Frame 0x21
Dmitry Vostokov
 
Debugging TV Frame 0x20
Debugging TV Frame 0x20Debugging TV Frame 0x20
Debugging TV Frame 0x20
Dmitry Vostokov
 
Debugging TV Frame 0x19
Debugging TV Frame 0x19Debugging TV Frame 0x19
Debugging TV Frame 0x19
Dmitry Vostokov
 
Debugging TV Frame 0x18
Debugging TV Frame 0x18Debugging TV Frame 0x18
Debugging TV Frame 0x18
Dmitry Vostokov
 
Debugging TV Frame 0x17
Debugging TV Frame 0x17Debugging TV Frame 0x17
Debugging TV Frame 0x17
Dmitry Vostokov
 
Debugging TV Frame 0x16
Debugging TV Frame 0x16Debugging TV Frame 0x16
Debugging TV Frame 0x16
Dmitry Vostokov
 
Debugging TV Frame 0x15
Debugging TV Frame 0x15Debugging TV Frame 0x15
Debugging TV Frame 0x15
Dmitry Vostokov
 
Debugging TV Frame 0x14
Debugging TV Frame 0x14Debugging TV Frame 0x14
Debugging TV Frame 0x14
Dmitry Vostokov
 
Debugging TV Frame 0x13
Debugging TV Frame 0x13Debugging TV Frame 0x13
Debugging TV Frame 0x13
Dmitry Vostokov
 
Debugging TV Frame 0x12
Debugging TV Frame 0x12Debugging TV Frame 0x12
Debugging TV Frame 0x12
Dmitry Vostokov
 
Debugging TV Frame 0x11
Debugging TV Frame 0x11Debugging TV Frame 0x11
Debugging TV Frame 0x11
Dmitry Vostokov
 

More from Dmitry Vostokov (20)

Accelerated Windows Debugging 3 training public slides
Accelerated Windows Debugging 3 training public slidesAccelerated Windows Debugging 3 training public slides
Accelerated Windows Debugging 3 training public slides
 
Accelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesAccelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slides
 
Debugging TV Frame 0x1C
Debugging TV Frame 0x1CDebugging TV Frame 0x1C
Debugging TV Frame 0x1C
 
Debugging TV Frame 0x1A
Debugging TV Frame 0x1ADebugging TV Frame 0x1A
Debugging TV Frame 0x1A
 
Debugging TV Frame 0x34
Debugging TV Frame 0x34Debugging TV Frame 0x34
Debugging TV Frame 0x34
 
Debugging TV Frame 0x33
Debugging TV Frame 0x33Debugging TV Frame 0x33
Debugging TV Frame 0x33
 
Debugging TV Frame 0x31
Debugging TV Frame 0x31Debugging TV Frame 0x31
Debugging TV Frame 0x31
 
Debugging TV Frame 0x25
Debugging TV Frame 0x25Debugging TV Frame 0x25
Debugging TV Frame 0x25
 
Debugging TV Frame 0x24
Debugging TV Frame 0x24Debugging TV Frame 0x24
Debugging TV Frame 0x24
 
Debugging TV Frame 0x21
Debugging TV Frame 0x21Debugging TV Frame 0x21
Debugging TV Frame 0x21
 
Debugging TV Frame 0x20
Debugging TV Frame 0x20Debugging TV Frame 0x20
Debugging TV Frame 0x20
 
Debugging TV Frame 0x19
Debugging TV Frame 0x19Debugging TV Frame 0x19
Debugging TV Frame 0x19
 
Debugging TV Frame 0x18
Debugging TV Frame 0x18Debugging TV Frame 0x18
Debugging TV Frame 0x18
 
Debugging TV Frame 0x17
Debugging TV Frame 0x17Debugging TV Frame 0x17
Debugging TV Frame 0x17
 
Debugging TV Frame 0x16
Debugging TV Frame 0x16Debugging TV Frame 0x16
Debugging TV Frame 0x16
 
Debugging TV Frame 0x15
Debugging TV Frame 0x15Debugging TV Frame 0x15
Debugging TV Frame 0x15
 
Debugging TV Frame 0x14
Debugging TV Frame 0x14Debugging TV Frame 0x14
Debugging TV Frame 0x14
 
Debugging TV Frame 0x13
Debugging TV Frame 0x13Debugging TV Frame 0x13
Debugging TV Frame 0x13
 
Debugging TV Frame 0x12
Debugging TV Frame 0x12Debugging TV Frame 0x12
Debugging TV Frame 0x12
 
Debugging TV Frame 0x11
Debugging TV Frame 0x11Debugging TV Frame 0x11
Debugging TV Frame 0x11
 

Recently uploaded

2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 

Recently uploaded (20)

2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 

Introduction to Pattern-Driven Software Problem Solving

  • 1. Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services
  • 2. Prerequisites Experience in software troubleshooting and/or debugging © 2011 Memory Dump Analysis Services
  • 3. Agenda (Summary)  A Short History  Basic Definitions  Pattern Categories  Future Research Directions © 2011 Memory Dump Analysis Services
  • 4. DumpAnalysis.org* 5 Years! * Now Includes: TraceAnalysis.org, www.ForensicAnalysis.org, and Victimware.org © 2011 Memory Dump Analysis Services
  • 5. Agenda (Basic Definitions)  Software Problems  Software Patterns  DA+TA  Pattern Hybridization © 2011 Memory Dump Analysis Services
  • 6. Software Problems  Construction: Requirements, Architecture, Design, and Implementation  Post-Construction: Maintenance and Support © 2011 Memory Dump Analysis Services Post-construction problem: any observed deviations in structure and behavior between modeling expectations and the actual built system.* * What is a Software Defect?
  • 7. Software Patterns  Construction: Requirements, Architecture, Design, and Implementation  Post-Construction: Maintenance and Support © 2011 Memory Dump Analysis Services Pattern: a common recurrent identifiable problem together with a set of recommendations and possible solutions to apply in a specific context
  • 8. DA+TA  DA: Dump Artifact / Dump Analysis Memory snapshots: process, kernel, physical memory dumps  TA: Trace Artifact / Trace Analysis Software traces: Event Tracing for Windows, logs © 2011 Memory Dump Analysis Services
  • 9. Pattern Hybridization A bit of Chemistry: Carbon SP3 orbital hybridization © 2011 Memory Dump Analysis Services System + Environment DA+TA Artifacts DA+TA Patterns Debugware Construction Patterns SP3 Software Patterns 3 Software Patterns3 - Structural - Behavioral - Debugware - Debugging
  • 10. Agenda (Pattern Categories)  Software Behavior  Debugware Tools  Problem Workaround  Unified Debugging © 2011 Memory Dump Analysis Services
  • 11. Software Behavior  Memory dump and software trace  Examples: Spiking Thread, Discontinuity  +200 patterns (DA+TA)  DumpAnalysis.org © 2011 Memory Dump Analysis Services
  • 12. DA: Software Behavior  Memory dump: a memory snapshot  Definition, partial classification and historical list  Pattern identification case studies © 2011 Memory Dump Analysis Services
  • 13. TA: Software Behavior “Imagine you got a software trace from hundreds of modules you haven’t written or haven’t seen source code of...”  Software trace: a sequence of memory fragments ordered in time  Definition, and historical list  Pattern identification case studies © 2011 Memory Dump Analysis Services
  • 14. Debugware Tools  Troubleshooting and Debugging  Example: Troubleshooting Unit of Work  13 patterns, case study  DumpAnalysis.org © 2011 Memory Dump Analysis Services
  • 15. Problem Workaround  Troubleshooting when debugging is not an option  Example: Frozen Process  Patterns  DumpAnalysis.org © 2011 Memory Dump Analysis Services
  • 16. Unified Debugging  Systematic Pattern Language  Example: Analysis Patterns Shared Buffer Overwrite Architectural Patterns Debug Event Subscription / Notification Design Patterns Punctuated Execution Implementation Patterns Breakpoint (software and hardware) Usage Patterns Kernel vs. user space breakpoints © 2011 Memory Dump Analysis Services
  • 17. Agenda (Future Directions)  Structural Memory Patterns  Unified Debugging Pattern Language  Domain Pattern Hierarchy  Periodic Table of Software Defects © 2011 Memory Dump Analysis Services
  • 18. Structural Memory Patterns  Examples: Memory Region and Region Boundary  DumpAnalysis.org © 2011 Memory Dump Analysis Services
  • 19. Domain Pattern Hierarchy Repeated patterns through the layers of software © 2011 Memory Dump Analysis Services
  • 20. Resources  DumpAnalysis.org  Pattern-Driven Memory Dump Analysis  Memory Dump and Trace Analysis: A Unified Pattern Approach  Advanced Software Debugging Reference: Vol 6 November, 2011 © 2011 Memory Dump Analysis Services Vol 5 April, 2011
  • 21. Q&A Please send your feedback using the contact form on DumpAnalysis.com © 2011 Memory Dump Analysis Services
  • 22. Thank you for attendance! © 2011 Memory Dump Analysis Services Join DA+TA Facebook Group