软件工程作业第一章_第1页
软件工程作业第一章_第2页
软件工程作业第一章_第3页
全文预览已结束

下载本文档

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

文档简介

1 11 1 什么是软件危机什么是软件危机 它有哪些典型表现它有哪些典型表现 为什么会出现软件危机为什么会出现软件危机 软件危机 软件危机 在计算机软件的开发和维护过程中所遇到的一系列严重问题 在计算机软件的开发和维护过程中所遇到的一系列严重问题 典型表现 软件总是超出预算 落后于进度表 而且产品质量不可靠 维护困难等 典型表现 软件总是超出预算 落后于进度表 而且产品质量不可靠 维护困难等 危机原因 危机原因 1 1 软件受其自身特点的影响 软件受其自身特点的影响 生产过程不象硬件那样规范生产过程不象硬件那样规范 受人的因素和外界影响很大受人的因素和外界影响很大 在软在软 件生产的各阶段都会引入不同程度的错误件生产的各阶段都会引入不同程度的错误 造成不能预期完成任务造成不能预期完成任务 致使成本上升致使成本上升 甚至导致软甚至导致软 件失败 件失败 2 2 主客观不相适应 主客观不相适应 客观上 软件规模增大 功能要求越来越复杂 需求不断变化等 客观上 软件规模增大 功能要求越来越复杂 需求不断变化等 主观上 传统的个体化开发观念和方法的影响 无开发过程指导 无开发过程管理 主观上 传统的个体化开发观念和方法的影响 无开发过程指导 无开发过程管理 由于主客观矛盾 必然产生软件质量差 开发超期 超预算 维护困难等现象 由于主客观矛盾 必然产生软件质量差 开发超期 超预算 维护困难等现象 1 31 3 什么是软件工程什么是软件工程 它有哪些本质特性它有哪些本质特性 怎样用软件工程消除软件危机怎样用软件工程消除软件危机 基本思想基本思想 是强调在软件开发过程中应用工程化原则 解决软件的整体质量较低 最后期是强调在软件开发过程中应用工程化原则 解决软件的整体质量较低 最后期 限和费用没有保证等问题 限和费用没有保证等问题 软件工程定义软件工程定义 是指导计算机软件开发和维护的一门工程学科 采用工程的概念 原理 是指导计算机软件开发和维护的一门工程学科 采用工程的概念 原理 技术和方法来开发与维护软件 把经过时间考验而证明正确的管理技术和当前能够得到的技术和方法来开发与维护软件 把经过时间考验而证明正确的管理技术和当前能够得到的 最好的技术方法结合起来 以经济地开发出高质量的软件并有效地维护它最好的技术方法结合起来 以经济地开发出高质量的软件并有效地维护它 软件工程的根本在于提高软件的质量与生产率 最终实现软件的工业化生产 软件工程的根本在于提高软件的质量与生产率 最终实现软件的工业化生产 本质特性 本质特性 P6P6 消除软件危机 软件工程基本原理消除软件危机 软件工程基本原理 7 7 条 条 1 61 6 什么是软件过程什么是软件过程 它与软件工程方法学有何关系它与软件工程方法学有何关系 软件过程 是为了获得高质量软件所需要完成的一系列任务的框架 它规定了完成各项软件过程 是为了获得高质量软件所需要完成的一系列任务的框架 它规定了完成各项 任务的工作步骤 任务的工作步骤 过程定义了运用方法的顺序 应该交付的文档资料 为保证软件质量和协调变化所需要过程定义了运用方法的顺序 应该交付的文档资料 为保证软件质量和协调变化所需要 采取的管理措施 以及标志软件开发各个阶段任务完成的里程碑 采取的管理措施 以及标志软件开发各个阶段任务完成的里程碑 关系 是软件工程方法学包含关系 是软件工程方法学包含 3 3 个要素 方法 工具和过程 之一 个要素 方法 工具和过程 之一 1 71 7 什么是软件生命周期模型什么是软件生命周期模型 试比较瀑布模型 试比较瀑布模型 快速快速 原型模型 增量模型和螺旋模型 喷原型模型 增量模型和螺旋模型 喷 泉模型的优缺点 说明每种模型的适用范围 泉模型的优缺点 说明每种模型的适用范围 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序 因此 也称为过程生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序 因此 也称为过程 模型 模型 瀑布模型瀑布模型 它将软件生命周期划分为需求分析 软件设计 程序编写 软件测试和运行维护 它将软件生命周期划分为需求分析 软件设计 程序编写 软件测试和运行维护 等基本活动 并且规定了它们自上而下 相互衔接的固定次序 如同瀑布流水 逐级下落 等基本活动 并且规定了它们自上而下 相互衔接的固定次序 如同瀑布流水 逐级下落 优点 文档驱动 优点 文档驱动 强迫开发人员采用规范的方法 强迫开发人员采用规范的方法 严格地规定了每个阶段必须提交的文档 要求每个阶段交出严格地规定了每个阶段必须提交的文档 要求每个阶段交出 的所有产品都必须经过质量保证小组的仔细验证 遵守瀑布模型的文档约束 将使软件维护的所有产品都必须经过质量保证小组的仔细验证 遵守瀑布模型的文档约束 将使软件维护 变得比较容易一些 变得比较容易一些 缺点 系统可能不满足需求 用户仅仅通过写在纸上的静态的规格说明 很难全面正确地认缺点 系统可能不满足需求 用户仅仅通过写在纸上的静态的规格说明 很难全面正确地认 识动态的软件产品识动态的软件产品 适用范围 软件需求明确 适用范围 软件需求明确 原型模型原型模型 在初步调查了解的基础上 提供快速的软件建造工具 开发出一个功能并不十分 在初步调查了解的基础上 提供快速的软件建造工具 开发出一个功能并不十分 完善的可实际运行的系统 即原型 需求分析入手快速 表达直观 容易交流 重点解决瀑完善的可实际运行的系统 即原型 需求分析入手快速 表达直观 容易交流 重点解决瀑 布模型需求分析入手难的问题 布模型需求分析入手难的问题 优点 关注满足需求 优点 关注满足需求 缺点 缺点 快速原型的引入主要是为了确立明确的功能需求而设 它的主要构思是通过一个简单快速原型的引入主要是为了确立明确的功能需求而设 它的主要构思是通过一个简单 的原型 从系统的角度引出和明确客户的期盼和愿望 的原型 从系统的角度引出和明确客户的期盼和愿望 适用范围 需求不确定 如交互式系统的设计 加速软件开发过程 节约软件开发成本 适用范围 需求不确定 如交互式系统的设计 加速软件开发过程 节约软件开发成本 增量模型 增量模型 它主要强调的是每一步软件的开发都建立在前一步软件开发的基础之上 它主要强调的是每一步软件的开发都建立在前一步软件开发的基础之上 优点 开发早期反馈及时 使用户有较充裕的时间学习和适应新产品 优点 开发早期反馈及时 使用户有较充裕的时间学习和适应新产品 易于维护 使用增量模型时开发软件和扩充软件功能 完善性维护 没有本质区别 易于维护 使用增量模型时开发软件和扩充软件功能 完善性维护 没有本质区别 缺点缺点 采用增量模型比采用瀑布模型和快速原型模型需要更精心的设计采用增量模型比采用瀑布模型和快速原型模型需要更精心的设计 需要开放式结构需要开放式结构 设计非常灵活而且足够开放 才能支持增量模型 设计非常灵活而且足够开放 才能支持增量模型 适用范围 对于需求复杂的系统 采用分块开发 逐步集成的开发策略 交付日期很重要 适用范围 对于需求复杂的系统 采用分块开发 逐步集成的开发策略 交付日期很重要 会有多个版本 易扩展 会有多个版本 易扩展 螺旋模型 螺旋模型 将瀑布模型和快速原型模型结合起来 使用原型及其他方法来尽量降低风险 在将瀑布模型和快速原型模型结合起来 使用原型及其他方法来尽量降低风险 在 每个阶段之前都增加了风险分析过程的快速原型 每个阶段之前都增加了风险分析过程的快速原型 优点 保留了瀑布模型按阶段逐步进行开发和阶段末评审的优点 吸收了原型模型的思想 优点 保留了瀑布模型按阶段逐步进行开发和阶段末评审的优点 吸收了原型模型的思想 增加并重视方案的风险分析与补救工作 对保证产品质量是十分有利的 增加并重视方案的风险分析与补救工作 对保证产品质量是十分有利的 缺点 风险分析人员需要有经验且经过充分训练 能准确地分析风险 否则将会带来更大的缺点 风险分析人员需要有经验且经过充分训练 能准确地分析风险 否则将会带来更大的 风险 风险 适用范围 螺旋模型强调风险分析 但要求许多客户接受和相信这种分析是不容易的 因此 适用范围 螺旋模型强调风险分析 但要求许多客户接受和相信这种分析是不容易的 因此 这种模型往往适应于内部的大规模软件开发 这种模型往往适应于内部的大规模软件开发 喷泉模型 喷泉模型 以面向对象的软件开发方法为基础 以用户需求为动力 以对象作为驱动的模型 以面向对象的软件开发方法为基础 以用户需求为动力 以对象作为驱动的模型 它适合于面向对象的开发方法 它适合于面向对象的开发方法 模型的优点 模型的优点 喷泉模型不像瀑布模型那样 需要分析活动结束后才开始设计活动 设计活动结束后才开喷泉模型不像瀑布模型那样 需要分析活动结束后才开始设计活动 设计活动结束后才开 始编码活动 始编码活动 该模型的各个阶段没有明显的界限 开发人员可以同步进行开发 其优点是可以提高软件该模型的各个阶段没有明显的界限 开发人员可以同步进行开发 其优点是可以提高软件 项目开发效率 节省开发时间 项目开发效率 节省开发时间 模型的缺点 模型的缺点 由于喷泉模型在各个开发阶段是重叠的 因此在开发过程中需要大量的开发人员 因此不由于喷泉模型在各个开发阶段是重叠的 因此在开发过程中需要大量的开发人员 因此不 利于项目的管理 利于项目的管理 适用范围 问题复杂 用户需求易变 随时加入各种信息 适用范围 问题复杂 用户需求易变 随时加入各种信息 1 81 8 为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性 为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性 由于在整个开发过程中都使用统一的概念和表示符号由于在整个开发过程中都使用统一的概念和表示符号 对象对象 整个开发过程都是吻合一致的 整个开发过程都是吻合一致的 无缝无缝 连接的 这自然就很容易实现各个开发步骤的多次反复迭代 达到认识的逐步深化 连接的 这自然就很容易实现各个开发步骤的多次反复迭代 达到认识的逐步深化 补充 补充 什么是软件生命周期 与软件过程有何区别和联系 什么是软件生命周期 与软件过程有何区别和联系 答 答 1 1 软件生存周期 软件产品从定义到开发 经过使用和维护 直到最终被弃用 软件生存周期 软件产品从定义到开发 经过使用和维护 直到最终被弃用 软件过程 是为了获得高质量软件所需要完成的一系列任务的框架 它规定了完成各软件过程 是为了获得高质量软件所需要完成的一系列任务的框架 它规定了完成各 项任务的工作步骤 项任务的工作步骤 2 2 两者指同一个事情

温馨提示

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

评论

0/150

提交评论