软件工程

出版时间:2009-11  出版社:中国科学技术大学出版社  作者:王忠群 编  页数:329  

前言

软件工程是研究软件开发、维护和软件管理的一门工程科学,是计算机科学技术及相关专业的主干课。自1968年在著名的NATO会议上为解决“软件危机”而提出“软件工程’’的概念以来,在不到半个世纪的时间里,软件工程在理论和实践两个方面都取得了长足的进步,取得了大量研究成果,软件工程的应用水平已成为促进软件产业健康发展的关键。随着计算机的日益普及和广泛应用,尤其是Intemet的出现,软件系统的规模和复杂度与日俱增,软件技术面临着许多新的挑战。大型复杂软件的开发是一项特殊的工程,不仅与传统工程一样,需要按照工程化的方法去组织管理软件的开发,而且软件开发更具特殊性、复杂性。因此软件工程已经成为计算机科学与技术学科的重要学科方向。针对绝大多数本科院校以培养应用型人才为目标,着眼于学生综合素质和应用能力、创新意识的培养,贯彻以必需、够用、实用和会用为度的原则,优化课程内容体系,适当体现新技术、新方法,突出软件工程课程知识的连贯性、逻辑性,试图通过实例来化解软件工程的较强抽象性,为读者提供一本既保持知识的系统性,适当反映软件工程最新发展成果,又易于学习和易于应用于实践的教科书。全书共分12章。第1章概括介绍了软件的基本概念、软件危机产生原因和解决途径以及软件工程学产生的背景、基本原理、概念和方法等。第2章概述了软件需求分析、介绍可行性研究、初步需求获取方法、需求分析的过程和需求规格说明和需求评审。第3章概述了软件设计的任务、目标和过程,详细阐述软件设计的基本概念,介绍了软件体系结构设计、数据结构设计、过程设计以及软件设计规格说明和评审。第4章详细介绍了结构化分析、设计方法以及设计启发式设计策略。第5章在对面向对象的概念和UML介绍的基础上,详细叙述了面向对象分析、设计方法和Rational R0se建模工具。第6章介绍了软件界面设计。第7章到第9章分别介绍了软件的编码、软件测试和软件维护。第10章介绍了软件项目管理和软件过程成熟度模型(CMM)。

内容概要

  软件工程是研究软件开发、维护和管理的一门工程科学,是计算机科学技术及相关专业的主干课程。全书共12章,主要内容包括:软件工程概述;软件需求基础;软件设计基础;结构化分析与设计;面向对象的分析与设计;人机界面设计;编码;软件测试;软件维护;软件项目管理;软件工程标准化与软件文档;Web工程等。

书籍目录

前言第1章 软件工程概述 1.1 软件  1.1.1 软件的概念与特点  1.1.2 软件的分类 1.2 软件危机 1.3 软件工程  1.3.1 软件工程的概念  1.3.2 软件工程的基本目标  1.3.3 软件工程的基本原理  1.3.4 软件工程的原则 1.4 软件生存周期  1.4.1 软件的定义阶段  1.4.2 软件的开发阶段  1.4.3 软件的使用、维护和退役阶段 1.5 软件的开发模型  1.5.1 瀑布模型  1.5.2 原型模型  1.5.3 螺旋模型  1.5.4 喷泉模型  1.5.5 基于第四代技术的模型  1.5.6 增量模型  1.5.7 迭代模型 1.6 软件开发方法和工具  1.6.1 结构化方法  1.6.2 面向对象方法  1.6.3 软件工具与开发环境 小结 习题第2章 软件需求基础 2.1 需求分析概述  2.1.1 需求分析的难点  2.1.2 需求分析的基本原则  2.1.3 需求分析的基本任务 2.2 可行性研究  2.2.1 可行性研究的内容  2.2.2 可行性研究的具体步骤  2.2.3 可行性研究报告的内容 2.3 初步需求获取方法  2.3.1 访谈与会议  2.3.2 观察用户工作流程  2.3.3 建立联合小组  2.3.4 其他获取方法 2.4 需求分析的过程及方法  2.4.1 需求分析过程  2.4.2 软件需求建模  2.4.3 需求分析方法 2.5 软件需求规格说明和需求评审  2.5.1 软件需求规格说明和初步用户手册  2.5.2 软件需求评审 小结 习题第3章 软件设计基础 3.1 软件设计概述  3.1.1 软件设计在开发阶段的重要性  3.1.2 软件设计的任务  3.1.3 软件设计的目标  3.1.4 软件设计的过程 3.2 软件设计的基本概念  3.2.1 抽象与逐步求精  3.2.2 模块化  3.2.3 信息隐蔽  3.2.4 模块独立 3.3 软件体系结构设计  3.3.1 基本概念  3.3.2 体系结构设计的风格 3.4 数据结构设计  3.4.1 数据结构设计  3.4.2 在设计程序结构时数据结构的选择方法 3.5 软件过程设计  3.5.1 结构化程序设计方法  3.5.2 图形设计工具 ……第4章 结构化分析与设计第5章 面向对象的分析与设计第6章 人机界面设计第7章 编码第8章 软件测试第9章 软件维护第10章 软件项目管理第11章 软件工程标准化与软件文档第12章 Web工程参考文献

章节摘录

插图:(1)软件质量差,维护困难,在软件维护过程中很容易引发新的问题和错误,软件的可移植性差,两个类似的软件很少能够重用。(2)软件功能不能完全满足用户要求,用户对已交付的产品不满意的现象时常发生。(3)软件开发成本难以控制,软件开发进度难以预测。开发成本超出预算、软件交付时间经常延迟。(4)由于缺乏完整规范的资料文档,加之软件测试不充分,从而造成软件质量低下,运行中出现大量问题,有些软件造成了严重的后果。在1985年到1987年之间,至少有2个病人是死于Therac-25医疗线性加速器的过量辐射。事故调查表明,是软件出现了问题,导致这台机器忽略了数据校验,从而泄露致命剂量的辐射。1996年6月欧洲航天局的阿里亚娜火箭升空40秒后爆炸,事后调查发现,错误发生于当一个很大的64位浮点数转换为16位带符号整数时出现异常。由此可见,软件错误的后果是十分严重的,医疗软件的错误可能造成病人的生命危险,银行系统的错误会使金融混乱,航空管理系统的错误会造成飞机失事等等。(5)软件开发生产率的提高赶不上硬件的发展和人们对软件需求的增长。从软件危机被提出以来,人们一直在寻找解决它的方法,一系列的方法被提出并且加以应用。比如结构化的程序设计,面向对象的开发,C2MM,UML等等。虽然人们一直致力于发现解决软件危机的方法,正如软件工程专家R.S.:Pressman所说:“软件危机是一种慢性疾病,这种疾病至今依然困扰着我们,并没有一种灵丹妙药可以完全治愈这种病痛。”之所以出现软件危机,其主要原因是一方面和软件本身的特点有关;另一方面是和软件开发与维护的方法不正确有关,具体表现在:(1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求。(2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致。(3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验。(4)软件开发人员不能有效、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。

编辑推荐

《软件工程》:21世纪高等院校规划教材·计算机类

图书封面

评论、评分、阅读与下载


    软件工程 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7