软件工程及软件开发应用
2009-9
施一萍 清华大学出版社 (2009-09出版)
施一萍 编
207
无
计算机学科一直处于高速发展的过程中,伴随知识更新速度的加快,计算机教学知识体系以及专业设置也在发生着迅速的变化。计算机从20世纪80年代前以硬件为主,发展到20世纪90年代以软件为主,再到现在软件引领发展的时代。软件工程是20世纪60年代末,为了克服“软件危机”而出现的一门研究软件开发与维护的工程学科。随着计算机技术的飞速发展,对软件开发和维护提出了更高的要求,软件工程和软件产业面临更大的挑战。软件工程是计算机科学技术的一门新兴的学科,其软件开发新技术、新方法不断涌现,因此,相应的软件工程的教材也要进行教材改革,以适应计算机学科发展的需要。本书以软件生命周期为主线,主要介绍了结构化软件开发技术、面向对象的软件开发技术以及软件工程质量保证和管理的内容。本书有两个特点:一是内容新颖,反映了当前软件开发和管理的最新技术;二是实用性强,通过应用实例分析,使读者学习和掌握软件工程的原理、技术和方法,并对实际的软件开发工作起指导作用。全书分3篇,共12章。第1篇为软件开发方法,共有5章内容。第1章,软件工程概述,主要介绍软件工程起源和概念、软件生命周期及软件开发模型。第2章,可行性研究,主要介绍可行性研究的任务和过程、系统流程图、成本/效益分析和相应的文档编写。第3章,需求分析,主要介绍需求分析的任务和步骤、数据流图、数据字典等图形工具以及结构化分析方法。第4章,总体设计,主要介绍总体设计任务、软件设计概念和原理、层次图和结构图的图形工具以及结构化设计。第5章,详细设计,主要介绍结构化程序设计、过程设计的工具(流程图、N-S图和PAD图等)、面向数据结构的设计方法、程序复杂程度的度量以及人机界面设计。第2篇为面向对象开发方法,共有4章内容。第6章,面向对象方法学引论,主要介绍面向对象概念、面向对象方法学优点、面向对象建模(对象模型、动态模型和功能模型)。第7章,面向对象分析与设计,主要介绍面向对象分析过程、面向对象设计建立的子系统。第8章,UML统一建模语言,主要介绍UML统一建模语言、静态模型图、动态模型图。第9章,Rational Rose工具,主要介绍Rose工具的基本操作、模型视图和双向工程。第3篇,软件工程质量保证与管理,共有3章内容。第10章,软件测试,主要介绍软件测试概念、分类和基本步骤、黑盒测试、白盒测试、测试用例设计、调试和面向对象测试。第11章,软件维护,主要介绍软件维护的概念、过程、可维护性以及软件再工程。第12章,软件工程管理,主要介绍软件项目管理、配置管理、质量、风险管理以及人力资源管理。本书由施一萍主编。施一萍编写第1~4章;苏前敏编写第5章及第10章;赵敏媛编写第6章及第7章;王红编写第8章及第9章;夏永祥编写第1l章及第12章。全书由施一萍统稿。由于专业水平有限,书中错误或欠妥之处,望读者批评指正。
软件工程是计算机科学技术的一门新兴学科,其软件开发新技术、新方法正在不断地出现。《软件工程及软件开发应用》以软件生命周期为主线,系统地介绍了软件工程基本知识、结构化分析、结构化设计的软件开发技术,同时介绍了面向对象开发技术,包括面向对象分析、面向对象设计、UML建模语言和Rational Rose工具,最后介绍了通过软件测试、维护和工程管理来保证软件工程质量等内容。《软件工程及软件开发应用》内容新颖,实用性强,每章后有小结和习题。可作为高等院校“软件工程”课程的教材或参考书,也适用于软件工作人员和计算机用户阅读参考。
第1篇 软件开发方法第1章 软件工程概述1.1 软件与软件危机1.1.1 计算机软件概念1.1.2 计算机软件的发展1.1.3 软件危机1.2 软件工程1.2.1 软件工程定义1.2.2 软件工程的内容1.2.3 软件工程基本原理1.2.4 软件开发方法1.3 软件生命周期1.3.1 软件生命周期的划分1.3.2 各阶段的基本任务1.4 软件开发模型1.4.1 瀑布模型1.4.2 快速原型模型1.4.3 增量模型1.4.4 螺旋模型1.4.5 喷泉模型1.5 应用实例1.6 小结习题第2章 可行性研究2.1 可行性研究的任务2.2 可行性研究的过程2.3 系统流程图2.4 成本/效益分析2.4.1 成本估算2.4.2 成本/效益分析方法2.5 可行性研究报告2.6 软件立项和合同2.6.1 立项方法和立项文档2.6.2 签订合同方法和合同文档2.7 项目开发计划2.8 小结习题第3章 需求分析3.1 需求分析概述3.1.1 需求分析的任务3.1.2 需求分析的步骤3.2 图形工具3.2.1 数据流图3.2.2 数据字典3.2.3 实体-联系图3.2.4 其他图形工具3.3 结构化分析3.3.1 结构化分析的步骤3.3.2 应用实例3.3.3 软件需求规格说明书3.4 验证软件需求3.5 小结习题第4章 总体设计4.1 总体设计的过程和任务4.2 软件结构设计概念和原理4.2.1 模块和模块化4.2.2 抽象4.2.3 信息隐藏4.2.4 模块独立4.3 软件结构设计优化4.4 图形工具4.4.1 层次图和HIPO图4.4.2 结构图4.5 结构化设计4.5.1 结构化设计概述4.5.2 结构化设计的过程4.5.3 变换分析和事务分析4.6 总体设计说明书4.7 小结习题第5章 详细设计5.1 任务和原则5.2 结构化程序设计5.3 过程设计的工具5.3.1 程序流程图5.3.2 N-S图5.3.3 PAD图5.3.4 PDL语言5.3.5 判定树5.3.6 判定表5.4 面向数据结构的设计方法5.4.1 逻辑数据结构5.4.2 Jackson图和图解逻辑5.4.3 应用实例5.5 程序复杂程度的度量5.6 人机界面设计5.7 小结习题第2篇 面向对象开发方法第6章 面向对象方法学引论6.1 面向对象方法学概述6.1.1 面向对象的基本概念6.1.2 面向对象软件过程模型6.2 面向对象方法学的优点6.3 面向对象建模6.3.1 对象模型6.3.2 动态模型6.3.3 功能模型6.3.4 三种模型之间的关系6.4 小结习题第7章 面向对象分析与设计7.1 面向对象分析7.1.1 面向对象分析过程7.1.2 需求陈述7.1.3 建立对象模型7.1.4 建立动态模型7.1.5 建立功能模型7.1.6 应用实例7.2 面向对象设计7.2.1 面向对象设计的准则7.2.2 问题域子系统设计7.2.3 人机交互子系统设计7.2.4 任务管理子系统设计7.2.5 数据管理子系统设计7.2.6 应用实例7.3 小结习题第8章 UML统一建模语言8.1 UML概述8.1.1 UML的产生及发展目标8.1.2 UML的组成及主要内容8.1.3 UML的应用领域8.2 UML静态建模8.2.1 用例图8.2.2 类图8.2.3 对象图8.2.4 构件图8.2.5 实施图8.3 UML动态建模8.3.1 顺序图8.3.2 协作图8.3.3 状态图8.3.4 活动图8.4 基于UML的软件开发过程8.5 小结习题第9章 RationalRose工具9.1 Rose建模功能及特点9.2 Rose操作界面9.2.1 Rose的主界面9.2.2 Rose的基本操作9.3 Rose的模型视图9.3.1 用例图的创建.删除和设计9.3.2 模型元素的添加9.3.3 工具栏按钮的添加9.4 Rose的双向工程9.5 小结习题第3篇 软件工程质量保证与管理第10章 软件测试10.1 软件测试概述10.1.1 软件测试的概念10.1.2 软件测试的分类10.1.3 软件测试的基本步骤10.2 白盒测试10.2.1 逻辑覆盖10.2.2 路径测试10.3 黑盒测试10.3.1 等价分类法10.3.2 边界值分析法10.3.3 错误推测法10.4 测试用例10.4.1 测试用例概念10.4.2 应用实例10.5 调试10.6 面向对象的测试10.7 软件测试的发展趋势10.8 小结习题第11章 软件维护11.1 软件维护的概念11.2 软件维护的工作量11.3 软件维护过程11.4 软件可维护性11.5 软件再工程11.5.1 软件再工程的概念11.5.2 软件重构11.6 应用实例11.7 小结习题第12章 软件工程管理12.1 软件工程管理的目标12.2 软件项目管理12.2.1 软件项目管理的目标和过程12.2.2 软件项目失控的原因12.3 软件配置管理12.3.1 软件配置管理的定义12.3.2 软件配置管理的任务12.4 软件质量管理12.4.1 软件质量的概述12.4.2 软件质量管理的主要活动12.4.3 软件质量保证12.4.4 软件质量保证体系及认证12.4.5 软件过程能力评估的模型12.5 软件风险管理12.5.1 软件项目风险的概念12.5.2 软件风险管理过程及风险驾驭12.6 软件项目人力资源管理12.7 应用实例12.8 小结习题缩略语参考文献
插图:第1章 软件工程概述软件工程是20世纪60年代末,为了克服“软件危机”而出现的一门研究软件开发与维护的工程学科。随着计算机技术的飞速发展,对软件开发和维护提出了更高的要求,软件工程和软件产业面临更大的挑战。本章主要介绍软件工程的基本知识,包括软件的概念、软件危机、软件工程的内容、基本原理以及软件开发的方法和模型。1.1 软件与软件危机1.1.1 计算机软件概念计算机系统是由硬件和软件组成。计算机硬件是计算机系统的物理部件,如中央处理机、存储器、键盘、显示器和打印机。计算机软件是计算机系统中的逻辑部件。计算机硬件和软件有明显的不同,具体表现如下:(1)硬件是物理实体,能够看得见,而软件是逻辑实体。(2)硬件会“磨损”或“老化”,但软件存在“退化”问题,必须要多次修改和维护软件。(3)硬件与软件的制造过程不同。硬件需要相应的设计、工艺和制造过程,软件是通过分析、设计和编写程序完成的。(4)硬件与软件的质量控制过程不同。由于制造过程不同,所以它们的质量控制也在各个阶段完成。计算机硬件和软件又是相互联系、相互依赖的,二者缺一不可。硬件如果没有相应软件的支持,只能称为“裸机”,它是不能正常工作的。计算机系统只有配备了硬件以及控制和管理硬件的软件,才能发挥作用。计算机系统的发展离不开软件的发展。计算机软件通常定义如下:软件是程序、数据和相关文档的完整集合。其中程序是按照设计文档的功能和性能要求所编写的指令序列。数据是能使程序正常操纵信息的数据结构。文档是与程序开发、管理、维护和使用有关的图文材料。软件又与程序不同,它的规模比较庞大。
《软件工程及软件开发应用》由清华大学出版社出版。
无