Code quality the open source perspective
副标题:无
作 者:(希)Diomidis Spinellis著;韩东海译
分类号:
ISBN:9787115167934
微信扫一扫,移动浏览光盘
简介
本书论述阅读与编写软件代码的方法,重点讨论软件代码的质量属性
,包括了软件系统的可靠性、可移植性、可用性、互操作性、适应性、可
信性以及可维护性等方面。着力培养软件工程师了解这些属性的能力,并
能编写出具备这些属性的优质代码。本书研究了来自于现有开源系统的真
实示例,并提供了有意义的练习以巩固读者的判断能力和技巧,使用了统
一建模语言来绘制所有图表。
本书适合各层次软件开发人员、管理人员和测试人员阅读。
目录
第1章 概述
1.1 软件质量
1.1.1 用户、制造者和管理者眼中的质量
1.1.2 质量属性
1.1.3 紧张的世界
1.2 本书阅读指南
1.2.1 排版约定
1.2.2 图示
1.2.3 图表
1.2.4 汇编代码
1.2.5 练习
1.2.6 补充材料
1.2.7 工具
进阶阅读
第2章 可靠性
2.1 输入问题
2.2 输出问题
2.2.1 不完整输出或输出缺失
2.2.2 在错误的时刻输出的正确结果
2.2.3 错误的格式
2.3 逻辑问题
2.3.1 偏差为一的错误与循环迭代
2.3.2 被忽视的极端情况
2.3.3 被遗漏的情况、条件测试和步骤
2.3.4 被遗漏的方法
2.3.5 多余的功能
2.3.6 曲解
2.4 计算问题
2.4.1 不正确的算法或计算
2.4.2 表达式中错误的操作数
2.4.3 表达式中错误的运算符
2.4.4 运算符优先级问题
2.4.5 溢出、下溢和符号转换错误
2.5 并发与时序问题
2.6 接口问题
2.6.1 不正确的例程或参数
2.6.2 没有正确测试返回值
2.6.3 没有提供错误检测或恢复
2.6.4 资源泄漏
2.6.5 误用面向对象功能
2.7 数据处理问题
2.7.1 不正确的数据初始化
2.7.2 引用错误的数据变量
2.7.3 越界引用
2.7.4 不正确的下标使用
2.7.5 不正确的比例或数据单位
2.7.6 不正确的数据打包与解包
2.7.7 不一致的数据
2.8 容错
2.8.1 管理策略
2.8.2 空间冗余
2.8.3 时间冗余
2.8.4 可复原性
锦囊妙计
进阶阅读
第3章 安全性
3.1 脆弱代码
3.2 缓冲区溢出
3.3 竞态条件
3.4 问题API
3.4.1 容易出现缓冲区溢出的函数
3.4.2 格式字符串漏洞
3.4.3 路径与命令行解释器的元字符漏洞
3.4.4 临时文件
3.4.5 不适合密码用途的函数
3.4.6 可篡改数据
3.5 不可信输入
3.6 结果验证
3.7 数据与特权泄漏
3.7.1 数据泄漏
3.7.2 特权泄漏
3.7.3 Java的方法
3.7.4 分离特权代码
3.8 特洛伊木马
3.9 工具
锦囊妙计
进阶阅读
第4章 时间性能
4.1 测量技术
4.1.1 负载评定
4.1.2 受限于I/O的任务
4.1.3 受限于内核的任务
4.1.4 受限于CPU的任务与剖析工具
4.2 算法复杂性
4.3 独立的代码
4.4 与操作系统交互
4.5 与外设交互
4.6 “不请自来”的交互
4.7 高速缓存处理
4.7.1 一个简单的系统调用高速缓存
4.7.2 替换策略
4.7.3 预先计算结果
锦囊妙计
进阶阅读
第5章 空间性能
5.1 数据
5.1.1 基本数据类型
5.1.2 聚合数据类型
5.1.3 对齐
5.1.4 对象
5.2 内存组织
5.3 内存层次结构
5.3.1 主存及其高速缓存
5.3.2 磁盘高速缓存与分列内存
5.3.3 交换区与基于文件的磁盘存储
5.4 进程/操作系统接口
5.4.1 内存分配
5.4.2 内存映射
5.4.3 数据映射
5.4.4 代码映射
5.4.5 访问硬件资源
5.4.6 进程间通信
5.5 堆内存管理
5.5.1 堆碎片
5.5.2 堆剖析
5.5.3 内存泄漏……
1.1 软件质量
1.1.1 用户、制造者和管理者眼中的质量
1.1.2 质量属性
1.1.3 紧张的世界
1.2 本书阅读指南
1.2.1 排版约定
1.2.2 图示
1.2.3 图表
1.2.4 汇编代码
1.2.5 练习
1.2.6 补充材料
1.2.7 工具
进阶阅读
第2章 可靠性
2.1 输入问题
2.2 输出问题
2.2.1 不完整输出或输出缺失
2.2.2 在错误的时刻输出的正确结果
2.2.3 错误的格式
2.3 逻辑问题
2.3.1 偏差为一的错误与循环迭代
2.3.2 被忽视的极端情况
2.3.3 被遗漏的情况、条件测试和步骤
2.3.4 被遗漏的方法
2.3.5 多余的功能
2.3.6 曲解
2.4 计算问题
2.4.1 不正确的算法或计算
2.4.2 表达式中错误的操作数
2.4.3 表达式中错误的运算符
2.4.4 运算符优先级问题
2.4.5 溢出、下溢和符号转换错误
2.5 并发与时序问题
2.6 接口问题
2.6.1 不正确的例程或参数
2.6.2 没有正确测试返回值
2.6.3 没有提供错误检测或恢复
2.6.4 资源泄漏
2.6.5 误用面向对象功能
2.7 数据处理问题
2.7.1 不正确的数据初始化
2.7.2 引用错误的数据变量
2.7.3 越界引用
2.7.4 不正确的下标使用
2.7.5 不正确的比例或数据单位
2.7.6 不正确的数据打包与解包
2.7.7 不一致的数据
2.8 容错
2.8.1 管理策略
2.8.2 空间冗余
2.8.3 时间冗余
2.8.4 可复原性
锦囊妙计
进阶阅读
第3章 安全性
3.1 脆弱代码
3.2 缓冲区溢出
3.3 竞态条件
3.4 问题API
3.4.1 容易出现缓冲区溢出的函数
3.4.2 格式字符串漏洞
3.4.3 路径与命令行解释器的元字符漏洞
3.4.4 临时文件
3.4.5 不适合密码用途的函数
3.4.6 可篡改数据
3.5 不可信输入
3.6 结果验证
3.7 数据与特权泄漏
3.7.1 数据泄漏
3.7.2 特权泄漏
3.7.3 Java的方法
3.7.4 分离特权代码
3.8 特洛伊木马
3.9 工具
锦囊妙计
进阶阅读
第4章 时间性能
4.1 测量技术
4.1.1 负载评定
4.1.2 受限于I/O的任务
4.1.3 受限于内核的任务
4.1.4 受限于CPU的任务与剖析工具
4.2 算法复杂性
4.3 独立的代码
4.4 与操作系统交互
4.5 与外设交互
4.6 “不请自来”的交互
4.7 高速缓存处理
4.7.1 一个简单的系统调用高速缓存
4.7.2 替换策略
4.7.3 预先计算结果
锦囊妙计
进阶阅读
第5章 空间性能
5.1 数据
5.1.1 基本数据类型
5.1.2 聚合数据类型
5.1.3 对齐
5.1.4 对象
5.2 内存组织
5.3 内存层次结构
5.3.1 主存及其高速缓存
5.3.2 磁盘高速缓存与分列内存
5.3.3 交换区与基于文件的磁盘存储
5.4 进程/操作系统接口
5.4.1 内存分配
5.4.2 内存映射
5.4.3 数据映射
5.4.4 代码映射
5.4.5 访问硬件资源
5.4.6 进程间通信
5.5 堆内存管理
5.5.1 堆碎片
5.5.2 堆剖析
5.5.3 内存泄漏……
Code quality the open source perspective
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×