前言 1
第一章 从科学和历史的角度看软件工程 1
1.1 软件经验 1
目录 1
第二章 软件现象学 7
2.1 软件生存周期 7
2.2 软件替换 9
2.3 生产率和创造力 10
2.4 程序的规模 11
2.5 软件物理学 12
2.6 布鲁克斯论文集 38
3.1 要求说明书 43
第三章 要求分析 43
3.2 “铁人”的例子 44
3.3 关于要求的工具 46
3.4 合同的要求说明书 49
第四章 软件设计 61
4.1 软件模块化目标 61
4.2 软件设计工具 62
4.3 设计过程 68
4.4 软件组装 70
4.5 软件设计语言Ada 81
5.1 程序设计问题 88
第五章 程序设计方法学 88
5.2 计算的状态 89
5.3 程序的探试推理 90
5.4 逐步求精法 91
5.5 程序推理的思维方法 93
5.6 程序的最弱前置条件和探试推理 96
5.7 提出有关程序的几个断言 101
5.8 程序验证的一个例子 108
5.9 程序的正确性 110
第六章 实例的研究 127
6.1 关系数据库 127
6.1.1 要求的详细说明 128
6.1.2 软件设计 130
6.1.3 程序设计 133
6.2 编译程序设计 136
6.2.1 编译程序的要求陈述 136
6.2.2 编译程序的设计 138
6.2.3 程序验证 139
第七章 测试 143
7.1 传统的测试方法 143
7.2 程序测试的理论 145
7.3 符号方法 147