图书介绍

代码质量 注释版PDF|Epub|txt|kindle电子书版本网盘下载

代码质量 注释版
  • (希)DIOMIDIS SPINELLIS著;康华 齐永升注释 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111226710
  • 出版时间:2008
  • 标注页数:630页
  • 文件大小:133MB
  • 文件页数:645页
  • 主题词:代码-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

代码质量 注释版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1 Introduction1

1.1 Software Quality1

1.1.1 Quality Through the Eyes of the User,the Builder,and the Manager2

1.1.2 Quality Attributes4

1.1.3 A World of Tensions7

1.2 How to Read This Book9

1.2.1 Typographical Conventions10

1.2.2 Diagrams11

1.2.3 Charts13

1.2.4 Assembly Code13

1.2.5 Exercises14

1.2.6 Supplementary Material14

1.2.7 Tools14

2 Reliability17

2.1 Input Problems17

2.2 Output Problems21

2.2.1 Incomplete or Missing Output21

2.2.2 Correct Results at the Wrong Time23

2.2.3 Wrong Format24

2.3 Logic Problems26

2.3.1 Off-by-One Errors and Loop Iterations26

2.3.2 Neglected Extreme Conditions27

2.3.3 Forgotten Cases,Condition Tests,or Steps29

2.3.4 Missing Methods34

2.3.5 Unnecessary Functionality37

2.3.6 Misinterpretation40

2.4 Computation Problems42

2.4.1 Incorrect Algorithm or Computation42

2.4.2 Incorrect Operand in an Expression43

2.4.3 Incorrect Operator in an Expression47

2.4.4 Operator Precedence Problems48

2.4.5 Overflow,Underflow,and Sign Conversion-Errors49

2.5 Concurrency and Timing Problems51

2.6 Interface Problems56

2.6.1 Incorrect Routine or Arguments57

2.6.2 Failure to Test a Return Value59

2.6.3 Missing Error Detection or Recovery62

2.6.4 Resource Leaks65

2.6.5 Misuse of Object-Oriented Facilities68

2.7 Data-Handling Problems69

2.7.1 Incorrect Data Initialization69

2.7.2 Referencing the Wrong Data Variable71

2.7.3 Out-of-Bounds References75

2.7.4 Incorrect Subscripting77

2.7.5 Incorrect Scaling or Data Units79

2.7.6 Incorrect Data Packing or Unpacking80

2.7.7 Inconsistent Data82

2.8 Fault Tolerance85

2.8.1 Management Strategy85

2.8.2 Redundancy in Space87

2.8.3 Redundancy in Time89

2.8.4 Recoverability90

3 Security101

3.1 Vulnerable Code102

3.2 The Buffer Overflow106

3.3 Race Conditions112

3.4 Problematic APIs115

3.4.1 Functions Susceptible to Buffer Overflows115

3.4.2 Format String Vulnerabilities118

3.4.3 Path and Shell Metacharacter Vulnerabilities119

3.4.4 Temporary Files121

3.4.5 Functions Unsuitable for Cryptographic Use122

3.4.6 Forgeable Data124

3.5 Untrusted Input125

3.6 Result Verification131

3.7 Data and Privilege Leakage134

3.7.1 Data Leakage135

3.7.2 Privilege Leakage138

3.7.3 The Java Approach140

3.7.4 Isolating Privileged Code141

3.8 Trojan Horse143

3.9 Tools146

4 Time Performance151

4.1 Measurement Techniques156

4.1.1 Workload Characterization157

4.1.2 I/O-Bound Tasks158

4.1.3 Kernel-Bound Tasks161

4.1.4 CPU-Bound Tasks and Profiling Tools163

4.2 Algorithm Complexity173

4.3 Stand-Alone Code179

4.4 Interacting with the Operating System182

4.5 Interacting with Peripherals190

4.6 Involuntary Interactions191

4.7 Caching194

4.7.1 A Simple System Call Cache195

