introduction to pattern-driven software problem solving

22
Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services

Upload: dmitry-vostokov

Post on 13-Feb-2017

289 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Introduction to Pattern-Driven Software Problem Solving

Pattern-Driven Software Problem Solving

Presenter: Dmitry Vostokov Memory Dump Analysis Services

Page 2: Introduction to Pattern-Driven Software Problem Solving

Prerequisites

Experience in software troubleshooting and/or debugging

© 2011 Memory Dump Analysis Services

Page 3: Introduction to Pattern-Driven Software Problem Solving

Agenda (Summary) A Short History Basic Definitions Pattern Categories Future Research Directions

© 2011 Memory Dump Analysis Services

Page 4: Introduction to Pattern-Driven Software Problem Solving

DumpAnalysis.org*

5 Years!

* Now Includes: TraceAnalysis.org, www.ForensicAnalysis.org, and Victimware.org

© 2011 Memory Dump Analysis Services

Page 5: Introduction to Pattern-Driven Software Problem Solving

Agenda (Basic Definitions) Software Problems Software Patterns DA+TA Pattern Hybridization

© 2011 Memory Dump Analysis Services

Page 6: Introduction to Pattern-Driven Software Problem Solving

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?

Page 7: Introduction to Pattern-Driven Software Problem Solving

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

Page 8: Introduction to Pattern-Driven Software Problem Solving

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

Page 9: Introduction to Pattern-Driven Software Problem Solving

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

S P 3

Software Patterns3

Software Patterns3 - Structural - Behavioral - Debugware - Debugging

Page 10: Introduction to Pattern-Driven Software Problem Solving

Agenda (Pattern Categories) Software Behavior Debugware Tools Problem Workaround Unified Debugging

© 2011 Memory Dump Analysis Services

Page 11: Introduction to Pattern-Driven Software Problem Solving

Software Behavior Memory dump and software trace Examples: Spiking Thread, Discontinuity +200 patterns (DA+TA) DumpAnalysis.org

© 2011 Memory Dump Analysis Services

Page 12: Introduction to Pattern-Driven Software Problem Solving

DA: Software Behavior

Memory dump: a memory snapshot Definition, partial classification and

historical list Pattern identification case studies

© 2011 Memory Dump Analysis Services

Page 13: Introduction to Pattern-Driven Software Problem Solving

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

Page 15: Introduction to Pattern-Driven Software Problem Solving

Problem Workaround

Troubleshooting when debugging is not an option

Example: Frozen Process Patterns DumpAnalysis.org

© 2011 Memory Dump Analysis Services

Page 16: Introduction to Pattern-Driven Software Problem Solving

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

Page 17: Introduction to Pattern-Driven Software Problem Solving

Agenda (Future Directions) Structural Memory Patterns Unified Debugging Pattern Language Domain Pattern Hierarchy Periodic Table of Software Defects

© 2011 Memory Dump Analysis Services

Page 19: Introduction to Pattern-Driven Software Problem Solving

Domain Pattern Hierarchy Repeated patterns through the layers of software

© 2011 Memory Dump Analysis Services

Page 21: Introduction to Pattern-Driven Software Problem Solving

Q&A

Please send your feedback using the contact form on DumpAnalysis.com

© 2011 Memory Dump Analysis Services

Page 22: Introduction to Pattern-Driven Software Problem Solving

Thank you for attendance!

© 2011 Memory Dump Analysis Services

Join DA+TA Facebook Group