虽然本书以Java为示例来讲述全书内容,但其内容却适合于使用各种编程语言的软件开发工作。本书是一本深入介绍软件开发的所有方面的书籍。作者讨论了诸如问题描述、模块化、编程美学、逐步完善、测试、验证和文档说明等软件工程的实施过程。除了这些专题之外,软件开发人员还需要理解性能分析和测试方法,并在数据结构和算法之间作出选择,本书也讨论了这些专题。作者使用Java来讲授软件开发并提供了许多示例。本书适合作为有关软件开发、计算机科学导论和高级编程等课程的教科书。对于有经验的程序员来说,本书也是有价值的参考读物,而且是软件开发人员手头必备的书籍。译者序本书所讲述的有关软件开发的诸多问题,并不只是在Java语言中才存在,而是对所有编程语言的软件开发项目都同等适用。原书作者已经指出了这一点。原书作者说,本书不过是原来的《Pascal软件开发》的Java版而已,这一点务必请有意选择本书的读者注意。我们这个翻译小组虽然翻译过许多软件开发方面的书,但还是第一次接触软件开发理论,这使本书的翻译增加了难度,但同时也是对我们的挑战。善于啃硬骨头是我们这个翻译小组的长处。翻译本书既锻练了我们的"牙齿"也提高了我们的知识水平,真可谓一举两得。我们这个翻译小组由掌握不同专业知识的人员组成,此时这种组成就发挥了优越性。其中教数学课的老师成了我们的咨询人员,这使得我们对本书中大量数学内容的翻译能够做到尽量准确、符合专业要求。尽管如此,我们毕竟是第一次接触这样的内容,错误与不当之处在所难免,还望广大读者批评指正。参加本书翻译工作的有杜大鹏、岳丽君、李善茂和龚小平等人。其中,杜大鹏翻译了前言和第1章~第5章,岳丽君翻译了第6章~第8章,李善茂翻译了第9章一第11章,龚小平翻译了第12章~第14章和附录。全书由杜国梁审校并统稿。参加本书录入、打印、校对等工作的有管英强、傅烨、魏天超、梁国珍、任建畅、马相生、刘发来、董明、迟春和杨天华等。在此对他们为本书所做出的贡献表示感谢。前言本书实际上是((Pascal软件开发》(SoftwareDevelopmentinPascal,作者SartaiSahni,由地处佛罗里达州Gainesville的Camelot出版公司出版)一书的Java版本。我们的目的是提供介绍软件开发任务的各个方面的导言性的书籍。本书的内容或许是软件开发过程中遇到的困难的某种写照。本书中讲述的论题代表了我们要定义软件工程的意图。这些论题包括传统软件工程专题,如问题描述、操作界面设计、模块化、编程艺术、逐步完善、测试和编制文档等。除此之外,还包括了有关程序确认、性能分析和测试、数据结构和算法等方面。我们的看法是,后面这些论题对于软件开发来说与前面的论题是同等重要的。这本教科书的内容可用于当前本科生所学的许多课程中。为了获得对软件开发的各个方面的较好的感受,完整地讲授本书是必要的。介绍性的软件工程课程可以以本书的第1章~第9章为基础。介绍性的数据结构和算法课程可以以本书的第1章~第14章为基础。编程的第二门课程(通常称为高级编程)可以使用本书第1章一第7章以及第9章~第12章的内容。如要全面讲述本书的内容,我们建议利用连续两个学期的时间学习。