第1章 程序设计方法学简介 1
1.1程序设计方法学的产生 1
1.2结构程序设计及其讨论的一些主要问题 2
习题 18
第2章 结构化程序 19
2.1什么是结构化程序 19
2.2结构化定理 23
2.3一些新的控制结构 31
习题 38
第3章 模块化程序设计 40
3.1 MODULA - 2语言中的模块化结构 40
3.2 ADA语言中的程序包 45
习题 48
第4章 面向对象的程序设计方法 50
4.1什么是面向对象的程序设计 50
4.2应用框架 57
4.3设计模式 103
4.4浅谈面向对象设计语言 134
习题 150
第5章 程序正确性证明 152
5.1概述 152
5.2不变式断言法 154
5.3子目标断言法 159
5.4公理化方法 161
5.5良序集方法 167
5.6计数器方法 172
习题 174
第6章 结构化程序的正确性证明 178
6.1正确性定理 178
6.2证明程序正确性的代数方法 180
6.3产生循环不变式的一种方法 188
习题 190
第7章 递归程序及其正确性证明 192
7.1迭代与递归 192
7.2递归程序的一种模型 192
7.3递归程序的正确性证明 199
习题 205
第8章 程序的形式推导技术 206
8.1谓词变换器及其性质 206
8.2面向目标的程序推导 208
8.3循环不变式的推导技术 220
习题 224
第9章 程序变换技术 226
9.1程序变换的基本思想和基本规则 226
9.2程序生成阶段 229
9.3程序改进阶段(Ⅰ) 232
9.4程序改进阶段(Ⅱ) 236
9.5程序改进阶段(Ⅲ) 241
9.6程序变换研究中的若干问题 243
习题 244
第10章 大型程序设计方法学基础 245
10.1抽象数据类型的代数规范 245
10.2抽象数据类型的形式化基础 252
10.3形式规范的应用 258
参考文献 265