本书书讨论了怎样构建具有高可靠性、易于维护和能得以快速修改的软件开发方法,强调了软件的模块化开发思想,用丰富的实例告诉读者怎样进行模块化,并合理地组织各种模块以构成大型软件系统的过程。这是一本传授思想的书籍,能使读者透过现象看到本质,从而掌握编写程序的关键。本书非常适合于作为软件学院的教材,可培养低年级学生对于事物的抽象能力。此外,本书也非常适合于软件开发人员参考。本书由著名编程理论专家所著,是美国麻省理工学院电气工程与计算机科学系的编程实践课程教材。书中讨论了怎样构建具有高可靠性、易于维护和能得以快速修改的软件开发方法,强调了软件的模块化开发思想,用丰富的实例告诉读者怎样进行模块化,并合理地组织各种模块以构成大型软件系统的过程。本书的前8章首次提出编程领域中一些十分有用的抽象概念,如过程抽象、迭代抽象以及最重要的数据抽象等。此外,本书通过大量的例子,用非形式化的规格说明来详细定义这些数据抽象,描述模块所需完成的任务,并定义了模块所需的性能边界条件。本书的后7章主要讲述了怎样利用抽象构建大型软件,侧重于阐述软件工程的内容,基于类型层次结构提出对于数据抽象的调试、测试、需求分析、自顶向下和迭代的开发过程,还简要介绍了设计模式的概念。