内容简介

本书反映了作者10多年来构造系统以及教授软件工程课程的体会。我们发现,学生常常孤立地学习程序设计技术和软件工程技术,常常选择小的问题作为研究实例。所带来的结果是,学生们能够有效地解决定义明确的问题,但当他们第一次真正面对复杂而真实的开发项目时,常常会感到束手无策。真实的开发过程需要很多不同的技术和工具,要求开发人员之间进行合作。针对这一情况,现今的软件工程本科课程体系中通常包括一门软件工程项目管理的课程,讲授组织成一个开发项目所必需的知识。

工具:UML、Java和设计模式

编写本书时,在我们的头脑中一直有一个课程项目。这个项目除了可以作为课程设计的项目之外,还可以在其他场合使用,例如用作短期集训或者短期研发的项目等。我们使用了真实系统中的实例,并检验UML、基于Java的技术、设计模式、设计原理、配置管理以及质量控制等现代技术之间的交互。此外,我们讨论了与项目管理相关的问题,这些问题与上述技术及其对复杂性和变化的影响相关。