Debugging by Thinking: A Multidisciplinary Approach

Front Cover
Elsevier, Dec 3, 2003 - Computers - 600 pages
Debugging by Thinking: A Multi-Disciplinary Approach is the first book to apply the wisdom of six disciplines—logic, mathematics, psychology, safety analysis, computer science, and engineering—to the problem of debugging. It uses the methods of literary detectives such as Sherlock Holmes, the techniques of mathematical problem solving, the results of research into the cognitive psychology of human error, the root cause analyses of safety experts, the compiler analyses of computer science, and the processes of modern engineering to define a systematic approach to identifying and correcting software errors.

* Language Independent Methods: Examples are given in Java and C++
* Complete source code shows actual bugs, rather than contrived examples
* Examples are accessible with no more knowledge than a course in Data Structures and Algorithms requires
* A "thought process diary" shows how the author actually resolved the problems as they occurred
 

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

Chapter 1 Introduction
1
Chapter 2 Sherlock Holmes
15
Chapter 3 Lord Peter Wimsey
33
Chapter 4 Professor Solomon
49
Chapter 5 Case Studies I
63
Chapter 6 Mathematical Problem Solving
175
Chapter 7 Debugging Strategies
189
Chapter 8 Debugging Heuristics
201
Chapter 12 The Way of the Psychologist
387
Chapter 13 The Way of the Engineer
433
Chapter 14 The Way of the Computer Scientist
473
Chapter 15 Get Back to Work
509
Glossary
515
A RootCause Checklist
517
B Books about Debugging
525
C Software Recommendations
537

Chapter 9 Debugging Tactics
221
Chapter 10 Case Studies II
257
Chapter 11 The Way of the Safety Expert
361

Other editions - View all

Common terms and phrases

About the author (2003)

Robert Metzger has worked for over 28 years as an applications programmer, systems programmer, manager of software training, manager of applications programmers, and manager of systems programmers, for several vendors of software and computer systems. He is currently a Senior Engineer in the High Performance Technical Computing Division of Hewlett-Packard Company. His professional interests include optimizing compilers, software development tools, and designing GUI applications. He has written books on computer science as well as numerous articles for popular magazines and academic journals on optimizing compilers, programming languages, and programming methodologies.

Bibliographic information