点此搜书

当前位置:高质量程序设计艺术pdf电子书下载 > 工业技术
高质量程序设计艺术
  • 作 者:(希腊)DIOMIDIS SPINELLIS著;韩东海译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:9787115167934
  • 标注页数:384 页
  • PDF页数:399 页
  • 请阅读订购服务说明与试读!

文档类型

价格(积分)

购买连接

试读

PDF格式

12

立即购买

点击试读

订购服务说明

1、本站所有的书默认都是PDF格式,该格式图书只能阅读和打印,不能再次编辑。

2、除分上下册或者多册的情况下,一般PDF页数一定要大于标注页数才建议下单购买。【本资源399 ≥384页】

图书下载及付费说明

1、所有的电子图书为PDF格式,支持电脑、手机、平板等各类电子设备阅读;可以任意拷贝文件到不同的阅读设备里进行阅读。

2、电子图书在提交订单后一般半小时内处理完成,最晚48小时内处理完成。(非工作日购买会延迟)

3、所有的电子图书都是原书直接扫描方式制作而成。

第1章 概述 1

1.1 软件质量 1

1.1.1 用户、制造者和管理者眼中的质量 1

1.1.2 质量属性 4

1.1.3 紧张的世界 6

1.2 本书阅读指南 7

1.2.1 排版约定 8

1.2.2 图示 9

1.2.3 图表 10

1.2.4 汇编代码 10

1.2.5 练习 10

1.2.6 补充材料 10

1.2.7 工具 11

进阶阅读 11

第2章 可靠性 12

2.1 输入问题 12

2.2 输出问题 15

2.2.1 不完整输出或输出缺失 15

2.2.2 在错误的时刻输出的正确结果 17

2.2.3 错误的格式 18

2.3 逻辑问题 19

2.3.1 偏差为一的错误与循环迭代 19

2.3.2 被忽视的极端情况 20

2.3.3 被遗漏的情况、条件测试和步骤 21

2.3.4 被遗漏的方法 26

2.3.5 多余的功能 28

2.3.6 曲解 30

2.4 计算问题 32

2.4.1 不正确的算法或计算 32

2.4.2 表达式中错误的操作数 33

2.4.3 表达式中错误的运算符 35

2.4.4 运算符优先级问题 36

2.4.5 溢出、下溢和符号转换错误 37

2.5 并发与时序问题 39

2.6 接口问题 43

2.6.1 不正确的例程或参数 43

2.6.2 没有正确测试返回值 45

2.6.3 没有提供错误检测或恢复 47

2.6.4 资源泄漏 49

2.6.5 误用面向对象功能 52

2.7 数据处理问题 52

2.7.1 不正确的数据初始化 52

2.7.2 引用错误的数据变量 54

2.7.3 越界引用 57

2.7.4 不正确的下标使用 58

2.7.5 不正确的比例或数据单位 60

2.7.6 不正确的数据打包与解包 62

2.7.7 不一致的数据 63

2.8 容错 64

2.8.1 管理策略 65

2.8.2 空间冗余 66

2.8.3 时间冗余 68

2.8.4 可复原性 69

锦囊妙计 72

进阶阅读 75

第3章 安全性 77

3.1 脆弱代码 78

3.2 缓冲区溢出 81

3.3 竞态条件 85

3.4 问题API 87

3.4.1 容易出现缓冲区溢出的函数 87

3.4.2 格式字符串漏洞 89

3.4.3 路径与命令行解释器的元字符漏洞 90

3.4.4 临时文件 91

3.4.5 不适合密码用途的函数 92

3.4.6 可篡改数据 94

3.5 不可信输入 94

3.6 结果验证 99

3.7 数据与特权泄漏 102

3.7.1 数据泄漏 102

3.7.2 特权泄漏 104

3.7.3 Java的方法 106

3.7.4 分离特权代码 107

3.8 特洛伊木马 108

3.9 工具 110

锦囊妙计 111

进阶阅读 112

第4章 时间性能 113

4.1 测量技术 117

4.1.1 负载评定 117

4.1.2 受限于I/O的任务 118

4.1.3 受限于内核的任务 120

4.1.4 受限于CPU的任务与剖析工具 121

