图书前言

本书第1版自2012年7月出版以来,取得了良好效果。然而,随着软件工程的发展,同时也为了更好地为读者服务,编者对原书内容做了认真修改后,编写出第2版。

本书根据作者近年来从事“软件工程”课程教学和软件开发的实践经验,在保持原书结构和篇幅基本不变的前提下,第2版主要对原书内容做了以下修正和补充: 

(1) 修改了第1版中出现的错误,更加规范和完善相关的图、表,对文字叙述做了进一步的加工和润色。

(2) 增加软件工程中较重要的内容,主要包括基于构件的开发模型、Rational统一建模过程、可行性研究及系统流程图、需求验证、管道与过滤器模型、软件设计验证、集成测试案例、确认测试案例。

(3) 作者认为软件工程基础应该注重基础理论与实践相结合的理念,因而大幅增加每章后的习题,特别是增加了实际分析、设计习题,让读者更好地在实践中掌握基础理论。

鉴于技术人员专注技术而轻文档编写的实际情况,本书第2版仍希望通过介绍软件工程各阶段的编写文档框架,来强化文档对软件工程实施的重要性。本书各章节的安排是按照以结构化设计思想为基础,全面介绍软件工程过程各阶段的过程、方法和工具,务求让读者对软件工程的实施有一个完整、清晰的认识。之后,再以面向对象设计思想为指导,详细介绍基于面向对象的软件工程开发过程。

下面给出本书的结构图,希望能给读者提供更好的帮助。

建议学习过程如下: 

(1) 第1章,通过对软件、软件生命周期和软件过程模型的介绍,让读者对软件工程的基本原理、方法、过程有一个基本认识。本章是全书的导论。

(2) 第2章~第6章,以结构化方法为依托,按照软件工程生命周期过程模型的需求分析、概要设计、详细设计、编码和测试等阶段,全面介绍各阶段涉及的过程、方法和工具,务求让读者对结构化软件工程的实施有一个完整、清晰的认识。

(3) 第7章~第9章,以面向对象方法为依托,详细介绍基于UML的软件工程,包括面向对象分析、面向对象设计、设计模式、数据设计和测试,使得读者对面向对象软件工程的实施有一个完整、清晰的认识,并通过这两种方法学的比较,洞悉它们各自的优劣。

(4) 第10章,介绍作为软件工程最后一个阶段的软件维护的内容和过程,以及如何提高软件的可维护性和软件再工程。

(5) 第11章,介绍有关软件项目管理的基本要求和内容。本章应该贯穿于整个学习过程中,或置于最初进行学习也可行。只有通过合理的软件项目管理这一平台,才能按时、保质、保量地完成满足用户需求的、高质量的、高可靠性的软件产品。

〖1〗软件工程基础(第2版)前言[3]〖3〗(6) 通过软件工程综合训练,配合一定的项目开发过程,真正把所学、所掌握的知识融入到实际项目中去。

通过这样的学习过程,读者能通过对两类设计思想的不同及软件过程的比较,分析和总结它们各自的优缺点,还能更深入理解相同的软件工程过程结合不同的软件设计思想对软件分析、实现和维护的影响,以及对软件质量和管理发展的推动。

由于作者水平有限,书中疏漏、欠妥、谬误之处在所难免,恳请读者指正。

 作者

于北京理工大学