图书前言

软件工程学是一门综合性应用科学,它将计算机科学理论与现代工程方法论相结合,着重研究软件过程模型、设计方法及工程开发技术和工具,以指导软件的生产和管理。随着计算机科学和软件产业的迅猛发展,软件工程学已经成为一个重要的计算机分支学科,也是一个异常活跃的研究领域,新方法、新技术不断涌现。

“软件工程”是计算机专业学生必修的一门专业课程,也是工科各专业学生在计算机应用方面的一门重要选修课程。在多年的软件工程教学过程中,我们的教研团队参考或使用过许多软件工程教材,但很多教材大都侧重对理论的讲解,案例较少,尤其没有一个完整、系统的软件工程案例贯穿其中。由于本科生普遍缺乏软件工程项目开发的实践经验,因此其学习软件工程课程会感觉非常抽象、空泛与枯燥。为改变这一现状,我们决定编写本书。

本书的特色可以归纳为以下五点。

(1) 从软件危机、软件过程模型,再到软件可行性分析、需求分析、系统设计,本书引入了大量实际案例,解决了软件工程理论教学过程中过于抽象和晦涩的问题。在第4章结构化的分析方法中引入了“电梯控制系统”案例,凸显了结构化分析与设计在嵌入式系统中的优势;在第6章和第7章面向对象的需求分析与设计方法中引入了“网上计算机销售系统”案例,在电子商务如此发达的今天,让学生对熟悉的“网上销售系统”进行分析设计,有利于收集需求、激发学生的学习兴趣。

(2) 第4章结构化需求分析,详细介绍了业务需求、用户需求和系统需求3个层次需求各自的特点,系统地讲解了需求工程活动,包括需求获取、需求分析、需求规格说明、需求验证和需求管理。其中,需求分析包括过程建模和数据建模。过程建模引入了“食物订货系统”案例;数据建模引入了“学生研讨班”案例和“EMS表单项目”案例。最后引入了“电梯控制系统”完整案例,按照创建上下文、建立0层图、产生N层图、定义逻辑说明、定义数据存储和数据流的步骤进行了系统、完整的需求分析。

(3) 第7章面向对象的设计,遵循“分析类+设计模式=设计类”原则,逻辑体系架构的设计讲述了从分层体系结构到三层架构再到经典的MVC设计模式的演化过程,并对软件的MVC设计模式进行了详细的介绍,理解和掌握这种软件分层模式对于从事软件开发的读者尤为重要。目前市面上绝大多数的软件都是采用多层框架结构来实现的,基于分析阶段划分的构件及构件内部的实体类,结合三层的MVC设计模式,补充构件内的边界类、控制类、模型类,最终得到可以用来指导开发的构件详细设计类图。

(4) 第8章基于构件的开发,本章的主要内容是基于一个构件详细设计类图进行编码开发,构件详细设计类图是第7章设计阶段的工作成果,用分析设计的结果直接指导编码工作,帮助读者领会软件工程的真正意义所在。很多从事软件开发的程序员容易“重编程轻设计”,往往还没想清楚问题就开始编码。本章的内容向读者传达了一个重要观点:只要分析设计做得详尽,编码就会水到渠成。

(5) 本书提供第8章的构件开发代码以及全套软件工程文档,供读者阅读、下载使用。

本书由梁洁、金兰担任主编,张硕、宋亚岚担任副主编。其中,梁洁编写第1章、第2章、第6~8章、第11章,金兰编写第4章和第5章,张硕编写第9章和第10章,宋亚岚编写第3章。全书由梁洁和宋亚岚统稿。

本书在第1版的基础上进行修订,并增加了思政内容。本书的宗旨是提高软件工程课程的教学质量,让学生真正“学有所用”。本书具有内容组织科学、合理、系统,理论与实践并重的特点,课后还配有与教学内容相匹配的练习题供读者自我测评、巩固知识。

本书可以作为高等院校软件工程专业、计算机科学与技术专业、计算机应用专业,以及其他相关专业的教材,同时可供从事软件工程专业、计算机应用专业、计算机软件专业,以及其他相关专业的科研人员、软件开发人员及有关大专院校的师生参考。

在本书的编写过程中得到了武昌首义学院的领导和同事们的支持与帮助,在此一并表示感谢。

由于编者水平有限,书中难免存在不妥与疏漏之处,敬请广大读者批评指正。

本书PPT课件等相关教学资源可通过http://www.tupwk.com.cn/downpage下载。

服务邮箱:476371891@qq.com。

编  者    

2023年12月