前言

人类已进入大数据时代,这是一个信息爆炸的时代,这都应该归因于计算机处理能力的提高,而计算机中起主导作用的是软件。稍加注意就会发现,软件无处不在,软件工程无处不在。毫不夸张地说,软件在技术进步方面起到了决定性的作用,国家财政收入中与软件产业的相关度越来越高,软件产业收入所占的比例也越来越高,软件及软件产业发展的速度超出人们的想象,2014年我国的软件产业总收入达到了3.7万亿元。与此同时,与软件产业紧密相关的软件工程也得到了很大的重视,软件工程作为一门学科虽然只有40多年的时间,但从它诞生之日起就显示出极强的生命力。

为适应软件工程学科的快速发展,2011年国务院学位委员会及教育部将软件工程设立为国家一级学科,这既为软件工程学科发展指明了方向,也说明软件工程的地位和作用十分重要。软件工程涉及的内容广泛、丰富,无论广度还是深度,其他学科都难以覆盖。

本书作者长期从事软件工程教学和科研,在参考了大量同类文献之后,按学生的接受程度、学科的基本内容和要求编写了本书。本书是软件工程的入门教材,适合初学者作为软件工程课程的教材使用,也适用于对软件工程学科感兴趣的读者阅读。软件工程是快速发展的学科,因而,虽然本书是基础教程但在书中也尽量对发展中的新技术有所反映。

本书的特点如下。

1)力求通俗、易懂,尽量使枯燥的内容变得有趣,因而在叙述软件工程技术和方法上增加了趣味性、故事性和情节性。

2)尽量将难点分散,避开高深的知识,并使全书在叙述上有节奏感,增强初学者学习的信心。

3)理论结合实际,每一章都有案例,使理论不抽象、技术能“落地”。

4)增强实用性。书中既有案例又列出了大量的实际题目,增强读者学习的牢固性,使其在其他学科的学习和实践中仍然有参考意义。

全书共8章,第1章是软件工程概述,介绍了软件的定义、起源和分类以及软件工程的产生和定义,讨论了软件生命周期的概念,叙述了常见的软件开发模型。第2章阐述了软件需求分析方法,包括结构化分析方法、原型化分析方法、面向对象建模及UML方法,以及软件需求规约说明书(SRS)的构造和要求。第3章是软件系统的设计,介绍了软件设计的基本原理,讲述了结构化设计方法和面向对象的设计方法,简要介绍了一些新方法。第4章是软件的编程实现,包括编程语言的选择、分类和编程要求,介绍了常用的面向对象的编程语言。第5章是软件的测试及维护,叙述了软件测试的基本原理、测试用例设计及面向对象的测试方法,讲述了软件维护的基本原理和软件再工程的内容。第6章是软件项目管理,包括软件范围的确定、软件资源的考虑、软件成本估算模型和技术,以及如何使用甘特图和PERT图来安排软件工程项目进度。第7章是从公开资料中整理而成的典型软件项目案例,具有很高的指导价值。第8章是软件工程课程设计的内容、基本要求、考核标准以及交付文档的要求和格式,这一章给出了140个具有实际意义的软件工程课程设计题目,可作为课程设计的目标、功能和性能要求。

本书配有习题解答、电子教案等教辅材料。使用本书的课程建议授课学时为40~48学时,课程设计可安排2周。

本书由华北电力大学宋雨编著。在编写过程中得到了多位同仁的支持和帮助,在这里一并表示感谢。由于时间仓促,书中难免存在不妥之处,请读者批评指正,并提出宝贵意见。

编者