《软件工程学概论》PPT课件.ppt_第1页
《软件工程学概论》PPT课件.ppt_第2页
《软件工程学概论》PPT课件.ppt_第3页
《软件工程学概论》PPT课件.ppt_第4页
《软件工程学概论》PPT课件.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 软件工程概论 教材:软件工程导论 编著: 张海藩 主讲: 周荣辉 2 软件的魅力 计算机软件已经成为一种驱动力,它是进行商业决策 的引擎;它是现代科学研究和工程问题解决的基础;它是 区分现代产品和服务的关键因素。 计算机软件无处不在。人们把软件看作是生活中的现 实技术。在很多情况下,人们把他们的生活、他们的舒适 、他们的安全、他们的娱乐、他们的决策、甚至他们的整 个生活都依赖于计算机软件。 3 软件工程概论 第一章 软件工程学概论 4 任何计算机系统由硬件(hard)和软件 (software)两大部分构成。 硬件只是提供了计算的可能性。 必须有支持和管理计算机的软件,系统 才能实现计算。 计算机硬件与软件 5 软件的定义 程序:能够完成预定功能、并满足性能要求的可执行 的指令序列。 软件是计算机程序以及开发、使用和维护程序所需要 的所有文档。 软件是包括程序、数据及其相关文档的完整集合。 软件=知识+程序+文档+数据 软件是知识的载体。 软件包括: 能够完成预定功能和性能的可执行的指令; 保证程序运行的配置信息和初始数据等。 描述程序的开发、使用和维护的文档 6 软件的定义 软件是客观世界中问题空间与解空间的 具体描述,它追求的是表达能力强、更符 合人类思维模式,具有构造性和易演化性 的计算模型。-软件的实质 7 软件的任务和特点 软件的任务是将现实世界 中需要处理的问题映射到计 算机世界中,同时又服务于 现实世界。 特点:软件即服务( Software as a service,SaaS )。 现实世界 计算机世界 映射 服务 8 软件的特点 软件是一种逻辑产品,无形态,具有抽象性。同时又 具有一般机器的属性-原料加工的工具。 软件是开发而形成的,无明显的制造过程。 软件对硬件和环境有着不同程度的依赖性,这导致了 软件升级和移植的问题。 主要靠脑力劳动生产,开发和维护成本高。 大多数软件是定做的,不是通过已有构件组装而成, 规范性差。 软件不会“磨损”和老化,但存在退化问题。 软件服务于社会各行各业,常常涉及不同领域的专门 知识。 9 软件的发展 1、程序设计时期(19461956) 软件=程序 开发方式:个体 主要特征:计算机硬件=计算机 用途少,规模小;不作为商品; 开发者=使用者:自己开发,自己使用。 2、程序系统时期(19561968) 软件=程序+说明 开发方式:作坊式 主要特征:程序规模增大,多人分工合作。 软件作为商品,即程序设计者使用者; 程序开发和使用的文档资料已不可缺少。 3、软件工程时期(1968现在) 软件=程序+数据+文档 开发方式:工程化 主要特征:按工程管理的方法管理整个软件开发过程。 10 软件发展中的问题 60年代中后期,软件商品化的出现,使计算机应用的广 度和深度得到迅速扩大,由此而带来的问题是: 应用领域不断扩大-软件需求量倍增。 要求计算机解决更多的问题-软件规模增大。 要求解决问题的深度增加-软件复杂程度增大。 软件开发反映出的问题: 软件是手工劳动,是智力产品-生产率低。 程序是逻辑实体,出错容易,纠错困难,质量难以保证 ,维护费用高于开发费用。 软件规模和复杂度与开发者花费的精力和时间不是简单 的正比关系,成本上升快。 11 软件危机 软件生产的进度、数量、质量、成本与社会 对软件的需求量和希望要求甚远,开发成本和进 度难以控制,指令难以保证,与硬件发展形成强 烈反差。这就是所谓的“软件危机”。-现实与希 望形成的巨大落差 12 软件危机的具体表现 1、软件开发: 软件开发过程和成本无法有效控制,且成本逐年上升; 软件开发生产率提高的速度跟不上需求的增加; 用户对已完成的软件系统不满意; 软件产品质量靠不住,没有确保质量的有效措施。 2、软件维护: 软件常常是不可维护的(缺乏文档或文档质量)。 维护成本高。软件维护花费的时间和费用占整个软件开 发组织的60%以上。 13 产生软件危机的原因 客观原因: 软件是手工劳动,是智力产品-生产率低。 软件是逻辑实体,出错容易,纠错困难。 软件的复杂性使得仅靠人的智力难以驾驭。 主观原因 开发方式:认为开发软件就是写程序。 组织方式:作坊式的生产方式;开发无计划、开发过程无 规范、开发过程难控制。 用户方面:对软件需求描述不精确。 开发人员方面:对用户需求的理解与用户本来愿望有差异 ,相互之间的信息交流不及时、不准确、有误解。 14 “软件工程”的提出 寻求新的软件开发组织形式和开发方法。 北大西洋公约组织成员国的软件工作者于1968、1969 年连续两年召开软件研讨会,即有名的NATO会议,集中研究 对策,讨论如何摆脱软件危机,提出了“软件工程”的概念。 于是,计算机科学与技术的新领域“软件工程”诞生了,它 对软件产业的形成和发展起了决定性的作用,对于科学地开 发软件、有效地管理软件和提高软件质量具有重要作用。 15 软件工程的定义 IEEEIEE83:软件工程是开发、运行、维护和修复软件的 系统方法。 IEEEIEE93: 软件工程是将系统的、规范的、可度量的工 程化方法应用于软件开发、运行和维护的全过程及上述方 法的研究。 计算机大百科全书:软件工程是应用计算机科学理论和 技术以及工程管理原则和方法,按预算和进度实现满足用 户要求的软件产品的定义、开发、发布和维护的工程,或 以之为研究对象的学科。 16 软件工程的目标 在给定成本、进度的前提下,开发出满足用 户需求的高质量的、易于维护的软件产品。 软件工程是从技术和管理两方面研究如何更 好地开发和维护计算机软件。 成本、进度和质量将是未来若干年中导致软 件激烈竞争的主要因素。 17 软件工程研究的内容 软件工程的核心:软件质量保证 软件工程三要素:过程、方法和工具 软件工程过程:完成把用户需求转换为软件产品的一 组有组织的活动。没有软件工程过程就没有软件管理。 软件工程方法:提供过程中“如何做”的技术 软件工程工具:提供自动或半自动地支持软件的开发 和管理,支持各种软件文档的生成。 全面的质量管理是推动软件工程过程不断改进的动力, 导致了更加成熟的软件工程方法的涌现。过程和方法的结合 使得软件被合理和高质量地开发出来。工具为软件工程方法 和过程提供了自动或半自动的支撑环境。 18 软件工程方法 结构化方法:结构化分析方法、结构化设计方法和结构 化程序设计方法。其精髓是自顶向下、逐步求精。 面向数据结构的方法:从要求的输入/输出数据结构入手 ,导出软件结构,再补充细节,得到完整的程序结构。 面向对象方法:从建立问题模型开始,然后是识别对象 、构造类。 可视化方法:原型构造方法,通过图形界面构造工具构 造用户操作界面来描述需求和用户试用过程。 19 软件工程工具 图稿绘制工具:officevisio 2007。 源码浏览工具:管理和组织源代码。 配置管理工具:VSS、PVCS、SVN。 数据库建模工具:ERWin、PowerDesign。 UML建模工具 项目管理工具:MS Project 20 软件工程的知识体系 目前,IEEE最新发布的软件工程知识体系(SWEBOK) 将软件工程知识体系分解成10个知识域 软件工程知识体系 开发与维护过程支持与组织过程 软件 需求 软件 设计 软件 构造 软件 测试 软件 维护 软件 配置 管理 软件 工程 管理 软件 工程 过程 软件工 程工具 与方法 软件 质量 21 软件生存周期 定义:软件生存周期是指一个软件从提出开发要求开 始直到不再使用(报废)为止的整个时期。 软件生存周期阶段划分 原理:软件工程采用软件生存周期方法,从时间角度对 软件开发和维护的复杂问题进行分解,把软件生存的漫长周 期依次划分为若干阶段,每个阶段有相对独立的任务,然后 逐步完成每个阶段的任务。 划分:软件生存周期包括三个时期: 软件定义 软件开发 软件使用和维护 22 软件生存周期软件定义 1、问题定义:确定要求解决的问题是什么? 2、可行性研究:确定在时间和资源的约束条件下,能否完成 指定的任务?包括:技术可行性、经济可行性、法律可 行性、社会可行性。若可行,则制定项目所需费用、资 源、时间的开发计划。 3、需求分析:准确地确定“软件系统必须做什么”,即明确 目标系统必须具备的功能和对系统的约束。 23 软件生存周期软件开发 1、概要设计:确定在总体上应该怎样实现目标系统,包括 系统的软件结构设计、接口设计和数据结构设计。-软 件架构设计 2、详细设计:对软件结构中的模块进行精确描述算法设 计。 3、编码及模块测试:把模块算法转换成特定程序设计语言 的正确的、容易理解、容易维护的程序模块。 4、综合测试:发现和纠正程序中的错误,保证软件功能和 性能符合需求规格说明书规定的要求。包括集成测试、 确认测试和系统测试。 24 软件生存周期软件维护 软件投入使用后继续对软件的查错、纠错和改 进。使系统持久地满足用户的需要。包括: 改正性维护 适应性维护 完善性维护 预防性维护 25 软件过程 过程:为实现一个给定目标所进行的一系列活动。 软件过程:开发和维护软件及其相关产品所涉及的一 系列活动。 【计算机科学技术百科全书】软件过程是软件生存周 期中一系列相关过程。过程是活动的集合;活动是任务的 集合;任务是把输入转换为输出的操作。 软件过程指为获得高质量软件所需要完成的一系列任 务以及完成这些任务的工作步骤。过程还规定了运用的方 法的顺序、应该交付的文档资料、为保证软件质量和协调 变化所需要采取的管理措施、任务完成的标志等。 26 软件过程模型 软件过程模型是软件过程的一种抽象表示,描述了从 问题提出直到软件废弃为止的软件系统开发、运行和维护 所实施的全部过程、活动和任务的结构框架。 软件过程模型实际上是一种开发策略。软件生存周期 规定了一个软件开发应该经历的工作阶段,但这些阶段按 照一种什么策略来组织,这就是软件过程模型要讨论的问 题。在软件开发过程中,软件项目的性质不同、运用的开 发方法不同、支持软件开发的工具不同,其开发策略也不 同,即适用的软件过程模型不同。 不同的软件过程模型,很难说哪个最好。只能说某个 软件项目用哪个模型更好。 27 软件过程模型-瀑布模型 严格按照软件生存期的阶段划分顺序和各阶段的目标 、任务、文档的要求来进行开发。 该模型以文档为驱动。每一活动结束后,通过严格的 阶段复审和确认,得到一致、完整、准确的良好文档,以 “冻结”这些文档为该阶段结束的标志,并作为下一阶段活 动的唯一基础;以每一步的正确性和完整性来保证最终系 统的质量。 适应性:瀑布模型适合功能和性能明确、完整、无重 大变化的软件开发。 局限性:用户很难完整、准确表达对系统的全面要求 ,需求说明也很难做到把一切描述得完整、准确、一致, 并与实际环境相符。 28 瀑布模型 强调阶段的划分及其顺序性、各阶段工作及 其文档的完备性,是一种严格线性的、按阶段顺 序的、逐步细化的开发模式。 定义 分析 设计 编码 测试 维护 软件过程模型-瀑布模型 29 软件过程模型-瀑布模型 瀑布模型的特点: n结构简单明了;历史较长、应用面广泛、为广 大软件工作者所熟悉;已有与之配套的一组十 分成熟的开发方法和丰富的支撑工具。 n确定了需求分析的绝对重要性,但是在实践中 要想获得完善的需求说明是非常困难的;反馈 信息慢。 30 软件过程模型-原型模型 听取用户意见 建造/修改 原型 用户测试 运行原型 31 软件过程模型-原型模型 先根据用户对需求的描述,通过软件工具构造一个软件系 统的原型来描述目标系统的主要功能,让用户进行评价,并根 据用户意见进行改进。随着不断实验、评价和修改,最后使得 在功能上完全满足用户需求。 软件系统原型一般不是最终目标系统。原型作为标识软件 需求的一种机制,原型被建造仅是为了定义需求,并且只是在 功能上描述了用户需求,忽略了软件质量特性要求和管理对质 量的控制。 开发原型系统的条件: 用户对目标系统只有模糊笼统的认识,难以准确。 软件开发者和用户之间存在通信障碍。 有快速构造原型的工具。 开发的软件系统可以通过对原型系统的完善来实现,也可以 抛弃原型系统,重新规划和设计。 32 软件过程模型增量模型 先按瀑布模型开发一个满足基本要求的系统,然后根据 用户在使用中提出的新需求在进一步完善形成新的版本,这 个过程不断重复,直到最终的完善产品。 软件需求不完整时,可以采用该模型的开发方案。 如早期的MDOS系统和现在的WINDOWS系统。 与原型模型的区别:增量模型的每个版本都是可操作产品。 增量模型中,第一个增量往往是核心的产品,即实现了 基本要求。以后的每一个增量都是在前一个版本的基础上进 行的补充、修改和完善的结果。 33 软件过程模型螺旋模型 螺旋模型是风险驱动模型,将开发过程分为几个螺旋周 期,每个螺旋周期大致与瀑布模型相同。每个螺旋周期可分 为四个工作步骤: 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论