Debugging by thinking a multidisciplinary approach
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 techni...
Main Author: | |
---|---|
Format: | eBook |
Language: | Inglés |
Published: |
Amsterdam ; Boston :
Elsevier Digital Press
c2004.
|
Edition: | 1st edition |
Series: | HP Technologies
|
Subjects: | |
See on Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009627176606719 |
Table of Contents:
- Front Cover; Debugging by Thinking: A Multidisciplinary Approach; Copyright Page; Contents; Preface; Why I Wrote This Book; Who Should Read This Book; How to Read This Book; Typographical and Grammatical Conventions; Acknowledgments; Permissions; Chapter 1. Introduction; 1.1 The nature of the problem; 1.2 The six ways of thinking; 1.3 The two eras of software engineering; 1.4 Debugging and development methodologies; 1.5 Review; Chapter 2. Sherlock Holmes; 2.1 Preview; 2.2 Worldview of the detective; 2.3 Detective fiction; 2.4 The character of Sherlock Holmes
- 2.5 The methods of Sherlock Holmes2.6 Review; Chapter 3. Lord Peter Wimsey; 3.1 Preview; 3.2 The character of Lord Peter Wimsey; 3.3 The methods of Lord Peter Wimsey; 3.4 Review; Chapter 4. Professor Solomon; 4.1 Preview; 4.2 The methods of Professor Solomon; 4.3 Review; Chapter 5. Case Studies I; 5.1 Case Study I; Chapter 6. Mathematical Problem Solving; 6.1 Preview; 6.2 Worldview of the mathematician; 6.3 Polya and mathematical heuristics; 6.4 Mathematical proof texts; 6.5 Schoenfeld and mathematical problem solving; 6.6 Applying Schoenfeld to debugging; 6.7 Review
- Chapter 7. Debugging Strategies7.1 Preview; 7.2 Evaluation mechanisms; 7.3 Binary search strategy; 7.4 Greedy search strategy; 7.5 Breadth-first search strategy; 7.6 Depth-first search strategy; 7.7 Program slice strategy; 7.8 Deductive-analysis strategy; 7.9 Inductive-analysis strategy; 7.10 Choosing a strategy; 7.11 Review; Chapter 8. Debugging Heuristics; 8.1 Preview; 8.2 Stabilize the program; 8.3 Create a test case; 8.4 Reduce the required input; 8.5 Categorize the problem; 8.6 Describe the problem; 8.7 Explain the problem to someone else; 8.8 Recall a similar problem; 8.9 Draw a diagram
- 8.10 Choose a hypothesis from historical data8.11 Review; Chapter 9. Debugging Tactics; 9.1 Preview; 9.2 Read the source code; 9.3 Write a unit test; 9.4 Display variable values; 9.5 Display execution messages; 9.6 Display procedure arguments; 9.7 Generate a flow trace; 9.8 Generate a variable snapshot; 9.9 Generate memory dump; 9.10 Force variable value; 9.11 Assert assumptions; 9.12 Check data structures; 9.13 Display data structures; 9.14 Use runtime subscript checking; 9.15 Use runtime stack checking; 9.16 Use runtime heap checking; 9.17 Initialize global variables
- 9.18 Initialize local variables9.19 Change storage class; 9.20 Use a different compiler; 9.21 Compile to assembly code; 9.22 Execute on a different platform; 9.23 Review; Chapter 10. Case Studies II; 10.1 Case Study 2; 10.2 Case Study 3; Chapter 11. The Way of the Safety Expert; 11.1 Preview; 11.2 Worldview of the safety expert; 11.3 Root-cause analysis; 11.4 Software-defect root causes; 11.5 Cause-and-event charting; 11.6 Fault-tree analysis; 11.7 Review; Chapter 12. The Way of the Psychologist; 12.1 Preview; 12.2 Worldview of the psychologist; 12.3 Models of human cognition
- 12.4 Defining and classifying human error