Why Programs Fail: A Guide to Systematic Debugging
Autor Andreas Zelleren Limba Engleză Paperback – 22 iul 2009
Observăm în practica dezvoltării software o mutare critică de la intuiție la metodologie, iar Why Programs Fail de Andreas Zeller reprezintă pilonul acestei transformări. Depanarea nu mai este privită ca o „artă neagră”, ci ca o disciplină riguroasă, ancorată în ingineria software modernă. Metodologia propusă de Zeller se concentrează pe o abordare științifică: formularea ipotezelor, observarea faptelor și izolarea sistematică a defectelor prin tehnici precum „Delta Debugging”.
Remarcăm structura progresivă a lucrării, care ghidează cititorul de la înțelegerea modului în care apar eșecurile, până la mecanisme complexe de urmărire a originilor și detectarea anomaliilor. Cuprinsul reflectă un flux logic, începând cu reproducerea problemelor și terminând cu izolarea lanțurilor cauză-efect și corectarea defectelor. Spre deosebire de alte resurse, textul este neutru din punctul de vedere al produsului, fiind aplicabil oricărui limbaj de programare, deși oferă exemple concrete în Python sau Java și utilizează instrumente precum Eclipse și Mozilla.
Cititorul care a aplicat ideile din The Debugger's Handbook de J.F. DiMarzio va găsi aici o aprofundare teoretică și practică mult mai vastă, trecând de la bunele practici de scriere a codului la automatizarea procesului de diagnoză. Dacă în lucrările sale anterioare, precum Hardware and Software: Verification and Testing sau Compiler Construction, Andreas Zeller explora rigoarea verificării formale și arhitectura limbajelor, în acest volum el aduce acea expertiză în zona pragmatică a mentenanței software, oferind instrumente pentru a prezice și preveni erorile înainte ca acestea să ajungă în producție.
Preț: 299.06 lei
Preț vechi: 489.31 lei
-39%
Carte tipărită la comandă
Livrare economică 14-28 mai
Livrare express 16-22 aprilie pentru 136.17 lei
Specificații
ISBN-10: 0123745152
Pagini: 544
Ilustrații: Approx. 200 illustrations
Dimensiuni: 191 x 235 x 23 mm
Greutate: 0.73 kg
Ediția:2. Auflage
Editura: ELSEVIER SCIENCE
Public țintă
Computer programmers, software developers, analysts and testersDe ce să citești această carte
Recomandăm această carte programatorilor și testerilor care doresc să elimine presupunerile din procesul de debugging. Prin stăpânirea tehnicilor de izolare a cauzelor și utilizarea instrumentelor de analiză statică și dinamică prezentate, cititorul câștigă o metodă reproductibilă de a rezolva defecte complexe. Este o investiție în productivitate, transformând orele de căutări haotice într-un proces logic și eficient.
Descriere scurtă
The fully updated second edition includes 100+ pages of new material, including new chapters on Verifying Code, Predicting Erors, and Preventing Errors. Cutting-edge tools such as FindBUGS and AGITAR are explained, techniques from integrated environments like Jazz.net are highlighted, and all-new demos with ESC/Java and Spec#, Eclipse and Mozilla are included.
This complete and pragmatic overview of debugging is authored by Andreas Zeller, the talented researcher who developed the GNU Data Display Debugger(DDD), a tool that over 250,000 professionals use to visualize the data structures of programs while they are running. Unlike other books on debugging, Zeller's text is product agnostic, appropriate for all programming languages and skill levels.
The book explains best practices ranging from systematically tracking error reports, to observing symptoms, reproducing errors, and correcting defects. It covers a wide range of tools and techniques from hands-on observation to fully automated diagnoses, and also explores the author's innovative techniques for isolating minimal input to reproduce an error and for tracking cause and effect through a program. It even includes instructions on how to create automated debugging tools.
The text includes exercises and extensive references for further study, and a companion website with source code for all examples and additional debugging resources is available.
- The new edition of this award-winning productivity-booster is for any developer who has ever been frustrated by elusive bugs
- Brand new chapters demonstrate cutting-edge debugging techniques and tools, enabling readers to put the latest time-saving developments to work for them
- Learn by doing. New exercises and detailed examples focus on emerging tools, languages and environments, including AGITAR, FindBUGS, Python and Eclipse
Cuprins
2. Tracking Problems
3. Making Programs Fail
4. Reproducing Problems
5. Simplifying Problems
6. Scientific Debugging
7. Deducing Errors
8. Observing Facts
9. Tracking Origins
10. Asserting Expectations
11. Detecting Anomalies
12. Causes and Effects
13. Isolating Failure Causes
14. Isolating Cause-Effect Chains
15. Fixing the Defect
Appendix: Formal Definitions
A.1 Delta Debugging
A.2 Memory Graphs
A.3 Cause-Effect Chains
Recenzii
"In this book, Andreas Zeller does an excellent job introducing useful debugging techniques and tools invented in both academia and industry. The book is easy to read and actually very fun as well. It will not only help you discover a new perspective on debugging, but it will also teach you some fundamental static and dynamic program analysis techniques in plain language." --Miryung Kim, Software Developer, Motorola Korea
"Today every computer program written is also debugged, but debugging is not a widely studied or taught skill. Few books beyond this one present a systematic approach to finding and fixing programming errors." --James Larus, Microsoft Research
"From the author of ODD, the famous data display debugger, now comes the definitive book on debugging. Zeller's book is chock-full with advice, insight, and tools to track down defects in programs, for all levels of experience and any programming language. The book is lucidly written, explaining the principles of every technique without boring the reader with minutiae. And best of all, at the end of each chapter it tells you where to download all those fancy tools. A great book for the software professional as well as the student interested in the frontiers of automated debugging." --Walter F. Tichy, Professor, University Karlsruhe, Germany
"Andreas Zeller's Why Programs Fail lays an excellent foundation far practitioners, educators, and researchers alike. Using a disciplined approach based on the scientific method, Zeller provides deep insights, detailed approaches, and illustrative examples." --David Notkin, Professor Computer Science & Engineering, University of Washington