4.7.2 Replacement Strategies197

4.7.3 Precomputing Results199

5 Space Performance207

5.1 Data209

5.1.1 Basic Data Types209

5.1.2 Aggregate Data Types213

5.1.3 Alignment215

5.1.4 Objects222

5.2 Memory Organization227

5.3 Memory Hierarchies231

5.3.1 Main Memory and Its Caches232

5.3.2 Disk Cache and Banked Memory235

5.3.3 Swap Area and File-Based Disk Storage238

5.4 The Process/Operating System Interface239

5.4.1 Memory Allocation239

5.4.2 Memory Mapping241

5.4.3 Data Mapping241

5.4.4 Code Mapping242

5.4.5 Accessing Hardware Resources244

5.4.6 Interprocess Communication244

5.5 Heap Memory Management246

5.5.1 Heap Fragmentation247

5.5.2 Heap Profiling254

5.5.3 Memory Leaks256

5.5.4 Garbage Collection262

5.6 Stack Memory Management264

5.6.1 The Stack Frame264

5.6.2 Stack Space269

5.7 Code274

5.7.1 Design Time276

5.7.2 Coding Time279

5.7.3 Build Time280

6 Portability289

6.1 Operating Systems290

6.2 Hardware and Processor Architectures296

6.2.1 Data Type Properties296

6.2.2 Data Storage298

6.2.3 Machine-Specific Code300

6.3 Compilers and Language Extensions302

6.3.1 Compiler Bugs302

6.4 Graphical User Interfaces307

6.5 Internationalization and Localization309

6.5.1 Character Sets309

6.5.2 Locale313

6.5.3 Messages316

7 Maintainability325

7.1 Measuring Maintainability326

7.1.1 The Maintainability Index327

7.1.2 Metrics for Object-Oriented Programs333

7.1.3 Dependency Metrics on Packages343

7.2 Analyzability351

7.2.1 Consistency353

7.2.2 Expression Formatting354

7.2.3 Statement Formatting356

7.2.4 Naming Conventions357

7.2.5 Statement-Level Comments360

7.2.6 Versioning Comments362

7.2.7 Visual Structure:Blocks and Indentation363

7.2.8 Length of Expressions,Functions,and Methods364

7.2.9 Control Structures368

7.2.10 Boolean Expressions372

7.2.11 Recognizability and Cohesion374

7.2.12 Dependencies and Coupling377

7.2.13 Code Block Comments389

7.2.14 Data Declaration Comments393

7.2.15 Appropriate Identifier Names394

7.2.16 Locality of Dependencies394

7.2.17 Ambiguity396

7.2.18 Reviewability397

7.3 Changeability403

7.3.1 Identification403

7.3.2 Separation408

7.4 Stability418

7.4.1 Encapsulation and Data Hiding419

7.4.2 Data Abstraction423

7.4.3 Type Checking425

7.4.4 Compile-Time Assertions428

7.4.5 Runtime Checks and Inspection-Time Assertions431

7.5 Testability432

7.5.1 Unit Testing433

7.5.2 Integration Testing437

7.5.3 System Testing439

7.5.4 Test Coverage Analysis441

7.5.5 Incidental Testing444

7.6 Effects of the Development Environment451

7.6.1 Incremental Builds452

7.6.2 Tuning Build Performance454

8 Floating-Point Arithmetic465

8.1 Floating-Point Representation466

8.1.1 Measuring Error469

8.1.2 Rounding470

8.1.3 Memory Format472

8.1.4 Normalization and the Implied 1-Bit474

8.1.5 Exponent Biasing474

8.1.6 Negative Numbers475

8.1.7 Denormal Numbers475

8.1.8 Special Values476

8.2 Rounding478

8.3 Overflow481

8.4 Underflow483

8.5 Cancellation487

8.6 Absorption491

8.7 Invalid Operations495

A Source Code Credits503

Bibliography505

Index523

Author Index563

注释571

热门推荐