前言 本书继续保留以往版本特点,以系统性与实用性为基本宗旨,重视软件工程的概念,通过软件工程案例说明软件工程的方法及其应用。 本书在第二版的基础上进行了文字和图表的修订,有适量的内容增减,并基于实际教学意见反馈进行了合乎教学规律的结构调整。 全书共15章,编排结构分为工程基础、工程任务、工程方法3部分。 第1~4章为工程基础,涉及软件工程概述、软件工程项目管理、软件工程过程模式,以及基于计算机的系统工程等内容。该部分基于工程要素、时空框架、任务特征等对软件工程进行了整体性介绍,使读者在学习初期就对软件工程有初步的认识,对于尽早培养读者的工程意识是有益的,可使读者在学习初期就能建立起有关软件工程的价值体系。 第5~9章为工程任务。这里的工程任务是指严谨工程计划约束下的任务,是基于一定的过程模式实施的任务。为了方便理论教学与实践教学的结合,该部分按照一般的软件生命周期介绍工程任务,涉及软件需求分析、软件概要设计、程序算法设计与编码、软件测试、软件维护与再工程等内容。显然,这样的内容编排与实际的工程进程是基本一致的,有益于读者的软件工程实践。 第10~15章为工程方法,涉及结构化程序工程、面向对象程序工程、数据库工程、用户界面设计等内容,并介绍了敏捷工程、净室工程等非主流工程方法。工程模式软件开发需要有与软件问题相适应的工程方法的支持,书中许多工程方法可分别适应不同形态的软件开发,如结构化程序工程方法可适应基于功能抽象的程序构建,面向对象程序工程方法可适应基于现实实体抽象与对现实实体仿真的程序构建等。第15章是一个面向对象工程案例,基于UML建模,并通过C++、Java语言进行了程序工程结构的创建,可供读者更好地领会面向对象程序工程开发。 本书中许多工程方法都有案例提供应用说明,这些案例通过主流软件工具(Visio、PowerDesigner、Rose)建立模型,读者也可通过这些软件工具进行软件分析、设计和建模练习。 作者2023年3月