目 录
第一章 结构化程序设计
1.1结构化程序
1.1.1程序结构
1.1.2结构化程序的定义
1.1.3结构化定理
1.2结构化程序设计
1.2.1结构化程序设计推荐框图
1.2.2逐步求精方法
1.3模块化程序设计
1.3.1基本思想
1.3.2模块独立性
1.4程序设计风格
1.4.1基本思想
1.4.2程序设计风格
1.4.3程序的健壮性
思考练习题
第二章 程序正确性证明
2.1程序的部分正确性与终止性
2.2部分正确性证明
2.2.1不变式断言法
2.2.2公理化方法
2.3终止性证明
2.3.1良序集方法
2.3.2计数器方法
思考练习题
第三章 递归程序正确性证明
3.1递归转化为迭代
3.2递归程序模式及计算规则
3.2.1递归程序模式
3.2.2递归计算规则
3.3递归程序正确性证明
3.3.1结构归纳法
3.3.2良序归纳法
思考练习题
第四章 并行程序正确性证明
4.1并行程序设计
4.1.1信号灯
4.1.2Ada中的并行性
4.2时态逻辑简介
4.2.1基本思想
4.2.2模态逻辑简介
4.2.3时态逻辑简介
4.2.4程序时态逻辑
4.3并行程序正确性证明
4.3.1并行程序模型
4.3.2并行程序性质的时态描述
思考练习题
第五章 程序形式推导
5.1谓词变换器
5.1.1基本思想
5.1.2谓词变换器
5.2面向目标的推导
5.2.1序列语句推导
5.2.2选择语句推导
5.2.3循环语句推导
5.3循环不变式推导
5.3.1删去一个合取分量
5.3.2用变量代替常量
5.3.3扩展变量的值域
5.3.4前部条件与后部条件结合
5.4逐步求精模型
5.4.1后置条件的变换
5.4.2基本不变式的构造
5.4.3细分规则
5.4.4构造规则的求精
思考练习题
第六章 程序变换
6.1程序变换基本规则
6.1.1变换的基本思想
6.1.2变换的基本规则
6.2程序生成
6.3程序改进
6.3.1非尾递归转化为尾递归
6.3.2多递归分支的转化
6.3.3二重递归的转化
6.4函数复合和反演
6.4.1函数复合
6.4.2函数反演
思考练习题
第七章 抽象数据类型及其实现
7.1抽象数据类型及代数规格说明
7.1.1抽象数据类型的概念
7.1.2代数规格说明
7.1.3抽象数据类型的实现
7.2一种形式变换方法简介
7.2.1抽象数据类型的形式化讨论
7.2.2中间抽象数据类型的确定
7.2.3变换规则及正确性
7.3基于抽象数据类型设计程序设计语言
7.3.1抽象数据类型的简单定义
7.3.2项语言和条件语言
7.3.3子程序语言
7.3.4子程序调用的讨论
7.3.5递归程序正确性验证
思考练习题
第八章 软件工程
8.1软件和软件周期
8.2软件工程
8.3系统定义与软件计划
8.3.1系统分析
8.3.2可行性研究
8.3.3成本效益分析
8.4软件需求
8.4.1结构化分析方法
8.4.2数据流程图
8.4.3数据字典
8.5概要设计
8.5.1结构化设计方法
8.5.2模块结构图
8.5.3从数据流程图导出模块结构图
8.5.4Jackson方法
8.6祥细设计
8.6.1基本思想
8.6.2图形设计工具
8.7软件编码
8.7.1结构化程序设计方法
8.7.2程序设计质量
8.8软件测试
8.8.1测试方法
8.8.2单元测试
8.8.3组装测试
8.8.4确认测试
8.8.5测试实例设计
8.9软件维护
8.9.1软件维护的内容
8.9.2软件维护的过程
8.9.3软件的可维护性
思考练习题
第九章 快速原型法与第四代语言
9.1快速原型法
9.1.1基本思想
9.1.2快速原型开发模型
9.1.3快速原型技术
9.1.4用快速原型法生成用户界面
9.2第四代语言
9.2.1基本思想
9.2.2第四代语言的环境
9.2.3第四代语言的基本原理
思考练习题
第十章 面向对象的方法
10.1面向对象技术
10.1.1对象、操作、消息和信息隐藏
10.1.2类、实例和继承性
10.1.3对象描述
10.2面向对象的软件开发
10.2.1面向对象的系统分析与设计
10.2.2面向对象的生命周期
10.3面向对象的专家系统
10.3.1面向对象的方法与专家系统
10.3.2面向对象的专家系统设计
思考练习题
第十一章 软件工程环境
11.1软件工程环境的建立
11.1.1软件工程环境的构成及特点
11.1.2软件工程环境的类型
11.2形式化开发环境
11.2.1基本概念
11.2.2XYZ系统简介
11.3模型开发环境及功能设计
11.3.1模型开发现状
11.3.2模型开发环境
11.3.3主要功能设计
思考练习题
第十二章 程序复杂性度量
12.1经典的度量方法
12.1.1Halstead度量法
12.1.2McCabe度量法
12.2McCabe和Halstead度量法的缺陷及改进
12.2.1基本思想
12.2.2公理化软件复杂性度量
12.2.3新的测试复杂性度量方法
12.3结构复杂性度量方法
12.3.1程序结构的描述
12.3.2程序结构的组成
12.3.3程序结构的分解
12.3.4复杂性度量
12.3.5与其它度量方法的联系
12.4程序网络度量方法
12.4.1程序网络的转换及简化
12.4.2循环网络的简化
12.4.3条件语句执行时间的估计
12.4.4循环程序执行时间的估计
思考练习题
参考文献