软件工程是研究软件开发和软件项目管理的一门工程学,是计算机应用技术及软件工程相关专业的主干课程,也是软件分析人员、程序设计人员、软件测试人员、软件项目管理人员、软件的售前和售后工程师、软件高层决策者必不可少的专业知识。
本书作者在国内外一些大中型计算机和软件企业工作期间,采用软件工程化的方法,先后从事了大型计算机操作系统、数据库管理系统、ERP(企业资源计划)和各种工具软件的设计与开发工作,从中获益匪浅。针对国内的软件开发状况,作者首先在外企和国家相关的软件培训中心开展软件工程专业技术的培训工作,试图把国外企业的软件工程化的思想和方法加以推广。随着软件人才的大量需求,教育部把软件工程纳入了大学计算机和软件相关专业的必修课程,作者又走进大学校园,开始从事大学软件工程课程的教学工作,在二十多年的教学经历中,结合自己过去的软件设计与开发的实践,开展教学工作,指导学生应用软件工程的各种方法和手段,进行软件工程的课程设计以及软件项目的设计,收到了较理想的效果,培养了一些优秀的软件设计与开发人员。一些学生毕业后反映,软件工程课是他们参加工作以后最实用的一门专业基础课程。
本书根据大学教学的特点,结合一些案例,系统地介绍了软件工程的有关概念、原理、方法、技术、标准和相关的知识,其目的是使学生理解软件工程的相关概念和基本原理,掌握软件分析和设计软件结构的最基本的方法和手段,学会如何把自己从一个程序员培养成为软件工程师。软件工程课程实践性很强,学生在学习时,除了对概念、原理等的理解之外,更要结合实际,注重方法、技术等的理解和实际运用。编写本书的目的是通过案例教学的方式,培养学生用软件工程化的思想和方法理解和从事软件的设计与开发工作,进而推动我国的软件产业向工程化和规范化的方向发展。
全书共分为15章。第1章简要介绍软件工程的基本概念、软件的发展过程、软件工程学研究的对象与准则、当前几种主要的软件工程方法以及软件工程的发展方向;简述软件工程的生命周期模型。第2章以软件定义为目标,叙述了可行性研究的任务和方法,软件需求分析的任务、要求和方法,以及系统建模的过程。第3章主要以结构化方法介绍软件的概要设计或基本设计、详细设计和数据库设计的内容、设计过程、方法和技术。第4~6章介绍当前主要采用的面向对象方法,包括面向对象分析、面向对象设计的方法和技术。第7、8章介绍软件开发阶段的
软件代码设计和软件测试技术。第9~11章简要地介绍软件项目管理的一些内容,其中主要包括成本管理、度量管理与进度规划、团队建设与沟通管理、风险管理与配置管理等。第12章简要地介绍了软件过程能力成熟度模型和软件过程改进方法。第13~15章介绍有关软件工程的开发规范和软件文档的编写方法。
本书主要是作为普通高等院校的软件工程课程的教材,同时也考虑一些软件企业的技术人员自学的需要,每章均配备了大量习题,可供参考的课件和习题答案可以从清华大学出版社网站(www.tup.com.cn)下载。
本书由吉林大学珠海学院计算机科学与技术系的李军国教授组织编著和定稿,其中第1~3章、第9~12章由李军国编著,第4~6章由吴昊编著,第7章和第8章由郭晓燕编著,第13~15章由王舒编著。在编写过程中,力求结合实际,通过一些案例讲解软件工程的方法和过程。由于作者水平有限,加之时间仓促,书中的疏漏和不当之处仍在所难免,还望各位读者进一步批评指正。
李军国
2013年3月于吉林大学珠海学院