软件工程(第二版)-电子教案-卢潇 第1章概述

上传人:E**** 文档编号:89431062 上传时间:2019-05-25 格式:PPT 页数:54 大小:331.50KB
返回 下载 相关 举报
软件工程(第二版)-电子教案-卢潇 第1章概述_第1页
第1页 / 共54页
软件工程(第二版)-电子教案-卢潇 第1章概述_第2页
第2页 / 共54页
软件工程(第二版)-电子教案-卢潇 第1章概述_第3页
第3页 / 共54页
软件工程(第二版)-电子教案-卢潇 第1章概述_第4页
第4页 / 共54页
软件工程(第二版)-电子教案-卢潇 第1章概述_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《软件工程(第二版)-电子教案-卢潇 第1章概述》由会员分享,可在线阅读,更多相关《软件工程(第二版)-电子教案-卢潇 第1章概述(54页珍藏版)》请在金锄头文库上搜索。

1、第1章 概述,软件,已处于信息技术的核心位置,软件产业,已成为信息产业中独立的支柱产业,软件业的发展造就了一个个 “童话”。软件工厂成为了科技时代的浪尖。 自从1968年首次软件工程一词以来,软件工程已成为计算机软件的一个重要分支和研究方向。,第1章 概述,工程将理论和所学的知识应用于实践的科学。 软件工程应用计算机科学、数学及管理科学等原理,开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 软件工程是一门交叉性学科。,软件工程的主要内

2、容,软件工程的基本概念 软件开发模型 软件开发各阶段的任务、技术、方法 软件过程 软件工具 软件工程管理 软件质量保证 软件工程环境 软件经济学,软件的概念,程序、软件与软件产品 独唱小合唱合唱万人大合唱 | | | 简单程序 较复杂程序 软件 软件定义: 软件=程序+数据+文档 程序:按事先设计的功能和性能需求执行的指令序列 数据:是程序能正常操纵信息的数据结构 文档:与程序开发、维护和使用有关的图文材料,软件的特点,软件是逻辑实体。具有抽象性。软件的形态不可见,必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。,软件是人脑思维的产物,其生产过程与硬件不同开发过程的质量控制及软件产

3、品保护问题。,软件的开发和运行受计算机系统限制软件移植问题。,软件的开发技术落后,手工开发方式仍占统治地位,开发效率低。,软件的特点,软件的失效率与硬件不同。,失效率,时间,硬件失效率曲线,失效率,时间,软件失效率曲线,软件的特点,软件的复杂性越来越高,对软件人员的要求越来越高,出现了软件复杂性与软件技术发展的不适应现象。,软件复杂性,差距,软件需求与软件技术发展现状,软件需求,时间,软件技术,软件技术进步落后于需求增长,软件的特点,软件的特点,软件的开发研制成本高,自年代以来,已大大超过硬件成本。,计算机系统软、硬件成本比例的变化情况,硬件,年份,软件,年,年,年,成本,软件的特点,相当多的

4、软件工作涉及社会因素,如机构、体制、管理方式等,包括人的观念及心理,都直接影响软件工作的成败。,软件的分类,按功能,按规模,按工作方式,按使用频度,按失效影响,系 统 软 件,支 撑 软 件,应 用 软 件,按服务对象,软件的分类,按功能,按规模,按工作方式,按使用频度,按失效影响,按服务对象,微 型 软 件,小 型 软 件,大 型 软 件,甚 大 型 软 件,极 大 型 软 件,软件的分类,按功能,按规模,按工作方式,按使用频度,按失效影响,按服务对象,实 时 处 理 软 件,分 时 软 件,交 互 式 软 件,批 处 理 软 件,软件的分类,按功能,按规模,按工作方式,按使用频度,按失效影

5、响,按服务对象,产 品 软 件,项 目 软 件,软件的分类,按功能,按规模,按工作方式,按使用频度,按失效影响,按服务对象,使 用 频 度 低,使 用 频 度 高,软件的分类,按功能,按规模,按工作方式,按使用频度,按失效影响,按服务对象,不 良 影 响,严 重 影 响,软件开发的发展过程,程序设计阶段 50至60年代 程序系统阶段 60至70年代 软件工程阶段 70年代以后,计算机应用发展,软件数量多规模大,软件成本高质量低,个体化软件开发方法,软件维护困难,软件危机,软件工程,软件危机,定义 计算机软件的开发和维护过程所遇到的一系列严重问题。 表现 对软件开发成本和进度的估算很不准确 用户

6、很不满意 质量很不可靠 没有适当的文档 软件成本比重上升 供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势,软件危机,原因 客观:软件本身特点 逻辑部件 规模庞大 主观:不正确的开发方法 忽视需求分析 错误认为:软件开发=程序编写 轻视软件维护,软件危机,解决途径 组织管理 工程项目管理方法 技术措施 软件开发技术与方法 软件工具,软件工程,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术方面研究如何更好地开发和维护计算机软件的学科。,定义: 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,

7、把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来即软件工程。,软件工程,软件工程的基本原理(自“软件工程”提出后,专家和学者们陆续提出了100多条关于软件工程的准则或“信条”,有专家归纳出了确保开发质量和效率的原理的最小集合7条基本原理): 1)用分阶段的生命周期严格管理; 2)坚持进行阶段评审; 3)实行严格的产品控制; 4)采用现代程序设计技术; 5)结果应能清楚地审查; 6)开发小组人员应少而精; 7)承认不断改进软件工程实践的必要性。,软件工程三要素,软件工程 三个要素,方法,工具,过程,软件工程三要素,软件工程 三个要素,方法,工具,过程,软件工程三要素,软件

