第一章 介绍 1
1.1 软件工程 1
1.2 UNIX系统和C语言 1
1.3 软件工程中的技术状态 2
1.4 软件产品、项目和方法 2
1.5 软件项目大小和类型 3
1.6 软件生命周期和生命周期模型 4
1.7 软件质量的属性 5
1.8 本书的目的和组织 6
第二章 概念开发和需求定义 8
2.1 概念开发阶段 8
2.2 需求定义阶段 10
2.3 生命周期中早期阶段的原型辅助 13
2.4 结论 19
3.1 软件设计概念和原理 20
第三章 软件设计过程 20
3.2 软件设计方法 24
3.3 图形设计工具 31
3.4 程序设计语言 33
3.5 设计文档的内容 33
第四章 程序可读性 35
4.1 内部文档 35
4.2 外部文档 49
4.3 结论 50
第五章 低级编程 51
5.1 参数化 51
5.2 C预处理器 54
5.3 C的函数库 57
5.4 表达式 58
5.5 C中的类型 60
5.6 改进效率 61
5.7 结论 63
6.1 C中模块的实现 64
第六章 高级编程 64
6.2 C模块化的例子 68
6.3 模块大小和复杂度标准 71
6.4 结论 72
第七章 生命周期中编码阶段的UNIX工具 73
7.1 程序生成工具 73
7.2 静态分析工具 83
7.3 动态分析工具 86
7.4 结论 91
第八章 软件测试和质量保证 92
8.1 软件质量保证 92
8.2 审核 93
8.3 代码审查 95
8.4 进程检查 98
8.5 测试过程 99
8.7 测试资源的分配 100
8.6 谁应当来测试软件 100
8.8 回归测试 108
8.9 测试ccount 110
第九章 软件维护和软件结构管理 115
9.1 软件维护 115
9.2 软件结构管理 118
第十章 未来趋势 126
10.1 UNIX编程环境的革新 126
10.2 用户界面 127
10.3 数据库 128
10.4 项目管理支持 129
10.5 文档生成支持 129
10.6 前沿支持 130
10.7 小结 130
附录Account项目文档 131
附录Bccount源代码 162
附录C工程文档样板 194
附录DC编程实践规范 200