4.2 算法复杂性 128

4.3 独立的代码 133

4.4 与操作系统交互 135

4.5 与外设交互 141

4.6 “不请自来”的交互 142

4.7 高速缓存处理 144

4.7.1 一个简单的系统调用高速缓存 145

4.7.2 替换策略 146

4.7.3 预先计算结果 148

锦囊妙计 150

进阶阅读 151

第5章 空间性能 153

5.1 数据 154

5.1.1 基本数据类型 155

5.1.2 聚合数据类型 157

5.1.3 对齐 159

5.1.4 对象 163

5.2 内存组织 167

5.3 内存层次结构 170

5.3.1 主存及其高速缓存 171

5.3.2 磁盘高速缓存与分列内存 173

5.3.3 交换区与基于文件的磁盘存储 175

5.4 进程/操作系统接口 176

5.4.1 内存分配 176

5.4.2 内存映射 177

5.4.3 数据映射 178

5.4.4 代码映射 178

5.4.5 访问硬件资源 179

5.4.6 进程间通信 180

5.5 堆内存管理 181

5.5.1 堆碎片 182

5.5.2 堆剖析 187

5.5.3 内存泄漏 189

5.5.4 垃圾收集 193

5.6 栈内存管理 195

5.6.1 栈框架 195

5.6.2 栈空间 198

5.7 代码 203

5.7.1 设计时 205

5.7.2 编码时 206

5.7.3 构建时 207

锦囊妙计 209

进阶阅读 211

第6章 可移植性 213

6.1 操作系统 214

6.2 硬件与处理器体系结构 218

6.2.1 数据类型的属性 218

6.2.2 数据存储 219

6.2.3 特定于计算机的代码 221

6.3 编译器与语言扩展 222

6.4 图形用户界面 226

6.5 国际化与本地化 227

6.5.1 字符集 228

6.5.2 区域 230

6.5.3 消息 232

锦囊妙计 237

进阶阅读 237

第7章 可维护性 239

7.1 测量可维护性 239

7.1.1 可维护性指数 240

7.1.2 面向对象程序的度量 244

7.1.3 包的依赖度度量 252

7.2 可分析性 258

7.2.1 一致性 259

7.2.2 表达式的格式化 260

7.2.3 语句的格式化 261

7.2.4 命名习惯 262

7.2.5 语句级别的注释 264

7.2.6 版本注释 265

7.2.7 视觉结构:块与缩进 266

7.2.8 表达式、函数与方法的长度 267

7.2.9 控制结构 270

7.2.10 布尔表达式 273

7.2.11 可辨认性与内聚性 275

7.2.12 依赖与耦合 277

7.2.13 代码块注释 286

7.2.14 数据声明注释 289

7.2.15 正确的标识符名字 290

7.2.16 依赖的位置 290

7.2.17 不确定性 291

7.2.18 可审查性 292

7.3 可变性 297

7.3.1 识别 297

7.3.2 隔离 300

7.4 稳定性 308

7.4.1 封装与数据隐藏 308

7.4.2 数据抽象 311

7.4.3 类型检查 313

7.4.4 编译时断言 315

7.4.5 运行时检查与查看时断言 317

7.5 可测试性 318

7.5.1 单元测试 319

7.5.2 集成测试 321

7.5.3 系统测试 323

7.5.4 测试覆盖度分析 325

7.5.5 偶发性测试 327

7.6 开发环境的影响 331

7.6.1 增量构建 332

7.6.2 调整构建性能 334

锦囊妙计 335

进阶阅读 338

第8章 浮点运算 341

8.1 浮点表示法 341

8.1.1 量度误差 343

8.1.2 舍入 344

8.1.3 内存格式 346

8.1.4 规格化与隐含的一个位 347

8.1.5 阶码偏移 347

8.1.6 负数 348

8.1.7 反向规格化数 348

8.1.8 特殊值 349

8.2 舍入 350

8.3 溢出 353

8.4 下溢 354

8.5 相消 357

8.6 吸收 360

8.7 无效运算 363

锦囊妙计 367

进阶阅读 368

附录A 源代码致谢 369

参考文献 371

购买PDF格式(12分)
返回顶部