第3版前言

本书第2版于2018年8月由清华大学出版社出版,得到了广大高校师生和读者的好评。根据作者近年来的软件工程教学和实践,有必要将软件工程教学和实践中的新技术、新发展、新需求加入到教材中,因此本书在第2版的基础上,根据新技术的发展和企业对软件人才知识的需求,总结了软件开发的实践过程和教学过程的经验和教训,完善了第2版的精华部分,删除了不适宜的内容,增加了新的知识内容,并且新增了实验课指导。

本书是一本系统的、有针对性的、有实效性的图书,对于从事软件工程的人员会起到非常好的借鉴作用。

本书主要作为普通高等院校的软件工程课程的教材,同时考虑到一些软件企业的技术人员自学的需要,每章均配备了大量的习题,电子课件和第1~9章的慕课视频可以从清华大学出版社网站上下载。

本书由吉林大学珠海学院计算机学院的李军国教授组织改编和定稿。在编写过程中,作者力求结合实际,通过一些案例讲解软件工程的方法和过程。当然,由于作者水平有限,书中难免有疏漏之处,诚请各位读者批评指正,并衷心希望读者能将实际工作中运用本书的经验和体会告诉作者,以便作者在以后再版中加以改进和完善。


李军国2022年3月






第2版前言




本书第1版于2013年5月由清华大学出版社出版,得到了广大高校师生和读者的好评。第2版是在经过几年的教学实践的基础上,吸收了很多读者有益的建议后编写而成,在此对这些读者表示衷心的感谢。作者在这些年的软件工程教学和实践中也感觉到需要将软件工程教学和实践中的新技术、新发展、新需求加入到教材中,因此对第1版进行了修订。

本书第2版在第1版的基础上,根据新技术、新消息的发展,总结了软件开发的实践过程和教学过程的经验教训,完善了第1版的精华部分,删除了不适宜的内容,同时增加了新的知识元素。对于章节做了适当的调整,尤其是对面向对象技术部分内容做了一些改动。本书注重系统性、针对性、实效性,对于从事软件工程的人员都具有非常好的借鉴作用。

全书共分为16章。第1章简要介绍了软件工程的基本概念、软件的发展过程、软件工程学研究的对象与准则、当前几种主要的软件工程方法以及软件工程的发展方向。第2章简述软件工程的生命周期模型。第3章以软件定义为目标,叙述了可行性研究的任务和方法,软件需求分析的任务、要求和方法,以及使用结构化方法进行系统建模的过程。第4章主要以结构化方法介绍软件的概要设计或基本设计、详细设计和数据库设计的内容、设计过程、方法和技术。第5~7章介绍当前主要采用的面向对象方法,包括面向对象分析、面向对象设计的方法和技术。第8、9章介绍软件开发阶段的软件代码设计和软件测试技术。第10章简要地介绍了软件过程能力成熟度模型和软件过程改进方法。第11~13章简要地介绍了软件项目管理的一些内容,其中主要包括成本管理、度量管理与进度规划、团队建设与沟通管理、风险管理与配置管理等。第14~16章介绍有关软件工程的开发规范和软件文档的编写方法。

本书主要是作为普通高等院校的软件工程课程的教材,同时也兼顾了一些软件企业的技术人员自学的需要,因此每章均配备了大量的习题,关于参考课件和习题答案可以从清华大学出版社网站上下载。

本书由吉林大学珠海学院计算机科学与技术系的李军国教授组织编著和定稿,其中的第1~4章和第10~13章由李军国编著,第5~7章由吴昊编著,第8、9章由郭晓燕编著,第14~16章由王舒编著。在编写过程中,力求结合实际,通过一些案例讲解软件工程的方法和过程。由于作者水平有限,书中难免有疏漏之处,恳请各位读者批评指正,并衷心希望读者能将实际工作中运用本书介绍的经验和体会告诉作者,以便作者在下一版中加以改进和完善。



李军国
2018年3月












第1版前言
软件工程是研究软件开发和软件项目管理的一门工程学,是计算机应用技术及软件工程相关专业的主干课程,也是软件分析人员、程序设计人员、软件测试人员、软件项目管理人员、软件的售前和售后工程师、软件高层决策者必不可少的专业知识。

本书作者在国内外一些中、大型计算机和软件企业工作期间,采用软件工程化的方法,先后从事了大型计算机操作系统、数据库管理系统、ERP(企业资源计划)和各种工具软件的设计与开发工作,从中获益匪浅; 针对国内的软件开发状况,作者首先在外企和国家相关的软件培训中心开展软件工程专业技术的培训工作,试图把国外企业的软件工程化的思想和方法加以推广。随着软件人才的大量需求,国家教育部把软件工程纳入了大学计算机和软件相关专业的必修课程,作者又走进大学校园,开始从事大学软件工程课程的教学工作,在二十多年的教学经历中,结合自己过去的软件设计与开发的实践,开展教学工作,指导学生应用软件工程的各种方法和手段,进行软件工程的课程设计以及软件项目的设计,收到了较理想的效果,培养了一些优秀的软件设计与开发人员。一些学生毕业后反映,软件工程课程是他们参加工作以后最实用的一门专业基础课程。

本书根据大学教学的特点,结合一些案例,系统地介绍了软件工程的有关概念、原理、方法、技术、标准和相关的知识,其目的是使学生理解软件工程的相关概念和基本原理,掌握软件分析和设计软件结构的最基本的方法和手段,学会如何把自己从一个程序员培养成为软件工程师。软件工程课程实践性很强,学生在学习时,除了对概念、原理等的理解之外,更要结合实际,注重方法、技术等的理解和实际运用。编写本书的目的是通过案例教学的方式,培养学生用软件工程化的思想和方法理解和从事软件的设计与开发工作,进而推动我国的软件产业向工程化和规范化的方向发展。

全书共分为15章。第1章简要介绍了软件工程的基本概念、软件的发展过程、软件工程学研究的对象与准则、当前几种主要的软件工程方法以及软件工程的发展方向; 简述软件工程的生命周期模型。第2章以软件定义为目标,叙述了可行性研究的任务和方法,软件需求分析的任务、要求和方法,以及系统建模的过程。第3章主要以结构化方法介绍软件的概要设计或基本设计、详细设计和数据库设计的内容、设计过程、方法和技术。第4~6章介绍当前主要采用的面向对象方法,包括面向对象分析、面向对象设计的方法和技术。第7、8章介绍软件开发阶段的软件代码设计和软件测试技术。第9~11章简要地介绍了软件项目管理的一些内容,其中主要包括成本管理、度量管理与进度规划、团队建设与沟通管理、风险管理与配置管理等。第12章简要地介绍了软件过程能力成熟度模型和软件过程改进方法。第13~15章介绍有关软件工程的开发规范和软件文档的编写方法。

本书主要是作为普通高等院校的软件工程课程的教材,同时也考虑一些软件企业的技术人员自学的需要,每章均配备了大量的习题,可供参考的课件和习题答案可以从清华大学出版社网站上下载。

本书由吉林大学珠海学院计算机科学与技术系的李军国组织编著和定稿,其中的第1~3章和第9~12章由李军国编著,第4~6章由吴昊编著,第7~8章由郭晓燕编著,第13~15章由王舒编著。在编写过程中,力求结合实际,通过一些案例讲解软件工程的方法和过程。由于作者水平有限,加之时间仓促,书中的疏漏和不当之处在所难免,还望各位读者进一步批评指正。


李军国
2012年7月
于吉林大学珠海学院