自20世纪60年代末以来,为了克服“软件危机”,人们在软件工程领域做了大量的工作,开拓了软件工程方法和技术,积累了一定的经验,使软件开发技术逐步趋于成熟,并形成了较为完整的计算机软件开发方法,使软件开发过程按照工程化的原理、方法、技术进行。进而软件工程学诞生了,它不仅规范了软件开发方法、过程和相应的文档,而且大大提高了软件生产的速度、数量和软件质量。
信息社会在21世纪以更快的速度,更高的要求,更新的技术飞速发展。其原因在于因特网和IT技术在全球的广泛应用和迅猛发展,地球村已经成为现实。以计算机作为信息处理工具几乎被越来越多的人接受。因此无论在数量上还是技术上都对软件开发提出了更高的要求,软件工程和软件产业面临着更大的挑战。多年来,软件工程一直是计算机科学研究的一个热点,备受人们的关注,同时也展示了软件工程的生机和活力。
为了适应新技术发展的需要,特编写此书,为有关方面的教学和众多的爱好者提供该领域有价值的资料。本书既入选“普通高校本科计算机专业特色教材精选”,同时也是中国矿业大学“新世纪教材建设工程”教材。
本书以软件生命周期为主线,以面向数据流的结构化技术为核心,重点介绍了结构化分析、结构化设计、编码、测试和维护,并在此基础上简洁地介绍了面向对象的开发方法。为了紧密配合软件开发方法和技术的应用,本书还介绍了统一建模语言UML和Rational Rose软件开发工具。
本书各章介绍以基本原理、方法、技术为前导,向工具和其他内容展开。由浅入深的表述方式有助于读者的理解。书中内容尽量做到通俗易懂,图文并茂,理论结合实际。每章有总结和练习,帮助读者进一步掌握和巩固知识。
全书共分为14章。
第1章,软件工程概述。概括介绍计算机软件概念、软件危机、软件生命周期、软件瀑布模型和其他模型。
第2章,项目计划。主要介绍问题定义和可行性研究。
第3章,需求分析。主要介绍需求分析的任务、需求类型、特点,数据流图以及数据字典等需求分析工具。着重介绍面向数据流的结构化分析方法。
第4章,概要设计。主要介绍结构化设计及优化,包括模块化、耦合与内聚等。重点介绍结构化设计方法、技术和工具以及数据库设计等。
第5章,详细设计。主要介绍详细设计的任务与内容、设计规则以及几种常用的详细设计工具。
第6章,编码。主要介绍程序设计语言的特点与分类、编码风格。
第7章,测试。主要介绍软件测试概述,测试方法与策略,测试用例的设计以及单元、集成与系统测试方法。
第8章,软件维护。主要介绍软件维护的类型和维护过程。
第9章,面向对象方法。主要介绍面向对象的基本概念、面向对象分析和面向对象设计。
第10章,面向对象系统的测试。主要介绍面向对象测试模型,分析、设计和编程测试,单元、集成和系统测试以及面向对象测试用例设计。
第11章,软件项目管理。主要介绍软件度量、软件开发成本估算、进度安排以及软件文档管理。
第12章,软件质量与可靠性。主要介绍软件的质量要求、软件能力的概念、CMM模型、软件可靠性和软件质量管理标准。
第13章,统一建模语言UML。主要介绍UML的特点与内容,UML的静态建模、动态建模的方法和标示。
第14章,Rational Rose。主要介绍Rose的功能与特点,Rose工具的基本操作和符号表示,Rose的各种模型视图以及Rose 的双向工程。
本书由张虹教授主编。第1、12章由张虹和荣新节编写;第2、3、4、5、11章由刘迎春编写;第6、7、8、10章由姜淑娟编写;第9章由刘迎春和李宁编写;第13、14章由张虹和曾文斌编写。全书由张虹统一修改定稿。
本书可作为高等院校高年级本科生或研究生教材,也可供从事计算机软件工作的人员或用户阅读。
该书在编写过程中参考了有关著作,同时也得到了有关方面的专家和老师们的帮助。笔者在此一并表示深切感谢。由于时间仓促,水平有限,书中难免有表达不当和错误之处,敬请读者批评指正。