全套课件·《软件工程(第二版).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《全套课件·《软件工程(第二版).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全套 课件 软件工程 第二
- 资源描述:
-
1、软件工程软件工程(第二版)(第二版)前言前言 本书是依据教育部高职高专教育基础课程教学的基本要求和高职高专教育专业人才培养目标与规格编写而成。全书共分十四章。第一、二章是软件工程基础,主要讨论软件工程的发展历程、软件工程的结构与分类和概要论述系统建设的基本思路与主要方法,以作为后续各章的预备知识和概念基础。第三、四章论述计算机工程及需求分析流程改革。第五、六、七、八、九章讨论软件系统分析、设计与系统实施的方法软件工程开发的项目管理与运行维护的基本知识。尽管一些新的方法有了很大发展,结构化方法作为信息系统建设中比较成熟的方法与技术,仍然在软件工程建设中得到广泛应用,是本专业学生应该掌握的基本方法
2、与技能。前言前言 第十、十一、十二章讨论面向对象方法。近20年来,在软件工程领域,面向对象方法有了较大的发展,统一建模语言(UML)和统一过程(RUP)的建立和日趋完善使得面向对象方法在应用上有了实际的工业标准。第十三、十四章构成本书的最后一部分,专门介绍比较新颖、颇具发展潜力的软件开发技术,包括:快速原型技术、重用技术。第一章第一章 软件危机与软件工程软件危机与软件工程学习要点:学习要点:n软件工程是在20世纪60年代末期提出的。这一概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决当时出现的“软件危机”。n本章介绍软件危机和软件工程的基本概念。第第第第第第1 1 1章章
3、章章章章 软件危机与软件工程软件危机与软件工程软件危机与软件工程软件危机与软件工程软件危机与软件工程软件危机与软件工程1.1软件危机软件危机 软件包括了使计算机运行所需要的各种程序及其有关的文档资料。其中,程序是计算机任务的处理对象和处理规则的描述;文档是为了理解程序所需的阐述性资料。20世纪60至70年代,“软件危机”一词在计算机界广为流传,其主要针对当时存在的软件代价高和软件错误多的现象。1.1软件危机软件危机1.1.1 软件代价高软件代价高1.1.2 软件开发和维护中的严重问题软件开发和维护中的严重问题1.1.3产生软件危机的原因产生软件危机的原因1.1.1软件代价高软件代价高 1 0
4、0 8 0 6 0 4 0 2 0 0 1 9 5 5 1 9 7 0 1 9 8 5 硬 件 软 件 总费用的百分比 n计算机系统硬件/软件成本变化趋势n在开发一个新型计算机系统或修改一个现有系统的过程中,最大部分的资金是用在软件系统开发方面。二十年来软件技术的发展 硬件技术 计算速度容量增高成本下降 计算能力106-108倍。主频 4.7M2G 内存 256K-512MB,2-4GB 外存 360K-680M 一张光盘1.5万页A4文字 40册400页书真空管半导体集成电路微处理器连接性 19 51 5751 58 6351 64 6951 70 9051 91 8551单主机计算C/S
5、分布式计算网络计算 95计算模式20001.1.2 软件开发和维护中的严重问题软件开发和维护中的严重问题计算机系统发展的早期时代所形成的错误概念与做法,已经严重阻碍了计算机软件的开发,更严重的是:用错误方法开发的软件几乎根本无法维护,只好提前报废。1、软件危机2、有那些软件开发的错误方法和观念有那些软件开发的错误方法和观念n(3)软件产品的质量量化分析不够。n(1)软件开发成本与进度估计不准确。n(2)闭门造车。软件开发人员仓促上阵,编写程序。n(4)软件重用性差。n(5)软件没有适当的文档资料。n(6)软件成本逐年上升。n(1)建设环境的复杂性 软件工程结构复杂,要涉及到用户组织内部与外部环
6、境n(2)用户需求的多样性 软件开发失败最主要的原因是:用户对软件需求描述 不精确,可能有遗漏、有二义性、有错误。n(3)建设内容的复杂性 软件是逻辑部件:试制阶段难衡量;开发质量较难评 价,开发过程管理和控制较难。n(4)技术手段的复杂性 软件设计、实施、维护技术手段的复杂性。n(5)建设所需资源的密集性 软件系统是资金、劳动、智力、知识密集型大型项目,各类的信息交流不及时是产生软件危机的主要原因。1.1.3产生软件危机的原因产生软件危机的原因关于软件危机的总结n1、软件是逻辑部件:试制阶段难衡量;开发质量较难评价,开发过程管理和控制较难;运行过程才能暴露没有检测出来的事故,相当于修改设计,
7、软件维护困难;n2、软件规模庞大,有技术问题,也有管理方法问题。n3、早期开发的个体化;忽视需求分析;认为软件开发写程序;轻视维护,对用户不了解,n4、对前期工作不能忽视,做好软件定义时期的工作,这是降低成本,提高件质量的关键。n5、严重性:在软件开发的不同阶段修改付出代价(后期是前期的2-3个数量级),软件维护是极端艰巨复杂的工作,占55%70%)1.2 软件工程软件工程什么是软件工程 软件工程是指把系统的、规范化的、可以度量的方法运用于软件的开发、运行和维护的过程;简言之,工程化在软件方面的作用。以工程的方法制作软件项目project或产品product的全过程(从立项到交付)工程方法:人
8、们利用技术(或工具)、技能通过有组织活动完成契约规定的目标,即按预定完工期交付合格成品。工程要素:人力、资金、技术 工程目标:在给定的资金、限制的时间内,完成符合相应标准的产品。1、软件工程的七条基本原理n(1)用分阶段的生命周期计划进行严格管理n(2)坚持进行阶段评审n(3)实行严格的产品控制n(4)采用现代程序设计技术n(5)结果应能清楚地审查n(6)开发小组的人员应该少而精n(7)承认不断改进软件工程实践的必要性1.2.2 软件工程的目标软件工程的目标n软件工程的目标可概括为:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、
9、可追踪性和可互操作性并满足用户需要的软件产品。n应该特别指出;“可靠性”这个目标在软件工程中有着重要的意义。广义上讲,它涉及到产品设计的一系列问题,从而使产品能在相当长的期间内稳定工作。狭义上讲,可靠性是软件成功运行的概率度量,可靠性分析和可靠性测试可作为衡量软件质量和其他开发过程的最重要的方法之一。1.2.3 软件工程框架及原则软件工程框架及原则 开 发 模 型 设 计 方 法 支 持 过 程 管 理 过 程 用可 可可可 性可 正可 确 性可 性可 合 算 软 件 分 析 实现 与维护 软 件 设 计 原则:一、选取适宜的开发模型;二、采用合适设计方法;三、提供高质量工程支持;四、重视开发
10、过程管理。第第第第第第2 2 2章章章章章章 软件生命周期及软件开软件生命周期及软件开软件生命周期及软件开软件生命周期及软件开软件生命周期及软件开软件生命周期及软件开发模型发模型发模型发模型发模型发模型学习要点:学习要点:软件生命周期表明软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直至被新的需要所替代而停止该软件的使用的全过程。软件开发模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。第第第第第第2 2 2章章章章章章 软件生命周期及软软件生命周期及软软件生命周期及软软件生命周期及软软件
11、生命周期及软软件生命周期及软件开发模型件开发模型件开发模型件开发模型件开发模型件开发模型 软件生命周期:软件定义、软件设计、软件使用与维护三阶段,而又可以具体分成几个子阶段。(1)可行性研究(2)需求分析和定义(3)总体设计(4)详细设计(5)编码(实现)(6)软件测试、运行维护图2.1 软件生命周期 退 役 维 护 调 试 实 现 详细设计 需 求 分 析 概要设计 可 行 性 研 究 2.1软件生命周期软件生命周期2。2软件开发生命周期过程和活动软件开发生命周期过程和活动 软件生命周期过程的IEEE(美国电气电子工程师学会 IEEE)标准描述了一系列活动和过程,对于IEEE Std1074
12、-1995的软件的开发和和维护来说这些活动是强制性的。它的目标是为开发生命周期模型建立一个通用框架。在这一节,我们描述由这一标准引入的主要过程和活动。过程是一系列朝着特定目标(例如,需求、管理、发布)执行的活动。IEEE标准一共列出了17个过程(见表2.1)。把过程分组成更高层的抽象称为过程组(process group)。过程组的例子是项目管理、前期开发、开发和后期开发。表2.1 IEEE 1074的软件过程2。2软件开发生命周期过程和活动软件开发生命周期过程和活动 过程组 过程生命周期建模 选择生命周期模型项目管理 项目启动项目监控和控制软件质量管理前期开发 概念探讨 系统配置开发 需求设
13、计 实现后期开发 安装 操作和支持 维护 报废整体过程 验证并确认 软件配置管理 文档开发培训2。2软件开发生命周期过程和活动软件开发生命周期过程和活动 最早出现的软件开发模型是1970年WRoyce提出的瀑布模型,而后随着软件工程学科的发展和软件开发的实践,相继提出了原型模型、演化模型、增量模型、喷泉模型等。问题计划问题计划 开发时期开发时期 运行时期运行时期 图图2.2瀑布模型瀑布模型问题定义问题定义可行性可行性需求分析需求分析总体设计总体设计详细设计详细设计编码编码测试测试维护维护需需求求设计设计编编码码测试测试集成集成需求需求设计设计编码编码 测试测试集成集成需求需求设计设计编码编码测
14、试测试集成集成 需求采集细化 快速 设计 建造 原型 用户评价原型 原型 对原型 加工 产品 样本 停止 开始 需求计划 风险分析 风险分析 风险分析 原型 1 原型 2 原型 3 可运 行原型 风险分析:评价方案 识别风险 消除风险 累计成本 指定计划:决定目标 方案限制 提交线 评审 生存期计划 开发计划 组装测试 客户评价 软件 需求 需求 确认 设计确认验证 软件产品设计 实现 验收 测试 编码 组装 测试 单元 测试 实施工程:开发、验证 形成产品 演 化 维 护 确 认 实 现 设 计 分 析 关于关于 模型小结模型小结 螺旋模型是由上面四个部分组成的迭代模螺旋模型是由上面四个部分
15、组成的迭代模型。螺旋模型的每一周期都包括需求定义、风型。螺旋模型的每一周期都包括需求定义、风险分析、工程实现和评审四个阶段。开发过程险分析、工程实现和评审四个阶段。开发过程每迭代一次,螺旋线就增加一周,软件开发又每迭代一次,螺旋线就增加一周,软件开发又前进一个层次,系统又生成一个新版本,而软前进一个层次,系统又生成一个新版本,而软件开发的时间和成本又有了新的投入。最后得件开发的时间和成本又有了新的投入。最后得到一个客户满意的软件版本。到一个客户满意的软件版本。喷泉模型该模型表明软件开发活动之间没喷泉模型该模型表明软件开发活动之间没有明显的间隙,用于支持面向对象开发过程。有明显的间隙,用于支持面
16、向对象开发过程。由于对象概念的引入,使分析、设计、实现之由于对象概念的引入,使分析、设计、实现之间的表达没有明显间隙。并且,这一表达自然间的表达没有明显间隙。并且,这一表达自然地支持复用。地支持复用。第第3章章 计算机系统工程计算机系统工程第第3章章 计算机系统工程计算机系统工程 计算机软件工程和硬件工程可以看作是一门更广义的学科“计算机系统工程”内的活动。它们所要做的都是按一定的次序开发基于计算机的系统。计算机系统工程是指与构造基于计算机系统有关的过程、方法和技术。它是一种问题求解活动。计算机系统工程的任务是:组织并指导系统工程师定义全系统各层次中的所有基于计算机系统的要素。20世纪60年代
17、开始发展起来的计算机系统工程,是计算机硬件、软件、数据通信装置、数据存储设备、规章制度和有关人员的统一体。软件工程在各个领域有着广泛的应用,如计算机辅助设计(CAD)系统、计算机辅助制造(CAM)系统、计算机辅助教学系统、计算机辅助医疗系统、军用的计算机指挥系统、通信软件工程、公用或专用的现代通信系统和信息服务系统都各具特色。管理软件是一类最具代表性的软件工程。3.1基于计算机的系统基于计算机的系统 基于计算机的系统是“某些要素的一个集合,这些要素被组织起来以实现某种方法、过程或借助处理信息进行控制。”图3.1给出了基于计算机系统的系统要素及相互之间关系。过 程 文 档 硬 件 软 件 人 数
18、据库 输入输入输出输出系统 图3.1 基于计算机系统的系统要素及相互之间关系 3.1.1 计算机系统工程 计算机系统工程是一个问题求解活动,目的是揭示、分析所期望的功能,并把它们分配到各个单独的系统要素中去。计算机系统开发设计周期见图3.2。详 细 设 计:软 件 硬 件 开 发 或 购 买 硬 件 测 试 硬 件 模 块 组 成 软 件 和 硬 件 联 调 功 能 测 试 维 护 改 进 现 场 运 行 软 件 详 细 设 计 设 计 评 审 模 块 编 程 调 试 联 调 软 件 模 块 测 试 调 试 分 析 系 统 要 求 完 成 系 统规 范 用 户 确 认 总 体 设 计 主 要
19、功 能 确 认 设 计 并 选 择 硬 件 来源 设 计 评 审 图3.2 系统开发设计周期 在系统的功能规范确立之后,下一步要对系统的功能进行认真、仔细的分析,问题的焦点集中于功能、性能、信息流和容量上。一个计算机系统方案应包括以下几个方面的内容:(1)任务的来源,技术要求,质量指标和经费.(2)采取的技术途径。(3)方案的规模,子系统的划分。(4)系统的数据库结构。(5)预计系统的各项指标。(6)所需的设备、仪器、关键元器件、工艺工具 等 的购置情况及保证条件。(7)研制周期、异常情况的处理等等。用户中心设计UCD方法在某种程度上代表了当今的计算机系统技术发展水平,使用该方法能设计极具竞争
20、力的产品,UCD方法适合一切项目。现将传统设计方法与用户中心设计UCD方法加以比较。传统的设计方法技术驱动以组件为中心有限的多学科协作注重产品的内部体系结构没有专门考虑用户体验竞争意识不强开发先于用户评价产品缺陷质量观不重视用户测量只考虑现有用户 UCD方法用户驱动以解决方案为中心多学科小组成员协同工作注重产品的外部设计专门考虑用户体验以竞争为目标由用户评价设计方案后才开发用户质量观很重视用户测量考虑当前和将来所有用户图3.3 UCD方法和传统设计方法的比较 3.1.2 硬件和硬件工程 基于计算机的系统离不开计算机硬件的支撑。计算机系统工程师根据系统需求为硬件系统指派任务,产生硬件需求。21世
21、纪以来,信息可以很方便地通过计算机网络实现共享。作为网络文件服务器的计算机,可以给分布在网络上不同站点的客户提供共享的公用程序和数据,这就是客户服务器计算模式。计算机的硬件工程是在几十年电子设计经验的基础上发展起来的,一般将硬件工程分为三个阶段。硬件工程阶段需解决的问题成果(一)硬件研制计划需求分析根据功能可选择、采购的硬件?哪几种硬件接口?必须制造的硬件?潜在的问题及资源?确定项目成本估计、工程进度估计、硬件规格说明(二)硬件设计硬件实现确定硬件元素中的所有元件精确的功能、性能和接口需求。设计约束条件(如尺寸,环境)及测试准则;必要时建造原型并对原型进行测试;画出生产图、硬件规格说明书、对规
22、格说明书评审和修改(三)生产、销售售后服务质量如何得到保证?产品的维护和修理如何实现?建立质量保证方法、建立产品销售机构、储备备件,售后服务表3.1 硬件工程三个阶段 3.1.3 软件和软件工程 从系统工程的角度来看,软件与硬件、软件工程与硬件工程分别是基于计算机系统和基于计算机的系统工程的重要组成部分。系统工程的论证阶段应该确定系统的软硬件功能和性能。系统对软件提出的功能和性能要求将成为软件需求分析的基础。基于计算机系统的软件要素由程序、数据和文档组成。它们分为两类应用软件与系统软件:应用软件实现信息处理,系统软件完成使应用软件能与其他系统要素交互的控制功能。一个基于计算机的系统可以用输入处
23、理输出(IPO)模型来表示。软件要素在这个模型的各个方面都起着一定的作用。(1)软件从系统的外部实体或其他系统要素(包括宏要素)接收输入信息。(2)软件还用于建立数据库的接口,使程序能够存取预先存储的数据。(3)软件实现系统功能所需要的计算方法。(4)在实际使用中,软件必须产生输出,把数据转换成某种能适合于输出介质的格式,或适合于输出设备接口的格式。软件工程三个阶段软件工程阶段必须完成的步骤阶段成果(一)软件定义制定软件项目规划;需求分析和定义;确定软件性能和资源约束;软件要素定义验收标准成本、工程进度估计;通过软件原型化信息域分析获得软件规格说明;对软件规格说明技术评审(二)软件开发、实现软
24、件总体结构设计软件模块结构;数据设计、过程设计接口及信息结构;编码生成源程序代码确定一些有效性准则;对规格说明书评审修改;根据准则判断软件质量(三)检验、发行、维护测试软件,找出错误:进行单元测试调试,组装测试调试;开发用户文档;把软件发行给终端用户对测试文档、测试用例和测试结果进行评审;建立配置管理机制;整个使用寿命中维护软件;3.1.4 人机工程 人机工程是应用从心理学和方法论导出的知识来确定和设计高质量HCI(人机界面)的多学科活动。人机工程过程包括以下步骤:(1)活动分析。(2)语义分析和设计:(3)语法和词法设计:(4)用户环境设计:(5)原型:人机工程的关键要素是设计一个整体解决方
25、案,它应该对用户而言:易于购买、易于安装、易于学习、易于使用、直观、吸引人、有用3.1.5 数据库和数据库工程 数据库系统是基于计算机系统的重要组成部分,它将有关的硬件、软件、数据和数据库管理人员组合起来,为用户提供信息服务。开发、运行和管理一个数据库系统是一项复杂的数据库工程,人们也常称之为数据库工程。阶段任务结果(一)需求分析、可行性研究调查用户信息需求、处理要求进行可行性论证;提出成本预算和工作计划(二)选择硬件和软件应确定数据管理系统;支持数据库查询、维护和分析确定运行的操作系统、网络环境(三)数据库设计与实现根据需求分析和数据分析;概念设计;逻辑设计;物理设计;评审、测试;产生需求说
展开阅读全文