程序开发原理-抽象、规格与面向对象设计讨论了怎样构建具有高可靠性、易于维护和能得以快速修改的软件开发方法,强调了软件的模块化开发思想,用丰富的实例告诉读者怎样进行模块化,并合理地组织各种模块以构成大型软件系统的过程。
这是一本传授思想的书籍,能使读者透过现象看到本质,从而掌握编写程序的关键。本书非常适合于作为软件学院的教材,可培养低年级学生对于事物的抽象能力。此外,本书也非常适合于软件开发人员参考。
本书由著名编程理论专家所著,是美国麻省理工学院电气工程与计算机科学系的编程实践课程教材。书中讨论了怎样构建具有高可靠性、易于维护和能得以快速修改的软件开发方法,强调了软件的模块化开发思想,用丰富的实例告诉读者怎样进行模块化,并合理地组织各种模块以构成大型软件系统的过程。本书的前8章首次提出编程领域中一些十分有用的抽象概念,如过程抽象、迭代抽象以及最重要的数据抽象等。此外,本书通过大量的例子,用非形式化的规格说明来详细定义这些数据抽象,描述模块所需完成的任务,并定义了模块所需的性能边界条件。本书的后7章主要讲述了怎样利用抽象构建大型软件,侧重于阐述软件工程的内容,基于类型层次结构提出对于数据抽象的调试、测试、需求分析、自顶向下和迭代的开发过程,还简要介绍了设计模式的概念。
目录
- 第1章 概述
- 1.1 分解和抽象
- 1.2 抽象
- 1.3 本书其他要旨
- 练习
- 第2章 理解Java中的对象
- 2.1 程序结构
- 2.2 包
- 2.3 对象和变量
- 2.4 类型检查
- 2.5 分派
- 2.6 类型
- 2.7 数据流输入/输出
- 2.8 Java应用程序
- 练习
- 第3章 过程抽象
- 3.1 抽象的好处
- 3.2 规格
- 3.3 过程抽象的规格
- 3.4 实现过程
- 3.5 设计过程抽象
- 3.6 小结
- 练习
- 第4章 异常
- 4.1 规格
- 4.2 Java异常机制
- 4.3 异常编程
- 4.4 设计问题
- 4.5 防御编程
- 4.6 小结
- 练习
- 第5章 数据抽象
- 5.1 数据抽象的规格
- 5.2 使用数据抽象
- 5.3 实现数据抽象
- 5.4 附加方法
- 5.5 用于理解实现的一些帮助
- 5.6 数据抽象实现的属性
- 5.7 推理数据抽象
- 5.8 设计问题
- 5.9 局部性和可更改性
- 5.10 小结
- 练习
- 第6章 迭代抽象
- 6.1 Java中的迭代
- 6.2 迭代器规格
- 6.3 使用迭代器
- 6.4 实现迭代器
- 6.5 发生器的表示式不变量和抽象函数
- 6.6 有序列表
- 6.7 设计问题
- 6.8 小结
- 练习
- 第7章 类型层次
- 7.1 赋值与分派
- 7.2 定义一个类型层次
- 7.3 用Java定义层次
- 7.4 一个简单的例子
- 7.5 异常类型
- 7.6 抽象类
- 7.7 接口
- 7.8 复合实现
- 7.9 子类型的含义
- 7.10 类型层次的讨论
- 7.11 小结
- 练习
- 第8章 多态抽象
- 8.1 多态数据抽象
- 8.2 使用多态数据抽象
- 8.3 重新访问相等性
- 8.4 附加方法
- 8.5 更多灵活性
- 8.6 多态过程
- 8.7 小结
- 练习
- 第9章 规格
- 9.1 规格和规格满足集
- 9.2 规格的某些标准
- 9.3 为什么要有规格
- 9.4 小结
- 练习
- 第10章 测试与调试
- 10.1 测试
- 10.2 测试过程
- 10.3 测试迭代器
- 10.4 测试数据抽象
- 10.5 测试多态抽象
- 10.6 测试一个类型层次
- 10.7 单元和综合测试
- 10.8 测试工具
- 10.9 调试
- 10.10 防御性编程
- 10.11 小结
- 练习
- 第11章 需求分析
- 11.1 软件生命周期
- 11.2 需求分析总结
- 11.3 股票跟踪系统
- 11.4 小结
- 练习
- 第12章 需求规格
- 12.1 数据模型
- 12.2 需求规格
- 12.3 股票跟踪系统的需求规格
- 12.4 搜索引擎的需求规格
- 12.5 小结
- 练习
- 第13章 设计
- 13.1 设计过程纵览
- 13.2 设计笔记本
- 13.3 交互式程序的结构
- 13.4 开始设计
- 13.5 对方法的讨论
- 13.6 继续进行设计
- 13.7 查询抽象
- 13.8 WordTable抽象
- 13.9 最后加工
- 13.10 FP和UI间的交互
- 13.11 模块依赖图表vs数据模型
- 13.12 回顾及讨论
- 13.13 自顶向下的设计
- 13.14 小结
- 练习
- 第14章 从设计到实现
- 14.1 评估一个设计
- 14.2 整理程序开发过程
- 14.3 小结
- 练习
- 第15章 设计模式
- 15.1 隐藏对象创建
- 15.2 聪明的对策
- 15.3 桥接器模
- 15.4 过程也必须是对象
- 15.5 复合
- 15.6 间接的力量
- 15.7 发布/订阅
- 15.8 小结
- 练习
- 术语表