《计算机系列教材:实用软件工程(第3版)》是《实用软件工程》的第三版。《计算机系列教材:实用软件工程(第3版)》的第二版出版后,在国内被许多学校和培训班用作教材,部分内容被其他相关教材多次引用,受到普遍好评。由于本领域在近年来发展极快,新的知识和技术不断涌现,如果限于一本教材,难于反映全貌,也无法授人以渔,故第三版分为“开发篇”——《实用软件工程(第三版)》与“管理篇”——《实用软件工程高级教程(第三版)》两册。本册“开发篇”共10章,系统地介绍了软件工程的概念、方法和技术,包括软件生存周期、需求分析、设计、编码、测试、维护等;另一册“管理篇”共8章,系统地介绍了软件工程管理、软件过程、质量和质量保证、可靠性、软件标准和文档、软件工具、MDA和SOA等。《计算机系列教材:实用软件工程(第3版)》力图让学习者不但能理解相关知识,而且能学会运用相关技能。
本册适用于计算机专业的本科生、非计算机专业的本科生和研究生;“管理篇”适用于计算机专业的研究生和其他学习软件工程的专业人员,也可用作培训班的教材。
本书第二版自1997年发行以来,已经历了十多个年头。近年来它成为许多高等学校计算机相关专业软件工程课的首选教材,已经拥有了二十几万的读者。在这十几年中,软件技术以及与其相关的计算机系统和网络技术都已取得了长足的进步,原书内容的调整与更新自然已成为适应趋势之必需。然而,在进行第三版的修订之时,作者仍然力图坚守第一、第二版的选材原则,希望继续体现简明与实用。当然,过于简短并不能充分地阐述软件工程的基本概念、基本原则与基本方法,也将无法满足广大读者的需求,指导软件工程实践。
为此第三版保留了软件生存期过程的基本内容,包括软件需求、设计、实现、测试和维护等,同时增加了统一建模语言UML,扩充了面向对象方法,以此来满足高校计算机相关专业本科教学的要求。另一方面,把涉及软件管理,包括项目管理、配置管理、质量管理、软件过程、软件工程标准以及软件工具的内容分离出来,另成一册,并增加了体现软件面向服务(SOA)的内容,以期适应研究生教学的要求。
关于如何把握好内容的更新,我们认为,正是由于本书的主要读者对象是初学者,他们在学习中更应着重掌握好软件工程的基本知识和基本内容,而不是一味地求新。例如,当前在一些软件开发组织中流行着“敏捷开发方法”,尽管该方法具有简单、灵活的优点,我们仍然不主张初学者从敏捷开发入手。毋庸置疑,传统的软件工程方法有助于培养严谨的思维、规范化的作风和工程实践,而这一点恰是软件工程师的职业生涯中必不可缺和至关重要的。还是先学走再学跑为妥,否则本末倒置,也许掌握了技巧却丢掉了基本功,那种“捷径”是不可取的。
在内容更新方面需要说明的另一点是软件标准的更新。由于软件工程的规范化实践很大程度上体现在能否遵循和参考软件工程标准,为此,必须及时地跟踪新的国际标准以及最新修订的国家标准。本书的第三版已尽可能选用了最新标准版本予以介绍,并希望通过这一部分让读者建立软件工程标准化的概念。
以下三位作者参与了第三版的工作: 马素霞教授负责编写软件设计工程、体系结构设计与设计模式、软件配置管理及软件工具与环境等部分;本人负责编写软件质量管理、软件过程、软件工程标准及软件文档部分;其余部分由殷人昆教授和白晓颖副教授编写。
读者若有反馈意见请径告作者或由清华大学出版社(zhengyk@tup.tsinghua.edu.cn)转告。
郑人杰2010年8月
第1章 软件工程概述
第2章 计算机系统工程
第3章 面向对象方法与UML
第4章 软件需求工程
第5章 软件设计工程
第6章 体系结构设计与设计模式
第7章 软件实现
第8章 软件测试工程
第9章 软件测试用例设计
第10章 软件维护