全套电子课件:软件工程(第二版).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《全套电子课件:软件工程(第二版).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全套 电子 课件 软件工程 第二
- 资源描述:
-
1、第第1章章 概述概述 软件,已处于信息技术的核心位置,软软件,已处于信息技术的核心位置,软件产业,已成为信息产业中独立的支柱产业,件产业,已成为信息产业中独立的支柱产业,软件业的发展造就了一个个软件业的发展造就了一个个“童话童话”。软件。软件工厂成为了科技时代的浪尖。工厂成为了科技时代的浪尖。自从自从19681968年首次软件工程一词以来,软件年首次软件工程一词以来,软件工程已成为计算机软件的一个重要分支和研工程已成为计算机软件的一个重要分支和研究方向。究方向。第第1章章 概述概述 工程将理论和所学的知识应用于实践的科学。工程将理论和所学的知识应用于实践的科学。软件工程应用计算机科学、数学及管
2、理科学等原理,软件工程应用计算机科学、数学及管理科学等原理,开发软件的工程。它借鉴传统工程的原则、方法,以提高质量开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。其中,计算机科学、数学用于构造模型与,降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门交叉性学科。软件工程是一门交叉性学科。软件工程的主要内容软件工程的主要内容 软件工程的基本概念软件工程的基本概
3、念 软件开发模型软件开发模型 软件开发各阶段的任务、技术、方法软件开发各阶段的任务、技术、方法 软件过程软件过程 软件工具软件工具 软件工程管理软件工程管理 软件质量保证软件质量保证 软件工程环境软件工程环境 软件经济学软件经济学软件的概念软件的概念 程序、软件与软件产品程序、软件与软件产品独唱独唱-小合唱小合唱-合唱合唱-万人大合唱万人大合唱|简单程序简单程序 较复杂程序较复杂程序 软件软件 软件定义:软件定义:软件软件=程序程序+数据数据+文档文档程序:按事先设计的功能和性能需求执行的指令序列程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构数据:是程序能正
4、常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料文档:与程序开发、维护和使用有关的图文材料 软件的特点软件的特点 软件是逻辑实体。具有抽象性。软件的形态不软件是逻辑实体。具有抽象性。软件的形态不可见,必须通过观察、分析、思考、判断来了解其可见,必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。功能、性能和其它特性。软件是人脑思维的产物,其生产过程与硬件不同软件是人脑思维的产物,其生产过程与硬件不同开发过程的质量控制及软件产品保护问题。开发过程的质量控制及软件产品保护问题。软件的开发和运行受计算机系统限制软件移软件的开发和运行受计算机系统限制软件移植问题。植问题。软件的开
5、发技术落后,手工开发方式仍占统治地软件的开发技术落后,手工开发方式仍占统治地位,开发效率低。位,开发效率低。软件的特点软件的特点软件的失效率与硬件不同。软件的失效率与硬件不同。失效率时间硬件失效率曲线失效率时间软件失效率曲线 软件的特点软件的特点软件的复杂性越来越高,对软件人员的要求越来越高,出现了软件的复杂性越来越高,对软件人员的要求越来越高,出现了软件复杂性与软件技术发展的不适应现象。软件复杂性与软件技术发展的不适应现象。软件复杂性差距软件需求与软件技术发展现状软件需求与软件技术发展现状软件需求时间软件技术软件技术进步落后于需求增长软件技术进步落后于需求增长 软件的特点软件的特点 软件的特
6、点软件的特点软件的开发研制成本高,自年代以来,已大大超过硬件成软件的开发研制成本高,自年代以来,已大大超过硬件成本。本。计算机系统软、硬件成本比例的变化情况计算机系统软、硬件成本比例的变化情况硬件年份年份软件年年年成本成本 软件的特点软件的特点相当多的软件工作涉及社会因素,如机构、体制、管理方式等,相当多的软件工作涉及社会因素,如机构、体制、管理方式等,包括人的观念及心理,都直接影响软件工作的成败。包括人的观念及心理,都直接影响软件工作的成败。软件的分类软件的分类按功能按功能按规模按规模按工作方式按工作方式按使用频度按使用频度按失效影响按失效影响系统软件支撑软件应用软件按服务对象按服务对象 软
7、件的分类软件的分类按功能按功能按规模按规模按工作方式按工作方式按使用频度按使用频度按失效影响按失效影响按服务对象按服务对象微型软件小型软件大型软件甚大型软件极大型软件 软件的分类软件的分类按功能按功能按规模按规模按工作方式按工作方式按使用频度按使用频度按失效影响按失效影响按服务对象按服务对象实时处理软件分时软件交互式软件批处理软件 软件的分类软件的分类按功能按功能按规模按规模按工作方式按工作方式按使用频度按使用频度按失效影响按失效影响按服务对象按服务对象产品软件项目软件 软件的分类软件的分类按功能按功能按规模按规模按工作方式按工作方式按使用频度按使用频度按失效影响按失效影响按服务对象按服务对象
8、使用频度低使用频度高 软件的分类软件的分类按功能按功能按规模按规模按工作方式按工作方式按使用频度按使用频度按失效影响按失效影响按服务对象按服务对象不良影响严重影响软件开发的发展过程软件开发的发展过程 程序设计阶段程序设计阶段 50至至60年代年代 程序系统阶段程序系统阶段 60至至70年代年代 软件工程阶段软件工程阶段 70年代以后年代以后计算机应用发展计算机应用发展软件数量多软件数量多规模大规模大软件成本高软件成本高质量低质量低个体化软件开发方法个体化软件开发方法软件维护困难软件维护困难软件危机软件危机软件工程软件工程软件危机软件危机 定义定义计算机软件的开发和维护过程所遇到的一系列严重问题
9、。计算机软件的开发和维护过程所遇到的一系列严重问题。表现表现 对软件开发成本和进度的估算很不准确对软件开发成本和进度的估算很不准确 用户很不满意用户很不满意 质量很不可靠质量很不可靠 没有适当的文档没有适当的文档 软件成本比重上升软件成本比重上升 供不应求:软件开发生产率跟不上计算机应用迅速深供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势入的趋势 软件危机软件危机 原因原因 客观:软件本身特点客观:软件本身特点 逻辑部件逻辑部件 规模庞大规模庞大 主观:不正确的开发方法主观:不正确的开发方法 忽视需求分析忽视需求分析 错误认为:软件开发错误认为:软件开发=程序编写程序编写 轻视软件维护
10、轻视软件维护软件危机软件危机 解决途径解决途径 组织管理组织管理 工程项目管理方法工程项目管理方法 技术措施技术措施 软件开发技术与方法软件开发技术与方法 软件工具软件工具 软件工程软件工程 为了解决软件危机,既要有技术措施(方法和工为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从具),又要有必要的组织管理措施。软件工程正是从管理和技术方面研究如何更好地开发和维护计算机软管理和技术方面研究如何更好地开发和维护计算机软件的学科。件的学科。定义定义:软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、软件工程是指导计算机软件开发和维护的工程学
11、科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来能够得到的最好的技术方法结合起来即软件工程。即软件工程。软件工程软件工程软件工程的基本原理软件工程的基本原理(自(自“软件工程软件工程”提出后,专家和学者们陆提出后,专家和学者们陆续提出了续提出了100多条关于软件工程的准则或多条关于软件工程的准则或“信条信条”,有专家归纳出了确保开发,有专家归纳出了确保开发质量和效率的原理的最小集合质量和效率的原理的最小集合7条基本原理):条基本原理):1)用分阶段的
12、生命周期严格管理;用分阶段的生命周期严格管理;2)坚持进行阶段评审;)坚持进行阶段评审;3)实行严格的产品控制;)实行严格的产品控制;4)采用现代程序设计技术;)采用现代程序设计技术;5)结果应能清楚地审查;)结果应能清楚地审查;6)开发小组人员应少而精;)开发小组人员应少而精;7)承认不断改进软件工程实践的必要性)承认不断改进软件工程实践的必要性。软件工程三要素软件工程三要素软件工程软件工程三个要素三个要素方法工具过程提供一系列软件开发技术。提供一系列软件开发技术。包括完成开发过程中各方面包括完成开发过程中各方面任务的方法并用某种特殊的任务的方法并用某种特殊的语言或图形来描述。语言或图形来描
13、述。软件工程三要素软件工程三要素软件工程软件工程三个要素三个要素方法工具过程软件工具为软件方法提供了自动软件工具为软件方法提供了自动的或半自动的支撑环境。将多种的或半自动的支撑环境。将多种工具集成在一起可构成计算机辅工具集成在一起可构成计算机辅助软件工程(助软件工程(CASE)的软件开的软件开发支撑系统。发支撑系统。软件工程三要素软件工程三要素软件工程软件工程三个要素三个要素方法工具过程软件过程是将软件工程的软件过程是将软件工程的方法和工具综合起来,进方法和工具综合起来,进行软件开发。行软件开发。方法、工具和过程:方法、工具和过程:软件工程方法为软件开发提供了软件工程方法为软件开发提供了 “如
14、何做如何做”的技术的技术 软件工具为软件工程方法提供了自动的或半自动的软件软件工具为软件工程方法提供了自动的或半自动的软件支撑环境支撑环境 软件工程过程定义了软件工程过程定义了:方法使用的顺序方法使用的顺序 要求交付的文档资料要求交付的文档资料 为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件工程的三要素软件工程的三要素软件工程项目的基本目标软件工程项目的基本目标 付出较低的开发成本付出较低的开发成本 达到要求的软件功能达到要求的软件功能 取得较好的软件性能取得较好的软件性能 开发的软件易于移植开发的软件易于移植 需
15、要较低的维护费用需要较低的维护费用 能按时完成开发工作,及时交付使用能按时完成开发工作,及时交付使用软件工程基本软件工程基本原则原则 抽象抽象 采用分层次抽象,自顶向下、逐层细化的办法采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程的复杂性控制软件开发过程的复杂性。信息隐蔽信息隐蔽 将模块设计成将模块设计成“黑箱黑箱”,实现的细节隐藏,实现的细节隐藏在模块内部,不让模块的使用者直接访问。这就是信息在模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则。封装,使用与实现分离的原则。模块化模块化 如如 C C 语言程序中的函数过程,语言程序中的函数过程,C+C+语言程序
16、语言程序中的类。模块化有助于信息隐蔽和抽象,有助于表示复中的类。模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。杂的系统。局部化局部化 要求在一个物理模块内集中逻辑上相互关联要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。这有助于控制解的复杂性。部具有较强的内聚。这有助于控制解的复杂性。确定性确定性 软件开发过程中所有概念的表达应是确定的、软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。无歧义性的、规范的。一致性一致性 整个软件系统的各个模块应使用一致的概念、整个软件系统的各个
17、模块应使用一致的概念、符号和术语。程序内部接口应保持一致。软件和硬件、符号和术语。程序内部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一应保持一致。用于形式化规格说明的公理系统应保持一致。致。软件工程基本软件工程基本原则原则 完备性完备性 软件系统不丢失任何重要成分,可以完全实现软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。为了保证系统的完备性,在软件系统所要求功能的程度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。开发和运行过程中需
18、要严格的技术评审。可验证性可验证性 开发大型的软件系统需要对系统自顶向下、开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。原则,以确保系统的正确性。软件工程基本软件工程基本原则原则 软件工程过程和软件生命期软件工程过程软件工程过程:软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。一系列软件工程活动。软件工程过程内容软件工程过程内容软件工程过程特性软件工程过程特性1)软件规格说明:规定软
19、件的功能及运行限制)软件规格说明:规定软件的功能及运行限制2)软件开发:产生满足规格说明的软件)软件开发:产生满足规格说明的软件3)软件确认:对软件能否满足用户要求进行确认)软件确认:对软件能否满足用户要求进行确认4)软件演进:为满足用户的变更要求的演进)软件演进:为满足用户的变更要求的演进 软件工程过程和软件生命期软件工程过程软件工程过程:软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。一系列软件工程活动。软件工程过程内容软件工程过程内容软件工程过程特性软件工程过程特性1)可理解性;)可理解性;2
20、)可见性;)可见性;3)可支持性;)可支持性;4)可接受性;)可接受性;5)可靠性;)可靠性;6)健壮性;)健壮性;7)可维护性;)可维护性;8)速度。)速度。软件工程过程和软件生命期软件生命期(软件生命期(Life cycle):一个软件从定义、开发、使用和维护,直到最终被废弃,所经历一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程称为软件生存期或叫生命期。的生存过程称为软件生存期或叫生命期。生命期的划分:生命期的划分:制定计制定计划划需求分析和定需求分析和定义义软件设软件设计计程序编程序编写写软件测软件测试试运行运行/维维护护定义阶段定义阶段开发阶段开发阶段维护阶段维护阶
21、段 软件生存期模型软件生存期模型瀑布模型瀑布模型原型模型原型模型螺旋模型螺旋模型喷泉模型喷泉模型构件组装模型构件组装模型统一过程模型统一过程模型第四代技术第四代技术 瀑布模型瀑布模型计划计划需求分析需求分析设计设计编码编码测试测试运行、维护运行、维护定义定义阶段阶段开发开发阶段阶段维护维护阶段阶段原型模型原型模型原型模型也称快速原型模型原型模型也称快速原型模型.原型模型的基本思想是:原型模型的基本思想是:软件开发人员在与用户进行需求分析时,软件开发人员在与用户进行需求分析时,以比较小的代价快速建立一个能够反映用户主要需求的原型系以比较小的代价快速建立一个能够反映用户主要需求的原型系统,让用户在
22、计算机上进行操作,在实践过程中提出改进意见,统,让用户在计算机上进行操作,在实践过程中提出改进意见,开发人员根据用户的意见,对原型进行补充和完善,然后再由开发人员根据用户的意见,对原型进行补充和完善,然后再由用户试用、评价、提出建议,重复这一过程,直到用户对开发用户试用、评价、提出建议,重复这一过程,直到用户对开发的原型系统满意为止。的原型系统满意为止。原型模型原型模型原型开发原型开发原型评价原型评价最终系统设计最终系统设计用户用户反馈反馈 原型模型原型模型螺旋模型螺旋模型 螺旋模型沿着螺线旋转,在四个象限上分别螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:表达四个方面的活动,
23、即:制定计划制定计划确定软件目标,选定实施方案,弄清确定软件目标,选定实施方案,弄清项目开发的限制项目开发的限制 风险分析风险分析分析所选方案,考虑如何识别和消除分析所选方案,考虑如何识别和消除风险风险 实施工程实施工程实施软件开发实施软件开发 客户评估客户评估评价开发工作,提出修正建议评价开发工作,提出修正建议螺旋模型螺旋模型螺旋模型 特点特点 瀑布模型瀑布模型+快速原型快速原型+风险分析风险分析 迭代过程迭代过程 一个螺旋一个螺旋式周期式周期 确定目标,选择方案,选定完成目标的策略确定目标,选择方案,选定完成目标的策略 风险角度分析该策略风险角度分析该策略 启动一个开发阶段启动一个开发阶段
24、 评价前一步的结果评价前一步的结果,计划下一轮的工作计划下一轮的工作 喷泉模型喷泉模型 迭代迭代 重复重复 演进演进 无间隙无间隙 各阶段间无明显界限各阶段间无明显界限喷泉模型喷泉模型构件组装模型构件组装模型构件组装模型构件组装模型 特点特点:面向对象面向对象 基于构件库基于构件库 融合螺旋模型特征融合螺旋模型特征 支持软件开发的迭代方法支持软件开发的迭代方法 软件重用软件重用统一过程模型统一过程模型 RationalRational统一过程(统一过程(Rational Unified ProcessRational Unified Process,RUPRUP)是由是由RationalRat
25、ional公司开发的一种软件过程,它公司开发的一种软件过程,它的开发过程有如下的开发过程有如下3 3个主要特点:个主要特点:是一种用例(是一种用例(UseUsecasecase)驱动的软件开发过程驱动的软件开发过程 是以体系结构(是以体系结构(ArchitectureArchitecture)为中心的过程为中心的过程 迭代(迭代(IterativeIterative)开发与增量(开发与增量(IncrementalIncremental)开发相结合的过程开发相结合的过程第四代技术第四代技术 “第四代技术第四代技术”(4GT)包含了一系列的软件工具,包含了一系列的软件工具,其特点是:能使软件工程师
展开阅读全文