8、工程 三个要素,方法,工具,过程,方法、工具和过程: 软件工程方法为软件开发提供了 “如何做” 的技术 软件工具为软件工程方法提供了自动的或半自动的软件支撑环境 软件工程过程定义了: 方法使用的顺序 要求交付的文档资料 为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑,软件工程的三要素,软件工程项目的基本目标,付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发工作,及时交付使用,软件工程基本原则,抽象 采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程的复杂性。 信息隐蔽 将模块设计成“黑箱”,实现的细节隐藏在

9、模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则。 模块化 如 C 语言程序中的函数过程,C+ 语言程序中的类。模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。,局部化 要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。这有助于控制解的复杂性。 确定性 软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。 一致性 整个软件系统的各个模块应使用一致的概念、符号和术语。程序内部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一致。,软件工

10、程基本原则,完备性 软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。 可验证性 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。,软件工程基本原则,软件工程过程和软件生命期,软件工程过程: 软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。,软件工程过程内容,软件工程过程特性,软件工程过程和软件生命期,软件工程过程: 软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。,软件工程过程内容,软

11、件工程过程特性,软件工程过程和软件生命期,软件生命期(Life cycle): 一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程称为软件生存期或叫生命期。,生命期的划分:,软件生存期模型,瀑布模型,原型模型,螺旋模型,喷泉模型,构件组装模型,统一过程模型,第四代技术,瀑布模型,计划,需求分析,设计,编码,测试,运行、维护,定义 阶段,开发 阶段,维护 阶段,原型模型,原型模型也称快速原型模型. 原型模型的基本思想是:软件开发人员在与用户进行需求分析时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统,让用户在计算机上进行操作,在实践过程中提出改进意见,开发人员根据用户

12、的意见,对原型进行补充和完善,然后再由用户试用、评价、提出建议,重复这一过程,直到用户对开发的原型系统满意为止。,原型模型,螺旋模型,螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即: 制定计划确定软件目标,选定实施方案,弄清项目开发的限制 风险分析分析所选方案,考虑如何识别和消除风险 实施工程实施软件开发 客户评估评价开发工作,提出修正建议,螺旋模型,螺旋模型,特点 瀑布模型+快速原型+风险分析 迭代过程 一个螺旋式周期 确定目标,选择方案,选定完成目标的策略 风险角度分析该策略 启动一个开发阶段 评价前一步的结果,计划下一轮的工作,喷泉模型,迭代 重复 演进 无间隙 各阶段间无

13、明显界限,喷泉模型,构件组装模型,构件组装模型,特点: 面向对象 基于构件库 融合螺旋模型特征 支持软件开发的迭代方法 软件重用,统一过程模型,Rational统一过程(Rational Unified Process,RUP)是由Rational公司开发的一种软件过程,它的开发过程有如下3个主要特点: 是一种用例(Usecase)驱动的软件开发过程 是以体系结构(Architecture)为中心的过程 迭代(Iterative)开发与增量(Incremental)开发相结合的过程,第四代技术,“第四代技术”(4GT)包含了一系列的软件工具,其特点是:能使软件工程师在较高级别上说明软件的某些特

14、征,然后利用工具将开发者的说明自动生成源代码,并且软件被说明级别越高,其建造程序的速度就越快。 基于4GT的开发过程如下: 像其他范型一样,4GT也是从需求收集这一步开始。 制订一个系统的设计策略。 应用4GL的生成功能,自动生成所期望的代码。 进行测试,完成相关文档,并完成其他软件工程范型中同样要求的所有集成活动,得到最终产品。,软件开发方法简述,软件开发方法是指软件开发过程中所应遵循的方法和步骤。 局部软件开发方法:针对某些活动的开发方法 全局软件开发方法:覆盖开发全过程的方法 考虑如下的几个因素: (1)对该软件开发方法是否已具有经验,或有已受过训练的人员; (2)为软件开发提供的软件硬

15、件资源及可使用的工具的情况; (3)该开发方法在计划、组织和管理方面的可行性; (4)对开发项目所涉及领域的知识的掌握情况。,软件开发方法简述,1 、 结构化方法 结构化方法也称为面向功能的软件开发方法或Yourdon方法,是由E.Yourdon和L.Constantine提出的. 结构化分析方法SA:对软件进行需求分析 结构化设计方法SD:进行总体设计和详细设计 结构化编程SP 特点:按照功能分解的原则,自顶向下、逐步求精,直到实现软件功能为止。 该方法简单、实用。,软件开发方法简述,1 、 结构化方法 主要问题: (1)它以功能分解为基础,而用户的功能是经常改变的,必然导致系统的框架结构不稳定。 (2)从数据流程图到软件结构图之间的过渡有明显的断层,导致设计回溯到需求有困难。,软件开发方法简述,2 、面向数据结构的开发方法 面向数据结构的软件开发方法有两种: Warnier方法:由JDWarnier提出的结构化数据系统开发方法(DSSD); Jackson方法:由M.A.Jackson提出的Jackson系统开发方法(JSD)。 面向数据结构的软件开发方法基本思想是:从目标系统的输入输出数据结构入手,导出程序的基本框架结构,在此基础上,对细节进行设计,得到完整的程序结构图。,软件开发方法简述,3 、面向对象的方法 面向对象方法的优点: (1)将现实世

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号