[理学]ch10 软件工程.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]ch10 软件工程

本章要点 IBM公司的 OS/360,共约100万条指令,花费了5000个人;经费达数亿美圆,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。 OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。…” 1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序: DO 5 I=1,3 误写为:DO 5 I=1 . 3 1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。 1.1 软件工程的基本概念 1.2 软件工程过程与软件生存期 分类续 1.3 软件生存期模型 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。 目前有若干软件生存期模型,各种模型有其不同的特点,并适用于不同的开发方法。 瀑布模型 循环模型 1.4 软件开发方法 软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构 模块划分的目的 ①进行功能分解,把复杂的大的功能划分成简单 的小的子功能,尽量降低每个模块的成本。 ②尽量使每个模块间的接口不能太多,太多会使 接口成本增加。兼顾二者可取得最佳的划分状 态,确保软件总成本最低。 注意:模块数不是越多越好。当然也不是越少越 好。存在一个数目,使得总开发成本最低。 模块化的主要优点是: 1 模块化设计降低了软件系统的复杂性,使得系统容易修改; 2 同时使得系统各个部分可以并行开发,从而提高了软件的 生产率。 3 提高模块质量在于提高模块独立性。模块的独立性用耦合 性和内聚性来衡量。 模块独立性(module independence) 1.7 软件测试的基本概念 一、软件测试的目的和重要性 因为开发工作的前期不可避免地会引入错误,测试的目的是为了发现和改正错误,这对于某些涉及人的生命安全或重要的军事、经济目标的项目显得尤其重要。 二、软件测试的特点 1、软件测试的开销大 按照Boehm的统计,软件测试的开销大约占总成本的30%-50%。例如:APPOLLO登月计划,80%的经费用于软件测试。 三、软件测试的基本原则 四、测试的基本步骤 五 软件测试方法 软件测试方法分为两类: 静态分析和动态测试 2.动态测试方法 通过选择适当的测试用例,执行程序。常用的方法: 1)白盒法   分析程序的内部逻辑结构,注意选择适当的覆盖标准,设计测试用例,对主要路径进行尽可能多的测试。 1.静态分析方法 指以人工的、非形式化的方法对程序进行分析和测试。 桌前检查 代码会审 步行检查 2)黑盒法   不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。 * 软件工程的基本概念 软件工程过程与软件生存期 软件生存期模型 软件开发方法 “软件危机”(Software crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。 “软件危机”主要表现在两个方面: (1)软件产品质量低劣,甚至开发过程就夭折。 (2)软件生产率低,不能满足需要。 软件工程(Software Engineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。 软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科,主要研究如何应用软件开发的科学理论和工程技术来指导大型软件系统的开发。    软件的发展已经历了三个重要阶段: 3、软件工程时代 2、软件时代 1、程序设计时代 软件工程研究的内容   软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广。归结起来软件工程研究的主要内容有以下几方面: }软件开发技术 软件开发方法、技术 软件开发工具及环境 软件管理技术 软件规范(国际规范) }软件管理技术 (1)软件开发技术(软件结构、开发方法、工具与软件工程环境、软件工程标准化) (2)软件工程管理(质量管理,软件工程经济学:成本估算,计划安排)   从68年北大西洋公约的软件可靠性会议(NATO)上,首次提出 “软件工程”的概念,提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档