《程序开发原理抽象、规格与面向对象设计》书评.docVIP

《程序开发原理抽象、规格与面向对象设计》书评.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《程序开发原理抽象、规格与面向对象设计》书评.doc

《程序开发原理——抽象、规格与面向对象设计》书评 本书的英文书名并不起眼,Program Development in Java: Abstraction, Specification and Object-Oriented Design,使人很容易把它当成一本普通的Java编程入门书。但是,如果稍微细心一点,就会看到其副标题中的一些词汇在常见的讨论编程的书籍中并不多见。实际上,恰恰是这些术语说明了本书讨论的重点:“抽象”(Abstraction)、“规格说明”(Specification),还有我们比较熟悉的“面向对象设计”。人们都在讨论“产品质量的程序”,但如何构造出这样的程序?如何构造出由这样的程序组成的大型系统?以上术语代表了本书作者对这些问题的回答:为了做好“产品质量的程序”,我们必须关注“抽象”和“规格说明”。 如果了解一些计算机科学技术的发展历史,我们就会知道本书作者都是计算机科学技术界的知名专家,是国际公认的软件技术和相关理论研究领域最重要的开拓者。对面向对象技术有所了解的人都知道其中最重要的一个观念:子类(派生类)的对象能当成父类(基类)的对象使用,这就是有名的“Liskov替代原理”。计算机科学技术的初学者也会知道程序领域最重要的概念之一是“抽象数据结构”(ADT),而这一术语就出自John Gettag的开创性论文。本书的两位作者在20世纪80年代合著过一本对国际软件研究界和产业界都产生了重要影响的著作:Abstraction and Specification in Program Development,其中系统地讨论了程序开发中的许多理论和实践问题,特别是深入讨论了抽象和规格说明在程序开发中的作用。我国最早的软件工程硕士班(1984年和1985年在北京大学举办)曾用该书作为教材。但非常遗憾的是,该书并未受到国内学术界、教育界和技术界的足够重视。今天,仍是这两位作者,将这本新书奉献给我们。电子工业出版社引进了本书的英文版,其中译本不久也将在该出版社出版,我们衷心地希望更多的人能认识到这本著作(教科书)的重要性并从中获益。 本书可以看成是Abstraction and Specification in Program Development一书在目前新形势下的重构,其中融入了作者从这些年的教学和实践中得到的许多新认识和新经验。采用Java作为讨论问题的媒介(原书主要用Clu语言),也使这本著作更容易为广大的教师、学生和软件专业人员接受。这里要回答的问题是:如何构造“产品质量的程序”,怎样才能成为“优秀的程序员”。这是所有关心自己在计算机领域里的成长的学生和青年计算机工作者最关注的问题,也是计算机科技领域的教师们最应该关心的问题之一。本书就是围绕着这些问题组织起来的,书中不但深入讨论了与此相关的许多重要问题,还提出了一种构造高质量软件系统的方法学。 作者认为,写出好程序的关键是良好的模块化,写好大程序的关键是把它分解为一组较小的模块,模块之间相互独立,只通过较窄的定义良好的接口(界面)交换信息。但是,什么是设计良好的易于理解的模块呢?作者的回答是:应该用程序模块实现有意义的抽象,使每个模块对应于一个意义清晰、容易把握的抽象概念,而在实现这样的模块之前,首先需要用尽可能严格的方式写出这一抽象概念的规格说明(specification)。这里的模块可以是子程序抽象(过程、函数和方法),也可以是数据抽象(例如面向对象的类)等。 在简单介绍了Java的一些基本知识之后,作者就进入了本书的主题,用了多章篇幅讨论各种抽象形式和相关技术。有趣的是,作者在讨论了简单的过程抽象之后,立即转到许多书里很晚才会讨论的(而且常常是简单一带而过的)异常问题,用完整的一章讨论Java的异常机制和程序中与异常有关的设计问题。“异常”问题真的值得如此重视吗?确实应该如此,因为异常情况及其处理是完整抽象的重要组成部分。在设计和编程的过程中,需要与正常处理流程一起统一地考虑、设计和实现,使之成为一个完整抽象的内在组成部分。许多讨论程序设计的书对这一问题的阐述都太马虎,太不充分,不能给人以一种清晰的概念。本书作者基于对程序理论和实践的深刻认识,在书中最合适的位置认真讨论了这一重要问题。 有关异常的讨论只是一例,说明了本书的与众不同之处,也说明了本书作者对于什么是“优秀程序员”成长过程中最应该建立的观念,以及最应该理解的重要问题的深刻认识。对于程序设计(包括面向对象的程序设计)中各个层次上的许多重要问题,作者都在本书里最合适的地方给予了充分重视。这方面的例子包括: 什么是好的过程抽象,怎样描述过程抽象,如何设计出良好的过程抽象? 什么时候需要考虑异常问题,何时应该使用语言的异常处理机制? 如何写出数据抽象的规格说明,如何使用和实现数据抽象? 抽

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档