图书介绍

代码质量【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

代码质量
  • (希)斯宾耐立思著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121174216
  • 出版时间:2012
  • 标注页数:471页
  • 文件大小:42MB
  • 文件页数:509页
  • 主题词:程序设计

PDF下载


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

下载说明

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

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

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

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

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

图书目录

第1章 导论1

1.1 软件质量1

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

1.1.2 质量属性4

1.1.3 紧张的世界6

1.2 如何阅读本书8

1.2.1 排版约定8

1.2.2 图示9

1.2.3 图表11

1.2.4 汇编代码11

1.2.5 练习11

1.2.6 补充材料12

1.2.7 工具12

第2章 可靠性15

2.1 输入问题16

2.2 输出问题19

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

2.2.2 错误时刻的正确结果22

2.2.3 错误的格式22

2.3 逻辑问题24

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

2.3.2 被忽视的极端情况25

2.3.3 被遗漏的情况、条件测试或步骤27

2.3.4 被遗漏的方法32

2.3.5 多余的功能35

2.3.6 误解37

2.4 计算问题39

2.4.1 不正确的算法或计算39

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

2.4.3 表达式中不正确的运算符44

2.4.4 运算符优先级问题45

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

2.5 并行性与时序问题48

2.6 接口问题53

2.6.1 不正确的例程或参数53

2.6.2 没有测试返回值55

2.6.3 未做错误探查或恢复58

2.6.4 资源泄漏60

2.6.5 面向对象功能的误用63

2.7 数据处理问题64

2.7.1 不正确的数据初始化64

2.7.2 引用错误的数据变量66

2.7.3 越界引用70

2.7.4 不正确的下标使用72

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

2.7.6 错误的数据打包与解包75

2.7.7 不一致的数据77

2.8 容错79

2.8.1 管理策略79

2.8.2 空间冗余81

2.8.3 时间冗余83

2.8.4 可复原性84

第3章 安全性93

3.1 脆弱代码94

3.2 缓冲区溢出98

3.3 竞态条件103

3.4 问题API106

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

3.4.2 格式字符串漏洞108

3.4.3 路径和命令行解释器元字符漏洞110

3.4.4 临时文件111

3.4.5 不适合做加密用途的函数112

3.4.6 可篡改数据114

3.5 不可信输入115

3.6 结果验证120

3.7 数据与特权泄漏124

3.7.1 数据泄漏124

3.7.2 特权泄漏128

3.7.3 Java的方案129

3.7.4 分离特权代码131

3.8 特洛伊木马133

3.9 工具135

第4章 时间性能139

4.1 测量技术143

4.1.1 负载描述144

4.1.2 受限于I/O的任务145

4.1.3 受限于内核的任务148

4.1.4 受限于CPU的任务和剖析工具149

4.2 算法复杂性158

4.3 独立的代码163

4.4 与操作系统交互167

4.5 与外设交互173

4.6 非故意的交互175

4.7 缓存178

4.7.1 一个简单的系统调用缓存178

4.7.2 替换策略180

4.7.3 预先计算结果182

第5章 空间性能189

5.1 数据190

5.1.1 基本数据类型191

5.1.2 聚合数据类型194

5.1.3 对齐196

5.1.4 对象202

5.2 内存组织206

5.3 内存层级结构210

5.3.1 主存及其高速缓存211

5.3.2 磁盘缓存和后备存储器214

5.3.3 交换区和基于文件的磁盘存储216

5.4 进程/操作系统接口217

5.4.1 内存分配218

5.4.2 内存映射219

5.4.3 数据映射219

5.4.4 代码映射220

5.4.5 访问硬件资源221

5.4.6 进程间通信222

5.5 堆内存管理224

5.5.1 堆碎片225

5.5.2 堆剖析230

5.5.3 内存泄漏233

5.5.4 垃圾回收237

5.6 栈内存管理239

5.6.1 栈帧240

5.6.2 栈空间243

5.7 代码248

5.7.1 设计期250

5.7.2 编码期252

5.7.3 构建期253

第6章 可移植性261

6.1 操作系统262

6.2 硬件与处理器架构267

6.2.1 数据类型的属性267

6.2.2 数据存储269

6.2.3 特定于机器的代码271

6.3 编译器与语言扩展273

6.3.1 编译器错误273

6.4 图形用户界面(GUI)277

6.5 国际化与本地化279

6.5.1 字符集280

6.5.2 区域282

6.5.3 消息285

第7章 可维护性293

7.1 测量可维护性294

7.1.1 可维护性指数294

7.1.2 面向对象程序的度量300

7.1.3 包的相关性度量309

7.2 可分析性316

7.2.1 一致性318

7.2.2 表达式格式化319

7.2.3 语句格式化320

7.2.4 命名惯例321

7.2.5 语句级注释324

7.2.6 版本注释326

7.2.7 视觉结构:块与缩进327

7.2.8 表达式、函数以及方法的长度328

7.2.9 控制结构331

7.2.10 布尔表达式335

7.2.11 可辨认性与内聚性337

7.2.12 依赖和耦合339

7.2.13 代码块注释351

7.2.14 数据声明注释354

7.2.15 恰当的标识符名字355

7.2.16 依赖的位置356

7.2.17 不确定性357

7.2.18 可复查性358

7.3 可变性363

7.3.1 识别363

7.3.2 分离368

7.4 稳定性377

7.4.1 封装与数据隐藏378

7.4.2 数据抽象381

7.4.3 类型检查383

7.4.4 编译时断言386

7.4.5 运行时检查和查看时断言389

7.5 可测试性390

7.5.1 单元测试391

7.5.2 集成测试394

7.5.3 系统测试396

7.5.4 测试覆盖度分析398

7.5.5 偶发性测试401

7.6 开发环境的影响406

7.6.1 增量构建407

7.6.2 调整构建性能410

第8章 浮点运算417

8.1 浮点数表示418

8.1.1 量度误差420

8.1.2 舍入421

8.1.3 内存格式424

8.1.4 规格化和隐含的一位425

8.1.5 阶码偏移425

8.1.6 负数426

8.1.7 反向规格化数426

8.1.8 特殊值427

8.2 舍入428

8.3 溢出432

8.4 下溢434

8.5 消去437

8.6 合并441

8.7 无效运算445

附录A 源代码致谢人员名单453

参考文献455

热门推荐