Synopses & Reviews
"This comprehensive book on debugging techniques is a must-read for all novice programmers and provides a good value for advanced software developers. Debugging by Thinking describes various approaches to debugging and fills in a long-time gap in the software engineering library.
'To err is human'--software developers may know this fact better than other engineers. Debugging offers the only help for code errors, and this book analyses it as a mental discipline. After reading this book, your debugging will no longer be an ad hoc activity, and will become better organized and more efficient."— Dr. Piotr Findeisen, Systems & VLSI Technology Division, Hewlett-Packard Company
"Buy a copy of Debugging by Thinking for every programmer in your organization—it will help them to tackle debugging in a thoughtful, systematic, and effective way."—Richard Goldhor, VP of Engineering, Enounce, Inc.
Debugging by Thinking: A Multi-Disciplinary Approach 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.
Its unique features include
* 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
Synopsis
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
Synopsis
Creative approach to improving the productivity of both novice and veteran programmers
Synopsis
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
Synopsis
rs.
Its unique features include
* 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
Synopsis
ual 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
Synopsis
ses 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.
Its unique features include
* 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
About the Author
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.
High Performance Computing Division, Hewlett-Packard Company
Table of Contents
Introduction; Part I - The Way of the Detective: Sherlock Holmes; Lord Peter Wimsey; Professor Solomon; Case Studies I; Part II -- The Way of the Mathematician: Mathematical Problem Solving; Mathematical Strategies; Debugging Heuristics; Debugging Tactics; Case Studies II; Part III -- The Ways Less Traveled: The Way of the Safety Expert; The Way of the Psychologist; The Way of the Engineer; The Way of the Computer Scientist; Get Back to Work; Glossary; Root Cause Checklist; Bibliography: Software Development; Books about Thinking Skills; Books about Supporting Disciplines; Books about Debugging