Why Programs Fail


Product Description
Why Programs Fail is about bugs in computer programs, how to find them, how to reproduce them, and how to fix them in such a way that they do not occur anymore. This is the first comprehensive book on systematic debugging and covers a wide range of tools and techniques ranging from hands-on observation to fully automated diagnoses, and includes instructions for building automated debuggers. This discussion is built upon a solid theory of how failures occur, rather than relying on seat-of-the-pants techniques, which are of little help with large software systems or to those learning to program. The author, Andreas Zeller, is well known in the programming community for creating the GNU Data Display Debugger (DDD), a tool that visualizes the data structures of a program while it is running.* Winner of a 2006 Jolt Productivity Award for Technical Books* Shows how to reproduce software failures faithfully, how to isolate what is important about the failure, and to discover what caused it* Describes how to fix the program in the best possible way, and shows how to create your own automated debugging tools* Includes exercises and extensive references for further study, and a companion website with source code for all examples and additional debugging resourcesWhy Programs Fail Review
"Why programs fail" attempts to provide a systematic approach to finding, reproducing, and fixing programming errors, with a strong focus on the automation of many debugging techniques. Zeller covers the whole debugging process:- Problem-tracking systems are discussed, not only as tools for tracking and managing problem reports, but also as valuable idea repositories and requirements management systems.
- You will also find advice on how to set up automated tests that support debugging tasks.
- Apparently straightforward, reproducing problems can be harder that it seems, as "heisenbugs" testify (i.e. when debugging tools interfere with the problem so that it disappears when it is being observed).
- Delta debugging, an interesting application of the classical divide-and-conquer strategy, provides an automated method to simplify test cases (and focus on the truly relevant part of the problem).
- Applying the scientific method is the right way to debug (i.e. reasoning about programs to create hypotheses and performing experiments to validate or discard those hypotheses). Here, the use of a debugging logbook helps to make debugging explicit by writing down all hypotheses and observations.
- Plenty of techniques for creating hypothesis and determining the failure cause of an observed problem are covered, from static analysis tools and introducing assertions, to experimental techniques that try to make debugging more efficient.
"Why programs fail" is outstanding. Many interesting (and practical) ideas are explored. If you would like to improve your detective skills, this book is highly recommended.
Most of the consumer Reviews tell that the "Why Programs Fail" are high quality item. You can read each testimony from consumers to find out cons and pros from Why Programs Fail ...

No comments:
Post a Comment