Code Quality

The Open Source Perspective

Specificaties
E-book, blz. | Engels
Pearson Education | e druk, 2006
ISBN13: 9780768684858
Rubricering
Juridisch :
Pearson Education e druk, 2006 9780768684858
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

Page 26: How can I avoid off-by-one errors? Page 143: Are Trojan Horse attacks for real? Page 158: Where should I look when my application can't handle its workload? Page 256: How can I detect memory leaks? Page 309: How do I target my application to international markets? Page 394: How should I name my code's identifiers? Page 441: How can I find and improve the code coverage of my tests?

Diomidis Spinellis' first book, Code Reading, showed programmers how to understand and modify key functional properties of software. Code Quality focuses on non-functional properties, demonstrating how to meet such critical requirements as reliability, security, portability, and maintainability, as well as efficiency in time and space.

Spinellis draws on hundreds of examples from open source projects--such as the Apache web and application servers, the BSD Unix systems, and the HSQLDB Java database--to illustrate concepts and techniques that every professional software developer will be able to appreciate and apply immediately.

Complete files for the open source code illustrated in this book are available online at: http://www.spinellis.gr/codequality/

Specificaties

ISBN13:9780768684858
Taal:Engels
Bindwijze:e-book

Inhoudsopgave

<p style="MARGIN: 0px">List of Tables&nbsp;&nbsp;&nbsp;&nbsp; xv<br>List of Figures &nbsp;&nbsp;&nbsp;&nbsp;xvii<br>Foreword&nbsp;&nbsp;&nbsp;&nbsp;xxiii<br>Preface &nbsp;&nbsp;&nbsp;&nbsp;xxv</p> <p style="MARGIN: 0px">Chapter 1: Introduction &nbsp;&nbsp;&nbsp;&nbsp;1</p> <p style="MARGIN: 0px">1.1 Software Quality &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1<br>1.2 How to Read This Book&nbsp;&nbsp;&nbsp;&nbsp; 9</p> Chapter 2: Reliability &nbsp;&nbsp;&nbsp;&nbsp;17 <p style="MARGIN: 0px">2.1 Input Problems &nbsp;&nbsp;&nbsp;&nbsp; 17<br>2.2 Output Problems&nbsp;&nbsp;&nbsp;&nbsp; 21<br>2.3 Logic Problems &nbsp;&nbsp;&nbsp;&nbsp; 26<br>2.4 Computation Problems &nbsp;&nbsp;&nbsp;&nbsp; 42<br>2.5 Concurrency and Timing Problems &nbsp;&nbsp;&nbsp;&nbsp;51<br>2.6 Interface Problems&nbsp;&nbsp;&nbsp;&nbsp; 56<br>2.7 Data-Handling Problems &nbsp;&nbsp;&nbsp;&nbsp; 69<br>2.8 Fault Tolerance&nbsp;&nbsp;&nbsp;&nbsp; 85</p> Chapter 3: Security &nbsp;&nbsp;&nbsp;&nbsp;101 <p style="MARGIN: 0px">3.1 Vulnerable Code &nbsp;&nbsp;&nbsp;&nbsp;102<br>3.2 The Buffer Overflow &nbsp;&nbsp;&nbsp;&nbsp; 106<br>3.3 Race Conditions &nbsp;&nbsp;&nbsp;&nbsp;112<br>3.4 Problematic APIs &nbsp;&nbsp;&nbsp;&nbsp;115<br>3.5 Untrusted Input &nbsp;&nbsp;&nbsp;&nbsp;125<br>3.6 Result Verification &nbsp;&nbsp;&nbsp;&nbsp;131<br>3.7 Data and Privilege Leakage &nbsp;&nbsp;&nbsp;&nbsp; 134<br>3.8 Trojan Horse &nbsp;&nbsp;&nbsp;&nbsp; 143<br>3.9 Tools &nbsp;&nbsp;&nbsp;&nbsp; 146</p> Chapter 4: Time Performance &nbsp;&nbsp;&nbsp;&nbsp;151 <p style="MARGIN: 0px">4.1 Measurement Techniques &nbsp;&nbsp;&nbsp;&nbsp; 156<br>4.2 Algorithm Complexity &nbsp;&nbsp;&nbsp;&nbsp;173<br>4.3 Stand-Alone Code &nbsp;&nbsp;&nbsp;&nbsp; 179<br>4.4 Interacting with the Operating System &nbsp;&nbsp;&nbsp;&nbsp; 182<br>4.5 Interacting with Peripherals&nbsp;&nbsp;&nbsp;&nbsp; 190<br>4.6 Involuntary Interactions &nbsp;&nbsp;&nbsp;&nbsp;191<br>4.7 Caching &nbsp;&nbsp;&nbsp;&nbsp; 194</p> Chapter 5: Space Performance&nbsp;&nbsp;&nbsp;&nbsp; 207 <p style="MARGIN: 0px">5.1 Data &nbsp;&nbsp;&nbsp;&nbsp; 209<br>5.2 Memory Organization &nbsp;&nbsp;&nbsp;&nbsp; 227<br>5.3 Memory Hierarchies &nbsp;&nbsp;&nbsp;&nbsp; 231<br>5.4 The Process/Operating System Interface&nbsp;&nbsp;&nbsp;&nbsp; 239<br>5.5 Heap Memory Management &nbsp;&nbsp;&nbsp;&nbsp; 246<br>5.6 Stack Memory Management&nbsp;&nbsp;&nbsp;&nbsp; 264<br>5.7 Code&nbsp;&nbsp;&nbsp;&nbsp; 274</p> Chapter 6: Portability &nbsp;&nbsp;&nbsp;&nbsp;289 <p style="MARGIN: 0px">6.1 Operating Systems &nbsp;&nbsp;&nbsp;&nbsp;290<br>6.2 Hardware and Processor Architectures &nbsp;&nbsp;&nbsp;&nbsp;296<br>6.3 Compilers and Language Extensions &nbsp;&nbsp;&nbsp;&nbsp;302<br>6.4 Graphical User Interfaces &nbsp;&nbsp;&nbsp;&nbsp; 307<br>6.5 Internationalization and Localization &nbsp;&nbsp;&nbsp;&nbsp; 309</p> Chapter 7: Maintainability &nbsp;&nbsp;&nbsp;&nbsp;325 <p style="MARGIN: 0px">7.1 Measuring Maintainability &nbsp;&nbsp;&nbsp;&nbsp; 326<br>7.2 Analyzability &nbsp;&nbsp;&nbsp;&nbsp;351<br>7.3 Changeability &nbsp;&nbsp;&nbsp;&nbsp; 403<br>7.4 Stability &nbsp;&nbsp;&nbsp;&nbsp;418<br>7.5 Testability &nbsp;&nbsp;&nbsp;&nbsp; 432<br>7.6 Effects of the Development Environment &nbsp;&nbsp;&nbsp;&nbsp; 451</p> Chapter 8: Floating-Point Arithmetic &nbsp;&nbsp;&nbsp;&nbsp;465 <p style="MARGIN: 0px">8.1 Floating-Point Representation &nbsp;&nbsp;&nbsp;&nbsp; 466<br>8.2 Rounding &nbsp;&nbsp;&nbsp;&nbsp; 478<br>8.3 Overflow &nbsp;&nbsp;&nbsp;&nbsp; 481<br>8.4 Underflow &nbsp;&nbsp;&nbsp;&nbsp; 483<br>8.5 Cancellation &nbsp;&nbsp;&nbsp;&nbsp; 487<br>8.6 Absorption &nbsp;&nbsp;&nbsp;&nbsp; 491<br>8.7 Invalid Operations &nbsp;&nbsp;&nbsp;&nbsp;495</p> <p style="MARGIN: 0px">Appendix A: Source Code Credits&nbsp;&nbsp;&nbsp;&nbsp; 503</p> <p style="MARGIN: 0px">Bibliography&nbsp;&nbsp;&nbsp;&nbsp; 505<br>Index&nbsp;&nbsp;&nbsp;&nbsp; 523<br>Author Index &nbsp;&nbsp;&nbsp;&nbsp;563 <br><br></p> <p style="MARGIN: 0px"></p>

Net verschenen

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Code Quality